<?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>89231</bug_id>
          
          <creation_ts>2012-06-15 10:48:26 -0700</creation_ts>
          <short_desc>Remove vendor prefix from DOM MutationObservers</short_desc>
          <delta_ts>2013-03-07 13:57:10 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>89351</dependson>
    
    <dependson>90810</dependson>
    
    <dependson>109776</dependson>
          <blocked>85161</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Klein">adamk</reporter>
          <assigned_to name="Adam Klein">adamk</assigned_to>
          <cc>abarth</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>esprehn</cc>
    
    <cc>gustavo</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>jochen</cc>
    
    <cc>ojan</cc>
    
    <cc>rakuco</cc>
    
    <cc>syoichi</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>650328</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-06-15 10:48:26 -0700</bug_when>
    <thetext>Unprefix DOM MutationObservers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650334</commentid>
    <comment_count>1</comment_count>
      <attachid>147857</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-06-15 10:54:16 -0700</bug_when>
    <thetext>Created attachment 147857
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650356</commentid>
    <comment_count>2</comment_count>
      <attachid>147862</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-06-15 11:16:44 -0700</bug_when>
    <thetext>Created attachment 147862
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650376</commentid>
    <comment_count>3</comment_count>
      <attachid>147862</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-06-15 11:51:20 -0700</bug_when>
    <thetext>Comment on attachment 147862
Patch

Attachment 147862 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/12968117</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650382</commentid>
    <comment_count>4</comment_count>
      <attachid>147869</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-06-15 12:01:22 -0700</bug_when>
    <thetext>Created attachment 147869
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651075</commentid>
    <comment_count>5</comment_count>
      <attachid>147869</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-06-17 17:59:51 -0700</bug_when>
    <thetext>Comment on attachment 147869
Patch

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

&gt; Source/WebKit/chromium/ChangeLog:3
&gt; +        Unprefix DOM MutationObservers

Bug title is different.

&gt; Source/WebKit/efl/ChangeLog:3
&gt; +        Unprefix DOM MutationObservers

ditto.

&gt; Source/WebKit/gtk/ChangeLog:3
&gt; +        Unprefix DOM MutationObservers

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657838</commentid>
    <comment_count>6</comment_count>
      <attachid>149584</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-06-26 12:18:11 -0700</bug_when>
    <thetext>Created attachment 149584
Disable by default on not-fully-supported platforms</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657860</commentid>
    <comment_count>7</comment_count>
      <attachid>149584</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-06-26 12:39:24 -0700</bug_when>
    <thetext>Comment on attachment 149584
Disable by default on not-fully-supported platforms

Attachment 149584 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/13097540</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657872</commentid>
    <comment_count>8</comment_count>
      <attachid>149587</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-06-26 12:51:44 -0700</bug_when>
    <thetext>Created attachment 149587
Fix build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659992</commentid>
    <comment_count>9</comment_count>
      <attachid>150052</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-06-28 17:51:54 -0700</bug_when>
    <thetext>Created attachment 150052
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665046</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-07-09 12:03:18 -0700</bug_when>
    <thetext>I&apos;ve decided to split this change into smaller pieces; uploaded just the renaming of the WebCore class in bug 90810.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665226</commentid>
    <comment_count>11</comment_count>
      <attachid>151331</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-07-09 15:21:33 -0700</bug_when>
    <thetext>Created attachment 151331
Patch slimmed down</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802674</commentid>
    <comment_count>12</comment_count>
      <attachid>151331</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2013-01-08 14:42:05 -0800</bug_when>
    <thetext>Comment on attachment 151331
Patch slimmed down

Removing review flag for now. This&apos;ll need a full rebasing anyway, and we don&apos;t want to do this until parser-mutations (bug 89351).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832611</commentid>
    <comment_count>13</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2013-02-13 17:55:47 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 151331 [details])
&gt; Removing review flag for now. This&apos;ll need a full rebasing anyway, and we don&apos;t want to do this until parser-mutations (bug 89351).

I missed this bug and created Bug 109776 , it also seems we can&apos;t land this patch now anyway since the mutation observer feature define doesn&apos;t exist anymore.

Since Apple is shipping MutationObserver I think we should just unprefix everywhere. That they don&apos;t support end of task delivery seems like a bug in their implementation, not a reason to keep the prefix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850467</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2013-03-07 13:57:10 -0800</bug_when>
    <thetext>esprehn did this in http://trac.webkit.org/changeset/143386</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147857</attachid>
            <date>2012-06-15 10:54:16 -0700</date>
            <delta_ts>2012-06-15 11:16:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89231-20120615105415.patch</filename>
            <type>text/plain</type>
            <size>174987</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5ODU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzA3YmVlNmM5ZDY5MTlj
YjU0NWM0ODJlMjFjNjQwMmRhNGQ3ODEzYy4uZGIyMjkzNTFmODgwMDRmMzQ2Y2Q2MWY2YTBmOWEz
OTcxZTJkOTk0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwNyBAQAorMjAxMi0wNi0xNSAgQWRh
bSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZW1vdmUgdmVuZG9yIHBy
ZWZpeCBmcm9tIERPTSBNdXRhdGlvbk9ic2VydmVycworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkyMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBNdXRhdGlvbk9ic2VydmVycyBoYXZlIGJlZW4gc3BlY2lm
aWVkIGFzIHBhcnQgb2YgRE9NNCBmb3Igc29tZSB0aW1lIG5vdywKKyAgICAgICAgYW5kIE1vemls
bGEgaXMgc2hpcHBpbmcgYSBjb21wYXRpYmxlIGltcGxlbWVudGF0aW9uIHdpdGhvdXQgYSB2ZW5k
b3IKKyAgICAgICAgcHJlZml4LiBUaGlzIGNoYW5nZSBleHBvc2VzIHRoZSBNdXRhdGlvbk9ic2Vy
dmVyIGNvbnN0cnVjdG9yIG9uIHRoZQorICAgICAgICBXaW5kb3cgb2JqZWN0LiBBbGwgcmVmZXJl
bmNlcyB0byB0aGUgb2xkIHByZWZpeGVkIG5hbWUgaGF2ZSBiZWVuCisgICAgICAgIHJlbW92ZWQs
IHNhdmUgZm9yIGEgYmFja3dhcmRzLWNvbXBhdGliaWxpdHkgcmVmZXJlbmNlIGluIERPTVdpbmRv
dy5pZGwuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0
eS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
LmNwcDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBVc2VKU0MuY21h
a2U6CisgICAgICAgICogVXNlVjguY21ha2U6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAg
ICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0JpbmRp
bmdzQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTWFpblRocmVhZEV4ZWNT
dGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU01haW5UaHJlYWRFeGVjU3RhdGU6OmRpZExl
YXZlU2NyaXB0Q29udGV4dCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxi
YWNrQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTTXV0YXRpb25DYWxsYmFjazo6aGFu
ZGxlRXZlbnQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTXV0YXRpb25PYnNlcnZlckN1c3Rv
bS5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdE11
dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpKU011dGF0aW9uT2JzZXJ2ZXJDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNNdXRhdGlv
bk9ic2VydmVyKToKKyAgICAgICAgKEJvb2xlYW5PcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
SlNNdXRhdGlvbk9ic2VydmVyOjpvYnNlcnZlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFJl
Y3Vyc2lvblNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4UmVjdXJzaW9uU2NvcGU6OmRp
ZExlYXZlU2NyaXB0Q29udGV4dCk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0
YXRpb25DYWxsYmFja0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOE11dGF0aW9uQ2Fs
bGJhY2s6OmhhbmRsZUV2ZW50KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhNdXRh
dGlvbk9ic2VydmVyQ3VzdG9tLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOFdlYktpdE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwLgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpWOE11dGF0aW9uT2JzZXJ2ZXI6OmNvbnN0
cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhNdXRhdGlvbk9ic2VydmVyOjpv
YnNlcnZlQ2FsbGJhY2spOgorICAgICAgICAqIGRvbS9DaGFyYWN0ZXJEYXRhLmNwcDoKKyAgICAg
ICAgKiBkb20vQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q2hp
bGRMaXN0TXV0YXRpb25TY29wZTo6Q2hpbGRMaXN0TXV0YXRpb25TY29wZSk6CisgICAgICAgICog
ZG9tL0RPTUFsbEluT25lLmNwcDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50OjpoYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZSk6CisgICAgICAg
ICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAqIGRvbS9NdXRhdGlvbkNhbGxiYWNrLmg6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE11dGF0aW9uQ2FsbGJhY2spOgorICAgICAgICAq
IGRvbS9NdXRhdGlvbkNhbGxiYWNrLmlkbDoKKyAgICAgICAgKiBkb20vTXV0YXRpb25PYnNlcnZl
ci5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TXV0YXRpb25PYnNl
cnZlci5jcHAuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9u
T2JzZXJ2ZXI6Ok9ic2VydmVyTGVzc1RoYW46Om9wZXJhdG9yKCkpOgorICAgICAgICAoV2ViQ29y
ZTo6TXV0YXRpb25PYnNlcnZlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9u
T2JzZXJ2ZXI6Ok11dGF0aW9uT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25P
YnNlcnZlcjo6fk11dGF0aW9uT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25P
YnNlcnZlcjo6dmFsaWRhdGVPcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2Jz
ZXJ2ZXI6Om9ic2VydmUpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6dGFr
ZVJlY29yZHMpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6ZGlzY29ubmVj
dCk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyOjpvYnNlcnZhdGlvblN0YXJ0
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6b2JzZXJ2YXRpb25FbmRl
ZCk6CisgICAgICAgIChXZWJDb3JlOjphY3RpdmVNdXRhdGlvbk9ic2VydmVycyk6CisgICAgICAg
IChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyOjplbnF1ZXVlTXV0YXRpb25SZWNvcmQpOgorICAg
ICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6c2V0SGFzVHJhbnNpZW50UmVnaXN0cmF0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6OmRlbGl2ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6ZGVsaXZlckFsbE11dGF0aW9ucyk6Cisg
ICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXIuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmguCisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKE11dGF0aW9uT2JzZXJ2ZXIpOgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVy
LmlkbDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyLmlkbC4KKyAgICAgICAgKiBkb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6OmNyZWF0
ZUlmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdy
b3VwOjpNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cCk6CisgICAgICAgIChXZWJDb3JlOjpN
dXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6aXNPbGRWYWx1ZVJlcXVlc3RlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6ZW5xdWV1ZU11dGF0
aW9uUmVjb3JkKToKKyAgICAgICAgKiBkb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAu
aDoKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpjcmVh
dGVGb3JDaGlsZExpc3RNdXRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2Vy
dmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlRm9yQ2hhcmFjdGVyRGF0YU11dGF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpjcmVhdGVGb3JBdHRy
aWJ1dGVzTXV0YXRpb24pOgorICAgICAgICAoTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAp
OgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb246OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjpNdXRhdGlvbk9ic2Vy
dmVyUmVnaXN0cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJSZWdp
c3RyYXRpb246OnNob3VsZFJlY2VpdmVNdXRhdGlvbkZyb20pOgorICAgICAgICAqIGRvbS9NdXRh
dGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmg6CisgICAgICAgIChNdXRhdGlvbk9ic2VydmVyUmVn
aXN0cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRp
b246OmlzU3VidHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyUmVnaXN0
cmF0aW9uOjpvYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyUmVn
aXN0cmF0aW9uOjpkZWxpdmVyeU9wdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25P
YnNlcnZlclJlZ2lzdHJhdGlvbjo6bXV0YXRpb25UeXBlcyk6CisgICAgICAgICogZG9tL05vZGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6Y29sbGVjdE1hdGNoaW5nT2JzZXJ2ZXJzRm9y
TXV0YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6Z2V0UmVnaXN0ZXJlZE11dGF0aW9u
T2JzZXJ2ZXJzT2ZUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnJlZ2lzdGVyTXV0YXRp
b25PYnNlcnZlcik6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKE5vZGUpOgorICAg
ICAgICAqIGRvbS9Ob2RlUmFyZURhdGEuaDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6
CisKIDIwMTItMDYtMDggIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBbVjhdIEtlZXAgVGV4dFRyYWNrTGlzdCBhbGl2ZSBhcyBsb25nIGFzIGl0cyBvd25lciBp
cyBhbGl2ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA0YzVhN2IxOTNhMmQyNjVmMTZm
OTE4MjFhMGExZTMzNDZlYmQ1OTgwLi4xZjUzYjc5ZDAxZDQxZWIxN2U3N2JjZWJiZTdmZjc0MThm
MTVjOTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEy
LTA2LTE1ICBBZGFtIEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFVucHJl
Zml4IERPTSBNdXRhdGlvbk9ic2VydmVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODkyMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHNyYy9XZWJLaXQuY3BwOgorCiAyMDEyLTA2LTA4ICBKb2NoZW4g
RWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuICBS
b2xsZWQgREVQUy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCA4OTcwMTBlMGNlMzIxMTU1ZGVhYmMyNjcy
YjU2MWJjMTBlNDM5ZDE4Li4wNjEyMzBhZTMyNjI5NWFjNTA4Nzg1MzkxNmE3YTgzOWFkMTU2ZDc0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDYtMTUgIEFkYW0gS2xl
aW4gIDxhZGFta0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVW5wcmVmaXggRE9NIE11dGF0aW9u
T2JzZXJ2ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04OTIzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcDoKKyAgICAgICAg
KER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6ZGVsaXZlckFsbE11dGF0aW9uc0lmTmVjZXNzYXJ5
KToKKwogMjAxMi0wNi0wNSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFJlbW92ZSBzdXBwb3J0IGZvciB0YXJnZXQtZGVuc2l0eWRwaSBpbiB0aGUgdmlld3BvcnQg
bWV0YSB0YWcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCAwMGRmZWZjNjFjMDZmYzc5MmUxZTVhMGE1N2Zh
N2Q2YTlmOTgxMmJkLi5hZWNmMjQzYjE3YTI4MWFlOTcwZWEwMGZmY2VhMzY4NWFlZTdhYmQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDYtMTUgIEFkYW0gS2xlaW4g
IDxhZGFta0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVW5wcmVmaXggRE9NIE11dGF0aW9uT2Jz
ZXJ2ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
OTIzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKKyAgICAgICAgKER1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6ZGVsaXZlckFsbE11dGF0aW9uc0lmTmVjZXNzYXJ5KToK
KwogMjAxMi0wNi0wNyAgU2ltb24gUGVuYSAgPHNwZW5hQGlnYWxpYS5jb20+CiAKICAgICAgICAg
W0dUS10gZGV2aWNlU2NhbGVGYWN0b3Igc2V0dGluZyBpcyBub3QgaG9ub3JlZApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAppbmRleCA0MzZlMWMwZDhlY2Y1Yzc0YjdiZDM3MTVhYjFkNDY1OGM2YWRmNTc0Li40
ODM3ODZmZDhjMWVjMTA5MjVhZDAwNmJjYmQwYjQyY2Q1NmZiNWEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dApAQCAtMjE5LDYgKzIxOSw3IEBAIFNFVChXZWJDb3JlX0lETF9GSUxFUwogICAgIGRvbS9N
b3VzZUV2ZW50LmlkbAogICAgIGRvbS9NdXRhdGlvbkNhbGxiYWNrLmlkbAogICAgIGRvbS9NdXRh
dGlvbkV2ZW50LmlkbAorICAgIGRvbS9NdXRhdGlvbk9ic2VydmVyLmlkbAogICAgIGRvbS9NdXRh
dGlvblJlY29yZC5pZGwKICAgICBkb20vTmFtZWROb2RlTWFwLmlkbAogICAgIGRvbS9Ob2RlRmls
dGVyLmlkbApAQCAtMjQyLDcgKzI0Myw2IEBAIFNFVChXZWJDb3JlX0lETF9GSUxFUwogICAgIGRv
bS9UcmVlV2Fsa2VyLmlkbAogICAgIGRvbS9VSUV2ZW50LmlkbAogICAgIGRvbS9XZWJLaXRBbmlt
YXRpb25FdmVudC5pZGwKLSAgICBkb20vV2ViS2l0TXV0YXRpb25PYnNlcnZlci5pZGwKICAgICBk
b20vV2ViS2l0TmFtZWRGbG93LmlkbAogICAgIGRvbS9XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaWRs
CiAgICAgZG9tL1doZWVsRXZlbnQuaWRsCkBAIC02MDksNiArNjA5LDcgQEAgU0VUKFdlYkNvcmVf
U09VUkNFUwogICAgIGRvbS9Nb3VzZUV2ZW50LmNwcAogICAgIGRvbS9Nb3VzZVJlbGF0ZWRFdmVu
dC5jcHAKICAgICBkb20vTXV0YXRpb25FdmVudC5jcHAKKyAgICBkb20vTXV0YXRpb25PYnNlcnZl
ci5jcHAKICAgICBkb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuY3BwCiAgICAgZG9t
L011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCiAgICAgZG9tL011dGF0aW9uUmVjb3Jk
LmNwcApAQCAtNjYyLDcgKzY2Myw2IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20vVXNl
clR5cGluZ0dlc3R1cmVJbmRpY2F0b3IuY3BwCiAgICAgZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNw
cAogICAgIGRvbS9XZWJLaXRBbmltYXRpb25FdmVudC5jcHAKLSAgICBkb20vV2ViS2l0TXV0YXRp
b25PYnNlcnZlci5jcHAKICAgICBkb20vV2ViS2l0TmFtZWRGbG93LmNwcAogICAgIGRvbS9XZWJL
aXRUcmFuc2l0aW9uRXZlbnQuY3BwCiAgICAgZG9tL1doZWVsRXZlbnQuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5jcHAKaW5kZXggNjA1NTA2OWY2MjM0NzQ3ZDhjZmQwZjFkYmI2NDkzODA3ZTI2
ZjIxYi4uZWQ4MDRhODE5Nzg2MTA3Yjk2ZGMxZmYwMjlhZGI4NWI1YTk1NDdlZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLmNwcApAQCAtMjQ1LDYgKzI0NSw3IEBACiAjaW5jbHVkZSAiSlNNb3Vz
ZUV2ZW50LmNwcCIKICNpbmNsdWRlICJKU011dGF0aW9uQ2FsbGJhY2suY3BwIgogI2luY2x1ZGUg
IkpTTXV0YXRpb25FdmVudC5jcHAiCisjaW5jbHVkZSAiSlNNdXRhdGlvbk9ic2VydmVyLmNwcCIK
ICNpbmNsdWRlICJKU011dGF0aW9uUmVjb3JkLmNwcCIKICNpbmNsdWRlICJKU05hbWVkTm9kZU1h
cC5jcHAiCiAjaW5jbHVkZSAiSlNOYXZpZ2F0b3IuY3BwIgpAQCAtNDc1LDcgKzQ3Niw2IEBACiAj
aW5jbHVkZSAiSlNXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAiCiAjaW5jbHVkZSAiSlNXZWJL
aXRDU1NNYXRyaXguY3BwIgogI2luY2x1ZGUgIkpTV2ViS2l0Q1NTUmVnaW9uUnVsZS5jcHAiCi0j
aW5jbHVkZSAiSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmNwcCIKICNpbmNsdWRlICJKU1dlYktp
dE5hbWVkRmxvdy5jcHAiCiAjaW5jbHVkZSAiSlNXZWJLaXRQb2ludC5jcHAiCiAjaW5jbHVkZSAi
SlNXZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
aW5kZXggNDk1YTBmNGMzOTRhNTYxYWVjZGIyN2FmMThmMTM0NWNjYmM2ZmVhOC4uNjk1NTgzMjZh
YmUzMDdjODNhODlmMmFjMDdlMjhlNGU1YTIxNWZjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCkBAIC0yMTcsNiArMjE3LDcgQEAgQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29y
ZSkvZG9tL01vdXNlRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9NdXRhdGlvbkNhbGxi
YWNrLmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vTXV0YXRpb25FdmVudC5pZGwgXAorICAgICQo
V2ViQ29yZSkvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9N
dXRhdGlvblJlY29yZC5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL05hbWVkTm9kZU1hcC5pZGwg
XAogICAgICQoV2ViQ29yZSkvZG9tL05vZGUuaWRsIFwKQEAgLTI0Miw3ICsyNDMsNiBAQCBCSU5E
SU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9kb20vVHJlZVdhbGtlci5pZGwgXAogICAgICQo
V2ViQ29yZSkvZG9tL1VJRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9XZWJLaXRBbmlt
YXRpb25FdmVudC5pZGwgXAotICAgICQoV2ViQ29yZSkvZG9tL1dlYktpdE11dGF0aW9uT2JzZXJ2
ZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9XZWJLaXROYW1lZEZsb3cuaWRsIFwKICAgICAk
KFdlYkNvcmUpL2RvbS9XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUp
L2RvbS9XaGVlbEV2ZW50LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAz
ZGE1ODkxMDU5MTFmOTYxNzMwMGRhZmM0ZmQwMzljY2VlM2E2MWJhLi44NzZlZmVhN2YwMzU1MTJm
N2Q4OTk2NmExN2I0MDVkM2UwZjJhNzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
QEAgLTQwNSw2ICs0MDUsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvbkNhbGxiYWNrLmggXAogCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNNdXRhdGlvbkV2ZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011
dGF0aW9uRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uT2JzZXJ2
ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25PYnNlcnZlci5oIFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25SZWNvcmQuY3BwIFwKIAlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25SZWNvcmQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU05hbWVkTm9kZU1hcC5jcHAgXApAQCAtNjE2LDggKzYxOCw2IEBAIHdlYmNvcmVfYnVp
bHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdENTU1JlZ2lv
blJ1bGUuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdENTU1RyYW5zZm9ybVZh
bHVlLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdENTU1RyYW5zZm9ybVZh
bHVlLmggXAotCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVy
LmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIu
aCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdE5hbWVkRmxvdy5jcHAgXAogCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXROYW1lZEZsb3cuaCBcCiAJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1dlYktpdFBvaW50LmNwcCBcCkBAIC03NjgsNiArNzY4LDcgQEAgZG9tX2Jp
bmRpbmdfaWRscyArPSBcCiAJJChXZWJDb3JlKS9kb20vTW91c2VFdmVudC5pZGwgXAogCSQoV2Vi
Q29yZSkvZG9tL011dGF0aW9uQ2FsbGJhY2suaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9NdXRhdGlv
bkV2ZW50LmlkbCBcCisJJChXZWJDb3JlKS9kb20vTXV0YXRpb25PYnNlcnZlci5pZGwgXAogCSQo
V2ViQ29yZSkvZG9tL011dGF0aW9uUmVjb3JkLmlkbCBcCiAJJChXZWJDb3JlKS9kb20vTmFtZWRO
b2RlTWFwLmlkbCBcCiAJJChXZWJDb3JlKS9kb20vTm9kZS5pZGwgXApAQCAtNzkxLDcgKzc5Miw2
IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2ViQ29yZSkvZG9tL1RyZWVXYWxrZXIuaWRs
IFwKIAkkKFdlYkNvcmUpL2RvbS9VSUV2ZW50LmlkbCBcCiAJJChXZWJDb3JlKS9kb20vV2ViS2l0
QW5pbWF0aW9uRXZlbnQuaWRsIFwKLQkkKFdlYkNvcmUpL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyLmlkbCBcCiAJJChXZWJDb3JlKS9kb20vV2ViS2l0TmFtZWRGbG93LmlkbCBcCiAJJChXZWJD
b3JlKS9kb20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmlkbCBcCiAJJChXZWJDb3JlKS9kb20vV2hl
ZWxFdmVudC5pZGwgXApAQCAtMTQ0Nyw2ICsxNDQ3LDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwK
IAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwIFwKKwlT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5oIFwKQEAgLTE0OTEsNyArMTQ5Miw2IEBA
IHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJL
aXRDU1NLZXlmcmFtZVJ1bGVDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1dlYktpdENTU0tleWZyYW1lc1J1bGVDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAgXAotCVNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRDdXN0b20uY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYlNvY2tldEN1c3RvbS5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuY3BwIFwKQEAgLTE5MTks
NiArMTkxOSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvZG9tL011
dGF0aW9uQ2FsbGJhY2suaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uRXZlbnQuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25FdmVudC5oIFwKKwlTb3VyY2UvV2ViQ29y
ZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlv
bk9ic2VydmVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJl
c3RHcm91cC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJl
c3RHcm91cC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJh
dGlvbi5jcHAgXApAQCAtMjAyOSw4ICsyMDMxLDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuaCBcCiAJU291cmNlL1dlYkNvcmUv
ZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1dlYktp
dEFuaW1hdGlvbkV2ZW50LmggXAotCVNvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9i
c2VydmVyLmNwcCBcCi0JU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIu
aCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1dlYktp
dFRyYW5zaXRpb25FdmVudC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0
LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggMDQyMzEzNWE2ZjE1MDY0NmIy
MDJlMWNmY2VkOWMzY2M3ZTczZDAyMC4uMmMwZmYzYmMxMzk5MzZlZDE4ZGFhOGVkYzk3ZjU3YjM0
OTFmYjk0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC0yMDgsNiArMjA4LDcgQEAgdjggewogICAgICAgICBi
aW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlUG9ydEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5k
aW5ncy92OC9jdXN0b20vVjhNZXNzYWdlRXZlbnRDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAgXAorICAgICAgICBiaW5k
aW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOE5hbWVkTm9kZU1hcEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5k
aW5ncy92OC9jdXN0b20vVjhOYW1lZE5vZGVzQ29sbGVjdGlvbi5jcHAgXAogICAgICAgICBiaW5k
aW5ncy92OC9jdXN0b20vVjhOb2RlQ3VzdG9tLmNwcCBcCkBAIC0yMjIsNyArMjIzLDYgQEAgdjgg
ewogICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhTdHlsZVNoZWV0TGlzdEN1c3RvbS5jcHAg
XAogICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhUZXh0VHJhY2tMaXN0Q3VzdG9tLmNwcCBc
CiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdEFuaW1hdGlvbkN1c3RvbS5jcHAg
XAotICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3Vz
dG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdFBvaW50Q29uc3Ry
dWN0b3IuY3BwIFwKICAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4V29ya2VyQ29udGV4dEN1
c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhXb3JrZXJDdXN0b20uY3Bw
IFwKQEAgLTMzOSw2ICszMzksNyBAQCB2OCB7CiAgICAgICAgIGJpbmRpbmdzL2pzL0pTTWVzc2Fn
ZVBvcnRDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3Rv
bS5oIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCBc
CisgICAgICAgIGJpbmRpbmdzL2pzL0pTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgXAogICAg
ICAgICBiaW5kaW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5k
aW5ncy9qcy9KU05vZGVDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNOb2RlRmls
dGVyQ29uZGl0aW9uLmNwcCBcCkBAIC0zNjYsNyArMzY3LDYgQEAgdjggewogICAgICAgICBiaW5k
aW5ncy9qcy9KU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGlu
Z3MvanMvSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGVDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGlu
Z3MvanMvSlNXZWJLaXRDU1NLZXlmcmFtZXNSdWxlQ3VzdG9tLmNwcCBcCi0gICAgICAgIGJpbmRp
bmdzL2pzL0pTV2ViS2l0TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgXAogICAgICAgICBiaW5k
aW5ncy9qcy9KU1dlYktpdFBvaW50Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pT
WE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNYTUxIdHRw
UmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAgXApAQCAtNTc5LDYgKzU3OSw3IEBAIFNPVVJDRVMgKz0g
XAogICAgIGRvbS9Nb3VzZUV2ZW50LmNwcCBcCiAgICAgZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNw
cCBcCiAgICAgZG9tL011dGF0aW9uRXZlbnQuY3BwIFwKKyAgICBkb20vTXV0YXRpb25PYnNlcnZl
ci5jcHAgXAogICAgIGRvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5jcHAgXAogICAg
IGRvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNwcCBcCiAgICAgZG9tL011dGF0aW9u
UmVjb3JkLmNwcCBcCkBAIC02MzMsNyArNjM0LDYgQEAgU09VUkNFUyArPSBcCiAgICAgZG9tL1Vz
ZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yLmNwcCBcCiAgICAgZG9tL1ZpZXdwb3J0QXJndW1lbnRz
LmNwcCBcCiAgICAgZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCBcCi0gICAgZG9tL1dlYktp
dE11dGF0aW9uT2JzZXJ2ZXIuY3BwIFwKICAgICBkb20vV2ViS2l0TmFtZWRGbG93LmNwcCBcCiAg
ICAgZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5jcHAgXAogICAgIGRvbS9XaGVlbEV2ZW50LmNw
cCBcCkBAIC0xNzUxLDYgKzE3NTEsNyBAQCBIRUFERVJTICs9IFwKICAgICBkb20vTW91c2VSZWxh
dGVkRXZlbnQuaCBcCiAgICAgZG9tL011dGF0aW9uQ2FsbGJhY2suaCBcCiAgICAgZG9tL011dGF0
aW9uRXZlbnQuaCBcCisgICAgZG9tL011dGF0aW9uT2JzZXJ2ZXIuaCBcCiAgICAgZG9tL011dGF0
aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uaCBcCiAgICAgZG9tL011dGF0aW9uUmVjb3JkLmggXAog
ICAgIGRvbS9OYW1lZE5vZGVNYXAuaCBcCkBAIC0xNzk5LDcgKzE4MDAsNiBAQCBIRUFERVJTICs9
IFwKICAgICBkb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuaCBcCiAgICAgZG9tL1ZpZXdwb3J0QXJn
dW1lbnRzLmggXAogICAgIGRvbS9XZWJLaXRBbmltYXRpb25FdmVudC5oIFwKLSAgICBkb20vV2Vi
S2l0TXV0YXRpb25PYnNlcnZlci5oIFwKICAgICBkb20vV2ViS2l0TmFtZWRGbG93LmggXAogICAg
IGRvbS9XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCBcCiAgICAgZG9tL1doZWVsRXZlbnQuaCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9V
c2VKU0MuY21ha2UKaW5kZXggMjAxNWUzYjdjZDU4NzA4M2QwOTdiNGI0MDRmZGNiY2IzOTVmMjA4
NS4uYWNiMDdjYmU5ZTBkNmNhNThhNWE4OTg5Mzg1Yzc2ZDQyNDExNDI1NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvVXNlSlNDLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1VzZUpTQy5j
bWFrZQpAQCAtMTE0LDYgKzExNCw3IEBAIExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAg
IGJpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pT
TWVzc2FnZVBvcnRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNr
Q3VzdG9tLmNwcAorICAgIGJpbmRpbmdzL2pzL0pTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAK
ICAgICBiaW5kaW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9q
cy9KU05vZGVDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9u
LmNwcApAQCAtMTQwLDcgKzE0MSw2IEBAIExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAg
IGJpbmRpbmdzL2pzL0pTV2ViS2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5jcHAKICAgICBiaW5kaW5n
cy9qcy9KU1dlYktpdENTU0tleWZyYW1lUnVsZUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9K
U1dlYktpdENTU0tleWZyYW1lc1J1bGVDdXN0b20uY3BwCi0gICAgYmluZGluZ3MvanMvSlNXZWJL
aXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0UG9p
bnRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAK
ICAgICBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0VXBsb2FkQ3VzdG9tLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvVXNlVjguY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9Vc2VWOC5j
bWFrZQppbmRleCA0NDhlMjY2YTg3MWRmNTg3YzM5ZjZhMjlmN2VkNDY2NTQwNTljYzE5Li5mMzBi
YzcxZDg1ZjkzODgwNmU4NTM0Njc1YmRjY2I2OGE2NzQ2MGY2IDEwMDc1NQotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Vc2VWOC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Vc2VWOC5jbWFrZQpAQCAt
MTMyLDYgKzEzMiw3IEBAIExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdz
L3Y4L2N1c3RvbS9WOE1lc3NhZ2VFdmVudEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0
b20vVjhNZXNzYWdlUG9ydEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhNdXRh
dGlvbkNhbGxiYWNrQ3VzdG9tLmNwcAorICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9u
T2JzZXJ2ZXJDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4TmFtZWROb2RlTWFw
Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE5hbWVkTm9kZXNDb2xsZWN0aW9u
LmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE5vZGVDdXN0b20uY3BwCkBAIC0xNTIsNyAr
MTUzLDYgQEAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4VWludDhBcnJheUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJH
TFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2Vi
S2l0QW5pbWF0aW9uQ3VzdG9tLmNwcAotICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdE11
dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0
UG9pbnRDb25zdHJ1Y3Rvci5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJTb2NrZXRD
dXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4V29ya2VyQ29udGV4dEN1c3RvbS5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQppbmRleCAxMmU2Y2EzOTNiMGI5MzJjZWE2OGE3MjFhYjliZWViYjlm
NTRkOGFhLi4zZDJlYTJjZDU4Y2NlM2M2YjMwMjQ2N2RjNmU3NTBmZGExMzM1ZmU3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCkBAIC05NTMsNiArOTUzLDcgQEAKICAgICAgICAgICAgICdkb20vTW91c2VFdmVu
dC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9NdXRhdGlvbkNhbGxiYWNrLmlkbCcsCiAgICAgICAg
ICAgICAnZG9tL011dGF0aW9uRXZlbnQuaWRsJywKKyAgICAgICAgICAgICdkb20vTXV0YXRpb25P
YnNlcnZlci5pZGwnLAogICAgICAgICAgICAgJ2RvbS9NdXRhdGlvblJlY29yZC5pZGwnLAogICAg
ICAgICAgICAgJ2RvbS9OYW1lZE5vZGVNYXAuaWRsJywKICAgICAgICAgICAgICdkb20vTm9kZS5p
ZGwnLApAQCAtOTc4LDcgKzk3OSw2IEBACiAgICAgICAgICAgICAnZG9tL1RyZWVXYWxrZXIuaWRs
JywKICAgICAgICAgICAgICdkb20vVUlFdmVudC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9XZWJL
aXRBbmltYXRpb25FdmVudC5pZGwnLAotICAgICAgICAgICAgJ2RvbS9XZWJLaXRNdXRhdGlvbk9i
c2VydmVyLmlkbCcsCiAgICAgICAgICAgICAnZG9tL1dlYktpdE5hbWVkRmxvdy5pZGwnLAogICAg
ICAgICAgICAgJ2RvbS9XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaWRsJywKICAgICAgICAgICAgICdk
b20vV2hlZWxFdmVudC5pZGwnLApAQCAtMTk5Niw2ICsxOTk2LDcgQEAKICAgICAgICAgICAgICdi
aW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGlu
Z3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9K
U011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy9qcy9K
U011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9K
U05hbWVkTm9kZU1hcEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTm9k
ZUN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckNvbmRp
dGlvbi5jcHAnLApAQCAtMjAzOCw3ICsyMDM5LDYgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy9q
cy9KU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5n
cy9qcy9KU1dlYktpdENTU0tleWZyYW1lUnVsZUN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL2pzL0pTV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZUN1c3RvbS5jcHAnLAotICAgICAgICAg
ICAgJ2JpbmRpbmdzL2pzL0pTV2ViS2l0TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAnLAogICAg
ICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRDdXN0b20uY3BwJywKICAgICAgICAg
ICAgICdiaW5kaW5ncy9qcy9KU1dlYlNvY2tldEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuY3BwJywKQEAgLTIzMDksNiArMjMwOSw3IEBA
CiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUV2ZW50Q3VzdG9tLmNw
cCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZVBvcnRDdXN0b20u
Y3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbkNhbGxiYWNr
Q3VzdG9tLmNwcCcsCisgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25P
YnNlcnZlckN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5h
bWVkTm9kZU1hcEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OE5hbWVkTm9kZXNDb2xsZWN0aW9uLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4TmFtZWROb2Rlc0NvbGxlY3Rpb24uaCcsCkBAIC0yMzM4LDcgKzIzMzksNiBAQAogICAg
ICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFVpbnQ4Q2xhbXBlZEFycmF5Q3VzdG9tLmNw
cCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250
ZXh0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0
QW5pbWF0aW9uQ3VzdG9tLmNwcCcsCi0gICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4
V2ViS2l0TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOFdlYktpdFBvaW50Q29uc3RydWN0b3IuY3BwJywKICAgICAgICAgICAgICdi
aW5kaW5ncy92OC9jdXN0b20vVjhXZWJTb2NrZXRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdi
aW5kaW5ncy92OC9jdXN0b20vVjhXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcCcsCkBAIC01MzE4LDYg
KzUzMTgsOCBAQAogICAgICAgICAgICAgJ2RvbS9NdXRhdGlvbkNhbGxiYWNrLmgnLAogICAgICAg
ICAgICAgJ2RvbS9NdXRhdGlvbkV2ZW50LmNwcCcsCiAgICAgICAgICAgICAnZG9tL011dGF0aW9u
RXZlbnQuaCcsCisgICAgICAgICAgICAnZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwJywKKyAgICAg
ICAgICAgICdkb20vTXV0YXRpb25PYnNlcnZlci5oJywKICAgICAgICAgICAgICdkb20vTXV0YXRp
b25PYnNlcnZlckludGVyZXN0R3JvdXAuY3BwJywKICAgICAgICAgICAgICdkb20vTXV0YXRpb25P
YnNlcnZlckludGVyZXN0R3JvdXAuaCcsCiAgICAgICAgICAgICAnZG9tL011dGF0aW9uT2JzZXJ2
ZXJSZWdpc3RyYXRpb24uY3BwJywKQEAgLTU0MTgsOCArNTQyMCw2IEBACiAgICAgICAgICAgICAn
ZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcCcsCiAgICAgICAgICAgICAnZG9tL1dlYktpdEFuaW1h
dGlvbkV2ZW50LmNwcCcsCiAgICAgICAgICAgICAnZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50Lmgn
LAotICAgICAgICAgICAgJ2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmNwcCcsCi0gICAgICAg
ICAgICAnZG9tL1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCcsCiAgICAgICAgICAgICAnZG9tL1dl
YktpdE5hbWVkRmxvdy5jcHAnLAogICAgICAgICAgICAgJ2RvbS9XZWJLaXROYW1lZEZsb3cuaCcs
CiAgICAgICAgICAgICAnZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5jcHAnLApAQCAtNzcwNyw2
ICs3NzA3LDggQEAKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTTXV0YXRpb25DYWxsYmFjay5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25FdmVudC5jcHAnLAogICAgICAgICAg
ICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvbkV2ZW50
LmgnLAorICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNNdXRhdGlvbk9ic2VydmVyLmNwcCcsCisgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uT2JzZXJ2ZXIuaCcsCiAgICAgICAgICAgICAn
PChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uUmVjb3JkLmNw
cCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U011dGF0aW9uUmVjb3JkLmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNOYW1lZE5vZGVNYXAuY3BwJywKQEAgLTgyNTEsOCArODI1Myw2IEBA
CiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dl
YktpdENTU1JlZ2lvblJ1bGUuaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCcsCiAgICAgICAg
ICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdENTU1Ry
YW5zZm9ybVZhbHVlLmgnLAotICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmNwcCcsCi0gICAgICAgICAgICAn
PChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXIuaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1dlYktpdFBvaW50LmNwcCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdFBvaW50LmgnLAogICAgICAgICAgICAgJzwoUFJP
RFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXROYW1lZEZsb3cuY3BwJywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggZjkx
MDk3ZWM0MjYwOWJhMzM5MjAyYWU4NjcwZGY3ZTVmOWZiMGNiNi4uNmY4NGFlY2FkOWViZTliZDE1
MTY2NDcyM2Y1YmY5YjcxN2IxM2EwNiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKQEAgLTExNTkwLDYgKzExNTkwLDYyIEBACiAJCQkJPgogCQkJPC9G
aWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGly
KVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNdXRhdGlvbk9ic2VydmVyLmNw
cCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMy
IgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgor
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8
V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29s
CisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fp
cm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgor
CQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJE
ZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJ
CQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlBy
b2R1Y3Rpb258V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJ
CQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0
aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291
cmNlc1xKU011dGF0aW9uT2JzZXJ2ZXIuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQog
CQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xKU011dGF0aW9uUmVjb3JkLmNwcCIKIAkJCQk+CiAJCQkJPEZp
bGVDb25maWd1cmF0aW9uCkBAIC0yMzA2Myw2MiArMjMxMTksNiBAQAogCQkJCT4KIAkJCTwvRmls
ZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilc
b2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTV2ViS2l0TXV0YXRpb25PYnNlcnZl
ci5jcHAiCi0JCQkJPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z3xX
aW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wK
LQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4z
MiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZM
aXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8
VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNl
X0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJ
CT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0J
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFt
ZT0iRGVidWdfQWxsfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJ
PgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1l
PSJQcm9kdWN0aW9ufFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJ
PgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2
ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZl
ZFNvdXJjZXNcSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCi0JCQkJPgotCQkJPC9GaWxlPgot
CQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpc
JChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXROYW1lZEZsb3cuY3BwIgogCQkJ
CT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KQEAgLTUxNTE5LDYgKzUxNTE5LDYyIEBACiAJCQkJ
PgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxNdXRhdGlv
bk9ic2VydmVyLmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9
IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJ
CQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxl
YXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8
VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19D
YWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+
CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9
IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJ
CQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgor
CQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJ
CQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJ
CQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJ
CQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cZG9tXE11dGF0aW9uT2JzZXJ2ZXIuaCIKKwkJCQk+CisJCQk8L0Zp
bGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXE11dGF0aW9uT2JzZXJ2ZXJJ
bnRlcmVzdEdyb3VwLmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCkBAIC01NDIw
Nyw2MiArNTQyNjMsNiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRp
dmVQYXRoPSIuLlxkb21cV2ViS2l0TXV0YXRpb25PYnNlcnZlci5jcHAiCi0JCQkJPgotCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKLQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIK
LQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgot
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgot
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxXZWJLaXRN
dXRhdGlvbk9ic2VydmVyLmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGRvbVxXZWJLaXROYW1lZEZsb3cuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KQEAgLTY3OTkwLDcgKzY3OTkwLDcgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5k
aW5nc1xqc1xKU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
YmluZGluZ3NcanNcSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpAQCAtNjgwNDIsNyAr
NjgwNDIsNyBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJCTwvRmlsZT4KIAkJCQk8
RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZUN1c3RvbS5jcHAi
CisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNOYW1lZE5vZGVNYXBDdXN0b20u
Y3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8
V2luMzIiCkBAIC02ODA5NCwxMSArNjgwOTQsNyBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdz
XGpzXEpTTm9kZUN1c3RvbS5oIgotCQkJCQk+Ci0JCQkJPC9GaWxlPgotCQkJCTxGaWxlCi0JCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCIK
KwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU05vZGVDdXN0b20uY3BwIgogCQkJ
CQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBA
IC02ODE1MCwxMSArNjgxNDYsMTEgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8
L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU05v
ZGVGaWx0ZXJDb25kaXRpb24uaCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xK
U05vZGVDdXN0b20uaCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZUZpbHRlckN1c3RvbS5jcHAiCisJCQkJCVJl
bGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCIKIAkJ
CQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpA
QCAtNjgyMDYsNyArNjgyMDIsMTEgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8
L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU05v
ZGVJdGVyYXRvckN1c3RvbS5jcHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNc
SlNOb2RlRmlsdGVyQ29uZGl0aW9uLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUK
KwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU05vZGVGaWx0ZXJDdXN0b20uY3Bw
IgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2lu
MzIiCkBAIC02ODI1OCw3ICs2ODI1OCw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJ
CQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNc
SlNOb2RlTGlzdEN1c3RvbS5jcHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNc
SlNOb2RlSXRlcmF0b3JDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02ODMxMCw3ICs2ODMxMCw3IEBACiAJCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0
aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNOb3RpZmljYXRpb25DdXN0b20uY3BwIgorCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZUxpc3RDdXN0b20uY3BwIgogCQkJCQk+
CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02
ODM2Miw3ICs2ODM2Miw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxl
PgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNQbHVnaW5F
bGVtZW50RnVuY3Rpb25zLmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xK
U05vdGlmaWNhdGlvbkN1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9u
CiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKQEAgLTY4NDE0LDExICs2ODQxNCw3IEBACiAJCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0
aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmgiCi0JCQkJ
CT4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5n
c1xqc1xKU1Byb2Nlc3NpbmdJbnN0cnVjdGlvbkN1c3RvbS5jcHAiCisJCQkJCVJlbGF0aXZlUGF0
aD0iLi5cYmluZGluZ3NcanNcSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcCIKIAkJCQkJPgog
CQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpAQCAtNjg0
NzAsNyArNjg0NjYsMTEgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+
CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1JlcXVlc3RB
bmltYXRpb25GcmFtZUNhbGxiYWNrQ3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxi
aW5kaW5nc1xqc1xKU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaCIKKwkJCQkJPgorCQkJCTwvRmls
ZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTUHJvY2Vz
c2luZ0luc3RydWN0aW9uQ3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpAQCAtNjg1MjIsNyArNjg1MjIsNyBAQAogCQkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU2NyaXB0UHJvZmlsZU5vZGVDdXN0b20uY3BwIgor
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTUmVxdWVzdEFuaW1hdGlvbkZyYW1l
Q2FsbGJhY2tDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJ
CQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02ODU3NCw3ICs2ODU3NCw3IEBACiAJCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0
aD0iLi5cYmluZGluZ3NcanNcSlNTaGFyZWRXb3JrZXJDdXN0b20uY3BwIgorCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU2NyaXB0UHJvZmlsZU5vZGVDdXN0b20uY3BwIgogCQkJ
CQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBA
IC02ODYyNiw3ICs2ODYyNiw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9G
aWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNTUUxS
ZXN1bHRTZXRSb3dMaXN0Q3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5n
c1xqc1xKU1NoYXJlZFdvcmtlckN1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1
cmF0aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKQEAgLTY4Njc4LDcgKzY4Njc4LDcgQEAK
IAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1NRTFRyYW5zYWN0aW9uQ3VzdG9tLmNwcCIK
KwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1NRTFJlc3VsdFNldFJvd0xpc3RD
dXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0i
RGVidWd8V2luMzIiCkBAIC02ODczMCw3ICs2ODczMCw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmlu
ZGluZ3NcanNcSlNTUUxUcmFuc2FjdGlvblN5bmNDdXN0b20uY3BwIgorCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGJpbmRpbmdzXGpzXEpTU1FMVHJhbnNhY3Rpb25DdXN0b20uY3BwIgogCQkJCQk+CiAJ
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02ODc4
Miw3ICs2ODc4Miw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgog
CQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNTdG9yYWdlQ3Vz
dG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1NRTFRyYW5zYWN0
aW9uU3luY0N1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJ
CQlOYW1lPSJEZWJ1Z3xXaW4zMiIKQEAgLTY4ODM0LDExICs2ODgzNCw3IEBACiAJCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0
aD0iLi5cYmluZGluZ3NcanNcSlNTdG9yYWdlQ3VzdG9tLmgiCi0JCQkJCT4KLQkJCQk8L0ZpbGU+
Ci0JCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1N0eWxlU2hl
ZXRDdXN0b20uY3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU3RvcmFn
ZUN1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1l
PSJEZWJ1Z3xXaW4zMiIKQEAgLTY4ODkwLDcgKzY4ODg2LDExIEBACiAJCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5c
YmluZGluZ3NcanNcSlNTdHlsZVNoZWV0TGlzdEN1c3RvbS5jcHAiCisJCQkJCVJlbGF0aXZlUGF0
aD0iLi5cYmluZGluZ3NcanNcSlNTdG9yYWdlQ3VzdG9tLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+
CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1N0eWxlU2hl
ZXRDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFt
ZT0iRGVidWd8V2luMzIiCkBAIC02ODk0Miw3ICs2ODk0Miw3IEBACiAJCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5c
YmluZGluZ3NcanNcSlNTVkdFbGVtZW50SW5zdGFuY2VDdXN0b20uY3BwIgorCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU3R5bGVTaGVldExpc3RDdXN0b20uY3BwIgogCQkJCQk+
CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02
ODk5NCw3ICs2ODk5NCw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxl
PgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNTVkdMZW5n
dGhDdXN0b20uY3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU1ZHRWxl
bWVudEluc3RhbmNlQ3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
IAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpAQCAtNjkwNDYsNyArNjkwNDYsNyBAQAogCQkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU1ZHUGF0aFNlZ0N1c3RvbS5jcHAiCisJCQkJCVJlbGF0
aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNTVkdMZW5ndGhDdXN0b20uY3BwIgogCQkJCQk+CiAJ
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02OTA5
OCw3ICs2OTA5OCw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgog
CQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNUZXh0Q3VzdG9t
LmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1NWR1BhdGhTZWdDdXN0
b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVi
dWd8V2luMzIiCkBAIC02OTE1MCw3ICs2OTE1MCw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGlu
Z3NcanNcSlNUcmVlV2Fsa2VyQ3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5k
aW5nc1xqc1xKU1RleHRDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02OTIwMiw3ICs2OTIwMiw3IEBACiAJCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0
aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNXZWJLaXRBbmltYXRpb25DdXN0b20uY3BwIgorCQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTVHJlZVdhbGtlckN1c3RvbS5jcHAiCiAJ
CQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIK
QEAgLTY5MjU0LDcgKzY5MjU0LDcgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8
L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1dl
YktpdEFuaW1hdGlvbkxpc3RDdXN0b20uY3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRp
bmdzXGpzXEpTV2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpAQCAtNjkzMDYsNyArNjkzMDYs
NyBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQot
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxl
Q3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1dlYktpdEFu
aW1hdGlvbkxpc3RDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgog
CQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02OTM1OCw3ICs2OTM1OCw3IEBACiAJCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZl
UGF0aD0iLi5cYmluZGluZ3NcanNcSlNXZWJLaXRDU1NLZXlmcmFtZXNSdWxlQ3VzdG9tLmNwcCIK
KwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1dlYktpdENTU0tleWZyYW1lUnVs
ZUN1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1l
PSJEZWJ1Z3xXaW4zMiIKQEAgLTY5NDEwLDcgKzY5NDEwLDcgQEAKIAkJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxi
aW5kaW5nc1xqc1xKU1dlYktpdENTU01hdHJpeEN1c3RvbS5jcHAiCisJCQkJCVJlbGF0aXZlUGF0
aD0iLi5cYmluZGluZ3NcanNcSlNXZWJLaXRDU1NLZXlmcmFtZXNSdWxlQ3VzdG9tLmNwcCIKIAkJ
CQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpA
QCAtNjk0NjIsNyArNjk0NjIsNyBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJCTwv
RmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTV2Vi
S2l0TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmlu
ZGluZ3NcanNcSlNXZWJLaXRDU1NNYXRyaXhDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZTdhMWU3YmRiZDVh
YjBjNmUzMDg5ZjhmM2I4YzNjMjdjMzU1ZGE0Yi4uMDkwYmJmMDI1MTI4NGQ2M2U0M2FkOTYzMTVh
YjYzNTk4M2M3ZjllZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtNTc0MCwxMyArNTc0MCwxMyBAQAogCQlDNkYwOEZDOTE0MzEw
MDBEMDA2ODU4NDkgLyogSlNNdXRhdGlvblJlY29yZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwOEZDNzE0MzEwMDBEMDA2ODU4NDkgLyogSlNN
dXRhdGlvblJlY29yZC5jcHAgKi87IH07CiAJCUM2RjA4RkNBMTQzMTAwMEQwMDY4NTg0OSAvKiBK
U011dGF0aW9uUmVjb3JkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDNkYwOEZDODE0MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRhdGlvblJlY29yZC5oICov
OyB9OwogCQlDNkYwOTAwQTE0MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25DYWxsYmFjay5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDkwMDExNDMy
N0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uQ2FsbGJhY2suaCAqLzsgfTsKLQkJQzZGMDkwMEUxNDMy
N0I2MTAwNjg1ODQ5IC8qIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDkwMDUxNDMyN0I2MTAwNjg1ODQ5
IC8qIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIuY3BwICovOyB9OwotCQlDNkYwOTAwRjE0MzI3QjYx
MDA2ODU4NDkgLyogV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDkwMDYxNDMyN0I2MTAwNjg1ODQ5IC8qIFdl
YktpdE11dGF0aW9uT2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQlDNkYwOTAwRTE0MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25PYnNl
cnZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
NkYwOTAwNTE0MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25PYnNlcnZlci5jcHAgKi87IH07CisJ
CUM2RjA5MDBGMTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbk9ic2VydmVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwOTAwNjE0MzI3QjYxMDA2
ODU4NDkgLyogTXV0YXRpb25PYnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUM2RjA5MDI4MTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0
aW9uQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzZGMDkwMjAxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFjay5jcHAg
Ki87IH07CiAJCUM2RjA5MDI5MTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2su
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RjA5MDIx
MTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2suaCAqLzsgfTsKLQkJQzZGMDkw
MkMxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTV2ViS2l0TXV0YXRpb25PYnNlcnZlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwOTAyNDE0MzI3RDRG
MDA2ODU4NDkgLyogSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmNwcCAqLzsgfTsKLQkJQzZGMDkw
MkQxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDkwMjUxNDMyN0Q0RjAw
Njg1ODQ5IC8qIEpTV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oICovOyB9OwotCQlDNkYwOTE3RjE0
M0EyQkI5MDA2ODU4NDkgLyogSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RjA5MTdFMTQzQTJC
QjkwMDY4NTg0OSAvKiBKU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwICovOyB9Owor
CQlDNkYwOTAyQzE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RjA5MDI0MTQzMjdE
NEYwMDY4NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXIuY3BwICovOyB9OworCQlDNkYwOTAyRDE0
MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwOTAyNTE0MzI3RDRGMDA2ODU4NDkgLyog
SlNNdXRhdGlvbk9ic2VydmVyLmggKi87IH07CisJCUM2RjA5MTdGMTQzQTJCQjkwMDY4NTg0OSAv
KiBKU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDkxN0UxNDNBMkJCOTAwNjg1ODQ5IC8qIEpTTXV0YXRp
b25PYnNlcnZlckN1c3RvbS5jcHAgKi87IH07CiAJCUM2RjA5MTg1MTQzQTZDM0IwMDY4NTg0OSAv
KiBKU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDkxODQxNDNBNkMzQjAwNjg1ODQ5IC8qIEpTTXV0YXRp
b25DYWxsYmFja0N1c3RvbS5jcHAgKi87IH07CiAJCUM2RjQxMDQ3MTMwQzZFODkwMDM5M0RFNCAv
KiBFbnRyeUJhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzZGNDEwNDYxMzBDNkU4OTAwMzkzREU0IC8qIEVudHJ5QmFzZS5jcHAgKi87IH07CiAJ
CUNBM0JGNjdDMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQTNCRjY3QjEwRDk5QkFFMDBF
NkNFNTMgLyogU2Nyb2xsQW5pbWF0b3IuY3BwICovOyB9OwpAQCAtMTI5MTIsMTQgKzEyOTEyLDE0
IEBACiAJCUM2RjA4RkM4MTQzMTAwMEQwMDY4NTg0OSAvKiBKU011dGF0aW9uUmVjb3JkLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTXV0YXRpb25SZWNvcmQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzZGMDkwMDExNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0
aW9uQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTXV0YXRpb25D
YWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNkYwOTAwMjE0MzI3QjYx
MDA2ODU4NDkgLyogTXV0YXRpb25DYWxsYmFjay5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
TXV0YXRpb25DYWxsYmFjay5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUM2RjA5
MDA1MTQzMjdCNjEwMDY4NTg0OSAvKiBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDNkYwOTAwNjE0MzI3QjYxMDA2ODU4NDkg
LyogV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUM2RjA5MDA3MTQzMjdCNjEwMDY4NTg0OSAvKiBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzZGMDkwMDUxNDMyN0I2MTAwNjg1ODQ5IC8qIE11
dGF0aW9uT2JzZXJ2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TXV0YXRpb25PYnNlcnZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM2RjA5
MDA2MTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbk9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE11dGF0aW9uT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQzZGMDkwMDcxNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uT2JzZXJ2ZXIu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE11dGF0aW9uT2JzZXJ2ZXIuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDNkYwOTAyMDE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRh
dGlvbkNhbGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
TXV0YXRpb25DYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM2RjA5
MDIxMTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNdXRhdGlvbkNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUM2RjA5MDI0MTQzMjdENEYwMDY4NTg0OSAvKiBKU1dlYktpdE11dGF0
aW9uT2JzZXJ2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
QzZGMDkwMjUxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQzZGMDkxN0UxNDNBMkJCOTAwNjg1ODQ5
IC8qIEpTV2ViS2l0TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDNkYwOTAyNDE0MzI3RDRGMDA2ODU4NDkgLyog
SlNNdXRhdGlvbk9ic2VydmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTTXV0YXRpb25PYnNlcnZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUM2RjA5MDI1MTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNdXRhdGlvbk9ic2VydmVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUM2RjA5MTdFMTQzQTJCQjkwMDY4NTg0OSAvKiBKU011dGF0
aW9uT2JzZXJ2ZXJDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQzZGMDkxODQxNDNBNkMzQjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFja0N1c3Rv
bS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU011dGF0aW9uQ2Fs
bGJhY2tDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNkY0MTA0NjEz
MEM2RTg5MDAzOTNERTQgLyogRW50cnlCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IEVudHJ5QmFzZS5jcHA7IHBhdGggPSBNb2R1bGVzL2ZpbGVzeXN0ZW0vRW50
cnlCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0EzQkY2N0IxMEQ5OUJB
RTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFNjcm9sbEFuaW1hdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTE4NTQ4LDYgKzE4NTQ4LDggQEAKIAkJCQlGRTgwREE2MjBFOUM0NzAzMDAwRDZGNzUg
LyogSlNHZW9wb3NpdGlvbi5oICovLAogCQkJCUM2RjA5MDIwMTQzMjdENEYwMDY4NTg0OSAvKiBK
U011dGF0aW9uQ2FsbGJhY2suY3BwICovLAogCQkJCUM2RjA5MDIxMTQzMjdENEYwMDY4NTg0OSAv
KiBKU011dGF0aW9uQ2FsbGJhY2suaCAqLywKKwkJCQlDNkYwOTAyNDE0MzI3RDRGMDA2ODU4NDkg
LyogSlNNdXRhdGlvbk9ic2VydmVyLmNwcCAqLywKKwkJCQlDNkYwOTAyNTE0MzI3RDRGMDA2ODU4
NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyLmggKi8sCiAJCQkJQzZGMDhGQzcxNDMxMDAwRDAwNjg1
ODQ5IC8qIEpTTXV0YXRpb25SZWNvcmQuY3BwICovLAogCQkJCUM2RjA4RkM4MTQzMTAwMEQwMDY4
NTg0OSAvKiBKU011dGF0aW9uUmVjb3JkLmggKi8sCiAJCQkJQkNEOUMyQkMwQzE3QjY5RTAwNUM5
MEEyIC8qIEpTTmFtZWROb2RlTWFwLmNwcCAqLywKQEAgLTE4NTgwLDggKzE4NTgyLDYgQEAKIAkJ
CQk3NTQxNUQ1NDEyOUFCMkQyMDAzQUQ2NjkgLyogSlNTcGVlY2hJbnB1dFJlc3VsdExpc3QuaCAq
LywKIAkJCQk2NURGMzFFRjA5RDFDQzYwMDAwQkUzMjUgLyogSlNUZXh0LmNwcCAqLywKIAkJCQk2
NURGMzFGMDA5RDFDQzYwMDAwQkUzMjUgLyogSlNUZXh0LmggKi8sCi0JCQkJQzZGMDkwMjQxNDMy
N0Q0RjAwNjg1ODQ5IC8qIEpTV2ViS2l0TXV0YXRpb25PYnNlcnZlci5jcHAgKi8sCi0JCQkJQzZG
MDkwMjUxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oICovLAog
CQkJCUQ3NjEzQUMyMTQ3NTNFNTYwMERCODYwNiAvKiBKU1dlYktpdE5hbWVkRmxvdy5jcHAgKi8s
CiAJCQkJRDc2MTNBQzMxNDc1M0U1NjAwREI4NjA2IC8qIEpTV2ViS2l0TmFtZWRGbG93LmggKi8s
CiAJCQkpOwpAQCAtMTk5ODYsNiArMTk5ODYsNyBAQAogCQkJCUUxQURFRDQ2MEU3NkI4REQwMDRB
MUE1RSAvKiBKU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcCAqLywKIAkJCQk0MUY1ODRDNjEwNDY1MkNC
MDA5Q0FBNjQgLyogSlNNZXNzYWdlUG9ydEN1c3RvbS5oICovLAogCQkJCUM2RjA5MTg0MTQzQTZD
M0IwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwICovLAorCQkJCUM2RjA5
MTdFMTQzQTJCQjkwMDY4NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwICovLAog
CQkJCUJDRDlDMjVGMEMxN0FBNjcwMDVDOTBBMiAvKiBKU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAg
Ki8sCiAJCQkJQkNEOUMyNjAwQzE3QUE2NzAwNUM5MEEyIC8qIEpTTm9kZUN1c3RvbS5jcHAgKi8s
CiAJCQkJQkM5NDM5QzIxMTZDRjQ5NDAwNDhDNzUwIC8qIEpTTm9kZUN1c3RvbS5oICovLApAQCAt
MjAwMjUsNyArMjAwMjYsNiBAQAogCQkJCTMxOTQ2MjMxMTMwMjJGNjUwMDRCQjNGOCAvKiBKU1dl
YktpdEFuaW1hdGlvbkxpc3RDdXN0b20uY3BwICovLAogCQkJCUUxQUQxNEM0MTI5NzM1NDkwMEFD
QTk4OSAvKiBKU1dlYktpdENTU0tleWZyYW1lUnVsZUN1c3RvbS5jcHAgKi8sCiAJCQkJRTFBRDE0
QjQxMjk3MzRDQTAwQUNBOTg5IC8qIEpTV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZUN1c3RvbS5jcHAg
Ki8sCi0JCQkJQzZGMDkxN0UxNDNBMkJCOTAwNjg1ODQ5IC8qIEpTV2ViS2l0TXV0YXRpb25PYnNl
cnZlckN1c3RvbS5jcHAgKi8sCiAJCQkJQkMyNzVCNzgxMUM1RDFDMzAwQzkyMDZDIC8qIEpTV2Vi
S2l0UG9pbnRDdXN0b20uY3BwICovLAogCQkJCTUxOEEzNEM2MTAyNkM4QzkwMDFCNjg5NiAvKiBK
U1dlYlNvY2tldEN1c3RvbS5jcHAgKi8sCiAJCQkJRTE4MjU4QUIwRUYzQ0Q3MDAwOTMzMjQyIC8q
IEpTV29ya2VyQ29udGV4dEN1c3RvbS5jcHAgKi8sCkBAIC0yMTMwOSw2ICsyMTMwOSw5IEBACiAJ
CQkJRDZFNTI4QTIxNDlBOTI2RDAwRUZFMUYzIC8qIE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdy
b3VwLmggKi8sCiAJCQkJRDZFMjc2QUQxNDYzNzQ1NTAwMUQyODBBIC8qIE11dGF0aW9uT2JzZXJ2
ZXJSZWdpc3RyYXRpb24uY3BwICovLAogCQkJCUQ2RTI3NkFFMTQ2Mzc0NTUwMDFEMjgwQSAvKiBN
dXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmggKi8sCisJCQkJQzZGMDkwMDUxNDMyN0I2MTAw
Njg1ODQ5IC8qIE11dGF0aW9uT2JzZXJ2ZXIuY3BwICovLAorCQkJCUM2RjA5MDA2MTQzMjdCNjEw
MDY4NTg0OSAvKiBNdXRhdGlvbk9ic2VydmVyLmggKi8sCisJCQkJQzZGMDkwMDcxNDMyN0I2MTAw
Njg1ODQ5IC8qIE11dGF0aW9uT2JzZXJ2ZXIuaWRsICovLAogCQkJCUM2RjA4RkI5MTQzMEZFOEYw
MDY4NTg0OSAvKiBNdXRhdGlvblJlY29yZC5jcHAgKi8sCiAJCQkJQzZGMDhGQkExNDMwRkU4RjAw
Njg1ODQ5IC8qIE11dGF0aW9uUmVjb3JkLmggKi8sCiAJCQkJQzZGMDhGQkIxNDMwRkU4RjAwNjg1
ODQ5IC8qIE11dGF0aW9uUmVjb3JkLmlkbCAqLywKQEAgLTIxNDQzLDkgKzIxNDQ2LDYgQEAKIAkJ
CQkzMUMwRkYxQjBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwICov
LAogCQkJCTMxQzBGRjFDMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5o
ICovLAogCQkJCTMxQzBGRjFEMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVu
dC5pZGwgKi8sCi0JCQkJQzZGMDkwMDUxNDMyN0I2MTAwNjg1ODQ5IC8qIFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXIuY3BwICovLAotCQkJCUM2RjA5MDA2MTQzMjdCNjEwMDY4NTg0OSAvKiBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyLmggKi8sCi0JCQkJQzZGMDkwMDcxNDMyN0I2MTAwNjg1ODQ5IC8qIFdl
YktpdE11dGF0aW9uT2JzZXJ2ZXIuaWRsICovLAogCQkJCUQ3NjEzQTRFMTQ3NEYxM0YwMERCODYw
NiAvKiBXZWJLaXROYW1lZEZsb3cuY3BwICovLAogCQkJCUQ3NjEzQTREMTQ3NEYxM0YwMERCODYw
NiAvKiBXZWJLaXROYW1lZEZsb3cuaCAqLywKIAkJCQlENzYxM0E0QTE0NzRFRTk1MDBEQjg2MDYg
LyogV2ViS2l0TmFtZWRGbG93LmlkbCAqLywKQEAgLTIzNTQ2LDYgKzIzNTQ2LDcgQEAKIAkJCQlB
ODY2MjlEMTA5REEyQjQ4MDA5NjMzQTUgLyogSlNNb3VzZUV2ZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQlDNkYwOTAyOTE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmggaW4g
SGVhZGVycyAqLywKIAkJCQk2NURGMzFGQzA5RDFDQzYwMDAwQkUzMjUgLyogSlNNdXRhdGlvbkV2
ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlDNkYwOTAyRDE0MzI3RDRGMDA2ODU4NDkgLyogSlNN
dXRhdGlvbk9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNkYwOEZDQTE0MzEwMDBEMDA2
ODU4NDkgLyogSlNNdXRhdGlvblJlY29yZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNEOUMyQzEw
QzE3QjY5RTAwNUM5MEEyIC8qIEpTTmFtZWROb2RlTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
OUQyNDdGODBENzU3RTM0MDBGREY5NTkgLyogSlNOYXZpZ2F0b3IuaCBpbiBIZWFkZXJzICovLApA
QCAtMjM3OTMsNyArMjM3OTQsNiBAQAogCQkJCTQ5ODM5MTQwMEYxRTc2NzUwMEMyMzc4MiAvKiBK
U1dlYktpdENTU01hdHJpeC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOEFEMEE1OTUxNEM4ODMzNjAw
MEQ4M0M1IC8qIEpTV2ViS2l0Q1NTUmVnaW9uUnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2
MTFFNUIwRTFDNERFMDAwRjZBNTc5IC8qIEpTV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCBpbiBI
ZWFkZXJzICovLAotCQkJCUM2RjA5MDJEMTQzMjdENEYwMDY4NTg0OSAvKiBKU1dlYktpdE11dGF0
aW9uT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5NEJENzlFMEY1NUM5NEMwMDc0Nzgy
OCAvKiBKU1dlYktpdFBvaW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUMwRkY0MDBFNENFRkFD
MDA3RDZGRTUgLyogSlNXZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTVEQTVFMEZEMTAyQjk1MzgwMDA4OENGOSAvKiBKU1dlYlNvY2tldC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yMzkyNiw2ICsyMzkyNiw3IEBACiAJCQkJRkRCMTcwMDYxNEEyQkFCMjAwQTJCNUQ5IC8q
IE11bHRpQ2hhbm5lbFJlc2FtcGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzZGMDkwMEExNDMy
N0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTg1
MDMxQjRBMEE0NEVGQzcwMEY5OTJFMCAvKiBNdXRhdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywK
KwkJCQlDNkYwOTAwRjE0MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25PYnNlcnZlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRDZFNTI4QTQxNDlBOTI2RDAwRUZFMUYzIC8qIE11dGF0aW9uT2JzZXJ2
ZXJJbnRlcmVzdEdyb3VwLmggaW4gSGVhZGVycyAqLywKIAkJCQlENkUyNzZCMDE0NjM3NDU1MDAx
RDI4MEEgLyogTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQzZGMDhGQkQxNDMwRkU4RjAwNjg1ODQ5IC8qIE11dGF0aW9uUmVjb3JkLmggaW4gSGVhZGVy
cyAqLywKQEAgLTI0ODY4LDcgKzI0ODY5LDYgQEAKIAkJCQkyOUNENjFERTE0NkQwMjg5MDA2OEU4
MkEgLyogV2ViS2l0Q1NTU2hhZGVyVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOUFERDIz
MENDNDAzMjYwMDA5OEM0QyAvKiBXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJODk4Nzg1NjYxMjJDQTA2NDAwM0FBQkRBIC8qIFdlYktpdEZsYWdzLmggaW4gSGVh
ZGVycyAqLywKLQkJCQlDNkYwOTAwRjE0MzI3QjYxMDA2ODU4NDkgLyogV2ViS2l0TXV0YXRpb25P
YnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDk0QkQ3OTUwRjU1QzhFRTAwNzQ3ODI4IC8q
IFdlYktpdFBvaW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUMwRkYyNTBFNENFQjZFMDA3RDZG
RTUgLyogV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkNGMzMy
RjBGMkI5QTI1MDA0QjY3OTUgLyogV2ViTGF5ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjY3NTAs
NiArMjY3NTAsOCBAQAogCQkJCUM2RjA5MDI4MTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9u
Q2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzZGMDkxODUxNDNBNkMzQjAwNjg1ODQ5
IC8qIEpTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NURG
MzFGQjA5RDFDQzYwMDAwQkUzMjUgLyogSlNNdXRhdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUM2RjA5MDJDMTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJQzZGMDkxN0YxNDNBMkJCOTAwNjg1ODQ5IC8qIEpTTXV0YXRp
b25PYnNlcnZlckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNkYwOEZDOTE0MzEwMDBE
MDA2ODU4NDkgLyogSlNNdXRhdGlvblJlY29yZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0Q5
QzJDMDBDMTdCNjlFMDA1QzkwQTIgLyogSlNOYW1lZE5vZGVNYXAuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQkNEOUMyNjMwQzE3QUE2NzAwNUM5MEEyIC8qIEpTTmFtZWROb2RlTWFwQ3VzdG9tLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMjcwMzMsOCArMjcwMzUsNiBAQAogCQkJCTQ5ODM5MTNGMEYx
RTc2NzUwMEMyMzc4MiAvKiBKU1dlYktpdENTU01hdHJpeC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk4QUQwQTU5NDE0Qzg4MzM2MDAwRDgzQzUgLyogSlNXZWJLaXRDU1NSZWdpb25SdWxlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTMxNjExRTVBMEUxQzRERTAwMEY2QTU3OSAvKiBKU1dlYktpdENT
U1RyYW5zZm9ybVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUM2RjA5MDJDMTQzMjdENEYw
MDY4NTg0OSAvKiBKU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0J
CQkJQzZGMDkxN0YxNDNBMkJCOTAwNjg1ODQ5IC8qIEpTV2ViS2l0TXV0YXRpb25PYnNlcnZlckN1
c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlENzYxM0FDNDE0NzUzRTU2MDBEQjg2MDYgLyog
SlNXZWJLaXROYW1lZEZsb3cuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDk0QkQ3OUQwRjU1Qzk0
QzAwNzQ3ODI4IC8qIEpTV2ViS2l0UG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyNzVC
NzkxMUM1RDFDMzAwQzkyMDZDIC8qIEpTV2ViS2l0UG9pbnRDdXN0b20uY3BwIGluIFNvdXJjZXMg
Ki8sCkBAIC0yNzE2Niw2ICsyNzE2Niw3IEBACiAJCQkJOTMzMDlERkIwOTlFNjQ5MjAwNTZFNTgx
IC8qIE1vdmVTZWxlY3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEQjE3MDA1
MTRBMkJBQjIwMEEyQjVEOSAvKiBNdWx0aUNoYW5uZWxSZXNhbXBsZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJODUwMzFCNDkwQTQ0RUZDNzAwRjk5MkUwIC8qIE11dGF0aW9uRXZlbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJQzZGMDkwMEUxNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uT2Jz
ZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDZFNTI4QTMxNDlBOTI2RDAwRUZFMUYzIC8q
IE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUQ2
RTI3NkFGMTQ2Mzc0NTUwMDFEMjgwQSAvKiBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUM2RjA4RkJDMTQzMEZFOEYwMDY4NTg0OSAvKiBNdXRhdGlv
blJlY29yZC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI3OTE1LDcgKzI3OTE2LDYgQEAKIAkJCQk1
MDM4QkMwNzE0NzExQ0RCMDA5NUUwRDEgLyogV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkM5QUREODAwQ0M0MDkyMjAwMDk4QzRDIC8qIFdlYktpdENTU1RyYW5z
Zm9ybVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMTQxNEI1MTNBMEYwNTAwMDE5OTk2
QyAvKiBXZWJLaXRGb250RmFtaWx5TmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQzZGMDkw
MEUxNDMyN0I2MTAwNjg1ODQ5IC8qIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRDc2MTNBNTAxNDc0RjEzRjAwREI4NjA2IC8qIFdlYktpdE5hbWVkRmxvdy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUMwRkYyNDBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0
VHJhbnNpdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQ0YzMzJFMEYyQjlBMjUw
MDRCNjc5NSAvKiBXZWJMYXllci5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKaW5kZXggOWM4YTM4ZmRjOTc1
Yjc5ZDc5ZmQ3ZWQxNmVhZWE1MjE0N2Q5OTVkNi4uNjJiOGJlYzBmMThkZDY3OWZiNmQwZWY1ODhm
YmYzMTlmYWM5MDk4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNC
aW5kaW5nc0FsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Jp
bmRpbmdzQWxsSW5PbmUuY3BwCkBAIC0xMTksNiArMTE5LDcgQEAKICNpbmNsdWRlICJKU01lc3Nh
Z2VFdmVudEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAiCiAj
aW5jbHVkZSAiSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCIKKyNpbmNsdWRlICJKU011dGF0
aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTTmFtZWROb2RlTWFwQ3VzdG9tLmNw
cCIKICNpbmNsdWRlICJKU05vZGVDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTTm9kZUZpbHRlckNv
bmRpdGlvbi5jcHAiCkBAIC0xNTcsNyArMTU4LDYgQEAKICNpbmNsdWRlICJKU1dlYktpdEFuaW1h
dGlvbkxpc3RDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlQ3Vz
dG9tLmNwcCIKICNpbmNsdWRlICJKU1dlYktpdENTU0tleWZyYW1lc1J1bGVDdXN0b20uY3BwIgot
I2luY2x1ZGUgIkpTV2ViS2l0TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAiCiAjaW5jbHVkZSAi
SlNXZWJLaXRQb2ludEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNXZWJTb2NrZXRDdXN0b20uY3Bw
IgogI2luY2x1ZGUgIkpTV29ya2VyQ29udGV4dEJhc2UuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5jcHAKaW5kZXggOTE3N2E0
YjEwZjg4YzlkZGY4NmUwMjk5ODc2N2I3ODY4ZmM1ZGY3Yy4uOGI5MjY5Y2ZiZjY1Yzc3MGU4YmI2
MjljZDY5MDE1YTQyYWQ3ODM1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuY3BwCkBAIC0yNSw3ICsyNSw3IEBACiAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKLSNpbmNs
dWRlICJXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZl
ci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM0LDcgKzM0LDcgQEAgSlNDOjpFeGVj
U3RhdGUqIEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6c19tYWluVGhyZWFkU3RhdGUgPSAwOwogI2lm
IEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCiB2b2lkIEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6
ZGlkTGVhdmVTY3JpcHRDb250ZXh0KCkKIHsKLSAgICBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpk
ZWxpdmVyQWxsTXV0YXRpb25zKCk7CisgICAgTXV0YXRpb25PYnNlcnZlcjo6ZGVsaXZlckFsbE11
dGF0aW9ucygpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwCmluZGV4IDQzNzVjZTQxNzQ3MGQ1
ZTg1N2FhNDUwZDczYzVjMDE0MzAyMDc5MTUuLjJkOGVlZjk1OTk5NGE0NGRjMjIzYWQ1ODI0Y2Ji
MmMzYmM3MjdjNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0
YXRpb25DYWxsYmFja0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcApAQCAtMzQsOCArMzQsOCBAQAogCiAjaW5jbHVk
ZSAiSlNNdXRhdGlvbkNhbGxiYWNrLmgiCiAKKyNpbmNsdWRlICJKU011dGF0aW9uT2JzZXJ2ZXIu
aCIKICNpbmNsdWRlICJKU011dGF0aW9uUmVjb3JkLmgiCi0jaW5jbHVkZSAiSlNXZWJLaXRNdXRh
dGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2lu
Y2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CiAKQEAgLTQzLDcgKzQzLDcgQEAgdXNpbmcgbmFtZXNw
YWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1ib29sIEpTTXV0YXRpb25DYWxsYmFj
azo6aGFuZGxlRXZlbnQoTXV0YXRpb25SZWNvcmRBcnJheSogbXV0YXRpb25zLCBXZWJLaXRNdXRh
dGlvbk9ic2VydmVyKiBvYnNlcnZlcikKK2Jvb2wgSlNNdXRhdGlvbkNhbGxiYWNrOjpoYW5kbGVF
dmVudChNdXRhdGlvblJlY29yZEFycmF5KiBtdXRhdGlvbnMsIE11dGF0aW9uT2JzZXJ2ZXIqIG9i
c2VydmVyKQogewogICAgIGlmICghY2FuSW52b2tlQ2FsbGJhY2soKSkKICAgICAgICAgcmV0dXJu
IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9u
T2JzZXJ2ZXJDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlv
bk9ic2VydmVyQ3VzdG9tLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45Y2MzYjUyNDcwYzkxOGQ0NDM0YmRkMjA5
ZjU4MmE2MTA1NjNkM2E4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcApAQCAtMCwwICsxLDEyMiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBk
aXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCisKKyNpbmNs
dWRlICJKU011dGF0aW9uT2JzZXJ2ZXIuaCIKKworI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIK
KyNpbmNsdWRlICJKU0RpY3Rpb25hcnkuaCIKKyNpbmNsdWRlICJKU011dGF0aW9uQ2FsbGJhY2su
aCIKKyNpbmNsdWRlICJKU05vZGUuaCIKKyNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyLmgiCisj
aW5jbHVkZSAiTm9kZS5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KKyNpbmNsdWRlIDx3
dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgorCit1c2lu
ZyBuYW1lc3BhY2UgSlNDOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0VuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgSlNNdXRhdGlvbk9ic2VydmVyQ29uc3RydWN0b3I6OmNvbnN0cnVjdEpT
TXV0YXRpb25PYnNlcnZlcihFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgaWYgKGV4ZWMtPmFyZ3Vt
ZW50Q291bnQoKSA8IDEpCisgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRl
Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOworCisgICAgSlNPYmplY3QqIG9iamVjdCA9
IGV4ZWMtPmFyZ3VtZW50KDApLmdldE9iamVjdCgpOworICAgIGlmICghb2JqZWN0KSB7CisgICAg
ICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBUWVBFX01JU01BVENIX0VSUik7CisgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgfQorCisgICAgSlNNdXRh
dGlvbk9ic2VydmVyQ29uc3RydWN0b3IqIGpzQ29uc3RydWN0b3IgPSBqc0Nhc3Q8SlNNdXRhdGlv
bk9ic2VydmVyQ29uc3RydWN0b3IqPihleGVjLT5jYWxsZWUoKSk7CisgICAgUmVmUHRyPE11dGF0
aW9uQ2FsbGJhY2s+IGNhbGxiYWNrID0gSlNNdXRhdGlvbkNhbGxiYWNrOjpjcmVhdGUob2JqZWN0
LCBqc0NvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShhc09iamVjdCh0b0pTKGV4ZWMsIGpzQ29uc3RydWN0b3ItPmdsb2JhbE9iamVjdCgpLCBN
dXRhdGlvbk9ic2VydmVyOjpjcmVhdGUoY2FsbGJhY2sucmVsZWFzZSgpKSkpKTsKK30KKworc3Ry
dWN0IEJvb2xlYW5PcHRpb24geworICAgIGNvbnN0IGNoYXIqIG5hbWU7CisgICAgTXV0YXRpb25P
YnNlcnZlck9wdGlvbnMgdmFsdWU7Cit9OworCitzdGF0aWMgY29uc3QgQm9vbGVhbk9wdGlvbiBi
b29sZWFuT3B0aW9uc1tdID0geworICAgIHsgImNoaWxkTGlzdCIsIE11dGF0aW9uT2JzZXJ2ZXI6
OkNoaWxkTGlzdCB9LAorICAgIHsgImF0dHJpYnV0ZXMiLCBNdXRhdGlvbk9ic2VydmVyOjpBdHRy
aWJ1dGVzIH0sCisgICAgeyAiY2hhcmFjdGVyRGF0YSIsIE11dGF0aW9uT2JzZXJ2ZXI6OkNoYXJh
Y3RlckRhdGEgfSwKKyAgICB7ICJzdWJ0cmVlIiwgTXV0YXRpb25PYnNlcnZlcjo6U3VidHJlZSB9
LAorICAgIHsgImF0dHJpYnV0ZU9sZFZhbHVlIiwgTXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRl
T2xkVmFsdWUgfSwKKyAgICB7ICJjaGFyYWN0ZXJEYXRhT2xkVmFsdWUiLCBNdXRhdGlvbk9ic2Vy
dmVyOjpDaGFyYWN0ZXJEYXRhT2xkVmFsdWUgfQorfTsKKworc3RhdGljIGNvbnN0IHNpemVfdCBu
dW1Cb29sZWFuT3B0aW9ucyA9IHNpemVvZihib29sZWFuT3B0aW9ucykgLyBzaXplb2YoQm9vbGVh
bk9wdGlvbik7CisKK0pTVmFsdWUgSlNNdXRhdGlvbk9ic2VydmVyOjpvYnNlcnZlKEV4ZWNTdGF0
ZSogZXhlYykKK3sKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMikKKyAgICAgICAg
cmV0dXJuIHRocm93RXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhl
YykpOworICAgIE5vZGUqIHRhcmdldCA9IHRvTm9kZShleGVjLT5hcmd1bWVudCgwKSk7CisgICAg
aWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
KworICAgIEpTT2JqZWN0KiBvcHRpb25zT2JqZWN0ID0gZXhlYy0+YXJndW1lbnQoMSkuZ2V0T2Jq
ZWN0KCk7CisgICAgaWYgKCFvcHRpb25zT2JqZWN0KSB7CisgICAgICAgIHNldERPTUV4Y2VwdGlv
bihleGVjLCBUWVBFX01JU01BVENIX0VSUik7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgp
OworICAgIH0KKworICAgIEpTRGljdGlvbmFyeSBkaWN0aW9uYXJ5KGV4ZWMsIG9wdGlvbnNPYmpl
Y3QpOworICAgIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIG9wdGlvbnMgPSAwOworICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBudW1Cb29sZWFuT3B0aW9uczsgKytpKSB7CisgICAgICAgIGJv
b2wgb3B0aW9uID0gZmFsc2U7CisgICAgICAgIGlmICghZGljdGlvbmFyeS50cnlHZXRQcm9wZXJ0
eShib29sZWFuT3B0aW9uc1tpXS5uYW1lLCBvcHRpb24pKQorICAgICAgICAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7CisgICAgICAgIGlmIChvcHRpb24pCisgICAgICAgICAgICBvcHRpb25zIHw9
IGJvb2xlYW5PcHRpb25zW2ldLnZhbHVlOworICAgIH0KKworICAgIEhhc2hTZXQ8QXRvbWljU3Ry
aW5nPiBhdHRyaWJ1dGVGaWx0ZXI7CisgICAgaWYgKCFkaWN0aW9uYXJ5LnRyeUdldFByb3BlcnR5
KCJhdHRyaWJ1dGVGaWx0ZXIiLCBhdHRyaWJ1dGVGaWx0ZXIpKQorICAgICAgICByZXR1cm4ganNV
bmRlZmluZWQoKTsKKyAgICBpZiAoIWF0dHJpYnV0ZUZpbHRlci5pc0VtcHR5KCkpCisgICAgICAg
IG9wdGlvbnMgfD0gTXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRlRmlsdGVyOworCisgICAgRXhj
ZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgaW1wbCgpLT5vYnNlcnZlKHRhcmdldCwgb3B0aW9ucywg
YXR0cmlidXRlRmlsdGVyLCBlYyk7CisgICAgaWYgKGVjKQorICAgICAgICBzZXRET01FeGNlcHRp
b24oZXhlYywgZWMpOworICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0TXV0YXRp
b25PYnNlcnZlckN1c3RvbS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM5YTI0
NmExNTk5NGJhMDk4NjQyYmY1MjJkOGQ1NmFjYjdkMjFhZjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEyMiAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0g
KgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
Ci0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVS
UykKLQotI2luY2x1ZGUgIkpTV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oIgotCi0jaW5jbHVkZSAi
RXhjZXB0aW9uQ29kZS5oIgotI2luY2x1ZGUgIkpTRGljdGlvbmFyeS5oIgotI2luY2x1ZGUgIkpT
TXV0YXRpb25DYWxsYmFjay5oIgotI2luY2x1ZGUgIkpTTm9kZS5oIgotI2luY2x1ZGUgIk5vZGUu
aCIKLSNpbmNsdWRlICJXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCi0jaW5jbHVkZSA8cnVudGlt
ZS9FcnJvci5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQv
QXRvbWljU3RyaW5nLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1dlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXJDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyKEV4ZWNT
dGF0ZSogZXhlYykKLXsKLSAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKLSAgICAg
ICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJv
cihleGVjKSk7Ci0KLSAgICBKU09iamVjdCogb2JqZWN0ID0gZXhlYy0+YXJndW1lbnQoMCkuZ2V0
T2JqZWN0KCk7Ci0gICAgaWYgKCFvYmplY3QpIHsKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4
ZWMsIFRZUEVfTUlTTUFUQ0hfRVJSKTsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKLSAgICB9Ci0KLSAgICBKU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXJDb25z
dHJ1Y3RvcioganNDb25zdHJ1Y3RvciA9IGpzQ2FzdDxKU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXJD
b25zdHJ1Y3Rvcio+KGV4ZWMtPmNhbGxlZSgpKTsKLSAgICBSZWZQdHI8TXV0YXRpb25DYWxsYmFj
az4gY2FsbGJhY2sgPSBKU011dGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZShvYmplY3QsIGpzQ29uc3Ry
dWN0b3ItPmdsb2JhbE9iamVjdCgpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2Jq
ZWN0KHRvSlMoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCksIFdlYktpdE11dGF0
aW9uT2JzZXJ2ZXI6OmNyZWF0ZShjYWxsYmFjay5yZWxlYXNlKCkpKSkpOwotfQotCi1zdHJ1Y3Qg
Qm9vbGVhbk9wdGlvbiB7Ci0gICAgY29uc3QgY2hhciogbmFtZTsKLSAgICBNdXRhdGlvbk9ic2Vy
dmVyT3B0aW9ucyB2YWx1ZTsKLX07Ci0KLXN0YXRpYyBjb25zdCBCb29sZWFuT3B0aW9uIGJvb2xl
YW5PcHRpb25zW10gPSB7Ci0gICAgeyAiY2hpbGRMaXN0IiwgV2ViS2l0TXV0YXRpb25PYnNlcnZl
cjo6Q2hpbGRMaXN0IH0sCi0gICAgeyAiYXR0cmlidXRlcyIsIFdlYktpdE11dGF0aW9uT2JzZXJ2
ZXI6OkF0dHJpYnV0ZXMgfSwKLSAgICB7ICJjaGFyYWN0ZXJEYXRhIiwgV2ViS2l0TXV0YXRpb25P
YnNlcnZlcjo6Q2hhcmFjdGVyRGF0YSB9LAotICAgIHsgInN1YnRyZWUiLCBXZWJLaXRNdXRhdGlv
bk9ic2VydmVyOjpTdWJ0cmVlIH0sCi0gICAgeyAiYXR0cmlidXRlT2xkVmFsdWUiLCBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVPbGRWYWx1ZSB9LAotICAgIHsgImNoYXJhY3RlckRh
dGFPbGRWYWx1ZSIsIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OkNoYXJhY3RlckRhdGFPbGRWYWx1
ZSB9Ci19OwotCi1zdGF0aWMgY29uc3Qgc2l6ZV90IG51bUJvb2xlYW5PcHRpb25zID0gc2l6ZW9m
KGJvb2xlYW5PcHRpb25zKSAvIHNpemVvZihCb29sZWFuT3B0aW9uKTsKLQotSlNWYWx1ZSBKU1dl
YktpdE11dGF0aW9uT2JzZXJ2ZXI6Om9ic2VydmUoRXhlY1N0YXRlKiBleGVjKQotewotICAgIGlm
IChleGVjLT5hcmd1bWVudENvdW50KCkgPCAyKQotICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihl
eGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgTm9kZSogdGFy
Z2V0ID0gdG9Ob2RlKGV4ZWMtPmFyZ3VtZW50KDApKTsKLSAgICBpZiAoZXhlYy0+aGFkRXhjZXB0
aW9uKCkpCi0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotCi0gICAgSlNPYmplY3QqIG9w
dGlvbnNPYmplY3QgPSBleGVjLT5hcmd1bWVudCgxKS5nZXRPYmplY3QoKTsKLSAgICBpZiAoIW9w
dGlvbnNPYmplY3QpIHsKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIFRZUEVfTUlTTUFU
Q0hfRVJSKTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgSlNE
aWN0aW9uYXJ5IGRpY3Rpb25hcnkoZXhlYywgb3B0aW9uc09iamVjdCk7Ci0gICAgTXV0YXRpb25P
YnNlcnZlck9wdGlvbnMgb3B0aW9ucyA9IDA7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IG51bUJvb2xlYW5PcHRpb25zOyArK2kpIHsKLSAgICAgICAgYm9vbCBvcHRpb24gPSBmYWxzZTsK
LSAgICAgICAgaWYgKCFkaWN0aW9uYXJ5LnRyeUdldFByb3BlcnR5KGJvb2xlYW5PcHRpb25zW2ld
Lm5hbWUsIG9wdGlvbikpCi0gICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICAg
ICAgaWYgKG9wdGlvbikKLSAgICAgICAgICAgIG9wdGlvbnMgfD0gYm9vbGVhbk9wdGlvbnNbaV0u
dmFsdWU7Ci0gICAgfQotCi0gICAgSGFzaFNldDxBdG9taWNTdHJpbmc+IGF0dHJpYnV0ZUZpbHRl
cjsKLSAgICBpZiAoIWRpY3Rpb25hcnkudHJ5R2V0UHJvcGVydHkoImF0dHJpYnV0ZUZpbHRlciIs
IGF0dHJpYnV0ZUZpbHRlcikpCi0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIGlm
ICghYXR0cmlidXRlRmlsdGVyLmlzRW1wdHkoKSkKLSAgICAgICAgb3B0aW9ucyB8PSBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVGaWx0ZXI7Ci0KLSAgICBFeGNlcHRpb25Db2RlIGVj
ID0gMDsKLSAgICBpbXBsKCktPm9ic2VydmUodGFyZ2V0LCBvcHRpb25zLCBhdHRyaWJ1dGVGaWx0
ZXIsIGVjKTsKLSAgICBpZiAoZWMpCi0gICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7
Ci0gICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
LQotI2VuZGlmIC8vIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFJlY3Vyc2lvblNjb3BlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4UmVjdXJzaW9uU2NvcGUuY3BwCmluZGV4IDkyYmU3MjBiMTRjNjlm
MDVmNmVlZjZhOTZjMjY4MmM0YjNjZmNmNjUuLmM1Y2JjOWMxNTUxNDA3Nzg5MDVlNDIyODBlMWZk
YjAyNDAyMDMwODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UmVj
dXJzaW9uU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UmVjdXJz
aW9uU2NvcGUuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSAiVjhSZWN1cnNpb25TY29w
ZS5oIgogCiAjaW5jbHVkZSAiSURCUGVuZGluZ1RyYW5zYWN0aW9uTW9uaXRvci5oIgotI2luY2x1
ZGUgIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIKKyNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVy
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDksNyArNDksNyBAQCB2b2lkIFY4UmVj
dXJzaW9uU2NvcGU6OmRpZExlYXZlU2NyaXB0Q29udGV4dCgpCiAKICNpZiBFTkFCTEUoTVVUQVRJ
T05fT0JTRVJWRVJTKQogICAgIGlmIChtX2lzRG9jdW1lbnRDb250ZXh0KQotICAgICAgICBXZWJL
aXRNdXRhdGlvbk9ic2VydmVyOjpkZWxpdmVyQWxsTXV0YXRpb25zKCk7CisgICAgICAgIE11dGF0
aW9uT2JzZXJ2ZXI6OmRlbGl2ZXJBbGxNdXRhdGlvbnMoKTsKICNlbmRpZgogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbkNhbGxiYWNr
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9u
Q2FsbGJhY2tDdXN0b20uY3BwCmluZGV4IGJmZmJlNzQwMGZkYTJjYTU4ZDJmOWI3NzA4NmY2YzZi
YmZhMDUyN2YuLjcxNGZkYTI5YzlhMWIyMzA1N2ZkNGFmZDIxZDIxNGZlOTVhMmE1Y2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uQ2FsbGJh
Y2tDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE11
dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwCkBAIC0zNyw5ICszNyw5IEBACiAjaW5jbHVkZSAiU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgogI2luY2x1ZGUg
IlY4Q3VzdG9tVm9pZENhbGxiYWNrLmgiCisjaW5jbHVkZSAiVjhNdXRhdGlvbk9ic2VydmVyLmgi
CiAjaW5jbHVkZSAiVjhNdXRhdGlvblJlY29yZC5oIgogI2luY2x1ZGUgIlY4UHJveHkuaCIKLSNp
bmNsdWRlICJWOFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0
aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgpAQCAtNDcsNyArNDcsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWJvb2wgVjhN
dXRhdGlvbkNhbGxiYWNrOjpoYW5kbGVFdmVudChNdXRhdGlvblJlY29yZEFycmF5KiBtdXRhdGlv
bnMsIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIqIG9ic2VydmVyKQorYm9vbCBWOE11dGF0aW9uQ2Fs
bGJhY2s6OmhhbmRsZUV2ZW50KE11dGF0aW9uUmVjb3JkQXJyYXkqIG11dGF0aW9ucywgTXV0YXRp
b25PYnNlcnZlciogb2JzZXJ2ZXIpCiB7CiAgICAgQVNTRVJUKG11dGF0aW9ucyk7CiAgICAgaWYg
KCFtdXRhdGlvbnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiYTU5
ZDVkOGQwOWRiZWJiODZmYzM4YzdmMDNiMThiNzQ1NjJjYjkKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbk9ic2VydmVyQ3VzdG9t
LmNwcApAQCAtMCwwICsxLDEyMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShN
VVRBVElPTl9PQlNFUlZFUlMpCisKKyNpbmNsdWRlICJWOE11dGF0aW9uT2JzZXJ2ZXIuaCIKKwor
I2luY2x1ZGUgIkRpY3Rpb25hcnkuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5j
bHVkZSAiTXV0YXRpb25PYnNlcnZlci5oIgorI2luY2x1ZGUgIlY4QmluZGluZy5oIgorI2luY2x1
ZGUgIlY4QmluZGluZ01hY3Jvcy5oIgorI2luY2x1ZGUgIlY4RE9NV3JhcHBlci5oIgorI2luY2x1
ZGUgIlY4TXV0YXRpb25DYWxsYmFjay5oIgorI2luY2x1ZGUgIlY4Tm9kZS5oIgorI2luY2x1ZGUg
IlY4UHJveHkuaCIKKyNpbmNsdWRlICJWOFV0aWxpdGllcy5oIgorCisjaW5jbHVkZSA8d3RmL0hh
c2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhNdXRhdGlvbk9ic2VydmVyOjpj
b25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit7CisgICAgSU5D
X1NUQVRTKCJET00uTXV0YXRpb25PYnNlcnZlci5Db25zdHJ1Y3RvciIpOworCisgICAgaWYgKCFh
cmdzLklzQ29uc3RydWN0Q2FsbCgpKQorICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dUeXBl
RXJyb3IoIkRPTSBvYmplY3QgY29uc3RydWN0b3IgY2Fubm90IGJlIGNhbGxlZCBhcyBhIGZ1bmN0
aW9uLiIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKworICAgIGlmIChDb25zdHJ1Y3Rvck1vZGU6OmN1
cnJlbnQoKSA9PSBDb25zdHJ1Y3Rvck1vZGU6OldyYXBFeGlzdGluZ09iamVjdCkKKyAgICAgICAg
cmV0dXJuIGFyZ3MuSG9sZGVyKCk7CisKKyAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCisgICAg
ICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0
SXNvbGF0ZSgpKTsKKworICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGFyZyA9IGFyZ3NbMF07Cisg
ICAgaWYgKCFhcmctPklzT2JqZWN0KCkpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKFRZUEVf
TUlTTUFUQ0hfRVJSLCBhcmdzLkdldElzb2xhdGUoKSk7CisKKyAgICBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0ID0gZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIGlmICgh
Y29udGV4dCkKKyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93RXJyb3IoVjhQcm94eTo6UmVm
ZXJlbmNlRXJyb3IsICJNdXRhdGlvbk9ic2VydmVyIGNvbnN0cnVjdG9yJ3MgYXNzb2NpYXRlZCBm
cmFtZSB1bmF2YWlsYWJsZSIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKworICAgIFJlZlB0cjxNdXRh
dGlvbkNhbGxiYWNrPiBjYWxsYmFjayA9IFY4TXV0YXRpb25DYWxsYmFjazo6Y3JlYXRlKGFyZywg
Y29udGV4dCk7CisgICAgUmVmUHRyPE11dGF0aW9uT2JzZXJ2ZXI+IG9ic2VydmVyID0gTXV0YXRp
b25PYnNlcnZlcjo6Y3JlYXRlKGNhbGxiYWNrLnJlbGVhc2UoKSk7CisKKyAgICBWOERPTVdyYXBw
ZXI6OnNldERPTVdyYXBwZXIoYXJncy5Ib2xkZXIoKSwgJmluZm8sIG9ic2VydmVyLmdldCgpKTsK
KyAgICBWOERPTVdyYXBwZXI6OnNldEpTV3JhcHBlckZvckRPTU9iamVjdChvYnNlcnZlci5yZWxl
YXNlKCksIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+OjpOZXcoYXJncy5Ib2xkZXIoKSkpOwor
ICAgIHJldHVybiBhcmdzLkhvbGRlcigpOworfQorCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhN
dXRhdGlvbk9ic2VydmVyOjpvYnNlcnZlQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJn
cykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5NdXRhdGlvbk9ic2VydmVyLm9ic2VydmUiKTsKKyAg
ICBpZiAoYXJncy5MZW5ndGgoKSA8IDIpCisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05v
dEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKyAgICBNdXRhdGlvbk9i
c2VydmVyKiBpbXAgPSBWOE11dGF0aW9uT2JzZXJ2ZXI6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkp
OworICAgIEVYQ0VQVElPTl9CTE9DSyhOb2RlKiwgdGFyZ2V0LCBWOE5vZGU6Okhhc0luc3RhbmNl
KGFyZ3NbMF0pID8gVjhOb2RlOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0
KGFyZ3NbMF0pKSA6IDApOworCisgICAgaWYgKCFhcmdzWzFdLT5Jc09iamVjdCgpKQorICAgICAg
ICByZXR1cm4gdGhyb3dFcnJvcihUWVBFX01JU01BVENIX0VSUiwgYXJncy5HZXRJc29sYXRlKCkp
OworCisgICAgRGljdGlvbmFyeSBvcHRpb25zT2JqZWN0KGFyZ3NbMV0pOworICAgIHVuc2lnbmVk
IG9wdGlvbnMgPSAwOworICAgIEhhc2hTZXQ8QXRvbWljU3RyaW5nPiBhdHRyaWJ1dGVGaWx0ZXI7
CisgICAgYm9vbCBvcHRpb247CisgICAgaWYgKG9wdGlvbnNPYmplY3QuZ2V0KCJjaGlsZExpc3Qi
LCBvcHRpb24pICYmIG9wdGlvbikKKyAgICAgICAgb3B0aW9ucyB8PSBNdXRhdGlvbk9ic2VydmVy
OjpDaGlsZExpc3Q7CisgICAgaWYgKG9wdGlvbnNPYmplY3QuZ2V0KCJhdHRyaWJ1dGVzIiwgb3B0
aW9uKSAmJiBvcHRpb24pCisgICAgICAgIG9wdGlvbnMgfD0gTXV0YXRpb25PYnNlcnZlcjo6QXR0
cmlidXRlczsKKyAgICBpZiAob3B0aW9uc09iamVjdC5nZXQoImF0dHJpYnV0ZUZpbHRlciIsIGF0
dHJpYnV0ZUZpbHRlcikpCisgICAgICAgIG9wdGlvbnMgfD0gTXV0YXRpb25PYnNlcnZlcjo6QXR0
cmlidXRlRmlsdGVyOworICAgIGlmIChvcHRpb25zT2JqZWN0LmdldCgiY2hhcmFjdGVyRGF0YSIs
IG9wdGlvbikgJiYgb3B0aW9uKQorICAgICAgICBvcHRpb25zIHw9IE11dGF0aW9uT2JzZXJ2ZXI6
OkNoYXJhY3RlckRhdGE7CisgICAgaWYgKG9wdGlvbnNPYmplY3QuZ2V0KCJzdWJ0cmVlIiwgb3B0
aW9uKSAmJiBvcHRpb24pCisgICAgICAgIG9wdGlvbnMgfD0gTXV0YXRpb25PYnNlcnZlcjo6U3Vi
dHJlZTsKKyAgICBpZiAob3B0aW9uc09iamVjdC5nZXQoImF0dHJpYnV0ZU9sZFZhbHVlIiwgb3B0
aW9uKSAmJiBvcHRpb24pCisgICAgICAgIG9wdGlvbnMgfD0gTXV0YXRpb25PYnNlcnZlcjo6QXR0
cmlidXRlT2xkVmFsdWU7CisgICAgaWYgKG9wdGlvbnNPYmplY3QuZ2V0KCJjaGFyYWN0ZXJEYXRh
T2xkVmFsdWUiLCBvcHRpb24pICYmIG9wdGlvbikKKyAgICAgICAgb3B0aW9ucyB8PSBNdXRhdGlv
bk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhT2xkVmFsdWU7CisKKyAgICBFeGNlcHRpb25Db2RlIGVj
ID0gMDsKKyAgICBpbXAtPm9ic2VydmUodGFyZ2V0LCBvcHRpb25zLCBhdHRyaWJ1dGVGaWx0ZXIs
IGVjKTsKKyAgICBpZiAoZWMpCisgICAgICAgIHJldHVybiBWOFByb3h5OjpzZXRET01FeGNlcHRp
b24oZWMsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKyAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFs
dWU+KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShN
VVRBVElPTl9PQlNFUlZFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3Bw
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNGVmNWYyZWNkMjE3OTY0MDRjOWMzNDI0
YjI0ZjVkZTYzOTA5NDQwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXJDdXN0b20uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTIxICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlz
dHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwot
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVk
ZSAiY29uZmlnLmgiCi0KLSNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQotCi0jaW5jbHVk
ZSAiVjhXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCi0KLSNpbmNsdWRlICJEaWN0aW9uYXJ5Lmgi
Ci0jaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgotI2luY2x1ZGUgIlY4QmluZGluZy5oIgotI2lu
Y2x1ZGUgIlY4QmluZGluZ01hY3Jvcy5oIgotI2luY2x1ZGUgIlY4RE9NV3JhcHBlci5oIgotI2lu
Y2x1ZGUgIlY4TXV0YXRpb25DYWxsYmFjay5oIgotI2luY2x1ZGUgIlY4Tm9kZS5oIgotI2luY2x1
ZGUgIlY4UHJveHkuaCIKLSNpbmNsdWRlICJWOFV0aWxpdGllcy5oIgotI2luY2x1ZGUgIldlYktp
dE11dGF0aW9uT2JzZXJ2ZXIuaCIKLQotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVk
ZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6Y29uc3RydWN0b3JD
YWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQotewotICAgIElOQ19TVEFUUygiRE9N
LldlYktpdE11dGF0aW9uT2JzZXJ2ZXIuQ29uc3RydWN0b3IiKTsKLQotICAgIGlmICghYXJncy5J
c0NvbnN0cnVjdENhbGwoKSkKLSAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93VHlwZUVycm9y
KCJET00gb2JqZWN0IGNvbnN0cnVjdG9yIGNhbm5vdCBiZSBjYWxsZWQgYXMgYSBmdW5jdGlvbi4i
LCBhcmdzLkdldElzb2xhdGUoKSk7Ci0KLSAgICBpZiAoQ29uc3RydWN0b3JNb2RlOjpjdXJyZW50
KCkgPT0gQ29uc3RydWN0b3JNb2RlOjpXcmFwRXhpc3RpbmdPYmplY3QpCi0gICAgICAgIHJldHVy
biBhcmdzLkhvbGRlcigpOwotCi0gICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQotICAgICAgICBy
ZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xh
dGUoKSk7Ci0KLSAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiBhcmcgPSBhcmdzWzBdOwotICAgIGlm
ICghYXJnLT5Jc09iamVjdCgpKQotICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihUWVBFX01JU01B
VENIX0VSUiwgYXJncy5HZXRJc29sYXRlKCkpOwotCi0gICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCA9IGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKLSAgICBpZiAoIWNvbnRl
eHQpCi0gICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd0Vycm9yKFY4UHJveHk6OlJlZmVyZW5j
ZUVycm9yLCAiV2ViS2l0TXV0YXRpb25PYnNlcnZlciBjb25zdHJ1Y3RvcidzIGFzc29jaWF0ZWQg
ZnJhbWUgdW5hdmFpbGFibGUiLCBhcmdzLkdldElzb2xhdGUoKSk7Ci0KLSAgICBSZWZQdHI8TXV0
YXRpb25DYWxsYmFjaz4gY2FsbGJhY2sgPSBWOE11dGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZShhcmcs
IGNvbnRleHQpOwotICAgIFJlZlB0cjxXZWJLaXRNdXRhdGlvbk9ic2VydmVyPiBvYnNlcnZlciA9
IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OmNyZWF0ZShjYWxsYmFjay5yZWxlYXNlKCkpOwotCi0g
ICAgVjhET01XcmFwcGVyOjpzZXRET01XcmFwcGVyKGFyZ3MuSG9sZGVyKCksICZpbmZvLCBvYnNl
cnZlci5nZXQoKSk7Ci0gICAgVjhET01XcmFwcGVyOjpzZXRKU1dyYXBwZXJGb3JET01PYmplY3Qo
b2JzZXJ2ZXIucmVsZWFzZSgpLCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Pjo6TmV3KGFyZ3Mu
SG9sZGVyKCkpKTsKLSAgICByZXR1cm4gYXJncy5Ib2xkZXIoKTsKLX0KLQotdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IFY4V2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6b2JzZXJ2ZUNhbGxiYWNrKGNvbnN0
IHY4OjpBcmd1bWVudHMmIGFyZ3MpCi17Ci0gICAgSU5DX1NUQVRTKCJET00uV2ViS2l0TXV0YXRp
b25PYnNlcnZlci5vYnNlcnZlIik7Ci0gICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAyKQotICAgICAg
ICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElz
b2xhdGUoKSk7Ci0gICAgV2ViS2l0TXV0YXRpb25PYnNlcnZlciogaW1wID0gVjhXZWJLaXRNdXRh
dGlvbk9ic2VydmVyOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxP
Q0soTm9kZSosIHRhcmdldCwgVjhOb2RlOjpIYXNJbnN0YW5jZShhcmdzWzBdKSA/IFY4Tm9kZTo6
dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChhcmdzWzBdKSkgOiAwKTsKLQot
ICAgIGlmICghYXJnc1sxXS0+SXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJuIHRocm93RXJyb3Io
VFlQRV9NSVNNQVRDSF9FUlIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKLQotICAgIERpY3Rpb25hcnkg
b3B0aW9uc09iamVjdChhcmdzWzFdKTsKLSAgICB1bnNpZ25lZCBvcHRpb25zID0gMDsKLSAgICBI
YXNoU2V0PEF0b21pY1N0cmluZz4gYXR0cmlidXRlRmlsdGVyOwotICAgIGJvb2wgb3B0aW9uOwot
ICAgIGlmIChvcHRpb25zT2JqZWN0LmdldCgiY2hpbGRMaXN0Iiwgb3B0aW9uKSAmJiBvcHRpb24p
Ci0gICAgICAgIG9wdGlvbnMgfD0gV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6Q2hpbGRMaXN0Owot
ICAgIGlmIChvcHRpb25zT2JqZWN0LmdldCgiYXR0cmlidXRlcyIsIG9wdGlvbikgJiYgb3B0aW9u
KQotICAgICAgICBvcHRpb25zIHw9IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXM7
Ci0gICAgaWYgKG9wdGlvbnNPYmplY3QuZ2V0KCJhdHRyaWJ1dGVGaWx0ZXIiLCBhdHRyaWJ1dGVG
aWx0ZXIpKQotICAgICAgICBvcHRpb25zIHw9IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJp
YnV0ZUZpbHRlcjsKLSAgICBpZiAob3B0aW9uc09iamVjdC5nZXQoImNoYXJhY3RlckRhdGEiLCBv
cHRpb24pICYmIG9wdGlvbikKLSAgICAgICAgb3B0aW9ucyB8PSBXZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyOjpDaGFyYWN0ZXJEYXRhOwotICAgIGlmIChvcHRpb25zT2JqZWN0LmdldCgic3VidHJlZSIs
IG9wdGlvbikgJiYgb3B0aW9uKQotICAgICAgICBvcHRpb25zIHw9IFdlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXI6OlN1YnRyZWU7Ci0gICAgaWYgKG9wdGlvbnNPYmplY3QuZ2V0KCJhdHRyaWJ1dGVPbGRW
YWx1ZSIsIG9wdGlvbikgJiYgb3B0aW9uKQotICAgICAgICBvcHRpb25zIHw9IFdlYktpdE11dGF0
aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZU9sZFZhbHVlOwotICAgIGlmIChvcHRpb25zT2JqZWN0Lmdl
dCgiY2hhcmFjdGVyRGF0YU9sZFZhbHVlIiwgb3B0aW9uKSAmJiBvcHRpb24pCi0gICAgICAgIG9w
dGlvbnMgfD0gV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6Q2hhcmFjdGVyRGF0YU9sZFZhbHVlOwot
Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaW1wLT5vYnNlcnZlKHRhcmdldCwgb3B0
aW9ucywgYXR0cmlidXRlRmlsdGVyLCBlYyk7Ci0gICAgaWYgKGVjKQotICAgICAgICByZXR1cm4g
VjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKGVjLCBhcmdzLkdldElzb2xhdGUoKSk7Ci0gICAgcmV0
dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
Ci0KLSNlbmRpZiAvLyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0No
YXJhY3RlckRhdGEuY3BwCmluZGV4IDc2MTk4ZmJlNWQ4MDE2ZjE5MGVjODM3NWIwMDU4OTEzY2Iz
ZDdkNzkuLjMzOTQwMzg1MTNkYWU5OTE3MjQ1NTliODEzZTNjZGRiZGMzYzNmOGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vQ2hhcmFjdGVyRGF0YS5jcHAKQEAgLTMyLDcgKzMyLDYgQEAKICNpbmNsdWRlICJO
b2RlUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNpbmNsdWRl
ICJUZXh0QnJlYWtJdGVyYXRvci5oIgotI2luY2x1ZGUgIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIu
aCIKIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0NoaWxkTGlzdE11dGF0aW9uU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGlsZExp
c3RNdXRhdGlvblNjb3BlLmgKaW5kZXggNmRkNTIzNjQwYjYxZjA2ZjNhNTNiYTU3NWI1Y2FlZDky
MzdjNDA1Zi4uYmNlMjY3NTFjMGY0ODYyZDBjNGE1MzkwZmNjNWMzZmFlZDRjNTAwMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NoaWxkTGlzdE11dGF0aW9uU2NvcGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5oCkBAIC0zNCw4ICszNCw4
IEBACiAjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKIAogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCisjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgIk5vZGUuaCIKLSNp
bmNsdWRlICJXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+
CkBAIC00Niw3ICs0Niw3IEBAIGNsYXNzIENoaWxkTGlzdE11dGF0aW9uU2NvcGUgewogICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKENoaWxkTGlzdE11dGF0aW9uU2NvcGUpOwogcHVibGljOgogICAg
IENoaWxkTGlzdE11dGF0aW9uU2NvcGUoTm9kZSogdGFyZ2V0KQotICAgICAgICA6IG1fdGFyZ2V0
KHRhcmdldC0+ZG9jdW1lbnQoKS0+aGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoV2ViS2l0TXV0
YXRpb25PYnNlcnZlcjo6Q2hpbGRMaXN0KSA/IHRhcmdldCA6IDApCisgICAgICAgIDogbV90YXJn
ZXQodGFyZ2V0LT5kb2N1bWVudCgpLT5oYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlv
bk9ic2VydmVyOjpDaGlsZExpc3QpID8gdGFyZ2V0IDogMCkKICAgICB7CiAgICAgICAgIGlmICht
X3RhcmdldCkKICAgICAgICAgICAgIE11dGF0aW9uQWNjdW11bGF0aW9uUm91dGVyOjppbnN0YW5j
ZSgpLT5pbmNyZW1lbnRTY29waW5nTGV2ZWwobV90YXJnZXQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJ
bk9uZS5jcHAKaW5kZXggMzIwYWVmOTgyMDlhNWViODRhN2U3NTI4ZmNiM2I1NjQ5Njg1ODc3OC4u
ZDJlN2RkMzA2NDY5MThkNjU3MGEzMzgwYTAzMGYxMTgyM2ZlYmI2ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RE9NQWxsSW5PbmUuY3BwCkBAIC05MSw2ICs5MSw3IEBACiAjaW5jbHVkZSAiTW91c2VFdmVudC5j
cHAiCiAjaW5jbHVkZSAiTW91c2VSZWxhdGVkRXZlbnQuY3BwIgogI2luY2x1ZGUgIk11dGF0aW9u
RXZlbnQuY3BwIgorI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuY3BwIgogI2luY2x1ZGUgIk11
dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcCIKICNpbmNsdWRlICJNdXRhdGlvbk9ic2Vy
dmVyUmVnaXN0cmF0aW9uLmNwcCIKICNpbmNsdWRlICJNdXRhdGlvblJlY29yZC5jcHAiCkBAIC0x
NDEsNyArMTQyLDYgQEAKICNpbmNsdWRlICJVc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvci5jcHAi
CiAjaW5jbHVkZSAiVmlld3BvcnRBcmd1bWVudHMuY3BwIgogI2luY2x1ZGUgIldlYktpdEFuaW1h
dGlvbkV2ZW50LmNwcCIKLSNpbmNsdWRlICJXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmNwcCIKICNp
bmNsdWRlICJXZWJLaXROYW1lZEZsb3cuY3BwIgogI2luY2x1ZGUgIldlYktpdFRyYW5zaXRpb25F
dmVudC5jcHAiCiAjaW5jbHVkZSAiV2hlZWxFdmVudC5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmlu
ZGV4IGQ3YjcwZThiODZlNjFkODhjYjBlMTgyZTU1MzlhZjdhMzM3YzBhMTAuLmNiNDA2MTczNGZk
YjkzMGZhOTE2YWFjMzhkNmU2MDQ4MDg4MTg5ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0z
OCw2ICszOCw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yQ291bnRlcnMuaCIKICNpbmNsdWRlICJJ
bnRSZWN0LmgiCiAjaW5jbHVkZSAiTGF5b3V0VHlwZXMuaCIKKyNpbmNsdWRlICJNdXRhdGlvbk9i
c2VydmVyLmgiCiAjaW5jbHVkZSAiUGFnZVZpc2liaWxpdHlTdGF0ZS5oIgogI2luY2x1ZGUgIlBs
YXRmb3JtU2NyZWVuLmgiCiAjaW5jbHVkZSAiUXVhbGlmaWVkTmFtZS5oIgpAQCAtNDcsNyArNDgs
NiBAQAogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSAiVHJlZVNjb3BlLmgiCiAjaW5jbHVk
ZSAiVmlld3BvcnRBcmd1bWVudHMuaCIKLSNpbmNsdWRlICJXZWJLaXRNdXRhdGlvbk9ic2VydmVy
LmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0ZpeGVkQXJyYXkuaD4K
ICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CkBAIC03NjcsNyArNzY3LDcgQEAgcHVibGljOgogICAg
IHZvaWQgYWRkTGlzdGVuZXJUeXBlSWZOZWVkZWQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5
cGUpOwogCiAjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKLSAgICBib29sIGhhc011dGF0
aW9uT2JzZXJ2ZXJzT2ZUeXBlKFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSB0
eXBlKSBjb25zdAorICAgIGJvb2wgaGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25P
YnNlcnZlcjo6TXV0YXRpb25UeXBlIHR5cGUpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4g
bV9tdXRhdGlvbk9ic2VydmVyVHlwZXMgJiB0eXBlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNw
cAppbmRleCAwMDUyNjRjZWQwNTJhZjY5ZGY1MjhkYjY1YWE4YzYwYzc1ZDcxZjRkLi5hMGUxYmQ4
OGUwZjczM2E1OTRjZTkyMTEyODliMGQxYmE3NjgyMmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CkBAIC02Niw3ICs2Niw2IEBACiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2luY2x1ZGUg
IlRleHQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKLSNpbmNsdWRlICJXZWJLaXRNdXRh
dGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9uTGlzdC5oIgogI2luY2x1
ZGUgIlhNTE5TTmFtZXMuaCIKICNpbmNsdWRlICJYTUxOYW1lcy5oIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uQ2FsbGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9N
dXRhdGlvbkNhbGxiYWNrLmgKaW5kZXggODA3MzljODhhZDc4YjEzMTU5OTJkOGY2NjZkOTBiMjQw
YWU3ZWFkOS4uMTE5MTk3YWJlMzRiMWRhOTA0ZDQyMmJiZjhlMGYxZjc3ZTc3NmRmMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uQ2FsbGJhY2suaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTXV0YXRpb25DYWxsYmFjay5oCkBAIC00MCw3ICs0MCw3IEBACiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIE11dGF0aW9uUmVjb3JkOwotY2xhc3MgV2ViS2l0TXV0YXRp
b25PYnNlcnZlcjsKK2NsYXNzIE11dGF0aW9uT2JzZXJ2ZXI7CiAKIHR5cGVkZWYgVmVjdG9yPFJl
ZlB0cjxNdXRhdGlvblJlY29yZD4gPiBNdXRhdGlvblJlY29yZEFycmF5OwogCkBAIC00OCw3ICs0
OCw3IEBAIGNsYXNzIE11dGF0aW9uQ2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxNdXRhdGlv
bkNhbGxiYWNrPiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+TXV0YXRpb25DYWxsYmFjaygpIHsg
fQogCi0gICAgdmlydHVhbCBib29sIGhhbmRsZUV2ZW50KE11dGF0aW9uUmVjb3JkQXJyYXkqLCBX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyKikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVu
dChNdXRhdGlvblJlY29yZEFycmF5KiwgTXV0YXRpb25PYnNlcnZlciopID0gMDsKIH07CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbkNhbGxiYWNrLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbkNhbGxiYWNrLmlkbAppbmRleCAxNjM4MTcxNGM4MDll
YTdjYTQ3ODRjNmIzYjAzMTFiODk3OWY4MTc1Li4yYWVjZDliZTllNDFkZTRmMzJlNDZmOWQwNWIw
ZWJmMmNlNDg1MGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25DYWxs
YmFjay5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uQ2FsbGJhY2suaWRsCkBA
IC0zMyw2ICszMyw2IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgQ29uZGl0aW9uYWw9TVVUQVRJ
T05fT0JTRVJWRVJTLAogICAgICAgICBDYWxsYmFjawogICAgIF0gTXV0YXRpb25DYWxsYmFjayB7
Ci0gICAgICAgIFtDdXN0b21dIGJvb2xlYW4gaGFuZGxlRXZlbnQoaW4gTXV0YXRpb25SZWNvcmRB
cnJheSBtdXRhdGlvbnMsIGluIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIgb2JzZXJ2ZXIpOworICAg
ICAgICBbQ3VzdG9tXSBib29sZWFuIGhhbmRsZUV2ZW50KGluIE11dGF0aW9uUmVjb3JkQXJyYXkg
bXV0YXRpb25zLCBpbiBNdXRhdGlvbk9ic2VydmVyIG9ic2VydmVyKTsKICAgICB9OwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzYTc1OGRmZTEx
ZjViMTIwYTc4OTE2MDMyZjUwMjEwMDUyYzEzN2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAKQEAgLTAsMCArMSwxOTQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlz
dHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQorCisjaW5jbHVk
ZSAiTXV0YXRpb25PYnNlcnZlci5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRl
ICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiTXV0YXRpb25DYWxsYmFjay5oIgorI2luY2x1
ZGUgIk11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uaCIKKyNpbmNsdWRlICJNdXRhdGlvblJl
Y29yZC5oIgorI2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRlIDxhbGdvcml0aG0+CisjaW5jbHVk
ZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgdW5zaWduZWQg
c19vYnNlcnZlclByaW9yaXR5ID0gMDsKKworc3RydWN0IE11dGF0aW9uT2JzZXJ2ZXI6Ok9ic2Vy
dmVyTGVzc1RoYW4geworICAgIGJvb2wgb3BlcmF0b3IoKShjb25zdCBSZWZQdHI8TXV0YXRpb25P
YnNlcnZlcj4mIGxocywgY29uc3QgUmVmUHRyPE11dGF0aW9uT2JzZXJ2ZXI+JiByaHMpCisgICAg
eworICAgICAgICByZXR1cm4gbGhzLT5tX3ByaW9yaXR5IDwgcmhzLT5tX3ByaW9yaXR5OworICAg
IH0KK307CisKK1Bhc3NSZWZQdHI8TXV0YXRpb25PYnNlcnZlcj4gTXV0YXRpb25PYnNlcnZlcjo6
Y3JlYXRlKFBhc3NSZWZQdHI8TXV0YXRpb25DYWxsYmFjaz4gY2FsbGJhY2spCit7CisgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IE11dGF0aW9uT2Jz
ZXJ2ZXIoY2FsbGJhY2spKTsKK30KKworTXV0YXRpb25PYnNlcnZlcjo6TXV0YXRpb25PYnNlcnZl
cihQYXNzUmVmUHRyPE11dGF0aW9uQ2FsbGJhY2s+IGNhbGxiYWNrKQorICAgIDogbV9jYWxsYmFj
ayhjYWxsYmFjaykKKyAgICAsIG1fcHJpb3JpdHkoc19vYnNlcnZlclByaW9yaXR5KyspCit7Cit9
CisKK011dGF0aW9uT2JzZXJ2ZXI6On5NdXRhdGlvbk9ic2VydmVyKCkKK3sKKyAgICBBU1NFUlQo
bV9yZWdpc3RyYXRpb25zLmlzRW1wdHkoKSk7Cit9CisKK2Jvb2wgTXV0YXRpb25PYnNlcnZlcjo6
dmFsaWRhdGVPcHRpb25zKE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIG9wdGlvbnMpCit7CisgICAg
cmV0dXJuIChvcHRpb25zICYgKEF0dHJpYnV0ZXMgfCBDaGFyYWN0ZXJEYXRhIHwgQ2hpbGRMaXN0
KSkKKyAgICAgICAgJiYgKChvcHRpb25zICYgQXR0cmlidXRlcykgfHwgIShvcHRpb25zICYgQXR0
cmlidXRlT2xkVmFsdWUpKQorICAgICAgICAmJiAoKG9wdGlvbnMgJiBBdHRyaWJ1dGVzKSB8fCAh
KG9wdGlvbnMgJiBBdHRyaWJ1dGVGaWx0ZXIpKQorICAgICAgICAmJiAoKG9wdGlvbnMgJiBDaGFy
YWN0ZXJEYXRhKSB8fCAhKG9wdGlvbnMgJiBDaGFyYWN0ZXJEYXRhT2xkVmFsdWUpKTsKK30KKwor
dm9pZCBNdXRhdGlvbk9ic2VydmVyOjpvYnNlcnZlKE5vZGUqIG5vZGUsIE11dGF0aW9uT2JzZXJ2
ZXJPcHRpb25zIG9wdGlvbnMsIGNvbnN0IEhhc2hTZXQ8QXRvbWljU3RyaW5nPiYgYXR0cmlidXRl
RmlsdGVyLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIW5vZGUpIHsKKyAgICAgICAg
ZWMgPSBOT1RfRk9VTkRfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCF2
YWxpZGF0ZU9wdGlvbnMob3B0aW9ucykpIHsKKyAgICAgICAgLy8gRklYTUU6IFJldmlzaXQgdGhp
cyBvbmNlIHRoZSBzcGVjIHNwZWNpZmllcyB0aGUgZXhjZXB0aW9uIHR5cGU7IFNZTlRBWF9FUlIg
bWF5IG5vdCBiZSBhcHByb3ByaWF0ZS4KKyAgICAgICAgZWMgPSBTWU5UQVhfRVJSOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbiogcmVn
aXN0cmF0aW9uID0gbm9kZS0+cmVnaXN0ZXJNdXRhdGlvbk9ic2VydmVyKHRoaXMpOworICAgIHJl
Z2lzdHJhdGlvbi0+cmVzZXRPYnNlcnZhdGlvbihvcHRpb25zLCBhdHRyaWJ1dGVGaWx0ZXIpOwor
CisgICAgbm9kZS0+ZG9jdW1lbnQoKS0+YWRkTXV0YXRpb25PYnNlcnZlclR5cGVzKHJlZ2lzdHJh
dGlvbi0+bXV0YXRpb25UeXBlcygpKTsKK30KKworVmVjdG9yPFJlZlB0cjxNdXRhdGlvblJlY29y
ZD4gPiBNdXRhdGlvbk9ic2VydmVyOjp0YWtlUmVjb3JkcygpCit7CisgICAgVmVjdG9yPFJlZlB0
cjxNdXRhdGlvblJlY29yZD4gPiByZWNvcmRzOworICAgIHJlY29yZHMuc3dhcChtX3JlY29yZHMp
OworICAgIHJldHVybiByZWNvcmRzOworfQorCit2b2lkIE11dGF0aW9uT2JzZXJ2ZXI6OmRpc2Nv
bm5lY3QoKQoreworICAgIG1fcmVjb3Jkcy5jbGVhcigpOworICAgIEhhc2hTZXQ8TXV0YXRpb25P
YnNlcnZlclJlZ2lzdHJhdGlvbio+IHJlZ2lzdHJhdGlvbnMobV9yZWdpc3RyYXRpb25zKTsKKyAg
ICBmb3IgKEhhc2hTZXQ8TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbio+OjppdGVyYXRvciBp
dGVyID0gcmVnaXN0cmF0aW9ucy5iZWdpbigpOyBpdGVyICE9IHJlZ2lzdHJhdGlvbnMuZW5kKCk7
ICsraXRlcikKKyAgICAgICAgKCppdGVyKS0+dW5yZWdpc3RlcigpOworfQorCit2b2lkIE11dGF0
aW9uT2JzZXJ2ZXI6Om9ic2VydmF0aW9uU3RhcnRlZChNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0
aW9uKiByZWdpc3RyYXRpb24pCit7CisgICAgQVNTRVJUKCFtX3JlZ2lzdHJhdGlvbnMuY29udGFp
bnMocmVnaXN0cmF0aW9uKSk7CisgICAgbV9yZWdpc3RyYXRpb25zLmFkZChyZWdpc3RyYXRpb24p
OworfQorCit2b2lkIE11dGF0aW9uT2JzZXJ2ZXI6Om9ic2VydmF0aW9uRW5kZWQoTXV0YXRpb25P
YnNlcnZlclJlZ2lzdHJhdGlvbiogcmVnaXN0cmF0aW9uKQoreworICAgIEFTU0VSVChtX3JlZ2lz
dHJhdGlvbnMuY29udGFpbnMocmVnaXN0cmF0aW9uKSk7CisgICAgbV9yZWdpc3RyYXRpb25zLnJl
bW92ZShyZWdpc3RyYXRpb24pOworfQorCit0eXBlZGVmIEhhc2hTZXQ8UmVmUHRyPE11dGF0aW9u
T2JzZXJ2ZXI+ID4gTXV0YXRpb25PYnNlcnZlclNldDsKKworc3RhdGljIE11dGF0aW9uT2JzZXJ2
ZXJTZXQmIGFjdGl2ZU11dGF0aW9uT2JzZXJ2ZXJzKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKE11dGF0aW9uT2JzZXJ2ZXJTZXQsIGFjdGl2ZU9ic2VydmVycywgKCkpOworICAgIHJldHVy
biBhY3RpdmVPYnNlcnZlcnM7Cit9CisKK3ZvaWQgTXV0YXRpb25PYnNlcnZlcjo6ZW5xdWV1ZU11
dGF0aW9uUmVjb3JkKFBhc3NSZWZQdHI8TXV0YXRpb25SZWNvcmQ+IG11dGF0aW9uKQoreworICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgbV9yZWNvcmRzLmFwcGVuZChtdXRhdGlvbik7
CisgICAgYWN0aXZlTXV0YXRpb25PYnNlcnZlcnMoKS5hZGQodGhpcyk7Cit9CisKK3ZvaWQgTXV0
YXRpb25PYnNlcnZlcjo6c2V0SGFzVHJhbnNpZW50UmVnaXN0cmF0aW9uKCkKK3sKKyAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOworICAgIGFjdGl2ZU11dGF0aW9uT2JzZXJ2ZXJzKCkuYWRkKHRo
aXMpOworfQorCit2b2lkIE11dGF0aW9uT2JzZXJ2ZXI6OmRlbGl2ZXIoKQoreworICAgIC8vIENh
bGxpbmcgY2xlYXJUcmFuc2llbnRSZWdpc3RyYXRpb25zKCkgY2FuIG1vZGlmeSBtX3JlZ2lzdHJh
dGlvbnMsIHNvIGl0J3MgbmVjZXNzYXJ5CisgICAgLy8gdG8gbWFrZSBhIGNvcHkgb2YgdGhlIHRy
YW5zaWVudCByZWdpc3RyYXRpb25zIGJlZm9yZSBvcGVyYXRpbmcgb24gdGhlbS4KKyAgICBWZWN0
b3I8TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbiosIDE+IHRyYW5zaWVudFJlZ2lzdHJhdGlv
bnM7CisgICAgZm9yIChIYXNoU2V0PE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qPjo6aXRl
cmF0b3IgaXRlciA9IG1fcmVnaXN0cmF0aW9ucy5iZWdpbigpOyBpdGVyICE9IG1fcmVnaXN0cmF0
aW9ucy5lbmQoKTsgKytpdGVyKSB7CisgICAgICAgIGlmICgoKml0ZXIpLT5oYXNUcmFuc2llbnRS
ZWdpc3RyYXRpb25zKCkpCisgICAgICAgICAgICB0cmFuc2llbnRSZWdpc3RyYXRpb25zLmFwcGVu
ZCgqaXRlcik7CisgICAgfQorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdHJhbnNpZW50UmVn
aXN0cmF0aW9ucy5zaXplKCk7ICsraSkKKyAgICAgICAgdHJhbnNpZW50UmVnaXN0cmF0aW9uc1tp
XS0+Y2xlYXJUcmFuc2llbnRSZWdpc3RyYXRpb25zKCk7CisKKyAgICBpZiAobV9yZWNvcmRzLmlz
RW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgVmVjdG9yPFJlZlB0cjxNdXRhdGlvblJl
Y29yZD4gPiByZWNvcmRzOworICAgIHJlY29yZHMuc3dhcChtX3JlY29yZHMpOworCisgICAgbV9j
YWxsYmFjay0+aGFuZGxlRXZlbnQoJnJlY29yZHMsIHRoaXMpOworfQorCit2b2lkIE11dGF0aW9u
T2JzZXJ2ZXI6OmRlbGl2ZXJBbGxNdXRhdGlvbnMoKQoreworICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CisgICAgc3RhdGljIGJvb2wgZGVsaXZlcnlJblByb2dyZXNzID0gZmFsc2U7CisgICAg
aWYgKGRlbGl2ZXJ5SW5Qcm9ncmVzcykKKyAgICAgICAgcmV0dXJuOworICAgIGRlbGl2ZXJ5SW5Q
cm9ncmVzcyA9IHRydWU7CisKKyAgICB3aGlsZSAoIWFjdGl2ZU11dGF0aW9uT2JzZXJ2ZXJzKCku
aXNFbXB0eSgpKSB7CisgICAgICAgIFZlY3RvcjxSZWZQdHI8TXV0YXRpb25PYnNlcnZlcj4gPiBv
YnNlcnZlcnM7CisgICAgICAgIGNvcHlUb1ZlY3RvcihhY3RpdmVNdXRhdGlvbk9ic2VydmVycygp
LCBvYnNlcnZlcnMpOworICAgICAgICBhY3RpdmVNdXRhdGlvbk9ic2VydmVycygpLmNsZWFyKCk7
CisgICAgICAgIHN0ZDo6c29ydChvYnNlcnZlcnMuYmVnaW4oKSwgb2JzZXJ2ZXJzLmVuZCgpLCBP
YnNlcnZlckxlc3NUaGFuKCkpOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9ic2Vy
dmVycy5zaXplKCk7ICsraSkKKyAgICAgICAgICAgIG9ic2VydmVyc1tpXS0+ZGVsaXZlcigpOwor
ICAgIH0KKworICAgIGRlbGl2ZXJ5SW5Qcm9ncmVzcyA9IGZhbHNlOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmE2NjVkYzA5OGMxMWEy
YzNhY2ExYzQzOTk0ZDUwNjUwNjkxNzExOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmgKQEAgLTAsMCArMSwxMDcgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE11dGF0
aW9uT2JzZXJ2ZXJfaAorI2RlZmluZSBNdXRhdGlvbk9ic2VydmVyX2gKKworI2lmIEVOQUJMRShN
VVRBVElPTl9PQlNFUlZFUlMpCisKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUg
PHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9BdG9taWNTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmdIYXNo
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTXV0YXRpb25DYWxsYmFjazsKK2Ns
YXNzIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb247CitjbGFzcyBNdXRhdGlvblJlY29yZDsK
K2NsYXNzIE5vZGU7CisKK3R5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CisKK3R5cGVkZWYgdW5z
aWduZWQgY2hhciBNdXRhdGlvbk9ic2VydmVyT3B0aW9uczsKK3R5cGVkZWYgdW5zaWduZWQgY2hh
ciBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9uczsKKworY2xhc3MgTXV0YXRpb25PYnNlcnZl
ciA6IHB1YmxpYyBSZWZDb3VudGVkPE11dGF0aW9uT2JzZXJ2ZXI+IHsKK3B1YmxpYzoKKyAgICBl
bnVtIE11dGF0aW9uVHlwZSB7CisgICAgICAgIENoaWxkTGlzdCA9IDEgPDwgMCwKKyAgICAgICAg
QXR0cmlidXRlcyA9IDEgPDwgMSwKKyAgICAgICAgQ2hhcmFjdGVyRGF0YSA9IDEgPDwgMiwKKwor
ICAgICAgICBBbGxNdXRhdGlvblR5cGVzID0gQ2hpbGRMaXN0IHwgQXR0cmlidXRlcyB8IENoYXJh
Y3RlckRhdGEKKyAgICB9OworCisgICAgZW51bSBPYnNlcnZhdGlvbkZsYWdzICB7CisgICAgICAg
IFN1YnRyZWUgPSAxIDw8IDMsCisgICAgICAgIEF0dHJpYnV0ZUZpbHRlciA9IDEgPDwgNAorICAg
IH07CisKKyAgICBlbnVtIERlbGl2ZXJ5RmxhZ3MgeworICAgICAgICBBdHRyaWJ1dGVPbGRWYWx1
ZSA9IDEgPDwgNSwKKyAgICAgICAgQ2hhcmFjdGVyRGF0YU9sZFZhbHVlID0gMSA8PCA2LAorICAg
IH07CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNdXRhdGlvbk9ic2VydmVyPiBjcmVhdGUoUGFz
c1JlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPik7CisgICAgc3RhdGljIHZvaWQgZGVsaXZlckFsbE11
dGF0aW9ucygpOworCisgICAgfk11dGF0aW9uT2JzZXJ2ZXIoKTsKKworICAgIHZvaWQgb2JzZXJ2
ZShOb2RlKiwgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMsIGNvbnN0IEhhc2hTZXQ8QXRvbWljU3Ry
aW5nPiYgYXR0cmlidXRlRmlsdGVyLCBFeGNlcHRpb25Db2RlJik7CisgICAgVmVjdG9yPFJlZlB0
cjxNdXRhdGlvblJlY29yZD4gPiB0YWtlUmVjb3JkcygpOworICAgIHZvaWQgZGlzY29ubmVjdCgp
OworICAgIHZvaWQgb2JzZXJ2YXRpb25TdGFydGVkKE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRp
b24qKTsKKyAgICB2b2lkIG9ic2VydmF0aW9uRW5kZWQoTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJh
dGlvbiopOworICAgIHZvaWQgZW5xdWV1ZU11dGF0aW9uUmVjb3JkKFBhc3NSZWZQdHI8TXV0YXRp
b25SZWNvcmQ+KTsKKyAgICB2b2lkIHNldEhhc1RyYW5zaWVudFJlZ2lzdHJhdGlvbigpOworCitw
cml2YXRlOgorICAgIHN0cnVjdCBPYnNlcnZlckxlc3NUaGFuOworCisgICAgTXV0YXRpb25PYnNl
cnZlcihQYXNzUmVmUHRyPE11dGF0aW9uQ2FsbGJhY2s+KTsKKyAgICB2b2lkIGRlbGl2ZXIoKTsK
KworICAgIHN0YXRpYyBib29sIHZhbGlkYXRlT3B0aW9ucyhNdXRhdGlvbk9ic2VydmVyT3B0aW9u
cyk7CisKKyAgICBSZWZQdHI8TXV0YXRpb25DYWxsYmFjaz4gbV9jYWxsYmFjazsKKyAgICBWZWN0
b3I8UmVmUHRyPE11dGF0aW9uUmVjb3JkPiA+IG1fcmVjb3JkczsKKyAgICBIYXNoU2V0PE11dGF0
aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qPiBtX3JlZ2lzdHJhdGlvbnM7CisgICAgdW5zaWduZWQg
bV9wcmlvcml0eTsKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShNVVRBVElPTl9PQlNFUlZF
UlMpCisKKyNlbmRpZiAvLyBNdXRhdGlvbk9ic2VydmVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRh
dGlvbk9ic2VydmVyLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYzZlMjVjYzJmOGVlN2FjZjVjNjRlNTkxZjA1
NGY4OWIxNWFkNmUwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0
aW9uT2JzZXJ2ZXIuaWRsCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgY29yZSB7CisgICAgaW50ZXJm
YWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9TVVUQVRJT05fT0JTRVJWRVJTLAorICAgICAgICBD
dXN0b21Db25zdHJ1Y3RvciwKKyAgICAgICAgQ29uc3RydWN0b3JQYXJhbWV0ZXJzPTEKKyAgICBd
IE11dGF0aW9uT2JzZXJ2ZXIgeworICAgICAgICBbQ3VzdG9tXSB2b2lkIG9ic2VydmUoaW4gTm9k
ZSB0YXJnZXQsIGluIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIG9wdGlvbnMpCisgICAgICAgICAg
ICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgc2VxdWVuY2U8TXV0YXRpb25SZWNvcmQ+
IHRha2VSZWNvcmRzKCk7CisgICAgICAgIHZvaWQgZGlzY29ubmVjdCgpOworICAgIH07Cit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3Jv
dXAuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3Vw
LmNwcAppbmRleCBkZDAyODhkNTEzOTNjZTJmMDcwYWU3NDA5MjQ4NjdhYjM4NWJiNzljLi4yNGMw
Y2I1ODY1MTdlMDhiYzdhOGI0MDkzZjIxZDMxZTBkYjJkNjRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5jcHAKQEAgLTQxLDEw
ICs0MSwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NPd25QdHI8TXV0YXRpb25P
YnNlcnZlckludGVyZXN0R3JvdXA+IE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpjcmVh
dGVJZk5lZWRlZChOb2RlKiB0YXJnZXQsIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9u
VHlwZSB0eXBlLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBvbGRWYWx1ZUZsYWcsIGNv
bnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpCitQYXNzT3duUHRyPE11dGF0aW9uT2Jz
ZXJ2ZXJJbnRlcmVzdEdyb3VwPiBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRl
SWZOZWVkZWQoTm9kZSogdGFyZ2V0LCBNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvblR5cGUgdHlw
ZSwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgb2xkVmFsdWVGbGFnLCBjb25zdCBRdWFs
aWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKQogewotICAgIEFTU0VSVCgodHlwZSA9PSBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVzICYmIGF0dHJpYnV0ZU5hbWUpIHx8ICFhdHRyaWJ1
dGVOYW1lKTsKLSAgICBIYXNoTWFwPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIqLCBNdXRhdGlvblJl
Y29yZERlbGl2ZXJ5T3B0aW9ucz4gb2JzZXJ2ZXJzOworICAgIEFTU0VSVCgodHlwZSA9PSBNdXRh
dGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVzICYmIGF0dHJpYnV0ZU5hbWUpIHx8ICFhdHRyaWJ1dGVO
YW1lKTsKKyAgICBIYXNoTWFwPE11dGF0aW9uT2JzZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERlbGl2
ZXJ5T3B0aW9ucz4gb2JzZXJ2ZXJzOwogICAgIHRhcmdldC0+Z2V0UmVnaXN0ZXJlZE11dGF0aW9u
T2JzZXJ2ZXJzT2ZUeXBlKG9ic2VydmVycywgdHlwZSwgYXR0cmlidXRlTmFtZSk7CiAgICAgaWYg
KG9ic2VydmVycy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtNTIsNyAr
NTIsNyBAQCBQYXNzT3duUHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwPiBNdXRhdGlv
bk9ic2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlSQogICAgIHJldHVybiBhZG9wdFB0cihuZXcg
TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAob2JzZXJ2ZXJzLCBvbGRWYWx1ZUZsYWcpKTsK
IH0KIAotTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6Ok11dGF0aW9uT2JzZXJ2ZXJJbnRl
cmVzdEdyb3VwKEhhc2hNYXA8V2ViS2l0TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVjb3Jk
RGVsaXZlcnlPcHRpb25zPiYgb2JzZXJ2ZXJzLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9u
cyBvbGRWYWx1ZUZsYWcpCitNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6TXV0YXRpb25P
YnNlcnZlckludGVyZXN0R3JvdXAoSGFzaE1hcDxNdXRhdGlvbk9ic2VydmVyKiwgTXV0YXRpb25S
ZWNvcmREZWxpdmVyeU9wdGlvbnM+JiBvYnNlcnZlcnMsIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlP
cHRpb25zIG9sZFZhbHVlRmxhZykKICAgICA6IG1fb2xkVmFsdWVGbGFnKG9sZFZhbHVlRmxhZykK
IHsKICAgICBBU1NFUlQoIW9ic2VydmVycy5pc0VtcHR5KCkpOwpAQCAtNjEsNyArNjEsNyBAQCBN
dXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3Jv
dXAoSGFzaE1hcDxXZWJLaXRNdXRhdAogCiBib29sIE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdy
b3VwOjppc09sZFZhbHVlUmVxdWVzdGVkKCkKIHsKLSAgICBmb3IgKEhhc2hNYXA8V2ViS2l0TXV0
YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPjo6aXRlcmF0b3Ig
aXRlciA9IG1fb2JzZXJ2ZXJzLmJlZ2luKCk7IGl0ZXIgIT0gbV9vYnNlcnZlcnMuZW5kKCk7ICsr
aXRlcikgeworICAgIGZvciAoSGFzaE1hcDxNdXRhdGlvbk9ic2VydmVyKiwgTXV0YXRpb25SZWNv
cmREZWxpdmVyeU9wdGlvbnM+OjppdGVyYXRvciBpdGVyID0gbV9vYnNlcnZlcnMuYmVnaW4oKTsg
aXRlciAhPSBtX29ic2VydmVycy5lbmQoKTsgKytpdGVyKSB7CiAgICAgICAgIGlmIChoYXNPbGRW
YWx1ZShpdGVyLT5zZWNvbmQpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpAQCAt
NzIsOCArNzIsOCBAQCB2b2lkIE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjplbnF1ZXVl
TXV0YXRpb25SZWNvcmQoUGFzc1JlZlB0cjxNdXRhdGlvblJlYwogewogICAgIFJlZlB0cjxNdXRh
dGlvblJlY29yZD4gbXV0YXRpb24gPSBwcnBNdXRhdGlvbjsKICAgICBSZWZQdHI8TXV0YXRpb25S
ZWNvcmQ+IG11dGF0aW9uV2l0aE51bGxPbGRWYWx1ZTsKLSAgICBmb3IgKEhhc2hNYXA8V2ViS2l0
TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPjo6aXRlcmF0
b3IgaXRlciA9IG1fb2JzZXJ2ZXJzLmJlZ2luKCk7IGl0ZXIgIT0gbV9vYnNlcnZlcnMuZW5kKCk7
ICsraXRlcikgewotICAgICAgICBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKiBvYnNlcnZlciA9IGl0
ZXItPmZpcnN0OworICAgIGZvciAoSGFzaE1hcDxNdXRhdGlvbk9ic2VydmVyKiwgTXV0YXRpb25S
ZWNvcmREZWxpdmVyeU9wdGlvbnM+OjppdGVyYXRvciBpdGVyID0gbV9vYnNlcnZlcnMuYmVnaW4o
KTsgaXRlciAhPSBtX29ic2VydmVycy5lbmQoKTsgKytpdGVyKSB7CisgICAgICAgIE11dGF0aW9u
T2JzZXJ2ZXIqIG9ic2VydmVyID0gaXRlci0+Zmlyc3Q7CiAgICAgICAgIGlmIChoYXNPbGRWYWx1
ZShpdGVyLT5zZWNvbmQpKSB7CiAgICAgICAgICAgICBvYnNlcnZlci0+ZW5xdWV1ZU11dGF0aW9u
UmVjb3JkKG11dGF0aW9uKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuaAppbmRleCA5MzMzMzRh
MWI3Zjk1NzM4OWU1Y2JlZGVlMDVjMjY3N2I5NTAxMmRiLi43ZmRlMzJlZWE5Mjg5YzZhMzgxNWY5
MmI1MGQ2MDg3ZTlmY2ZmMWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRp
b25PYnNlcnZlckludGVyZXN0R3JvdXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRp
b25PYnNlcnZlckludGVyZXN0R3JvdXAuaApAQCAtMzQsOSArMzQsOSBAQAogI2lmIEVOQUJMRShN
VVRBVElPTl9PQlNFUlZFUlMpCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIk11
dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJOb2RlLmgiCiAjaW5jbHVkZSAiUXVhbGlmaWVk
TmFtZS5oIgotI2luY2x1ZGUgIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKQEAgLTQ2LDM5ICs0
NiwzOSBAQCBjbGFzcyBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cCB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIFBhc3NPd25QdHI8TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA+IGNyZWF0
ZUZvckNoaWxkTGlzdE11dGF0aW9uKE5vZGUqIHRhcmdldCkKICAgICB7Ci0gICAgICAgIGlmICgh
dGFyZ2V0LT5kb2N1bWVudCgpLT5oYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShXZWJLaXRNdXRh
dGlvbk9ic2VydmVyOjpDaGlsZExpc3QpKQorICAgICAgICBpZiAoIXRhcmdldC0+ZG9jdW1lbnQo
KS0+aGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlcjo6Q2hpbGRMaXN0
KSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgICAgIE11dGF0aW9uUmVjb3Jk
RGVsaXZlcnlPcHRpb25zIG9sZFZhbHVlRmxhZyA9IDA7Ci0gICAgICAgIHJldHVybiBjcmVhdGVJ
Zk5lZWRlZCh0YXJnZXQsIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OkNoaWxkTGlzdCwgb2xkVmFs
dWVGbGFnKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUlmTmVlZGVkKHRhcmdldCwgTXV0YXRpb25P
YnNlcnZlcjo6Q2hpbGRMaXN0LCBvbGRWYWx1ZUZsYWcpOwogICAgIH0KIAogICAgIHN0YXRpYyBQ
YXNzT3duUHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwPiBjcmVhdGVGb3JDaGFyYWN0
ZXJEYXRhTXV0YXRpb24oTm9kZSogdGFyZ2V0KQogICAgIHsKLSAgICAgICAgaWYgKCF0YXJnZXQt
PmRvY3VtZW50KCktPmhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKFdlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXI6OkNoYXJhY3RlckRhdGEpKQorICAgICAgICBpZiAoIXRhcmdldC0+ZG9jdW1lbnQoKS0+
aGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlcjo6Q2hhcmFjdGVyRGF0
YSkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICByZXR1cm4gY3JlYXRl
SWZOZWVkZWQodGFyZ2V0LCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhLCBX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhT2xkVmFsdWUpOworICAgICAgICBy
ZXR1cm4gY3JlYXRlSWZOZWVkZWQodGFyZ2V0LCBNdXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJE
YXRhLCBNdXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhT2xkVmFsdWUpOwogICAgIH0KIAog
ICAgIHN0YXRpYyBQYXNzT3duUHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwPiBjcmVh
dGVGb3JBdHRyaWJ1dGVzTXV0YXRpb24oTm9kZSogdGFyZ2V0LCBjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyaWJ1dGVOYW1lKQogICAgIHsKLSAgICAgICAgaWYgKCF0YXJnZXQtPmRvY3VtZW50KCkt
Pmhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJp
YnV0ZXMpKQorICAgICAgICBpZiAoIXRhcmdldC0+ZG9jdW1lbnQoKS0+aGFzTXV0YXRpb25PYnNl
cnZlcnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRlcykpCiAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICByZXR1cm4gY3JlYXRlSWZOZWVkZWQodGFyZ2V0LCBX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVzLCBXZWJLaXRNdXRhdGlvbk9ic2VydmVy
OjpBdHRyaWJ1dGVPbGRWYWx1ZSwgJmF0dHJpYnV0ZU5hbWUpOworICAgICAgICByZXR1cm4gY3Jl
YXRlSWZOZWVkZWQodGFyZ2V0LCBNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVzLCBNdXRhdGlv
bk9ic2VydmVyOjpBdHRyaWJ1dGVPbGRWYWx1ZSwgJmF0dHJpYnV0ZU5hbWUpOwogICAgIH0KIAog
ICAgIGJvb2wgaXNPbGRWYWx1ZVJlcXVlc3RlZCgpOwogICAgIHZvaWQgZW5xdWV1ZU11dGF0aW9u
UmVjb3JkKFBhc3NSZWZQdHI8TXV0YXRpb25SZWNvcmQ+KTsKIAogcHJpdmF0ZToKLSAgICBzdGF0
aWMgUGFzc093blB0cjxNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cD4gY3JlYXRlSWZOZWVk
ZWQoTm9kZSogdGFyZ2V0LCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvblR5cGUsIE11
dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9sZFZhbHVlRmxhZywgY29uc3QgUXVhbGlmaWVk
TmFtZSogYXR0cmlidXRlTmFtZSA9IDApOwotICAgIE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdy
b3VwKEhhc2hNYXA8V2ViS2l0TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVjb3JkRGVsaXZl
cnlPcHRpb25zPiYgb2JzZXJ2ZXJzLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBvbGRW
YWx1ZUZsYWcpOworICAgIHN0YXRpYyBQYXNzT3duUHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVz
dEdyb3VwPiBjcmVhdGVJZk5lZWRlZChOb2RlKiB0YXJnZXQsIE11dGF0aW9uT2JzZXJ2ZXI6Ok11
dGF0aW9uVHlwZSwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgb2xkVmFsdWVGbGFnLCBj
b25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lID0gMCk7CisgICAgTXV0YXRpb25PYnNl
cnZlckludGVyZXN0R3JvdXAoSGFzaE1hcDxNdXRhdGlvbk9ic2VydmVyKiwgTXV0YXRpb25SZWNv
cmREZWxpdmVyeU9wdGlvbnM+JiBvYnNlcnZlcnMsIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRp
b25zIG9sZFZhbHVlRmxhZyk7CiAKICAgICBib29sIGhhc09sZFZhbHVlKE11dGF0aW9uUmVjb3Jk
RGVsaXZlcnlPcHRpb25zIG9wdGlvbnMpIHsgcmV0dXJuIG9wdGlvbnMgJiBtX29sZFZhbHVlRmxh
ZzsgfQogCi0gICAgSGFzaE1hcDxXZWJLaXRNdXRhdGlvbk9ic2VydmVyKiwgTXV0YXRpb25SZWNv
cmREZWxpdmVyeU9wdGlvbnM+IG1fb2JzZXJ2ZXJzOworICAgIEhhc2hNYXA8TXV0YXRpb25PYnNl
cnZlciosIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPiBtX29ic2VydmVyczsKICAgICBN
dXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBtX29sZFZhbHVlRmxhZzsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNwcApp
bmRleCAxOTBiODViZDg1NTNhZGFlNGEwZjZjZTBmM2E5NjhmYzZjOTI2Yzk3Li41ODk1ZWY0OWZl
YWE2YWM2MzNjMmQ5NGM5NjgzMjliOTVhOWUzNDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCkBAIC00MCwxMiArNDAsMTIg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzT3duUHRyPE11dGF0aW9uT2JzZXJ2ZXJS
ZWdpc3RyYXRpb24+IE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb246OmNyZWF0ZShQYXNzUmVm
UHRyPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI+IG9ic2VydmVyLCBOb2RlKiByZWdpc3RyYXRpb25O
b2RlKQorUGFzc093blB0cjxNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uPiBNdXRhdGlvbk9i
c2VydmVyUmVnaXN0cmF0aW9uOjpjcmVhdGUoUGFzc1JlZlB0cjxNdXRhdGlvbk9ic2VydmVyPiBv
YnNlcnZlciwgTm9kZSogcmVnaXN0cmF0aW9uTm9kZSkKIHsKICAgICByZXR1cm4gYWRvcHRQdHIo
bmV3IE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24ob2JzZXJ2ZXIsIHJlZ2lzdHJhdGlvbk5v
ZGUpKTsKIH0KIAotTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6TXV0YXRpb25PYnNlcnZl
clJlZ2lzdHJhdGlvbihQYXNzUmVmUHRyPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI+IG9ic2VydmVy
LCBOb2RlKiByZWdpc3RyYXRpb25Ob2RlKQorTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6
TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbihQYXNzUmVmUHRyPE11dGF0aW9uT2JzZXJ2ZXI+
IG9ic2VydmVyLCBOb2RlKiByZWdpc3RyYXRpb25Ob2RlKQogICAgICA6IG1fb2JzZXJ2ZXIob2Jz
ZXJ2ZXIpCiAgICAgICwgbV9yZWdpc3RyYXRpb25Ob2RlKHJlZ2lzdHJhdGlvbk5vZGUpCiAgICAg
ICwgbV9vcHRpb25zKDApCkBAIC0xMDUsMTYgKzEwNSwxNiBAQCB2b2lkIE11dGF0aW9uT2JzZXJ2
ZXJSZWdpc3RyYXRpb246OnVucmVnaXN0ZXIoKQogICAgIC8vIFRoZSBhYm92ZSBsaW5lIHdpbGwg
Y2F1c2UgdGhpcyBvYmplY3QgdG8gYmUgZGVsZXRlZCwgc28gZG9uJ3QgZG8gYW55IG1vcmUgaW4g
dGhpcyBmdW5jdGlvbi4KIH0KIAotYm9vbCBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjpz
aG91bGRSZWNlaXZlTXV0YXRpb25Gcm9tKE5vZGUqIG5vZGUsIFdlYktpdE11dGF0aW9uT2JzZXJ2
ZXI6Ok11dGF0aW9uVHlwZSB0eXBlLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1l
KQorYm9vbCBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjpzaG91bGRSZWNlaXZlTXV0YXRp
b25Gcm9tKE5vZGUqIG5vZGUsIE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSB0eXBlLCBj
b25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKQogewotICAgIEFTU0VSVCgodHlwZSA9
PSBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVzICYmIGF0dHJpYnV0ZU5hbWUpIHx8
ICFhdHRyaWJ1dGVOYW1lKTsKKyAgICBBU1NFUlQoKHR5cGUgPT0gTXV0YXRpb25PYnNlcnZlcjo6
QXR0cmlidXRlcyAmJiBhdHRyaWJ1dGVOYW1lKSB8fCAhYXR0cmlidXRlTmFtZSk7CiAgICAgaWYg
KCEobV9vcHRpb25zICYgdHlwZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICht
X3JlZ2lzdHJhdGlvbk5vZGUgIT0gbm9kZSAmJiAhaXNTdWJ0cmVlKCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgIGlmICh0eXBlICE9IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJp
YnV0ZXMgfHwgIShtX29wdGlvbnMgJiBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVG
aWx0ZXIpKQorICAgIGlmICh0eXBlICE9IE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMgfHwg
IShtX29wdGlvbnMgJiBNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVGaWx0ZXIpKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKIAogICAgIGlmICghYXR0cmlidXRlTmFtZS0+bmFtZXNwYWNlVVJJKCku
aXNOdWxsKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZl
clJlZ2lzdHJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdp
c3RyYXRpb24uaAppbmRleCAyMzJlZTI1ZDVhYzhlZjY1NTQ1YTk0MzY0MDgyNjQ1YWY1Mzg1Yjcz
Li5kNDkxNDYyNWE5ZGZlZDY2NmRmNGI3OGE5MjFhNTc4ZTNjNzc3NTVmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmgKQEAgLTMzLDcg
KzMzLDcgQEAKIAogI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCiAKLSNpbmNsdWRlICJX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlci5oIgog
I2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5n
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nSGFzaC5oPgpAQCAtNDUsNyArNDUs
NyBAQCBjbGFzcyBRdWFsaWZpZWROYW1lOwogY2xhc3MgTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJh
dGlvbiB7CiBwdWJsaWM6CiAKLSAgICBzdGF0aWMgUGFzc093blB0cjxNdXRhdGlvbk9ic2VydmVy
UmVnaXN0cmF0aW9uPiBjcmVhdGUoUGFzc1JlZlB0cjxXZWJLaXRNdXRhdGlvbk9ic2VydmVyPiwg
Tm9kZSopOworICAgIHN0YXRpYyBQYXNzT3duUHRyPE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRp
b24+IGNyZWF0ZShQYXNzUmVmUHRyPE11dGF0aW9uT2JzZXJ2ZXI+LCBOb2RlKik7CiAKICAgICB+
TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbigpOwogCkBAIC01NSwxOSArNTUsMTkgQEAgcHVi
bGljOgogICAgIGJvb2wgaGFzVHJhbnNpZW50UmVnaXN0cmF0aW9ucygpIHsgcmV0dXJuIG1fdHJh
bnNpZW50UmVnaXN0cmF0aW9uTm9kZXMgJiYgIW1fdHJhbnNpZW50UmVnaXN0cmF0aW9uTm9kZXMt
PmlzRW1wdHkoKTsgfQogICAgIHZvaWQgdW5yZWdpc3RlcigpOwogCi0gICAgYm9vbCBzaG91bGRS
ZWNlaXZlTXV0YXRpb25Gcm9tKE5vZGUqLCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlv
blR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpOwotICAgIGJvb2wgaW5s
aW5lIGlzU3VidHJlZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucyAmIFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXI6OlN1YnRyZWU7IH0KKyAgICBib29sIHNob3VsZFJlY2VpdmVNdXRhdGlvbkZyb20o
Tm9kZSosIE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSwgY29uc3QgUXVhbGlmaWVkTmFt
ZSogYXR0cmlidXRlTmFtZSk7CisgICAgYm9vbCBpbmxpbmUgaXNTdWJ0cmVlKCkgY29uc3QgeyBy
ZXR1cm4gbV9vcHRpb25zICYgTXV0YXRpb25PYnNlcnZlcjo6U3VidHJlZTsgfQogCi0gICAgV2Vi
S2l0TXV0YXRpb25PYnNlcnZlciogb2JzZXJ2ZXIoKSB7IHJldHVybiBtX29ic2VydmVyLmdldCgp
OyB9Ci0gICAgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgZGVsaXZlcnlPcHRpb25zKCkg
Y29uc3QgeyByZXR1cm4gbV9vcHRpb25zICYgKFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJp
YnV0ZU9sZFZhbHVlIHwgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6Q2hhcmFjdGVyRGF0YU9sZFZh
bHVlKTsgfQotICAgIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIG11dGF0aW9uVHlwZXMoKSBjb25z
dCB7IHJldHVybiBtX29wdGlvbnMgJiBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpBbGxNdXRhdGlv
blR5cGVzOyB9CisgICAgTXV0YXRpb25PYnNlcnZlciogb2JzZXJ2ZXIoKSB7IHJldHVybiBtX29i
c2VydmVyLmdldCgpOyB9CisgICAgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgZGVsaXZl
cnlPcHRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zICYgKE11dGF0aW9uT2JzZXJ2ZXI6
OkF0dHJpYnV0ZU9sZFZhbHVlIHwgTXV0YXRpb25PYnNlcnZlcjo6Q2hhcmFjdGVyRGF0YU9sZFZh
bHVlKTsgfQorICAgIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIG11dGF0aW9uVHlwZXMoKSBjb25z
dCB7IHJldHVybiBtX29wdGlvbnMgJiBNdXRhdGlvbk9ic2VydmVyOjpBbGxNdXRhdGlvblR5cGVz
OyB9CiAKIHByaXZhdGU6Ci0gICAgTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbihQYXNzUmVm
UHRyPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI+LCBOb2RlKik7CisgICAgTXV0YXRpb25PYnNlcnZl
clJlZ2lzdHJhdGlvbihQYXNzUmVmUHRyPE11dGF0aW9uT2JzZXJ2ZXI+LCBOb2RlKik7CiAKICAg
ICBjb25zdCBIYXNoU2V0PEF0b21pY1N0cmluZz4mIGNhc2VJbnNlbnNpdGl2ZUF0dHJpYnV0ZUZp
bHRlcigpOwogCi0gICAgUmVmUHRyPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI+IG1fb2JzZXJ2ZXI7
CisgICAgUmVmUHRyPE11dGF0aW9uT2JzZXJ2ZXI+IG1fb2JzZXJ2ZXI7CiAgICAgTm9kZSogbV9y
ZWdpc3RyYXRpb25Ob2RlOwogICAgIFJlZlB0cjxOb2RlPiBtX3JlZ2lzdHJhdGlvbk5vZGVLZWVw
QWxpdmU7CiAgICAgdHlwZWRlZiBIYXNoU2V0PFJlZlB0cjxOb2RlPiA+IE5vZGVIYXNoU2V0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuY3BwCmluZGV4IDg2Y2MyYjdlNDdiMWQwMTVlOWQzZTE2YzljYWRhMGIyNjFhMmRi
MTYuLmY3ZWNmNzRkYzM4M2FiY2JlMTRjYTRhZDAwMWRiNDI4YTA4ZDk0ZDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5jcHAKQEAgLTI1MjUsMTYgKzI1MjUsMTYgQEAgSGFzaFNldDxNdXRhdGlvbk9ic2VydmVyUmVn
aXN0cmF0aW9uKj4qIE5vZGU6OnRyYW5zaWVudE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyeSgKICAg
ICByZXR1cm4gaGFzUmFyZURhdGEoKSA/IHJhcmVEYXRhKCktPnRyYW5zaWVudE11dGF0aW9uT2Jz
ZXJ2ZXJSZWdpc3RyeSgpIDogMDsKIH0KIAotdm9pZCBOb2RlOjpjb2xsZWN0TWF0Y2hpbmdPYnNl
cnZlcnNGb3JNdXRhdGlvbihIYXNoTWFwPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIqLCBNdXRhdGlv
blJlY29yZERlbGl2ZXJ5T3B0aW9ucz4mIG9ic2VydmVycywgTm9kZSogZnJvbU5vZGUsIFdlYktp
dE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSB0eXBlLCBjb25zdCBRdWFsaWZpZWROYW1l
KiBhdHRyaWJ1dGVOYW1lKQordm9pZCBOb2RlOjpjb2xsZWN0TWF0Y2hpbmdPYnNlcnZlcnNGb3JN
dXRhdGlvbihIYXNoTWFwPE11dGF0aW9uT2JzZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5
T3B0aW9ucz4mIG9ic2VydmVycywgTm9kZSogZnJvbU5vZGUsIE11dGF0aW9uT2JzZXJ2ZXI6Ok11
dGF0aW9uVHlwZSB0eXBlLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKQogewot
ICAgIEFTU0VSVCgodHlwZSA9PSBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVzICYm
IGF0dHJpYnV0ZU5hbWUpIHx8ICFhdHRyaWJ1dGVOYW1lKTsKKyAgICBBU1NFUlQoKHR5cGUgPT0g
TXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRlcyAmJiBhdHRyaWJ1dGVOYW1lKSB8fCAhYXR0cmli
dXRlTmFtZSk7CiAgICAgaWYgKFZlY3RvcjxPd25QdHI8TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJh
dGlvbj4gPiogcmVnaXN0cnkgPSBmcm9tTm9kZS0+bXV0YXRpb25PYnNlcnZlclJlZ2lzdHJ5KCkp
IHsKICAgICAgICAgY29uc3Qgc2l6ZV90IHNpemUgPSByZWdpc3RyeS0+c2l6ZSgpOwogICAgICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgewogICAgICAgICAgICAgTXV0YXRp
b25PYnNlcnZlclJlZ2lzdHJhdGlvbiogcmVnaXN0cmF0aW9uID0gcmVnaXN0cnktPmF0KGkpLmdl
dCgpOwogICAgICAgICAgICAgaWYgKHJlZ2lzdHJhdGlvbi0+c2hvdWxkUmVjZWl2ZU11dGF0aW9u
RnJvbSh0aGlzLCB0eXBlLCBhdHRyaWJ1dGVOYW1lKSkgewogICAgICAgICAgICAgICAgIE11dGF0
aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIGRlbGl2ZXJ5T3B0aW9ucyA9IHJlZ2lzdHJhdGlvbi0+
ZGVsaXZlcnlPcHRpb25zKCk7Ci0gICAgICAgICAgICAgICAgSGFzaE1hcDxXZWJLaXRNdXRhdGlv
bk9ic2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+OjpBZGRSZXN1bHQgcmVz
dWx0ID0gb2JzZXJ2ZXJzLmFkZChyZWdpc3RyYXRpb24tPm9ic2VydmVyKCksIGRlbGl2ZXJ5T3B0
aW9ucyk7CisgICAgICAgICAgICAgICAgSGFzaE1hcDxNdXRhdGlvbk9ic2VydmVyKiwgTXV0YXRp
b25SZWNvcmREZWxpdmVyeU9wdGlvbnM+OjpBZGRSZXN1bHQgcmVzdWx0ID0gb2JzZXJ2ZXJzLmFk
ZChyZWdpc3RyYXRpb24tPm9ic2VydmVyKCksIGRlbGl2ZXJ5T3B0aW9ucyk7CiAgICAgICAgICAg
ICAgICAgaWYgKCFyZXN1bHQuaXNOZXdFbnRyeSkKICAgICAgICAgICAgICAgICAgICAgcmVzdWx0
Lml0ZXJhdG9yLT5zZWNvbmQgfD0gZGVsaXZlcnlPcHRpb25zOwogCkBAIC0yNTQ3LDcgKzI1NDcs
NyBAQCB2b2lkIE5vZGU6OmNvbGxlY3RNYXRjaGluZ09ic2VydmVyc0Zvck11dGF0aW9uKEhhc2hN
YXA8V2ViS2l0TXV0YXRpb25PYnNlcnZlciosCiAgICAgICAgICAgICBNdXRhdGlvbk9ic2VydmVy
UmVnaXN0cmF0aW9uKiByZWdpc3RyYXRpb24gPSAqaXRlcjsKICAgICAgICAgICAgIGlmIChyZWdp
c3RyYXRpb24tPnNob3VsZFJlY2VpdmVNdXRhdGlvbkZyb20odGhpcywgdHlwZSwgYXR0cmlidXRl
TmFtZSkpIHsKICAgICAgICAgICAgICAgICBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBk
ZWxpdmVyeU9wdGlvbnMgPSByZWdpc3RyYXRpb24tPmRlbGl2ZXJ5T3B0aW9ucygpOwotICAgICAg
ICAgICAgICAgIEhhc2hNYXA8V2ViS2l0TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVjb3Jk
RGVsaXZlcnlPcHRpb25zPjo6QWRkUmVzdWx0IHJlc3VsdCA9IG9ic2VydmVycy5hZGQocmVnaXN0
cmF0aW9uLT5vYnNlcnZlcigpLCBkZWxpdmVyeU9wdGlvbnMpOworICAgICAgICAgICAgICAgIEhh
c2hNYXA8TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPjo6
QWRkUmVzdWx0IHJlc3VsdCA9IG9ic2VydmVycy5hZGQocmVnaXN0cmF0aW9uLT5vYnNlcnZlcigp
LCBkZWxpdmVyeU9wdGlvbnMpOwogICAgICAgICAgICAgICAgIGlmICghcmVzdWx0LmlzTmV3RW50
cnkpCiAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5pdGVyYXRvci0+c2Vjb25kIHw9IGRlbGl2
ZXJ5T3B0aW9uczsKICAgICAgICAgICAgIH0KQEAgLTI1NTUsMTUgKzI1NTUsMTUgQEAgdm9pZCBO
b2RlOjpjb2xsZWN0TWF0Y2hpbmdPYnNlcnZlcnNGb3JNdXRhdGlvbihIYXNoTWFwPFdlYktpdE11
dGF0aW9uT2JzZXJ2ZXIqLAogICAgIH0KIH0KIAotdm9pZCBOb2RlOjpnZXRSZWdpc3RlcmVkTXV0
YXRpb25PYnNlcnZlcnNPZlR5cGUoSGFzaE1hcDxXZWJLaXRNdXRhdGlvbk9ic2VydmVyKiwgTXV0
YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+JiBvYnNlcnZlcnMsIFdlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXI6Ok11dGF0aW9uVHlwZSB0eXBlLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVO
YW1lKQordm9pZCBOb2RlOjpnZXRSZWdpc3RlcmVkTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoSGFz
aE1hcDxNdXRhdGlvbk9ic2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+JiBv
YnNlcnZlcnMsIE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSB0eXBlLCBjb25zdCBRdWFs
aWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKQogewotICAgIEFTU0VSVCgodHlwZSA9PSBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVzICYmIGF0dHJpYnV0ZU5hbWUpIHx8ICFhdHRyaWJ1
dGVOYW1lKTsKKyAgICBBU1NFUlQoKHR5cGUgPT0gTXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRl
cyAmJiBhdHRyaWJ1dGVOYW1lKSB8fCAhYXR0cmlidXRlTmFtZSk7CiAgICAgY29sbGVjdE1hdGNo
aW5nT2JzZXJ2ZXJzRm9yTXV0YXRpb24ob2JzZXJ2ZXJzLCB0aGlzLCB0eXBlLCBhdHRyaWJ1dGVO
YW1lKTsKICAgICBmb3IgKE5vZGUqIG5vZGUgPSBwYXJlbnROb2RlKCk7IG5vZGU7IG5vZGUgPSBu
b2RlLT5wYXJlbnROb2RlKCkpCiAgICAgICAgIGNvbGxlY3RNYXRjaGluZ09ic2VydmVyc0Zvck11
dGF0aW9uKG9ic2VydmVycywgbm9kZSwgdHlwZSwgYXR0cmlidXRlTmFtZSk7CiB9CiAKLU11dGF0
aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qIE5vZGU6OnJlZ2lzdGVyTXV0YXRpb25PYnNlcnZlcihQ
YXNzUmVmUHRyPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI+IG9ic2VydmVyKQorTXV0YXRpb25PYnNl
cnZlclJlZ2lzdHJhdGlvbiogTm9kZTo6cmVnaXN0ZXJNdXRhdGlvbk9ic2VydmVyKFBhc3NSZWZQ
dHI8TXV0YXRpb25PYnNlcnZlcj4gb2JzZXJ2ZXIpCiB7CiAgICAgVmVjdG9yPE93blB0cjxNdXRh
dGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uPiA+KiByZWdpc3RyeSA9IGVuc3VyZVJhcmVEYXRhKCkt
PmVuc3VyZU11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyeSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgcmVnaXN0cnktPnNpemUoKTsgKytpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCBlM2M3YWRlYWIy
ZTcwNDA2NzE2YjRkNmIzZjQ1MjNjNGIxODViNmZhLi5iMzA5ZDc2YzhmM2FiYjc3MTk2OWM0ZjFm
MWZmMzZjNDA5ODkwZmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTI5LDEwICsyOSwxMCBAQAogI2luY2x1
ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiS1VSTEhhc2guaCIKICNpbmNsdWRlICJMYXlv
dXRUeXBlcy5oIgorI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJSZW5k
ZXJTdHlsZUNvbnN0YW50cy5oIgogI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgogI2luY2x1
ZGUgIlRyZWVTaGFyZWQuaCIKLSNpbmNsdWRlICJXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCiAj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KQEAgLTY0OSw4ICs2NDksOCBAQCBwdWJs
aWM6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCi0gICAgdm9pZCBn
ZXRSZWdpc3RlcmVkTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoSGFzaE1hcDxXZWJLaXRNdXRhdGlv
bk9ic2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+JiwgV2ViS2l0TXV0YXRp
b25PYnNlcnZlcjo6TXV0YXRpb25UeXBlLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVO
YW1lKTsKLSAgICBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKiByZWdpc3Rlck11dGF0aW9u
T2JzZXJ2ZXIoUGFzc1JlZlB0cjxXZWJLaXRNdXRhdGlvbk9ic2VydmVyPik7CisgICAgdm9pZCBn
ZXRSZWdpc3RlcmVkTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoSGFzaE1hcDxNdXRhdGlvbk9ic2Vy
dmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+JiwgTXV0YXRpb25PYnNlcnZlcjo6
TXV0YXRpb25UeXBlLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKTsKKyAgICBN
dXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKiByZWdpc3Rlck11dGF0aW9uT2JzZXJ2ZXIoUGFz
c1JlZlB0cjxNdXRhdGlvbk9ic2VydmVyPik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyTXV0YXRpb25P
YnNlcnZlcihNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKik7CiAgICAgdm9pZCByZWdpc3Rl
clRyYW5zaWVudE11dGF0aW9uT2JzZXJ2ZXIoTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbiop
OwogICAgIHZvaWQgdW5yZWdpc3RlclRyYW5zaWVudE11dGF0aW9uT2JzZXJ2ZXIoTXV0YXRpb25P
YnNlcnZlclJlZ2lzdHJhdGlvbiopOwpAQCAtNzkwLDcgKzc5MCw3IEBAIHByaXZhdGU6CiAjaWYg
RU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKICAgICBWZWN0b3I8T3duUHRyPE11dGF0aW9uT2Jz
ZXJ2ZXJSZWdpc3RyYXRpb24+ID4qIG11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyeSgpOwogICAgIEhh
c2hTZXQ8TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbio+KiB0cmFuc2llbnRNdXRhdGlvbk9i
c2VydmVyUmVnaXN0cnkoKTsKLSAgICB2b2lkIGNvbGxlY3RNYXRjaGluZ09ic2VydmVyc0Zvck11
dGF0aW9uKEhhc2hNYXA8V2ViS2l0TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVjb3JkRGVs
aXZlcnlPcHRpb25zPiYsIE5vZGUqIGZyb21Ob2RlLCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpN
dXRhdGlvblR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpOworICAgIHZv
aWQgY29sbGVjdE1hdGNoaW5nT2JzZXJ2ZXJzRm9yTXV0YXRpb24oSGFzaE1hcDxNdXRhdGlvbk9i
c2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+JiwgTm9kZSogZnJvbU5vZGUs
IE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSwgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0
cmlidXRlTmFtZSk7CiAjZW5kaWYKIAogICAgIG11dGFibGUgdWludDMyX3QgbV9ub2RlRmxhZ3M7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKaW5kZXggZWFlZjlhNWE0M2FjOGZmMjU3NDlhOWIy
YjBiYzMyYmViMjNiZmZkNS4uYmI2M2I1MjVhYjgyZGUwYjk4ZGVkOWQ0MTAzY2E3Y2QzNGFlOWE3
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaApAQCAtMjYsMTEgKzI2LDExIEBACiAjaW5j
bHVkZSAiQ2xhc3NOb2RlTGlzdC5oIgogI2luY2x1ZGUgIkRPTVNldHRhYmxlVG9rZW5MaXN0Lmgi
CiAjaW5jbHVkZSAiRHluYW1pY05vZGVMaXN0LmgiCisjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZl
ci5oIgogI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uaCIKICNpbmNsdWRl
ICJOYW1lTm9kZUxpc3QuaCIKICNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCiAjaW5jbHVkZSAi
VGFnTm9kZUxpc3QuaCIKLSNpbmNsdWRlICJXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5j
bHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRN
dXRhdGlvbk9ic2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9i
c2VydmVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODAyNWI2ZTJhNmJlMmNl
MTA0NWE0ZjIwNjgxMTNkNThlNTNmN2FmOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TXV0YXRpb25PYnNlcnZl
ci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxOTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0g
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAot
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIK
LQotI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCi0KLSNpbmNsdWRlICJXZWJLaXRNdXRh
dGlvbk9ic2VydmVyLmgiCi0KLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkV4Y2Vw
dGlvbkNvZGUuaCIKLSNpbmNsdWRlICJNdXRhdGlvbkNhbGxiYWNrLmgiCi0jaW5jbHVkZSAiTXV0
YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5oIgotI2luY2x1ZGUgIk11dGF0aW9uUmVjb3JkLmgi
Ci0jaW5jbHVkZSAiTm9kZS5oIgotI2luY2x1ZGUgPGFsZ29yaXRobT4KLSNpbmNsdWRlIDx3dGYv
SGFzaFNldC5oPgotI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+Ci0jaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXN0YXRpYyB1bnNpZ25lZCBzX29ic2Vy
dmVyUHJpb3JpdHkgPSAwOwotCi1zdHJ1Y3QgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6T2JzZXJ2
ZXJMZXNzVGhhbiB7Ci0gICAgYm9vbCBvcGVyYXRvcigpKGNvbnN0IFJlZlB0cjxXZWJLaXRNdXRh
dGlvbk9ic2VydmVyPiYgbGhzLCBjb25zdCBSZWZQdHI8V2ViS2l0TXV0YXRpb25PYnNlcnZlcj4m
IHJocykKLSAgICB7Ci0gICAgICAgIHJldHVybiBsaHMtPm1fcHJpb3JpdHkgPCByaHMtPm1fcHJp
b3JpdHk7Ci0gICAgfQotfTsKLQotUGFzc1JlZlB0cjxXZWJLaXRNdXRhdGlvbk9ic2VydmVyPiBX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpjcmVhdGUoUGFzc1JlZlB0cjxNdXRhdGlvbkNhbGxiYWNr
PiBjYWxsYmFjaykKLXsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihjYWxsYmFjaykpOwotfQotCi1XZWJL
aXRNdXRhdGlvbk9ic2VydmVyOjpXZWJLaXRNdXRhdGlvbk9ic2VydmVyKFBhc3NSZWZQdHI8TXV0
YXRpb25DYWxsYmFjaz4gY2FsbGJhY2spCi0gICAgOiBtX2NhbGxiYWNrKGNhbGxiYWNrKQotICAg
ICwgbV9wcmlvcml0eShzX29ic2VydmVyUHJpb3JpdHkrKykKLXsKLX0KLQotV2ViS2l0TXV0YXRp
b25PYnNlcnZlcjo6fldlYktpdE11dGF0aW9uT2JzZXJ2ZXIoKQotewotICAgIEFTU0VSVChtX3Jl
Z2lzdHJhdGlvbnMuaXNFbXB0eSgpKTsKLX0KLQotYm9vbCBXZWJLaXRNdXRhdGlvbk9ic2VydmVy
Ojp2YWxpZGF0ZU9wdGlvbnMoTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgb3B0aW9ucykKLXsKLSAg
ICByZXR1cm4gKG9wdGlvbnMgJiAoQXR0cmlidXRlcyB8IENoYXJhY3RlckRhdGEgfCBDaGlsZExp
c3QpKQotICAgICAgICAmJiAoKG9wdGlvbnMgJiBBdHRyaWJ1dGVzKSB8fCAhKG9wdGlvbnMgJiBB
dHRyaWJ1dGVPbGRWYWx1ZSkpCi0gICAgICAgICYmICgob3B0aW9ucyAmIEF0dHJpYnV0ZXMpIHx8
ICEob3B0aW9ucyAmIEF0dHJpYnV0ZUZpbHRlcikpCi0gICAgICAgICYmICgob3B0aW9ucyAmIENo
YXJhY3RlckRhdGEpIHx8ICEob3B0aW9ucyAmIENoYXJhY3RlckRhdGFPbGRWYWx1ZSkpOwotfQot
Ci12b2lkIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6Om9ic2VydmUoTm9kZSogbm9kZSwgTXV0YXRp
b25PYnNlcnZlck9wdGlvbnMgb3B0aW9ucywgY29uc3QgSGFzaFNldDxBdG9taWNTdHJpbmc+JiBh
dHRyaWJ1dGVGaWx0ZXIsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlmICghbm9kZSkgewot
ICAgICAgICBlYyA9IE5PVF9GT1VORF9FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICBpZiAoIXZhbGlkYXRlT3B0aW9ucyhvcHRpb25zKSkgewotICAgICAgICAvLyBGSVhNRTogUmV2
aXNpdCB0aGlzIG9uY2UgdGhlIHNwZWMgc3BlY2lmaWVzIHRoZSBleGNlcHRpb24gdHlwZTsgU1lO
VEFYX0VSUiBtYXkgbm90IGJlIGFwcHJvcHJpYXRlLgotICAgICAgICBlYyA9IFNZTlRBWF9FUlI7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0
aW9uKiByZWdpc3RyYXRpb24gPSBub2RlLT5yZWdpc3Rlck11dGF0aW9uT2JzZXJ2ZXIodGhpcyk7
Ci0gICAgcmVnaXN0cmF0aW9uLT5yZXNldE9ic2VydmF0aW9uKG9wdGlvbnMsIGF0dHJpYnV0ZUZp
bHRlcik7Ci0KLSAgICBub2RlLT5kb2N1bWVudCgpLT5hZGRNdXRhdGlvbk9ic2VydmVyVHlwZXMo
cmVnaXN0cmF0aW9uLT5tdXRhdGlvblR5cGVzKCkpOwotfQotCi1WZWN0b3I8UmVmUHRyPE11dGF0
aW9uUmVjb3JkPiA+IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OnRha2VSZWNvcmRzKCkKLXsKLSAg
ICBWZWN0b3I8UmVmUHRyPE11dGF0aW9uUmVjb3JkPiA+IHJlY29yZHM7Ci0gICAgcmVjb3Jkcy5z
d2FwKG1fcmVjb3Jkcyk7Ci0gICAgcmV0dXJuIHJlY29yZHM7Ci19Ci0KLXZvaWQgV2ViS2l0TXV0
YXRpb25PYnNlcnZlcjo6ZGlzY29ubmVjdCgpCi17Ci0gICAgbV9yZWNvcmRzLmNsZWFyKCk7Ci0g
ICAgSGFzaFNldDxNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKj4gcmVnaXN0cmF0aW9ucyht
X3JlZ2lzdHJhdGlvbnMpOwotICAgIGZvciAoSGFzaFNldDxNdXRhdGlvbk9ic2VydmVyUmVnaXN0
cmF0aW9uKj46Oml0ZXJhdG9yIGl0ZXIgPSByZWdpc3RyYXRpb25zLmJlZ2luKCk7IGl0ZXIgIT0g
cmVnaXN0cmF0aW9ucy5lbmQoKTsgKytpdGVyKQotICAgICAgICAoKml0ZXIpLT51bnJlZ2lzdGVy
KCk7Ci19Ci0KLXZvaWQgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6b2JzZXJ2YXRpb25TdGFydGVk
KE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qIHJlZ2lzdHJhdGlvbikKLXsKLSAgICBBU1NF
UlQoIW1fcmVnaXN0cmF0aW9ucy5jb250YWlucyhyZWdpc3RyYXRpb24pKTsKLSAgICBtX3JlZ2lz
dHJhdGlvbnMuYWRkKHJlZ2lzdHJhdGlvbik7Ci19Ci0KLXZvaWQgV2ViS2l0TXV0YXRpb25PYnNl
cnZlcjo6b2JzZXJ2YXRpb25FbmRlZChNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKiByZWdp
c3RyYXRpb24pCi17Ci0gICAgQVNTRVJUKG1fcmVnaXN0cmF0aW9ucy5jb250YWlucyhyZWdpc3Ry
YXRpb24pKTsKLSAgICBtX3JlZ2lzdHJhdGlvbnMucmVtb3ZlKHJlZ2lzdHJhdGlvbik7Ci19Ci0K
LXR5cGVkZWYgSGFzaFNldDxSZWZQdHI8V2ViS2l0TXV0YXRpb25PYnNlcnZlcj4gPiBNdXRhdGlv
bk9ic2VydmVyU2V0OwotCi1zdGF0aWMgTXV0YXRpb25PYnNlcnZlclNldCYgYWN0aXZlTXV0YXRp
b25PYnNlcnZlcnMoKQotewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoTXV0YXRpb25PYnNlcnZl
clNldCwgYWN0aXZlT2JzZXJ2ZXJzLCAoKSk7Ci0gICAgcmV0dXJuIGFjdGl2ZU9ic2VydmVyczsK
LX0KLQotdm9pZCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjplbnF1ZXVlTXV0YXRpb25SZWNvcmQo
UGFzc1JlZlB0cjxNdXRhdGlvblJlY29yZD4gbXV0YXRpb24pCi17Ci0gICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKLSAgICBtX3JlY29yZHMuYXBwZW5kKG11dGF0aW9uKTsKLSAgICBhY3RpdmVN
dXRhdGlvbk9ic2VydmVycygpLmFkZCh0aGlzKTsKLX0KLQotdm9pZCBXZWJLaXRNdXRhdGlvbk9i
c2VydmVyOjpzZXRIYXNUcmFuc2llbnRSZWdpc3RyYXRpb24oKQotewotICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7Ci0gICAgYWN0aXZlTXV0YXRpb25PYnNlcnZlcnMoKS5hZGQodGhpcyk7Ci19
Ci0KLXZvaWQgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6ZGVsaXZlcigpCi17Ci0gICAgLy8gQ2Fs
bGluZyBjbGVhclRyYW5zaWVudFJlZ2lzdHJhdGlvbnMoKSBjYW4gbW9kaWZ5IG1fcmVnaXN0cmF0
aW9ucywgc28gaXQncyBuZWNlc3NhcnkKLSAgICAvLyB0byBtYWtlIGEgY29weSBvZiB0aGUgdHJh
bnNpZW50IHJlZ2lzdHJhdGlvbnMgYmVmb3JlIG9wZXJhdGluZyBvbiB0aGVtLgotICAgIFZlY3Rv
cjxNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKiwgMT4gdHJhbnNpZW50UmVnaXN0cmF0aW9u
czsKLSAgICBmb3IgKEhhc2hTZXQ8TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbio+OjppdGVy
YXRvciBpdGVyID0gbV9yZWdpc3RyYXRpb25zLmJlZ2luKCk7IGl0ZXIgIT0gbV9yZWdpc3RyYXRp
b25zLmVuZCgpOyArK2l0ZXIpIHsKLSAgICAgICAgaWYgKCgqaXRlciktPmhhc1RyYW5zaWVudFJl
Z2lzdHJhdGlvbnMoKSkKLSAgICAgICAgICAgIHRyYW5zaWVudFJlZ2lzdHJhdGlvbnMuYXBwZW5k
KCppdGVyKTsKLSAgICB9Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0cmFuc2llbnRSZWdp
c3RyYXRpb25zLnNpemUoKTsgKytpKQotICAgICAgICB0cmFuc2llbnRSZWdpc3RyYXRpb25zW2ld
LT5jbGVhclRyYW5zaWVudFJlZ2lzdHJhdGlvbnMoKTsKLQotICAgIGlmIChtX3JlY29yZHMuaXNF
bXB0eSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBWZWN0b3I8UmVmUHRyPE11dGF0aW9uUmVj
b3JkPiA+IHJlY29yZHM7Ci0gICAgcmVjb3Jkcy5zd2FwKG1fcmVjb3Jkcyk7Ci0KLSAgICBtX2Nh
bGxiYWNrLT5oYW5kbGVFdmVudCgmcmVjb3JkcywgdGhpcyk7Ci19Ci0KLXZvaWQgV2ViS2l0TXV0
YXRpb25PYnNlcnZlcjo6ZGVsaXZlckFsbE11dGF0aW9ucygpCi17Ci0gICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKLSAgICBzdGF0aWMgYm9vbCBkZWxpdmVyeUluUHJvZ3Jlc3MgPSBmYWxzZTsK
LSAgICBpZiAoZGVsaXZlcnlJblByb2dyZXNzKQotICAgICAgICByZXR1cm47Ci0gICAgZGVsaXZl
cnlJblByb2dyZXNzID0gdHJ1ZTsKLQotICAgIHdoaWxlICghYWN0aXZlTXV0YXRpb25PYnNlcnZl
cnMoKS5pc0VtcHR5KCkpIHsKLSAgICAgICAgVmVjdG9yPFJlZlB0cjxXZWJLaXRNdXRhdGlvbk9i
c2VydmVyPiA+IG9ic2VydmVyczsKLSAgICAgICAgY29weVRvVmVjdG9yKGFjdGl2ZU11dGF0aW9u
T2JzZXJ2ZXJzKCksIG9ic2VydmVycyk7Ci0gICAgICAgIGFjdGl2ZU11dGF0aW9uT2JzZXJ2ZXJz
KCkuY2xlYXIoKTsKLSAgICAgICAgc3RkOjpzb3J0KG9ic2VydmVycy5iZWdpbigpLCBvYnNlcnZl
cnMuZW5kKCksIE9ic2VydmVyTGVzc1RoYW4oKSk7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgb2JzZXJ2ZXJzLnNpemUoKTsgKytpKQotICAgICAgICAgICAgb2JzZXJ2ZXJzW2ldLT5k
ZWxpdmVyKCk7Ci0gICAgfQotCi0gICAgZGVsaXZlcnlJblByb2dyZXNzID0gZmFsc2U7Ci19Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShNVVRBVElPTl9PQlNF
UlZFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TXV0YXRpb25PYnNl
cnZlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzhhZjIzN2UxOThiZThhNzI5YWFjMmYwMDBkYjhh
ZmU1OGYyOTczOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oCisrKyAvZGV2L251
bGwKQEAgLTEsMTA3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgot
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXJfaAotI2Rl
ZmluZSBXZWJLaXRNdXRhdGlvbk9ic2VydmVyX2gKLQotI2lmIEVOQUJMRShNVVRBVElPTl9PQlNF
UlZFUlMpCi0KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0
Lmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNT
dHJpbmcuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmdIYXNoLmg+Ci0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgTXV0YXRpb25DYWxsYmFjazsKLWNsYXNzIE11dGF0aW9u
T2JzZXJ2ZXJSZWdpc3RyYXRpb247Ci1jbGFzcyBNdXRhdGlvblJlY29yZDsKLWNsYXNzIE5vZGU7
Ci0KLXR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7Ci0KLXR5cGVkZWYgdW5zaWduZWQgY2hhciBN
dXRhdGlvbk9ic2VydmVyT3B0aW9uczsKLXR5cGVkZWYgdW5zaWduZWQgY2hhciBNdXRhdGlvblJl
Y29yZERlbGl2ZXJ5T3B0aW9uczsKLQotY2xhc3MgV2ViS2l0TXV0YXRpb25PYnNlcnZlciA6IHB1
YmxpYyBSZWZDb3VudGVkPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI+IHsKLXB1YmxpYzoKLSAgICBl
bnVtIE11dGF0aW9uVHlwZSB7Ci0gICAgICAgIENoaWxkTGlzdCA9IDEgPDwgMCwKLSAgICAgICAg
QXR0cmlidXRlcyA9IDEgPDwgMSwKLSAgICAgICAgQ2hhcmFjdGVyRGF0YSA9IDEgPDwgMiwKLQot
ICAgICAgICBBbGxNdXRhdGlvblR5cGVzID0gQ2hpbGRMaXN0IHwgQXR0cmlidXRlcyB8IENoYXJh
Y3RlckRhdGEKLSAgICB9OwotCi0gICAgZW51bSBPYnNlcnZhdGlvbkZsYWdzICB7Ci0gICAgICAg
IFN1YnRyZWUgPSAxIDw8IDMsCi0gICAgICAgIEF0dHJpYnV0ZUZpbHRlciA9IDEgPDwgNAotICAg
IH07Ci0KLSAgICBlbnVtIERlbGl2ZXJ5RmxhZ3MgewotICAgICAgICBBdHRyaWJ1dGVPbGRWYWx1
ZSA9IDEgPDwgNSwKLSAgICAgICAgQ2hhcmFjdGVyRGF0YU9sZFZhbHVlID0gMSA8PCA2LAotICAg
IH07Ci0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJLaXRNdXRhdGlvbk9ic2VydmVyPiBjcmVh
dGUoUGFzc1JlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPik7Ci0gICAgc3RhdGljIHZvaWQgZGVsaXZl
ckFsbE11dGF0aW9ucygpOwotCi0gICAgfldlYktpdE11dGF0aW9uT2JzZXJ2ZXIoKTsKLQotICAg
IHZvaWQgb2JzZXJ2ZShOb2RlKiwgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMsIGNvbnN0IEhhc2hT
ZXQ8QXRvbWljU3RyaW5nPiYgYXR0cmlidXRlRmlsdGVyLCBFeGNlcHRpb25Db2RlJik7Ci0gICAg
VmVjdG9yPFJlZlB0cjxNdXRhdGlvblJlY29yZD4gPiB0YWtlUmVjb3JkcygpOwotICAgIHZvaWQg
ZGlzY29ubmVjdCgpOwotICAgIHZvaWQgb2JzZXJ2YXRpb25TdGFydGVkKE11dGF0aW9uT2JzZXJ2
ZXJSZWdpc3RyYXRpb24qKTsKLSAgICB2b2lkIG9ic2VydmF0aW9uRW5kZWQoTXV0YXRpb25PYnNl
cnZlclJlZ2lzdHJhdGlvbiopOwotICAgIHZvaWQgZW5xdWV1ZU11dGF0aW9uUmVjb3JkKFBhc3NS
ZWZQdHI8TXV0YXRpb25SZWNvcmQ+KTsKLSAgICB2b2lkIHNldEhhc1RyYW5zaWVudFJlZ2lzdHJh
dGlvbigpOwotCi1wcml2YXRlOgotICAgIHN0cnVjdCBPYnNlcnZlckxlc3NUaGFuOwotCi0gICAg
V2ViS2l0TXV0YXRpb25PYnNlcnZlcihQYXNzUmVmUHRyPE11dGF0aW9uQ2FsbGJhY2s+KTsKLSAg
ICB2b2lkIGRlbGl2ZXIoKTsKLQotICAgIHN0YXRpYyBib29sIHZhbGlkYXRlT3B0aW9ucyhNdXRh
dGlvbk9ic2VydmVyT3B0aW9ucyk7Ci0KLSAgICBSZWZQdHI8TXV0YXRpb25DYWxsYmFjaz4gbV9j
YWxsYmFjazsKLSAgICBWZWN0b3I8UmVmUHRyPE11dGF0aW9uUmVjb3JkPiA+IG1fcmVjb3JkczsK
LSAgICBIYXNoU2V0PE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qPiBtX3JlZ2lzdHJhdGlv
bnM7Ci0gICAgdW5zaWduZWQgbV9wcmlvcml0eTsKLX07Ci0KLX0KLQotI2VuZGlmIC8vIEVOQUJM
RShNVVRBVElPTl9PQlNFUlZFUlMpCi0KLSNlbmRpZiAvLyBXZWJLaXRNdXRhdGlvbk9ic2VydmVy
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVy
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmlkbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTUzNWY0NWJmZTFiMDIxNThkNzQ4MzA4MTQ0Yzg5
YWU3Mzk3NzdkNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TXV0YXRpb25PYnNlcnZlci5pZGwKKysrIC9kZXYv
bnVsbApAQCAtMSw0MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotbW9kdWxlIGNvcmUgewotICAgIGludGVyZmFjZSBbCi0gICAg
ICAgIENvbmRpdGlvbmFsPU1VVEFUSU9OX09CU0VSVkVSUywKLSAgICAgICAgQ3VzdG9tQ29uc3Ry
dWN0b3IsCi0gICAgICAgIENvbnN0cnVjdG9yUGFyYW1ldGVycz0xCi0gICAgXSBXZWJLaXRNdXRh
dGlvbk9ic2VydmVyIHsKLSAgICAgICAgW0N1c3RvbV0gdm9pZCBvYnNlcnZlKGluIE5vZGUgdGFy
Z2V0LCBpbiBNdXRhdGlvbk9ic2VydmVyT3B0aW9ucyBvcHRpb25zKQotICAgICAgICAgICAgcmFp
c2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHNlcXVlbmNlPE11dGF0aW9uUmVjb3JkPiB0YWtl
UmVjb3JkcygpOwotICAgICAgICB2b2lkIGRpc2Nvbm5lY3QoKTsKLSAgICB9OwotfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuaWRsCmluZGV4IGYwNjU2ZDhlMWQ1NzkzYTM4YmY4ZDA2NTA5NzBkZWIw
MWFjN2IwZDguLmFiNmQzOGMwNzc4OGYyYTc0YWQ0MzdkMzIxNTk3MDEyZWY1ZmRkZjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTc4Miw3ICs3ODIsOCBAQCBtb2R1bGUgd2luZG93
IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWU9UXVvdGFd
IFN0b3JhZ2VJbmZvIHdlYmtpdFN0b3JhZ2VJbmZvOwogI2VuZGlmCiAKLSAgICAgICAgYXR0cmli
dXRlIFtDb25kaXRpb25hbD1NVVRBVElPTl9PQlNFUlZFUlNdIFdlYktpdE11dGF0aW9uT2JzZXJ2
ZXJDb25zdHJ1Y3RvciBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOworICAgICAgICBhdHRyaWJ1dGUg
W0NvbmRpdGlvbmFsPU1VVEFUSU9OX09CU0VSVkVSU10gTXV0YXRpb25PYnNlcnZlckNvbnN0cnVj
dG9yIE11dGF0aW9uT2JzZXJ2ZXI7CisgICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9TVVU
QVRJT05fT0JTRVJWRVJTXSBNdXRhdGlvbk9ic2VydmVyQ29uc3RydWN0b3IgV2ViS2l0TXV0YXRp
b25PYnNlcnZlcjsKIAogI2VuZGlmIC8vIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViS2l0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYktpdC5jcHAKaW5kZXggZWU5OTlhOTE2MTZkYjA5MDI2
NGUxOTZiMzNkZTE2ZGYxYWNiYTdhNC4uZWU4MjRlNTU3MDc2ZTkzMWNlNTg4MDc2NGFjYjM5M2Mz
NTE1NzNiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViS2l0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJLaXQuY3BwCkBAIC0zMiwxMyAr
MzIsMTMgQEAKICNpbmNsdWRlICJXZWJLaXQuaCIKIAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNp
bmNsdWRlICJNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUg
IlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1
ZGUgIlRleHRFbmNvZGluZy5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgogI2luY2x1ZGUgIlY4
UmVjdXJzaW9uU2NvcGUuaCIKLSNpbmNsdWRlICJXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCiAj
aW5jbHVkZSAiV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0
LmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmgiCkBAIC02NSw3ICs2
NSw3IEBAIGNsYXNzIEVuZE9mVGFza1J1bm5lciA6IHB1YmxpYyBXZWJUaHJlYWQ6OlRhc2tPYnNl
cnZlciB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFByb2Nlc3NUYXNrKCkKICAgICB7
Ci0gICAgICAgIFdlYkNvcmU6OldlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OmRlbGl2ZXJBbGxNdXRh
dGlvbnMoKTsKKyAgICAgICAgV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6ZGVsaXZlckFsbE11
dGF0aW9ucygpOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCmluZGV4IGI0
NWFlZjExMzA0MjE4ZmZlYTlhNjAxZTFlMGM1N2I2ZDJmZTIxYjUuLmNlNjIxYWI5ZGZmMWUxMjUy
NjNkNTMzYTc3ZDZkYzdiOWQwZDk2NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcApAQCAt
NDcsNiArNDcsNyBAQAogI2luY2x1ZGUgPEpTRWxlbWVudC5oPgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL09wYXF1ZUpTU3RyaW5nLmg+CiAjaW5jbHVkZSA8TWVtb3J5Q2FjaGUuaD4KKyNpbmNs
dWRlIDxNdXRhdGlvbk9ic2VydmVyLmg+CiAjaW5jbHVkZSA8UGFnZUdyb3VwLmg+CiAjaW5jbHVk
ZSA8UHJpbnRDb250ZXh0Lmg+CiAjaW5jbHVkZSA8UmVuZGVyVHJlZUFzVGV4dC5oPgpAQCAtNTQs
NyArNTUsNiBAQAogI2luY2x1ZGUgPFNjcmlwdFZhbHVlLmg+CiAjaW5jbHVkZSA8U2V0dGluZ3Mu
aD4KICNpbmNsdWRlIDxUZXh0SXRlcmF0b3IuaD4KLSNpbmNsdWRlIDxXZWJLaXRNdXRhdGlvbk9i
c2VydmVyLmg+CiAjaW5jbHVkZSA8YmluZGluZ3MvanMvR0NDb250cm9sbGVyLmg+CiAjaW5jbHVk
ZSA8aGlzdG9yeS9IaXN0b3J5SXRlbS5oPgogI2luY2x1ZGUgPHdvcmtlcnMvV29ya2VyVGhyZWFk
Lmg+CkBAIC02MTEsNyArNjExLDcgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmR1
bXBDb25maWd1cmF0aW9uRm9yVmlld3BvcnQoRXZhc19PYmplY3QqIGV3a1ZpZXcKIHZvaWQgRHVt
cFJlbmRlclRyZWVTdXBwb3J0RWZsOjpkZWxpdmVyQWxsTXV0YXRpb25zSWZOZWNlc3NhcnkoKQog
ewogI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCi0gICAgV2ViQ29yZTo6V2ViS2l0TXV0
YXRpb25PYnNlcnZlcjo6ZGVsaXZlckFsbE11dGF0aW9ucygpOworICAgIFdlYkNvcmU6Ok11dGF0
aW9uT2JzZXJ2ZXI6OmRlbGl2ZXJBbGxNdXRhdGlvbnMoKTsKICNlbmRpZgogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRy
ZWVTdXBwb3J0R3RrLmNwcAppbmRleCAzZGQ2YjRkMDU2NmYwMjhjMGVjOTAzYzJlYjFlZmY0Mjdj
MGIzYmYwLi40NDdmYjc0Y2Y5ZDdjMTAwYWU1NjBmYzliMTE1MjI2YWIwOWZmZTdhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydEd0ay5jcHAKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlICJKU0xvY2su
aCIKICNpbmNsdWRlICJKU05vZGVMaXN0LmgiCiAjaW5jbHVkZSAiSlNWYWx1ZS5oIgorI2luY2x1
ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJOb2RlTGlzdC5oIgogI2luY2x1ZGUg
IlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCkBAIC02NCw3ICs2NSw2
IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKICNp
bmNsdWRlICJXZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5oIgotI2luY2x1ZGUgIldlYktpdE11
dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKICNpbmNsdWRlICJ3
ZWJraXRnbG9iYWxzcHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdHdlYmZyYW1lLmgiCkBAIC04
ODUsNyArODg1LDcgQEAgSlNWYWx1ZVJlZiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmNvbXB1
dGVkU3R5bGVJbmNsdWRpbmdWaXNpdGVkSW5mbyhKU0NvbnRleHQKIHZvaWQgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0R3RrOjpkZWxpdmVyQWxsTXV0YXRpb25zSWZOZWNlc3NhcnkoKQogewogI2lmIEVO
QUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCi0gICAgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6ZGVs
aXZlckFsbE11dGF0aW9ucygpOworICAgIE11dGF0aW9uT2JzZXJ2ZXI6OmRlbGl2ZXJBbGxNdXRh
dGlvbnMoKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGVmZGJlNTA3YzEzN2UyNDNkNmRjNjUzMWU4
MDk1OWQ2ZDExMzEzNi4uYzliNzE5NTYzYjJkZThjNDY4NmNiOGQ1Y2U5ZThmMzRkMzBhNmVhOCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEyLTA2LTE1ICBBZGFtIEtsZWluICA8YWRhbWtAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJlbW92ZSB2ZW5kb3IgcHJlZml4IGZyb20gRE9NIE11dGF0
aW9uT2JzZXJ2ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04OTIzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFsbCB0ZXN0cyBoYXZlIGJlZW4gdXBkYXRlZCB0byByZWZlcmVuY2UgdGhlIHVucHJlZml4
ZWQgbmFtZS4KKworICAgICAgICAqIGZhc3QvbXV0YXRpb24vY2FsbGJhY2stYXJndW1lbnRzLmh0
bWw6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi9jbGVhci10cmFuc2llbnQtd2l0aG91dC1kZWxp
dmVyeS5odG1sOgorICAgICAgICAqIGZhc3QvbXV0YXRpb24vY3JlYXRlLWR1cmluZy1kZWxpdmVy
eS5odG1sOgorICAgICAgICAqIGZhc3QvbXV0YXRpb24vY3Jvc3MtZG9jdW1lbnQuaHRtbDoKKyAg
ICAgICAgKiBmYXN0L211dGF0aW9uL2RhdGFiYXNlLWNhbGxiYWNrLWRlbGl2ZXJ5Lmh0bWw6Cisg
ICAgICAgICogZmFzdC9tdXRhdGlvbi9kZWxpdmVyeS1vcmRlci5odG1sOgorICAgICAgICAqIGZh
c3QvbXV0YXRpb24vZGlzY29ubmVjdC1jYW5jZWwtcGVuZGluZy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9tdXRhdGlvbi9kaXNjb25uZWN0LWNhbmNlbC1wZW5kaW5nLmh0bWw6CisgICAg
ICAgICogZmFzdC9tdXRhdGlvbi9kb2N1bWVudC1mcmFnbWVudC1pbnNlcnRpb24uaHRtbDoKKyAg
ICAgICAgKiBmYXN0L211dGF0aW9uL2VuZC1vZi10YXNrLWRlbGl2ZXJ5Lmh0bWw6CisgICAgICAg
ICogZmFzdC9tdXRhdGlvbi9maWxlc3lzdGVtLWNhbGxiYWNrLWRlbGl2ZXJ5Lmh0bWw6CisgICAg
ICAgICogZmFzdC9tdXRhdGlvbi9pbmxpbmUtZXZlbnQtbGlzdGVuZXIuaHRtbDoKKyAgICAgICAg
KiBmYXN0L211dGF0aW9uL211dGF0ZS1kdXJpbmctZGVsaXZlcnkuaHRtbDoKKyAgICAgICAgKiBm
YXN0L211dGF0aW9uL211dGF0aW9uLWNhbGxiYWNrLW5vbi1lbGVtZW50LWNyYXNoLmh0bWw6Cisg
ICAgICAgICogZmFzdC9tdXRhdGlvbi9tdXRhdGlvbi1vYnNlcnZlci1jb25zdHJ1Y3Rvci1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi9tdXRhdGlvbi1vYnNlcnZlci1jb25z
dHJ1Y3Rvci5odG1sOgorICAgICAgICAqIGZhc3QvbXV0YXRpb24vb2JzZXJ2ZS1hdHRyaWJ1dGVz
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L211dGF0aW9uL29ic2VydmUtYXR0cmlidXRl
cy5odG1sOgorICAgICAgICAqIGZhc3QvbXV0YXRpb24vb2JzZXJ2ZS1jaGFyYWN0ZXJkYXRhLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L211dGF0aW9uL29ic2VydmUtY2hhcmFjdGVyZGF0
YS5odG1sOgorICAgICAgICAqIGZhc3QvbXV0YXRpb24vb2JzZXJ2ZS1jaGlsZExpc3QtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGZhc3QvbXV0YXRpb24vb2JzZXJ2ZS1jaGlsZExpc3QuaHRtbDoK
KyAgICAgICAgKiBmYXN0L211dGF0aW9uL29ic2VydmUtZXhjZXB0aW9ucy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWV4Y2VwdGlvbnMuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L211dGF0aW9uL29ic2VydmUtc3VidHJlZS1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogZmFzdC9tdXRhdGlvbi9vYnNlcnZlLXN1YnRyZWUuaHRtbDoKKyAgICAgICAgKiBmYXN0L211
dGF0aW9uL3NoYWRvdy1kb20uaHRtbDoKKyAgICAgICAgKiBmYXN0L211dGF0aW9uL3Rha2VSZWNv
cmRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L211dGF0aW9uL3Rha2VSZWNvcmRzLmh0
bWw6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi90cmFuc2llbnQtZ2MtY3Jhc2guaHRtbDoKKwog
MjAxMi0wNi0wOCAgT2phbiBWYWZhaSAgPG9qYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEZp
cnN0IHdhdmUgb2YgQ2hyb21pdW0gcmViYXNlbGluZXMgYWZ0ZXIgc2tpYSByb2xsYmFjay4gU2Vl
IGNyYnVnLmNvbS8xMzEyODkuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9u
L2NhbGxiYWNrLWFyZ3VtZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9jYWxs
YmFjay1hcmd1bWVudHMuaHRtbAppbmRleCBmNzhkZGQ5MmQzNWE0OTg0ODI2MGQ2N2M2ZTIxZWVk
YWQwNzFkZDYzLi5mODc2NzJmZWNkN2EzNTNkNDA0ZDk4YmQzMzM4OTNmNTkzNDA2NWNjIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2NhbGxiYWNrLWFyZ3VtZW50cy5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vY2FsbGJhY2stYXJndW1lbnRzLmh0bWwK
QEAgLTEyLDcgKzEyLDcgQEAgZnVuY3Rpb24gbXV0YXRpb25DYWxsYmFjayhtdXRhdGlvbnMsIG9i
c2VydmVyKSB7CiAgICAgc2hvdWxkQmUoJ2FyZ3VtZW50MicsICdtdXRhdGlvbk9ic2VydmVyJyk7
CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9Ci12YXIgbXV0YXRpb25PYnNlcnZlciA9IG5ldyBXZWJL
aXRNdXRhdGlvbk9ic2VydmVyKG11dGF0aW9uQ2FsbGJhY2spOwordmFyIG11dGF0aW9uT2JzZXJ2
ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihtdXRhdGlvbkNhbGxiYWNrKTsKIHZhciBkaXYgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKIG11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZShk
aXYsIHthdHRyaWJ1dGVzOiB0cnVlfSk7CiBkaXYuc2V0QXR0cmlidXRlKCdmb28nLCAnYmFyJyk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2NsZWFyLXRyYW5zaWVudC13
aXRob3V0LWRlbGl2ZXJ5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2NsZWFyLXRy
YW5zaWVudC13aXRob3V0LWRlbGl2ZXJ5Lmh0bWwKaW5kZXggZTFmZWU4MTcyMGViY2Q3MDllODA5
OTlmNGE5YmUxMjcyY2FhODdlMi4uNDJhNTNlMzhiZDVmNTZlM2MzMjQxYWQzNGNjYjY3YWMxMDQ5
NDMxNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9jbGVhci10cmFuc2ll
bnQtd2l0aG91dC1kZWxpdmVyeS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24v
Y2xlYXItdHJhbnNpZW50LXdpdGhvdXQtZGVsaXZlcnkuaHRtbApAQCAtNyw3ICs3LDcgQEAgdmFy
IG11dGF0aW9uc0RlbGl2ZXJlZCA9IGZhbHNlOwogZnVuY3Rpb24gY2FsbGJhY2sobXV0YXRpb25z
KSB7CiAgICAgbXV0YXRpb25zRGVsaXZlcmVkID0gdHJ1ZTsKIH0KLXZhciBvYnNlcnZlciA9IG5l
dyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGNhbGxiYWNrKTsKK3ZhciBvYnNlcnZlciA9IG5ldyBN
dXRhdGlvbk9ic2VydmVyKGNhbGxiYWNrKTsKIAogdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2RpdicpOwogdmFyIHNwYW4gPSBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnc3BhbicpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24v
Y3JlYXRlLWR1cmluZy1kZWxpdmVyeS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9j
cmVhdGUtZHVyaW5nLWRlbGl2ZXJ5Lmh0bWwKaW5kZXggY2VlZTI0ZTcwODJjZjgxZDVhNWE1NDlj
NGNkN2I0ZDJkYjhlMjAyNi4uNGY1ZDA3YzZjMDFkOWRmOGZmNTMxNDU3NzFkMmVjNTM0ODg4YzJh
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9jcmVhdGUtZHVyaW5nLWRl
bGl2ZXJ5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9jcmVhdGUtZHVyaW5n
LWRlbGl2ZXJ5Lmh0bWwKQEAgLTE3LDE3ICsxNywxNyBAQCB2YXIgb3JkZXIgPSBbXTsKIHZhciBk
aXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKIAogdmFyIG9ic2VydmVyMzsKLXZh
ciBvYnNlcnZlcjEgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlv
bnMpIHsKK3ZhciBvYnNlcnZlcjEgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRh
dGlvbnMpIHsKICAgICBvcmRlci5wdXNoKDEpOwogICAgIGlmICghb2JzZXJ2ZXIzKSB7Ci0gICAg
ICAgIG9ic2VydmVyMyA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0
aW9ucykgeworICAgICAgICBvYnNlcnZlcjMgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlv
bihtdXRhdGlvbnMpIHsKICAgICAgICAgICAgIG9yZGVyLnB1c2goMyk7CiAgICAgICAgIH0pOwog
ICAgICAgICBvYnNlcnZlcjMub2JzZXJ2ZShkaXYsIHthdHRyaWJ1dGVzOiB0cnVlfSk7CiAgICAg
ICAgIGRpdi5zZXRBdHRyaWJ1dGUoJ2ZvbycsICdiYXonKTsKICAgICB9CiB9KTsKLXZhciBvYnNl
cnZlcjIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsK
K3ZhciBvYnNlcnZlcjIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMp
IHsKICAgICBvcmRlci5wdXNoKDIpOwogfSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvbXV0YXRpb24vY3Jvc3MtZG9jdW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRp
b24vY3Jvc3MtZG9jdW1lbnQuaHRtbAppbmRleCBmNGVlN2YwY2ZjZDg3NGJlZGJmODhhOWZhZmE3
YWJhOWYxODA0ZmExLi5jODgzZGEzNGY0NDZmY2Q5MmUxMTY2YmFlZDliZTViMTcyYjdiOGQzIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2Nyb3NzLWRvY3VtZW50Lmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9jcm9zcy1kb2N1bWVudC5odG1sCkBAIC0x
OCw3ICsxOCw3IEBAIGZ1bmN0aW9uIHRlc3RCYXNpYygpIHsKIAogICAgICAgICBtdXRhdGlvbnMg
PSBudWxsOwogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAg
ICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRh
dGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlv
bihtdXRhdGlvbnMpIHsKICAgICAgICAgICAgIHdpbmRvdy5tdXRhdGlvbnMgPSBtdXRhdGlvbnM7
CiAgICAgICAgIH0pOwogCkBAIC01Miw3ICs1Miw3IEBAIGZ1bmN0aW9uIHRlc3RTdWJ0cmVlKCkg
ewogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgc3ViRGl2ID0gZGl2LmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0
TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIg
PSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICAgICAgICAg
IHdpbmRvdy5tdXRhdGlvbnMgPSBtdXRhdGlvbnM7CiAgICAgICAgIH0pOwogCkBAIC04OSw3ICs4
OSw3IEBAIGZ1bmN0aW9uIHJ1bk5leHRUZXN0KCkgewogCiBkZXNjcmlwdGlvbignVGVzdCB0aGF0
IE11dGF0aW9uT2JzZXJ2ZXJzIG1vdmUgY29ycmVjdGx5IGFjcm9zcyBkb2N1bWVudHMnKTsKIAot
aWYgKCF3aW5kb3cuV2ViS2l0TXV0YXRpb25PYnNlcnZlcikKK2lmICghd2luZG93Lk11dGF0aW9u
T2JzZXJ2ZXIpCiAgICAgdGVzdEZhaWxlZCgnVGhpcyB0ZXN0IHJlcXVpcmVzIEVOQUJMRShNVVRB
VElPTl9PQlNFUlZFUlMpJyk7CiBlbHNlCiAgICAgcnVuTmV4dFRlc3QoKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vZGF0YWJhc2UtY2FsbGJhY2stZGVsaXZlcnkuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vZGF0YWJhc2UtY2FsbGJhY2stZGVsaXZlcnku
aHRtbAppbmRleCBjNzlhM2ZhYzI3ZGQ4N2NhOTQ1OWM2MWMxMTJhNmMyOGM0NjZmNjI0Li40MDM4
ZDBmZTA2OWU4M2Y2NWEzMmJiOTA1Y2ZkYzM0OGM5OTllNmVkIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L211dGF0aW9uL2RhdGFiYXNlLWNhbGxiYWNrLWRlbGl2ZXJ5Lmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9kYXRhYmFzZS1jYWxsYmFjay1kZWxpdmVyeS5odG1s
CkBAIC0xMiw3ICsxMiw3IEBAIGZ1bmN0aW9uIHRlc3REYXRhYmFzZSgpIHsKICAgICBmdW5jdGlv
biBzdGFydCgpIHsKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKICAgICAgICAgZGl2ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktp
dE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBN
dXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07
CiAgICAgICAgIH0pOwogCkBAIC00MSw3ICs0MSw3IEBAIGZ1bmN0aW9uIHRlc3REYXRhYmFzZSgp
IHsKIAogZGVzY3JpcHRpb24oJ1Rlc3RpbmcgbXV0YXRpb25zIGFyZSBkZWxpdmVyZWQgZm9sbG93
aW5nIERhdGFiYXNlIHRyYW5zYWN0aW9uIGNhbGxiYWNrcy4nKTsKIAotaWYgKCF3aW5kb3cuV2Vi
S2l0TXV0YXRpb25PYnNlcnZlcikgeworaWYgKCF3aW5kb3cuTXV0YXRpb25PYnNlcnZlcikgewog
ICAgIHRlc3RGYWlsZWQoJ1RoaXMgdGVzdCByZXF1aXJlcyBFTkFCTEUoTVVUQVRJT05fT0JTRVJW
RVJTKScpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfSBlbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L211dGF0aW9uL2RlbGl2ZXJ5LW9yZGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L211dGF0aW9uL2RlbGl2ZXJ5LW9yZGVyLmh0bWwKaW5kZXggNGU1NWMwZDYyYjY1MzQ4ZDllYWEz
YzJiNTA2N2Y1ZmFmYjgyYjRkZC4uNWJjMjk5MWE1YjViZWM4MjJmYWY2YWFkY2VhZmJmNjlhNDQz
NWNhMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9kZWxpdmVyeS1vcmRl
ci5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vZGVsaXZlcnktb3JkZXIuaHRt
bApAQCAtMjMsNyArMjMsNyBAQCB2YXIgb3JkZXIgPSBbXTsKIHZhciBvYnNlcnZlcnMgPSBbXTsK
IAogZnVuY3Rpb24gc2V0VXBPcmRlcmluZyhudW0pIHsKLSAgICBvYnNlcnZlcnMucHVzaChuZXcg
V2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICBvYnNlcnZl
cnMucHVzaChuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICAg
ICAgb3JkZXIucHVzaChudW0pOwogICAgIH0pKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvbXV0YXRpb24vZGlzY29ubmVjdC1jYW5jZWwtcGVuZGluZy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2Rpc2Nvbm5lY3QtY2FuY2VsLXBlbmRpbmctZXhwZWN0
ZWQudHh0CmluZGV4IDNiNWQ5N2U3NTMyZDY4ZjY2NmViYWU5ZmE1YzBhM2NhZDNmYjFiMTIuLjcz
NmE3NWUxOTFkNmI1MWRjZjdhYzc1MGU1NDJkODg4YWM1MjFjNGUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvbXV0YXRpb24vZGlzY29ubmVjdC1jYW5jZWwtcGVuZGluZy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9kaXNjb25uZWN0LWNhbmNlbC1wZW5k
aW5nLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKLVRlc3QgdGhhdCBXZWJLaXRNdXRhdGlv
bk9ic2VydmVyLmRpc2Nvbm5lY3QgY2FuY2VscyBwZW5kaW5nIGRlbGl2ZXJ5CitUZXN0IHRoYXQg
TXV0YXRpb25PYnNlcnZlci5kaXNjb25uZWN0IGNhbmNlbHMgcGVuZGluZyBkZWxpdmVyeQogCiBP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
bXV0YXRpb24vZGlzY29ubmVjdC1jYW5jZWwtcGVuZGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9tdXRhdGlvbi9kaXNjb25uZWN0LWNhbmNlbC1wZW5kaW5nLmh0bWwKaW5kZXggZjYyZmQ1Mjll
MzljNTFhYzdjNDY4Yzk5YmVhMzcxMzc1MDE1NmFkMS4uYmQ0NzgwOGY0YzI1MzdhM2M0N2Q0Njhh
NjkzYzdjNDJkYTRhYTc5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9k
aXNjb25uZWN0LWNhbmNlbC1wZW5kaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRh
dGlvbi9kaXNjb25uZWN0LWNhbmNlbC1wZW5kaW5nLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8IURP
Q1RZUEUgaHRtbD4KIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCdUZXN0IHRoYXQgV2ViS2l0TXV0YXRp
b25PYnNlcnZlci5kaXNjb25uZWN0IGNhbmNlbHMgcGVuZGluZyBkZWxpdmVyeScpOworZGVzY3Jp
cHRpb24oJ1Rlc3QgdGhhdCBNdXRhdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QgY2FuY2VscyBwZW5k
aW5nIGRlbGl2ZXJ5Jyk7CiAKIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIHZhciBtdXRh
dGlvbnM7CkBAIC0xMSw3ICsxMSw3IEBAIGZ1bmN0aW9uIHN0YXJ0KCkgewogICAgIG11dGF0aW9u
cyA9IG51bGw7CiAgICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAKLSAg
ICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAg
ICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAg
bXV0YXRpb25zID0gbTsKICAgICB9KTsKIApAQCAtMzYsNyArMzYsNyBAQCBmdW5jdGlvbiBmaW5p
c2goKSB7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKLWlmICghd2luZG93LldlYktpdE11dGF0
aW9uT2JzZXJ2ZXIpCitpZiAoIXdpbmRvdy5NdXRhdGlvbk9ic2VydmVyKQogICAgIHRlc3RGYWls
ZWQoJ1RoaXMgdGVzdCByZXF1aXJlcyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKScpOwogZWxz
ZQogICAgIHN0YXJ0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2Rv
Y3VtZW50LWZyYWdtZW50LWluc2VydGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlv
bi9kb2N1bWVudC1mcmFnbWVudC1pbnNlcnRpb24uaHRtbAppbmRleCBjYWM0NmNmZjQzMjA3YTll
MmJmMGQ5ZmE2YzNjM2RlYzJhZTVmZmU0Li5iNjQ2NmVjZWI0NGQ2NGFmZjhhNmY5YzMwOGYwZDVm
NjAyNGY4NmZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2RvY3VtZW50
LWZyYWdtZW50LWluc2VydGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24v
ZG9jdW1lbnQtZnJhZ21lbnQtaW5zZXJ0aW9uLmh0bWwKQEAgLTIwLDcgKzIwLDcgQEAgZnVuY3Rp
b24gY3JlYXRlT2JzZXJ2ZWREaXYoKSB7CiBmdW5jdGlvbiBjYWxsYmFjayhtdXRhdGlvbnMpIHsK
ICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0YXRpb25zOwogfQotdmFyIG9ic2VydmVyID0gbmV3
IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoY2FsbGJhY2spOwordmFyIG9ic2VydmVyID0gbmV3IE11
dGF0aW9uT2JzZXJ2ZXIoY2FsbGJhY2spOwogCiBmdW5jdGlvbiB0ZXN0QXBwZW5kQ2hpbGQoKSB7
CiAgICAgZGVidWcoJ1Rlc3RpbmcgYXBwZW5kQ2hpbGQnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvbXV0YXRpb24vZW5kLW9mLXRhc2stZGVsaXZlcnkuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvbXV0YXRpb24vZW5kLW9mLXRhc2stZGVsaXZlcnkuaHRtbAppbmRleCAyMmQzNjQ3OGM4
OTcyYWJhZDllN2RlNTIwOGYyOTZiMzhkMzhmOTZiLi40Yzc5YTc1NGJlMjQ0YjY0ZWE5NmU2Y2I0
NTdhZWMwN2I2YTg5N2M0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2Vu
ZC1vZi10YXNrLWRlbGl2ZXJ5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9l
bmQtb2YtdGFzay1kZWxpdmVyeS5odG1sCkBAIC0xMiw3ICsxMiw3IEBACiAgICAgdmFyIGxpc3Qg
PSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdvbCcpOwogICAgIHZhciBwID0gZG9jdW1lbnQucXVl
cnlTZWxlY3RvcigncCcpOwogICAgIHZhciBvYnNlcnZlclJ1bnMgPSAwOwotICAgIHZhciBvYnNl
cnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKCkgeyArK29ic2VydmVy
UnVuczsgfSk7CisgICAgdmFyIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rp
b24oKSB7ICsrb2JzZXJ2ZXJSdW5zOyB9KTsKICAgICBvYnNlcnZlci5vYnNlcnZlKGxpc3QsIHtj
aGlsZExpc3Q6IHRydWV9KTsKICAgICBsaXN0LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCBmdW5j
dGlvbigpIHsKICAgICAgICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSBvYnNlcnZlclJ1bnMg
PT0gMSA/ICdQQVNTRUQnIDogJ0ZBSUxFRCc7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L211dGF0aW9uL2ZpbGVzeXN0ZW0tY2FsbGJhY2stZGVsaXZlcnkuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvbXV0YXRpb24vZmlsZXN5c3RlbS1jYWxsYmFjay1kZWxpdmVyeS5odG1sCmluZGV4IGVm
MWM1NmExNWE4ZTgyMzA0YzgxZTU3ZjRhY2RjODhjOWRiNzU3ZjcuLmFiNTViODk5NGQzODFmZDU3
NmMyMWVlMTZkZWMwODg3MzdhOWM2MmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0
YXRpb24vZmlsZXN5c3RlbS1jYWxsYmFjay1kZWxpdmVyeS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvbXV0YXRpb24vZmlsZXN5c3RlbS1jYWxsYmFjay1kZWxpdmVyeS5odG1sCkBAIC0xMiw3
ICsxMiw3IEBAIGZ1bmN0aW9uIHRlc3RGaWxlc3lzdGVtKCkgewogICAgIGZ1bmN0aW9uIHN0YXJ0
KCkgewogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwogICAgICAgICBkaXYgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRp
b25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9u
T2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAg
ICAgfSk7CiAKQEAgLTU2LDcgKzU2LDcgQEAgZnVuY3Rpb24gdGVzdEZpbGVzeXN0ZW0oKSB7CiAK
IGRlc2NyaXB0aW9uKCdUZXN0IHRoYXQgTXV0YXRpb24gUmVjb3JkcyBhcmUgZGVsaXZlcmVkIGZv
bGxvd2luZyBGaWxlU3lzdGVtIGNhbGxiYWNrcy4nKTsKIAotaWYgKCF3aW5kb3cuV2ViS2l0TXV0
YXRpb25PYnNlcnZlciB8fCAhd2luZG93LndlYmtpdFJlcXVlc3RGaWxlU3lzdGVtKSB7CitpZiAo
IXdpbmRvdy5NdXRhdGlvbk9ic2VydmVyIHx8ICF3aW5kb3cud2Via2l0UmVxdWVzdEZpbGVTeXN0
ZW0pIHsKICAgICB0ZXN0RmFpbGVkKCdUaGlzIHRlc3QgcmVxdWlyZXMgRU5BQkxFKE1VVEFUSU9O
X09CU0VSVkVSUykgYW5kIEVOQUJMRShGSUxFX1NZU1RFTSknKTsKICAgICBmaW5pc2hKU1Rlc3Qo
KTsKIH0gZWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9pbmxpbmUt
ZXZlbnQtbGlzdGVuZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vaW5saW5lLWV2
ZW50LWxpc3RlbmVyLmh0bWwKaW5kZXggMzA5NjhlMTRmYmQ2Nzk4MWRhMDVhZmIwODFkZDg5M2Q3
YmJlMDk5My4uNTdkODZiOTNiYTgyYzM5MmQ5OTQ5ZjRjYmM5YjYwNTQ3MzJiMjQwYiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9pbmxpbmUtZXZlbnQtbGlzdGVuZXIuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2lubGluZS1ldmVudC1saXN0ZW5lci5o
dG1sCkBAIC0xMCw3ICsxMCw3IEBACiAKICAgICB2YXIgbGlzdCA9IGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoJ29sJyk7CiAgICAgdmFyIG9ic2VydmVyUmFuID0gZmFsc2U7Ci0gICAgdmFyIG9ic2Vy
dmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKSB7IG9ic2VydmVyUmFu
ID0gdHJ1ZTsgfSk7CisgICAgdmFyIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVu
Y3Rpb24oKSB7IG9ic2VydmVyUmFuID0gdHJ1ZTsgfSk7CiAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShs
aXN0LCB7Y2hpbGRMaXN0OiB0cnVlLCBjaGFyYWN0ZXJEYXRhOiB0cnVlfSk7CiAgICAgbGlzdC5m
b2N1cygpOwogICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L211dGF0aW9uL211dGF0ZS1kdXJpbmctZGVsaXZlcnkuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvbXV0YXRpb24vbXV0YXRlLWR1cmluZy1kZWxpdmVyeS5odG1sCmluZGV4IGY5MzAx
Yjk3ZTVjZDE4YTEwNTIyNGNmZGFjNGZlNGY4YTM5MzdiMzYuLmM5NDlmN2U3YjAyZTAyNzhkYWY5
ZGJmN2YwNGYzYmE3ZWVmODM4NmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRp
b24vbXV0YXRlLWR1cmluZy1kZWxpdmVyeS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0
YXRpb24vbXV0YXRlLWR1cmluZy1kZWxpdmVyeS5odG1sCkBAIC0xNSwxNCArMTUsMTQgQEAgZnVu
Y3Rpb24gZmluaXNoKCkgewogdmFyIG9yZGVyID0gW107CiB2YXIgZGl2ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnZGl2Jyk7CiAKLXZhciBvYnNlcnZlcjEgPSBuZXcgV2ViS2l0TXV0YXRpb25P
YnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKK3ZhciBvYnNlcnZlcjEgPSBuZXcgTXV0YXRp
b25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICBvcmRlci5wdXNoKDEpOwogICAg
IGRpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykpOwogfSk7Ci12
YXIgb2JzZXJ2ZXIyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRp
b25zKSB7Cit2YXIgb2JzZXJ2ZXIyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0
YXRpb25zKSB7CiAgICAgb3JkZXIucHVzaCgyKTsKIH0pOwotdmFyIG9ic2VydmVyMyA9IG5ldyBX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewordmFyIG9ic2VydmVy
MyA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgIG9yZGVy
LnB1c2goMyk7CiB9KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9t
dXRhdGlvbi1jYWxsYmFjay1ub24tZWxlbWVudC1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9tdXRhdGlvbi9tdXRhdGlvbi1jYWxsYmFjay1ub24tZWxlbWVudC1jcmFzaC5odG1sCmluZGV4
IDc1ZjIyZWY5NjExNmEzYTUwNzk2YzQ4YTM2ZTNlZDcwZTA4NTBiNmUuLjJlYWEwNDYxYjcxMDY4
NWEwNjNiZjcxYzhjNzhmNDM3MzU5MjZiZjEgMTAwNzU1Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
bXV0YXRpb24vbXV0YXRpb24tY2FsbGJhY2stbm9uLWVsZW1lbnQtY3Jhc2guaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL211dGF0aW9uLWNhbGxiYWNrLW5vbi1lbGVtZW50LWNy
YXNoLmh0bWwKQEAgLTksNyArOSw3IEBAIGZ1bmN0aW9uIG11dGF0aW9uQ2FsbGJhY2sobXV0YXRp
b25zLCBvYnNlcnZlcikgewogICAgIG11dGF0aW9uc1swXS5hZGRlZE5vZGVzWy0xXTsKIH0KIAot
dmFyIG11dGF0aW9uT2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihtdXRhdGlv
bkNhbGxiYWNrKTsKK3ZhciBtdXRhdGlvbk9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIo
bXV0YXRpb25DYWxsYmFjayk7CiBtdXRhdGlvbk9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuYm9k
eSwge2NoaWxkTGlzdDogdHJ1ZX0pOwogZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZSgiUEFTUy4gV2ViS2l0IGRpZG4ndCBjcmFzaCIpKTsKIDwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9tdXRhdGlvbi1vYnNlcnZl
ci1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL211
dGF0aW9uLW9ic2VydmVyLWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dAppbmRleCAyYmViM2U4NmU3
MGUyNDg1YTc3MjAxODA3NzY0Mjg1OTE3OTI3NDlkLi41NDdmNGJkNDgzZjNmMDE5NWIwYWUwNjc0
YzA2OGVhN2RmYjU5YzdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL211
dGF0aW9uLW9ic2VydmVyLWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L211dGF0aW9uL211dGF0aW9uLW9ic2VydmVyLWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4
dApAQCAtMSwxMSArMSwxMSBAQAotVGVzdCB0aGUgY29uc3RydWN0b3Igb2YgV2ViS2l0TXV0YXRp
b25PYnNlcnZlcgorVGVzdCB0aGUgY29uc3RydWN0b3Igb2YgTXV0YXRpb25PYnNlcnZlcgogCiBP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyB3aW5kb3cuV2ViS2l0TXV0YXRpb25P
YnNlcnZlciBpcyBub24tbnVsbC4KLVBBU1MgdHlwZW9mIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIu
cHJvdG90eXBlLm9ic2VydmUgaXMgImZ1bmN0aW9uIgotUEFTUyB0eXBlb2YgV2ViS2l0TXV0YXRp
b25PYnNlcnZlci5wcm90b3R5cGUuZGlzY29ubmVjdCBpcyAiZnVuY3Rpb24iCitQQVNTIHdpbmRv
dy5NdXRhdGlvbk9ic2VydmVyIGlzIG5vbi1udWxsLgorUEFTUyB0eXBlb2YgTXV0YXRpb25PYnNl
cnZlci5wcm90b3R5cGUub2JzZXJ2ZSBpcyAiZnVuY3Rpb24iCitQQVNTIHR5cGVvZiBNdXRhdGlv
bk9ic2VydmVyLnByb3RvdHlwZS5kaXNjb25uZWN0IGlzICJmdW5jdGlvbiIKIFBBU1MgdHlwZW9m
IG9ic2VydmVyLm9ic2VydmUgaXMgImZ1bmN0aW9uIgogUEFTUyB0eXBlb2Ygb2JzZXJ2ZXIuZGlz
Y29ubmVjdCBpcyAiZnVuY3Rpb24iCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL211dGF0aW9uLW9ic2VydmVyLWNv
bnN0cnVjdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL211dGF0aW9uLW9ic2Vy
dmVyLWNvbnN0cnVjdG9yLmh0bWwKaW5kZXggYWI0MGY3MGVkNzM2OGY1Mzg1YTFmNDlkODVkMzll
NGE2MGFlMzdjZC4uYjhhOTJiYjNhNmZiMmFhYTFlNDNlNGU0NDUwODUzNDAwMWZjOWJjZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9tdXRhdGlvbi1vYnNlcnZlci1jb25z
dHJ1Y3Rvci5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vbXV0YXRpb24tb2Jz
ZXJ2ZXItY29uc3RydWN0b3IuaHRtbApAQCAtMTEsMTcgKzExLDE3IEBACiA8c2NyaXB0PgogCiBm
dW5jdGlvbiBydW5UZXN0KCkgewotICAgIHNob3VsZEJlTm9uTnVsbCgnd2luZG93LldlYktpdE11
dGF0aW9uT2JzZXJ2ZXInKTsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3R5cGVvZiBXZWJL
aXRNdXRhdGlvbk9ic2VydmVyLnByb3RvdHlwZS5vYnNlcnZlJywgJ2Z1bmN0aW9uJyk7Ci0gICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0eXBlb2YgV2ViS2l0TXV0YXRpb25PYnNlcnZlci5wcm90
b3R5cGUuZGlzY29ubmVjdCcsICdmdW5jdGlvbicpOwotICAgIHdpbmRvdy5vYnNlcnZlciA9IG5l
dyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeyB9KTsKKyAgICBz
aG91bGRCZU5vbk51bGwoJ3dpbmRvdy5NdXRhdGlvbk9ic2VydmVyJyk7CisgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCd0eXBlb2YgTXV0YXRpb25PYnNlcnZlci5wcm90b3R5cGUub2JzZXJ2ZScs
ICdmdW5jdGlvbicpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygndHlwZW9mIE11dGF0aW9u
T2JzZXJ2ZXIucHJvdG90eXBlLmRpc2Nvbm5lY3QnLCAnZnVuY3Rpb24nKTsKKyAgICB3aW5kb3cu
b2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsgfSk7
CiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0eXBlb2Ygb2JzZXJ2ZXIub2JzZXJ2ZScsICdm
dW5jdGlvbicpOwogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygndHlwZW9mIG9ic2VydmVyLmRp
c2Nvbm5lY3QnLCAnZnVuY3Rpb24nKTsKIH0KIAotZGVzY3JpcHRpb24oJ1Rlc3QgdGhlIGNvbnN0
cnVjdG9yIG9mIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXInKTsKK2Rlc2NyaXB0aW9uKCdUZXN0IHRo
ZSBjb25zdHJ1Y3RvciBvZiBNdXRhdGlvbk9ic2VydmVyJyk7CiAKLWlmICghd2luZG93LldlYktp
dE11dGF0aW9uT2JzZXJ2ZXIpCitpZiAoIXdpbmRvdy5NdXRhdGlvbk9ic2VydmVyKQogICAgIHRl
c3RGYWlsZWQoJ1RoaXMgdGVzdCByZXF1aXJlcyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKScp
OwogZWxzZQogICAgIHJ1blRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0
YXRpb24vb2JzZXJ2ZS1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
bXV0YXRpb24vb2JzZXJ2ZS1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCAwN2E2OGMzY2Q5
ZjcwNGI4YzUxZTE1MWQ0N2RhMTQwZmM0ZjEzZGRjLi5iOTk4Yzk4OTQ3M2Y5YTdiZmFiYjk1NjM5
YmI0MDYyNmU4MGQ3MTliIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29i
c2VydmUtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRh
dGlvbi9vYnNlcnZlLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotVGVz
dCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUgb24gYXR0cmlidXRlcworVGVzdCBNdXRh
dGlvbk9ic2VydmVyLm9ic2VydmUgb24gYXR0cmlidXRlcwogCiBPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1h
dHRyaWJ1dGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtYXR0cmli
dXRlcy5odG1sCmluZGV4IDQyMWVlYWRmMWZmNzE4NjliODNhOTk5MjI4MDc2MGM4MmRmNGEyZmQu
LjM2ZWE5MGI1MTAzYTlmMTI1ZWIzNjAzZDkwMWI3NjFiNDJlYmY3YTcgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1hdHRyaWJ1dGVzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWF0dHJpYnV0ZXMuaHRtbApAQCAtMTgsNyAr
MTgsNyBAQCBmdW5jdGlvbiB0ZXN0QmFzaWMoKSB7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCdiYXInLCAnZm9v
Jyk7CiAKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5j
dGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rp
b24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTgy
LDcgKzgyLDcgQEAgZnVuY3Rpb24gdGVzdFdyb25nVHlwZSgpIHsKIAogICAgICAgICBtdXRhdGlv
bnMgPSBudWxsOwogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsK
LSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbiht
KSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkg
ewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTExMSw3ICsx
MTEsNyBAQCBmdW5jdGlvbiB0ZXN0TXVsdGlwbGVSZWdpc3RyYXRpb24oKSB7CiAJCWNhbGxzID0g
MDsKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKICAgICAgICAgZGl2ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9i
c2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAJCQljYWxs
cysrOwogICAgICAgICB9KTsKQEAgLTE1MywxMCArMTUzLDEwIEBAIGZ1bmN0aW9uIHRlc3RNdWx0
aXBsZU9ic2VydmVycygpIHsKICAgICAgICAgZGVidWcoJ1Rlc3RpbmcgdGhhdCBtdWx0aXBsZSBv
YnNlcnZlcnMgY2FuIGJlIHJlZ2lzdGVyZWQgdG8gYSBnaXZlbiBub2RlIGFuZCBib3RoIHJlY2Vp
dmUgbXV0YXRpb25zLicpOwogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwogICAgICAgICBkaXYg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcg
V2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0g
bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25z
ID0gbTsKICAgICAgICAgfSk7Ci0gICAgICAgIG9ic2VydmVyMiA9IG5ldyBXZWJLaXRNdXRhdGlv
bk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIyID0gbmV3IE11dGF0aW9u
T2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zMiA9IG07CiAgICAg
ICAgIH0pOwogICAgICAgICBvYnNlcnZlci5vYnNlcnZlKGRpdiwgeyBhdHRyaWJ1dGVzOiB0cnVl
IH0pOwpAQCAtMTg5LDcgKzE4OSw3IEBAIGZ1bmN0aW9uIHRlc3ROYW1lc3BhY2VVUkkoKSB7CiAg
ICAgICAgIGRlYnVnKCdUZXN0aW5nIHRoYXQgImF0dHJpYnV0ZU5hbWVzcGFjZSIgdmFsdWUgaXMg
ZGVsaXZlcmVkIHByb3Blcmx5LicpOwogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwogICAgICAg
ICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgb2JzZXJ2ZXIg
PSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2Vy
dmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0
YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTIyMSw3ICsyMjEsNyBAQCBmdW5jdGlvbiB0
ZXN0UHJvcGVydHlBY2Nlc3MoKSB7CiAgICAgICAgIGltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2ltZycpOwogICAgICAgICBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOwogCi0g
ICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkg
eworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsK
ICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBAIC0yNjIsNyArMjYy
LDcgQEAgZnVuY3Rpb24gdGVzdE9yZGVyaW5nV3J0RE9NU3VidHJlZU1vZGlmaWVkKCkgewogCiAg
ICAgICAgIHN1YkRpdiA9IGRpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKSk7CiAKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihm
dW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVu
Y3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAg
LTMwNSw3ICszMDUsNyBAQCBmdW5jdGlvbiB0ZXN0T2xkVmFsdWUoKSB7CiAgICAgICAgIGRpdiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICBkaXYuc2V0QXR0cmlidXRl
KCdiYXInLCAnYm9vJyk7CiAgICAgICAgIAotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBvYnNlcnZlciA9
IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICAgICAg
d2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAgICAgICAgIG9ic2Vy
dmVyLm9ic2VydmUoZGl2LCB7IGF0dHJpYnV0ZXM6IHRydWUsIGF0dHJpYnV0ZU9sZFZhbHVlOiB0
cnVlIH0pOwpAQCAtMzQ2LDEwICszNDYsMTAgQEAgZnVuY3Rpb24gdGVzdE9sZFZhbHVlQXNSZXF1
ZXN0ZWQoKSB7CiAgICAgICAgIG11dGF0aW9ucyA9IG51bGw7CiAgICAgICAgIGRpdiA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCdmb28n
LCAnYmFyJyk7Ci0gICAgICAgIG9ic2VydmVyV2l0aE9sZFZhbHVlID0gbmV3IFdlYktpdE11dGF0
aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyV2l0aE9s
ZFZhbHVlID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAg
ICAgICAgICB3aW5kb3cubXV0YXRpb25zV2l0aE9sZFZhbHVlID0gbXV0YXRpb25zOwogICAgICAg
ICB9KTsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5j
dGlvbihtdXRhdGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZl
cihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICAgICAgICAgIHdpbmRvdy5tdXRhdGlvbnMgPSBt
dXRhdGlvbnM7CiAgICAgICAgIH0pOwogICAgICAgICBvYnNlcnZlcldpdGhPbGRWYWx1ZS5vYnNl
cnZlKGRpdiwgeyBhdHRyaWJ1dGVzOiB0cnVlLCBhdHRyaWJ1dGVPbGRWYWx1ZTogdHJ1ZSB9KTsK
QEAgLTM4Nyw3ICszODcsNyBAQCBmdW5jdGlvbiB0ZXN0T2xkVmFsdWVVbmlvbk11bHRpcGxlT2Jz
ZXJ2YXRpb25zKCkgewogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKICAgICAgICAgc3BhbiA9IGRpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdzcGFuJykpOwogICAgICAgICBzcGFuLnNldEF0dHJpYnV0ZSgnZm9vJywgJ2JhcicpOwotICAg
ICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0
aW9ucykgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9u
KG11dGF0aW9ucykgewogICAgICAgICAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsK
ICAgICAgICAgfSk7CiAgICAgICAgIG9ic2VydmVyLm9ic2VydmUoZGl2LCB7IGF0dHJpYnV0ZXM6
IHRydWUsIGF0dHJpYnV0ZU9sZFZhbHVlOiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pOwpAQCAtNDE3
LDcgKzQxNyw3IEBAIGZ1bmN0aW9uIHRlc3RJRExBdHRyaWJ1dGUoKSB7CiAgICAgICAgIGRlYnVn
KCdUZXN0aW5nIHNldHRpbmcgYW4gYXR0cmlidXRlIHZpYSByZWZsZWN0ZWQgSURMIGF0dHJpYnV0
ZS4nKTsKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKICAgICAgICAgZGl2ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0
aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3
IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5k
b3cubXV0YXRpb25zID0gbXV0YXRpb25zOwogICAgICAgICB9KTsKICAgICAgICAgb2JzZXJ2ZXIu
b2JzZXJ2ZShkaXYsIHsgYXR0cmlidXRlczogdHJ1ZSwgYXR0cmlidXRlT2xkVmFsdWU6IHRydWUg
fSk7CkBAIC00NTQsNyArNDU0LDcgQEAgZnVuY3Rpb24gdGVzdEF0dHJpYnV0ZUZpbHRlcigpIHsK
ICAgICAgICAgZGVidWcoJ1Rlc3RpbmcgdGhhdCBhdHRyaWJ1dGVGaWx0ZXIgd29ya3MgYXMgZXhw
ZWN0ZWQgYW5kIG9ic2VydmVzIGNhc2Ugd2l0aCBIVE1MIGVsZW1lbnRzLicpOwogCiAgICAgICAg
IG11dGF0aW9ucyA9IG51bGw7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9i
c2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAg
IH0pOwogCkBAIC00OTQsNyArNDk0LDcgQEAgZnVuY3Rpb24gdGVzdEF0dHJpYnV0ZUZpbHRlclN1
YnRyZWUoKSB7CiAgICAgICAgIGRlYnVnKCdUZXN0aW5nIHRoZSBiZWhhdmlvciBvZiBhdHRyaWJ1
dGVGaWx0ZXIgd2hlbiB0aGUgc2FtZSBvYnNlcnZlciBvYnNlcnZlcyBhdCBtdWx0aXBsZSBub2Rl
cyBpbiBhIHN1YnRyZWUgd2l0aCBkaWZmZXJlbnQgZmlsdGVyIG9wdGlvbnMuJyk7CiAKICAgICAg
ICAgbXV0YXRpb25zID0gbnVsbDsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRp
b25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9u
T2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAg
ICAgfSk7CiAKQEAgLTU2NSw3ICs1NjUsNyBAQCBmdW5jdGlvbiB0ZXN0QXR0cmlidXRlRmlsdGVy
Tm9uSFRNTEVsZW1lbnQoKSB7CiAgICAgICAgIGRlYnVnKCdUZXN0aW5nIHRoYXQgc2V0dGluZyBh
biBhdHRyaWJ1dGVGaWx0ZXIgZmlsdGVycyBvdXQgbmFtZXNwYWNlZCBhdHRyaWJ1dGVzLicpOwog
CiAgICAgICAgIG11dGF0aW9ucyA9IG51bGw7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktp
dE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBN
dXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07
CiAgICAgICAgIH0pOwogCkBAIC01OTcsNyArNTk3LDcgQEAgZnVuY3Rpb24gdGVzdEF0dHJpYnV0
ZUZpbHRlck5vbkhUTUxEb2N1bWVudCgpIHsKIAogICAgICAgICBzdmdEb2MgPSBkb2N1bWVudC5p
bXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudCgnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcn
LCAnc3ZnJywgJ3N2ZycpOwogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwotICAgICAgICBvYnNl
cnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAg
b2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAgICAg
ICBtdXRhdGlvbnMgPSBtOwogICAgICAgICB9KTsKIApAQCAtNjQyLDcgKzY0Miw3IEBAIGZ1bmN0
aW9uIHRlc3RTdHlsZUF0dHJpYnV0ZVByb3BlcnR5QWNjZXNzKCkgewogICAgICAgICBkZWJ1Zygn
VGVzdGluZyB0aGF0IG1vZGlmeWluZyBhbiBlbGVtZW50cyBzdHlsZSBwcm9wZXJ0eSBkaXNwYXRj
aGVzIE11dGF0aW9uIFJlY29yZHMuJyk7CiAKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKLSAg
ICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7
CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewog
ICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTY5NCw3ICs2OTQs
NyBAQCBmdW5jdGlvbiB0ZXN0U3R5bGVBdHRyaWJ1dGVQcm9wZXJ0eUFjY2Vzc09sZFZhbHVlKCkg
ewogICAgICAgICBkZWJ1ZygnVGVzdGluZyB0aGF0IG1vZGlmeWluZyBhbiBlbGVtZW50cyBzdHls
ZSBwcm9wZXJ0eSBkaXNwYXRjaGVzIE11dGF0aW9uIFJlY29yZHMgd2l0aCBjb3JyZWN0IG9sZFZh
bHVlcy4nKTsKIAogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwotICAgICAgICBvYnNlcnZlciA9
IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2
ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICBtdXRh
dGlvbnMgPSBtOwogICAgICAgICB9KTsKIApAQCAtNzQ2LDcgKzc0Niw3IEBAIGZ1bmN0aW9uIHRl
c3RTdHlsZUF0dHJpYnV0ZVByb3BlcnR5QWNjZXNzSWdub3JlTm9vcCgpIHsKICAgICAgICAgZGVi
dWcoJ1Rlc3RpbmcgdGhhdCBhIG5vLW9wIHN0eWxlIHByb3BlcnR5IG11dGF0aW9uIGRvZXMgbm90
IGNyZWF0ZSBNdXRhdGlvbiBSZWNvcmRzLicpOwogCiAgICAgICAgIG11dGF0aW9ucyA9IG51bGw7
Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24o
bSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0p
IHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBAIC03NzYsNyAr
Nzc2LDcgQEAgZnVuY3Rpb24gdGVzdE11dGF0ZVRocm91Z2hBdHRyTm9kZVZhbHVlKCkgewogICAg
ICAgICBkZWJ1ZygnVGVzdCB0aGF0IG11dGF0aW5nIGFuIGF0dHJpYnV0ZSB0aHJvdWdoIGFuIGF0
dHIgbm9kZSBkZWxpdmVycyBtdXRhdGlvbiByZWNvcmRzJyk7CiAKICAgICAgICAgbXV0YXRpb25z
ID0gbnVsbDsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihm
dW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNl
cnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICAgICAgICAgIHdpbmRvdy5tdXRhdGlvbnMg
PSBtdXRhdGlvbnM7CiAgICAgICAgIH0pOwogCkBAIC04MTAsNyArODEwLDcgQEAgZnVuY3Rpb24g
dGVzdE11dGF0ZVRocm91Z2hBdHRyTm9kZUNoaWxkKCkgewogICAgICAgICBkZWJ1ZygnVGVzdCB0
aGF0IG11dGF0aW5nIGFuIGF0dHJpYnV0ZSBieSBhdHRhY2hpbmcgYSBjaGlsZCB0byBhbiBhdHRy
IG5vZGUgZGVsaXZlcnMgbXV0YXRpb24gcmVjb3JkcycpOwogCiAgICAgICAgIG11dGF0aW9ucyA9
IG51bGw7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVu
Y3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2
ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zID0g
bXV0YXRpb25zOwogICAgICAgICB9KTsKIApAQCAtODQ0LDcgKzg0NCw3IEBAIGZ1bmN0aW9uIHRl
c3RTZXRBbmRSZW1vdmVBdHRyaWJ1dGVOb2RlKCkgewogICAgICAgICBkZWJ1ZygnVGVzdCB0aGF0
IG11dGF0aW5nIHZpYSBzZXRBdHRyaWJ1dGVOb2RlIGRlbGl2ZXJzIG11dGF0aW9uIHJlY29yZHMn
KTsKIAogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBvYnNl
cnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAg
ICAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAKQEAgLTg5
Myw3ICs4OTMsNyBAQCBmdW5jdGlvbiB0ZXN0TWl4ZWROb2RlQW5kRWxlbWVudE9wZXJhdGlvbnMo
KSB7CiAgICAgICAgIGRlYnVnKCdUZXN0IHRoYXQgc2V0QXR0cmlidXRlIG9uIGFuIGF0dHJpYnV0
ZSB3aXRoIGFuIGV4aXN0aW5nIEF0dHIgZGVsaXZlcnMgbXV0YXRpb24gcmVjb3JkcycpOwogCiAg
ICAgICAgIG11dGF0aW9ucyA9IG51bGw7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11
dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0g
bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3
aW5kb3cubXV0YXRpb25zID0gbXV0YXRpb25zOwogICAgICAgICB9KTsKIApAQCAtOTI5LDcgKzky
OSw3IEBAIGZ1bmN0aW9uIHRlc3ROYW1lZE5vZGVNYXBPcGVyYXRpb25zKCkgewogICAgICAgICBk
ZWJ1ZygnVGVzdCB0aGF0IHNldE5hbWVkSXRlbSBhbmQgcmVtb3ZlTmFtZWRJdGVtIGRlbGl2ZXIg
bXV0YXRpb24gcmVjb3JkcycpOwogCiAgICAgICAgIG11dGF0aW9ucyA9IG51bGw7Ci0gICAgICAg
IG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25z
KSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0
YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0YXRpb25zOwogICAg
ICAgICB9KTsKIApAQCAtOTk3LDkgKzk5Nyw5IEBAIGZ1bmN0aW9uIHJ1bk5leHRUZXN0KCkgewog
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAotZGVzY3JpcHRpb24oJ1Rlc3QgV2ViS2l0TXV0
YXRpb25PYnNlcnZlci5vYnNlcnZlIG9uIGF0dHJpYnV0ZXMnKTsKK2Rlc2NyaXB0aW9uKCdUZXN0
IE11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSBvbiBhdHRyaWJ1dGVzJyk7CiAKLWlmICghd2luZG93
LldlYktpdE11dGF0aW9uT2JzZXJ2ZXIpCitpZiAoIXdpbmRvdy5NdXRhdGlvbk9ic2VydmVyKQog
ICAgIHRlc3RGYWlsZWQoJ1RoaXMgdGVzdCByZXF1aXJlcyBFTkFCTEUoTVVUQVRJT05fT0JTRVJW
RVJTKScpOwogZWxzZQogICAgIHJ1bk5leHRUZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L211dGF0aW9uL29ic2VydmUtY2hhcmFjdGVyZGF0YS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtY2hhcmFjdGVyZGF0YS1leHBlY3RlZC50eHQK
aW5kZXggMWRmZjNiNTVkMjc2Y2MxNWE2ODM5YmVkN2Q5N2IzODJjNmY3YWRmYi4uMzFkZDU3NDA1
MmMyZmU3NjNlODhmMjdmMGEyNTkwMDhmZGU3ZTQwYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWNoYXJhY3RlcmRhdGEtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1jaGFyYWN0ZXJkYXRhLWV4cGVjdGVkLnR4
dApAQCAtMSw0ICsxLDQgQEAKLVRlc3QgV2ViS2l0TXV0YXRpb25PYnNlcnZlci5vYnNlcnZlIG9u
IENoYXJhY3RlckRhdGEgbm9kZXMKK1Rlc3QgTXV0YXRpb25PYnNlcnZlci5vYnNlcnZlIG9uIENo
YXJhY3RlckRhdGEgbm9kZXMKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtY2hhcmFjdGVyZGF0YS5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWNoYXJhY3RlcmRhdGEuaHRtbApp
bmRleCAwMWNhZWEyMWVhNDMwNmI2ZmNmZjJlNDlmZDBlMzk3MzdhMTI2NDVjLi5kODkwNTRhNzNh
ODQ0MzFmMGU5OGQ5NjliMzQyODk2YmY2YjYwNzI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L211dGF0aW9uL29ic2VydmUtY2hhcmFjdGVyZGF0YS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1jaGFyYWN0ZXJkYXRhLmh0bWwKQEAgLTI3LDcgKzI3LDcg
QEAgZnVuY3Rpb24gdGVzdEJhc2ljKCkgewogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdkaXYnKTsKICAgICAgICAgZGl2LnRleHRDb250ZW50ID0gJ2Zvbyc7CiAgICAgICAg
IGNoYXJEYXRhTm9kZSA9IGRpdi5maXJzdENoaWxkOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBu
ZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICBtdXRhdGlvbnMg
PSBtOwogICAgICAgICB9KTsKIApAQCAtODcsNyArODcsNyBAQCBmdW5jdGlvbiB0ZXN0V3JvbmdU
eXBlKCkgewogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAg
ICAgICAgZGl2LnRleHRDb250ZW50ID0gJ2hlbGxvJzsKICAgICAgICAgY2hhckRhdGFOb2RlID0g
ZGl2LmZpcnN0Q2hpbGQ7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2Vy
dmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0p
OwogCkBAIC0xMTcsMTAgKzExNywxMCBAQCBmdW5jdGlvbiB0ZXN0TXVsdGlwbGVPYnNlcnZlcnMo
KSB7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAg
ICBkaXYudGV4dENvbnRlbnQgPSAnZm9vJzsKICAgICAgICAgY2hhckRhdGFOb2RlID0gZGl2LmZp
cnN0Q2hpbGQ7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIo
ZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1
bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwotICAg
ICAgICBvYnNlcnZlcjIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7
CisgICAgICAgIG9ic2VydmVyMiA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsK
ICAgICAgICAgICAgIG11dGF0aW9uczIgPSBtOwogICAgICAgICB9KTsKICAgICAgICAgb2JzZXJ2
ZXIub2JzZXJ2ZShjaGFyRGF0YU5vZGUsIHtjaGFyYWN0ZXJEYXRhOiB0cnVlfSk7CkBAIC0xNjEs
NyArMTYxLDcgQEAgZnVuY3Rpb24gdGVzdE9yZGVyaW5nV3J0RE9NU3VidHJlZU1vZGlmaWVkKCkg
ewogICAgICAgICBzdWJEaXYudGV4dENvbnRlbnQgPSAnZm9vJzsKICAgICAgICAgY2hhckRhdGFO
b2RlID0gc3ViRGl2LmZpcnN0Q2hpbGQ7CiAKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0
TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11
dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsK
ICAgICAgICAgfSk7CiAKQEAgLTIwMiw3ICsyMDIsNyBAQCBmdW5jdGlvbiB0ZXN0T2xkVmFsdWUo
KSB7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAg
ICBkaXYudGV4dENvbnRlbnQgPSAnZm9vJzsKICAgICAgICAgY2hhckRhdGFOb2RlID0gZGl2LmZp
cnN0Q2hpbGQ7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIo
ZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2Jz
ZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25z
ID0gbXV0YXRpb25zOwogICAgICAgICB9KTsKICAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShjaGFy
RGF0YU5vZGUsIHtjaGFyYWN0ZXJEYXRhOiB0cnVlLCBjaGFyYWN0ZXJEYXRhT2xkVmFsdWU6IHRy
dWV9KTsKQEAgLTIzOSwxMCArMjM5LDEwIEBAIGZ1bmN0aW9uIHRlc3RPbGRWYWx1ZUFzUmVxdWVz
dGVkKCkgewogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAg
ICAgICAgZGl2LnRleHRDb250ZW50ID0gJ2Zvbyc7CiAgICAgICAgIGNoYXJEYXRhTm9kZSA9IGRp
di5maXJzdENoaWxkOwotICAgICAgICBvYnNlcnZlcldpdGhPbGRWYWx1ZSA9IG5ldyBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBvYnNlcnZlcldp
dGhPbGRWYWx1ZSA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewog
ICAgICAgICAgICAgd2luZG93Lm11dGF0aW9uc1dpdGhPbGRWYWx1ZSA9IG11dGF0aW9uczsKICAg
ICAgICAgfSk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIo
ZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2Jz
ZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25z
ID0gbXV0YXRpb25zOwogICAgICAgICB9KTsKICAgICAgICAgb2JzZXJ2ZXJXaXRoT2xkVmFsdWUu
b2JzZXJ2ZShjaGFyRGF0YU5vZGUsIHtjaGFyYWN0ZXJEYXRhOiB0cnVlLCBjaGFyYWN0ZXJEYXRh
T2xkVmFsdWU6IHRydWV9KTsKQEAgLTI3Nyw3ICsyNzcsNyBAQCBmdW5jdGlvbiB0ZXN0T2xkVmFs
dWVVbmlvbk11bHRpcGxlT2JzZXJ2YXRpb25zKCkgewogICAgICAgICBkaXYgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgZGl2LnRleHRDb250ZW50ID0gJ2Zvbyc7CiAg
ICAgICAgIGNoYXJEYXRhTm9kZSA9IGRpdi5maXJzdENoaWxkOwotICAgICAgICBvYnNlcnZlciA9
IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAg
ICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewog
ICAgICAgICAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAg
ICAgICAgIG9ic2VydmVyLm9ic2VydmUoZGl2LCB7Y2hhcmFjdGVyRGF0YTogdHJ1ZSwgY2hhcmFj
dGVyRGF0YU9sZFZhbHVlOiB0cnVlLCBzdWJ0cmVlOiB0cnVlfSk7CkBAIC0zMTYsOSArMzE2LDkg
QEAgZnVuY3Rpb24gcnVuTmV4dFRlc3QoKSB7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogfQog
Ci1kZXNjcmlwdGlvbignVGVzdCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUgb24gQ2hh
cmFjdGVyRGF0YSBub2RlcycpOworZGVzY3JpcHRpb24oJ1Rlc3QgTXV0YXRpb25PYnNlcnZlci5v
YnNlcnZlIG9uIENoYXJhY3RlckRhdGEgbm9kZXMnKTsKIAotaWYgKCF3aW5kb3cuV2ViS2l0TXV0
YXRpb25PYnNlcnZlcikKK2lmICghd2luZG93Lk11dGF0aW9uT2JzZXJ2ZXIpCiAgICAgdGVzdEZh
aWxlZCgnVGhpcyB0ZXN0IHJlcXVpcmVzIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpJyk7CiBl
bHNlCiAgICAgcnVuTmV4dFRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0
YXRpb24vb2JzZXJ2ZS1jaGlsZExpc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9t
dXRhdGlvbi9vYnNlcnZlLWNoaWxkTGlzdC1leHBlY3RlZC50eHQKaW5kZXggZDdiYjI3NjQyZjFk
NDZiZWZiYzJkMDBmYjFhZTU5ZDhlMDc3ZDIwYS4uYzNjMWY2Y2RlNWIyMTBmYzZhMzU0MjA4ZjEw
ZTYzMzQ1MjU5ZDhiOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNl
cnZlLWNoaWxkTGlzdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlv
bi9vYnNlcnZlLWNoaWxkTGlzdC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1UZXN0IFdl
YktpdE11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSBvbiBhdHRyaWJ1dGVzLgorVGVzdCBNdXRhdGlv
bk9ic2VydmVyLm9ic2VydmUgb24gYXR0cmlidXRlcy4KIAogT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtY2hp
bGRMaXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtY2hpbGRMaXN0
Lmh0bWwKaW5kZXggYTNhODRkNDQzODg2NGFlNzJiMjljNjg5OGM0NDBlMDk4ZDI4ZDkxMi4uZGM2
MThjNmFmN2IwNTI5YWZmYTU4ZjFhZmQwYmQ1NmMwYTQzMWY1MiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWNoaWxkTGlzdC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1jaGlsZExpc3QuaHRtbApAQCAtMjQsNyArMjQsNyBA
QCBmdW5jdGlvbiB0ZXN0QmFzaWMoKSB7CiAKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKICAg
ICAgICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIG9ic2Vy
dmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBv
YnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAg
IG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBAIC04NCw3ICs4NCw3IEBAIGZ1bmN0aW9u
IHRlc3RXcm9uZ1R5cGUoKSB7CiAKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKICAgICAgICAg
ZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIG9ic2VydmVyID0g
bmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZl
ciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0
aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBAIC0xMTMsNyArMTEzLDcgQEAgZnVuY3Rpb24gdGVz
dE11bHRpcGxlUmVnaXN0cmF0aW9uKCkgewogICAgICAgICBjYWxscyA9IDA7CiAgICAgICAgIG11
dGF0aW9ucyA9IG51bGw7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0
aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlv
bihtKSB7CiAgICAgICAgICAgICBtdXRhdGlvbnMgPSBtOwogICAgICAgICAgICAgY2FsbHMrKzsK
ICAgICAgICAgfSk7CkBAIC0xNTQsMTAgKzE1NCwxMCBAQCBmdW5jdGlvbiB0ZXN0TXVsdGlwbGVP
YnNlcnZlcnMoKSB7CiAgICAgICAgIGRlYnVnKCdUZXN0aW5nIHRoYXQgbXVsdGlwbGUgb2JzZXJ2
ZXJzIGNhbiBiZSByZWdpc3RlcmVkIHRvIGEgZ2l2ZW4gbm9kZSBhbmQgYm90aCByZWNlaXZlIG11
dGF0aW9ucy4nKTsKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKICAgICAgICAgZGl2ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktp
dE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBN
dXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07
CiAgICAgICAgIH0pOwotICAgICAgICBvYnNlcnZlcjIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNl
cnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyMiA9IG5ldyBNdXRhdGlvbk9ic2Vy
dmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9uczIgPSBtOwogICAgICAgICB9
KTsKICAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShkaXYsIHsgY2hpbGRMaXN0OiB0cnVlIH0pOwpA
QCAtMTkyLDcgKzE5Miw3IEBAIGZ1bmN0aW9uIHRlc3RJbm5lckhUTUxBbmRJbm5lclRleHQoKSB7
CiAgICAgICAgIGRpdi5pbm5lckhUTUwgPSAnPHNwYW4+Rm9vPC9zcGFuPjxkaXY+QmFyPC9kaXY+
JzsKICAgICAgICAgcmVtb3ZlZERpdjEgPSBkaXYuZmlyc3RDaGlsZDsKICAgICAgICAgcmVtb3Zl
ZERpdjIgPSByZW1vdmVkRGl2MS5uZXh0U2libGluZzsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcg
V2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0g
bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25z
ID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTI1MCw3ICsyNTAsNyBAQCBmdW5jdGlvbiB0ZXN0UmVw
bGFjZUNoaWxkKCkgewogICAgICAgICBkaXYuaW5uZXJIVE1MID0gJzxzcGFuPkZvbzwvc3Bhbj48
ZGl2PkJhcjwvZGl2Pic7CiAgICAgICAgIHJlbW92ZWREaXYxID0gZGl2LmZpcnN0Q2hpbGQ7CiAK
LSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbiht
KSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkg
ewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTMxNSw3ICsz
MTUsNyBAQCBmdW5jdGlvbiB0ZXN0SW5zZXJ0QmVmb3JlKCkgewogICAgICAgICBhZGRlZERpdjEg
PSBmcmFnbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7CiAg
ICAgICAgIGFkZGVkRGl2MiA9IGZyYWdtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2RpdicpKTsKIAotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9i
c2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNl
cnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICBtdXRhdGlvbnMgPSBtOwogICAgICAgICB9
KTsKIApAQCAtMzU2LDcgKzM1Niw3IEBAIGZ1bmN0aW9uIHRlc3RBcHBlbmRDaGlsZCgpIHsKICAg
ICAgICAgYWRkZWREaXYxID0gZnJhZ21lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZGl2JykpOwogICAgICAgICBhZGRlZERpdjIgPSBmcmFnbWVudC5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7CiAKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcg
V2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0g
bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25z
ID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTM4Nyw3ICszODcsNyBAQCBmdW5jdGlvbiB0ZXN0SW5u
ZXJIVE1MRW1wdHkoKSB7CiAKICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpOwogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwotICAgICAgICBvYnNlcnZlciA9
IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAg
ICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewog
ICAgICAgICAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAg
ICAgICAgIG9ic2VydmVyLm9ic2VydmUoZGl2LCB7Y2hpbGRMaXN0OiB0cnVlfSk7CkBAIC00MTQs
OSArNDE0LDkgQEAgZnVuY3Rpb24gcnVuTmV4dFRlc3QoKSB7CiAgICAgICAgIGZpbmlzaEpTVGVz
dCgpOwogfQogCi1kZXNjcmlwdGlvbignVGVzdCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLm9ic2Vy
dmUgb24gYXR0cmlidXRlcy4nKTsKK2Rlc2NyaXB0aW9uKCdUZXN0IE11dGF0aW9uT2JzZXJ2ZXIu
b2JzZXJ2ZSBvbiBhdHRyaWJ1dGVzLicpOwogCi1pZiAoIXdpbmRvdy5XZWJLaXRNdXRhdGlvbk9i
c2VydmVyKQoraWYgKCF3aW5kb3cuTXV0YXRpb25PYnNlcnZlcikKICAgICB0ZXN0RmFpbGVkKCdU
aGlzIHRlc3QgcmVxdWlyZXMgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUyknKTsKIGVsc2UKICAg
ICBydW5OZXh0VGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9v
YnNlcnZlLWV4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlv
bi9vYnNlcnZlLWV4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0CmluZGV4IDlmNmUzN2E5MTA2ZjA2Mzgw
MGFkZDMzZDdiZTBlMzEyZTBkMThiMjUuLjhjOWI0ZGU4MDhlYTFlZDliOTA0MzQ5NmJjNDU5NTk0
MmY0MzQ4YjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1l
eGNlcHRpb25zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29i
c2VydmUtZXhjZXB0aW9ucy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1UZXN0IHRoYXQg
V2ViS2l0TXV0YXRpb25PYnNlcnZlci5vYnNlcnZlIHRocm93cyBleGNlcHRpb25zIGFwcHJvcHJp
YXRlbHkKK1Rlc3QgdGhhdCBNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUgdGhyb3dzIGV4Y2VwdGlv
bnMgYXBwcm9wcmlhdGVseQogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1leGNlcHRpb25zLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtZXhjZXB0aW9ucy5odG1sCmluZGV4IGQ0
NjU3YjZkZDdjMmUzMzEyODNlMjg5MjVjZGY5MGM1ZGY0NjIwNTkuLjc2NjE1NDdiMjc5ZmZmY2Jj
ODMyN2Q1NmJhMTk2ZmViM2ExYjViZWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0
YXRpb24vb2JzZXJ2ZS1leGNlcHRpb25zLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRh
dGlvbi9vYnNlcnZlLWV4Y2VwdGlvbnMuaHRtbApAQCAtMTEsNyArMTEsNyBAQAogPHNjcmlwdD4K
IAogZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICB3aW5kb3cub2JzZXJ2ZXIgPSBuZXcgV2ViS2l0
TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsgfSk7CisgICAgd2luZG93Lm9i
c2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7IH0pOwog
ICAgIHNob3VsZFRocm93KCdvYnNlcnZlci5vYnNlcnZlKCknKTsKICAgICBzaG91bGRUaHJvdygn
b2JzZXJ2ZXIub2JzZXJ2ZShudWxsKScpOwogICAgIHNob3VsZFRocm93KCdvYnNlcnZlci5vYnNl
cnZlKHVuZGVmaW5lZCknKTsKQEAgLTI2LDkgKzI2LDkgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsK
ICAgICBzaG91bGRUaHJvdygnb2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5ib2R5LCB7Y2hhcmFj
dGVyRGF0YTogdHJ1ZSwgYXR0cmlidXRlRmlsdGVyOiBbImlkIl19KScpOwogfQogCi1kZXNjcmlw
dGlvbignVGVzdCB0aGF0IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSB0aHJvd3MgZXhj
ZXB0aW9ucyBhcHByb3ByaWF0ZWx5Jyk7CitkZXNjcmlwdGlvbignVGVzdCB0aGF0IE11dGF0aW9u
T2JzZXJ2ZXIub2JzZXJ2ZSB0aHJvd3MgZXhjZXB0aW9ucyBhcHByb3ByaWF0ZWx5Jyk7CiAKLWlm
ICghd2luZG93LldlYktpdE11dGF0aW9uT2JzZXJ2ZXIpCitpZiAoIXdpbmRvdy5NdXRhdGlvbk9i
c2VydmVyKQogICAgIHRlc3RGYWlsZWQoJ1RoaXMgdGVzdCByZXF1aXJlcyBFTkFCTEUoTVVUQVRJ
T05fT0JTRVJWRVJTKScpOwogZWxzZQogICAgIHJ1blRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1zdWJ0cmVlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1zdWJ0cmVlLWV4cGVjdGVkLnR4dAppbmRleCBi
ODk0ZGNkYTFiM2Y2ZDJkMzQ5YmQ3YzRhOWE0Y2QwNjlhNGU2OWVkLi42NTNjN2E0ODIyMWM5M2Ux
OWQ3NjI4YWE2Y2Y4Njg5NGYyOTEyMjAwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211
dGF0aW9uL29ic2VydmUtc3VidHJlZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9tdXRhdGlvbi9vYnNlcnZlLXN1YnRyZWUtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAot
VGVzdCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUgb24gYSBzdWJ0cmVlCitUZXN0IE11
dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSBvbiBhIHN1YnRyZWUKIAogT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUt
c3VidHJlZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLXN1YnRyZWUu
aHRtbAppbmRleCAzN2U0MDI4NWUyYjhiNzFkMjIyNmZkMzYxODFkYTRiODUzYTIwNTcyLi45NTUx
OTQ3YTRjMzI4ZjVhODM0ODRjNjRmZTk0NTNjYTAyZDY1NmEyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtc3VidHJlZS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1zdWJ0cmVlLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAgZnVu
Y3Rpb24gdGVzdEJhc2ljKCkgewogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdkaXYnKTsKICAgICAgICAgc3ViRGl2ID0gZGl2LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2RpdicpKTsKICAgICAgICAgc3ViRGl2LmlubmVySFRNTCA9ICdoZWxsbywgd29y
bGQnOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0
aW9uKG11dGF0aW9ucykgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVy
KGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11
dGF0aW9uczsKICAgICAgICAgfSk7CiAKQEAgLTY2LDEwICs2NiwxMCBAQCBmdW5jdGlvbiB0ZXN0
TXVsdGlwbGVPYnNlcnZlcnMoKSB7CiAgICAgICAgIG11dGF0aW9uczIgPSBudWxsOwogICAgICAg
ICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgc3ViRGl2ID0g
ZGl2LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsKLSAgICAgICAg
b2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMp
IHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRh
dGlvbnMpIHsKICAgICAgICAgICAgIHdpbmRvdy5tdXRhdGlvbnMgPSBtdXRhdGlvbnM7CiAgICAg
ICAgIH0pOwotICAgICAgICBvYnNlcnZlcjIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihm
dW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIyID0gbmV3IE11dGF0aW9uT2Jz
ZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25z
MiA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAKQEAgLTEwOSw3ICsxMDksNyBAQCBmdW5jdGlv
biB0ZXN0TXVsdGlwbGVPYnNlcnZhdGlvbnMoKSB7CiAgICAgICAgIGNhbGxzID0gMDsKICAgICAg
ICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgIHN1YkRpdiA9
IGRpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7Ci0gICAgICAg
IG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25z
KSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0
YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0YXRpb25zOwogICAg
ICAgICAgICAgKytjYWxsczsKICAgICAgICAgfSk7CkBAIC0xNDUsNyArMTQ1LDcgQEAgZnVuY3Rp
b24gdGVzdFRyYW5zaWVudERldGFjaGVkQmFzaWMoKSB7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICBzdWJEaXYgPSBkaXYuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpOwogICAgICAgICBzdWJEaXYuaW5uZXJIVE1M
ID0gJ2hlbGxvLCB3b3JsZCc7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11
dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cu
bXV0YXRpb25zID0gbXV0YXRpb25zOwogICAgICAgICB9KTsKIApAQCAtMjMwLDcgKzIzMCw3IEBA
IGZ1bmN0aW9uIHRlc3RUcmFuc2llbnREZXRhY2hlZERldGFpbGVkKCkgewogICAgICAgICBzdWJE
aXYyLmlubmVySFRNTCA9ICdoZWxsbywgd29ybGQnOwogICAgICAgICBzdWJEaXYzID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0
TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIg
PSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICAgICAgICAg
IHdpbmRvdy5tdXRhdGlvbnMgPSBtdXRhdGlvbnM7CiAgICAgICAgIH0pOwogCkBAIC0yOTYsOSAr
Mjk2LDkgQEAgZnVuY3Rpb24gcnVuTmV4dFRlc3QoKSB7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgp
OwogfQogCi1kZXNjcmlwdGlvbignVGVzdCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUg
b24gYSBzdWJ0cmVlJyk7CitkZXNjcmlwdGlvbignVGVzdCBNdXRhdGlvbk9ic2VydmVyLm9ic2Vy
dmUgb24gYSBzdWJ0cmVlJyk7CiAKLWlmICghd2luZG93LldlYktpdE11dGF0aW9uT2JzZXJ2ZXIp
CitpZiAoIXdpbmRvdy5NdXRhdGlvbk9ic2VydmVyKQogICAgIHRlc3RGYWlsZWQoJ1RoaXMgdGVz
dCByZXF1aXJlcyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKScpOwogZWxzZQogICAgIHJ1bk5l
eHRUZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL3NoYWRvdy1k
b20uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vc2hhZG93LWRvbS5odG1sCmluZGV4
IDY2Yzc5ZWFjMDBmOTU5NjBhMDQzMWNlMmIyOTUyMmNhMDc1NmJmYWIuLjczMTdkN2E3NTkwOTBh
NjUxMzI1MTFjY2JmNGY1MTgwYTA0NTVkZTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
bXV0YXRpb24vc2hhZG93LWRvbS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24v
c2hhZG93LWRvbS5odG1sCkBAIC0xNCw3ICsxNCw3IEBAIGZ1bmN0aW9uIGRvVGVzdCgpIHsKICAg
ICB9CiAKICAgICB2YXIgc2hhZG93Um9vdCA9IGludGVybmFscy5zaGFkb3dSb290KGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JykpOwotICAgIHZhciBvYnNlcnZlciA9IG5ldyBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgIHZhciBvYnNlcnZlciA9
IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICB3aW5k
b3cubXV0YXRpb25zID0gbXV0YXRpb25zOwogICAgIH0pOwogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L211dGF0aW9uL3Rha2VSZWNvcmRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvbXV0YXRpb24vdGFrZVJlY29yZHMtZXhwZWN0ZWQudHh0CmluZGV4IGFjNjQ0MjZhYjEz
YWUyZTFjOTAzOGRmYjYzYjc5MTJkM2EwNjVlZjcuLjlmMzMyNjE0ZjQzNmUxYzIxMWY4YTUyZDY3
NzA2NzI4YWNhMTU0ZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vdGFr
ZVJlY29yZHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vdGFr
ZVJlY29yZHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotVGVzdGluZyBXZWJLaXRNdXRh
dGlvbk9ic2VydmVyLnRha2VSZWNvcmRzCitUZXN0aW5nIE11dGF0aW9uT2JzZXJ2ZXIudGFrZVJl
Y29yZHMKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L211dGF0aW9uL3Rha2VSZWNvcmRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211
dGF0aW9uL3Rha2VSZWNvcmRzLmh0bWwKaW5kZXggMDM5YTMyZmJkOTExODBiYThkNjZjMTdkYjg1
NzJjM2U0NTQ0Y2JjMi4uNjM0MTgwYTU5Y2U1NGRkM2M2NzUyZTllYWNiZjM3ZDA5Y2UyMjAwYiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi90YWtlUmVjb3Jkcy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vdGFrZVJlY29yZHMuaHRtbApAQCAtMjMsNyAr
MjMsNyBAQCBmdW5jdGlvbiB0ZXN0QmFzaWMoKSB7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICBzdWJEaXYgPSBkaXYuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpOwogICAgICAgICBzdWJEaXYuaW5uZXJIVE1MID0g
J2hlbGxvLCB3b3JsZCc7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0
aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0
YXRpb25zID0gbXV0YXRpb25zOwogICAgICAgICB9KTsKIApAQCAtNzMsOSArNzMsOSBAQCBmdW5j
dGlvbiBydW5OZXh0VGVzdCgpIHsKICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKLWRlc2Ny
aXB0aW9uKCdUZXN0aW5nIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIudGFrZVJlY29yZHMnKTsKK2Rl
c2NyaXB0aW9uKCdUZXN0aW5nIE11dGF0aW9uT2JzZXJ2ZXIudGFrZVJlY29yZHMnKTsKIAotaWYg
KCF3aW5kb3cuV2ViS2l0TXV0YXRpb25PYnNlcnZlcikKK2lmICghd2luZG93Lk11dGF0aW9uT2Jz
ZXJ2ZXIpCiAgICAgdGVzdEZhaWxlZCgnVGhpcyB0ZXN0IHJlcXVpcmVzIEVOQUJMRShNVVRBVElP
Tl9PQlNFUlZFUlMpJyk7CiBlbHNlCiAgICAgcnVuTmV4dFRlc3QoKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vdHJhbnNpZW50LWdjLWNyYXNoLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L211dGF0aW9uL3RyYW5zaWVudC1nYy1jcmFzaC5odG1sCmluZGV4IDZjMTM2NDJk
NzY4YTExODI5YmJmOGFiNTlhMWVmYzEyMDllYWY1MTMuLjZjZTZlYjhjM2FmZWNhNDZhYzI1MjI1
ZGIyZDE1YmYwNjkwMTQ1YjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24v
dHJhbnNpZW50LWdjLWNyYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi90
cmFuc2llbnQtZ2MtY3Jhc2guaHRtbApAQCAtNiw3ICs2LDcgQEAgZGVzY3JpcHRpb24oJ0NsZWFy
aW5nIHRyYW5zaWVudCBvYnNlcnZlcnMgYWZ0ZXIgb2JzZXJ2YXRpb24gbm9kZSBpcyBHQ2VkIHNo
b3VsZAogZnVuY3Rpb24gY2FsbGJhY2sobXV0YXRpb25zKSB7CiAgICAgd2luZG93Lm11dGF0aW9u
cyA9IG11dGF0aW9uczsKIH0KLXZhciBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyKGNhbGxiYWNrKTsKK3ZhciBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGNhbGxi
YWNrKTsKIAogdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogdmFyIHNw
YW4gPSBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147862</attachid>
            <date>2012-06-15 11:16:44 -0700</date>
            <delta_ts>2012-06-15 12:01:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89231-20120615111644.patch</filename>
            <type>text/plain</type>
            <size>175026</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwNDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDM4YzVhMzk5NjJjZjhm
ZGUxMjU4MmY0MGJkOWRlYTg4ZTc1MTQyNS4uZjhjMDYwODQxOTU2MTkxYmEwNTEyMTEyZjk1ODIz
ZTI2YTdmNjM2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwNyBAQAorMjAxMi0wNi0xNSAgQWRh
bSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZW1vdmUgdmVuZG9yIHBy
ZWZpeCBmcm9tIERPTSBNdXRhdGlvbk9ic2VydmVycworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkyMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBNdXRhdGlvbk9ic2VydmVycyBoYXZlIGJlZW4gc3BlY2lm
aWVkIGFzIHBhcnQgb2YgRE9NNCBmb3Igc29tZSB0aW1lIG5vdywKKyAgICAgICAgYW5kIE1vemls
bGEgaXMgc2hpcHBpbmcgYSBjb21wYXRpYmxlIGltcGxlbWVudGF0aW9uIHdpdGhvdXQgYSB2ZW5k
b3IKKyAgICAgICAgcHJlZml4LiBUaGlzIGNoYW5nZSBleHBvc2VzIHRoZSBNdXRhdGlvbk9ic2Vy
dmVyIGNvbnN0cnVjdG9yIG9uIHRoZQorICAgICAgICBXaW5kb3cgb2JqZWN0LiBBbGwgcmVmZXJl
bmNlcyB0byB0aGUgb2xkIHByZWZpeGVkIG5hbWUgaGF2ZSBiZWVuCisgICAgICAgIHJlbW92ZWQs
IHNhdmUgZm9yIGEgYmFja3dhcmRzLWNvbXBhdGliaWxpdHkgcmVmZXJlbmNlIGluIERPTVdpbmRv
dy5pZGwuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0
eS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
LmNwcDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBVc2VKU0MuY21h
a2U6CisgICAgICAgICogVXNlVjguY21ha2U6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAg
ICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0JpbmRp
bmdzQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTWFpblRocmVhZEV4ZWNT
dGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU01haW5UaHJlYWRFeGVjU3RhdGU6OmRpZExl
YXZlU2NyaXB0Q29udGV4dCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxi
YWNrQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTTXV0YXRpb25DYWxsYmFjazo6aGFu
ZGxlRXZlbnQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTXV0YXRpb25PYnNlcnZlckN1c3Rv
bS5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdE11
dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpKU011dGF0aW9uT2JzZXJ2ZXJDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNNdXRhdGlv
bk9ic2VydmVyKToKKyAgICAgICAgKEJvb2xlYW5PcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
SlNNdXRhdGlvbk9ic2VydmVyOjpvYnNlcnZlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFJl
Y3Vyc2lvblNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4UmVjdXJzaW9uU2NvcGU6OmRp
ZExlYXZlU2NyaXB0Q29udGV4dCk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0
YXRpb25DYWxsYmFja0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOE11dGF0aW9uQ2Fs
bGJhY2s6OmhhbmRsZUV2ZW50KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhNdXRh
dGlvbk9ic2VydmVyQ3VzdG9tLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOFdlYktpdE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwLgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpWOE11dGF0aW9uT2JzZXJ2ZXI6OmNvbnN0
cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhNdXRhdGlvbk9ic2VydmVyOjpv
YnNlcnZlQ2FsbGJhY2spOgorICAgICAgICAqIGRvbS9DaGFyYWN0ZXJEYXRhLmNwcDoKKyAgICAg
ICAgKiBkb20vQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q2hp
bGRMaXN0TXV0YXRpb25TY29wZTo6Q2hpbGRMaXN0TXV0YXRpb25TY29wZSk6CisgICAgICAgICog
ZG9tL0RPTUFsbEluT25lLmNwcDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50OjpoYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZSk6CisgICAgICAg
ICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAqIGRvbS9NdXRhdGlvbkNhbGxiYWNrLmg6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE11dGF0aW9uQ2FsbGJhY2spOgorICAgICAgICAq
IGRvbS9NdXRhdGlvbkNhbGxiYWNrLmlkbDoKKyAgICAgICAgKiBkb20vTXV0YXRpb25PYnNlcnZl
ci5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TXV0YXRpb25PYnNl
cnZlci5jcHAuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9u
T2JzZXJ2ZXI6Ok9ic2VydmVyTGVzc1RoYW46Om9wZXJhdG9yKCkpOgorICAgICAgICAoV2ViQ29y
ZTo6TXV0YXRpb25PYnNlcnZlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9u
T2JzZXJ2ZXI6Ok11dGF0aW9uT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25P
YnNlcnZlcjo6fk11dGF0aW9uT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25P
YnNlcnZlcjo6dmFsaWRhdGVPcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2Jz
ZXJ2ZXI6Om9ic2VydmUpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6dGFr
ZVJlY29yZHMpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6ZGlzY29ubmVj
dCk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyOjpvYnNlcnZhdGlvblN0YXJ0
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6b2JzZXJ2YXRpb25FbmRl
ZCk6CisgICAgICAgIChXZWJDb3JlOjphY3RpdmVNdXRhdGlvbk9ic2VydmVycyk6CisgICAgICAg
IChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyOjplbnF1ZXVlTXV0YXRpb25SZWNvcmQpOgorICAg
ICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6c2V0SGFzVHJhbnNpZW50UmVnaXN0cmF0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6OmRlbGl2ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6ZGVsaXZlckFsbE11dGF0aW9ucyk6Cisg
ICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXIuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmguCisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKE11dGF0aW9uT2JzZXJ2ZXIpOgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVy
LmlkbDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyLmlkbC4KKyAgICAgICAgKiBkb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6OmNyZWF0
ZUlmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdy
b3VwOjpNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cCk6CisgICAgICAgIChXZWJDb3JlOjpN
dXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6aXNPbGRWYWx1ZVJlcXVlc3RlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6ZW5xdWV1ZU11dGF0
aW9uUmVjb3JkKToKKyAgICAgICAgKiBkb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAu
aDoKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpjcmVh
dGVGb3JDaGlsZExpc3RNdXRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2Vy
dmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlRm9yQ2hhcmFjdGVyRGF0YU11dGF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpjcmVhdGVGb3JBdHRy
aWJ1dGVzTXV0YXRpb24pOgorICAgICAgICAoTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAp
OgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb246OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjpNdXRhdGlvbk9ic2Vy
dmVyUmVnaXN0cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJSZWdp
c3RyYXRpb246OnNob3VsZFJlY2VpdmVNdXRhdGlvbkZyb20pOgorICAgICAgICAqIGRvbS9NdXRh
dGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmg6CisgICAgICAgIChNdXRhdGlvbk9ic2VydmVyUmVn
aXN0cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRp
b246OmlzU3VidHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyUmVnaXN0
cmF0aW9uOjpvYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyUmVn
aXN0cmF0aW9uOjpkZWxpdmVyeU9wdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25P
YnNlcnZlclJlZ2lzdHJhdGlvbjo6bXV0YXRpb25UeXBlcyk6CisgICAgICAgICogZG9tL05vZGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6Y29sbGVjdE1hdGNoaW5nT2JzZXJ2ZXJzRm9y
TXV0YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6Z2V0UmVnaXN0ZXJlZE11dGF0aW9u
T2JzZXJ2ZXJzT2ZUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnJlZ2lzdGVyTXV0YXRp
b25PYnNlcnZlcik6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKE5vZGUpOgorICAg
ICAgICAqIGRvbS9Ob2RlUmFyZURhdGEuaDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6
CisKIDIwMTItMDYtMTUgIFNpbHZpYSBQZmVpZmZlciAgPHNpbHZpYXBmQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZW1vdmUgdm9sdW1lIHRodW1iIGZvciB2aWRlb3Mgd2l0aG91dCBhdWRpbyB0
cmFjay4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggYmVlOTYzOGJmM2I0MzUzYWFkYWYw
ODZhZTQwMzRkNTNhNGZkMDU1ZC4uZGFmNDk5ZjU4YTQxZDkzOGIxNDBlNWZkYzMyNTZmM2MxOWUy
ZmQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMi0w
Ni0xNSAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KKworICAgICAgICBVbnByZWZp
eCBET00gTXV0YXRpb25PYnNlcnZlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg5MjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBzcmMvV2ViS2l0LmNwcDoKKwogMjAxMi0wNi0xNSAgU2FtaSBLeW9z
dGlsYSAgPHNreW9zdGlsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIEFsbG93
IHNjcm9sbGluZyBub24tcm9vdCBsYXllcnMgaW4gdGhlIGNvbXBvc2l0b3IgdGhyZWFkCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9D
aGFuZ2VMb2cKaW5kZXggNTJlMTBmMGZkNWQ2ZmQ0OWM1MTFmODliM2ZjNmQ3MmFlYTAyOTcwOS4u
MDM0MTJkNTljZTEwNjZlZWJiOTVmMDMyNDkyMWNiOTNmYTNhOTcxNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTA2LTE1ICBBZGFtIEtsZWluICA8YWRhbWtAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFVucHJlZml4IERPTSBNdXRhdGlvbk9ic2VydmVycworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkyMzEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHA6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1
cHBvcnRFZmw6OmRlbGl2ZXJBbGxNdXRhdGlvbnNJZk5lY2Vzc2FyeSk6CisKIDIwMTItMDYtMTUg
IENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KIAogICAgICAg
ICBbRUZMXSBFRkwncyBMYXlvdXRUZXN0Q29udHJvbGxlciBkb2VzIG5vdCBzdXBwb3J0IHRpdGxl
VGV4dERpcmVjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDdhNTBhN2MzZDBlMTVjOTcyNzdkMTI4
YjllNWUyNDc5NjJkYTVhNmMuLjBjNTJmYzhkMTA0MjFkZGViN2Q1OWRhNWU3ODIxODNiMGNmZmJl
NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wNi0xNSAgQWRhbSBL
bGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KKworICAgICAgICBVbnByZWZpeCBET00gTXV0YXRp
b25PYnNlcnZlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg5MjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgorICAgICAg
ICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpkZWxpdmVyQWxsTXV0YXRpb25zSWZOZWNlc3Nh
cnkpOgorCiAyMDEyLTA2LTE0ICBBbGVqYW5kcm8gRy4gQ2FzdHJvICA8YWxleEBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtHVEtdIEFkZCBUZXh0dXJlTWFwcGVyIEltYWdlQnVmZmVyIHN1cHBvcnQg
YXMgYSBmYWxsYmFjayBmcm9tIHRoZSBoYXJkd2FyZSBhY2NlbGVyYXRlZCBwYXRoCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CmluZGV4IDlhZDg1YmI5NDIyNTA0ZGMzMmNkNmQxZmY4OGYzNDY4M2FlZDQ2ZmEu
LmJhYzYzYjdhMjgzYTUyOGQxNWMwNjk2MmVkZmQ0OWRlMDM1ZDQ0MWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CkBAIC0yMjEsNiArMjIxLDcgQEAgU0VUKFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgZG9t
L01vdXNlRXZlbnQuaWRsCiAgICAgZG9tL011dGF0aW9uQ2FsbGJhY2suaWRsCiAgICAgZG9tL011
dGF0aW9uRXZlbnQuaWRsCisgICAgZG9tL011dGF0aW9uT2JzZXJ2ZXIuaWRsCiAgICAgZG9tL011
dGF0aW9uUmVjb3JkLmlkbAogICAgIGRvbS9OYW1lZE5vZGVNYXAuaWRsCiAgICAgZG9tL05vZGVG
aWx0ZXIuaWRsCkBAIC0yNDQsNyArMjQ1LDYgQEAgU0VUKFdlYkNvcmVfSURMX0ZJTEVTCiAgICAg
ZG9tL1RyZWVXYWxrZXIuaWRsCiAgICAgZG9tL1VJRXZlbnQuaWRsCiAgICAgZG9tL1dlYktpdEFu
aW1hdGlvbkV2ZW50LmlkbAotICAgIGRvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmlkbAogICAg
IGRvbS9XZWJLaXROYW1lZEZsb3cuaWRsCiAgICAgZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5p
ZGwKICAgICBkb20vV2hlZWxFdmVudC5pZGwKQEAgLTYwOSw2ICs2MDksNyBAQCBTRVQoV2ViQ29y
ZV9TT1VSQ0VTCiAgICAgZG9tL01vdXNlRXZlbnQuY3BwCiAgICAgZG9tL01vdXNlUmVsYXRlZEV2
ZW50LmNwcAogICAgIGRvbS9NdXRhdGlvbkV2ZW50LmNwcAorICAgIGRvbS9NdXRhdGlvbk9ic2Vy
dmVyLmNwcAogICAgIGRvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5jcHAKICAgICBk
b20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAKICAgICBkb20vTXV0YXRpb25SZWNv
cmQuY3BwCkBAIC02NjIsNyArNjYzLDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9V
c2VyVHlwaW5nR2VzdHVyZUluZGljYXRvci5jcHAKICAgICBkb20vVmlld3BvcnRBcmd1bWVudHMu
Y3BwCiAgICAgZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50LmNwcAotICAgIGRvbS9XZWJLaXRNdXRh
dGlvbk9ic2VydmVyLmNwcAogICAgIGRvbS9XZWJLaXROYW1lZEZsb3cuY3BwCiAgICAgZG9tL1dl
YktpdFRyYW5zaXRpb25FdmVudC5jcHAKICAgICBkb20vV2hlZWxFdmVudC5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLmNwcAppbmRleCA4ZTgxMGI5MGUzNmYwMjNkMjY4MGQ2MTk4ZWUxOTc1MDM0
NmMyM2Y2Li4xNmY2ZTE1MmUzM2M5MzZmNzc4YzgwYTRlMTQwYWZkNjljMGFiYTE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMuY3BwCkBAIC0yNDQsNiArMjQ0LDcgQEAKICNpbmNsdWRlICJKU01v
dXNlRXZlbnQuY3BwIgogI2luY2x1ZGUgIkpTTXV0YXRpb25DYWxsYmFjay5jcHAiCiAjaW5jbHVk
ZSAiSlNNdXRhdGlvbkV2ZW50LmNwcCIKKyNpbmNsdWRlICJKU011dGF0aW9uT2JzZXJ2ZXIuY3Bw
IgogI2luY2x1ZGUgIkpTTXV0YXRpb25SZWNvcmQuY3BwIgogI2luY2x1ZGUgIkpTTmFtZWROb2Rl
TWFwLmNwcCIKICNpbmNsdWRlICJKU05hdmlnYXRvci5jcHAiCkBAIC00NzcsNyArNDc4LDYgQEAK
ICNpbmNsdWRlICJKU1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCIKICNpbmNsdWRlICJKU1dl
YktpdENTU01hdHJpeC5jcHAiCiAjaW5jbHVkZSAiSlNXZWJLaXRDU1NSZWdpb25SdWxlLmNwcCIK
LSNpbmNsdWRlICJKU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuY3BwIgogI2luY2x1ZGUgIkpTV2Vi
S2l0TmFtZWRGbG93LmNwcCIKICNpbmNsdWRlICJKU1dlYktpdFBvaW50LmNwcCIKICNpbmNsdWRl
ICJKU1dlYktpdFRyYW5zaXRpb25FdmVudC5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQppbmRleCBkNTU0MTRmYzQ0YWRhM2I5NzJmNzhhNWQ3OTNiMjI5NmQwMTI5NmMwLi4yZmNjMjMz
N2NiNTc2YTU1MGU4NGM5NWZiOTg3MWFhMmYzN2UyZjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKQEAgLTIyNCw2ICsyMjQsNyBAQCBCSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJD
b3JlKS9kb20vTW91c2VFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL011dGF0aW9uQ2Fs
bGJhY2suaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9NdXRhdGlvbkV2ZW50LmlkbCBcCisgICAg
JChXZWJDb3JlKS9kb20vTXV0YXRpb25PYnNlcnZlci5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9t
L011dGF0aW9uUmVjb3JkLmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vTmFtZWROb2RlTWFwLmlk
bCBcCiAgICAgJChXZWJDb3JlKS9kb20vTm9kZS5pZGwgXApAQCAtMjQ5LDcgKzI1MCw2IEBAIEJJ
TkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2RvbS9UcmVlV2Fsa2VyLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9kb20vVUlFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL1dlYktpdEFu
aW1hdGlvbkV2ZW50LmlkbCBcCi0gICAgJChXZWJDb3JlKS9kb20vV2ViS2l0TXV0YXRpb25PYnNl
cnZlci5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL1dlYktpdE5hbWVkRmxvdy5pZGwgXAogICAg
ICQoV2ViQ29yZSkvZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5pZGwgXAogICAgICQoV2ViQ29y
ZSkvZG9tL1doZWVsRXZlbnQuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4
IDM3YjdlNWFjMjk5N2VhMzE2MWU5NGFjODY0NjFhNmNlNjc2NWIzNDAuLjIxNzAyNmQ3NjNhNjY2
MTIxY2MzNjZkYmQ5NWZkMTJiNzc0ODM2ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQpAQCAtNDA1LDYgKzQwNSw4IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uQ2FsbGJhY2suaCBcCiAJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU011dGF0aW9uRXZlbnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
TXV0YXRpb25FdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25PYnNl
cnZlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvbk9ic2VydmVyLmgg
XAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvblJlY29yZC5jcHAgXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvblJlY29yZC5oIFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTTmFtZWROb2RlTWFwLmNwcCBcCkBAIC02MTQsOCArNjE2LDYgQEAgd2ViY29yZV9i
dWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0Q1NTUmVn
aW9uUnVsZS5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0Q1NTVHJhbnNmb3Jt
VmFsdWUuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0Q1NTVHJhbnNmb3Jt
VmFsdWUuaCBcCi0JRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdE11dGF0aW9uT2JzZXJ2
ZXIuY3BwIFwKLQlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0TXV0YXRpb25PYnNlcnZl
ci5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0TmFtZWRGbG93LmNwcCBcCiAJ
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdE5hbWVkRmxvdy5oIFwKIAlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTV2ViS2l0UG9pbnQuY3BwIFwKQEAgLTc2Niw2ICs3NjYsNyBAQCBkb21f
YmluZGluZ19pZGxzICs9IFwKIAkkKFdlYkNvcmUpL2RvbS9Nb3VzZUV2ZW50LmlkbCBcCiAJJChX
ZWJDb3JlKS9kb20vTXV0YXRpb25DYWxsYmFjay5pZGwgXAogCSQoV2ViQ29yZSkvZG9tL011dGF0
aW9uRXZlbnQuaWRsIFwKKwkkKFdlYkNvcmUpL2RvbS9NdXRhdGlvbk9ic2VydmVyLmlkbCBcCiAJ
JChXZWJDb3JlKS9kb20vTXV0YXRpb25SZWNvcmQuaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9OYW1l
ZE5vZGVNYXAuaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9Ob2RlLmlkbCBcCkBAIC03ODksNyArNzkw
LDYgQEAgZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJJChXZWJDb3JlKS9kb20vVHJlZVdhbGtlci5p
ZGwgXAogCSQoV2ViQ29yZSkvZG9tL1VJRXZlbnQuaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9XZWJL
aXRBbmltYXRpb25FdmVudC5pZGwgXAotCSQoV2ViQ29yZSkvZG9tL1dlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXIuaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9XZWJLaXROYW1lZEZsb3cuaWRsIFwKIAkkKFdl
YkNvcmUpL2RvbS9XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9X
aGVlbEV2ZW50LmlkbCBcCkBAIC0xNDQ1LDYgKzE0NDUsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmggXAogCVNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAgXAor
CVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmggXApAQCAtMTQ4OSw3ICsxNDkwLDYg
QEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dl
YktpdENTU0tleWZyYW1lUnVsZUN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZUN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCBcCi0JU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludEN1c3RvbS5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViU29ja2V0Q3VzdG9tLmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5jcHAgXApAQCAtMTky
MCw2ICsxOTIwLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20v
TXV0YXRpb25DYWxsYmFjay5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25FdmVudC5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbkV2ZW50LmggXAorCVNvdXJjZS9XZWJD
b3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmNwcCBcCisJU291cmNlL1dlYkNvcmUvZG9tL011dGF0
aW9uT2JzZXJ2ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRl
cmVzdEdyb3VwLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRl
cmVzdEdyb3VwLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0
cmF0aW9uLmNwcCBcCkBAIC0yMDMwLDggKzIwMzIsNiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9kb20vV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vV2Vi
S2l0QW5pbWF0aW9uRXZlbnQuaCBcCi0JU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE11dGF0aW9u
T2JzZXJ2ZXIuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TXV0YXRpb25PYnNlcnZl
ci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vV2Vi
S2l0VHJhbnNpdGlvbkV2ZW50LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA2OWJhYTkyOWZkNjcyYzky
NjE2NDhmOGIyMjBmNTdiY2U2N2QzZmQxLi4zNGU4ZmQwYWRlOTk5MGVhNjBiYTJhYzhmZGRkMmVi
MzI1ZGU4NzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTIwMyw2ICsyMDMsNyBAQCB2OCB7CiAgICAgICAg
IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VQb3J0Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VFdmVudEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5k
aW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCBcCisgICAgICAgIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIFwKICAgICAgICAg
YmluZGluZ3MvdjgvY3VzdG9tL1Y4TmFtZWROb2RlTWFwQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOE5hbWVkTm9kZXNDb2xsZWN0aW9uLmNwcCBcCiAgICAgICAgIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOE5vZGVDdXN0b20uY3BwIFwKQEAgLTIxNyw3ICsyMTgsNiBAQCB2
OCB7CiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFN0eWxlU2hlZXRMaXN0Q3VzdG9tLmNw
cCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFRleHRUcmFja0xpc3RDdXN0b20uY3Bw
IFwKICAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNw
cCBcCi0gICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdE11dGF0aW9uT2JzZXJ2ZXJD
dXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0UG9pbnRDb25z
dHJ1Y3Rvci5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhXb3JrZXJDb250ZXh0
Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdvcmtlckN1c3RvbS5j
cHAgXApAQCAtMzM1LDYgKzMzNSw3IEBAIHY4IHsKICAgICAgICAgYmluZGluZ3MvanMvSlNNZXNz
YWdlUG9ydEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3Vz
dG9tLmggXAogICAgICAgICBiaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3Bw
IFwKKyAgICAgICAgYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCBcCiAg
ICAgICAgIGJpbmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJp
bmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU05vZGVG
aWx0ZXJDb25kaXRpb24uY3BwIFwKQEAgLTM2Miw3ICszNjMsNiBAQCB2OCB7CiAgICAgICAgIGJp
bmRpbmdzL2pzL0pTV2ViS2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5k
aW5ncy9qcy9KU1dlYktpdENTU0tleWZyYW1lUnVsZUN1c3RvbS5jcHAgXAogICAgICAgICBiaW5k
aW5ncy9qcy9KU1dlYktpdENTU0tleWZyYW1lc1J1bGVDdXN0b20uY3BwIFwKLSAgICAgICAgYmlu
ZGluZ3MvanMvSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJp
bmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMv
SlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU1hNTEh0
dHBSZXF1ZXN0VXBsb2FkQ3VzdG9tLmNwcCBcCkBAIC01NzYsNiArNTc2LDcgQEAgU09VUkNFUyAr
PSBcCiAgICAgZG9tL01vdXNlRXZlbnQuY3BwIFwKICAgICBkb20vTW91c2VSZWxhdGVkRXZlbnQu
Y3BwIFwKICAgICBkb20vTXV0YXRpb25FdmVudC5jcHAgXAorICAgIGRvbS9NdXRhdGlvbk9ic2Vy
dmVyLmNwcCBcCiAgICAgZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcCBcCiAg
ICAgZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwIFwKICAgICBkb20vTXV0YXRp
b25SZWNvcmQuY3BwIFwKQEAgLTYzMCw3ICs2MzEsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBkb20v
VXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3IuY3BwIFwKICAgICBkb20vVmlld3BvcnRBcmd1bWVu
dHMuY3BwIFwKICAgICBkb20vV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwIFwKLSAgICBkb20vV2Vi
S2l0TXV0YXRpb25PYnNlcnZlci5jcHAgXAogICAgIGRvbS9XZWJLaXROYW1lZEZsb3cuY3BwIFwK
ICAgICBkb20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCBcCiAgICAgZG9tL1doZWVsRXZlbnQu
Y3BwIFwKQEAgLTE3NTAsNiArMTc1MCw3IEBAIEhFQURFUlMgKz0gXAogICAgIGRvbS9Nb3VzZVJl
bGF0ZWRFdmVudC5oIFwKICAgICBkb20vTXV0YXRpb25DYWxsYmFjay5oIFwKICAgICBkb20vTXV0
YXRpb25FdmVudC5oIFwKKyAgICBkb20vTXV0YXRpb25PYnNlcnZlci5oIFwKICAgICBkb20vTXV0
YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5oIFwKICAgICBkb20vTXV0YXRpb25SZWNvcmQuaCBc
CiAgICAgZG9tL05hbWVkTm9kZU1hcC5oIFwKQEAgLTE3OTgsNyArMTc5OSw2IEBAIEhFQURFUlMg
Kz0gXAogICAgIGRvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5oIFwKICAgICBkb20vVmlld3BvcnRB
cmd1bWVudHMuaCBcCiAgICAgZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50LmggXAotICAgIGRvbS9X
ZWJLaXRNdXRhdGlvbk9ic2VydmVyLmggXAogICAgIGRvbS9XZWJLaXROYW1lZEZsb3cuaCBcCiAg
ICAgZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5oIFwKICAgICBkb20vV2hlZWxFdmVudC5oIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1VzZUpTQy5jbWFrZSBiL1NvdXJjZS9XZWJDb3Jl
L1VzZUpTQy5jbWFrZQppbmRleCBjZTY5MGVmZmYyZjNlYzliNTdhMGFhYjY4MjBiYzdiMmI5YzZk
NjVlLi5hNDQ1MDJmOTI4MDAzMDdkNjc1N2NlOTllYTRjYzc4MWZlYWM3Mzk5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvVXNlSlND
LmNtYWtlCkBAIC0xMTYsNiArMTE2LDcgQEAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAg
ICAgYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMv
SlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJh
Y2tDdXN0b20uY3BwCisgICAgYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNw
cAogICAgIGJpbmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdz
L2pzL0pTTm9kZUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDb25kaXRp
b24uY3BwCkBAIC0xNDIsNyArMTQzLDYgQEAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAg
ICAgYmluZGluZ3MvanMvSlNXZWJLaXRBbmltYXRpb25MaXN0Q3VzdG9tLmNwcAogICAgIGJpbmRp
bmdzL2pzL0pTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pz
L0pTV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZUN1c3RvbS5jcHAKLSAgICBiaW5kaW5ncy9qcy9KU1dl
YktpdE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNXZWJLaXRQ
b2ludEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNw
cAogICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RVcGxvYWRDdXN0b20uY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Vc2VWOC5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1VzZVY4
LmNtYWtlCmluZGV4IGZmZmMyNmIxMzVlNDJmMzM2ZmY3Mjc0OWI0ZTRhNTJiZDE3NzNlZGYuLmRj
YmRjZjQxZTkzOWFlYWRkOTM3NTYwYjcxNzQxMDYzZDMxNDgyNGEgMTAwNzU1Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1VzZVY4LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1VzZVY4LmNtYWtlCkBA
IC0xMzMsNiArMTMzLDcgQEAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUV2ZW50Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1
c3RvbS9WOE1lc3NhZ2VQb3J0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE11
dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwCisgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRp
b25PYnNlcnZlckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhOYW1lZE5vZGVN
YXBDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4TmFtZWROb2Rlc0NvbGxlY3Rp
b24uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4Tm9kZUN1c3RvbS5jcHAKQEAgLTE1Myw3
ICsxNTQsNiBAQCBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy92OC9j
dXN0b20vVjhVaW50OEFycmF5Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdl
YkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhX
ZWJLaXRBbmltYXRpb25DdXN0b20uY3BwCi0gICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0
TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJL
aXRQb2ludENvbnN0cnVjdG9yLmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYlNvY2tl
dEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhXb3JrZXJDb250ZXh0Q3VzdG9t
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDhkOTRlMTE0MzEwYzM5ODFhOWUzMTlhMjU0ODQzN2E4
YzBiNzQ5ZjMuLmU5N2E5N2Q5N2JjZGQ0NTk5YmM5NzI4NmU1YmZiZWJhMjc1MjE0NDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKQEAgLTk2Miw2ICs5NjIsNyBAQAogICAgICAgICAgICAgJ2RvbS9Nb3VzZUV2
ZW50LmlkbCcsCiAgICAgICAgICAgICAnZG9tL011dGF0aW9uQ2FsbGJhY2suaWRsJywKICAgICAg
ICAgICAgICdkb20vTXV0YXRpb25FdmVudC5pZGwnLAorICAgICAgICAgICAgJ2RvbS9NdXRhdGlv
bk9ic2VydmVyLmlkbCcsCiAgICAgICAgICAgICAnZG9tL011dGF0aW9uUmVjb3JkLmlkbCcsCiAg
ICAgICAgICAgICAnZG9tL05hbWVkTm9kZU1hcC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9Ob2Rl
LmlkbCcsCkBAIC05ODcsNyArOTg4LDYgQEAKICAgICAgICAgICAgICdkb20vVHJlZVdhbGtlci5p
ZGwnLAogICAgICAgICAgICAgJ2RvbS9VSUV2ZW50LmlkbCcsCiAgICAgICAgICAgICAnZG9tL1dl
YktpdEFuaW1hdGlvbkV2ZW50LmlkbCcsCi0gICAgICAgICAgICAnZG9tL1dlYktpdE11dGF0aW9u
T2JzZXJ2ZXIuaWRsJywKICAgICAgICAgICAgICdkb20vV2ViS2l0TmFtZWRGbG93LmlkbCcsCiAg
ICAgICAgICAgICAnZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5pZGwnLAogICAgICAgICAgICAg
J2RvbS9XaGVlbEV2ZW50LmlkbCcsCkBAIC0yMDA2LDYgKzIwMDYsNyBAQAogICAgICAgICAgICAg
J2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5k
aW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pz
L0pTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL2pz
L0pTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pz
L0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNO
b2RlQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29u
ZGl0aW9uLmNwcCcsCkBAIC0yMDQ4LDcgKzIwNDksNiBAQAogICAgICAgICAgICAgJ2JpbmRpbmdz
L2pzL0pTV2ViS2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRp
bmdzL2pzL0pTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAn
YmluZGluZ3MvanMvSlNXZWJLaXRDU1NLZXlmcmFtZXNSdWxlQ3VzdG9tLmNwcCcsCi0gICAgICAg
ICAgICAnYmluZGluZ3MvanMvSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCcsCiAg
ICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludEN1c3RvbS5jcHAnLAogICAgICAg
ICAgICAgJ2JpbmRpbmdzL2pzL0pTV2ViU29ja2V0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAn
YmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5jcHAnLApAQCAtMjMyMCw2ICsyMzIwLDcg
QEAKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlRXZlbnRDdXN0b20u
Y3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlUG9ydEN1c3Rv
bS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uQ2FsbGJh
Y2tDdXN0b20uY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlv
bk9ic2VydmVyQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4
TmFtZWROb2RlTWFwQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9t
L1Y4TmFtZWROb2Rlc0NvbGxlY3Rpb24uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9j
dXN0b20vVjhOYW1lZE5vZGVzQ29sbGVjdGlvbi5oJywKQEAgLTIzNDksNyArMjM1MCw2IEBACiAg
ICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4VWludDhDbGFtcGVkQXJyYXlDdXN0b20u
Y3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0Nv
bnRleHRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJL
aXRBbmltYXRpb25DdXN0b20uY3BwJywKLSAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20v
VjhXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4V2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5jcHAnLAogICAgICAgICAgICAg
J2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYlNvY2tldEN1c3RvbS5jcHAnLAogICAgICAgICAgICAg
J2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdvcmtlckNvbnRleHRDdXN0b20uY3BwJywKQEAgLTUzMzgs
NiArNTMzOCw4IEBACiAgICAgICAgICAgICAnZG9tL011dGF0aW9uQ2FsbGJhY2suaCcsCiAgICAg
ICAgICAgICAnZG9tL011dGF0aW9uRXZlbnQuY3BwJywKICAgICAgICAgICAgICdkb20vTXV0YXRp
b25FdmVudC5oJywKKyAgICAgICAgICAgICdkb20vTXV0YXRpb25PYnNlcnZlci5jcHAnLAorICAg
ICAgICAgICAgJ2RvbS9NdXRhdGlvbk9ic2VydmVyLmgnLAogICAgICAgICAgICAgJ2RvbS9NdXRh
dGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9NdXRhdGlv
bk9ic2VydmVySW50ZXJlc3RHcm91cC5oJywKICAgICAgICAgICAgICdkb20vTXV0YXRpb25PYnNl
cnZlclJlZ2lzdHJhdGlvbi5jcHAnLApAQCAtNTQzOCw4ICs1NDQwLDYgQEAKICAgICAgICAgICAg
ICdkb20vVmlld3BvcnRBcmd1bWVudHMuY3BwJywKICAgICAgICAgICAgICdkb20vV2ViS2l0QW5p
bWF0aW9uRXZlbnQuY3BwJywKICAgICAgICAgICAgICdkb20vV2ViS2l0QW5pbWF0aW9uRXZlbnQu
aCcsCi0gICAgICAgICAgICAnZG9tL1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuY3BwJywKLSAgICAg
ICAgICAgICdkb20vV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oJywKICAgICAgICAgICAgICdkb20v
V2ViS2l0TmFtZWRGbG93LmNwcCcsCiAgICAgICAgICAgICAnZG9tL1dlYktpdE5hbWVkRmxvdy5o
JywKICAgICAgICAgICAgICdkb20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCcsCkBAIC03NzE4
LDYgKzc3MTgsOCBAQAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNNdXRhdGlvbkNhbGxiYWNrLmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvbkV2ZW50LmNwcCcsCiAgICAgICAg
ICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uRXZl
bnQuaCcsCisgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU011dGF0aW9uT2JzZXJ2ZXIuY3BwJywKKyAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25PYnNlcnZlci5oJywKICAgICAgICAgICAg
ICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25SZWNvcmQu
Y3BwJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTTXV0YXRpb25SZWNvcmQuaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU05hbWVkTm9kZU1hcC5jcHAnLApAQCAtODI2Miw4ICs4MjY0LDYg
QEAKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
V2ViS2l0Q1NTUmVnaW9uUnVsZS5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3BwJywKICAgICAg
ICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0Q1NT
VHJhbnNmb3JtVmFsdWUuaCcsCi0gICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuY3BwJywKLSAgICAgICAgICAg
ICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0TXV0YXRpb25P
YnNlcnZlci5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTV2ViS2l0UG9pbnQuY3BwJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0UG9pbnQuaCcsCiAgICAgICAgICAgICAnPChQ
Uk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdE5hbWVkRmxvdy5jcHAn
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBk
MDZkZGFhYTE0NjJkODljYzUxZjlmM2VkNmQ4YmVlNDg5Y2VhZGVjLi5kMjU1MTg4MTU0Y2Q1N2Ji
OWIxYWM2NzM1ZjA5MWQ4Zjg0ODMxODY2IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMTE1OTAsNiArMTE1OTAsNjIgQEAKIAkJCQk+CiAJCQk8
L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGRE
aXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU011dGF0aW9uT2JzZXJ2ZXIu
Y3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2lu
MzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIi
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0
ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRv
b2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9D
YWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+
CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9
IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4K
KwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0i
UHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4K
KwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXEpTTXV0YXRpb25PYnNlcnZlci5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxl
CiAJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVj
dE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTTXV0YXRpb25SZWNvcmQuY3BwIgogCQkJCT4KIAkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KQEAgLTIzMDYzLDYyICsyMzExOSw2IEBACiAJCQkJPgogCQkJPC9G
aWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGly
KVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyLmNwcCIKLQkJCQk+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVn
fFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9v
bAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlfFdp
bjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAot
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19D
RkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJ
CTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVh
c2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJ
CQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4K
LQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlO
YW1lPSJEZWJ1Z19BbGx8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJ
CQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgot
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5h
bWU9IlByb2R1Y3Rpb258V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJ
CQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgot
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0
aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xKU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+
Ci0JCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9i
alwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1dlYktpdE5hbWVkRmxvdy5jcHAiCiAJ
CQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtNTE2MTUsNiArNTE2MTUsNjIgQEAKIAkJ
CQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXE11dGF0
aW9uT2JzZXJ2ZXIuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFt
ZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJ
CQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJl
bGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJ
CTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVn
X0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJ
CT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFt
ZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9u
CisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJ
CQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
KwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJ
CQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cTXV0YXRpb25PYnNlcnZlci5oIgorCQkJCT4KKwkJCTwv
RmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cTXV0YXRpb25PYnNlcnZl
ckludGVyZXN0R3JvdXAuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KQEAgLTU0
MzAzLDYyICs1NDM1OSw2IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGRvbVxXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmNwcCIKLQkJCQk+Ci0JCQkJ
PEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgotCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJ
PEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMy
IgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIi
Ci0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIi
Ci0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFdlYktp
dE11dGF0aW9uT2JzZXJ2ZXIuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJl
bGF0aXZlUGF0aD0iLi5cZG9tXFdlYktpdE5hbWVkRmxvdy5jcHAiCiAJCQkJPgogCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgpAQCAtNjgxODIsNyArNjgxODIsNyBAQAogCQkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJp
bmRpbmdzXGpzXEpTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxiaW5kaW5nc1xqc1xKU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02ODIzNCw3
ICs2ODIzNCw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJ
CTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNOb2RlQ3VzdG9tLmNw
cCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU05hbWVkTm9kZU1hcEN1c3Rv
bS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJEZWJ1
Z3xXaW4zMiIKQEAgLTY4Mjg2LDExICs2ODI4Niw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGlu
Z3NcanNcSlNOb2RlQ3VzdG9tLmgiCi0JCQkJCT4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUKLQkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU05vZGVGaWx0ZXJDb25kaXRpb24uY3Bw
IgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZUN1c3RvbS5jcHAiCiAJ
CQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIK
QEAgLTY4MzQyLDExICs2ODMzOCwxMSBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJ
CTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpT
Tm9kZUZpbHRlckNvbmRpdGlvbi5oIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpz
XEpTTm9kZUN1c3RvbS5oIgogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJl
bGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCIKKwkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwIgog
CQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIi
CkBAIC02ODM5OCw3ICs2ODM5NCwxMSBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJ
CTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpT
Tm9kZUl0ZXJhdG9yQ3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xq
c1xKU05vZGVGaWx0ZXJDb25kaXRpb24uaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8Rmls
ZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZUZpbHRlckN1c3RvbS5j
cHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xX
aW4zMiIKQEAgLTY4NDUwLDcgKzY4NDUwLDcgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4K
IAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xq
c1xKU05vZGVMaXN0Q3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xq
c1xKU05vZGVJdGVyYXRvckN1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0
aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKQEAgLTY4NTAyLDcgKzY4NTAyLDcgQEAKIAkJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU05vdGlmaWNhdGlvbkN1c3RvbS5jcHAiCisJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNOb2RlTGlzdEN1c3RvbS5jcHAiCiAJCQkJ
CT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKQEAg
LTY4NTU0LDcgKzY4NTU0LDcgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0Zp
bGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1BsdWdp
bkVsZW1lbnRGdW5jdGlvbnMuY3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpz
XEpTTm90aWZpY2F0aW9uQ3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpAQCAtNjg2MDYsMTEgKzY4NjA2LDcgQEAKIAkJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaCIKLQkJ
CQkJPgotCQkJCTwvRmlsZT4KLQkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRp
bmdzXGpzXEpTUHJvY2Vzc2luZ0luc3RydWN0aW9uQ3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxiaW5kaW5nc1xqc1xKU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwIgogCQkJCQk+
CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02
ODY2Miw3ICs2ODY1OCwxMSBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJCTwvRmls
ZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTUmVxdWVz
dEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2tDdXN0b20uY3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGJpbmRpbmdzXGpzXEpTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oIgorCQkJCQk+CisJCQkJPC9G
aWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNQcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb25DdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02ODcxNCw3ICs2ODcxNCw3IEBACiAJ
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJl
bGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNTY3JpcHRQcm9maWxlTm9kZUN1c3RvbS5jcHAi
CisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNSZXF1ZXN0QW5pbWF0aW9uRnJh
bWVDYWxsYmFja0N1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJ
CQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKQEAgLTY4NzY2LDcgKzY4NzY2LDcgQEAKIAkJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxiaW5kaW5nc1xqc1xKU1NoYXJlZFdvcmtlckN1c3RvbS5jcHAiCisJCQkJCVJlbGF0
aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNTY3JpcHRQcm9maWxlTm9kZUN1c3RvbS5jcHAiCiAJ
CQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIK
QEAgLTY4ODE4LDcgKzY4ODE4LDcgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8
L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1NR
TFJlc3VsdFNldFJvd0xpc3RDdXN0b20uY3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRp
bmdzXGpzXEpTU2hhcmVkV29ya2VyQ3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpAQCAtNjg4NzAsNyArNjg4NzAsNyBA
QAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU1FMVHJhbnNhY3Rpb25DdXN0b20uY3Bw
IgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU1FMUmVzdWx0U2V0Um93TGlz
dEN1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1l
PSJEZWJ1Z3xXaW4zMiIKQEAgLTY4OTIyLDcgKzY4OTIyLDcgQEAKIAkJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxi
aW5kaW5nc1xqc1xKU1NRTFRyYW5zYWN0aW9uU3luY0N1c3RvbS5jcHAiCisJCQkJCVJlbGF0aXZl
UGF0aD0iLi5cYmluZGluZ3NcanNcSlNTUUxUcmFuc2FjdGlvbkN1c3RvbS5jcHAiCiAJCQkJCT4K
IAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKQEAgLTY4
OTc0LDcgKzY4OTc0LDcgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+
CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1N0b3JhZ2VD
dXN0b20uY3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU1FMVHJhbnNh
Y3Rpb25TeW5jQ3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJ
CQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpAQCAtNjkwMjYsMTEgKzY5MDI2LDcgQEAKIAkJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxiaW5kaW5nc1xqc1xKU1N0b3JhZ2VDdXN0b20uaCIKLQkJCQkJPgotCQkJCTwvRmls
ZT4KLQkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU3R5bGVT
aGVldEN1c3RvbS5jcHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNTdG9y
YWdlQ3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJCQkJCU5h
bWU9IkRlYnVnfFdpbjMyIgpAQCAtNjkwODIsNyArNjkwNzgsMTEgQEAKIAkJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxiaW5kaW5nc1xqc1xKU1N0eWxlU2hlZXRMaXN0Q3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxiaW5kaW5nc1xqc1xKU1N0b3JhZ2VDdXN0b20uaCIKKwkJCQkJPgorCQkJCTwvRmls
ZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU3R5bGVT
aGVldEN1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlO
YW1lPSJEZWJ1Z3xXaW4zMiIKQEAgLTY5MTM0LDcgKzY5MTM0LDcgQEAKIAkJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxiaW5kaW5nc1xqc1xKU1NWR0VsZW1lbnRJbnN0YW5jZUN1c3RvbS5jcHAiCisJCQkJCVJlbGF0
aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNTdHlsZVNoZWV0TGlzdEN1c3RvbS5jcHAiCiAJCQkJ
CT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKQEAg
LTY5MTg2LDcgKzY5MTg2LDcgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0Zp
bGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1NWR0xl
bmd0aEN1c3RvbS5jcHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNTVkdF
bGVtZW50SW5zdGFuY2VDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02OTIzOCw3ICs2OTIzOCw3IEBACiAJCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0
aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNTVkdQYXRoU2VnQ3VzdG9tLmNwcCIKKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1NWR0xlbmd0aEN1c3RvbS5jcHAiCiAJCQkJCT4K
IAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKQEAgLTY5
MjkwLDcgKzY5MjkwLDcgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+
CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1RleHRDdXN0
b20uY3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU1ZHUGF0aFNlZ0N1
c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJE
ZWJ1Z3xXaW4zMiIKQEAgLTY5MzQyLDcgKzY5MzQyLDcgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5k
aW5nc1xqc1xKU1RyZWVXYWxrZXJDdXN0b20uY3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJp
bmRpbmdzXGpzXEpTVGV4dEN1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0
aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKQEAgLTY5Mzk0LDcgKzY5Mzk0LDcgQEAKIAkJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1dlYktpdEFuaW1hdGlvbkN1c3RvbS5jcHAiCisJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNUcmVlV2Fsa2VyQ3VzdG9tLmNwcCIK
IAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMy
IgpAQCAtNjk0NDYsNyArNjk0NDYsNyBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJ
CTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpT
V2ViS2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5jcHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmlu
ZGluZ3NcanNcSlNXZWJLaXRBbmltYXRpb25DdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02OTQ5OCw3ICs2OTQ5
OCw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxl
Ci0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNXZWJLaXRDU1NLZXlmcmFtZVJ1
bGVDdXN0b20uY3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTV2ViS2l0
QW5pbWF0aW9uTGlzdEN1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9u
CiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKQEAgLTY5NTUwLDcgKzY5NTUwLDcgQEAKIAkJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1dlYktpdENTU0tleWZyYW1lc1J1bGVDdXN0b20uY3Bw
IgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTV2ViS2l0Q1NTS2V5ZnJhbWVS
dWxlQ3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJCQkJCU5h
bWU9IkRlYnVnfFdpbjMyIgpAQCAtNjk2MDIsNyArNjk2MDIsNyBAQAogCQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGJpbmRpbmdzXGpzXEpTV2ViS2l0Q1NTTWF0cml4Q3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxiaW5kaW5nc1xqc1xKU1dlYktpdENTU0tleWZyYW1lc1J1bGVDdXN0b20uY3BwIgog
CQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIi
CkBAIC02OTY1NCw3ICs2OTY1NCw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJ
PC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxi
aW5kaW5nc1xqc1xKU1dlYktpdENTU01hdHJpeEN1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZp
bGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkZjhkNWE4NjI1
Yjg3NzJkYTI4ZjZjZGUwYzI4MmRhOGYxNDJmZGZjLi4xYjc3NDFmOGZmOTJhN2FjZjJiYTJjNzc0
NTU0Yzg0ZGVkNDAxNTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NzUzLDEzICs1NzUzLDEzIEBACiAJCUM2RjA4RkM5MTQz
MTAwMEQwMDY4NTg0OSAvKiBKU011dGF0aW9uUmVjb3JkLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RjA4RkM3MTQzMTAwMEQwMDY4NTg0OSAvKiBK
U011dGF0aW9uUmVjb3JkLmNwcCAqLzsgfTsKIAkJQzZGMDhGQ0ExNDMxMDAwRDAwNjg1ODQ5IC8q
IEpTTXV0YXRpb25SZWNvcmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEM2RjA4RkM4MTQzMTAwMEQwMDY4NTg0OSAvKiBKU011dGF0aW9uUmVjb3JkLmgg
Ki87IH07CiAJCUM2RjA5MDBBMTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbkNhbGxiYWNrLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwOTAwMTE0
MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25DYWxsYmFjay5oICovOyB9OwotCQlDNkYwOTAwRTE0
MzI3QjYxMDA2ODU4NDkgLyogV2ViS2l0TXV0YXRpb25PYnNlcnZlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwOTAwNTE0MzI3QjYxMDA2ODU4
NDkgLyogV2ViS2l0TXV0YXRpb25PYnNlcnZlci5jcHAgKi87IH07Ci0JCUM2RjA5MDBGMTQzMjdC
NjEwMDY4NTg0OSAvKiBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwOTAwNjE0MzI3QjYxMDA2ODU4NDkgLyog
V2ViS2l0TXV0YXRpb25PYnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCUM2RjA5MDBFMTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbk9i
c2VydmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEM2RjA5MDA1MTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbk9ic2VydmVyLmNwcCAqLzsgfTsK
KwkJQzZGMDkwMEYxNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RjA5MDA2MTQzMjdCNjEw
MDY4NTg0OSAvKiBNdXRhdGlvbk9ic2VydmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzZGMDkwMjgxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0
YXRpb25DYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDNkYwOTAyMDE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmNw
cCAqLzsgfTsKIAkJQzZGMDkwMjkxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFj
ay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDkw
MjExNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFjay5oICovOyB9OwotCQlDNkYw
OTAyQzE0MzI3RDRGMDA2ODU4NDkgLyogSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RjA5MDI0MTQzMjdE
NEYwMDY4NTg0OSAvKiBKU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuY3BwICovOyB9OwotCQlDNkYw
OTAyRDE0MzI3RDRGMDA2ODU4NDkgLyogSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwOTAyNTE0MzI3RDRG
MDA2ODU4NDkgLyogSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmggKi87IH07Ci0JCUM2RjA5MTdG
MTQzQTJCQjkwMDY4NTg0OSAvKiBKU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDkxN0UxNDNB
MkJCOTAwNjg1ODQ5IC8qIEpTV2ViS2l0TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgKi87IH07
CisJCUM2RjA5MDJDMTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDkwMjQxNDMy
N0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlci5jcHAgKi87IH07CisJCUM2RjA5MDJE
MTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RjA5MDI1MTQzMjdENEYwMDY4NTg0OSAv
KiBKU011dGF0aW9uT2JzZXJ2ZXIuaCAqLzsgfTsKKwkJQzZGMDkxN0YxNDNBMkJCOTAwNjg1ODQ5
IC8qIEpTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwOTE3RTE0M0EyQkI5MDA2ODU4NDkgLyogSlNNdXRh
dGlvbk9ic2VydmVyQ3VzdG9tLmNwcCAqLzsgfTsKIAkJQzZGMDkxODUxNDNBNkMzQjAwNjg1ODQ5
IC8qIEpTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwOTE4NDE0M0E2QzNCMDA2ODU4NDkgLyogSlNNdXRh
dGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCAqLzsgfTsKIAkJQzZGNDEwNDcxMzBDNkU4OTAwMzkzREU0
IC8qIEVudHJ5QmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDNkY0MTA0NjEzMEM2RTg5MDAzOTNERTQgLyogRW50cnlCYXNlLmNwcCAqLzsgfTsK
IAkJQ0EzQkY2N0MxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENBM0JGNjdCMTBEOTlCQUUw
MEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5jcHAgKi87IH07CkBAIC0xMjk0NCwxNCArMTI5NDQs
MTQgQEAKIAkJQzZGMDhGQzgxNDMxMDAwRDAwNjg1ODQ5IC8qIEpTTXV0YXRpb25SZWNvcmQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNdXRhdGlvblJlY29yZC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNkYwOTAwMTE0MzI3QjYxMDA2ODU4NDkgLyogTXV0
YXRpb25DYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNdXRhdGlv
bkNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM2RjA5MDAyMTQzMjdC
NjEwMDY4NTg0OSAvKiBNdXRhdGlvbkNhbGxiYWNrLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBNdXRhdGlvbkNhbGxiYWNrLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQzZG
MDkwMDUxNDMyN0I2MTAwNjg1ODQ5IC8qIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViS2l0TXV0YXRpb25PYnNlcnZlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUM2RjA5MDA2MTQzMjdCNjEwMDY4NTg0
OSAvKiBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJQzZGMDkwMDcxNDMyN0I2MTAwNjg1ODQ5IC8qIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDNkYwOTAwNTE0MzI3QjYxMDA2ODU4NDkgLyog
TXV0YXRpb25PYnNlcnZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBNdXRhdGlvbk9ic2VydmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzZG
MDkwMDYxNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTXV0YXRpb25PYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDNkYwOTAwNzE0MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25PYnNlcnZl
ci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTXV0YXRpb25PYnNlcnZlci5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM2RjA5MDIwMTQzMjdENEYwMDY4NTg0OSAvKiBKU011
dGF0aW9uQ2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNNdXRhdGlvbkNhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzZG
MDkwMjExNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFjay5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU011dGF0aW9uQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJQzZGMDkwMjQxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTV2ViS2l0TXV0
YXRpb25PYnNlcnZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlDNkYwOTAyNTE0MzI3RDRGMDA2ODU4NDkgLyogSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViS2l0TXV0YXRpb25PYnNlcnZl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDNkYwOTE3RTE0M0EyQkI5MDA2ODU4
NDkgLyogSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViS2l0TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM2RjA5MDI0MTQzMjdENEYwMDY4NTg0OSAv
KiBKU011dGF0aW9uT2JzZXJ2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNNdXRhdGlvbk9ic2VydmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQzZGMDkwMjUxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU011dGF0aW9uT2JzZXJ2ZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzZGMDkxN0UxNDNBMkJCOTAwNjg1ODQ5IC8qIEpTTXV0
YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDNkYwOTE4NDE0M0E2QzNCMDA2ODU4NDkgLyogSlNNdXRhdGlvbkNhbGxiYWNrQ3Vz
dG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTXV0YXRpb25D
YWxsYmFja0N1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM2RjQxMDQ2
MTMwQzZFODkwMDM5M0RFNCAvKiBFbnRyeUJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gRW50cnlCYXNlLmNwcDsgcGF0aCA9IE1vZHVsZXMvZmlsZXN5c3RlbS9F
bnRyeUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDQTNCRjY3QjEwRDk5
QkFFMDBFNkNFNTMgLyogU2Nyb2xsQW5pbWF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU2Nyb2xsQW5pbWF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTg2MjQsNiArMTg2MjQsOCBAQAogCQkJCUZFODBEQTYyMEU5QzQ3MDMwMDBENkY3
NSAvKiBKU0dlb3Bvc2l0aW9uLmggKi8sCiAJCQkJQzZGMDkwMjAxNDMyN0Q0RjAwNjg1ODQ5IC8q
IEpTTXV0YXRpb25DYWxsYmFjay5jcHAgKi8sCiAJCQkJQzZGMDkwMjExNDMyN0Q0RjAwNjg1ODQ5
IC8qIEpTTXV0YXRpb25DYWxsYmFjay5oICovLAorCQkJCUM2RjA5MDI0MTQzMjdENEYwMDY4NTg0
OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXIuY3BwICovLAorCQkJCUM2RjA5MDI1MTQzMjdENEYwMDY4
NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXIuaCAqLywKIAkJCQlDNkYwOEZDNzE0MzEwMDBEMDA2
ODU4NDkgLyogSlNNdXRhdGlvblJlY29yZC5jcHAgKi8sCiAJCQkJQzZGMDhGQzgxNDMxMDAwRDAw
Njg1ODQ5IC8qIEpTTXV0YXRpb25SZWNvcmQuaCAqLywKIAkJCQlCQ0Q5QzJCQzBDMTdCNjlFMDA1
QzkwQTIgLyogSlNOYW1lZE5vZGVNYXAuY3BwICovLApAQCAtMTg2NTYsOCArMTg2NTgsNiBAQAog
CQkJCTc1NDE1RDU0MTI5QUIyRDIwMDNBRDY2OSAvKiBKU1NwZWVjaElucHV0UmVzdWx0TGlzdC5o
ICovLAogCQkJCTY1REYzMUVGMDlEMUNDNjAwMDBCRTMyNSAvKiBKU1RleHQuY3BwICovLAogCQkJ
CTY1REYzMUYwMDlEMUNDNjAwMDBCRTMyNSAvKiBKU1RleHQuaCAqLywKLQkJCQlDNkYwOTAyNDE0
MzI3RDRGMDA2ODU4NDkgLyogSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmNwcCAqLywKLQkJCQlD
NkYwOTAyNTE0MzI3RDRGMDA2ODU4NDkgLyogSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmggKi8s
CiAJCQkJRDc2MTNBQzIxNDc1M0U1NjAwREI4NjA2IC8qIEpTV2ViS2l0TmFtZWRGbG93LmNwcCAq
LywKIAkJCQlENzYxM0FDMzE0NzUzRTU2MDBEQjg2MDYgLyogSlNXZWJLaXROYW1lZEZsb3cuaCAq
LywKIAkJCSk7CkBAIC0yMDA1NSw2ICsyMDA1NSw3IEBACiAJCQkJRTFBREVENDYwRTc2QjhERDAw
NEExQTVFIC8qIEpTTWVzc2FnZVBvcnRDdXN0b20uY3BwICovLAogCQkJCTQxRjU4NEM2MTA0NjUy
Q0IwMDlDQUE2NCAvKiBKU01lc3NhZ2VQb3J0Q3VzdG9tLmggKi8sCiAJCQkJQzZGMDkxODQxNDNB
NkMzQjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAgKi8sCisJCQkJQzZG
MDkxN0UxNDNBMkJCOTAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgKi8s
CiAJCQkJQkNEOUMyNUYwQzE3QUE2NzAwNUM5MEEyIC8qIEpTTmFtZWROb2RlTWFwQ3VzdG9tLmNw
cCAqLywKIAkJCQlCQ0Q5QzI2MDBDMTdBQTY3MDA1QzkwQTIgLyogSlNOb2RlQ3VzdG9tLmNwcCAq
LywKIAkJCQlCQzk0MzlDMjExNkNGNDk0MDA0OEM3NTAgLyogSlNOb2RlQ3VzdG9tLmggKi8sCkBA
IC0yMDA5NCw3ICsyMDA5NSw2IEBACiAJCQkJMzE5NDYyMzExMzAyMkY2NTAwNEJCM0Y4IC8qIEpT
V2ViS2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5jcHAgKi8sCiAJCQkJRTFBRDE0QzQxMjk3MzU0OTAw
QUNBOTg5IC8qIEpTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlQ3VzdG9tLmNwcCAqLywKIAkJCQlFMUFE
MTRCNDEyOTczNENBMDBBQ0E5ODkgLyogSlNXZWJLaXRDU1NLZXlmcmFtZXNSdWxlQ3VzdG9tLmNw
cCAqLywKLQkJCQlDNkYwOTE3RTE0M0EyQkI5MDA2ODU4NDkgLyogSlNXZWJLaXRNdXRhdGlvbk9i
c2VydmVyQ3VzdG9tLmNwcCAqLywKIAkJCQlCQzI3NUI3ODExQzVEMUMzMDBDOTIwNkMgLyogSlNX
ZWJLaXRQb2ludEN1c3RvbS5jcHAgKi8sCiAJCQkJNTE4QTM0QzYxMDI2QzhDOTAwMUI2ODk2IC8q
IEpTV2ViU29ja2V0Q3VzdG9tLmNwcCAqLywKIAkJCQlFMTgyNThBQjBFRjNDRDcwMDA5MzMyNDIg
LyogSlNXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcCAqLywKQEAgLTIxMzg5LDYgKzIxMzg5LDkgQEAK
IAkJCQlENkU1MjhBMjE0OUE5MjZEMDBFRkUxRjMgLyogTXV0YXRpb25PYnNlcnZlckludGVyZXN0
R3JvdXAuaCAqLywKIAkJCQlENkUyNzZBRDE0NjM3NDU1MDAxRDI4MEEgLyogTXV0YXRpb25PYnNl
cnZlclJlZ2lzdHJhdGlvbi5jcHAgKi8sCiAJCQkJRDZFMjc2QUUxNDYzNzQ1NTAwMUQyODBBIC8q
IE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uaCAqLywKKwkJCQlDNkYwOTAwNTE0MzI3QjYx
MDA2ODU4NDkgLyogTXV0YXRpb25PYnNlcnZlci5jcHAgKi8sCisJCQkJQzZGMDkwMDYxNDMyN0I2
MTAwNjg1ODQ5IC8qIE11dGF0aW9uT2JzZXJ2ZXIuaCAqLywKKwkJCQlDNkYwOTAwNzE0MzI3QjYx
MDA2ODU4NDkgLyogTXV0YXRpb25PYnNlcnZlci5pZGwgKi8sCiAJCQkJQzZGMDhGQjkxNDMwRkU4
RjAwNjg1ODQ5IC8qIE11dGF0aW9uUmVjb3JkLmNwcCAqLywKIAkJCQlDNkYwOEZCQTE0MzBGRThG
MDA2ODU4NDkgLyogTXV0YXRpb25SZWNvcmQuaCAqLywKIAkJCQlDNkYwOEZCQjE0MzBGRThGMDA2
ODU4NDkgLyogTXV0YXRpb25SZWNvcmQuaWRsICovLApAQCAtMjE1MjMsOSArMjE1MjYsNiBAQAog
CQkJCTMxQzBGRjFCMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5jcHAg
Ki8sCiAJCQkJMzFDMEZGMUMwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50
LmggKi8sCiAJCQkJMzFDMEZGMUQwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2
ZW50LmlkbCAqLywKLQkJCQlDNkYwOTAwNTE0MzI3QjYxMDA2ODU4NDkgLyogV2ViS2l0TXV0YXRp
b25PYnNlcnZlci5jcHAgKi8sCi0JCQkJQzZGMDkwMDYxNDMyN0I2MTAwNjg1ODQ5IC8qIFdlYktp
dE11dGF0aW9uT2JzZXJ2ZXIuaCAqLywKLQkJCQlDNkYwOTAwNzE0MzI3QjYxMDA2ODU4NDkgLyog
V2ViS2l0TXV0YXRpb25PYnNlcnZlci5pZGwgKi8sCiAJCQkJRDc2MTNBNEUxNDc0RjEzRjAwREI4
NjA2IC8qIFdlYktpdE5hbWVkRmxvdy5jcHAgKi8sCiAJCQkJRDc2MTNBNEQxNDc0RjEzRjAwREI4
NjA2IC8qIFdlYktpdE5hbWVkRmxvdy5oICovLAogCQkJCUQ3NjEzQTRBMTQ3NEVFOTUwMERCODYw
NiAvKiBXZWJLaXROYW1lZEZsb3cuaWRsICovLApAQCAtMjM2MzYsNiArMjM2MzYsNyBAQAogCQkJ
CUE4NjYyOUQxMDlEQTJCNDgwMDk2MzNBNSAvKiBKU01vdXNlRXZlbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUM2RjA5MDI5MTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2suaCBp
biBIZWFkZXJzICovLAogCQkJCTY1REYzMUZDMDlEMUNDNjAwMDBCRTMyNSAvKiBKU011dGF0aW9u
RXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUM2RjA5MDJEMTQzMjdENEYwMDY4NTg0OSAvKiBK
U011dGF0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUM2RjA4RkNBMTQzMTAwMEQw
MDY4NTg0OSAvKiBKU011dGF0aW9uUmVjb3JkLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0Q5QzJD
MTBDMTdCNjlFMDA1QzkwQTIgLyogSlNOYW1lZE5vZGVNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE5RDI0N0Y4MEQ3NTdFMzQwMEZERjk1OSAvKiBKU05hdmlnYXRvci5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yMzg4OSw3ICsyMzg5MCw2IEBACiAJCQkJNDk4MzkxNDAwRjFFNzY3NTAwQzIzNzgyIC8q
IEpTV2ViS2l0Q1NTTWF0cml4LmggaW4gSGVhZGVycyAqLywKIAkJCQk4QUQwQTU5NTE0Qzg4MzM2
MDAwRDgzQzUgLyogSlNXZWJLaXRDU1NSZWdpb25SdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkz
MTYxMUU1QjBFMUM0REUwMDBGNkE1NzkgLyogSlNXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJQzZGMDkwMkQxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTV2ViS2l0TXV0
YXRpb25PYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDk0QkQ3OUUwRjU1Qzk0QzAwNzQ3
ODI4IC8qIEpTV2ViS2l0UG9pbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxQzBGRjQwMEU0Q0VG
QUMwMDdENkZFNSAvKiBKU1dlYktpdFRyYW5zaXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNURBNUUwRkQxMDJCOTUzODAwMDg4Q0Y5IC8qIEpTV2ViU29ja2V0LmggaW4gSGVhZGVycyAq
LywKQEAgLTI0MDIyLDYgKzI0MDIyLDcgQEAKIAkJCQlGREIxNzAwNjE0QTJCQUIyMDBBMkI1RDkg
LyogTXVsdGlDaGFubmVsUmVzYW1wbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNkYwOTAwQTE0
MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODUwMzFCNEEwQTQ0RUZDNzAwRjk5MkUwIC8qIE11dGF0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICov
LAorCQkJCUM2RjA5MDBGMTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbk9ic2VydmVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlENkU1MjhBNDE0OUE5MjZEMDBFRkUxRjMgLyogTXV0YXRpb25PYnNl
cnZlckludGVyZXN0R3JvdXAuaCBpbiBIZWFkZXJzICovLAogCQkJCUQ2RTI3NkIwMTQ2Mzc0NTUw
MDFEMjgwQSAvKiBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQlDNkYwOEZCRDE0MzBGRThGMDA2ODU4NDkgLyogTXV0YXRpb25SZWNvcmQuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjQ5NzYsNyArMjQ5NzcsNiBAQAogCQkJCTI5Q0Q2MURFMTQ2RDAyODkwMDY4
RTgyQSAvKiBXZWJLaXRDU1NTaGFkZXJWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5QURE
MjMwQ0M0MDMyNjAwMDk4QzRDIC8qIFdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4OTg3ODU2NjEyMkNBMDY0MDAzQUFCREEgLyogV2ViS2l0RmxhZ3MuaCBpbiBI
ZWFkZXJzICovLAotCQkJCUM2RjA5MDBGMTQzMjdCNjEwMDY4NTg0OSAvKiBXZWJLaXRNdXRhdGlv
bk9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OTRCRDc5NTBGNTVDOEVFMDA3NDc4Mjgg
LyogV2ViS2l0UG9pbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxQzBGRjI1MEU0Q0VCNkUwMDdE
NkZFNSAvKiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQ0Yz
MzJGMEYyQjlBMjUwMDRCNjc5NSAvKiBXZWJMYXllci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjg0
NSw2ICsyNjg0NSw4IEBACiAJCQkJQzZGMDkwMjgxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRp
b25DYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNkYwOTE4NTE0M0E2QzNCMDA2ODU4
NDkgLyogSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1
REYzMUZCMDlEMUNDNjAwMDBCRTMyNSAvKiBKU011dGF0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJQzZGMDkwMkMxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlci5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlDNkYwOTE3RjE0M0EyQkI5MDA2ODU4NDkgLyogSlNNdXRh
dGlvbk9ic2VydmVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM2RjA4RkM5MTQzMTAw
MEQwMDY4NTg0OSAvKiBKU011dGF0aW9uUmVjb3JkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
RDlDMkMwMEMxN0I2OUUwMDVDOTBBMiAvKiBKU05hbWVkTm9kZU1hcC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQ0Q5QzI2MzBDMTdBQTY3MDA1QzkwQTIgLyogSlNOYW1lZE5vZGVNYXBDdXN0b20u
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzEzNSw4ICsyNzEzNyw2IEBACiAJCQkJNDk4MzkxM0Yw
RjFFNzY3NTAwQzIzNzgyIC8qIEpTV2ViS2l0Q1NTTWF0cml4LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCThBRDBBNTk0MTRDODgzMzYwMDBEODNDNSAvKiBKU1dlYktpdENTU1JlZ2lvblJ1bGUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMzE2MTFFNUEwRTFDNERFMDAwRjZBNTc5IC8qIEpTV2ViS2l0
Q1NTVHJhbnNmb3JtVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQzZGMDkwMkMxNDMyN0Q0
RjAwNjg1ODQ5IC8qIEpTV2ViS2l0TXV0YXRpb25PYnNlcnZlci5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQlDNkYwOTE3RjE0M0EyQkI5MDA2ODU4NDkgLyogSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVy
Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUQ3NjEzQUM0MTQ3NTNFNTYwMERCODYwNiAv
KiBKU1dlYktpdE5hbWVkRmxvdy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OTRCRDc5RDBGNTVD
OTRDMDA3NDc4MjggLyogSlNXZWJLaXRQb2ludC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzI3
NUI3OTExQzVEMUMzMDBDOTIwNkMgLyogSlNXZWJLaXRQb2ludEN1c3RvbS5jcHAgaW4gU291cmNl
cyAqLywKQEAgLTI3MjY5LDYgKzI3MjY5LDcgQEAKIAkJCQk5MzMwOURGQjA5OUU2NDkyMDA1NkU1
ODEgLyogTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkRCMTcw
MDUxNEEyQkFCMjAwQTJCNUQ5IC8qIE11bHRpQ2hhbm5lbFJlc2FtcGxlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk4NTAzMUI0OTBBNDRFRkM3MDBGOTkyRTAgLyogTXV0YXRpb25FdmVudC5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlDNkYwOTAwRTE0MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25P
YnNlcnZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlENkU1MjhBMzE0OUE5MjZEMDBFRkUxRjMg
LyogTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RDZFMjc2QUYxNDYzNzQ1NTAwMUQyODBBIC8qIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzZGMDhGQkMxNDMwRkU4RjAwNjg1ODQ5IC8qIE11dGF0
aW9uUmVjb3JkLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjgwMzAsNyArMjgwMzEsNiBAQAogCQkJ
CTUwMzhCQzA3MTQ3MTFDREIwMDk1RTBEMSAvKiBXZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzlBREQ4MDBDQzQwOTIyMDAwOThDNEMgLyogV2ViS2l0Q1NTVHJh
bnNmb3JtVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUExNDE0QjUxM0EwRjA1MDAwMTk5
OTZDIC8qIFdlYktpdEZvbnRGYW1pbHlOYW1lcy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlDNkYw
OTAwRTE0MzI3QjYxMDA2ODU4NDkgLyogV2ViS2l0TXV0YXRpb25PYnNlcnZlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlENzYxM0E1MDE0NzRGMTNGMDBEQjg2MDYgLyogV2ViS2l0TmFtZWRGbG93
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxQzBGRjI0MEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJL
aXRUcmFuc2l0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDRjMzMkUwRjJCOUEy
NTAwNEI2Nzk1IC8qIFdlYkxheWVyLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAppbmRleCA2NmI0YTdmNDMx
ODRiNDAxNmRlNzdkNGEzODM0Yjg5NGU5NmFiYzM5Li44Yjk0ZjY0OTdhYmEwNmFlYzFkM2ZlODgw
MDAzN2VhZmVlNjBjNjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0JpbmRpbmdzQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
QmluZGluZ3NBbGxJbk9uZS5jcHAKQEAgLTEyMCw2ICsxMjAsNyBAQAogI2luY2x1ZGUgIkpTTWVz
c2FnZUV2ZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcCIK
ICNpbmNsdWRlICJKU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwIgorI2luY2x1ZGUgIkpTTXV0
YXRpb25PYnNlcnZlckN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNOYW1lZE5vZGVNYXBDdXN0b20u
Y3BwIgogI2luY2x1ZGUgIkpTTm9kZUN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNOb2RlRmlsdGVy
Q29uZGl0aW9uLmNwcCIKQEAgLTE1OCw3ICsxNTksNiBAQAogI2luY2x1ZGUgIkpTV2ViS2l0QW5p
bWF0aW9uTGlzdEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGVD
dXN0b20uY3BwIgogI2luY2x1ZGUgIkpTV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZUN1c3RvbS5jcHAi
Ci0jaW5jbHVkZSAiSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCIKICNpbmNsdWRl
ICJKU1dlYktpdFBvaW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU1dlYlNvY2tldEN1c3RvbS5j
cHAiCiAjaW5jbHVkZSAiSlNXb3JrZXJDb250ZXh0QmFzZS5jcHAiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmNwcAppbmRleCAwMGJj
MTcwZDJiMzUyMzZlMTg5ZDIzM2U5Yzk0M2JiMjQ5ODViOWQ2Li41NTZjYTVkOGQzMTIyNTI4N2Zj
Mzg1M2UyMTgwYmEwMmQwNzYwNGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5jcHAKQEAgLTI1LDcgKzI1LDcgQEAKIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgotI2lu
Y2x1ZGUgIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIKKyNpbmNsdWRlICJNdXRhdGlvbk9ic2Vy
dmVyLmgiCiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICNpbmNsdWRlICJJREJQZW5k
aW5nVHJhbnNhY3Rpb25Nb25pdG9yLmgiCkBAIC00Miw3ICs0Miw3IEBAIHZvaWQgSlNNYWluVGhy
ZWFkRXhlY1N0YXRlOjpkaWRMZWF2ZVNjcmlwdENvbnRleHQoKQogI2VuZGlmCiAKICNpZiBFTkFC
TEUoTVVUQVRJT05fT0JTRVJWRVJTKQotICAgIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OmRlbGl2
ZXJBbGxNdXRhdGlvbnMoKTsKKyAgICBNdXRhdGlvbk9ic2VydmVyOjpkZWxpdmVyQWxsTXV0YXRp
b25zKCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAKaW5kZXggNDM3NWNlNDE3NDcwZDVlODU3
YWE0NTBkNzNjNWMwMTQzMDIwNzkxNS4uMmQ4ZWVmOTU5OTk0YTQ0ZGMyMjNhZDU4MjRjYmIyYzNi
YzcyN2M0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlv
bkNhbGxiYWNrQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011
dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwCkBAIC0zNCw4ICszNCw4IEBACiAKICNpbmNsdWRlICJK
U011dGF0aW9uQ2FsbGJhY2suaCIKIAorI2luY2x1ZGUgIkpTTXV0YXRpb25PYnNlcnZlci5oIgog
I2luY2x1ZGUgIkpTTXV0YXRpb25SZWNvcmQuaCIKLSNpbmNsdWRlICJKU1dlYktpdE11dGF0aW9u
T2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVk
ZSA8cnVudGltZS9KU0xvY2suaD4KIApAQCAtNDMsNyArNDMsNyBAQCB1c2luZyBuYW1lc3BhY2Ug
SlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWJvb2wgSlNNdXRhdGlvbkNhbGxiYWNrOjpo
YW5kbGVFdmVudChNdXRhdGlvblJlY29yZEFycmF5KiBtdXRhdGlvbnMsIFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXIqIG9ic2VydmVyKQorYm9vbCBKU011dGF0aW9uQ2FsbGJhY2s6OmhhbmRsZUV2ZW50
KE11dGF0aW9uUmVjb3JkQXJyYXkqIG11dGF0aW9ucywgTXV0YXRpb25PYnNlcnZlciogb2JzZXJ2
ZXIpCiB7CiAgICAgaWYgKCFjYW5JbnZva2VDYWxsYmFjaygpKQogICAgICAgICByZXR1cm4gdHJ1
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25PYnNl
cnZlckN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uT2Jz
ZXJ2ZXJDdXN0b20uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjljYzNiNTI0NzBjOTE4ZDQ0MzRiZGQyMDlmNTgy
YTYxMDU2M2QzYTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCkBAIC0wLDAgKzEsMTIyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKKworI2luY2x1ZGUg
IkpTTXV0YXRpb25PYnNlcnZlci5oIgorCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2lu
Y2x1ZGUgIkpTRGljdGlvbmFyeS5oIgorI2luY2x1ZGUgIkpTTXV0YXRpb25DYWxsYmFjay5oIgor
I2luY2x1ZGUgIkpTTm9kZS5oIgorI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKKyNpbmNs
dWRlICJOb2RlLmgiCisjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgorI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CisKK3VzaW5nIG5h
bWVzcGFjZSBKU0M7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBKU011dGF0aW9uT2JzZXJ2ZXJDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNNdXRh
dGlvbk9ic2VydmVyKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRD
b3VudCgpIDwgMSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RF
bm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7CisKKyAgICBKU09iamVjdCogb2JqZWN0ID0gZXhl
Yy0+YXJndW1lbnQoMCkuZ2V0T2JqZWN0KCk7CisgICAgaWYgKCFvYmplY3QpIHsKKyAgICAgICAg
c2V0RE9NRXhjZXB0aW9uKGV4ZWMsIFRZUEVfTUlTTUFUQ0hfRVJSKTsKKyAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICB9CisKKyAgICBKU011dGF0aW9u
T2JzZXJ2ZXJDb25zdHJ1Y3RvcioganNDb25zdHJ1Y3RvciA9IGpzQ2FzdDxKU011dGF0aW9uT2Jz
ZXJ2ZXJDb25zdHJ1Y3Rvcio+KGV4ZWMtPmNhbGxlZSgpKTsKKyAgICBSZWZQdHI8TXV0YXRpb25D
YWxsYmFjaz4gY2FsbGJhY2sgPSBKU011dGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZShvYmplY3QsIGpz
Q29uc3RydWN0b3ItPmdsb2JhbE9iamVjdCgpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGFzT2JqZWN0KHRvSlMoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCksIE11dGF0
aW9uT2JzZXJ2ZXI6OmNyZWF0ZShjYWxsYmFjay5yZWxlYXNlKCkpKSkpOworfQorCitzdHJ1Y3Qg
Qm9vbGVhbk9wdGlvbiB7CisgICAgY29uc3QgY2hhciogbmFtZTsKKyAgICBNdXRhdGlvbk9ic2Vy
dmVyT3B0aW9ucyB2YWx1ZTsKK307CisKK3N0YXRpYyBjb25zdCBCb29sZWFuT3B0aW9uIGJvb2xl
YW5PcHRpb25zW10gPSB7CisgICAgeyAiY2hpbGRMaXN0IiwgTXV0YXRpb25PYnNlcnZlcjo6Q2hp
bGRMaXN0IH0sCisgICAgeyAiYXR0cmlidXRlcyIsIE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0
ZXMgfSwKKyAgICB7ICJjaGFyYWN0ZXJEYXRhIiwgTXV0YXRpb25PYnNlcnZlcjo6Q2hhcmFjdGVy
RGF0YSB9LAorICAgIHsgInN1YnRyZWUiLCBNdXRhdGlvbk9ic2VydmVyOjpTdWJ0cmVlIH0sCisg
ICAgeyAiYXR0cmlidXRlT2xkVmFsdWUiLCBNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVPbGRW
YWx1ZSB9LAorICAgIHsgImNoYXJhY3RlckRhdGFPbGRWYWx1ZSIsIE11dGF0aW9uT2JzZXJ2ZXI6
OkNoYXJhY3RlckRhdGFPbGRWYWx1ZSB9Cit9OworCitzdGF0aWMgY29uc3Qgc2l6ZV90IG51bUJv
b2xlYW5PcHRpb25zID0gc2l6ZW9mKGJvb2xlYW5PcHRpb25zKSAvIHNpemVvZihCb29sZWFuT3B0
aW9uKTsKKworSlNWYWx1ZSBKU011dGF0aW9uT2JzZXJ2ZXI6Om9ic2VydmUoRXhlY1N0YXRlKiBl
eGVjKQoreworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAyKQorICAgICAgICByZXR1
cm4gdGhyb3dFcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7
CisgICAgTm9kZSogdGFyZ2V0ID0gdG9Ob2RlKGV4ZWMtPmFyZ3VtZW50KDApKTsKKyAgICBpZiAo
ZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworCisg
ICAgSlNPYmplY3QqIG9wdGlvbnNPYmplY3QgPSBleGVjLT5hcmd1bWVudCgxKS5nZXRPYmplY3Qo
KTsKKyAgICBpZiAoIW9wdGlvbnNPYmplY3QpIHsKKyAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4
ZWMsIFRZUEVfTUlTTUFUQ0hfRVJSKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Cisg
ICAgfQorCisgICAgSlNEaWN0aW9uYXJ5IGRpY3Rpb25hcnkoZXhlYywgb3B0aW9uc09iamVjdCk7
CisgICAgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgb3B0aW9ucyA9IDA7CisgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IG51bUJvb2xlYW5PcHRpb25zOyArK2kpIHsKKyAgICAgICAgYm9vbCBv
cHRpb24gPSBmYWxzZTsKKyAgICAgICAgaWYgKCFkaWN0aW9uYXJ5LnRyeUdldFByb3BlcnR5KGJv
b2xlYW5PcHRpb25zW2ldLm5hbWUsIG9wdGlvbikpCisgICAgICAgICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKKyAgICAgICAgaWYgKG9wdGlvbikKKyAgICAgICAgICAgIG9wdGlvbnMgfD0gYm9v
bGVhbk9wdGlvbnNbaV0udmFsdWU7CisgICAgfQorCisgICAgSGFzaFNldDxBdG9taWNTdHJpbmc+
IGF0dHJpYnV0ZUZpbHRlcjsKKyAgICBpZiAoIWRpY3Rpb25hcnkudHJ5R2V0UHJvcGVydHkoImF0
dHJpYnV0ZUZpbHRlciIsIGF0dHJpYnV0ZUZpbHRlcikpCisgICAgICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOworICAgIGlmICghYXR0cmlidXRlRmlsdGVyLmlzRW1wdHkoKSkKKyAgICAgICAgb3B0
aW9ucyB8PSBNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVGaWx0ZXI7CisKKyAgICBFeGNlcHRp
b25Db2RlIGVjID0gMDsKKyAgICBpbXBsKCktPm9ic2VydmUodGFyZ2V0LCBvcHRpb25zLCBhdHRy
aWJ1dGVGaWx0ZXIsIGVjKTsKKyAgICBpZiAoZWMpCisgICAgICAgIHNldERPTUV4Y2VwdGlvbihl
eGVjLCBlYyk7CisgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXJD
dXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRNdXRhdGlvbk9i
c2VydmVyQ3VzdG9tLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzlhMjQ2YTE1
OTk0YmEwOTg2NDJiZjUyMmQ4ZDU2YWNiN2QyMWFmOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktp
dE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTIyICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0g
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQot
Ci0jaW5jbHVkZSAiSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCi0KLSNpbmNsdWRlICJFeGNl
cHRpb25Db2RlLmgiCi0jaW5jbHVkZSAiSlNEaWN0aW9uYXJ5LmgiCi0jaW5jbHVkZSAiSlNNdXRh
dGlvbkNhbGxiYWNrLmgiCi0jaW5jbHVkZSAiSlNOb2RlLmgiCi0jaW5jbHVkZSAiTm9kZS5oIgot
I2luY2x1ZGUgIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIKLSNpbmNsdWRlIDxydW50aW1lL0Vy
cm9yLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9BdG9t
aWNTdHJpbmcuaD4KLQotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTV2ViS2l0TXV0YXRpb25PYnNlcnZl
ckNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIoRXhlY1N0YXRl
KiBleGVjKQotewotICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQotICAgICAgICBy
ZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4
ZWMpKTsKLQotICAgIEpTT2JqZWN0KiBvYmplY3QgPSBleGVjLT5hcmd1bWVudCgwKS5nZXRPYmpl
Y3QoKTsKLSAgICBpZiAoIW9iamVjdCkgewotICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywg
VFlQRV9NSVNNQVRDSF9FUlIpOwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwotICAgIH0KLQotICAgIEpTV2ViS2l0TXV0YXRpb25PYnNlcnZlckNvbnN0cnVj
dG9yKiBqc0NvbnN0cnVjdG9yID0ganNDYXN0PEpTV2ViS2l0TXV0YXRpb25PYnNlcnZlckNvbnN0
cnVjdG9yKj4oZXhlYy0+Y2FsbGVlKCkpOwotICAgIFJlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPiBj
YWxsYmFjayA9IEpTTXV0YXRpb25DYWxsYmFjazo6Y3JlYXRlKG9iamVjdCwganNDb25zdHJ1Y3Rv
ci0+Z2xvYmFsT2JqZWN0KCkpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNPYmplY3Qo
dG9KUyhleGVjLCBqc0NvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKSwgV2ViS2l0TXV0YXRpb25P
YnNlcnZlcjo6Y3JlYXRlKGNhbGxiYWNrLnJlbGVhc2UoKSkpKSk7Ci19Ci0KLXN0cnVjdCBCb29s
ZWFuT3B0aW9uIHsKLSAgICBjb25zdCBjaGFyKiBuYW1lOwotICAgIE11dGF0aW9uT2JzZXJ2ZXJP
cHRpb25zIHZhbHVlOwotfTsKLQotc3RhdGljIGNvbnN0IEJvb2xlYW5PcHRpb24gYm9vbGVhbk9w
dGlvbnNbXSA9IHsKLSAgICB7ICJjaGlsZExpc3QiLCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpD
aGlsZExpc3QgfSwKLSAgICB7ICJhdHRyaWJ1dGVzIiwgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6
QXR0cmlidXRlcyB9LAotICAgIHsgImNoYXJhY3RlckRhdGEiLCBXZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyOjpDaGFyYWN0ZXJEYXRhIH0sCi0gICAgeyAic3VidHJlZSIsIFdlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXI6OlN1YnRyZWUgfSwKLSAgICB7ICJhdHRyaWJ1dGVPbGRWYWx1ZSIsIFdlYktpdE11dGF0
aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZU9sZFZhbHVlIH0sCi0gICAgeyAiY2hhcmFjdGVyRGF0YU9s
ZFZhbHVlIiwgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6Q2hhcmFjdGVyRGF0YU9sZFZhbHVlIH0K
LX07Ci0KLXN0YXRpYyBjb25zdCBzaXplX3QgbnVtQm9vbGVhbk9wdGlvbnMgPSBzaXplb2YoYm9v
bGVhbk9wdGlvbnMpIC8gc2l6ZW9mKEJvb2xlYW5PcHRpb24pOwotCi1KU1ZhbHVlIEpTV2ViS2l0
TXV0YXRpb25PYnNlcnZlcjo6b2JzZXJ2ZShFeGVjU3RhdGUqIGV4ZWMpCi17Ci0gICAgaWYgKGV4
ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDIpCi0gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMs
IGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBOb2RlKiB0YXJnZXQg
PSB0b05vZGUoZXhlYy0+YXJndW1lbnQoMCkpOwotICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24o
KSkKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0KLSAgICBKU09iamVjdCogb3B0aW9u
c09iamVjdCA9IGV4ZWMtPmFyZ3VtZW50KDEpLmdldE9iamVjdCgpOwotICAgIGlmICghb3B0aW9u
c09iamVjdCkgewotICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgVFlQRV9NSVNNQVRDSF9F
UlIpOwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci0KLSAgICBKU0RpY3Rp
b25hcnkgZGljdGlvbmFyeShleGVjLCBvcHRpb25zT2JqZWN0KTsKLSAgICBNdXRhdGlvbk9ic2Vy
dmVyT3B0aW9ucyBvcHRpb25zID0gMDsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVt
Qm9vbGVhbk9wdGlvbnM7ICsraSkgewotICAgICAgICBib29sIG9wdGlvbiA9IGZhbHNlOwotICAg
ICAgICBpZiAoIWRpY3Rpb25hcnkudHJ5R2V0UHJvcGVydHkoYm9vbGVhbk9wdGlvbnNbaV0ubmFt
ZSwgb3B0aW9uKSkKLSAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgICAgICBp
ZiAob3B0aW9uKQotICAgICAgICAgICAgb3B0aW9ucyB8PSBib29sZWFuT3B0aW9uc1tpXS52YWx1
ZTsKLSAgICB9Ci0KLSAgICBIYXNoU2V0PEF0b21pY1N0cmluZz4gYXR0cmlidXRlRmlsdGVyOwot
ICAgIGlmICghZGljdGlvbmFyeS50cnlHZXRQcm9wZXJ0eSgiYXR0cmlidXRlRmlsdGVyIiwgYXR0
cmlidXRlRmlsdGVyKSkKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgaWYgKCFh
dHRyaWJ1dGVGaWx0ZXIuaXNFbXB0eSgpKQotICAgICAgICBvcHRpb25zIHw9IFdlYktpdE11dGF0
aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZUZpbHRlcjsKLQotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAw
OwotICAgIGltcGwoKS0+b2JzZXJ2ZSh0YXJnZXQsIG9wdGlvbnMsIGF0dHJpYnV0ZUZpbHRlciwg
ZWMpOwotICAgIGlmIChlYykKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKLSAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0j
ZW5kaWYgLy8gRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UmVjdXJzaW9uU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhSZWN1cnNpb25TY29wZS5jcHAKaW5kZXggOTJiZTcyMGIxNGM2OWYwNWY2
ZWVmNmE5NmMyNjgyYzRiM2NmY2Y2NS4uYzVjYmM5YzE1NTE0MDc3ODkwNWU0MjI4MGUxZmRiMDI0
MDIwMzA4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhSZWN1cnNp
b25TY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhSZWN1cnNpb25T
Y29wZS5jcHAKQEAgLTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlICJWOFJlY3Vyc2lvblNjb3BlLmgi
CiAKICNpbmNsdWRlICJJREJQZW5kaW5nVHJhbnNhY3Rpb25Nb25pdG9yLmgiCi0jaW5jbHVkZSAi
V2ViS2l0TXV0YXRpb25PYnNlcnZlci5oIgorI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00OSw3ICs0OSw3IEBAIHZvaWQgVjhSZWN1cnNp
b25TY29wZTo6ZGlkTGVhdmVTY3JpcHRDb250ZXh0KCkKIAogI2lmIEVOQUJMRShNVVRBVElPTl9P
QlNFUlZFUlMpCiAgICAgaWYgKG1faXNEb2N1bWVudENvbnRleHQpCi0gICAgICAgIFdlYktpdE11
dGF0aW9uT2JzZXJ2ZXI6OmRlbGl2ZXJBbGxNdXRhdGlvbnMoKTsKKyAgICAgICAgTXV0YXRpb25P
YnNlcnZlcjo6ZGVsaXZlckFsbE11dGF0aW9ucygpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uQ2FsbGJhY2tDdXN0
b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25DYWxs
YmFja0N1c3RvbS5jcHAKaW5kZXggYmZmYmU3NDAwZmRhMmNhNThkMmY5Yjc3MDg2ZjZjNmJiZmEw
NTI3Zi4uNzE0ZmRhMjljOWExYjIzMDU3ZmQ0YWZkMjFkMjE0ZmU5NWEyYTVjYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25DYWxsYmFja0N1
c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRp
b25DYWxsYmFja0N1c3RvbS5jcHAKQEAgLTM3LDkgKzM3LDkgQEAKICNpbmNsdWRlICJTY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCiAjaW5jbHVkZSAiVjhD
dXN0b21Wb2lkQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJWOE11dGF0aW9uT2JzZXJ2ZXIuaCIKICNp
bmNsdWRlICJWOE11dGF0aW9uUmVjb3JkLmgiCiAjaW5jbHVkZSAiVjhQcm94eS5oIgotI2luY2x1
ZGUgIlY4V2ViS2l0TXV0YXRpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25z
Lmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CkBAIC00Nyw3ICs0Nyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotYm9vbCBWOE11dGF0
aW9uQ2FsbGJhY2s6OmhhbmRsZUV2ZW50KE11dGF0aW9uUmVjb3JkQXJyYXkqIG11dGF0aW9ucywg
V2ViS2l0TXV0YXRpb25PYnNlcnZlciogb2JzZXJ2ZXIpCitib29sIFY4TXV0YXRpb25DYWxsYmFj
azo6aGFuZGxlRXZlbnQoTXV0YXRpb25SZWNvcmRBcnJheSogbXV0YXRpb25zLCBNdXRhdGlvbk9i
c2VydmVyKiBvYnNlcnZlcikKIHsKICAgICBBU1NFUlQobXV0YXRpb25zKTsKICAgICBpZiAoIW11
dGF0aW9ucykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGJhNTlkNWQ4
ZDA5ZGJlYmI4NmZjMzhjN2YwM2IxOGI3NDU2MmNiOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3Bw
CkBAIC0wLDAgKzEsMTIxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1VVEFU
SU9OX09CU0VSVkVSUykKKworI2luY2x1ZGUgIlY4TXV0YXRpb25PYnNlcnZlci5oIgorCisjaW5j
bHVkZSAiRGljdGlvbmFyeS5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRl
ICJNdXRhdGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCisjaW5jbHVkZSAi
VjhCaW5kaW5nTWFjcm9zLmgiCisjaW5jbHVkZSAiVjhET01XcmFwcGVyLmgiCisjaW5jbHVkZSAi
VjhNdXRhdGlvbkNhbGxiYWNrLmgiCisjaW5jbHVkZSAiVjhOb2RlLmgiCisjaW5jbHVkZSAiVjhQ
cm94eS5oIgorI2luY2x1ZGUgIlY4VXRpbGl0aWVzLmgiCisKKyNpbmNsdWRlIDx3dGYvSGFzaFNl
dC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOE11dGF0aW9uT2JzZXJ2ZXI6OmNvbnN0
cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3sKKyAgICBJTkNfU1RB
VFMoIkRPTS5NdXRhdGlvbk9ic2VydmVyLkNvbnN0cnVjdG9yIik7CisKKyAgICBpZiAoIWFyZ3Mu
SXNDb25zdHJ1Y3RDYWxsKCkpCisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd1R5cGVFcnJv
cigiRE9NIG9iamVjdCBjb25zdHJ1Y3RvciBjYW5ub3QgYmUgY2FsbGVkIGFzIGEgZnVuY3Rpb24u
IiwgYXJncy5HZXRJc29sYXRlKCkpOworCisgICAgaWYgKENvbnN0cnVjdG9yTW9kZTo6Y3VycmVu
dCgpID09IENvbnN0cnVjdG9yTW9kZTo6V3JhcEV4aXN0aW5nT2JqZWN0KQorICAgICAgICByZXR1
cm4gYXJncy5Ib2xkZXIoKTsKKworICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKKyAgICAgICAg
cmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29s
YXRlKCkpOworCisgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gYXJnID0gYXJnc1swXTsKKyAgICBp
ZiAoIWFyZy0+SXNPYmplY3QoKSkKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoVFlQRV9NSVNN
QVRDSF9FUlIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQgPSBnZXRTY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CisgICAgaWYgKCFjb250
ZXh0KQorICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dFcnJvcihWOFByb3h5OjpSZWZlcmVu
Y2VFcnJvciwgIk11dGF0aW9uT2JzZXJ2ZXIgY29uc3RydWN0b3IncyBhc3NvY2lhdGVkIGZyYW1l
IHVuYXZhaWxhYmxlIiwgYXJncy5HZXRJc29sYXRlKCkpOworCisgICAgUmVmUHRyPE11dGF0aW9u
Q2FsbGJhY2s+IGNhbGxiYWNrID0gVjhNdXRhdGlvbkNhbGxiYWNrOjpjcmVhdGUoYXJnLCBjb250
ZXh0KTsKKyAgICBSZWZQdHI8TXV0YXRpb25PYnNlcnZlcj4gb2JzZXJ2ZXIgPSBNdXRhdGlvbk9i
c2VydmVyOjpjcmVhdGUoY2FsbGJhY2sucmVsZWFzZSgpKTsKKworICAgIFY4RE9NV3JhcHBlcjo6
c2V0RE9NV3JhcHBlcihhcmdzLkhvbGRlcigpLCAmaW5mbywgb2JzZXJ2ZXIuZ2V0KCkpOworICAg
IFY4RE9NV3JhcHBlcjo6c2V0SlNXcmFwcGVyRm9yRE9NT2JqZWN0KG9ic2VydmVyLnJlbGVhc2Uo
KSwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD46Ok5ldyhhcmdzLkhvbGRlcigpKSk7CisgICAg
cmV0dXJuIGFyZ3MuSG9sZGVyKCk7Cit9CisKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOE11dGF0
aW9uT2JzZXJ2ZXI6Om9ic2VydmVDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQor
eworICAgIElOQ19TVEFUUygiRE9NLk11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSIpOworICAgIGlm
IChhcmdzLkxlbmd0aCgpIDwgMikKKyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5v
dWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOworICAgIE11dGF0aW9uT2JzZXJ2
ZXIqIGltcCA9IFY4TXV0YXRpb25PYnNlcnZlcjo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Cisg
ICAgRVhDRVBUSU9OX0JMT0NLKE5vZGUqLCB0YXJnZXQsIFY4Tm9kZTo6SGFzSW5zdGFuY2UoYXJn
c1swXSkgPyBWOE5vZGU6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoYXJn
c1swXSkpIDogMCk7CisKKyAgICBpZiAoIWFyZ3NbMV0tPklzT2JqZWN0KCkpCisgICAgICAgIHJl
dHVybiB0aHJvd0Vycm9yKFRZUEVfTUlTTUFUQ0hfRVJSLCBhcmdzLkdldElzb2xhdGUoKSk7CisK
KyAgICBEaWN0aW9uYXJ5IG9wdGlvbnNPYmplY3QoYXJnc1sxXSk7CisgICAgdW5zaWduZWQgb3B0
aW9ucyA9IDA7CisgICAgSGFzaFNldDxBdG9taWNTdHJpbmc+IGF0dHJpYnV0ZUZpbHRlcjsKKyAg
ICBib29sIG9wdGlvbjsKKyAgICBpZiAob3B0aW9uc09iamVjdC5nZXQoImNoaWxkTGlzdCIsIG9w
dGlvbikgJiYgb3B0aW9uKQorICAgICAgICBvcHRpb25zIHw9IE11dGF0aW9uT2JzZXJ2ZXI6OkNo
aWxkTGlzdDsKKyAgICBpZiAob3B0aW9uc09iamVjdC5nZXQoImF0dHJpYnV0ZXMiLCBvcHRpb24p
ICYmIG9wdGlvbikKKyAgICAgICAgb3B0aW9ucyB8PSBNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1
dGVzOworICAgIGlmIChvcHRpb25zT2JqZWN0LmdldCgiYXR0cmlidXRlRmlsdGVyIiwgYXR0cmli
dXRlRmlsdGVyKSkKKyAgICAgICAgb3B0aW9ucyB8PSBNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1
dGVGaWx0ZXI7CisgICAgaWYgKG9wdGlvbnNPYmplY3QuZ2V0KCJjaGFyYWN0ZXJEYXRhIiwgb3B0
aW9uKSAmJiBvcHRpb24pCisgICAgICAgIG9wdGlvbnMgfD0gTXV0YXRpb25PYnNlcnZlcjo6Q2hh
cmFjdGVyRGF0YTsKKyAgICBpZiAob3B0aW9uc09iamVjdC5nZXQoInN1YnRyZWUiLCBvcHRpb24p
ICYmIG9wdGlvbikKKyAgICAgICAgb3B0aW9ucyB8PSBNdXRhdGlvbk9ic2VydmVyOjpTdWJ0cmVl
OworICAgIGlmIChvcHRpb25zT2JqZWN0LmdldCgiYXR0cmlidXRlT2xkVmFsdWUiLCBvcHRpb24p
ICYmIG9wdGlvbikKKyAgICAgICAgb3B0aW9ucyB8PSBNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1
dGVPbGRWYWx1ZTsKKyAgICBpZiAob3B0aW9uc09iamVjdC5nZXQoImNoYXJhY3RlckRhdGFPbGRW
YWx1ZSIsIG9wdGlvbikgJiYgb3B0aW9uKQorICAgICAgICBvcHRpb25zIHw9IE11dGF0aW9uT2Jz
ZXJ2ZXI6OkNoYXJhY3RlckRhdGFPbGRWYWx1ZTsKKworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAw
OworICAgIGltcC0+b2JzZXJ2ZSh0YXJnZXQsIG9wdGlvbnMsIGF0dHJpYnV0ZUZpbHRlciwgZWMp
OworICAgIGlmIChlYykKKyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihl
YywgYXJncy5HZXRJc29sYXRlKCkpOworICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4o
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1VVEFU
SU9OX09CU0VSVkVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOFdlYktpdE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI0ZWY1ZjJlY2QyMTc5NjQwNGM5YzM0MjRiMjRm
NWRlNjM5MDk0NDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0TXV0YXRpb25PYnNl
cnZlckN1c3RvbS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMjEgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmli
dXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
Ci0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLQotI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCi0KLSNpbmNsdWRlICJW
OFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIKLQotI2luY2x1ZGUgIkRpY3Rpb25hcnkuaCIKLSNp
bmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCi0jaW5jbHVkZSAiVjhCaW5kaW5nLmgiCi0jaW5jbHVk
ZSAiVjhCaW5kaW5nTWFjcm9zLmgiCi0jaW5jbHVkZSAiVjhET01XcmFwcGVyLmgiCi0jaW5jbHVk
ZSAiVjhNdXRhdGlvbkNhbGxiYWNrLmgiCi0jaW5jbHVkZSAiVjhOb2RlLmgiCi0jaW5jbHVkZSAi
VjhQcm94eS5oIgotI2luY2x1ZGUgIlY4VXRpbGl0aWVzLmgiCi0jaW5jbHVkZSAiV2ViS2l0TXV0
YXRpb25PYnNlcnZlci5oIgotCi0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3
dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi12ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gVjhXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpjb25zdHJ1Y3RvckNhbGxi
YWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCi17Ci0gICAgSU5DX1NUQVRTKCJET00uV2Vi
S2l0TXV0YXRpb25PYnNlcnZlci5Db25zdHJ1Y3RvciIpOwotCi0gICAgaWYgKCFhcmdzLklzQ29u
c3RydWN0Q2FsbCgpKQotICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoIkRP
TSBvYmplY3QgY29uc3RydWN0b3IgY2Fubm90IGJlIGNhbGxlZCBhcyBhIGZ1bmN0aW9uLiIsIGFy
Z3MuR2V0SXNvbGF0ZSgpKTsKLQotICAgIGlmIChDb25zdHJ1Y3Rvck1vZGU6OmN1cnJlbnQoKSA9
PSBDb25zdHJ1Y3Rvck1vZGU6OldyYXBFeGlzdGluZ09iamVjdCkKLSAgICAgICAgcmV0dXJuIGFy
Z3MuSG9sZGVyKCk7Ci0KLSAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCi0gICAgICAgIHJldHVy
biBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgp
KTsKLQotICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGFyZyA9IGFyZ3NbMF07Ci0gICAgaWYgKCFh
cmctPklzT2JqZWN0KCkpCi0gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKFRZUEVfTUlTTUFUQ0hf
RVJSLCBhcmdzLkdldElzb2xhdGUoKSk7Ci0KLSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0ID0gZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwotICAgIGlmICghY29udGV4dCkK
LSAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93RXJyb3IoVjhQcm94eTo6UmVmZXJlbmNlRXJy
b3IsICJXZWJLaXRNdXRhdGlvbk9ic2VydmVyIGNvbnN0cnVjdG9yJ3MgYXNzb2NpYXRlZCBmcmFt
ZSB1bmF2YWlsYWJsZSIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKLQotICAgIFJlZlB0cjxNdXRhdGlv
bkNhbGxiYWNrPiBjYWxsYmFjayA9IFY4TXV0YXRpb25DYWxsYmFjazo6Y3JlYXRlKGFyZywgY29u
dGV4dCk7Ci0gICAgUmVmUHRyPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI+IG9ic2VydmVyID0gV2Vi
S2l0TXV0YXRpb25PYnNlcnZlcjo6Y3JlYXRlKGNhbGxiYWNrLnJlbGVhc2UoKSk7Ci0KLSAgICBW
OERPTVdyYXBwZXI6OnNldERPTVdyYXBwZXIoYXJncy5Ib2xkZXIoKSwgJmluZm8sIG9ic2VydmVy
LmdldCgpKTsKLSAgICBWOERPTVdyYXBwZXI6OnNldEpTV3JhcHBlckZvckRPTU9iamVjdChvYnNl
cnZlci5yZWxlYXNlKCksIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+OjpOZXcoYXJncy5Ib2xk
ZXIoKSkpOwotICAgIHJldHVybiBhcmdzLkhvbGRlcigpOwotfQotCi12ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gVjhXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpvYnNlcnZlQ2FsbGJhY2soY29uc3Qgdjg6
OkFyZ3VtZW50cyYgYXJncykKLXsKLSAgICBJTkNfU1RBVFMoIkRPTS5XZWJLaXRNdXRhdGlvbk9i
c2VydmVyLm9ic2VydmUiKTsKLSAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDIpCi0gICAgICAgIHJl
dHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0
ZSgpKTsKLSAgICBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKiBpbXAgPSBWOFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXI6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIEVYQ0VQVElPTl9CTE9DSyhO
b2RlKiwgdGFyZ2V0LCBWOE5vZGU6Okhhc0luc3RhbmNlKGFyZ3NbMF0pID8gVjhOb2RlOjp0b05h
dGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGFyZ3NbMF0pKSA6IDApOwotCi0gICAg
aWYgKCFhcmdzWzFdLT5Jc09iamVjdCgpKQotICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihUWVBF
X01JU01BVENIX0VSUiwgYXJncy5HZXRJc29sYXRlKCkpOwotCi0gICAgRGljdGlvbmFyeSBvcHRp
b25zT2JqZWN0KGFyZ3NbMV0pOwotICAgIHVuc2lnbmVkIG9wdGlvbnMgPSAwOwotICAgIEhhc2hT
ZXQ8QXRvbWljU3RyaW5nPiBhdHRyaWJ1dGVGaWx0ZXI7Ci0gICAgYm9vbCBvcHRpb247Ci0gICAg
aWYgKG9wdGlvbnNPYmplY3QuZ2V0KCJjaGlsZExpc3QiLCBvcHRpb24pICYmIG9wdGlvbikKLSAg
ICAgICAgb3B0aW9ucyB8PSBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpDaGlsZExpc3Q7Ci0gICAg
aWYgKG9wdGlvbnNPYmplY3QuZ2V0KCJhdHRyaWJ1dGVzIiwgb3B0aW9uKSAmJiBvcHRpb24pCi0g
ICAgICAgIG9wdGlvbnMgfD0gV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRlczsKLSAg
ICBpZiAob3B0aW9uc09iamVjdC5nZXQoImF0dHJpYnV0ZUZpbHRlciIsIGF0dHJpYnV0ZUZpbHRl
cikpCi0gICAgICAgIG9wdGlvbnMgfD0gV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRl
RmlsdGVyOwotICAgIGlmIChvcHRpb25zT2JqZWN0LmdldCgiY2hhcmFjdGVyRGF0YSIsIG9wdGlv
bikgJiYgb3B0aW9uKQotICAgICAgICBvcHRpb25zIHw9IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6
OkNoYXJhY3RlckRhdGE7Ci0gICAgaWYgKG9wdGlvbnNPYmplY3QuZ2V0KCJzdWJ0cmVlIiwgb3B0
aW9uKSAmJiBvcHRpb24pCi0gICAgICAgIG9wdGlvbnMgfD0gV2ViS2l0TXV0YXRpb25PYnNlcnZl
cjo6U3VidHJlZTsKLSAgICBpZiAob3B0aW9uc09iamVjdC5nZXQoImF0dHJpYnV0ZU9sZFZhbHVl
Iiwgb3B0aW9uKSAmJiBvcHRpb24pCi0gICAgICAgIG9wdGlvbnMgfD0gV2ViS2l0TXV0YXRpb25P
YnNlcnZlcjo6QXR0cmlidXRlT2xkVmFsdWU7Ci0gICAgaWYgKG9wdGlvbnNPYmplY3QuZ2V0KCJj
aGFyYWN0ZXJEYXRhT2xkVmFsdWUiLCBvcHRpb24pICYmIG9wdGlvbikKLSAgICAgICAgb3B0aW9u
cyB8PSBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhT2xkVmFsdWU7Ci0KLSAg
ICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpbXAtPm9ic2VydmUodGFyZ2V0LCBvcHRpb25z
LCBhdHRyaWJ1dGVGaWx0ZXIsIGVjKTsKLSAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiBWOFBy
b3h5OjpzZXRET01FeGNlcHRpb24oZWMsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKLSAgICByZXR1cm4g
djg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQot
I2VuZGlmIC8vIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hhcmFj
dGVyRGF0YS5jcHAKaW5kZXggNzYxOThmYmU1ZDgwMTZmMTkwZWM4Mzc1YjAwNTg5MTNjYjNkN2Q3
OS4uMzM5NDAzODUxM2RhZTk5MTcyNDU1OWI4MTNlM2NkZGJkYzNjM2Y4YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9DaGFyYWN0ZXJEYXRhLmNwcApAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIk5vZGVS
ZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1ZGUgIlRl
eHRCcmVha0l0ZXJhdG9yLmgiCi0jaW5jbHVkZSAiV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oIgog
CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Q2hpbGRMaXN0TXV0YXRpb25TY29wZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0NoaWxkTGlzdE11
dGF0aW9uU2NvcGUuaAppbmRleCA2ZGQ1MjM2NDBiNjFmMDZmM2E1M2JhNTc1YjVjYWVkOTIzN2M0
MDVmLi5iY2UyNjc1MWMwZjQ4NjJkMGM0YTUzOTBmY2M1YzNmYWVkNGM1MDAyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmgKQEAgLTM0LDggKzM0LDggQEAK
ICNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
KyNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiTm9kZS5oIgotI2luY2x1
ZGUgIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgog
I2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KQEAg
LTQ2LDcgKzQ2LDcgQEAgY2xhc3MgQ2hpbGRMaXN0TXV0YXRpb25TY29wZSB7CiAgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoQ2hpbGRMaXN0TXV0YXRpb25TY29wZSk7CiBwdWJsaWM6CiAgICAgQ2hp
bGRMaXN0TXV0YXRpb25TY29wZShOb2RlKiB0YXJnZXQpCi0gICAgICAgIDogbV90YXJnZXQodGFy
Z2V0LT5kb2N1bWVudCgpLT5oYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShXZWJLaXRNdXRhdGlv
bk9ic2VydmVyOjpDaGlsZExpc3QpID8gdGFyZ2V0IDogMCkKKyAgICAgICAgOiBtX3RhcmdldCh0
YXJnZXQtPmRvY3VtZW50KCktPmhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKE11dGF0aW9uT2Jz
ZXJ2ZXI6OkNoaWxkTGlzdCkgPyB0YXJnZXQgOiAwKQogICAgIHsKICAgICAgICAgaWYgKG1fdGFy
Z2V0KQogICAgICAgICAgICAgTXV0YXRpb25BY2N1bXVsYXRpb25Sb3V0ZXI6Omluc3RhbmNlKCkt
PmluY3JlbWVudFNjb3BpbmdMZXZlbChtX3RhcmdldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRE9NQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25l
LmNwcAppbmRleCAxNDhmYzNlYzk4MmM5OGY2ZmJkMjQ5YmNiYmNlNTE5M2JjM2I3OWRlLi40NWRm
MGVlZjk4MjI4MDM5NzQ4MmY2ZTVjYTZhN2ZmYjM2ZjRlMjU0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01B
bGxJbk9uZS5jcHAKQEAgLTkyLDYgKzkyLDcgQEAKICNpbmNsdWRlICJNb3VzZUV2ZW50LmNwcCIK
ICNpbmNsdWRlICJNb3VzZVJlbGF0ZWRFdmVudC5jcHAiCiAjaW5jbHVkZSAiTXV0YXRpb25FdmVu
dC5jcHAiCisjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlci5jcHAiCiAjaW5jbHVkZSAiTXV0YXRp
b25PYnNlcnZlckludGVyZXN0R3JvdXAuY3BwIgogI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXJS
ZWdpc3RyYXRpb24uY3BwIgogI2luY2x1ZGUgIk11dGF0aW9uUmVjb3JkLmNwcCIKQEAgLTE0Miw3
ICsxNDMsNiBAQAogI2luY2x1ZGUgIlVzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yLmNwcCIKICNp
bmNsdWRlICJWaWV3cG9ydEFyZ3VtZW50cy5jcHAiCiAjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9u
RXZlbnQuY3BwIgotI2luY2x1ZGUgIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIuY3BwIgogI2luY2x1
ZGUgIldlYktpdE5hbWVkRmxvdy5jcHAiCiAjaW5jbHVkZSAiV2ViS2l0VHJhbnNpdGlvbkV2ZW50
LmNwcCIKICNpbmNsdWRlICJXaGVlbEV2ZW50LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXgg
OTNlMzA0MTJlZWZmZTNiNmRjZTkwMzY2ZDU0MTQwM2EyNzliNDJhMC4uNjI0ODk4OTM1MDM3OTQ4
ZjI2Njc2ZWJhMTNkZDIxMTcxZDU5Mjg3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTM4LDYg
KzM4LDcgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JDb3VudGVycy5oIgogI2luY2x1ZGUgIkludFJl
Y3QuaCIKICNpbmNsdWRlICJMYXlvdXRUeXBlcy5oIgorI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2
ZXIuaCIKICNpbmNsdWRlICJQYWdlVmlzaWJpbGl0eVN0YXRlLmgiCiAjaW5jbHVkZSAiUGxhdGZv
cm1TY3JlZW4uaCIKICNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCkBAIC00Nyw3ICs0OCw2IEBA
CiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlICJUcmVlU2NvcGUuaCIKICNpbmNsdWRlICJW
aWV3cG9ydEFyZ3VtZW50cy5oIgotI2luY2x1ZGUgIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIK
ICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvRml4ZWRBcnJheS5oPgogI2lu
Y2x1ZGUgPHd0Zi9Pd25QdHIuaD4KQEAgLTc3MCw3ICs3NzAsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBhZGRMaXN0ZW5lclR5cGVJZk5lZWRlZChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSk7
CiAKICNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQotICAgIGJvb2wgaGFzTXV0YXRpb25P
YnNlcnZlcnNPZlR5cGUoV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6TXV0YXRpb25UeXBlIHR5cGUp
IGNvbnN0CisgICAgYm9vbCBoYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2Vy
dmVyOjpNdXRhdGlvblR5cGUgdHlwZSkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX211
dGF0aW9uT2JzZXJ2ZXJUeXBlcyAmIHR5cGU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmlu
ZGV4IDAwNTI2NGNlZDA1MmFmNjlkZjUyOGRiNjVhYThjNjBjNzVkNzFmNGQuLmEwZTFiZDg4ZTBm
NzMzYTU5NGNlOTIxMTI4OWIwZDFiYTc2ODIyYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAg
LTY2LDcgKzY2LDYgQEAKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiVGV4
dC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgotI2luY2x1ZGUgIldlYktpdE11dGF0aW9u
T2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJXZWJLaXRBbmltYXRpb25MaXN0LmgiCiAjaW5jbHVkZSAi
WE1MTlNOYW1lcy5oIgogI2luY2x1ZGUgIlhNTE5hbWVzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTXV0YXRpb25DYWxsYmFjay5oIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0
aW9uQ2FsbGJhY2suaAppbmRleCA4MDczOWM4OGFkNzhiMTMxNTk5MmQ4ZjY2NmQ5MGIyNDBhZTdl
YWQ5Li4xMTkxOTdhYmUzNGIxZGE5MDRkNDIyYmJmOGUwZjFmNzdlNzc2ZGYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25DYWxsYmFjay5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9NdXRhdGlvbkNhbGxiYWNrLmgKQEAgLTQwLDcgKzQwLDcgQEAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgTXV0YXRpb25SZWNvcmQ7Ci1jbGFzcyBXZWJLaXRNdXRhdGlvbk9i
c2VydmVyOworY2xhc3MgTXV0YXRpb25PYnNlcnZlcjsKIAogdHlwZWRlZiBWZWN0b3I8UmVmUHRy
PE11dGF0aW9uUmVjb3JkPiA+IE11dGF0aW9uUmVjb3JkQXJyYXk7CiAKQEAgLTQ4LDcgKzQ4LDcg
QEAgY2xhc3MgTXV0YXRpb25DYWxsYmFjayA6IHB1YmxpYyBSZWZDb3VudGVkPE11dGF0aW9uQ2Fs
bGJhY2s+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5NdXRhdGlvbkNhbGxiYWNrKCkgeyB9CiAK
LSAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlRXZlbnQoTXV0YXRpb25SZWNvcmRBcnJheSosIFdlYktp
dE11dGF0aW9uT2JzZXJ2ZXIqKSA9IDA7CisgICAgdmlydHVhbCBib29sIGhhbmRsZUV2ZW50KE11
dGF0aW9uUmVjb3JkQXJyYXkqLCBNdXRhdGlvbk9ic2VydmVyKikgPSAwOwogfTsKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uQ2FsbGJhY2suaWRsIGIvU291cmNl
L1dlYkNvcmUvZG9tL011dGF0aW9uQ2FsbGJhY2suaWRsCmluZGV4IDE2MzgxNzE0YzgwOWVhN2Nh
NDc4NGM2YjNiMDMxMWI4OTc5ZjgxNzUuLjJhZWNkOWJlOWU0MWRlNGYzMmU0NmY5ZDA1YjBlYmYy
Y2U0ODUwZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbkNhbGxiYWNr
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25DYWxsYmFjay5pZGwKQEAgLTMz
LDYgKzMzLDYgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBDb25kaXRpb25hbD1NVVRBVElPTl9P
QlNFUlZFUlMsCiAgICAgICAgIENhbGxiYWNrCiAgICAgXSBNdXRhdGlvbkNhbGxiYWNrIHsKLSAg
ICAgICAgW0N1c3RvbV0gYm9vbGVhbiBoYW5kbGVFdmVudChpbiBNdXRhdGlvblJlY29yZEFycmF5
IG11dGF0aW9ucywgaW4gV2ViS2l0TXV0YXRpb25PYnNlcnZlciBvYnNlcnZlcik7CisgICAgICAg
IFtDdXN0b21dIGJvb2xlYW4gaGFuZGxlRXZlbnQoaW4gTXV0YXRpb25SZWNvcmRBcnJheSBtdXRh
dGlvbnMsIGluIE11dGF0aW9uT2JzZXJ2ZXIgb2JzZXJ2ZXIpOwogICAgIH07CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTNhNzU4ZGZlMTFmNWIx
MjBhNzg5MTYwMzJmNTAyMTAwNTJjMTM3ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmNwcApAQCAtMCwwICsxLDE5NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmli
dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKworI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCisKKyNpbmNsdWRlICJN
dXRhdGlvbk9ic2VydmVyLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkV4
Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJNdXRhdGlvbkNhbGxiYWNrLmgiCisjaW5jbHVkZSAi
TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5oIgorI2luY2x1ZGUgIk11dGF0aW9uUmVjb3Jk
LmgiCisjaW5jbHVkZSAiTm9kZS5oIgorI2luY2x1ZGUgPGFsZ29yaXRobT4KKyNpbmNsdWRlIDx3
dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyB1bnNpZ25lZCBzX29i
c2VydmVyUHJpb3JpdHkgPSAwOworCitzdHJ1Y3QgTXV0YXRpb25PYnNlcnZlcjo6T2JzZXJ2ZXJM
ZXNzVGhhbiB7CisgICAgYm9vbCBvcGVyYXRvcigpKGNvbnN0IFJlZlB0cjxNdXRhdGlvbk9ic2Vy
dmVyPiYgbGhzLCBjb25zdCBSZWZQdHI8TXV0YXRpb25PYnNlcnZlcj4mIHJocykKKyAgICB7Cisg
ICAgICAgIHJldHVybiBsaHMtPm1fcHJpb3JpdHkgPCByaHMtPm1fcHJpb3JpdHk7CisgICAgfQor
fTsKKworUGFzc1JlZlB0cjxNdXRhdGlvbk9ic2VydmVyPiBNdXRhdGlvbk9ic2VydmVyOjpjcmVh
dGUoUGFzc1JlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPiBjYWxsYmFjaykKK3sKKyAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgTXV0YXRpb25PYnNlcnZl
cihjYWxsYmFjaykpOworfQorCitNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvbk9ic2VydmVyKFBh
c3NSZWZQdHI8TXV0YXRpb25DYWxsYmFjaz4gY2FsbGJhY2spCisgICAgOiBtX2NhbGxiYWNrKGNh
bGxiYWNrKQorICAgICwgbV9wcmlvcml0eShzX29ic2VydmVyUHJpb3JpdHkrKykKK3sKK30KKwor
TXV0YXRpb25PYnNlcnZlcjo6fk11dGF0aW9uT2JzZXJ2ZXIoKQoreworICAgIEFTU0VSVChtX3Jl
Z2lzdHJhdGlvbnMuaXNFbXB0eSgpKTsKK30KKworYm9vbCBNdXRhdGlvbk9ic2VydmVyOjp2YWxp
ZGF0ZU9wdGlvbnMoTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgb3B0aW9ucykKK3sKKyAgICByZXR1
cm4gKG9wdGlvbnMgJiAoQXR0cmlidXRlcyB8IENoYXJhY3RlckRhdGEgfCBDaGlsZExpc3QpKQor
ICAgICAgICAmJiAoKG9wdGlvbnMgJiBBdHRyaWJ1dGVzKSB8fCAhKG9wdGlvbnMgJiBBdHRyaWJ1
dGVPbGRWYWx1ZSkpCisgICAgICAgICYmICgob3B0aW9ucyAmIEF0dHJpYnV0ZXMpIHx8ICEob3B0
aW9ucyAmIEF0dHJpYnV0ZUZpbHRlcikpCisgICAgICAgICYmICgob3B0aW9ucyAmIENoYXJhY3Rl
ckRhdGEpIHx8ICEob3B0aW9ucyAmIENoYXJhY3RlckRhdGFPbGRWYWx1ZSkpOworfQorCit2b2lk
IE11dGF0aW9uT2JzZXJ2ZXI6Om9ic2VydmUoTm9kZSogbm9kZSwgTXV0YXRpb25PYnNlcnZlck9w
dGlvbnMgb3B0aW9ucywgY29uc3QgSGFzaFNldDxBdG9taWNTdHJpbmc+JiBhdHRyaWJ1dGVGaWx0
ZXIsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghbm9kZSkgeworICAgICAgICBlYyA9
IE5PVF9GT1VORF9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIXZhbGlk
YXRlT3B0aW9ucyhvcHRpb25zKSkgeworICAgICAgICAvLyBGSVhNRTogUmV2aXNpdCB0aGlzIG9u
Y2UgdGhlIHNwZWMgc3BlY2lmaWVzIHRoZSBleGNlcHRpb24gdHlwZTsgU1lOVEFYX0VSUiBtYXkg
bm90IGJlIGFwcHJvcHJpYXRlLgorICAgICAgICBlYyA9IFNZTlRBWF9FUlI7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKiByZWdpc3Ry
YXRpb24gPSBub2RlLT5yZWdpc3Rlck11dGF0aW9uT2JzZXJ2ZXIodGhpcyk7CisgICAgcmVnaXN0
cmF0aW9uLT5yZXNldE9ic2VydmF0aW9uKG9wdGlvbnMsIGF0dHJpYnV0ZUZpbHRlcik7CisKKyAg
ICBub2RlLT5kb2N1bWVudCgpLT5hZGRNdXRhdGlvbk9ic2VydmVyVHlwZXMocmVnaXN0cmF0aW9u
LT5tdXRhdGlvblR5cGVzKCkpOworfQorCitWZWN0b3I8UmVmUHRyPE11dGF0aW9uUmVjb3JkPiA+
IE11dGF0aW9uT2JzZXJ2ZXI6OnRha2VSZWNvcmRzKCkKK3sKKyAgICBWZWN0b3I8UmVmUHRyPE11
dGF0aW9uUmVjb3JkPiA+IHJlY29yZHM7CisgICAgcmVjb3Jkcy5zd2FwKG1fcmVjb3Jkcyk7Cisg
ICAgcmV0dXJuIHJlY29yZHM7Cit9CisKK3ZvaWQgTXV0YXRpb25PYnNlcnZlcjo6ZGlzY29ubmVj
dCgpCit7CisgICAgbV9yZWNvcmRzLmNsZWFyKCk7CisgICAgSGFzaFNldDxNdXRhdGlvbk9ic2Vy
dmVyUmVnaXN0cmF0aW9uKj4gcmVnaXN0cmF0aW9ucyhtX3JlZ2lzdHJhdGlvbnMpOworICAgIGZv
ciAoSGFzaFNldDxNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKj46Oml0ZXJhdG9yIGl0ZXIg
PSByZWdpc3RyYXRpb25zLmJlZ2luKCk7IGl0ZXIgIT0gcmVnaXN0cmF0aW9ucy5lbmQoKTsgKytp
dGVyKQorICAgICAgICAoKml0ZXIpLT51bnJlZ2lzdGVyKCk7Cit9CisKK3ZvaWQgTXV0YXRpb25P
YnNlcnZlcjo6b2JzZXJ2YXRpb25TdGFydGVkKE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24q
IHJlZ2lzdHJhdGlvbikKK3sKKyAgICBBU1NFUlQoIW1fcmVnaXN0cmF0aW9ucy5jb250YWlucyhy
ZWdpc3RyYXRpb24pKTsKKyAgICBtX3JlZ2lzdHJhdGlvbnMuYWRkKHJlZ2lzdHJhdGlvbik7Cit9
CisKK3ZvaWQgTXV0YXRpb25PYnNlcnZlcjo6b2JzZXJ2YXRpb25FbmRlZChNdXRhdGlvbk9ic2Vy
dmVyUmVnaXN0cmF0aW9uKiByZWdpc3RyYXRpb24pCit7CisgICAgQVNTRVJUKG1fcmVnaXN0cmF0
aW9ucy5jb250YWlucyhyZWdpc3RyYXRpb24pKTsKKyAgICBtX3JlZ2lzdHJhdGlvbnMucmVtb3Zl
KHJlZ2lzdHJhdGlvbik7Cit9CisKK3R5cGVkZWYgSGFzaFNldDxSZWZQdHI8TXV0YXRpb25PYnNl
cnZlcj4gPiBNdXRhdGlvbk9ic2VydmVyU2V0OworCitzdGF0aWMgTXV0YXRpb25PYnNlcnZlclNl
dCYgYWN0aXZlTXV0YXRpb25PYnNlcnZlcnMoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwo
TXV0YXRpb25PYnNlcnZlclNldCwgYWN0aXZlT2JzZXJ2ZXJzLCAoKSk7CisgICAgcmV0dXJuIGFj
dGl2ZU9ic2VydmVyczsKK30KKwordm9pZCBNdXRhdGlvbk9ic2VydmVyOjplbnF1ZXVlTXV0YXRp
b25SZWNvcmQoUGFzc1JlZlB0cjxNdXRhdGlvblJlY29yZD4gbXV0YXRpb24pCit7CisgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBtX3JlY29yZHMuYXBwZW5kKG11dGF0aW9uKTsKKyAg
ICBhY3RpdmVNdXRhdGlvbk9ic2VydmVycygpLmFkZCh0aGlzKTsKK30KKwordm9pZCBNdXRhdGlv
bk9ic2VydmVyOjpzZXRIYXNUcmFuc2llbnRSZWdpc3RyYXRpb24oKQoreworICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CisgICAgYWN0aXZlTXV0YXRpb25PYnNlcnZlcnMoKS5hZGQodGhpcyk7
Cit9CisKK3ZvaWQgTXV0YXRpb25PYnNlcnZlcjo6ZGVsaXZlcigpCit7CisgICAgLy8gQ2FsbGlu
ZyBjbGVhclRyYW5zaWVudFJlZ2lzdHJhdGlvbnMoKSBjYW4gbW9kaWZ5IG1fcmVnaXN0cmF0aW9u
cywgc28gaXQncyBuZWNlc3NhcnkKKyAgICAvLyB0byBtYWtlIGEgY29weSBvZiB0aGUgdHJhbnNp
ZW50IHJlZ2lzdHJhdGlvbnMgYmVmb3JlIG9wZXJhdGluZyBvbiB0aGVtLgorICAgIFZlY3RvcjxN
dXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKiwgMT4gdHJhbnNpZW50UmVnaXN0cmF0aW9uczsK
KyAgICBmb3IgKEhhc2hTZXQ8TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbio+OjppdGVyYXRv
ciBpdGVyID0gbV9yZWdpc3RyYXRpb25zLmJlZ2luKCk7IGl0ZXIgIT0gbV9yZWdpc3RyYXRpb25z
LmVuZCgpOyArK2l0ZXIpIHsKKyAgICAgICAgaWYgKCgqaXRlciktPmhhc1RyYW5zaWVudFJlZ2lz
dHJhdGlvbnMoKSkKKyAgICAgICAgICAgIHRyYW5zaWVudFJlZ2lzdHJhdGlvbnMuYXBwZW5kKCpp
dGVyKTsKKyAgICB9CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0cmFuc2llbnRSZWdpc3Ry
YXRpb25zLnNpemUoKTsgKytpKQorICAgICAgICB0cmFuc2llbnRSZWdpc3RyYXRpb25zW2ldLT5j
bGVhclRyYW5zaWVudFJlZ2lzdHJhdGlvbnMoKTsKKworICAgIGlmIChtX3JlY29yZHMuaXNFbXB0
eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBWZWN0b3I8UmVmUHRyPE11dGF0aW9uUmVjb3Jk
PiA+IHJlY29yZHM7CisgICAgcmVjb3Jkcy5zd2FwKG1fcmVjb3Jkcyk7CisKKyAgICBtX2NhbGxi
YWNrLT5oYW5kbGVFdmVudCgmcmVjb3JkcywgdGhpcyk7Cit9CisKK3ZvaWQgTXV0YXRpb25PYnNl
cnZlcjo6ZGVsaXZlckFsbE11dGF0aW9ucygpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKKyAgICBzdGF0aWMgYm9vbCBkZWxpdmVyeUluUHJvZ3Jlc3MgPSBmYWxzZTsKKyAgICBpZiAo
ZGVsaXZlcnlJblByb2dyZXNzKQorICAgICAgICByZXR1cm47CisgICAgZGVsaXZlcnlJblByb2dy
ZXNzID0gdHJ1ZTsKKworICAgIHdoaWxlICghYWN0aXZlTXV0YXRpb25PYnNlcnZlcnMoKS5pc0Vt
cHR5KCkpIHsKKyAgICAgICAgVmVjdG9yPFJlZlB0cjxNdXRhdGlvbk9ic2VydmVyPiA+IG9ic2Vy
dmVyczsKKyAgICAgICAgY29weVRvVmVjdG9yKGFjdGl2ZU11dGF0aW9uT2JzZXJ2ZXJzKCksIG9i
c2VydmVycyk7CisgICAgICAgIGFjdGl2ZU11dGF0aW9uT2JzZXJ2ZXJzKCkuY2xlYXIoKTsKKyAg
ICAgICAgc3RkOjpzb3J0KG9ic2VydmVycy5iZWdpbigpLCBvYnNlcnZlcnMuZW5kKCksIE9ic2Vy
dmVyTGVzc1RoYW4oKSk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb2JzZXJ2ZXJz
LnNpemUoKTsgKytpKQorICAgICAgICAgICAgb2JzZXJ2ZXJzW2ldLT5kZWxpdmVyKCk7CisgICAg
fQorCisgICAgZGVsaXZlcnlJblByb2dyZXNzID0gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YTY2NWRjMDk4YzExYTJjM2Fj
YTFjNDM5OTRkNTA2NTA2OTE3MTE5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL011dGF0aW9uT2JzZXJ2ZXIuaApAQCAtMCwwICsxLDEwNyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTXV0YXRpb25P
YnNlcnZlcl9oCisjZGVmaW5lIE11dGF0aW9uT2JzZXJ2ZXJfaAorCisjaWYgRU5BQkxFKE1VVEFU
SU9OX09CU0VSVkVSUykKKworI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3Rm
L0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L0F0b21pY1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZ0hhc2guaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNdXRhdGlvbkNhbGxiYWNrOworY2xhc3Mg
TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjsKK2NsYXNzIE11dGF0aW9uUmVjb3JkOworY2xh
c3MgTm9kZTsKKwordHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKKwordHlwZWRlZiB1bnNpZ25l
ZCBjaGFyIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zOwordHlwZWRlZiB1bnNpZ25lZCBjaGFyIE11
dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zOworCitjbGFzcyBNdXRhdGlvbk9ic2VydmVyIDog
cHVibGljIFJlZkNvdW50ZWQ8TXV0YXRpb25PYnNlcnZlcj4geworcHVibGljOgorICAgIGVudW0g
TXV0YXRpb25UeXBlIHsKKyAgICAgICAgQ2hpbGRMaXN0ID0gMSA8PCAwLAorICAgICAgICBBdHRy
aWJ1dGVzID0gMSA8PCAxLAorICAgICAgICBDaGFyYWN0ZXJEYXRhID0gMSA8PCAyLAorCisgICAg
ICAgIEFsbE11dGF0aW9uVHlwZXMgPSBDaGlsZExpc3QgfCBBdHRyaWJ1dGVzIHwgQ2hhcmFjdGVy
RGF0YQorICAgIH07CisKKyAgICBlbnVtIE9ic2VydmF0aW9uRmxhZ3MgIHsKKyAgICAgICAgU3Vi
dHJlZSA9IDEgPDwgMywKKyAgICAgICAgQXR0cmlidXRlRmlsdGVyID0gMSA8PCA0CisgICAgfTsK
KworICAgIGVudW0gRGVsaXZlcnlGbGFncyB7CisgICAgICAgIEF0dHJpYnV0ZU9sZFZhbHVlID0g
MSA8PCA1LAorICAgICAgICBDaGFyYWN0ZXJEYXRhT2xkVmFsdWUgPSAxIDw8IDYsCisgICAgfTsK
KworICAgIHN0YXRpYyBQYXNzUmVmUHRyPE11dGF0aW9uT2JzZXJ2ZXI+IGNyZWF0ZShQYXNzUmVm
UHRyPE11dGF0aW9uQ2FsbGJhY2s+KTsKKyAgICBzdGF0aWMgdm9pZCBkZWxpdmVyQWxsTXV0YXRp
b25zKCk7CisKKyAgICB+TXV0YXRpb25PYnNlcnZlcigpOworCisgICAgdm9pZCBvYnNlcnZlKE5v
ZGUqLCBNdXRhdGlvbk9ic2VydmVyT3B0aW9ucywgY29uc3QgSGFzaFNldDxBdG9taWNTdHJpbmc+
JiBhdHRyaWJ1dGVGaWx0ZXIsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBWZWN0b3I8UmVmUHRyPE11
dGF0aW9uUmVjb3JkPiA+IHRha2VSZWNvcmRzKCk7CisgICAgdm9pZCBkaXNjb25uZWN0KCk7Cisg
ICAgdm9pZCBvYnNlcnZhdGlvblN0YXJ0ZWQoTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbiop
OworICAgIHZvaWQgb2JzZXJ2YXRpb25FbmRlZChNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9u
Kik7CisgICAgdm9pZCBlbnF1ZXVlTXV0YXRpb25SZWNvcmQoUGFzc1JlZlB0cjxNdXRhdGlvblJl
Y29yZD4pOworICAgIHZvaWQgc2V0SGFzVHJhbnNpZW50UmVnaXN0cmF0aW9uKCk7CisKK3ByaXZh
dGU6CisgICAgc3RydWN0IE9ic2VydmVyTGVzc1RoYW47CisKKyAgICBNdXRhdGlvbk9ic2VydmVy
KFBhc3NSZWZQdHI8TXV0YXRpb25DYWxsYmFjaz4pOworICAgIHZvaWQgZGVsaXZlcigpOworCisg
ICAgc3RhdGljIGJvb2wgdmFsaWRhdGVPcHRpb25zKE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zKTsK
KworICAgIFJlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPiBtX2NhbGxiYWNrOworICAgIFZlY3RvcjxS
ZWZQdHI8TXV0YXRpb25SZWNvcmQ+ID4gbV9yZWNvcmRzOworICAgIEhhc2hTZXQ8TXV0YXRpb25P
YnNlcnZlclJlZ2lzdHJhdGlvbio+IG1fcmVnaXN0cmF0aW9uczsKKyAgICB1bnNpZ25lZCBtX3By
aW9yaXR5OworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykK
KworI2VuZGlmIC8vIE11dGF0aW9uT2JzZXJ2ZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9u
T2JzZXJ2ZXIuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFjNmUyNWNjMmY4ZWU3YWNmNWM2NGU1OTFmMDU0Zjg5
YjE1YWQ2ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25P
YnNlcnZlci5pZGwKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBjb3JlIHsKKyAgICBpbnRlcmZhY2Ug
WworICAgICAgICBDb25kaXRpb25hbD1NVVRBVElPTl9PQlNFUlZFUlMsCisgICAgICAgIEN1c3Rv
bUNvbnN0cnVjdG9yLAorICAgICAgICBDb25zdHJ1Y3RvclBhcmFtZXRlcnM9MQorICAgIF0gTXV0
YXRpb25PYnNlcnZlciB7CisgICAgICAgIFtDdXN0b21dIHZvaWQgb2JzZXJ2ZShpbiBOb2RlIHRh
cmdldCwgaW4gTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgb3B0aW9ucykKKyAgICAgICAgICAgIHJh
aXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBzZXF1ZW5jZTxNdXRhdGlvblJlY29yZD4gdGFr
ZVJlY29yZHMoKTsKKyAgICAgICAgdm9pZCBkaXNjb25uZWN0KCk7CisgICAgfTsKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuY3Bw
CmluZGV4IGRkMDI4OGQ1MTM5M2NlMmYwNzBhZTc0MDkyNDg2N2FiMzg1YmI3OWMuLjI0YzBjYjU4
NjUxN2UwOGJjN2E4YjQwOTNmMjFkMzFlMGRiMmQ2NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcApAQCAtNDEsMTAgKzQx
LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc093blB0cjxNdXRhdGlvbk9ic2Vy
dmVySW50ZXJlc3RHcm91cD4gTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6OmNyZWF0ZUlm
TmVlZGVkKE5vZGUqIHRhcmdldCwgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6TXV0YXRpb25UeXBl
IHR5cGUsIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9sZFZhbHVlRmxhZywgY29uc3Qg
UXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSkKK1Bhc3NPd25QdHI8TXV0YXRpb25PYnNlcnZl
ckludGVyZXN0R3JvdXA+IE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpjcmVhdGVJZk5l
ZWRlZChOb2RlKiB0YXJnZXQsIE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSB0eXBlLCBN
dXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBvbGRWYWx1ZUZsYWcsIGNvbnN0IFF1YWxpZmll
ZE5hbWUqIGF0dHJpYnV0ZU5hbWUpCiB7Ci0gICAgQVNTRVJUKCh0eXBlID09IFdlYktpdE11dGF0
aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMgJiYgYXR0cmlidXRlTmFtZSkgfHwgIWF0dHJpYnV0ZU5h
bWUpOwotICAgIEhhc2hNYXA8V2ViS2l0TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVjb3Jk
RGVsaXZlcnlPcHRpb25zPiBvYnNlcnZlcnM7CisgICAgQVNTRVJUKCh0eXBlID09IE11dGF0aW9u
T2JzZXJ2ZXI6OkF0dHJpYnV0ZXMgJiYgYXR0cmlidXRlTmFtZSkgfHwgIWF0dHJpYnV0ZU5hbWUp
OworICAgIEhhc2hNYXA8TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlP
cHRpb25zPiBvYnNlcnZlcnM7CiAgICAgdGFyZ2V0LT5nZXRSZWdpc3RlcmVkTXV0YXRpb25PYnNl
cnZlcnNPZlR5cGUob2JzZXJ2ZXJzLCB0eXBlLCBhdHRyaWJ1dGVOYW1lKTsKICAgICBpZiAob2Jz
ZXJ2ZXJzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC01Miw3ICs1Miw3
IEBAIFBhc3NPd25QdHI8TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA+IE11dGF0aW9uT2Jz
ZXJ2ZXJJbnRlcmVzdEdyb3VwOjpjcmVhdGVJCiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNdXRh
dGlvbk9ic2VydmVySW50ZXJlc3RHcm91cChvYnNlcnZlcnMsIG9sZFZhbHVlRmxhZykpOwogfQog
Ci1NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6TXV0YXRpb25PYnNlcnZlckludGVyZXN0
R3JvdXAoSGFzaE1hcDxXZWJLaXRNdXRhdGlvbk9ic2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxp
dmVyeU9wdGlvbnM+JiBvYnNlcnZlcnMsIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9s
ZFZhbHVlRmxhZykKK011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpNdXRhdGlvbk9ic2Vy
dmVySW50ZXJlc3RHcm91cChIYXNoTWFwPE11dGF0aW9uT2JzZXJ2ZXIqLCBNdXRhdGlvblJlY29y
ZERlbGl2ZXJ5T3B0aW9ucz4mIG9ic2VydmVycywgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlv
bnMgb2xkVmFsdWVGbGFnKQogICAgIDogbV9vbGRWYWx1ZUZsYWcob2xkVmFsdWVGbGFnKQogewog
ICAgIEFTU0VSVCghb2JzZXJ2ZXJzLmlzRW1wdHkoKSk7CkBAIC02MSw3ICs2MSw3IEBAIE11dGF0
aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cChI
YXNoTWFwPFdlYktpdE11dGF0CiAKIGJvb2wgTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6
OmlzT2xkVmFsdWVSZXF1ZXN0ZWQoKQogewotICAgIGZvciAoSGFzaE1hcDxXZWJLaXRNdXRhdGlv
bk9ic2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+OjppdGVyYXRvciBpdGVy
ID0gbV9vYnNlcnZlcnMuYmVnaW4oKTsgaXRlciAhPSBtX29ic2VydmVycy5lbmQoKTsgKytpdGVy
KSB7CisgICAgZm9yIChIYXNoTWFwPE11dGF0aW9uT2JzZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERl
bGl2ZXJ5T3B0aW9ucz46Oml0ZXJhdG9yIGl0ZXIgPSBtX29ic2VydmVycy5iZWdpbigpOyBpdGVy
ICE9IG1fb2JzZXJ2ZXJzLmVuZCgpOyArK2l0ZXIpIHsKICAgICAgICAgaWYgKGhhc09sZFZhbHVl
KGl0ZXItPnNlY29uZCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC03Miw4
ICs3Miw4IEBAIHZvaWQgTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6OmVucXVldWVNdXRh
dGlvblJlY29yZChQYXNzUmVmUHRyPE11dGF0aW9uUmVjCiB7CiAgICAgUmVmUHRyPE11dGF0aW9u
UmVjb3JkPiBtdXRhdGlvbiA9IHBycE11dGF0aW9uOwogICAgIFJlZlB0cjxNdXRhdGlvblJlY29y
ZD4gbXV0YXRpb25XaXRoTnVsbE9sZFZhbHVlOwotICAgIGZvciAoSGFzaE1hcDxXZWJLaXRNdXRh
dGlvbk9ic2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+OjppdGVyYXRvciBp
dGVyID0gbV9vYnNlcnZlcnMuYmVnaW4oKTsgaXRlciAhPSBtX29ic2VydmVycy5lbmQoKTsgKytp
dGVyKSB7Ci0gICAgICAgIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIqIG9ic2VydmVyID0gaXRlci0+
Zmlyc3Q7CisgICAgZm9yIChIYXNoTWFwPE11dGF0aW9uT2JzZXJ2ZXIqLCBNdXRhdGlvblJlY29y
ZERlbGl2ZXJ5T3B0aW9ucz46Oml0ZXJhdG9yIGl0ZXIgPSBtX29ic2VydmVycy5iZWdpbigpOyBp
dGVyICE9IG1fb2JzZXJ2ZXJzLmVuZCgpOyArK2l0ZXIpIHsKKyAgICAgICAgTXV0YXRpb25PYnNl
cnZlciogb2JzZXJ2ZXIgPSBpdGVyLT5maXJzdDsKICAgICAgICAgaWYgKGhhc09sZFZhbHVlKGl0
ZXItPnNlY29uZCkpIHsKICAgICAgICAgICAgIG9ic2VydmVyLT5lbnF1ZXVlTXV0YXRpb25SZWNv
cmQobXV0YXRpb24pOwogICAgICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5oCmluZGV4IDkzMzMzNGExYjdm
OTU3Mzg5ZTVjYmVkZWUwNWMyNjc3Yjk1MDEyZGIuLjdmZGUzMmVlYTkyODljNmEzODE1ZjkyYjUw
ZDYwODdlOWZjZmYxZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9i
c2VydmVySW50ZXJlc3RHcm91cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9i
c2VydmVySW50ZXJlc3RHcm91cC5oCkBAIC0zNCw5ICszNCw5IEBACiAjaWYgRU5BQkxFKE1VVEFU
SU9OX09CU0VSVkVSUykKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiTXV0YXRp
b25PYnNlcnZlci5oIgogI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJRdWFsaWZpZWROYW1l
LmgiCi0jaW5jbHVkZSAiV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIApAQCAtNDYsMzkgKzQ2LDM5
IEBAIGNsYXNzIE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwIHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgUGFzc093blB0cjxNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cD4gY3JlYXRlRm9y
Q2hpbGRMaXN0TXV0YXRpb24oTm9kZSogdGFyZ2V0KQogICAgIHsKLSAgICAgICAgaWYgKCF0YXJn
ZXQtPmRvY3VtZW50KCktPmhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXI6OkNoaWxkTGlzdCkpCisgICAgICAgIGlmICghdGFyZ2V0LT5kb2N1bWVudCgpLT5o
YXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyOjpDaGlsZExpc3QpKQog
ICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAgICAgTXV0YXRpb25SZWNvcmREZWxp
dmVyeU9wdGlvbnMgb2xkVmFsdWVGbGFnID0gMDsKLSAgICAgICAgcmV0dXJuIGNyZWF0ZUlmTmVl
ZGVkKHRhcmdldCwgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6Q2hpbGRMaXN0LCBvbGRWYWx1ZUZs
YWcpOworICAgICAgICByZXR1cm4gY3JlYXRlSWZOZWVkZWQodGFyZ2V0LCBNdXRhdGlvbk9ic2Vy
dmVyOjpDaGlsZExpc3QsIG9sZFZhbHVlRmxhZyk7CiAgICAgfQogCiAgICAgc3RhdGljIFBhc3NP
d25QdHI8TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA+IGNyZWF0ZUZvckNoYXJhY3RlckRh
dGFNdXRhdGlvbihOb2RlKiB0YXJnZXQpCiAgICAgewotICAgICAgICBpZiAoIXRhcmdldC0+ZG9j
dW1lbnQoKS0+aGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoV2ViS2l0TXV0YXRpb25PYnNlcnZl
cjo6Q2hhcmFjdGVyRGF0YSkpCisgICAgICAgIGlmICghdGFyZ2V0LT5kb2N1bWVudCgpLT5oYXNN
dXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhKSkK
ICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgICAgIHJldHVybiBjcmVhdGVJZk5l
ZWRlZCh0YXJnZXQsIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OkNoYXJhY3RlckRhdGEsIFdlYktp
dE11dGF0aW9uT2JzZXJ2ZXI6OkNoYXJhY3RlckRhdGFPbGRWYWx1ZSk7CisgICAgICAgIHJldHVy
biBjcmVhdGVJZk5lZWRlZCh0YXJnZXQsIE11dGF0aW9uT2JzZXJ2ZXI6OkNoYXJhY3RlckRhdGEs
IE11dGF0aW9uT2JzZXJ2ZXI6OkNoYXJhY3RlckRhdGFPbGRWYWx1ZSk7CiAgICAgfQogCiAgICAg
c3RhdGljIFBhc3NPd25QdHI8TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA+IGNyZWF0ZUZv
ckF0dHJpYnV0ZXNNdXRhdGlvbihOb2RlKiB0YXJnZXQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJpYnV0ZU5hbWUpCiAgICAgewotICAgICAgICBpZiAoIXRhcmdldC0+ZG9jdW1lbnQoKS0+aGFz
TXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRl
cykpCisgICAgICAgIGlmICghdGFyZ2V0LT5kb2N1bWVudCgpLT5oYXNNdXRhdGlvbk9ic2VydmVy
c09mVHlwZShNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVzKSkKICAgICAgICAgICAgIHJldHVy
biBudWxscHRyOwogCi0gICAgICAgIHJldHVybiBjcmVhdGVJZk5lZWRlZCh0YXJnZXQsIFdlYktp
dE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMsIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OkF0
dHJpYnV0ZU9sZFZhbHVlLCAmYXR0cmlidXRlTmFtZSk7CisgICAgICAgIHJldHVybiBjcmVhdGVJ
Zk5lZWRlZCh0YXJnZXQsIE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMsIE11dGF0aW9uT2Jz
ZXJ2ZXI6OkF0dHJpYnV0ZU9sZFZhbHVlLCAmYXR0cmlidXRlTmFtZSk7CiAgICAgfQogCiAgICAg
Ym9vbCBpc09sZFZhbHVlUmVxdWVzdGVkKCk7CiAgICAgdm9pZCBlbnF1ZXVlTXV0YXRpb25SZWNv
cmQoUGFzc1JlZlB0cjxNdXRhdGlvblJlY29yZD4pOwogCiBwcml2YXRlOgotICAgIHN0YXRpYyBQ
YXNzT3duUHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwPiBjcmVhdGVJZk5lZWRlZChO
b2RlKiB0YXJnZXQsIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSwgTXV0YXRp
b25SZWNvcmREZWxpdmVyeU9wdGlvbnMgb2xkVmFsdWVGbGFnLCBjb25zdCBRdWFsaWZpZWROYW1l
KiBhdHRyaWJ1dGVOYW1lID0gMCk7Ci0gICAgTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAo
SGFzaE1hcDxXZWJLaXRNdXRhdGlvbk9ic2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9w
dGlvbnM+JiBvYnNlcnZlcnMsIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9sZFZhbHVl
RmxhZyk7CisgICAgc3RhdGljIFBhc3NPd25QdHI8TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3Jv
dXA+IGNyZWF0ZUlmTmVlZGVkKE5vZGUqIHRhcmdldCwgTXV0YXRpb25PYnNlcnZlcjo6TXV0YXRp
b25UeXBlLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBvbGRWYWx1ZUZsYWcsIGNvbnN0
IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUgPSAwKTsKKyAgICBNdXRhdGlvbk9ic2VydmVy
SW50ZXJlc3RHcm91cChIYXNoTWFwPE11dGF0aW9uT2JzZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERl
bGl2ZXJ5T3B0aW9ucz4mIG9ic2VydmVycywgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMg
b2xkVmFsdWVGbGFnKTsKIAogICAgIGJvb2wgaGFzT2xkVmFsdWUoTXV0YXRpb25SZWNvcmREZWxp
dmVyeU9wdGlvbnMgb3B0aW9ucykgeyByZXR1cm4gb3B0aW9ucyAmIG1fb2xkVmFsdWVGbGFnOyB9
CiAKLSAgICBIYXNoTWFwPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERl
bGl2ZXJ5T3B0aW9ucz4gbV9vYnNlcnZlcnM7CisgICAgSGFzaE1hcDxNdXRhdGlvbk9ic2VydmVy
KiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+IG1fb2JzZXJ2ZXJzOwogICAgIE11dGF0
aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG1fb2xkVmFsdWVGbGFnOwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCmluZGV4
IDE5MGI4NWJkODU1M2FkYWU0YTBmNmNlMGYzYTk2OGZjNmM5MjZjOTcuLjU4OTVlZjQ5ZmVhYTZh
YzYzM2MyZDk0Yzk2ODMyOWI5NWE5ZTM0MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAKQEAgLTQwLDEyICs0MCwxMiBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NPd25QdHI8TXV0YXRpb25PYnNlcnZlclJlZ2lz
dHJhdGlvbj4gTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6Y3JlYXRlKFBhc3NSZWZQdHI8
V2ViS2l0TXV0YXRpb25PYnNlcnZlcj4gb2JzZXJ2ZXIsIE5vZGUqIHJlZ2lzdHJhdGlvbk5vZGUp
CitQYXNzT3duUHRyPE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24+IE11dGF0aW9uT2JzZXJ2
ZXJSZWdpc3RyYXRpb246OmNyZWF0ZShQYXNzUmVmUHRyPE11dGF0aW9uT2JzZXJ2ZXI+IG9ic2Vy
dmVyLCBOb2RlKiByZWdpc3RyYXRpb25Ob2RlKQogewogICAgIHJldHVybiBhZG9wdFB0cihuZXcg
TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbihvYnNlcnZlciwgcmVnaXN0cmF0aW9uTm9kZSkp
OwogfQogCi1NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjpNdXRhdGlvbk9ic2VydmVyUmVn
aXN0cmF0aW9uKFBhc3NSZWZQdHI8V2ViS2l0TXV0YXRpb25PYnNlcnZlcj4gb2JzZXJ2ZXIsIE5v
ZGUqIHJlZ2lzdHJhdGlvbk5vZGUpCitNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjpNdXRh
dGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKFBhc3NSZWZQdHI8TXV0YXRpb25PYnNlcnZlcj4gb2Jz
ZXJ2ZXIsIE5vZGUqIHJlZ2lzdHJhdGlvbk5vZGUpCiAgICAgIDogbV9vYnNlcnZlcihvYnNlcnZl
cikKICAgICAgLCBtX3JlZ2lzdHJhdGlvbk5vZGUocmVnaXN0cmF0aW9uTm9kZSkKICAgICAgLCBt
X29wdGlvbnMoMCkKQEAgLTEwNSwxNiArMTA1LDE2IEBAIHZvaWQgTXV0YXRpb25PYnNlcnZlclJl
Z2lzdHJhdGlvbjo6dW5yZWdpc3RlcigpCiAgICAgLy8gVGhlIGFib3ZlIGxpbmUgd2lsbCBjYXVz
ZSB0aGlzIG9iamVjdCB0byBiZSBkZWxldGVkLCBzbyBkb24ndCBkbyBhbnkgbW9yZSBpbiB0aGlz
IGZ1bmN0aW9uLgogfQogCi1ib29sIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb246OnNob3Vs
ZFJlY2VpdmVNdXRhdGlvbkZyb20oTm9kZSogbm9kZSwgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6
TXV0YXRpb25UeXBlIHR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpCiti
b29sIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb246OnNob3VsZFJlY2VpdmVNdXRhdGlvbkZy
b20oTm9kZSogbm9kZSwgTXV0YXRpb25PYnNlcnZlcjo6TXV0YXRpb25UeXBlIHR5cGUsIGNvbnN0
IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpCiB7Ci0gICAgQVNTRVJUKCh0eXBlID09IFdl
YktpdE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMgJiYgYXR0cmlidXRlTmFtZSkgfHwgIWF0
dHJpYnV0ZU5hbWUpOworICAgIEFTU0VSVCgodHlwZSA9PSBNdXRhdGlvbk9ic2VydmVyOjpBdHRy
aWJ1dGVzICYmIGF0dHJpYnV0ZU5hbWUpIHx8ICFhdHRyaWJ1dGVOYW1lKTsKICAgICBpZiAoISht
X29wdGlvbnMgJiB0eXBlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKG1fcmVn
aXN0cmF0aW9uTm9kZSAhPSBub2RlICYmICFpc1N1YnRyZWUoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgaWYgKHR5cGUgIT0gV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRl
cyB8fCAhKG1fb3B0aW9ucyAmIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZUZpbHRl
cikpCisgICAgaWYgKHR5cGUgIT0gTXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRlcyB8fCAhKG1f
b3B0aW9ucyAmIE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZUZpbHRlcikpCiAgICAgICAgIHJl
dHVybiB0cnVlOwogCiAgICAgaWYgKCFhdHRyaWJ1dGVOYW1lLT5uYW1lc3BhY2VVUkkoKS5pc051
bGwoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVn
aXN0cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJh
dGlvbi5oCmluZGV4IDIzMmVlMjVkNWFjOGVmNjU1NDVhOTQzNjQwODI2NDVhZjUzODViNzMuLmQ0
OTE0NjI1YTlkZmVkNjY2ZGY0Yjc4YTkyMWE1NzhlM2M3Nzc1NWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uaApAQCAtMzMsNyArMzMs
NyBAQAogCiAjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKIAotI2luY2x1ZGUgIldlYktp
dE11dGF0aW9uT2JzZXJ2ZXIuaCIKKyNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5j
bHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmdIYXNoLmg+CkBAIC00NSw3ICs0NSw3IEBA
IGNsYXNzIFF1YWxpZmllZE5hbWU7CiBjbGFzcyBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9u
IHsKIHB1YmxpYzoKIAotICAgIHN0YXRpYyBQYXNzT3duUHRyPE11dGF0aW9uT2JzZXJ2ZXJSZWdp
c3RyYXRpb24+IGNyZWF0ZShQYXNzUmVmUHRyPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI+LCBOb2Rl
Kik7CisgICAgc3RhdGljIFBhc3NPd25QdHI8TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbj4g
Y3JlYXRlKFBhc3NSZWZQdHI8TXV0YXRpb25PYnNlcnZlcj4sIE5vZGUqKTsKIAogICAgIH5NdXRh
dGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKCk7CiAKQEAgLTU1LDE5ICs1NSwxOSBAQCBwdWJsaWM6
CiAgICAgYm9vbCBoYXNUcmFuc2llbnRSZWdpc3RyYXRpb25zKCkgeyByZXR1cm4gbV90cmFuc2ll
bnRSZWdpc3RyYXRpb25Ob2RlcyAmJiAhbV90cmFuc2llbnRSZWdpc3RyYXRpb25Ob2Rlcy0+aXNF
bXB0eSgpOyB9CiAgICAgdm9pZCB1bnJlZ2lzdGVyKCk7CiAKLSAgICBib29sIHNob3VsZFJlY2Vp
dmVNdXRhdGlvbkZyb20oTm9kZSosIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlw
ZSwgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSk7Ci0gICAgYm9vbCBpbmxpbmUg
aXNTdWJ0cmVlKCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zICYgV2ViS2l0TXV0YXRpb25PYnNl
cnZlcjo6U3VidHJlZTsgfQorICAgIGJvb2wgc2hvdWxkUmVjZWl2ZU11dGF0aW9uRnJvbShOb2Rl
KiwgTXV0YXRpb25PYnNlcnZlcjo6TXV0YXRpb25UeXBlLCBjb25zdCBRdWFsaWZpZWROYW1lKiBh
dHRyaWJ1dGVOYW1lKTsKKyAgICBib29sIGlubGluZSBpc1N1YnRyZWUoKSBjb25zdCB7IHJldHVy
biBtX29wdGlvbnMgJiBNdXRhdGlvbk9ic2VydmVyOjpTdWJ0cmVlOyB9CiAKLSAgICBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyKiBvYnNlcnZlcigpIHsgcmV0dXJuIG1fb2JzZXJ2ZXIuZ2V0KCk7IH0K
LSAgICBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBkZWxpdmVyeU9wdGlvbnMoKSBjb25z
dCB7IHJldHVybiBtX29wdGlvbnMgJiAoV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRl
T2xkVmFsdWUgfCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhT2xkVmFsdWUp
OyB9Ci0gICAgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgbXV0YXRpb25UeXBlcygpIGNvbnN0IHsg
cmV0dXJuIG1fb3B0aW9ucyAmIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OkFsbE11dGF0aW9uVHlw
ZXM7IH0KKyAgICBNdXRhdGlvbk9ic2VydmVyKiBvYnNlcnZlcigpIHsgcmV0dXJuIG1fb2JzZXJ2
ZXIuZ2V0KCk7IH0KKyAgICBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBkZWxpdmVyeU9w
dGlvbnMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMgJiAoTXV0YXRpb25PYnNlcnZlcjo6QXR0
cmlidXRlT2xkVmFsdWUgfCBNdXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhT2xkVmFsdWUp
OyB9CisgICAgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgbXV0YXRpb25UeXBlcygpIGNvbnN0IHsg
cmV0dXJuIG1fb3B0aW9ucyAmIE11dGF0aW9uT2JzZXJ2ZXI6OkFsbE11dGF0aW9uVHlwZXM7IH0K
IAogcHJpdmF0ZToKLSAgICBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKFBhc3NSZWZQdHI8
V2ViS2l0TXV0YXRpb25PYnNlcnZlcj4sIE5vZGUqKTsKKyAgICBNdXRhdGlvbk9ic2VydmVyUmVn
aXN0cmF0aW9uKFBhc3NSZWZQdHI8TXV0YXRpb25PYnNlcnZlcj4sIE5vZGUqKTsKIAogICAgIGNv
bnN0IEhhc2hTZXQ8QXRvbWljU3RyaW5nPiYgY2FzZUluc2Vuc2l0aXZlQXR0cmlidXRlRmlsdGVy
KCk7CiAKLSAgICBSZWZQdHI8V2ViS2l0TXV0YXRpb25PYnNlcnZlcj4gbV9vYnNlcnZlcjsKKyAg
ICBSZWZQdHI8TXV0YXRpb25PYnNlcnZlcj4gbV9vYnNlcnZlcjsKICAgICBOb2RlKiBtX3JlZ2lz
dHJhdGlvbk5vZGU7CiAgICAgUmVmUHRyPE5vZGU+IG1fcmVnaXN0cmF0aW9uTm9kZUtlZXBBbGl2
ZTsKICAgICB0eXBlZGVmIEhhc2hTZXQ8UmVmUHRyPE5vZGU+ID4gTm9kZUhhc2hTZXQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5jcHAKaW5kZXggZjM1ZGM1Yjk5MDM4YmEwMzQ0OGJjNDZhOGE4MDA0NWJlYmM2Y2MxNi4u
ZGJlMDdmYjlmZDlhMDEwODYwYzA5MmE3NjM4NGJiMTM0OTg1NWNhNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNw
cApAQCAtMjUxMCwxNiArMjUxMCwxNiBAQCBIYXNoU2V0PE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3Ry
YXRpb24qPiogTm9kZTo6dHJhbnNpZW50TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJ5KAogICAgIHJl
dHVybiBoYXNSYXJlRGF0YSgpID8gcmFyZURhdGEoKS0+dHJhbnNpZW50TXV0YXRpb25PYnNlcnZl
clJlZ2lzdHJ5KCkgOiAwOwogfQogCi12b2lkIE5vZGU6OmNvbGxlY3RNYXRjaGluZ09ic2VydmVy
c0Zvck11dGF0aW9uKEhhc2hNYXA8V2ViS2l0TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVj
b3JkRGVsaXZlcnlPcHRpb25zPiYgb2JzZXJ2ZXJzLCBOb2RlKiBmcm9tTm9kZSwgV2ViS2l0TXV0
YXRpb25PYnNlcnZlcjo6TXV0YXRpb25UeXBlIHR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0
dHJpYnV0ZU5hbWUpCit2b2lkIE5vZGU6OmNvbGxlY3RNYXRjaGluZ09ic2VydmVyc0Zvck11dGF0
aW9uKEhhc2hNYXA8TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRp
b25zPiYgb2JzZXJ2ZXJzLCBOb2RlKiBmcm9tTm9kZSwgTXV0YXRpb25PYnNlcnZlcjo6TXV0YXRp
b25UeXBlIHR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpCiB7Ci0gICAg
QVNTRVJUKCh0eXBlID09IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMgJiYgYXR0
cmlidXRlTmFtZSkgfHwgIWF0dHJpYnV0ZU5hbWUpOworICAgIEFTU0VSVCgodHlwZSA9PSBNdXRh
dGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVzICYmIGF0dHJpYnV0ZU5hbWUpIHx8ICFhdHRyaWJ1dGVO
YW1lKTsKICAgICBpZiAoVmVjdG9yPE93blB0cjxNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9u
PiA+KiByZWdpc3RyeSA9IGZyb21Ob2RlLT5tdXRhdGlvbk9ic2VydmVyUmVnaXN0cnkoKSkgewog
ICAgICAgICBjb25zdCBzaXplX3Qgc2l6ZSA9IHJlZ2lzdHJ5LT5zaXplKCk7CiAgICAgICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CiAgICAgICAgICAgICBNdXRhdGlvbk9i
c2VydmVyUmVnaXN0cmF0aW9uKiByZWdpc3RyYXRpb24gPSByZWdpc3RyeS0+YXQoaSkuZ2V0KCk7
CiAgICAgICAgICAgICBpZiAocmVnaXN0cmF0aW9uLT5zaG91bGRSZWNlaXZlTXV0YXRpb25Gcm9t
KHRoaXMsIHR5cGUsIGF0dHJpYnV0ZU5hbWUpKSB7CiAgICAgICAgICAgICAgICAgTXV0YXRpb25S
ZWNvcmREZWxpdmVyeU9wdGlvbnMgZGVsaXZlcnlPcHRpb25zID0gcmVnaXN0cmF0aW9uLT5kZWxp
dmVyeU9wdGlvbnMoKTsKLSAgICAgICAgICAgICAgICBIYXNoTWFwPFdlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz46OkFkZFJlc3VsdCByZXN1bHQg
PSBvYnNlcnZlcnMuYWRkKHJlZ2lzdHJhdGlvbi0+b2JzZXJ2ZXIoKSwgZGVsaXZlcnlPcHRpb25z
KTsKKyAgICAgICAgICAgICAgICBIYXNoTWFwPE11dGF0aW9uT2JzZXJ2ZXIqLCBNdXRhdGlvblJl
Y29yZERlbGl2ZXJ5T3B0aW9ucz46OkFkZFJlc3VsdCByZXN1bHQgPSBvYnNlcnZlcnMuYWRkKHJl
Z2lzdHJhdGlvbi0+b2JzZXJ2ZXIoKSwgZGVsaXZlcnlPcHRpb25zKTsKICAgICAgICAgICAgICAg
ICBpZiAoIXJlc3VsdC5pc05ld0VudHJ5KQogICAgICAgICAgICAgICAgICAgICByZXN1bHQuaXRl
cmF0b3ItPnNlY29uZCB8PSBkZWxpdmVyeU9wdGlvbnM7CiAKQEAgLTI1MzIsNyArMjUzMiw3IEBA
IHZvaWQgTm9kZTo6Y29sbGVjdE1hdGNoaW5nT2JzZXJ2ZXJzRm9yTXV0YXRpb24oSGFzaE1hcDxX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyKiwKICAgICAgICAgICAgIE11dGF0aW9uT2JzZXJ2ZXJSZWdp
c3RyYXRpb24qIHJlZ2lzdHJhdGlvbiA9ICppdGVyOwogICAgICAgICAgICAgaWYgKHJlZ2lzdHJh
dGlvbi0+c2hvdWxkUmVjZWl2ZU11dGF0aW9uRnJvbSh0aGlzLCB0eXBlLCBhdHRyaWJ1dGVOYW1l
KSkgewogICAgICAgICAgICAgICAgIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIGRlbGl2
ZXJ5T3B0aW9ucyA9IHJlZ2lzdHJhdGlvbi0+ZGVsaXZlcnlPcHRpb25zKCk7Ci0gICAgICAgICAg
ICAgICAgSGFzaE1hcDxXZWJLaXRNdXRhdGlvbk9ic2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxp
dmVyeU9wdGlvbnM+OjpBZGRSZXN1bHQgcmVzdWx0ID0gb2JzZXJ2ZXJzLmFkZChyZWdpc3RyYXRp
b24tPm9ic2VydmVyKCksIGRlbGl2ZXJ5T3B0aW9ucyk7CisgICAgICAgICAgICAgICAgSGFzaE1h
cDxNdXRhdGlvbk9ic2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+OjpBZGRS
ZXN1bHQgcmVzdWx0ID0gb2JzZXJ2ZXJzLmFkZChyZWdpc3RyYXRpb24tPm9ic2VydmVyKCksIGRl
bGl2ZXJ5T3B0aW9ucyk7CiAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQuaXNOZXdFbnRyeSkK
ICAgICAgICAgICAgICAgICAgICAgcmVzdWx0Lml0ZXJhdG9yLT5zZWNvbmQgfD0gZGVsaXZlcnlP
cHRpb25zOwogICAgICAgICAgICAgfQpAQCAtMjU0MCwxNSArMjU0MCwxNSBAQCB2b2lkIE5vZGU6
OmNvbGxlY3RNYXRjaGluZ09ic2VydmVyc0Zvck11dGF0aW9uKEhhc2hNYXA8V2ViS2l0TXV0YXRp
b25PYnNlcnZlciosCiAgICAgfQogfQogCi12b2lkIE5vZGU6OmdldFJlZ2lzdGVyZWRNdXRhdGlv
bk9ic2VydmVyc09mVHlwZShIYXNoTWFwPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIqLCBNdXRhdGlv
blJlY29yZERlbGl2ZXJ5T3B0aW9ucz4mIG9ic2VydmVycywgV2ViS2l0TXV0YXRpb25PYnNlcnZl
cjo6TXV0YXRpb25UeXBlIHR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUp
Cit2b2lkIE5vZGU6OmdldFJlZ2lzdGVyZWRNdXRhdGlvbk9ic2VydmVyc09mVHlwZShIYXNoTWFw
PE11dGF0aW9uT2JzZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4mIG9ic2Vy
dmVycywgTXV0YXRpb25PYnNlcnZlcjo6TXV0YXRpb25UeXBlIHR5cGUsIGNvbnN0IFF1YWxpZmll
ZE5hbWUqIGF0dHJpYnV0ZU5hbWUpCiB7Ci0gICAgQVNTRVJUKCh0eXBlID09IFdlYktpdE11dGF0
aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMgJiYgYXR0cmlidXRlTmFtZSkgfHwgIWF0dHJpYnV0ZU5h
bWUpOworICAgIEFTU0VSVCgodHlwZSA9PSBNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVzICYm
IGF0dHJpYnV0ZU5hbWUpIHx8ICFhdHRyaWJ1dGVOYW1lKTsKICAgICBjb2xsZWN0TWF0Y2hpbmdP
YnNlcnZlcnNGb3JNdXRhdGlvbihvYnNlcnZlcnMsIHRoaXMsIHR5cGUsIGF0dHJpYnV0ZU5hbWUp
OwogICAgIGZvciAoTm9kZSogbm9kZSA9IHBhcmVudE5vZGUoKTsgbm9kZTsgbm9kZSA9IG5vZGUt
PnBhcmVudE5vZGUoKSkKICAgICAgICAgY29sbGVjdE1hdGNoaW5nT2JzZXJ2ZXJzRm9yTXV0YXRp
b24ob2JzZXJ2ZXJzLCBub2RlLCB0eXBlLCBhdHRyaWJ1dGVOYW1lKTsKIH0KIAotTXV0YXRpb25P
YnNlcnZlclJlZ2lzdHJhdGlvbiogTm9kZTo6cmVnaXN0ZXJNdXRhdGlvbk9ic2VydmVyKFBhc3NS
ZWZQdHI8V2ViS2l0TXV0YXRpb25PYnNlcnZlcj4gb2JzZXJ2ZXIpCitNdXRhdGlvbk9ic2VydmVy
UmVnaXN0cmF0aW9uKiBOb2RlOjpyZWdpc3Rlck11dGF0aW9uT2JzZXJ2ZXIoUGFzc1JlZlB0cjxN
dXRhdGlvbk9ic2VydmVyPiBvYnNlcnZlcikKIHsKICAgICBWZWN0b3I8T3duUHRyPE11dGF0aW9u
T2JzZXJ2ZXJSZWdpc3RyYXRpb24+ID4qIHJlZ2lzdHJ5ID0gZW5zdXJlUmFyZURhdGEoKS0+ZW5z
dXJlTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJ5KCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCByZWdpc3RyeS0+c2l6ZSgpOyArK2kpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IDI2NTkxMmQwMTg3YTcw
ZTg0MWY1NGU3MDZjNTA3MDVkYzBmNjc0ODUuLjE1YTE1MWIwYzRiZGFlMDgwYmIwYjk0NmIxZjAx
NTgxNmI5NWVmOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtMjksMTAgKzI5LDEwIEBACiAjaW5jbHVkZSAi
RXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJLVVJMSGFzaC5oIgogI2luY2x1ZGUgIkxheW91dFR5
cGVzLmgiCisjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgIlJlbmRlclN0
eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSAi
VHJlZVNoYXJlZC5oIgotI2luY2x1ZGUgIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgpAQCAtNjQxLDggKzY0MSw4IEBAIHB1YmxpYzoK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKLSAgICB2b2lkIGdldFJl
Z2lzdGVyZWRNdXRhdGlvbk9ic2VydmVyc09mVHlwZShIYXNoTWFwPFdlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4mLCBXZWJLaXRNdXRhdGlvbk9i
c2VydmVyOjpNdXRhdGlvblR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUp
OwotICAgIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qIHJlZ2lzdGVyTXV0YXRpb25PYnNl
cnZlcihQYXNzUmVmUHRyPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI+KTsKKyAgICB2b2lkIGdldFJl
Z2lzdGVyZWRNdXRhdGlvbk9ic2VydmVyc09mVHlwZShIYXNoTWFwPE11dGF0aW9uT2JzZXJ2ZXIq
LCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4mLCBNdXRhdGlvbk9ic2VydmVyOjpNdXRh
dGlvblR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpOworICAgIE11dGF0
aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qIHJlZ2lzdGVyTXV0YXRpb25PYnNlcnZlcihQYXNzUmVm
UHRyPE11dGF0aW9uT2JzZXJ2ZXI+KTsKICAgICB2b2lkIHVucmVnaXN0ZXJNdXRhdGlvbk9ic2Vy
dmVyKE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qKTsKICAgICB2b2lkIHJlZ2lzdGVyVHJh
bnNpZW50TXV0YXRpb25PYnNlcnZlcihNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKik7CiAg
ICAgdm9pZCB1bnJlZ2lzdGVyVHJhbnNpZW50TXV0YXRpb25PYnNlcnZlcihNdXRhdGlvbk9ic2Vy
dmVyUmVnaXN0cmF0aW9uKik7CkBAIC03ODYsNyArNzg2LDcgQEAgcHJpdmF0ZToKICNpZiBFTkFC
TEUoTVVUQVRJT05fT0JTRVJWRVJTKQogICAgIFZlY3RvcjxPd25QdHI8TXV0YXRpb25PYnNlcnZl
clJlZ2lzdHJhdGlvbj4gPiogbXV0YXRpb25PYnNlcnZlclJlZ2lzdHJ5KCk7CiAgICAgSGFzaFNl
dDxNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKj4qIHRyYW5zaWVudE11dGF0aW9uT2JzZXJ2
ZXJSZWdpc3RyeSgpOwotICAgIHZvaWQgY29sbGVjdE1hdGNoaW5nT2JzZXJ2ZXJzRm9yTXV0YXRp
b24oSGFzaE1hcDxXZWJLaXRNdXRhdGlvbk9ic2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVy
eU9wdGlvbnM+JiwgTm9kZSogZnJvbU5vZGUsIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0
aW9uVHlwZSwgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSk7CisgICAgdm9pZCBj
b2xsZWN0TWF0Y2hpbmdPYnNlcnZlcnNGb3JNdXRhdGlvbihIYXNoTWFwPE11dGF0aW9uT2JzZXJ2
ZXIqLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4mLCBOb2RlKiBmcm9tTm9kZSwgTXV0
YXRpb25PYnNlcnZlcjo6TXV0YXRpb25UeXBlLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1
dGVOYW1lKTsKICNlbmRpZgogCiAgICAgbXV0YWJsZSB1aW50MzJfdCBtX25vZGVGbGFnczsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlUmFyZURhdGEuaAppbmRleCA0NzQwZDIwN2ViMmM0MGQxYmM0NDgyZjFkMTNm
ZThlOGRhODVlNTIzLi5iMGE3MGZmYmNkYzJkODBlNmI5YWVkOTYxN2YyYmI2OTZmZjgyYTUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCkBAIC0yNiwxMSArMjYsMTEgQEAKICNpbmNsdWRl
ICJDbGFzc05vZGVMaXN0LmgiCiAjaW5jbHVkZSAiRE9NU2V0dGFibGVUb2tlbkxpc3QuaCIKICNp
bmNsdWRlICJEeW5hbWljTm9kZUxpc3QuaCIKKyNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyLmgi
CiAjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5oIgogI2luY2x1ZGUgIk5h
bWVOb2RlTGlzdC5oIgogI2luY2x1ZGUgIlF1YWxpZmllZE5hbWUuaCIKICNpbmNsdWRlICJUYWdO
b2RlTGlzdC5oIgotI2luY2x1ZGUgIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRl
IDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYv
UGFzc093blB0ci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE11dGF0
aW9uT2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE11dGF0aW9uT2JzZXJ2
ZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MDI1YjZlMmE2YmUyY2UxMDQ1
YTRmMjA2ODExM2Q1OGU1M2Y3YWY4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmNw
cAorKysgL2Rldi9udWxsCkBAIC0xLDE5NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
LSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
LSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0j
aWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKLQotI2luY2x1ZGUgIldlYktpdE11dGF0aW9u
T2JzZXJ2ZXIuaCIKLQotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiRXhjZXB0aW9u
Q29kZS5oIgotI2luY2x1ZGUgIk11dGF0aW9uQ2FsbGJhY2suaCIKLSNpbmNsdWRlICJNdXRhdGlv
bk9ic2VydmVyUmVnaXN0cmF0aW9uLmgiCi0jaW5jbHVkZSAiTXV0YXRpb25SZWNvcmQuaCIKLSNp
bmNsdWRlICJOb2RlLmgiCi0jaW5jbHVkZSA8YWxnb3JpdGhtPgotI2luY2x1ZGUgPHd0Zi9IYXNo
U2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotc3RhdGljIHVuc2lnbmVkIHNfb2JzZXJ2ZXJQ
cmlvcml0eSA9IDA7Ci0KLXN0cnVjdCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpPYnNlcnZlckxl
c3NUaGFuIHsKLSAgICBib29sIG9wZXJhdG9yKCkoY29uc3QgUmVmUHRyPFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXI+JiBsaHMsIGNvbnN0IFJlZlB0cjxXZWJLaXRNdXRhdGlvbk9ic2VydmVyPiYgcmhz
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGxocy0+bV9wcmlvcml0eSA8IHJocy0+bV9wcmlvcml0
eTsKLSAgICB9Ci19OwotCi1QYXNzUmVmUHRyPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI+IFdlYktp
dE11dGF0aW9uT2JzZXJ2ZXI6OmNyZWF0ZShQYXNzUmVmUHRyPE11dGF0aW9uQ2FsbGJhY2s+IGNh
bGxiYWNrKQotewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGNhbGxiYWNrKSk7Ci19Ci0KLVdlYktpdE11
dGF0aW9uT2JzZXJ2ZXI6OldlYktpdE11dGF0aW9uT2JzZXJ2ZXIoUGFzc1JlZlB0cjxNdXRhdGlv
bkNhbGxiYWNrPiBjYWxsYmFjaykKLSAgICA6IG1fY2FsbGJhY2soY2FsbGJhY2spCi0gICAgLCBt
X3ByaW9yaXR5KHNfb2JzZXJ2ZXJQcmlvcml0eSsrKQotewotfQotCi1XZWJLaXRNdXRhdGlvbk9i
c2VydmVyOjp+V2ViS2l0TXV0YXRpb25PYnNlcnZlcigpCi17Ci0gICAgQVNTRVJUKG1fcmVnaXN0
cmF0aW9ucy5pc0VtcHR5KCkpOwotfQotCi1ib29sIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OnZh
bGlkYXRlT3B0aW9ucyhNdXRhdGlvbk9ic2VydmVyT3B0aW9ucyBvcHRpb25zKQotewotICAgIHJl
dHVybiAob3B0aW9ucyAmIChBdHRyaWJ1dGVzIHwgQ2hhcmFjdGVyRGF0YSB8IENoaWxkTGlzdCkp
Ci0gICAgICAgICYmICgob3B0aW9ucyAmIEF0dHJpYnV0ZXMpIHx8ICEob3B0aW9ucyAmIEF0dHJp
YnV0ZU9sZFZhbHVlKSkKLSAgICAgICAgJiYgKChvcHRpb25zICYgQXR0cmlidXRlcykgfHwgIShv
cHRpb25zICYgQXR0cmlidXRlRmlsdGVyKSkKLSAgICAgICAgJiYgKChvcHRpb25zICYgQ2hhcmFj
dGVyRGF0YSkgfHwgIShvcHRpb25zICYgQ2hhcmFjdGVyRGF0YU9sZFZhbHVlKSk7Ci19Ci0KLXZv
aWQgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6b2JzZXJ2ZShOb2RlKiBub2RlLCBNdXRhdGlvbk9i
c2VydmVyT3B0aW9ucyBvcHRpb25zLCBjb25zdCBIYXNoU2V0PEF0b21pY1N0cmluZz4mIGF0dHJp
YnV0ZUZpbHRlciwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKCFub2RlKSB7Ci0gICAg
ICAgIGVjID0gTk9UX0ZPVU5EX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlm
ICghdmFsaWRhdGVPcHRpb25zKG9wdGlvbnMpKSB7Ci0gICAgICAgIC8vIEZJWE1FOiBSZXZpc2l0
IHRoaXMgb25jZSB0aGUgc3BlYyBzcGVjaWZpZXMgdGhlIGV4Y2VwdGlvbiB0eXBlOyBTWU5UQVhf
RVJSIG1heSBub3QgYmUgYXBwcm9wcmlhdGUuCi0gICAgICAgIGVjID0gU1lOVEFYX0VSUjsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24q
IHJlZ2lzdHJhdGlvbiA9IG5vZGUtPnJlZ2lzdGVyTXV0YXRpb25PYnNlcnZlcih0aGlzKTsKLSAg
ICByZWdpc3RyYXRpb24tPnJlc2V0T2JzZXJ2YXRpb24ob3B0aW9ucywgYXR0cmlidXRlRmlsdGVy
KTsKLQotICAgIG5vZGUtPmRvY3VtZW50KCktPmFkZE11dGF0aW9uT2JzZXJ2ZXJUeXBlcyhyZWdp
c3RyYXRpb24tPm11dGF0aW9uVHlwZXMoKSk7Ci19Ci0KLVZlY3RvcjxSZWZQdHI8TXV0YXRpb25S
ZWNvcmQ+ID4gV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6dGFrZVJlY29yZHMoKQotewotICAgIFZl
Y3RvcjxSZWZQdHI8TXV0YXRpb25SZWNvcmQ+ID4gcmVjb3JkczsKLSAgICByZWNvcmRzLnN3YXAo
bV9yZWNvcmRzKTsKLSAgICByZXR1cm4gcmVjb3JkczsKLX0KLQotdm9pZCBXZWJLaXRNdXRhdGlv
bk9ic2VydmVyOjpkaXNjb25uZWN0KCkKLXsKLSAgICBtX3JlY29yZHMuY2xlYXIoKTsKLSAgICBI
YXNoU2V0PE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qPiByZWdpc3RyYXRpb25zKG1fcmVn
aXN0cmF0aW9ucyk7Ci0gICAgZm9yIChIYXNoU2V0PE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRp
b24qPjo6aXRlcmF0b3IgaXRlciA9IHJlZ2lzdHJhdGlvbnMuYmVnaW4oKTsgaXRlciAhPSByZWdp
c3RyYXRpb25zLmVuZCgpOyArK2l0ZXIpCi0gICAgICAgICgqaXRlciktPnVucmVnaXN0ZXIoKTsK
LX0KLQotdm9pZCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpvYnNlcnZhdGlvblN0YXJ0ZWQoTXV0
YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbiogcmVnaXN0cmF0aW9uKQotewotICAgIEFTU0VSVCgh
bV9yZWdpc3RyYXRpb25zLmNvbnRhaW5zKHJlZ2lzdHJhdGlvbikpOwotICAgIG1fcmVnaXN0cmF0
aW9ucy5hZGQocmVnaXN0cmF0aW9uKTsKLX0KLQotdm9pZCBXZWJLaXRNdXRhdGlvbk9ic2VydmVy
OjpvYnNlcnZhdGlvbkVuZGVkKE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qIHJlZ2lzdHJh
dGlvbikKLXsKLSAgICBBU1NFUlQobV9yZWdpc3RyYXRpb25zLmNvbnRhaW5zKHJlZ2lzdHJhdGlv
bikpOwotICAgIG1fcmVnaXN0cmF0aW9ucy5yZW1vdmUocmVnaXN0cmF0aW9uKTsKLX0KLQotdHlw
ZWRlZiBIYXNoU2V0PFJlZlB0cjxXZWJLaXRNdXRhdGlvbk9ic2VydmVyPiA+IE11dGF0aW9uT2Jz
ZXJ2ZXJTZXQ7Ci0KLXN0YXRpYyBNdXRhdGlvbk9ic2VydmVyU2V0JiBhY3RpdmVNdXRhdGlvbk9i
c2VydmVycygpCi17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChNdXRhdGlvbk9ic2VydmVyU2V0
LCBhY3RpdmVPYnNlcnZlcnMsICgpKTsKLSAgICByZXR1cm4gYWN0aXZlT2JzZXJ2ZXJzOwotfQot
Ci12b2lkIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OmVucXVldWVNdXRhdGlvblJlY29yZChQYXNz
UmVmUHRyPE11dGF0aW9uUmVjb3JkPiBtdXRhdGlvbikKLXsKLSAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwotICAgIG1fcmVjb3Jkcy5hcHBlbmQobXV0YXRpb24pOwotICAgIGFjdGl2ZU11dGF0
aW9uT2JzZXJ2ZXJzKCkuYWRkKHRoaXMpOwotfQotCi12b2lkIFdlYktpdE11dGF0aW9uT2JzZXJ2
ZXI6OnNldEhhc1RyYW5zaWVudFJlZ2lzdHJhdGlvbigpCi17Ci0gICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKLSAgICBhY3RpdmVNdXRhdGlvbk9ic2VydmVycygpLmFkZCh0aGlzKTsKLX0KLQot
dm9pZCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpkZWxpdmVyKCkKLXsKLSAgICAvLyBDYWxsaW5n
IGNsZWFyVHJhbnNpZW50UmVnaXN0cmF0aW9ucygpIGNhbiBtb2RpZnkgbV9yZWdpc3RyYXRpb25z
LCBzbyBpdCdzIG5lY2Vzc2FyeQotICAgIC8vIHRvIG1ha2UgYSBjb3B5IG9mIHRoZSB0cmFuc2ll
bnQgcmVnaXN0cmF0aW9ucyBiZWZvcmUgb3BlcmF0aW5nIG9uIHRoZW0uCi0gICAgVmVjdG9yPE11
dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qLCAxPiB0cmFuc2llbnRSZWdpc3RyYXRpb25zOwot
ICAgIGZvciAoSGFzaFNldDxNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKj46Oml0ZXJhdG9y
IGl0ZXIgPSBtX3JlZ2lzdHJhdGlvbnMuYmVnaW4oKTsgaXRlciAhPSBtX3JlZ2lzdHJhdGlvbnMu
ZW5kKCk7ICsraXRlcikgewotICAgICAgICBpZiAoKCppdGVyKS0+aGFzVHJhbnNpZW50UmVnaXN0
cmF0aW9ucygpKQotICAgICAgICAgICAgdHJhbnNpZW50UmVnaXN0cmF0aW9ucy5hcHBlbmQoKml0
ZXIpOwotICAgIH0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRyYW5zaWVudFJlZ2lzdHJh
dGlvbnMuc2l6ZSgpOyArK2kpCi0gICAgICAgIHRyYW5zaWVudFJlZ2lzdHJhdGlvbnNbaV0tPmNs
ZWFyVHJhbnNpZW50UmVnaXN0cmF0aW9ucygpOwotCi0gICAgaWYgKG1fcmVjb3Jkcy5pc0VtcHR5
KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFZlY3RvcjxSZWZQdHI8TXV0YXRpb25SZWNvcmQ+
ID4gcmVjb3JkczsKLSAgICByZWNvcmRzLnN3YXAobV9yZWNvcmRzKTsKLQotICAgIG1fY2FsbGJh
Y2stPmhhbmRsZUV2ZW50KCZyZWNvcmRzLCB0aGlzKTsKLX0KLQotdm9pZCBXZWJLaXRNdXRhdGlv
bk9ic2VydmVyOjpkZWxpdmVyQWxsTXV0YXRpb25zKCkKLXsKLSAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwotICAgIHN0YXRpYyBib29sIGRlbGl2ZXJ5SW5Qcm9ncmVzcyA9IGZhbHNlOwotICAg
IGlmIChkZWxpdmVyeUluUHJvZ3Jlc3MpCi0gICAgICAgIHJldHVybjsKLSAgICBkZWxpdmVyeUlu
UHJvZ3Jlc3MgPSB0cnVlOwotCi0gICAgd2hpbGUgKCFhY3RpdmVNdXRhdGlvbk9ic2VydmVycygp
LmlzRW1wdHkoKSkgewotICAgICAgICBWZWN0b3I8UmVmUHRyPFdlYktpdE11dGF0aW9uT2JzZXJ2
ZXI+ID4gb2JzZXJ2ZXJzOwotICAgICAgICBjb3B5VG9WZWN0b3IoYWN0aXZlTXV0YXRpb25PYnNl
cnZlcnMoKSwgb2JzZXJ2ZXJzKTsKLSAgICAgICAgYWN0aXZlTXV0YXRpb25PYnNlcnZlcnMoKS5j
bGVhcigpOwotICAgICAgICBzdGQ6OnNvcnQob2JzZXJ2ZXJzLmJlZ2luKCksIG9ic2VydmVycy5l
bmQoKSwgT2JzZXJ2ZXJMZXNzVGhhbigpKTsKLSAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBvYnNlcnZlcnMuc2l6ZSgpOyArK2kpCi0gICAgICAgICAgICBvYnNlcnZlcnNbaV0tPmRlbGl2
ZXIoKTsKLSAgICB9Ci0KLSAgICBkZWxpdmVyeUluUHJvZ3Jlc3MgPSBmYWxzZTsKLX0KLQotfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVS
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzOGFmMjM3ZTE5OGJlOGE3MjlhYWMyZjAwMGRiOGFmZTU4
ZjI5NzM5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgKKysrIC9kZXYvbnVsbApA
QCAtMSwxMDcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQot
ICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQot
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
LSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpZm5kZWYgV2ViS2l0TXV0YXRpb25PYnNlcnZlcl9oCi0jZGVmaW5l
IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXJfaAotCi0jaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVS
UykKLQotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4K
LSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmlu
Zy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZ0hhc2guaD4KLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCi1jbGFzcyBNdXRhdGlvbkNhbGxiYWNrOwotY2xhc3MgTXV0YXRpb25PYnNl
cnZlclJlZ2lzdHJhdGlvbjsKLWNsYXNzIE11dGF0aW9uUmVjb3JkOwotY2xhc3MgTm9kZTsKLQot
dHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKLQotdHlwZWRlZiB1bnNpZ25lZCBjaGFyIE11dGF0
aW9uT2JzZXJ2ZXJPcHRpb25zOwotdHlwZWRlZiB1bnNpZ25lZCBjaGFyIE11dGF0aW9uUmVjb3Jk
RGVsaXZlcnlPcHRpb25zOwotCi1jbGFzcyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyIDogcHVibGlj
IFJlZkNvdW50ZWQ8V2ViS2l0TXV0YXRpb25PYnNlcnZlcj4gewotcHVibGljOgotICAgIGVudW0g
TXV0YXRpb25UeXBlIHsKLSAgICAgICAgQ2hpbGRMaXN0ID0gMSA8PCAwLAotICAgICAgICBBdHRy
aWJ1dGVzID0gMSA8PCAxLAotICAgICAgICBDaGFyYWN0ZXJEYXRhID0gMSA8PCAyLAotCi0gICAg
ICAgIEFsbE11dGF0aW9uVHlwZXMgPSBDaGlsZExpc3QgfCBBdHRyaWJ1dGVzIHwgQ2hhcmFjdGVy
RGF0YQotICAgIH07Ci0KLSAgICBlbnVtIE9ic2VydmF0aW9uRmxhZ3MgIHsKLSAgICAgICAgU3Vi
dHJlZSA9IDEgPDwgMywKLSAgICAgICAgQXR0cmlidXRlRmlsdGVyID0gMSA8PCA0Ci0gICAgfTsK
LQotICAgIGVudW0gRGVsaXZlcnlGbGFncyB7Ci0gICAgICAgIEF0dHJpYnV0ZU9sZFZhbHVlID0g
MSA8PCA1LAotICAgICAgICBDaGFyYWN0ZXJEYXRhT2xkVmFsdWUgPSAxIDw8IDYsCi0gICAgfTsK
LQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI+IGNyZWF0ZShQ
YXNzUmVmUHRyPE11dGF0aW9uQ2FsbGJhY2s+KTsKLSAgICBzdGF0aWMgdm9pZCBkZWxpdmVyQWxs
TXV0YXRpb25zKCk7Ci0KLSAgICB+V2ViS2l0TXV0YXRpb25PYnNlcnZlcigpOwotCi0gICAgdm9p
ZCBvYnNlcnZlKE5vZGUqLCBNdXRhdGlvbk9ic2VydmVyT3B0aW9ucywgY29uc3QgSGFzaFNldDxB
dG9taWNTdHJpbmc+JiBhdHRyaWJ1dGVGaWx0ZXIsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBWZWN0
b3I8UmVmUHRyPE11dGF0aW9uUmVjb3JkPiA+IHRha2VSZWNvcmRzKCk7Ci0gICAgdm9pZCBkaXNj
b25uZWN0KCk7Ci0gICAgdm9pZCBvYnNlcnZhdGlvblN0YXJ0ZWQoTXV0YXRpb25PYnNlcnZlclJl
Z2lzdHJhdGlvbiopOwotICAgIHZvaWQgb2JzZXJ2YXRpb25FbmRlZChNdXRhdGlvbk9ic2VydmVy
UmVnaXN0cmF0aW9uKik7Ci0gICAgdm9pZCBlbnF1ZXVlTXV0YXRpb25SZWNvcmQoUGFzc1JlZlB0
cjxNdXRhdGlvblJlY29yZD4pOwotICAgIHZvaWQgc2V0SGFzVHJhbnNpZW50UmVnaXN0cmF0aW9u
KCk7Ci0KLXByaXZhdGU6Ci0gICAgc3RydWN0IE9ic2VydmVyTGVzc1RoYW47Ci0KLSAgICBXZWJL
aXRNdXRhdGlvbk9ic2VydmVyKFBhc3NSZWZQdHI8TXV0YXRpb25DYWxsYmFjaz4pOwotICAgIHZv
aWQgZGVsaXZlcigpOwotCi0gICAgc3RhdGljIGJvb2wgdmFsaWRhdGVPcHRpb25zKE11dGF0aW9u
T2JzZXJ2ZXJPcHRpb25zKTsKLQotICAgIFJlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPiBtX2NhbGxi
YWNrOwotICAgIFZlY3RvcjxSZWZQdHI8TXV0YXRpb25SZWNvcmQ+ID4gbV9yZWNvcmRzOwotICAg
IEhhc2hTZXQ8TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbio+IG1fcmVnaXN0cmF0aW9uczsK
LSAgICB1bnNpZ25lZCBtX3ByaW9yaXR5OwotfTsKLQotfQotCi0jZW5kaWYgLy8gRU5BQkxFKE1V
VEFUSU9OX09CU0VSVkVSUykKLQotI2VuZGlmIC8vIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXJfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaWRs
IGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaWRsCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNTM1ZjQ1YmZlMWIwMjE1OGQ3NDgzMDgxNDRjODlhZTcz
OTc3N2Q1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmlkbAorKysgL2Rldi9udWxs
CkBAIC0xLDQyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
LSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
LSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
Ci0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi1tb2R1bGUgY29yZSB7Ci0gICAgaW50ZXJmYWNlIFsKLSAgICAgICAg
Q29uZGl0aW9uYWw9TVVUQVRJT05fT0JTRVJWRVJTLAotICAgICAgICBDdXN0b21Db25zdHJ1Y3Rv
ciwKLSAgICAgICAgQ29uc3RydWN0b3JQYXJhbWV0ZXJzPTEKLSAgICBdIFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXIgewotICAgICAgICBbQ3VzdG9tXSB2b2lkIG9ic2VydmUoaW4gTm9kZSB0YXJnZXQs
IGluIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIG9wdGlvbnMpCi0gICAgICAgICAgICByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKLSAgICAgICAgc2VxdWVuY2U8TXV0YXRpb25SZWNvcmQ+IHRha2VSZWNv
cmRzKCk7Ci0gICAgICAgIHZvaWQgZGlzY29ubmVjdCgpOwotICAgIH07Ci19CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5pZGwKaW5kZXggYjIwNjU0M2IxNTU4NjcyNGQ5ZmI4MWUwZWExOTM2MGI3MDM5
NDYwNi4uMzZiYTcwMzA2ZTBjOGMzMWRjNWM2YjY1MjljYjY4ZWExMGZhYjk4NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmlkbApAQCAtNzc4LDcgKzc3OCw4IEBAIG1vZHVsZSB3aW5kb3cgewog
CiAgICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9QkxPQl0gRE9NVVJMQ29uc3RydWN0b3Ig
d2Via2l0VVJMOwogCi0gICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9TVVUQVRJT05fT0JT
RVJWRVJTXSBXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ29uc3RydWN0b3IgV2ViS2l0TXV0YXRpb25P
YnNlcnZlcjsKKyAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1NVVRBVElPTl9PQlNFUlZF
UlNdIE11dGF0aW9uT2JzZXJ2ZXJDb25zdHJ1Y3RvciBNdXRhdGlvbk9ic2VydmVyOworICAgICAg
ICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU1VVEFUSU9OX09CU0VSVkVSU10gTXV0YXRpb25PYnNl
cnZlckNvbnN0cnVjdG9yIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI7CiAKICNlbmRpZiAvLyBkZWZp
bmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYktpdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJLaXQu
Y3BwCmluZGV4IDYxMDY1OTdhZThmYjE1ZWRlNjA2YjYxYjc4NDI0NDk4Yzk5ZDc0MWEuLjFiYjNi
NDRhOTNkZmZjNWZjODI2YTFhM2I2MGZiMGM2NmFiNzk1M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYktpdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViS2l0LmNwcApAQCAtMzIsMTMgKzMyLDEzIEBACiAjaW5jbHVkZSAiV2ViS2l0Lmgi
CiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlci5oIgog
I2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAj
aW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJUZXh0RW5jb2RpbmcuaCIKICNpbmNsdWRl
ICJWOEJpbmRpbmcuaCIKICNpbmNsdWRlICJWOFJlY3Vyc2lvblNjb3BlLmgiCi0jaW5jbHVkZSAi
V2ViS2l0TXV0YXRpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgIldlYk1lZGlhUGxheWVyQ2xpZW50
SW1wbC5oIgogI2luY2x1ZGUgIldlYlNvY2tldC5oIgogI2luY2x1ZGUgIldvcmtlckNvbnRleHRF
eGVjdXRpb25Qcm94eS5oIgpAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHdpbGxQcm9jZXNzVGFzaygpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRQcm9jZXNzVGFz
aygpCiAgICAgewotICAgICAgICBXZWJDb3JlOjpXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpkZWxp
dmVyQWxsTXV0YXRpb25zKCk7CisgICAgICAgIFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6OmRl
bGl2ZXJBbGxNdXRhdGlvbnMoKTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwIGIvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNw
cAppbmRleCBmZTFmNzBkYWUxYjg5NzRjODZjMzdkNzg2ZDJhMmUyYjk2ZjQxZGEwLi45YTI4MWVj
ZDQ5MTZjM2EyNTkwNmEwMDJmNGFhZDkxNDQwZmNjMGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVm
bC5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlIDxKU0VsZW1lbnQuaD4KICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9PcGFxdWVKU1N0cmluZy5oPgogI2luY2x1ZGUgPE1lbW9yeUNhY2hl
Lmg+CisjaW5jbHVkZSA8TXV0YXRpb25PYnNlcnZlci5oPgogI2luY2x1ZGUgPFBhZ2VHcm91cC5o
PgogI2luY2x1ZGUgPFByaW50Q29udGV4dC5oPgogI2luY2x1ZGUgPFJlbmRlclRyZWVBc1RleHQu
aD4KQEAgLTU1LDcgKzU2LDYgQEAKICNpbmNsdWRlIDxTY3JpcHRWYWx1ZS5oPgogI2luY2x1ZGUg
PFNldHRpbmdzLmg+CiAjaW5jbHVkZSA8VGV4dEl0ZXJhdG9yLmg+Ci0jaW5jbHVkZSA8V2ViS2l0
TXV0YXRpb25PYnNlcnZlci5oPgogI2luY2x1ZGUgPGJpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5o
PgogI2luY2x1ZGUgPGhpc3RvcnkvSGlzdG9yeUl0ZW0uaD4KICNpbmNsdWRlIDx3b3JrZXJzL1dv
cmtlclRocmVhZC5oPgpAQCAtNTk3LDcgKzU5Nyw3IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBw
b3J0RWZsOjpkdW1wQ29uZmlndXJhdGlvbkZvclZpZXdwb3J0KEV2YXNfT2JqZWN0KiBld2tWaWV3
CiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6ZGVsaXZlckFsbE11dGF0aW9uc0lmTmVj
ZXNzYXJ5KCkKIHsKICNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQotICAgIFdlYkNvcmU6
OldlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OmRlbGl2ZXJBbGxNdXRhdGlvbnMoKTsKKyAgICBXZWJD
b3JlOjpNdXRhdGlvbk9ic2VydmVyOjpkZWxpdmVyQWxsTXV0YXRpb25zKCk7CiAjZW5kaWYKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKaW5kZXggZjY5ZWI4N2M1NjYzZTRjMTM3ZjhiMjJm
MDdmYjA2MGFkNmU0MjM1Mi4uNWJjMDQ5ZDFmOWNlZjBkZWNkYmYyYTQwNmIyYjA3M2NiMjlhMjQw
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVk
ZSAiSlNMb2NrLmgiCiAjaW5jbHVkZSAiSlNOb2RlTGlzdC5oIgogI2luY2x1ZGUgIkpTVmFsdWUu
aCIKKyNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIK
ICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgpAQCAt
NjQsNyArNjUsNiBAQAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJh
dG9yLmgiCiAjaW5jbHVkZSAiV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuaCIKLSNpbmNsdWRl
ICJXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAj
aW5jbHVkZSAid2Via2l0Z2xvYmFsc3ByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJmcmFt
ZS5oIgpAQCAtODYzLDcgKzg2Myw3IEBAIEpTVmFsdWVSZWYgRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrOjpjb21wdXRlZFN0eWxlSW5jbHVkaW5nVmlzaXRlZEluZm8oSlNDb250ZXh0CiB2b2lkIER1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6ZGVsaXZlckFsbE11dGF0aW9uc0lmTmVjZXNzYXJ5KCkK
IHsKICNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQotICAgIFdlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXI6OmRlbGl2ZXJBbGxNdXRhdGlvbnMoKTsKKyAgICBNdXRhdGlvbk9ic2VydmVyOjpkZWxp
dmVyQWxsTXV0YXRpb25zKCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGNhYzRjMWNmYTFjMmUzNjFl
YmZhNzUzNzkzZjU5MTQ4NDcwODU1NDMuLjI5MWE5ZWZkYmNiNGFmYTg2NDQ1YTNkNWZmOTk4ZWFh
OTk0NWZlNGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MyBAQAorMjAxMi0wNi0xNSAgQWRhbSBLbGVpbiAg
PGFkYW1rQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZW1vdmUgdmVuZG9yIHByZWZpeCBmcm9t
IERPTSBNdXRhdGlvbk9ic2VydmVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODkyMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBbGwgdGVzdHMgaGF2ZSBiZWVuIHVwZGF0ZWQgdG8gcmVmZXJlbmNlIHRo
ZSB1bnByZWZpeGVkIG5hbWUuCisKKyAgICAgICAgKiBmYXN0L211dGF0aW9uL2NhbGxiYWNrLWFy
Z3VtZW50cy5odG1sOgorICAgICAgICAqIGZhc3QvbXV0YXRpb24vY2xlYXItdHJhbnNpZW50LXdp
dGhvdXQtZGVsaXZlcnkuaHRtbDoKKyAgICAgICAgKiBmYXN0L211dGF0aW9uL2NyZWF0ZS1kdXJp
bmctZGVsaXZlcnkuaHRtbDoKKyAgICAgICAgKiBmYXN0L211dGF0aW9uL2Nyb3NzLWRvY3VtZW50
Lmh0bWw6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi9kYXRhYmFzZS1jYWxsYmFjay1kZWxpdmVy
eS5odG1sOgorICAgICAgICAqIGZhc3QvbXV0YXRpb24vZGVsaXZlcnktb3JkZXIuaHRtbDoKKyAg
ICAgICAgKiBmYXN0L211dGF0aW9uL2Rpc2Nvbm5lY3QtY2FuY2VsLXBlbmRpbmctZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGZhc3QvbXV0YXRpb24vZGlzY29ubmVjdC1jYW5jZWwtcGVuZGluZy5o
dG1sOgorICAgICAgICAqIGZhc3QvbXV0YXRpb24vZG9jdW1lbnQtZnJhZ21lbnQtaW5zZXJ0aW9u
Lmh0bWw6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi9lbmQtb2YtdGFzay1kZWxpdmVyeS5odG1s
OgorICAgICAgICAqIGZhc3QvbXV0YXRpb24vZmlsZXN5c3RlbS1jYWxsYmFjay1kZWxpdmVyeS5o
dG1sOgorICAgICAgICAqIGZhc3QvbXV0YXRpb24vaW5saW5lLWV2ZW50LWxpc3RlbmVyLmh0bWw6
CisgICAgICAgICogZmFzdC9tdXRhdGlvbi9tdXRhdGUtZHVyaW5nLWRlbGl2ZXJ5Lmh0bWw6Cisg
ICAgICAgICogZmFzdC9tdXRhdGlvbi9tdXRhdGlvbi1jYWxsYmFjay1ub24tZWxlbWVudC1jcmFz
aC5odG1sOgorICAgICAgICAqIGZhc3QvbXV0YXRpb24vbXV0YXRpb24tb2JzZXJ2ZXItY29uc3Ry
dWN0b3ItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvbXV0YXRpb24vbXV0YXRpb24tb2Jz
ZXJ2ZXItY29uc3RydWN0b3IuaHRtbDoKKyAgICAgICAgKiBmYXN0L211dGF0aW9uL29ic2VydmUt
YXR0cmlidXRlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi9vYnNlcnZl
LWF0dHJpYnV0ZXMuaHRtbDoKKyAgICAgICAgKiBmYXN0L211dGF0aW9uL29ic2VydmUtY2hhcmFj
dGVyZGF0YS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWNo
YXJhY3RlcmRhdGEuaHRtbDoKKyAgICAgICAgKiBmYXN0L211dGF0aW9uL29ic2VydmUtY2hpbGRM
aXN0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L211dGF0aW9uL29ic2VydmUtY2hpbGRM
aXN0Lmh0bWw6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWV4Y2VwdGlvbnMtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvbXV0YXRpb24vb2JzZXJ2ZS1leGNlcHRpb25zLmh0
bWw6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi9vYnNlcnZlLXN1YnRyZWUtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGZhc3QvbXV0YXRpb24vb2JzZXJ2ZS1zdWJ0cmVlLmh0bWw6CisgICAgICAg
ICogZmFzdC9tdXRhdGlvbi9zaGFkb3ctZG9tLmh0bWw6CisgICAgICAgICogZmFzdC9tdXRhdGlv
bi90YWtlUmVjb3Jkcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi90YWtl
UmVjb3Jkcy5odG1sOgorICAgICAgICAqIGZhc3QvbXV0YXRpb24vdHJhbnNpZW50LWdjLWNyYXNo
Lmh0bWw6CisKIDIwMTItMDYtMTUgIEFiaGlzaGVrIEFyeWEgIDxpbmZlcm5vQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBDbGVhbnVwIGVtcHR5IGFub255bW91cyBibG9jayBjb250aW51YXRpb24u
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2NhbGxiYWNrLWFyZ3VtZW50
cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9jYWxsYmFjay1hcmd1bWVudHMuaHRt
bAppbmRleCBmNzhkZGQ5MmQzNWE0OTg0ODI2MGQ2N2M2ZTIxZWVkYWQwNzFkZDYzLi5mODc2NzJm
ZWNkN2EzNTNkNDA0ZDk4YmQzMzM4OTNmNTkzNDA2NWNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L211dGF0aW9uL2NhbGxiYWNrLWFyZ3VtZW50cy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvbXV0YXRpb24vY2FsbGJhY2stYXJndW1lbnRzLmh0bWwKQEAgLTEyLDcgKzEyLDcgQEAg
ZnVuY3Rpb24gbXV0YXRpb25DYWxsYmFjayhtdXRhdGlvbnMsIG9ic2VydmVyKSB7CiAgICAgc2hv
dWxkQmUoJ2FyZ3VtZW50MicsICdtdXRhdGlvbk9ic2VydmVyJyk7CiAgICAgZmluaXNoSlNUZXN0
KCk7CiB9Ci12YXIgbXV0YXRpb25PYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVy
KG11dGF0aW9uQ2FsbGJhY2spOwordmFyIG11dGF0aW9uT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25P
YnNlcnZlcihtdXRhdGlvbkNhbGxiYWNrKTsKIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKTsKIG11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZShkaXYsIHthdHRyaWJ1dGVzOiB0
cnVlfSk7CiBkaXYuc2V0QXR0cmlidXRlKCdmb28nLCAnYmFyJyk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L211dGF0aW9uL2NsZWFyLXRyYW5zaWVudC13aXRob3V0LWRlbGl2ZXJ5Lmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2NsZWFyLXRyYW5zaWVudC13aXRob3V0LWRl
bGl2ZXJ5Lmh0bWwKaW5kZXggZTFmZWU4MTcyMGViY2Q3MDllODA5OTlmNGE5YmUxMjcyY2FhODdl
Mi4uNDJhNTNlMzhiZDVmNTZlM2MzMjQxYWQzNGNjYjY3YWMxMDQ5NDMxNCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9jbGVhci10cmFuc2llbnQtd2l0aG91dC1kZWxpdmVy
eS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vY2xlYXItdHJhbnNpZW50LXdp
dGhvdXQtZGVsaXZlcnkuaHRtbApAQCAtNyw3ICs3LDcgQEAgdmFyIG11dGF0aW9uc0RlbGl2ZXJl
ZCA9IGZhbHNlOwogZnVuY3Rpb24gY2FsbGJhY2sobXV0YXRpb25zKSB7CiAgICAgbXV0YXRpb25z
RGVsaXZlcmVkID0gdHJ1ZTsKIH0KLXZhciBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9i
c2VydmVyKGNhbGxiYWNrKTsKK3ZhciBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGNh
bGxiYWNrKTsKIAogdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogdmFy
IHNwYW4gPSBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vY3JlYXRlLWR1cmluZy1kZWxp
dmVyeS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9jcmVhdGUtZHVyaW5nLWRlbGl2
ZXJ5Lmh0bWwKaW5kZXggY2VlZTI0ZTcwODJjZjgxZDVhNWE1NDljNGNkN2I0ZDJkYjhlMjAyNi4u
NGY1ZDA3YzZjMDFkOWRmOGZmNTMxNDU3NzFkMmVjNTM0ODg4YzJhYSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9jcmVhdGUtZHVyaW5nLWRlbGl2ZXJ5Lmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9jcmVhdGUtZHVyaW5nLWRlbGl2ZXJ5Lmh0bWwKQEAg
LTE3LDE3ICsxNywxNyBAQCB2YXIgb3JkZXIgPSBbXTsKIHZhciBkaXYgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKTsKIAogdmFyIG9ic2VydmVyMzsKLXZhciBvYnNlcnZlcjEgPSBuZXcg
V2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKK3ZhciBvYnNlcnZl
cjEgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICBvcmRl
ci5wdXNoKDEpOwogICAgIGlmICghb2JzZXJ2ZXIzKSB7Ci0gICAgICAgIG9ic2VydmVyMyA9IG5l
dyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBv
YnNlcnZlcjMgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAg
ICAgICAgICAgIG9yZGVyLnB1c2goMyk7CiAgICAgICAgIH0pOwogICAgICAgICBvYnNlcnZlcjMu
b2JzZXJ2ZShkaXYsIHthdHRyaWJ1dGVzOiB0cnVlfSk7CiAgICAgICAgIGRpdi5zZXRBdHRyaWJ1
dGUoJ2ZvbycsICdiYXonKTsKICAgICB9CiB9KTsKLXZhciBvYnNlcnZlcjIgPSBuZXcgV2ViS2l0
TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKK3ZhciBvYnNlcnZlcjIgPSBu
ZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICBvcmRlci5wdXNo
KDIpOwogfSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vY3Jvc3Mt
ZG9jdW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vY3Jvc3MtZG9jdW1lbnQu
aHRtbAppbmRleCBmNGVlN2YwY2ZjZDg3NGJlZGJmODhhOWZhZmE3YWJhOWYxODA0ZmExLi5jODgz
ZGEzNGY0NDZmY2Q5MmUxMTY2YmFlZDliZTViMTcyYjdiOGQzIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L211dGF0aW9uL2Nyb3NzLWRvY3VtZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9tdXRhdGlvbi9jcm9zcy1kb2N1bWVudC5odG1sCkBAIC0xOCw3ICsxOCw3IEBAIGZ1bmN0
aW9uIHRlc3RCYXNpYygpIHsKIAogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwogICAgICAgICBk
aXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgb2JzZXJ2ZXIgPSBu
ZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICAgICAg
b2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAg
ICAgICAgICAgIHdpbmRvdy5tdXRhdGlvbnMgPSBtdXRhdGlvbnM7CiAgICAgICAgIH0pOwogCkBA
IC01Miw3ICs1Miw3IEBAIGZ1bmN0aW9uIHRlc3RTdWJ0cmVlKCkgewogICAgICAgICBtdXRhdGlv
bnMgPSBudWxsOwogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsK
ICAgICAgICAgc3ViRGl2ID0gZGl2LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2RpdicpKTsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihm
dW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNl
cnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICAgICAgICAgIHdpbmRvdy5tdXRhdGlvbnMg
PSBtdXRhdGlvbnM7CiAgICAgICAgIH0pOwogCkBAIC04OSw3ICs4OSw3IEBAIGZ1bmN0aW9uIHJ1
bk5leHRUZXN0KCkgewogCiBkZXNjcmlwdGlvbignVGVzdCB0aGF0IE11dGF0aW9uT2JzZXJ2ZXJz
IG1vdmUgY29ycmVjdGx5IGFjcm9zcyBkb2N1bWVudHMnKTsKIAotaWYgKCF3aW5kb3cuV2ViS2l0
TXV0YXRpb25PYnNlcnZlcikKK2lmICghd2luZG93Lk11dGF0aW9uT2JzZXJ2ZXIpCiAgICAgdGVz
dEZhaWxlZCgnVGhpcyB0ZXN0IHJlcXVpcmVzIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpJyk7
CiBlbHNlCiAgICAgcnVuTmV4dFRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
bXV0YXRpb24vZGF0YWJhc2UtY2FsbGJhY2stZGVsaXZlcnkuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvbXV0YXRpb24vZGF0YWJhc2UtY2FsbGJhY2stZGVsaXZlcnkuaHRtbAppbmRleCBjNzlhM2Zh
YzI3ZGQ4N2NhOTQ1OWM2MWMxMTJhNmMyOGM0NjZmNjI0Li40MDM4ZDBmZTA2OWU4M2Y2NWEzMmJi
OTA1Y2ZkYzM0OGM5OTllNmVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9u
L2RhdGFiYXNlLWNhbGxiYWNrLWRlbGl2ZXJ5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9t
dXRhdGlvbi9kYXRhYmFzZS1jYWxsYmFjay1kZWxpdmVyeS5odG1sCkBAIC0xMiw3ICsxMiw3IEBA
IGZ1bmN0aW9uIHRlc3REYXRhYmFzZSgpIHsKICAgICBmdW5jdGlvbiBzdGFydCgpIHsKICAgICAg
ICAgbXV0YXRpb25zID0gbnVsbDsKICAgICAgICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIo
ZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1
bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBA
IC00MSw3ICs0MSw3IEBAIGZ1bmN0aW9uIHRlc3REYXRhYmFzZSgpIHsKIAogZGVzY3JpcHRpb24o
J1Rlc3RpbmcgbXV0YXRpb25zIGFyZSBkZWxpdmVyZWQgZm9sbG93aW5nIERhdGFiYXNlIHRyYW5z
YWN0aW9uIGNhbGxiYWNrcy4nKTsKIAotaWYgKCF3aW5kb3cuV2ViS2l0TXV0YXRpb25PYnNlcnZl
cikgeworaWYgKCF3aW5kb3cuTXV0YXRpb25PYnNlcnZlcikgewogICAgIHRlc3RGYWlsZWQoJ1Ro
aXMgdGVzdCByZXF1aXJlcyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKScpOwogICAgIGZpbmlz
aEpTVGVzdCgpOwogfSBlbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9u
L2RlbGl2ZXJ5LW9yZGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2RlbGl2ZXJ5
LW9yZGVyLmh0bWwKaW5kZXggNGU1NWMwZDYyYjY1MzQ4ZDllYWEzYzJiNTA2N2Y1ZmFmYjgyYjRk
ZC4uNWJjMjk5MWE1YjViZWM4MjJmYWY2YWFkY2VhZmJmNjlhNDQzNWNhMSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9kZWxpdmVyeS1vcmRlci5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvbXV0YXRpb24vZGVsaXZlcnktb3JkZXIuaHRtbApAQCAtMjMsNyArMjMsNyBA
QCB2YXIgb3JkZXIgPSBbXTsKIHZhciBvYnNlcnZlcnMgPSBbXTsKIAogZnVuY3Rpb24gc2V0VXBP
cmRlcmluZyhudW0pIHsKLSAgICBvYnNlcnZlcnMucHVzaChuZXcgV2ViS2l0TXV0YXRpb25PYnNl
cnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICBvYnNlcnZlcnMucHVzaChuZXcgTXV0YXRp
b25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICAgICAgb3JkZXIucHVzaChudW0p
OwogICAgIH0pKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vZGlz
Y29ubmVjdC1jYW5jZWwtcGVuZGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L211
dGF0aW9uL2Rpc2Nvbm5lY3QtY2FuY2VsLXBlbmRpbmctZXhwZWN0ZWQudHh0CmluZGV4IDNiNWQ5
N2U3NTMyZDY4ZjY2NmViYWU5ZmE1YzBhM2NhZDNmYjFiMTIuLjczNmE3NWUxOTFkNmI1MWRjZjdh
Yzc1MGU1NDJkODg4YWM1MjFjNGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRp
b24vZGlzY29ubmVjdC1jYW5jZWwtcGVuZGluZy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9tdXRhdGlvbi9kaXNjb25uZWN0LWNhbmNlbC1wZW5kaW5nLWV4cGVjdGVkLnR4dApA
QCAtMSw0ICsxLDQgQEAKLVRlc3QgdGhhdCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmRpc2Nvbm5l
Y3QgY2FuY2VscyBwZW5kaW5nIGRlbGl2ZXJ5CitUZXN0IHRoYXQgTXV0YXRpb25PYnNlcnZlci5k
aXNjb25uZWN0IGNhbmNlbHMgcGVuZGluZyBkZWxpdmVyeQogCiBPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vZGlzY29ubmVj
dC1jYW5jZWwtcGVuZGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9kaXNjb25u
ZWN0LWNhbmNlbC1wZW5kaW5nLmh0bWwKaW5kZXggZjYyZmQ1MjllMzljNTFhYzdjNDY4Yzk5YmVh
MzcxMzc1MDE1NmFkMS4uYmQ0NzgwOGY0YzI1MzdhM2M0N2Q0NjhhNjkzYzdjNDJkYTRhYTc5MSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9kaXNjb25uZWN0LWNhbmNlbC1w
ZW5kaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9kaXNjb25uZWN0LWNh
bmNlbC1wZW5kaW5nLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8IURPQ1RZUEUgaHRtbD4KIDxzY3Jp
cHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlw
dD4KLWRlc2NyaXB0aW9uKCdUZXN0IHRoYXQgV2ViS2l0TXV0YXRpb25PYnNlcnZlci5kaXNjb25u
ZWN0IGNhbmNlbHMgcGVuZGluZyBkZWxpdmVyeScpOworZGVzY3JpcHRpb24oJ1Rlc3QgdGhhdCBN
dXRhdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QgY2FuY2VscyBwZW5kaW5nIGRlbGl2ZXJ5Jyk7CiAK
IHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIHZhciBtdXRhdGlvbnM7CkBAIC0xMSw3ICsx
MSw3IEBAIGZ1bmN0aW9uIHN0YXJ0KCkgewogICAgIG11dGF0aW9ucyA9IG51bGw7CiAgICAgZGl2
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAKLSAgICBvYnNlcnZlciA9IG5ldyBX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICBvYnNlcnZlciA9IG5ldyBN
dXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgbXV0YXRpb25zID0gbTsKICAg
ICB9KTsKIApAQCAtMzYsNyArMzYsNyBAQCBmdW5jdGlvbiBmaW5pc2goKSB7CiAgICAgZmluaXNo
SlNUZXN0KCk7CiB9CiAKLWlmICghd2luZG93LldlYktpdE11dGF0aW9uT2JzZXJ2ZXIpCitpZiAo
IXdpbmRvdy5NdXRhdGlvbk9ic2VydmVyKQogICAgIHRlc3RGYWlsZWQoJ1RoaXMgdGVzdCByZXF1
aXJlcyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKScpOwogZWxzZQogICAgIHN0YXJ0KCk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2RvY3VtZW50LWZyYWdtZW50LWlu
c2VydGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9kb2N1bWVudC1mcmFnbWVu
dC1pbnNlcnRpb24uaHRtbAppbmRleCBjYWM0NmNmZjQzMjA3YTllMmJmMGQ5ZmE2YzNjM2RlYzJh
ZTVmZmU0Li5iNjQ2NmVjZWI0NGQ2NGFmZjhhNmY5YzMwOGYwZDVmNjAyNGY4NmZmIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2RvY3VtZW50LWZyYWdtZW50LWluc2VydGlv
bi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vZG9jdW1lbnQtZnJhZ21lbnQt
aW5zZXJ0aW9uLmh0bWwKQEAgLTIwLDcgKzIwLDcgQEAgZnVuY3Rpb24gY3JlYXRlT2JzZXJ2ZWRE
aXYoKSB7CiBmdW5jdGlvbiBjYWxsYmFjayhtdXRhdGlvbnMpIHsKICAgICB3aW5kb3cubXV0YXRp
b25zID0gbXV0YXRpb25zOwogfQotdmFyIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXIoY2FsbGJhY2spOwordmFyIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoY2Fs
bGJhY2spOwogCiBmdW5jdGlvbiB0ZXN0QXBwZW5kQ2hpbGQoKSB7CiAgICAgZGVidWcoJ1Rlc3Rp
bmcgYXBwZW5kQ2hpbGQnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24v
ZW5kLW9mLXRhc2stZGVsaXZlcnkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vZW5k
LW9mLXRhc2stZGVsaXZlcnkuaHRtbAppbmRleCAyMmQzNjQ3OGM4OTcyYWJhZDllN2RlNTIwOGYy
OTZiMzhkMzhmOTZiLi40Yzc5YTc1NGJlMjQ0YjY0ZWE5NmU2Y2I0NTdhZWMwN2I2YTg5N2M0IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2VuZC1vZi10YXNrLWRlbGl2ZXJ5
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9lbmQtb2YtdGFzay1kZWxpdmVy
eS5odG1sCkBAIC0xMiw3ICsxMiw3IEBACiAgICAgdmFyIGxpc3QgPSBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCdvbCcpOwogICAgIHZhciBwID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigncCcpOwog
ICAgIHZhciBvYnNlcnZlclJ1bnMgPSAwOwotICAgIHZhciBvYnNlcnZlciA9IG5ldyBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKCkgeyArK29ic2VydmVyUnVuczsgfSk7CisgICAgdmFy
IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKSB7ICsrb2JzZXJ2ZXJS
dW5zOyB9KTsKICAgICBvYnNlcnZlci5vYnNlcnZlKGxpc3QsIHtjaGlsZExpc3Q6IHRydWV9KTsK
ICAgICBsaXN0LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCBmdW5jdGlvbigpIHsKICAgICAgICAg
ZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSBvYnNlcnZlclJ1bnMgPT0gMSA/ICdQQVNTRUQnIDog
J0ZBSUxFRCc7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2ZpbGVzeXN0
ZW0tY2FsbGJhY2stZGVsaXZlcnkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vZmls
ZXN5c3RlbS1jYWxsYmFjay1kZWxpdmVyeS5odG1sCmluZGV4IGVmMWM1NmExNWE4ZTgyMzA0Yzgx
ZTU3ZjRhY2RjODhjOWRiNzU3ZjcuLmFiNTViODk5NGQzODFmZDU3NmMyMWVlMTZkZWMwODg3Mzdh
OWM2MmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vZmlsZXN5c3RlbS1j
YWxsYmFjay1kZWxpdmVyeS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vZmls
ZXN5c3RlbS1jYWxsYmFjay1kZWxpdmVyeS5odG1sCkBAIC0xMiw3ICsxMiw3IEBAIGZ1bmN0aW9u
IHRlc3RGaWxlc3lzdGVtKCkgewogICAgIGZ1bmN0aW9uIHN0YXJ0KCkgewogICAgICAgICBtdXRh
dGlvbnMgPSBudWxsOwogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlv
bihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24o
bSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTU2LDcg
KzU2LDcgQEAgZnVuY3Rpb24gdGVzdEZpbGVzeXN0ZW0oKSB7CiAKIGRlc2NyaXB0aW9uKCdUZXN0
IHRoYXQgTXV0YXRpb24gUmVjb3JkcyBhcmUgZGVsaXZlcmVkIGZvbGxvd2luZyBGaWxlU3lzdGVt
IGNhbGxiYWNrcy4nKTsKIAotaWYgKCF3aW5kb3cuV2ViS2l0TXV0YXRpb25PYnNlcnZlciB8fCAh
d2luZG93LndlYmtpdFJlcXVlc3RGaWxlU3lzdGVtKSB7CitpZiAoIXdpbmRvdy5NdXRhdGlvbk9i
c2VydmVyIHx8ICF3aW5kb3cud2Via2l0UmVxdWVzdEZpbGVTeXN0ZW0pIHsKICAgICB0ZXN0RmFp
bGVkKCdUaGlzIHRlc3QgcmVxdWlyZXMgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykgYW5kIEVO
QUJMRShGSUxFX1NZU1RFTSknKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0gZWxzZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9pbmxpbmUtZXZlbnQtbGlzdGVuZXIuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vaW5saW5lLWV2ZW50LWxpc3RlbmVyLmh0bWwK
aW5kZXggMzA5NjhlMTRmYmQ2Nzk4MWRhMDVhZmIwODFkZDg5M2Q3YmJlMDk5My4uNTdkODZiOTNi
YTgyYzM5MmQ5OTQ5ZjRjYmM5YjYwNTQ3MzJiMjQwYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9tdXRhdGlvbi9pbmxpbmUtZXZlbnQtbGlzdGVuZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L211dGF0aW9uL2lubGluZS1ldmVudC1saXN0ZW5lci5odG1sCkBAIC0xMCw3ICsxMCw3
IEBACiAKICAgICB2YXIgbGlzdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ29sJyk7CiAgICAg
dmFyIG9ic2VydmVyUmFuID0gZmFsc2U7Ci0gICAgdmFyIG9ic2VydmVyID0gbmV3IFdlYktpdE11
dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKSB7IG9ic2VydmVyUmFuID0gdHJ1ZTsgfSk7CisgICAg
dmFyIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKSB7IG9ic2VydmVy
UmFuID0gdHJ1ZTsgfSk7CiAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShsaXN0LCB7Y2hpbGRMaXN0OiB0
cnVlLCBjaGFyYWN0ZXJEYXRhOiB0cnVlfSk7CiAgICAgbGlzdC5mb2N1cygpOwogICAgIGlmICh3
aW5kb3cuZXZlbnRTZW5kZXIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9u
L211dGF0ZS1kdXJpbmctZGVsaXZlcnkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24v
bXV0YXRlLWR1cmluZy1kZWxpdmVyeS5odG1sCmluZGV4IGY5MzAxYjk3ZTVjZDE4YTEwNTIyNGNm
ZGFjNGZlNGY4YTM5MzdiMzYuLmM5NDlmN2U3YjAyZTAyNzhkYWY5ZGJmN2YwNGYzYmE3ZWVmODM4
NmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vbXV0YXRlLWR1cmluZy1k
ZWxpdmVyeS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vbXV0YXRlLWR1cmlu
Zy1kZWxpdmVyeS5odG1sCkBAIC0xNSwxNCArMTUsMTQgQEAgZnVuY3Rpb24gZmluaXNoKCkgewog
dmFyIG9yZGVyID0gW107CiB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7
CiAKLXZhciBvYnNlcnZlcjEgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbiht
dXRhdGlvbnMpIHsKK3ZhciBvYnNlcnZlcjEgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlv
bihtdXRhdGlvbnMpIHsKICAgICBvcmRlci5wdXNoKDEpOwogICAgIGRpdi5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykpOwogfSk7Ci12YXIgb2JzZXJ2ZXIyID0gbmV3
IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7Cit2YXIgb2JzZXJ2
ZXIyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgb3Jk
ZXIucHVzaCgyKTsKIH0pOwotdmFyIG9ic2VydmVyMyA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewordmFyIG9ic2VydmVyMyA9IG5ldyBNdXRhdGlvbk9i
c2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgIG9yZGVyLnB1c2goMyk7CiB9KTsKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9tdXRhdGlvbi1jYWxsYmFjay1u
b24tZWxlbWVudC1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9tdXRhdGlv
bi1jYWxsYmFjay1ub24tZWxlbWVudC1jcmFzaC5odG1sCmluZGV4IDc1ZjIyZWY5NjExNmEzYTUw
Nzk2YzQ4YTM2ZTNlZDcwZTA4NTBiNmUuLjJlYWEwNDYxYjcxMDY4NWEwNjNiZjcxYzhjNzhmNDM3
MzU5MjZiZjEgMTAwNzU1Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vbXV0YXRpb24t
Y2FsbGJhY2stbm9uLWVsZW1lbnQtY3Jhc2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L211
dGF0aW9uL211dGF0aW9uLWNhbGxiYWNrLW5vbi1lbGVtZW50LWNyYXNoLmh0bWwKQEAgLTksNyAr
OSw3IEBAIGZ1bmN0aW9uIG11dGF0aW9uQ2FsbGJhY2sobXV0YXRpb25zLCBvYnNlcnZlcikgewog
ICAgIG11dGF0aW9uc1swXS5hZGRlZE5vZGVzWy0xXTsKIH0KIAotdmFyIG11dGF0aW9uT2JzZXJ2
ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihtdXRhdGlvbkNhbGxiYWNrKTsKK3ZhciBt
dXRhdGlvbk9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIobXV0YXRpb25DYWxsYmFjayk7
CiBtdXRhdGlvbk9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuYm9keSwge2NoaWxkTGlzdDogdHJ1
ZX0pOwogZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgi
UEFTUy4gV2ViS2l0IGRpZG4ndCBjcmFzaCIpKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9tdXRhdGlvbi1vYnNlcnZlci1jb25zdHJ1Y3Rvci1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL211dGF0aW9uLW9ic2VydmVyLWNv
bnN0cnVjdG9yLWV4cGVjdGVkLnR4dAppbmRleCAyYmViM2U4NmU3MGUyNDg1YTc3MjAxODA3NzY0
Mjg1OTE3OTI3NDlkLi41NDdmNGJkNDgzZjNmMDE5NWIwYWUwNjc0YzA2OGVhN2RmYjU5YzdlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL211dGF0aW9uLW9ic2VydmVyLWNv
bnN0cnVjdG9yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL211
dGF0aW9uLW9ic2VydmVyLWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dApAQCAtMSwxMSArMSwxMSBA
QAotVGVzdCB0aGUgY29uc3RydWN0b3Igb2YgV2ViS2l0TXV0YXRpb25PYnNlcnZlcgorVGVzdCB0
aGUgY29uc3RydWN0b3Igb2YgTXV0YXRpb25PYnNlcnZlcgogCiBPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCiAKIAotUEFTUyB3aW5kb3cuV2ViS2l0TXV0YXRpb25PYnNlcnZlciBpcyBub24tbnVs
bC4KLVBBU1MgdHlwZW9mIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIucHJvdG90eXBlLm9ic2VydmUg
aXMgImZ1bmN0aW9uIgotUEFTUyB0eXBlb2YgV2ViS2l0TXV0YXRpb25PYnNlcnZlci5wcm90b3R5
cGUuZGlzY29ubmVjdCBpcyAiZnVuY3Rpb24iCitQQVNTIHdpbmRvdy5NdXRhdGlvbk9ic2VydmVy
IGlzIG5vbi1udWxsLgorUEFTUyB0eXBlb2YgTXV0YXRpb25PYnNlcnZlci5wcm90b3R5cGUub2Jz
ZXJ2ZSBpcyAiZnVuY3Rpb24iCitQQVNTIHR5cGVvZiBNdXRhdGlvbk9ic2VydmVyLnByb3RvdHlw
ZS5kaXNjb25uZWN0IGlzICJmdW5jdGlvbiIKIFBBU1MgdHlwZW9mIG9ic2VydmVyLm9ic2VydmUg
aXMgImZ1bmN0aW9uIgogUEFTUyB0eXBlb2Ygb2JzZXJ2ZXIuZGlzY29ubmVjdCBpcyAiZnVuY3Rp
b24iCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L211dGF0aW9uL211dGF0aW9uLW9ic2VydmVyLWNvbnN0cnVjdG9yLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL211dGF0aW9uLW9ic2VydmVyLWNvbnN0cnVjdG9yLmh0
bWwKaW5kZXggYWI0MGY3MGVkNzM2OGY1Mzg1YTFmNDlkODVkMzllNGE2MGFlMzdjZC4uYjhhOTJi
YjNhNmZiMmFhYTFlNDNlNGU0NDUwODUzNDAwMWZjOWJjZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9tdXRhdGlvbi9tdXRhdGlvbi1vYnNlcnZlci1jb25zdHJ1Y3Rvci5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vbXV0YXRpb24tb2JzZXJ2ZXItY29uc3RydWN0b3Iu
aHRtbApAQCAtMTEsMTcgKzExLDE3IEBACiA8c2NyaXB0PgogCiBmdW5jdGlvbiBydW5UZXN0KCkg
ewotICAgIHNob3VsZEJlTm9uTnVsbCgnd2luZG93LldlYktpdE11dGF0aW9uT2JzZXJ2ZXInKTsK
LSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3R5cGVvZiBXZWJLaXRNdXRhdGlvbk9ic2VydmVy
LnByb3RvdHlwZS5vYnNlcnZlJywgJ2Z1bmN0aW9uJyk7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCd0eXBlb2YgV2ViS2l0TXV0YXRpb25PYnNlcnZlci5wcm90b3R5cGUuZGlzY29ubmVjdCcs
ICdmdW5jdGlvbicpOwotICAgIHdpbmRvdy5vYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9i
c2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeyB9KTsKKyAgICBzaG91bGRCZU5vbk51bGwoJ3dp
bmRvdy5NdXRhdGlvbk9ic2VydmVyJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0eXBl
b2YgTXV0YXRpb25PYnNlcnZlci5wcm90b3R5cGUub2JzZXJ2ZScsICdmdW5jdGlvbicpOworICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygndHlwZW9mIE11dGF0aW9uT2JzZXJ2ZXIucHJvdG90eXBl
LmRpc2Nvbm5lY3QnLCAnZnVuY3Rpb24nKTsKKyAgICB3aW5kb3cub2JzZXJ2ZXIgPSBuZXcgTXV0
YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsgfSk7CiAgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCd0eXBlb2Ygb2JzZXJ2ZXIub2JzZXJ2ZScsICdmdW5jdGlvbicpOwogICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygndHlwZW9mIG9ic2VydmVyLmRpc2Nvbm5lY3QnLCAnZnVuY3Rp
b24nKTsKIH0KIAotZGVzY3JpcHRpb24oJ1Rlc3QgdGhlIGNvbnN0cnVjdG9yIG9mIFdlYktpdE11
dGF0aW9uT2JzZXJ2ZXInKTsKK2Rlc2NyaXB0aW9uKCdUZXN0IHRoZSBjb25zdHJ1Y3RvciBvZiBN
dXRhdGlvbk9ic2VydmVyJyk7CiAKLWlmICghd2luZG93LldlYktpdE11dGF0aW9uT2JzZXJ2ZXIp
CitpZiAoIXdpbmRvdy5NdXRhdGlvbk9ic2VydmVyKQogICAgIHRlc3RGYWlsZWQoJ1RoaXMgdGVz
dCByZXF1aXJlcyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKScpOwogZWxzZQogICAgIHJ1blRl
c3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1hdHRy
aWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1h
dHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCAwN2E2OGMzY2Q5ZjcwNGI4YzUxZTE1MWQ0N2Rh
MTQwZmM0ZjEzZGRjLi5iOTk4Yzk4OTQ3M2Y5YTdiZmFiYjk1NjM5YmI0MDYyNmU4MGQ3MTliIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtYXR0cmlidXRlcy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWF0dHJp
YnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotVGVzdCBXZWJLaXRNdXRhdGlvbk9i
c2VydmVyLm9ic2VydmUgb24gYXR0cmlidXRlcworVGVzdCBNdXRhdGlvbk9ic2VydmVyLm9ic2Vy
dmUgb24gYXR0cmlidXRlcwogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1hdHRyaWJ1dGVzLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtYXR0cmlidXRlcy5odG1sCmluZGV4IDQy
MWVlYWRmMWZmNzE4NjliODNhOTk5MjI4MDc2MGM4MmRmNGEyZmQuLjM2ZWE5MGI1MTAzYTlmMTI1
ZWIzNjAzZDkwMWI3NjFiNDJlYmY3YTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0
YXRpb24vb2JzZXJ2ZS1hdHRyaWJ1dGVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRh
dGlvbi9vYnNlcnZlLWF0dHJpYnV0ZXMuaHRtbApAQCAtMTgsNyArMTgsNyBAQCBmdW5jdGlvbiB0
ZXN0QmFzaWMoKSB7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OwogICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCdiYXInLCAnZm9vJyk7CiAKLSAgICAgICAgb2Jz
ZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAg
IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAg
ICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTgyLDcgKzgyLDcgQEAgZnVuY3Rp
b24gdGVzdFdyb25nVHlwZSgpIHsKIAogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwogICAgICAg
ICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgb2JzZXJ2ZXIg
PSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2Vy
dmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0
YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTExMSw3ICsxMTEsNyBAQCBmdW5jdGlvbiB0
ZXN0TXVsdGlwbGVSZWdpc3RyYXRpb24oKSB7CiAJCWNhbGxzID0gMDsKICAgICAgICAgbXV0YXRp
b25zID0gbnVsbDsKICAgICAgICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7
Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24o
bSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0p
IHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAJCQljYWxscysrOwogICAgICAgICB9KTsK
QEAgLTE1MywxMCArMTUzLDEwIEBAIGZ1bmN0aW9uIHRlc3RNdWx0aXBsZU9ic2VydmVycygpIHsK
ICAgICAgICAgZGVidWcoJ1Rlc3RpbmcgdGhhdCBtdWx0aXBsZSBvYnNlcnZlcnMgY2FuIGJlIHJl
Z2lzdGVyZWQgdG8gYSBnaXZlbiBub2RlIGFuZCBib3RoIHJlY2VpdmUgbXV0YXRpb25zLicpOwog
ICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdkaXYnKTsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNl
cnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2
ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7
Ci0gICAgICAgIG9ic2VydmVyMiA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9u
KG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24o
bSkgewogICAgICAgICAgICAgbXV0YXRpb25zMiA9IG07CiAgICAgICAgIH0pOwogICAgICAgICBv
YnNlcnZlci5vYnNlcnZlKGRpdiwgeyBhdHRyaWJ1dGVzOiB0cnVlIH0pOwpAQCAtMTg5LDcgKzE4
OSw3IEBAIGZ1bmN0aW9uIHRlc3ROYW1lc3BhY2VVUkkoKSB7CiAgICAgICAgIGRlYnVnKCdUZXN0
aW5nIHRoYXQgImF0dHJpYnV0ZU5hbWVzcGFjZSIgdmFsdWUgaXMgZGVsaXZlcmVkIHByb3Blcmx5
LicpOwogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwogICAgICAgICBkaXYgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRp
b25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9u
T2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAg
ICAgfSk7CiAKQEAgLTIyMSw3ICsyMjEsNyBAQCBmdW5jdGlvbiB0ZXN0UHJvcGVydHlBY2Nlc3Mo
KSB7CiAgICAgICAgIGltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpOwogICAgICAg
ICBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOwogCi0gICAgICAgIG9ic2VydmVyID0g
bmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZl
ciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0
aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBAIC0yNjIsNyArMjYyLDcgQEAgZnVuY3Rpb24gdGVz
dE9yZGVyaW5nV3J0RE9NU3VidHJlZU1vZGlmaWVkKCkgewogCiAgICAgICAgIHN1YkRpdiA9IGRp
di5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7CiAKLSAgICAgICAg
b2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAg
ICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAg
ICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTMwNSw3ICszMDUsNyBAQCBm
dW5jdGlvbiB0ZXN0T2xkVmFsdWUoKSB7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2RpdicpOwogICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCdiYXInLCAnYm9vJyk7CiAg
ICAgICAgIAotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1
bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2Vy
dmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICAgICAgd2luZG93Lm11dGF0aW9ucyA9
IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAgICAgICAgIG9ic2VydmVyLm9ic2VydmUoZGl2LCB7
IGF0dHJpYnV0ZXM6IHRydWUsIGF0dHJpYnV0ZU9sZFZhbHVlOiB0cnVlIH0pOwpAQCAtMzQ2LDEw
ICszNDYsMTAgQEAgZnVuY3Rpb24gdGVzdE9sZFZhbHVlQXNSZXF1ZXN0ZWQoKSB7CiAgICAgICAg
IG11dGF0aW9ucyA9IG51bGw7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2RpdicpOwogICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCdmb28nLCAnYmFyJyk7Ci0gICAgICAg
IG9ic2VydmVyV2l0aE9sZFZhbHVlID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rp
b24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyV2l0aE9sZFZhbHVlID0gbmV3IE11dGF0
aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0
YXRpb25zV2l0aE9sZFZhbHVlID0gbXV0YXRpb25zOwogICAgICAgICB9KTsKLSAgICAgICAgb2Jz
ZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsK
KyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlv
bnMpIHsKICAgICAgICAgICAgIHdpbmRvdy5tdXRhdGlvbnMgPSBtdXRhdGlvbnM7CiAgICAgICAg
IH0pOwogICAgICAgICBvYnNlcnZlcldpdGhPbGRWYWx1ZS5vYnNlcnZlKGRpdiwgeyBhdHRyaWJ1
dGVzOiB0cnVlLCBhdHRyaWJ1dGVPbGRWYWx1ZTogdHJ1ZSB9KTsKQEAgLTM4Nyw3ICszODcsNyBA
QCBmdW5jdGlvbiB0ZXN0T2xkVmFsdWVVbmlvbk11bHRpcGxlT2JzZXJ2YXRpb25zKCkgewogICAg
ICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgc3BhbiA9
IGRpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykpOwogICAgICAg
ICBzcGFuLnNldEF0dHJpYnV0ZSgnZm9vJywgJ2JhcicpOwotICAgICAgICBvYnNlcnZlciA9IG5l
dyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBv
YnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAg
ICAgICAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAgICAg
ICAgIG9ic2VydmVyLm9ic2VydmUoZGl2LCB7IGF0dHJpYnV0ZXM6IHRydWUsIGF0dHJpYnV0ZU9s
ZFZhbHVlOiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pOwpAQCAtNDE3LDcgKzQxNyw3IEBAIGZ1bmN0
aW9uIHRlc3RJRExBdHRyaWJ1dGUoKSB7CiAgICAgICAgIGRlYnVnKCdUZXN0aW5nIHNldHRpbmcg
YW4gYXR0cmlidXRlIHZpYSByZWZsZWN0ZWQgSURMIGF0dHJpYnV0ZS4nKTsKICAgICAgICAgbXV0
YXRpb25zID0gbnVsbDsKICAgICAgICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2
Jyk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rp
b24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIo
ZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0
YXRpb25zOwogICAgICAgICB9KTsKICAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShkaXYsIHsgYXR0
cmlidXRlczogdHJ1ZSwgYXR0cmlidXRlT2xkVmFsdWU6IHRydWUgfSk7CkBAIC00NTQsNyArNDU0
LDcgQEAgZnVuY3Rpb24gdGVzdEF0dHJpYnV0ZUZpbHRlcigpIHsKICAgICAgICAgZGVidWcoJ1Rl
c3RpbmcgdGhhdCBhdHRyaWJ1dGVGaWx0ZXIgd29ya3MgYXMgZXhwZWN0ZWQgYW5kIG9ic2VydmVz
IGNhc2Ugd2l0aCBIVE1MIGVsZW1lbnRzLicpOwogCiAgICAgICAgIG11dGF0aW9ucyA9IG51bGw7
Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24o
bSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0p
IHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBAIC00OTQsNyAr
NDk0LDcgQEAgZnVuY3Rpb24gdGVzdEF0dHJpYnV0ZUZpbHRlclN1YnRyZWUoKSB7CiAgICAgICAg
IGRlYnVnKCdUZXN0aW5nIHRoZSBiZWhhdmlvciBvZiBhdHRyaWJ1dGVGaWx0ZXIgd2hlbiB0aGUg
c2FtZSBvYnNlcnZlciBvYnNlcnZlcyBhdCBtdWx0aXBsZSBub2RlcyBpbiBhIHN1YnRyZWUgd2l0
aCBkaWZmZXJlbnQgZmlsdGVyIG9wdGlvbnMuJyk7CiAKICAgICAgICAgbXV0YXRpb25zID0gbnVs
bDsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlv
bihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24o
bSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTU2NSw3
ICs1NjUsNyBAQCBmdW5jdGlvbiB0ZXN0QXR0cmlidXRlRmlsdGVyTm9uSFRNTEVsZW1lbnQoKSB7
CiAgICAgICAgIGRlYnVnKCdUZXN0aW5nIHRoYXQgc2V0dGluZyBhbiBhdHRyaWJ1dGVGaWx0ZXIg
ZmlsdGVycyBvdXQgbmFtZXNwYWNlZCBhdHRyaWJ1dGVzLicpOwogCiAgICAgICAgIG11dGF0aW9u
cyA9IG51bGw7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIo
ZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1
bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBA
IC01OTcsNyArNTk3LDcgQEAgZnVuY3Rpb24gdGVzdEF0dHJpYnV0ZUZpbHRlck5vbkhUTUxEb2N1
bWVudCgpIHsKIAogICAgICAgICBzdmdEb2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVh
dGVEb2N1bWVudCgnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLCAnc3ZnJywgJ3N2ZycpOwog
ICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0
YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICBtdXRhdGlvbnMgPSBtOwog
ICAgICAgICB9KTsKIApAQCAtNjQyLDcgKzY0Miw3IEBAIGZ1bmN0aW9uIHRlc3RTdHlsZUF0dHJp
YnV0ZVByb3BlcnR5QWNjZXNzKCkgewogICAgICAgICBkZWJ1ZygnVGVzdGluZyB0aGF0IG1vZGlm
eWluZyBhbiBlbGVtZW50cyBzdHlsZSBwcm9wZXJ0eSBkaXNwYXRjaGVzIE11dGF0aW9uIFJlY29y
ZHMuJyk7CiAKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKLSAgICAgICAgb2JzZXJ2ZXIgPSBu
ZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVy
ID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRp
b25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTY5NCw3ICs2OTQsNyBAQCBmdW5jdGlvbiB0ZXN0
U3R5bGVBdHRyaWJ1dGVQcm9wZXJ0eUFjY2Vzc09sZFZhbHVlKCkgewogICAgICAgICBkZWJ1Zygn
VGVzdGluZyB0aGF0IG1vZGlmeWluZyBhbiBlbGVtZW50cyBzdHlsZSBwcm9wZXJ0eSBkaXNwYXRj
aGVzIE11dGF0aW9uIFJlY29yZHMgd2l0aCBjb3JyZWN0IG9sZFZhbHVlcy4nKTsKIAogICAgICAg
ICBtdXRhdGlvbnMgPSBudWxsOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlv
bk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25P
YnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICBtdXRhdGlvbnMgPSBtOwogICAgICAg
ICB9KTsKIApAQCAtNzQ2LDcgKzc0Niw3IEBAIGZ1bmN0aW9uIHRlc3RTdHlsZUF0dHJpYnV0ZVBy
b3BlcnR5QWNjZXNzSWdub3JlTm9vcCgpIHsKICAgICAgICAgZGVidWcoJ1Rlc3RpbmcgdGhhdCBh
IG5vLW9wIHN0eWxlIHByb3BlcnR5IG11dGF0aW9uIGRvZXMgbm90IGNyZWF0ZSBNdXRhdGlvbiBS
ZWNvcmRzLicpOwogCiAgICAgICAgIG11dGF0aW9ucyA9IG51bGw7Ci0gICAgICAgIG9ic2VydmVy
ID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNl
cnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11
dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBAIC03NzYsNyArNzc2LDcgQEAgZnVuY3Rpb24g
dGVzdE11dGF0ZVRocm91Z2hBdHRyTm9kZVZhbHVlKCkgewogICAgICAgICBkZWJ1ZygnVGVzdCB0
aGF0IG11dGF0aW5nIGFuIGF0dHJpYnV0ZSB0aHJvdWdoIGFuIGF0dHIgbm9kZSBkZWxpdmVycyBt
dXRhdGlvbiByZWNvcmRzJyk7CiAKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKLSAgICAgICAg
b2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMp
IHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRh
dGlvbnMpIHsKICAgICAgICAgICAgIHdpbmRvdy5tdXRhdGlvbnMgPSBtdXRhdGlvbnM7CiAgICAg
ICAgIH0pOwogCkBAIC04MTAsNyArODEwLDcgQEAgZnVuY3Rpb24gdGVzdE11dGF0ZVRocm91Z2hB
dHRyTm9kZUNoaWxkKCkgewogICAgICAgICBkZWJ1ZygnVGVzdCB0aGF0IG11dGF0aW5nIGFuIGF0
dHJpYnV0ZSBieSBhdHRhY2hpbmcgYSBjaGlsZCB0byBhbiBhdHRyIG5vZGUgZGVsaXZlcnMgbXV0
YXRpb24gcmVjb3JkcycpOwogCiAgICAgICAgIG11dGF0aW9ucyA9IG51bGw7Ci0gICAgICAgIG9i
c2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7
CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRp
b25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0YXRpb25zOwogICAgICAg
ICB9KTsKIApAQCAtODQ0LDcgKzg0NCw3IEBAIGZ1bmN0aW9uIHRlc3RTZXRBbmRSZW1vdmVBdHRy
aWJ1dGVOb2RlKCkgewogICAgICAgICBkZWJ1ZygnVGVzdCB0aGF0IG11dGF0aW5nIHZpYSBzZXRB
dHRyaWJ1dGVOb2RlIGRlbGl2ZXJzIG11dGF0aW9uIHJlY29yZHMnKTsKIAogICAgICAgICBtdXRh
dGlvbnMgPSBudWxsOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlv
bk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICAgICAgd2luZG93Lm11dGF0
aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAKQEAgLTg5Myw3ICs4OTMsNyBAQCBmdW5j
dGlvbiB0ZXN0TWl4ZWROb2RlQW5kRWxlbWVudE9wZXJhdGlvbnMoKSB7CiAgICAgICAgIGRlYnVn
KCdUZXN0IHRoYXQgc2V0QXR0cmlidXRlIG9uIGFuIGF0dHJpYnV0ZSB3aXRoIGFuIGV4aXN0aW5n
IEF0dHIgZGVsaXZlcnMgbXV0YXRpb24gcmVjb3JkcycpOwogCiAgICAgICAgIG11dGF0aW9ucyA9
IG51bGw7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVu
Y3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2
ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zID0g
bXV0YXRpb25zOwogICAgICAgICB9KTsKIApAQCAtOTI5LDcgKzkyOSw3IEBAIGZ1bmN0aW9uIHRl
c3ROYW1lZE5vZGVNYXBPcGVyYXRpb25zKCkgewogICAgICAgICBkZWJ1ZygnVGVzdCB0aGF0IHNl
dE5hbWVkSXRlbSBhbmQgcmVtb3ZlTmFtZWRJdGVtIGRlbGl2ZXIgbXV0YXRpb24gcmVjb3Jkcycp
OwogCiAgICAgICAgIG11dGF0aW9ucyA9IG51bGw7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdl
YktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2Vy
dmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAg
ICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0YXRpb25zOwogICAgICAgICB9KTsKIApAQCAtOTk3
LDkgKzk5Nyw5IEBAIGZ1bmN0aW9uIHJ1bk5leHRUZXN0KCkgewogICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKIH0KIAotZGVzY3JpcHRpb24oJ1Rlc3QgV2ViS2l0TXV0YXRpb25PYnNlcnZlci5vYnNl
cnZlIG9uIGF0dHJpYnV0ZXMnKTsKK2Rlc2NyaXB0aW9uKCdUZXN0IE11dGF0aW9uT2JzZXJ2ZXIu
b2JzZXJ2ZSBvbiBhdHRyaWJ1dGVzJyk7CiAKLWlmICghd2luZG93LldlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXIpCitpZiAoIXdpbmRvdy5NdXRhdGlvbk9ic2VydmVyKQogICAgIHRlc3RGYWlsZWQoJ1Ro
aXMgdGVzdCByZXF1aXJlcyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKScpOwogZWxzZQogICAg
IHJ1bk5leHRUZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29i
c2VydmUtY2hhcmFjdGVyZGF0YS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0
aW9uL29ic2VydmUtY2hhcmFjdGVyZGF0YS1leHBlY3RlZC50eHQKaW5kZXggMWRmZjNiNTVkMjc2
Y2MxNWE2ODM5YmVkN2Q5N2IzODJjNmY3YWRmYi4uMzFkZDU3NDA1MmMyZmU3NjNlODhmMjdmMGEy
NTkwMDhmZGU3ZTQwYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNl
cnZlLWNoYXJhY3RlcmRhdGEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0
YXRpb24vb2JzZXJ2ZS1jaGFyYWN0ZXJkYXRhLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAK
LVRlc3QgV2ViS2l0TXV0YXRpb25PYnNlcnZlci5vYnNlcnZlIG9uIENoYXJhY3RlckRhdGEgbm9k
ZXMKK1Rlc3QgTXV0YXRpb25PYnNlcnZlci5vYnNlcnZlIG9uIENoYXJhY3RlckRhdGEgbm9kZXMK
IAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L211dGF0aW9uL29ic2VydmUtY2hhcmFjdGVyZGF0YS5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9tdXRhdGlvbi9vYnNlcnZlLWNoYXJhY3RlcmRhdGEuaHRtbAppbmRleCAwMWNhZWEyMWVhNDMw
NmI2ZmNmZjJlNDlmZDBlMzk3MzdhMTI2NDVjLi5kODkwNTRhNzNhODQ0MzFmMGU5OGQ5NjliMzQy
ODk2YmY2YjYwNzI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2Vy
dmUtY2hhcmFjdGVyZGF0YS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2Jz
ZXJ2ZS1jaGFyYWN0ZXJkYXRhLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAgZnVuY3Rpb24gdGVzdEJh
c2ljKCkgewogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAg
ICAgICAgZGl2LnRleHRDb250ZW50ID0gJ2Zvbyc7CiAgICAgICAgIGNoYXJEYXRhTm9kZSA9IGRp
di5maXJzdENoaWxkOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZl
cihmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICBtdXRhdGlvbnMgPSBtOwogICAgICAgICB9KTsK
IApAQCAtODcsNyArODcsNyBAQCBmdW5jdGlvbiB0ZXN0V3JvbmdUeXBlKCkgewogICAgICAgICBk
aXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgZGl2LnRleHRDb250
ZW50ID0gJ2hlbGxvJzsKICAgICAgICAgY2hhckRhdGFOb2RlID0gZGl2LmZpcnN0Q2hpbGQ7Ci0g
ICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkg
eworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsK
ICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBAIC0xMTcsMTAgKzEx
NywxMCBAQCBmdW5jdGlvbiB0ZXN0TXVsdGlwbGVPYnNlcnZlcnMoKSB7CiAgICAgICAgIGRpdiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICBkaXYudGV4dENvbnRlbnQg
PSAnZm9vJzsKICAgICAgICAgY2hhckRhdGFOb2RlID0gZGl2LmZpcnN0Q2hpbGQ7Ci0gICAgICAg
IG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAg
ICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAg
ICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwotICAgICAgICBvYnNlcnZlcjIgPSBu
ZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVy
MiA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0
aW9uczIgPSBtOwogICAgICAgICB9KTsKICAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShjaGFyRGF0
YU5vZGUsIHtjaGFyYWN0ZXJEYXRhOiB0cnVlfSk7CkBAIC0xNjEsNyArMTYxLDcgQEAgZnVuY3Rp
b24gdGVzdE9yZGVyaW5nV3J0RE9NU3VidHJlZU1vZGlmaWVkKCkgewogICAgICAgICBzdWJEaXYu
dGV4dENvbnRlbnQgPSAnZm9vJzsKICAgICAgICAgY2hhckRhdGFOb2RlID0gc3ViRGl2LmZpcnN0
Q2hpbGQ7CiAKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihm
dW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVu
Y3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAg
LTIwMiw3ICsyMDIsNyBAQCBmdW5jdGlvbiB0ZXN0T2xkVmFsdWUoKSB7CiAgICAgICAgIGRpdiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICBkaXYudGV4dENvbnRlbnQg
PSAnZm9vJzsKICAgICAgICAgY2hhckRhdGFOb2RlID0gZGl2LmZpcnN0Q2hpbGQ7Ci0gICAgICAg
IG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25z
KSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0
YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0YXRpb25zOwogICAg
ICAgICB9KTsKICAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShjaGFyRGF0YU5vZGUsIHtjaGFyYWN0
ZXJEYXRhOiB0cnVlLCBjaGFyYWN0ZXJEYXRhT2xkVmFsdWU6IHRydWV9KTsKQEAgLTIzOSwxMCAr
MjM5LDEwIEBAIGZ1bmN0aW9uIHRlc3RPbGRWYWx1ZUFzUmVxdWVzdGVkKCkgewogICAgICAgICBk
aXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgZGl2LnRleHRDb250
ZW50ID0gJ2Zvbyc7CiAgICAgICAgIGNoYXJEYXRhTm9kZSA9IGRpdi5maXJzdENoaWxkOwotICAg
ICAgICBvYnNlcnZlcldpdGhPbGRWYWx1ZSA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1
bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBvYnNlcnZlcldpdGhPbGRWYWx1ZSA9IG5ldyBN
dXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICAgICAgd2luZG93
Lm11dGF0aW9uc1dpdGhPbGRWYWx1ZSA9IG11dGF0aW9uczsKICAgICAgICAgfSk7Ci0gICAgICAg
IG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25z
KSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0
YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0YXRpb25zOwogICAg
ICAgICB9KTsKICAgICAgICAgb2JzZXJ2ZXJXaXRoT2xkVmFsdWUub2JzZXJ2ZShjaGFyRGF0YU5v
ZGUsIHtjaGFyYWN0ZXJEYXRhOiB0cnVlLCBjaGFyYWN0ZXJEYXRhT2xkVmFsdWU6IHRydWV9KTsK
QEAgLTI3Nyw3ICsyNzcsNyBAQCBmdW5jdGlvbiB0ZXN0T2xkVmFsdWVVbmlvbk11bHRpcGxlT2Jz
ZXJ2YXRpb25zKCkgewogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKICAgICAgICAgZGl2LnRleHRDb250ZW50ID0gJ2Zvbyc7CiAgICAgICAgIGNoYXJEYXRhTm9k
ZSA9IGRpdi5maXJzdENoaWxkOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlv
bk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBN
dXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICAgICAgd2luZG93
Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAgICAgICAgIG9ic2VydmVyLm9i
c2VydmUoZGl2LCB7Y2hhcmFjdGVyRGF0YTogdHJ1ZSwgY2hhcmFjdGVyRGF0YU9sZFZhbHVlOiB0
cnVlLCBzdWJ0cmVlOiB0cnVlfSk7CkBAIC0zMTYsOSArMzE2LDkgQEAgZnVuY3Rpb24gcnVuTmV4
dFRlc3QoKSB7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCi1kZXNjcmlwdGlvbignVGVz
dCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUgb24gQ2hhcmFjdGVyRGF0YSBub2Rlcycp
OworZGVzY3JpcHRpb24oJ1Rlc3QgTXV0YXRpb25PYnNlcnZlci5vYnNlcnZlIG9uIENoYXJhY3Rl
ckRhdGEgbm9kZXMnKTsKIAotaWYgKCF3aW5kb3cuV2ViS2l0TXV0YXRpb25PYnNlcnZlcikKK2lm
ICghd2luZG93Lk11dGF0aW9uT2JzZXJ2ZXIpCiAgICAgdGVzdEZhaWxlZCgnVGhpcyB0ZXN0IHJl
cXVpcmVzIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpJyk7CiBlbHNlCiAgICAgcnVuTmV4dFRl
c3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1jaGls
ZExpc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWNo
aWxkTGlzdC1leHBlY3RlZC50eHQKaW5kZXggZDdiYjI3NjQyZjFkNDZiZWZiYzJkMDBmYjFhZTU5
ZDhlMDc3ZDIwYS4uYzNjMWY2Y2RlNWIyMTBmYzZhMzU0MjA4ZjEwZTYzMzQ1MjU5ZDhiOSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWNoaWxkTGlzdC1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWNoaWxkTGlz
dC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1UZXN0IFdlYktpdE11dGF0aW9uT2JzZXJ2
ZXIub2JzZXJ2ZSBvbiBhdHRyaWJ1dGVzLgorVGVzdCBNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUg
b24gYXR0cmlidXRlcy4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtY2hpbGRMaXN0Lmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtY2hpbGRMaXN0Lmh0bWwKaW5kZXggYTNhODRk
NDQzODg2NGFlNzJiMjljNjg5OGM0NDBlMDk4ZDI4ZDkxMi4uZGM2MThjNmFmN2IwNTI5YWZmYTU4
ZjFhZmQwYmQ1NmMwYTQzMWY1MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlv
bi9vYnNlcnZlLWNoaWxkTGlzdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24v
b2JzZXJ2ZS1jaGlsZExpc3QuaHRtbApAQCAtMjQsNyArMjQsNyBAQCBmdW5jdGlvbiB0ZXN0QmFz
aWMoKSB7CiAKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKICAgICAgICAgZGl2ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11
dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRh
dGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAg
ICAgICAgIH0pOwogCkBAIC04NCw3ICs4NCw3IEBAIGZ1bmN0aW9uIHRlc3RXcm9uZ1R5cGUoKSB7
CiAKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKICAgICAgICAgZGl2ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9i
c2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAg
IH0pOwogCkBAIC0xMTMsNyArMTEzLDcgQEAgZnVuY3Rpb24gdGVzdE11bHRpcGxlUmVnaXN0cmF0
aW9uKCkgewogICAgICAgICBjYWxscyA9IDA7CiAgICAgICAgIG11dGF0aW9ucyA9IG51bGw7CiAg
ICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgICAgICBvYnNl
cnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAg
b2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAgICAg
ICBtdXRhdGlvbnMgPSBtOwogICAgICAgICAgICAgY2FsbHMrKzsKICAgICAgICAgfSk7CkBAIC0x
NTQsMTAgKzE1NCwxMCBAQCBmdW5jdGlvbiB0ZXN0TXVsdGlwbGVPYnNlcnZlcnMoKSB7CiAgICAg
ICAgIGRlYnVnKCdUZXN0aW5nIHRoYXQgbXVsdGlwbGUgb2JzZXJ2ZXJzIGNhbiBiZSByZWdpc3Rl
cmVkIHRvIGEgZ2l2ZW4gbm9kZSBhbmQgYm90aCByZWNlaXZlIG11dGF0aW9ucy4nKTsKICAgICAg
ICAgbXV0YXRpb25zID0gbnVsbDsKICAgICAgICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIo
ZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1
bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwotICAg
ICAgICBvYnNlcnZlcjIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7
CisgICAgICAgIG9ic2VydmVyMiA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsK
ICAgICAgICAgICAgIG11dGF0aW9uczIgPSBtOwogICAgICAgICB9KTsKICAgICAgICAgb2JzZXJ2
ZXIub2JzZXJ2ZShkaXYsIHsgY2hpbGRMaXN0OiB0cnVlIH0pOwpAQCAtMTkyLDcgKzE5Miw3IEBA
IGZ1bmN0aW9uIHRlc3RJbm5lckhUTUxBbmRJbm5lclRleHQoKSB7CiAgICAgICAgIGRpdi5pbm5l
ckhUTUwgPSAnPHNwYW4+Rm9vPC9zcGFuPjxkaXY+QmFyPC9kaXY+JzsKICAgICAgICAgcmVtb3Zl
ZERpdjEgPSBkaXYuZmlyc3RDaGlsZDsKICAgICAgICAgcmVtb3ZlZERpdjIgPSByZW1vdmVkRGl2
MS5uZXh0U2libGluZzsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNl
cnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2
ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7
CiAKQEAgLTI1MCw3ICsyNTAsNyBAQCBmdW5jdGlvbiB0ZXN0UmVwbGFjZUNoaWxkKCkgewogICAg
ICAgICBkaXYuaW5uZXJIVE1MID0gJzxzcGFuPkZvbzwvc3Bhbj48ZGl2PkJhcjwvZGl2Pic7CiAg
ICAgICAgIHJlbW92ZWREaXYxID0gZGl2LmZpcnN0Q2hpbGQ7CiAKLSAgICAgICAgb2JzZXJ2ZXIg
PSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2Vy
dmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0
YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTMxNSw3ICszMTUsNyBAQCBmdW5jdGlvbiB0
ZXN0SW5zZXJ0QmVmb3JlKCkgewogICAgICAgICBhZGRlZERpdjEgPSBmcmFnbWVudC5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7CiAgICAgICAgIGFkZGVkRGl2MiA9
IGZyYWdtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsKIAot
ICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0p
IHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7
CiAgICAgICAgICAgICBtdXRhdGlvbnMgPSBtOwogICAgICAgICB9KTsKIApAQCAtMzU2LDcgKzM1
Niw3IEBAIGZ1bmN0aW9uIHRlc3RBcHBlbmRDaGlsZCgpIHsKICAgICAgICAgYWRkZWREaXYxID0g
ZnJhZ21lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpOwogICAg
ICAgICBhZGRlZERpdjIgPSBmcmFnbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKSk7CiAKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNl
cnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2
ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7
CiAKQEAgLTM4Nyw3ICszODcsNyBAQCBmdW5jdGlvbiB0ZXN0SW5uZXJIVE1MRW1wdHkoKSB7CiAK
ICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAg
ICBtdXRhdGlvbnMgPSBudWxsOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlv
bk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBN
dXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICAgICAgd2luZG93
Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAgICAgICAgIG9ic2VydmVyLm9i
c2VydmUoZGl2LCB7Y2hpbGRMaXN0OiB0cnVlfSk7CkBAIC00MTQsOSArNDE0LDkgQEAgZnVuY3Rp
b24gcnVuTmV4dFRlc3QoKSB7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCi1kZXNjcmlw
dGlvbignVGVzdCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUgb24gYXR0cmlidXRlcy4n
KTsKK2Rlc2NyaXB0aW9uKCdUZXN0IE11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSBvbiBhdHRyaWJ1
dGVzLicpOwogCi1pZiAoIXdpbmRvdy5XZWJLaXRNdXRhdGlvbk9ic2VydmVyKQoraWYgKCF3aW5k
b3cuTXV0YXRpb25PYnNlcnZlcikKICAgICB0ZXN0RmFpbGVkKCdUaGlzIHRlc3QgcmVxdWlyZXMg
RU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUyknKTsKIGVsc2UKICAgICBydW5OZXh0VGVzdCgpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWV4Y2VwdGlvbnMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWV4Y2VwdGlv
bnMtZXhwZWN0ZWQudHh0CmluZGV4IDlmNmUzN2E5MTA2ZjA2MzgwMGFkZDMzZDdiZTBlMzEyZTBk
MThiMjUuLjhjOWI0ZGU4MDhlYTFlZDliOTA0MzQ5NmJjNDU5NTk0MmY0MzQ4YjEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1leGNlcHRpb25zLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtZXhjZXB0aW9ucy1l
eHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1UZXN0IHRoYXQgV2ViS2l0TXV0YXRpb25PYnNl
cnZlci5vYnNlcnZlIHRocm93cyBleGNlcHRpb25zIGFwcHJvcHJpYXRlbHkKK1Rlc3QgdGhhdCBN
dXRhdGlvbk9ic2VydmVyLm9ic2VydmUgdGhyb3dzIGV4Y2VwdGlvbnMgYXBwcm9wcmlhdGVseQog
CiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvbXV0YXRpb24vb2JzZXJ2ZS1leGNlcHRpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211
dGF0aW9uL29ic2VydmUtZXhjZXB0aW9ucy5odG1sCmluZGV4IGQ0NjU3YjZkZDdjMmUzMzEyODNl
Mjg5MjVjZGY5MGM1ZGY0NjIwNTkuLjc2NjE1NDdiMjc5ZmZmY2JjODMyN2Q1NmJhMTk2ZmViM2Ex
YjViZWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1leGNl
cHRpb25zLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWV4Y2Vw
dGlvbnMuaHRtbApAQCAtMTEsNyArMTEsNyBAQAogPHNjcmlwdD4KIAogZnVuY3Rpb24gcnVuVGVz
dCgpIHsKLSAgICB3aW5kb3cub2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihm
dW5jdGlvbihtdXRhdGlvbnMpIHsgfSk7CisgICAgd2luZG93Lm9ic2VydmVyID0gbmV3IE11dGF0
aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7IH0pOwogICAgIHNob3VsZFRocm93KCdv
YnNlcnZlci5vYnNlcnZlKCknKTsKICAgICBzaG91bGRUaHJvdygnb2JzZXJ2ZXIub2JzZXJ2ZShu
dWxsKScpOwogICAgIHNob3VsZFRocm93KCdvYnNlcnZlci5vYnNlcnZlKHVuZGVmaW5lZCknKTsK
QEAgLTI2LDkgKzI2LDkgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICBzaG91bGRUaHJvdygn
b2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5ib2R5LCB7Y2hhcmFjdGVyRGF0YTogdHJ1ZSwgYXR0
cmlidXRlRmlsdGVyOiBbImlkIl19KScpOwogfQogCi1kZXNjcmlwdGlvbignVGVzdCB0aGF0IFdl
YktpdE11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSB0aHJvd3MgZXhjZXB0aW9ucyBhcHByb3ByaWF0
ZWx5Jyk7CitkZXNjcmlwdGlvbignVGVzdCB0aGF0IE11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSB0
aHJvd3MgZXhjZXB0aW9ucyBhcHByb3ByaWF0ZWx5Jyk7CiAKLWlmICghd2luZG93LldlYktpdE11
dGF0aW9uT2JzZXJ2ZXIpCitpZiAoIXdpbmRvdy5NdXRhdGlvbk9ic2VydmVyKQogICAgIHRlc3RG
YWlsZWQoJ1RoaXMgdGVzdCByZXF1aXJlcyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKScpOwog
ZWxzZQogICAgIHJ1blRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRp
b24vb2JzZXJ2ZS1zdWJ0cmVlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRp
b24vb2JzZXJ2ZS1zdWJ0cmVlLWV4cGVjdGVkLnR4dAppbmRleCBiODk0ZGNkYTFiM2Y2ZDJkMzQ5
YmQ3YzRhOWE0Y2QwNjlhNGU2OWVkLi42NTNjN2E0ODIyMWM5M2UxOWQ3NjI4YWE2Y2Y4Njg5NGYy
OTEyMjAwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtc3Vi
dHJlZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZl
LXN1YnRyZWUtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotVGVzdCBXZWJLaXRNdXRhdGlv
bk9ic2VydmVyLm9ic2VydmUgb24gYSBzdWJ0cmVlCitUZXN0IE11dGF0aW9uT2JzZXJ2ZXIub2Jz
ZXJ2ZSBvbiBhIHN1YnRyZWUKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtc3VidHJlZS5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLXN1YnRyZWUuaHRtbAppbmRleCAzN2U0MDI4
NWUyYjhiNzFkMjIyNmZkMzYxODFkYTRiODUzYTIwNTcyLi45NTUxOTQ3YTRjMzI4ZjVhODM0ODRj
NjRmZTk0NTNjYTAyZDY1NmEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9u
L29ic2VydmUtc3VidHJlZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2Jz
ZXJ2ZS1zdWJ0cmVlLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAgZnVuY3Rpb24gdGVzdEJhc2ljKCkg
ewogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAg
c3ViRGl2ID0gZGl2LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsK
ICAgICAgICAgc3ViRGl2LmlubmVySFRNTCA9ICdoZWxsbywgd29ybGQnOwotICAgICAgICBvYnNl
cnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewor
ICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9u
cykgewogICAgICAgICAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAg
fSk7CiAKQEAgLTY2LDEwICs2NiwxMCBAQCBmdW5jdGlvbiB0ZXN0TXVsdGlwbGVPYnNlcnZlcnMo
KSB7CiAgICAgICAgIG11dGF0aW9uczIgPSBudWxsOwogICAgICAgICBkaXYgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgc3ViRGl2ID0gZGl2LmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2Vi
S2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2
ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICAgICAg
ICAgIHdpbmRvdy5tdXRhdGlvbnMgPSBtdXRhdGlvbnM7CiAgICAgICAgIH0pOwotICAgICAgICBv
YnNlcnZlcjIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMp
IHsKKyAgICAgICAgb2JzZXJ2ZXIyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0
YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zMiA9IG11dGF0aW9uczsKICAg
ICAgICAgfSk7CiAKQEAgLTEwOSw3ICsxMDksNyBAQCBmdW5jdGlvbiB0ZXN0TXVsdGlwbGVPYnNl
cnZhdGlvbnMoKSB7CiAgICAgICAgIGNhbGxzID0gMDsKICAgICAgICAgZGl2ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgIHN1YkRpdiA9IGRpdi5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdl
YktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2Vy
dmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAg
ICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0YXRpb25zOwogICAgICAgICAgICAgKytjYWxsczsK
ICAgICAgICAgfSk7CkBAIC0xNDUsNyArMTQ1LDcgQEAgZnVuY3Rpb24gdGVzdFRyYW5zaWVudERl
dGFjaGVkQmFzaWMoKSB7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpOwogICAgICAgICBzdWJEaXYgPSBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZGl2JykpOwogICAgICAgICBzdWJEaXYuaW5uZXJIVE1MID0gJ2hlbGxvLCB3b3JsZCc7
Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24o
bXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVu
Y3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0YXRp
b25zOwogICAgICAgICB9KTsKIApAQCAtMjMwLDcgKzIzMCw3IEBAIGZ1bmN0aW9uIHRlc3RUcmFu
c2llbnREZXRhY2hlZERldGFpbGVkKCkgewogICAgICAgICBzdWJEaXYyLmlubmVySFRNTCA9ICdo
ZWxsbywgd29ybGQnOwogICAgICAgICBzdWJEaXYzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
ZGl2Jyk7CiAKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihm
dW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNl
cnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICAgICAgICAgIHdpbmRvdy5tdXRhdGlvbnMg
PSBtdXRhdGlvbnM7CiAgICAgICAgIH0pOwogCkBAIC0yOTYsOSArMjk2LDkgQEAgZnVuY3Rpb24g
cnVuTmV4dFRlc3QoKSB7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCi1kZXNjcmlwdGlv
bignVGVzdCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUgb24gYSBzdWJ0cmVlJyk7Citk
ZXNjcmlwdGlvbignVGVzdCBNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUgb24gYSBzdWJ0cmVlJyk7
CiAKLWlmICghd2luZG93LldlYktpdE11dGF0aW9uT2JzZXJ2ZXIpCitpZiAoIXdpbmRvdy5NdXRh
dGlvbk9ic2VydmVyKQogICAgIHRlc3RGYWlsZWQoJ1RoaXMgdGVzdCByZXF1aXJlcyBFTkFCTEUo
TVVUQVRJT05fT0JTRVJWRVJTKScpOwogZWxzZQogICAgIHJ1bk5leHRUZXN0KCk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL3NoYWRvdy1kb20uaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvbXV0YXRpb24vc2hhZG93LWRvbS5odG1sCmluZGV4IDY2Yzc5ZWFjMDBmOTU5NjBh
MDQzMWNlMmIyOTUyMmNhMDc1NmJmYWIuLjczMTdkN2E3NTkwOTBhNjUxMzI1MTFjY2JmNGY1MTgw
YTA0NTVkZTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vc2hhZG93LWRv
bS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vc2hhZG93LWRvbS5odG1sCkBA
IC0xNCw3ICsxNCw3IEBAIGZ1bmN0aW9uIGRvVGVzdCgpIHsKICAgICB9CiAKICAgICB2YXIgc2hh
ZG93Um9vdCA9IGludGVybmFscy5zaGFkb3dSb290KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lu
cHV0JykpOwotICAgIHZhciBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1
bmN0aW9uKG11dGF0aW9ucykgeworICAgIHZhciBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2Vy
dmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0
YXRpb25zOwogICAgIH0pOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9u
L3Rha2VSZWNvcmRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vdGFr
ZVJlY29yZHMtZXhwZWN0ZWQudHh0CmluZGV4IGFjNjQ0MjZhYjEzYWUyZTFjOTAzOGRmYjYzYjc5
MTJkM2EwNjVlZjcuLjlmMzMyNjE0ZjQzNmUxYzIxMWY4YTUyZDY3NzA2NzI4YWNhMTU0ZDMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vdGFrZVJlY29yZHMtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vdGFrZVJlY29yZHMtZXhwZWN0ZWQu
dHh0CkBAIC0xLDQgKzEsNCBAQAotVGVzdGluZyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLnRha2VS
ZWNvcmRzCitUZXN0aW5nIE11dGF0aW9uT2JzZXJ2ZXIudGFrZVJlY29yZHMKIAogT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9u
L3Rha2VSZWNvcmRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL3Rha2VSZWNvcmRz
Lmh0bWwKaW5kZXggMDM5YTMyZmJkOTExODBiYThkNjZjMTdkYjg1NzJjM2U0NTQ0Y2JjMi4uNjM0
MTgwYTU5Y2U1NGRkM2M2NzUyZTllYWNiZjM3ZDA5Y2UyMjAwYiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9tdXRhdGlvbi90YWtlUmVjb3Jkcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvbXV0YXRpb24vdGFrZVJlY29yZHMuaHRtbApAQCAtMjMsNyArMjMsNyBAQCBmdW5jdGlvbiB0
ZXN0QmFzaWMoKSB7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OwogICAgICAgICBzdWJEaXYgPSBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2JykpOwogICAgICAgICBzdWJEaXYuaW5uZXJIVE1MID0gJ2hlbGxvLCB3b3JsZCc7Ci0g
ICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0
YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rp
b24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0YXRpb25z
OwogICAgICAgICB9KTsKIApAQCAtNzMsOSArNzMsOSBAQCBmdW5jdGlvbiBydW5OZXh0VGVzdCgp
IHsKICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKLWRlc2NyaXB0aW9uKCdUZXN0aW5nIFdl
YktpdE11dGF0aW9uT2JzZXJ2ZXIudGFrZVJlY29yZHMnKTsKK2Rlc2NyaXB0aW9uKCdUZXN0aW5n
IE11dGF0aW9uT2JzZXJ2ZXIudGFrZVJlY29yZHMnKTsKIAotaWYgKCF3aW5kb3cuV2ViS2l0TXV0
YXRpb25PYnNlcnZlcikKK2lmICghd2luZG93Lk11dGF0aW9uT2JzZXJ2ZXIpCiAgICAgdGVzdEZh
aWxlZCgnVGhpcyB0ZXN0IHJlcXVpcmVzIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpJyk7CiBl
bHNlCiAgICAgcnVuTmV4dFRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0
YXRpb24vdHJhbnNpZW50LWdjLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9u
L3RyYW5zaWVudC1nYy1jcmFzaC5odG1sCmluZGV4IDZjMTM2NDJkNzY4YTExODI5YmJmOGFiNTlh
MWVmYzEyMDllYWY1MTMuLjZjZTZlYjhjM2FmZWNhNDZhYzI1MjI1ZGIyZDE1YmYwNjkwMTQ1YjYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vdHJhbnNpZW50LWdjLWNyYXNo
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi90cmFuc2llbnQtZ2MtY3Jhc2gu
aHRtbApAQCAtNiw3ICs2LDcgQEAgZGVzY3JpcHRpb24oJ0NsZWFyaW5nIHRyYW5zaWVudCBvYnNl
cnZlcnMgYWZ0ZXIgb2JzZXJ2YXRpb24gbm9kZSBpcyBHQ2VkIHNob3VsZAogZnVuY3Rpb24gY2Fs
bGJhY2sobXV0YXRpb25zKSB7CiAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKIH0K
LXZhciBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGNhbGxiYWNrKTsKK3Zh
ciBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGNhbGxiYWNrKTsKIAogdmFyIGRpdiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogdmFyIHNwYW4gPSBkaXYuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147869</attachid>
            <date>2012-06-15 12:01:22 -0700</date>
            <delta_ts>2012-06-26 12:17:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89231-20120615120122.patch</filename>
            <type>text/plain</type>
            <size>176083</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwNDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDM4YzVhMzk5NjJjZjhm
ZGUxMjU4MmY0MGJkOWRlYTg4ZTc1MTQyNS4uZjhjMDYwODQxOTU2MTkxYmEwNTEyMTEyZjk1ODIz
ZTI2YTdmNjM2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwNyBAQAorMjAxMi0wNi0xNSAgQWRh
bSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZW1vdmUgdmVuZG9yIHBy
ZWZpeCBmcm9tIERPTSBNdXRhdGlvbk9ic2VydmVycworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkyMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBNdXRhdGlvbk9ic2VydmVycyBoYXZlIGJlZW4gc3BlY2lm
aWVkIGFzIHBhcnQgb2YgRE9NNCBmb3Igc29tZSB0aW1lIG5vdywKKyAgICAgICAgYW5kIE1vemls
bGEgaXMgc2hpcHBpbmcgYSBjb21wYXRpYmxlIGltcGxlbWVudGF0aW9uIHdpdGhvdXQgYSB2ZW5k
b3IKKyAgICAgICAgcHJlZml4LiBUaGlzIGNoYW5nZSBleHBvc2VzIHRoZSBNdXRhdGlvbk9ic2Vy
dmVyIGNvbnN0cnVjdG9yIG9uIHRoZQorICAgICAgICBXaW5kb3cgb2JqZWN0LiBBbGwgcmVmZXJl
bmNlcyB0byB0aGUgb2xkIHByZWZpeGVkIG5hbWUgaGF2ZSBiZWVuCisgICAgICAgIHJlbW92ZWQs
IHNhdmUgZm9yIGEgYmFja3dhcmRzLWNvbXBhdGliaWxpdHkgcmVmZXJlbmNlIGluIERPTVdpbmRv
dy5pZGwuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0
eS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
LmNwcDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBVc2VKU0MuY21h
a2U6CisgICAgICAgICogVXNlVjguY21ha2U6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAg
ICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0JpbmRp
bmdzQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTWFpblRocmVhZEV4ZWNT
dGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU01haW5UaHJlYWRFeGVjU3RhdGU6OmRpZExl
YXZlU2NyaXB0Q29udGV4dCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxi
YWNrQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTTXV0YXRpb25DYWxsYmFjazo6aGFu
ZGxlRXZlbnQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTXV0YXRpb25PYnNlcnZlckN1c3Rv
bS5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdE11
dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpKU011dGF0aW9uT2JzZXJ2ZXJDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNNdXRhdGlv
bk9ic2VydmVyKToKKyAgICAgICAgKEJvb2xlYW5PcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
SlNNdXRhdGlvbk9ic2VydmVyOjpvYnNlcnZlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFJl
Y3Vyc2lvblNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4UmVjdXJzaW9uU2NvcGU6OmRp
ZExlYXZlU2NyaXB0Q29udGV4dCk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0
YXRpb25DYWxsYmFja0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOE11dGF0aW9uQ2Fs
bGJhY2s6OmhhbmRsZUV2ZW50KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhNdXRh
dGlvbk9ic2VydmVyQ3VzdG9tLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOFdlYktpdE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwLgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpWOE11dGF0aW9uT2JzZXJ2ZXI6OmNvbnN0
cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhNdXRhdGlvbk9ic2VydmVyOjpv
YnNlcnZlQ2FsbGJhY2spOgorICAgICAgICAqIGRvbS9DaGFyYWN0ZXJEYXRhLmNwcDoKKyAgICAg
ICAgKiBkb20vQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q2hp
bGRMaXN0TXV0YXRpb25TY29wZTo6Q2hpbGRMaXN0TXV0YXRpb25TY29wZSk6CisgICAgICAgICog
ZG9tL0RPTUFsbEluT25lLmNwcDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50OjpoYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZSk6CisgICAgICAg
ICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAqIGRvbS9NdXRhdGlvbkNhbGxiYWNrLmg6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE11dGF0aW9uQ2FsbGJhY2spOgorICAgICAgICAq
IGRvbS9NdXRhdGlvbkNhbGxiYWNrLmlkbDoKKyAgICAgICAgKiBkb20vTXV0YXRpb25PYnNlcnZl
ci5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TXV0YXRpb25PYnNl
cnZlci5jcHAuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9u
T2JzZXJ2ZXI6Ok9ic2VydmVyTGVzc1RoYW46Om9wZXJhdG9yKCkpOgorICAgICAgICAoV2ViQ29y
ZTo6TXV0YXRpb25PYnNlcnZlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9u
T2JzZXJ2ZXI6Ok11dGF0aW9uT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25P
YnNlcnZlcjo6fk11dGF0aW9uT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25P
YnNlcnZlcjo6dmFsaWRhdGVPcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2Jz
ZXJ2ZXI6Om9ic2VydmUpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6dGFr
ZVJlY29yZHMpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6ZGlzY29ubmVj
dCk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyOjpvYnNlcnZhdGlvblN0YXJ0
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6b2JzZXJ2YXRpb25FbmRl
ZCk6CisgICAgICAgIChXZWJDb3JlOjphY3RpdmVNdXRhdGlvbk9ic2VydmVycyk6CisgICAgICAg
IChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyOjplbnF1ZXVlTXV0YXRpb25SZWNvcmQpOgorICAg
ICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6c2V0SGFzVHJhbnNpZW50UmVnaXN0cmF0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6OmRlbGl2ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6ZGVsaXZlckFsbE11dGF0aW9ucyk6Cisg
ICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXIuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmguCisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKE11dGF0aW9uT2JzZXJ2ZXIpOgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVy
LmlkbDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyLmlkbC4KKyAgICAgICAgKiBkb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6OmNyZWF0
ZUlmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdy
b3VwOjpNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cCk6CisgICAgICAgIChXZWJDb3JlOjpN
dXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6aXNPbGRWYWx1ZVJlcXVlc3RlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6ZW5xdWV1ZU11dGF0
aW9uUmVjb3JkKToKKyAgICAgICAgKiBkb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAu
aDoKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpjcmVh
dGVGb3JDaGlsZExpc3RNdXRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2Vy
dmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlRm9yQ2hhcmFjdGVyRGF0YU11dGF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpjcmVhdGVGb3JBdHRy
aWJ1dGVzTXV0YXRpb24pOgorICAgICAgICAoTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAp
OgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb246OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjpNdXRhdGlvbk9ic2Vy
dmVyUmVnaXN0cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJSZWdp
c3RyYXRpb246OnNob3VsZFJlY2VpdmVNdXRhdGlvbkZyb20pOgorICAgICAgICAqIGRvbS9NdXRh
dGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmg6CisgICAgICAgIChNdXRhdGlvbk9ic2VydmVyUmVn
aXN0cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRp
b246OmlzU3VidHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyUmVnaXN0
cmF0aW9uOjpvYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyUmVn
aXN0cmF0aW9uOjpkZWxpdmVyeU9wdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25P
YnNlcnZlclJlZ2lzdHJhdGlvbjo6bXV0YXRpb25UeXBlcyk6CisgICAgICAgICogZG9tL05vZGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6Y29sbGVjdE1hdGNoaW5nT2JzZXJ2ZXJzRm9y
TXV0YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6Z2V0UmVnaXN0ZXJlZE11dGF0aW9u
T2JzZXJ2ZXJzT2ZUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnJlZ2lzdGVyTXV0YXRp
b25PYnNlcnZlcik6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKE5vZGUpOgorICAg
ICAgICAqIGRvbS9Ob2RlUmFyZURhdGEuaDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6
CisKIDIwMTItMDYtMTUgIFNpbHZpYSBQZmVpZmZlciAgPHNpbHZpYXBmQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZW1vdmUgdm9sdW1lIHRodW1iIGZvciB2aWRlb3Mgd2l0aG91dCBhdWRpbyB0
cmFjay4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggYmVlOTYzOGJmM2I0MzUzYWFkYWYw
ODZhZTQwMzRkNTNhNGZkMDU1ZC4uZGFmNDk5ZjU4YTQxZDkzOGIxNDBlNWZkYzMyNTZmM2MxOWUy
ZmQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMi0w
Ni0xNSAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KKworICAgICAgICBVbnByZWZp
eCBET00gTXV0YXRpb25PYnNlcnZlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg5MjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBzcmMvV2ViS2l0LmNwcDoKKwogMjAxMi0wNi0xNSAgU2FtaSBLeW9z
dGlsYSAgPHNreW9zdGlsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIEFsbG93
IHNjcm9sbGluZyBub24tcm9vdCBsYXllcnMgaW4gdGhlIGNvbXBvc2l0b3IgdGhyZWFkCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9D
aGFuZ2VMb2cKaW5kZXggNTJlMTBmMGZkNWQ2ZmQ0OWM1MTFmODliM2ZjNmQ3MmFlYTAyOTcwOS4u
MDM0MTJkNTljZTEwNjZlZWJiOTVmMDMyNDkyMWNiOTNmYTNhOTcxNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTA2LTE1ICBBZGFtIEtsZWluICA8YWRhbWtAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFVucHJlZml4IERPTSBNdXRhdGlvbk9ic2VydmVycworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkyMzEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHA6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1
cHBvcnRFZmw6OmRlbGl2ZXJBbGxNdXRhdGlvbnNJZk5lY2Vzc2FyeSk6CisKIDIwMTItMDYtMTUg
IENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KIAogICAgICAg
ICBbRUZMXSBFRkwncyBMYXlvdXRUZXN0Q29udHJvbGxlciBkb2VzIG5vdCBzdXBwb3J0IHRpdGxl
VGV4dERpcmVjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDdhNTBhN2MzZDBlMTVjOTcyNzdkMTI4
YjllNWUyNDc5NjJkYTVhNmMuLjBjNTJmYzhkMTA0MjFkZGViN2Q1OWRhNWU3ODIxODNiMGNmZmJl
NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wNi0xNSAgQWRhbSBL
bGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KKworICAgICAgICBVbnByZWZpeCBET00gTXV0YXRp
b25PYnNlcnZlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg5MjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgorICAgICAg
ICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpkZWxpdmVyQWxsTXV0YXRpb25zSWZOZWNlc3Nh
cnkpOgorCiAyMDEyLTA2LTE0ICBBbGVqYW5kcm8gRy4gQ2FzdHJvICA8YWxleEBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtHVEtdIEFkZCBUZXh0dXJlTWFwcGVyIEltYWdlQnVmZmVyIHN1cHBvcnQg
YXMgYSBmYWxsYmFjayBmcm9tIHRoZSBoYXJkd2FyZSBhY2NlbGVyYXRlZCBwYXRoCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CmluZGV4IDlhZDg1YmI5NDIyNTA0ZGMzMmNkNmQxZmY4OGYzNDY4M2FlZDQ2ZmEu
LmJhYzYzYjdhMjgzYTUyOGQxNWMwNjk2MmVkZmQ0OWRlMDM1ZDQ0MWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CkBAIC0yMjEsNiArMjIxLDcgQEAgU0VUKFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgZG9t
L01vdXNlRXZlbnQuaWRsCiAgICAgZG9tL011dGF0aW9uQ2FsbGJhY2suaWRsCiAgICAgZG9tL011
dGF0aW9uRXZlbnQuaWRsCisgICAgZG9tL011dGF0aW9uT2JzZXJ2ZXIuaWRsCiAgICAgZG9tL011
dGF0aW9uUmVjb3JkLmlkbAogICAgIGRvbS9OYW1lZE5vZGVNYXAuaWRsCiAgICAgZG9tL05vZGVG
aWx0ZXIuaWRsCkBAIC0yNDQsNyArMjQ1LDYgQEAgU0VUKFdlYkNvcmVfSURMX0ZJTEVTCiAgICAg
ZG9tL1RyZWVXYWxrZXIuaWRsCiAgICAgZG9tL1VJRXZlbnQuaWRsCiAgICAgZG9tL1dlYktpdEFu
aW1hdGlvbkV2ZW50LmlkbAotICAgIGRvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmlkbAogICAg
IGRvbS9XZWJLaXROYW1lZEZsb3cuaWRsCiAgICAgZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5p
ZGwKICAgICBkb20vV2hlZWxFdmVudC5pZGwKQEAgLTYwOSw2ICs2MDksNyBAQCBTRVQoV2ViQ29y
ZV9TT1VSQ0VTCiAgICAgZG9tL01vdXNlRXZlbnQuY3BwCiAgICAgZG9tL01vdXNlUmVsYXRlZEV2
ZW50LmNwcAogICAgIGRvbS9NdXRhdGlvbkV2ZW50LmNwcAorICAgIGRvbS9NdXRhdGlvbk9ic2Vy
dmVyLmNwcAogICAgIGRvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5jcHAKICAgICBk
b20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAKICAgICBkb20vTXV0YXRpb25SZWNv
cmQuY3BwCkBAIC02NjIsNyArNjYzLDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9V
c2VyVHlwaW5nR2VzdHVyZUluZGljYXRvci5jcHAKICAgICBkb20vVmlld3BvcnRBcmd1bWVudHMu
Y3BwCiAgICAgZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50LmNwcAotICAgIGRvbS9XZWJLaXRNdXRh
dGlvbk9ic2VydmVyLmNwcAogICAgIGRvbS9XZWJLaXROYW1lZEZsb3cuY3BwCiAgICAgZG9tL1dl
YktpdFRyYW5zaXRpb25FdmVudC5jcHAKICAgICBkb20vV2hlZWxFdmVudC5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLmNwcAppbmRleCA4ZTgxMGI5MGUzNmYwMjNkMjY4MGQ2MTk4ZWUxOTc1MDM0
NmMyM2Y2Li4xNmY2ZTE1MmUzM2M5MzZmNzc4YzgwYTRlMTQwYWZkNjljMGFiYTE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMuY3BwCkBAIC0yNDQsNiArMjQ0LDcgQEAKICNpbmNsdWRlICJKU01v
dXNlRXZlbnQuY3BwIgogI2luY2x1ZGUgIkpTTXV0YXRpb25DYWxsYmFjay5jcHAiCiAjaW5jbHVk
ZSAiSlNNdXRhdGlvbkV2ZW50LmNwcCIKKyNpbmNsdWRlICJKU011dGF0aW9uT2JzZXJ2ZXIuY3Bw
IgogI2luY2x1ZGUgIkpTTXV0YXRpb25SZWNvcmQuY3BwIgogI2luY2x1ZGUgIkpTTmFtZWROb2Rl
TWFwLmNwcCIKICNpbmNsdWRlICJKU05hdmlnYXRvci5jcHAiCkBAIC00NzcsNyArNDc4LDYgQEAK
ICNpbmNsdWRlICJKU1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCIKICNpbmNsdWRlICJKU1dl
YktpdENTU01hdHJpeC5jcHAiCiAjaW5jbHVkZSAiSlNXZWJLaXRDU1NSZWdpb25SdWxlLmNwcCIK
LSNpbmNsdWRlICJKU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuY3BwIgogI2luY2x1ZGUgIkpTV2Vi
S2l0TmFtZWRGbG93LmNwcCIKICNpbmNsdWRlICJKU1dlYktpdFBvaW50LmNwcCIKICNpbmNsdWRl
ICJKU1dlYktpdFRyYW5zaXRpb25FdmVudC5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQppbmRleCBkNTU0MTRmYzQ0YWRhM2I5NzJmNzhhNWQ3OTNiMjI5NmQwMTI5NmMwLi4yZmNjMjMz
N2NiNTc2YTU1MGU4NGM5NWZiOTg3MWFhMmYzN2UyZjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKQEAgLTIyNCw2ICsyMjQsNyBAQCBCSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJD
b3JlKS9kb20vTW91c2VFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL011dGF0aW9uQ2Fs
bGJhY2suaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9NdXRhdGlvbkV2ZW50LmlkbCBcCisgICAg
JChXZWJDb3JlKS9kb20vTXV0YXRpb25PYnNlcnZlci5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9t
L011dGF0aW9uUmVjb3JkLmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vTmFtZWROb2RlTWFwLmlk
bCBcCiAgICAgJChXZWJDb3JlKS9kb20vTm9kZS5pZGwgXApAQCAtMjQ5LDcgKzI1MCw2IEBAIEJJ
TkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2RvbS9UcmVlV2Fsa2VyLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9kb20vVUlFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL1dlYktpdEFu
aW1hdGlvbkV2ZW50LmlkbCBcCi0gICAgJChXZWJDb3JlKS9kb20vV2ViS2l0TXV0YXRpb25PYnNl
cnZlci5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL1dlYktpdE5hbWVkRmxvdy5pZGwgXAogICAg
ICQoV2ViQ29yZSkvZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5pZGwgXAogICAgICQoV2ViQ29y
ZSkvZG9tL1doZWVsRXZlbnQuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4
IDM3YjdlNWFjMjk5N2VhMzE2MWU5NGFjODY0NjFhNmNlNjc2NWIzNDAuLjIxNzAyNmQ3NjNhNjY2
MTIxY2MzNjZkYmQ5NWZkMTJiNzc0ODM2ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQpAQCAtNDA1LDYgKzQwNSw4IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uQ2FsbGJhY2suaCBcCiAJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU011dGF0aW9uRXZlbnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
TXV0YXRpb25FdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25PYnNl
cnZlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvbk9ic2VydmVyLmgg
XAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvblJlY29yZC5jcHAgXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvblJlY29yZC5oIFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTTmFtZWROb2RlTWFwLmNwcCBcCkBAIC02MTQsOCArNjE2LDYgQEAgd2ViY29yZV9i
dWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0Q1NTUmVn
aW9uUnVsZS5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0Q1NTVHJhbnNmb3Jt
VmFsdWUuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0Q1NTVHJhbnNmb3Jt
VmFsdWUuaCBcCi0JRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdE11dGF0aW9uT2JzZXJ2
ZXIuY3BwIFwKLQlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0TXV0YXRpb25PYnNlcnZl
ci5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0TmFtZWRGbG93LmNwcCBcCiAJ
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdE5hbWVkRmxvdy5oIFwKIAlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTV2ViS2l0UG9pbnQuY3BwIFwKQEAgLTc2Niw2ICs3NjYsNyBAQCBkb21f
YmluZGluZ19pZGxzICs9IFwKIAkkKFdlYkNvcmUpL2RvbS9Nb3VzZUV2ZW50LmlkbCBcCiAJJChX
ZWJDb3JlKS9kb20vTXV0YXRpb25DYWxsYmFjay5pZGwgXAogCSQoV2ViQ29yZSkvZG9tL011dGF0
aW9uRXZlbnQuaWRsIFwKKwkkKFdlYkNvcmUpL2RvbS9NdXRhdGlvbk9ic2VydmVyLmlkbCBcCiAJ
JChXZWJDb3JlKS9kb20vTXV0YXRpb25SZWNvcmQuaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9OYW1l
ZE5vZGVNYXAuaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9Ob2RlLmlkbCBcCkBAIC03ODksNyArNzkw
LDYgQEAgZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJJChXZWJDb3JlKS9kb20vVHJlZVdhbGtlci5p
ZGwgXAogCSQoV2ViQ29yZSkvZG9tL1VJRXZlbnQuaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9XZWJL
aXRBbmltYXRpb25FdmVudC5pZGwgXAotCSQoV2ViQ29yZSkvZG9tL1dlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXIuaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9XZWJLaXROYW1lZEZsb3cuaWRsIFwKIAkkKFdl
YkNvcmUpL2RvbS9XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9X
aGVlbEV2ZW50LmlkbCBcCkBAIC0xNDQ1LDYgKzE0NDUsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmggXAogCVNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAgXAor
CVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmggXApAQCAtMTQ4OSw3ICsxNDkwLDYg
QEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dl
YktpdENTU0tleWZyYW1lUnVsZUN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZUN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCBcCi0JU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludEN1c3RvbS5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViU29ja2V0Q3VzdG9tLmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5jcHAgXApAQCAtMTky
MCw2ICsxOTIwLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20v
TXV0YXRpb25DYWxsYmFjay5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25FdmVudC5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbkV2ZW50LmggXAorCVNvdXJjZS9XZWJD
b3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmNwcCBcCisJU291cmNlL1dlYkNvcmUvZG9tL011dGF0
aW9uT2JzZXJ2ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRl
cmVzdEdyb3VwLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRl
cmVzdEdyb3VwLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0
cmF0aW9uLmNwcCBcCkBAIC0yMDMwLDggKzIwMzIsNiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9kb20vV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vV2Vi
S2l0QW5pbWF0aW9uRXZlbnQuaCBcCi0JU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE11dGF0aW9u
T2JzZXJ2ZXIuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TXV0YXRpb25PYnNlcnZl
ci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vV2Vi
S2l0VHJhbnNpdGlvbkV2ZW50LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA2OWJhYTkyOWZkNjcyYzky
NjE2NDhmOGIyMjBmNTdiY2U2N2QzZmQxLi4zNGU4ZmQwYWRlOTk5MGVhNjBiYTJhYzhmZGRkMmVi
MzI1ZGU4NzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTIwMyw2ICsyMDMsNyBAQCB2OCB7CiAgICAgICAg
IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VQb3J0Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VFdmVudEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5k
aW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCBcCisgICAgICAgIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIFwKICAgICAgICAg
YmluZGluZ3MvdjgvY3VzdG9tL1Y4TmFtZWROb2RlTWFwQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOE5hbWVkTm9kZXNDb2xsZWN0aW9uLmNwcCBcCiAgICAgICAgIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOE5vZGVDdXN0b20uY3BwIFwKQEAgLTIxNyw3ICsyMTgsNiBAQCB2
OCB7CiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFN0eWxlU2hlZXRMaXN0Q3VzdG9tLmNw
cCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFRleHRUcmFja0xpc3RDdXN0b20uY3Bw
IFwKICAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNw
cCBcCi0gICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdE11dGF0aW9uT2JzZXJ2ZXJD
dXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0UG9pbnRDb25z
dHJ1Y3Rvci5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhXb3JrZXJDb250ZXh0
Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdvcmtlckN1c3RvbS5j
cHAgXApAQCAtMzM1LDYgKzMzNSw3IEBAIHY4IHsKICAgICAgICAgYmluZGluZ3MvanMvSlNNZXNz
YWdlUG9ydEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3Vz
dG9tLmggXAogICAgICAgICBiaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3Bw
IFwKKyAgICAgICAgYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCBcCiAg
ICAgICAgIGJpbmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJp
bmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU05vZGVG
aWx0ZXJDb25kaXRpb24uY3BwIFwKQEAgLTM2Miw3ICszNjMsNiBAQCB2OCB7CiAgICAgICAgIGJp
bmRpbmdzL2pzL0pTV2ViS2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5k
aW5ncy9qcy9KU1dlYktpdENTU0tleWZyYW1lUnVsZUN1c3RvbS5jcHAgXAogICAgICAgICBiaW5k
aW5ncy9qcy9KU1dlYktpdENTU0tleWZyYW1lc1J1bGVDdXN0b20uY3BwIFwKLSAgICAgICAgYmlu
ZGluZ3MvanMvSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJp
bmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMv
SlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU1hNTEh0
dHBSZXF1ZXN0VXBsb2FkQ3VzdG9tLmNwcCBcCkBAIC01NzYsNiArNTc2LDcgQEAgU09VUkNFUyAr
PSBcCiAgICAgZG9tL01vdXNlRXZlbnQuY3BwIFwKICAgICBkb20vTW91c2VSZWxhdGVkRXZlbnQu
Y3BwIFwKICAgICBkb20vTXV0YXRpb25FdmVudC5jcHAgXAorICAgIGRvbS9NdXRhdGlvbk9ic2Vy
dmVyLmNwcCBcCiAgICAgZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcCBcCiAg
ICAgZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwIFwKICAgICBkb20vTXV0YXRp
b25SZWNvcmQuY3BwIFwKQEAgLTYzMCw3ICs2MzEsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBkb20v
VXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3IuY3BwIFwKICAgICBkb20vVmlld3BvcnRBcmd1bWVu
dHMuY3BwIFwKICAgICBkb20vV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwIFwKLSAgICBkb20vV2Vi
S2l0TXV0YXRpb25PYnNlcnZlci5jcHAgXAogICAgIGRvbS9XZWJLaXROYW1lZEZsb3cuY3BwIFwK
ICAgICBkb20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCBcCiAgICAgZG9tL1doZWVsRXZlbnQu
Y3BwIFwKQEAgLTE3NTAsNiArMTc1MCw3IEBAIEhFQURFUlMgKz0gXAogICAgIGRvbS9Nb3VzZVJl
bGF0ZWRFdmVudC5oIFwKICAgICBkb20vTXV0YXRpb25DYWxsYmFjay5oIFwKICAgICBkb20vTXV0
YXRpb25FdmVudC5oIFwKKyAgICBkb20vTXV0YXRpb25PYnNlcnZlci5oIFwKICAgICBkb20vTXV0
YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5oIFwKICAgICBkb20vTXV0YXRpb25SZWNvcmQuaCBc
CiAgICAgZG9tL05hbWVkTm9kZU1hcC5oIFwKQEAgLTE3OTgsNyArMTc5OSw2IEBAIEhFQURFUlMg
Kz0gXAogICAgIGRvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5oIFwKICAgICBkb20vVmlld3BvcnRB
cmd1bWVudHMuaCBcCiAgICAgZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50LmggXAotICAgIGRvbS9X
ZWJLaXRNdXRhdGlvbk9ic2VydmVyLmggXAogICAgIGRvbS9XZWJLaXROYW1lZEZsb3cuaCBcCiAg
ICAgZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5oIFwKICAgICBkb20vV2hlZWxFdmVudC5oIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1VzZUpTQy5jbWFrZSBiL1NvdXJjZS9XZWJDb3Jl
L1VzZUpTQy5jbWFrZQppbmRleCBjZTY5MGVmZmYyZjNlYzliNTdhMGFhYjY4MjBiYzdiMmI5YzZk
NjVlLi5hNDQ1MDJmOTI4MDAzMDdkNjc1N2NlOTllYTRjYzc4MWZlYWM3Mzk5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvVXNlSlND
LmNtYWtlCkBAIC0xMTYsNiArMTE2LDcgQEAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAg
ICAgYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMv
SlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJh
Y2tDdXN0b20uY3BwCisgICAgYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNw
cAogICAgIGJpbmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdz
L2pzL0pTTm9kZUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDb25kaXRp
b24uY3BwCkBAIC0xNDIsNyArMTQzLDYgQEAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAg
ICAgYmluZGluZ3MvanMvSlNXZWJLaXRBbmltYXRpb25MaXN0Q3VzdG9tLmNwcAogICAgIGJpbmRp
bmdzL2pzL0pTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pz
L0pTV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZUN1c3RvbS5jcHAKLSAgICBiaW5kaW5ncy9qcy9KU1dl
YktpdE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNXZWJLaXRQ
b2ludEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNw
cAogICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RVcGxvYWRDdXN0b20uY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Vc2VWOC5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1VzZVY4
LmNtYWtlCmluZGV4IGZmZmMyNmIxMzVlNDJmMzM2ZmY3Mjc0OWI0ZTRhNTJiZDE3NzNlZGYuLmRj
YmRjZjQxZTkzOWFlYWRkOTM3NTYwYjcxNzQxMDYzZDMxNDgyNGEgMTAwNzU1Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1VzZVY4LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1VzZVY4LmNtYWtlCkBA
IC0xMzMsNiArMTMzLDcgQEAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUV2ZW50Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1
c3RvbS9WOE1lc3NhZ2VQb3J0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE11
dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwCisgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRp
b25PYnNlcnZlckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhOYW1lZE5vZGVN
YXBDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4TmFtZWROb2Rlc0NvbGxlY3Rp
b24uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4Tm9kZUN1c3RvbS5jcHAKQEAgLTE1Myw3
ICsxNTQsNiBAQCBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy92OC9j
dXN0b20vVjhVaW50OEFycmF5Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdl
YkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhX
ZWJLaXRBbmltYXRpb25DdXN0b20uY3BwCi0gICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0
TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJL
aXRQb2ludENvbnN0cnVjdG9yLmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYlNvY2tl
dEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhXb3JrZXJDb250ZXh0Q3VzdG9t
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDhkOTRlMTE0MzEwYzM5ODFhOWUzMTlhMjU0ODQzN2E4
YzBiNzQ5ZjMuLmU5N2E5N2Q5N2JjZGQ0NTk5YmM5NzI4NmU1YmZiZWJhMjc1MjE0NDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKQEAgLTk2Miw2ICs5NjIsNyBAQAogICAgICAgICAgICAgJ2RvbS9Nb3VzZUV2
ZW50LmlkbCcsCiAgICAgICAgICAgICAnZG9tL011dGF0aW9uQ2FsbGJhY2suaWRsJywKICAgICAg
ICAgICAgICdkb20vTXV0YXRpb25FdmVudC5pZGwnLAorICAgICAgICAgICAgJ2RvbS9NdXRhdGlv
bk9ic2VydmVyLmlkbCcsCiAgICAgICAgICAgICAnZG9tL011dGF0aW9uUmVjb3JkLmlkbCcsCiAg
ICAgICAgICAgICAnZG9tL05hbWVkTm9kZU1hcC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9Ob2Rl
LmlkbCcsCkBAIC05ODcsNyArOTg4LDYgQEAKICAgICAgICAgICAgICdkb20vVHJlZVdhbGtlci5p
ZGwnLAogICAgICAgICAgICAgJ2RvbS9VSUV2ZW50LmlkbCcsCiAgICAgICAgICAgICAnZG9tL1dl
YktpdEFuaW1hdGlvbkV2ZW50LmlkbCcsCi0gICAgICAgICAgICAnZG9tL1dlYktpdE11dGF0aW9u
T2JzZXJ2ZXIuaWRsJywKICAgICAgICAgICAgICdkb20vV2ViS2l0TmFtZWRGbG93LmlkbCcsCiAg
ICAgICAgICAgICAnZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5pZGwnLAogICAgICAgICAgICAg
J2RvbS9XaGVlbEV2ZW50LmlkbCcsCkBAIC0yMDA2LDYgKzIwMDYsNyBAQAogICAgICAgICAgICAg
J2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5k
aW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pz
L0pTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL2pz
L0pTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pz
L0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNO
b2RlQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29u
ZGl0aW9uLmNwcCcsCkBAIC0yMDQ4LDcgKzIwNDksNiBAQAogICAgICAgICAgICAgJ2JpbmRpbmdz
L2pzL0pTV2ViS2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRp
bmdzL2pzL0pTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAn
YmluZGluZ3MvanMvSlNXZWJLaXRDU1NLZXlmcmFtZXNSdWxlQ3VzdG9tLmNwcCcsCi0gICAgICAg
ICAgICAnYmluZGluZ3MvanMvSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCcsCiAg
ICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludEN1c3RvbS5jcHAnLAogICAgICAg
ICAgICAgJ2JpbmRpbmdzL2pzL0pTV2ViU29ja2V0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAn
YmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5jcHAnLApAQCAtMjMyMCw2ICsyMzIwLDcg
QEAKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlRXZlbnRDdXN0b20u
Y3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlUG9ydEN1c3Rv
bS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uQ2FsbGJh
Y2tDdXN0b20uY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlv
bk9ic2VydmVyQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4
TmFtZWROb2RlTWFwQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9t
L1Y4TmFtZWROb2Rlc0NvbGxlY3Rpb24uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9j
dXN0b20vVjhOYW1lZE5vZGVzQ29sbGVjdGlvbi5oJywKQEAgLTIzNDksNyArMjM1MCw2IEBACiAg
ICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4VWludDhDbGFtcGVkQXJyYXlDdXN0b20u
Y3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0Nv
bnRleHRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJL
aXRBbmltYXRpb25DdXN0b20uY3BwJywKLSAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20v
VjhXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4V2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5jcHAnLAogICAgICAgICAgICAg
J2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYlNvY2tldEN1c3RvbS5jcHAnLAogICAgICAgICAgICAg
J2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdvcmtlckNvbnRleHRDdXN0b20uY3BwJywKQEAgLTUzMzgs
NiArNTMzOCw4IEBACiAgICAgICAgICAgICAnZG9tL011dGF0aW9uQ2FsbGJhY2suaCcsCiAgICAg
ICAgICAgICAnZG9tL011dGF0aW9uRXZlbnQuY3BwJywKICAgICAgICAgICAgICdkb20vTXV0YXRp
b25FdmVudC5oJywKKyAgICAgICAgICAgICdkb20vTXV0YXRpb25PYnNlcnZlci5jcHAnLAorICAg
ICAgICAgICAgJ2RvbS9NdXRhdGlvbk9ic2VydmVyLmgnLAogICAgICAgICAgICAgJ2RvbS9NdXRh
dGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9NdXRhdGlv
bk9ic2VydmVySW50ZXJlc3RHcm91cC5oJywKICAgICAgICAgICAgICdkb20vTXV0YXRpb25PYnNl
cnZlclJlZ2lzdHJhdGlvbi5jcHAnLApAQCAtNTQzOCw4ICs1NDQwLDYgQEAKICAgICAgICAgICAg
ICdkb20vVmlld3BvcnRBcmd1bWVudHMuY3BwJywKICAgICAgICAgICAgICdkb20vV2ViS2l0QW5p
bWF0aW9uRXZlbnQuY3BwJywKICAgICAgICAgICAgICdkb20vV2ViS2l0QW5pbWF0aW9uRXZlbnQu
aCcsCi0gICAgICAgICAgICAnZG9tL1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuY3BwJywKLSAgICAg
ICAgICAgICdkb20vV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oJywKICAgICAgICAgICAgICdkb20v
V2ViS2l0TmFtZWRGbG93LmNwcCcsCiAgICAgICAgICAgICAnZG9tL1dlYktpdE5hbWVkRmxvdy5o
JywKICAgICAgICAgICAgICdkb20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCcsCkBAIC03NzE4
LDYgKzc3MTgsOCBAQAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNNdXRhdGlvbkNhbGxiYWNrLmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvbkV2ZW50LmNwcCcsCiAgICAgICAg
ICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uRXZl
bnQuaCcsCisgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU011dGF0aW9uT2JzZXJ2ZXIuY3BwJywKKyAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25PYnNlcnZlci5oJywKICAgICAgICAgICAg
ICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25SZWNvcmQu
Y3BwJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTTXV0YXRpb25SZWNvcmQuaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU05hbWVkTm9kZU1hcC5jcHAnLApAQCAtODI2Miw4ICs4MjY0LDYg
QEAKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
V2ViS2l0Q1NTUmVnaW9uUnVsZS5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3BwJywKICAgICAg
ICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0Q1NT
VHJhbnNmb3JtVmFsdWUuaCcsCi0gICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuY3BwJywKLSAgICAgICAgICAg
ICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0TXV0YXRpb25P
YnNlcnZlci5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTV2ViS2l0UG9pbnQuY3BwJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0UG9pbnQuaCcsCiAgICAgICAgICAgICAnPChQ
Uk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdE5hbWVkRmxvdy5jcHAn
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBk
MDZkZGFhYTE0NjJkODljYzUxZjlmM2VkNmQ4YmVlNDg5Y2VhZGVjLi5kMjU1MTg4MTU0Y2Q1N2Ji
OWIxYWM2NzM1ZjA5MWQ4Zjg0ODMxODY2IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMTE1OTAsNiArMTE1OTAsNjIgQEAKIAkJCQk+CiAJCQk8
L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGRE
aXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU011dGF0aW9uT2JzZXJ2ZXIu
Y3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2lu
MzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIi
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0
ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRv
b2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9D
YWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+
CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9
IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4K
KwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0i
UHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4K
KwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXEpTTXV0YXRpb25PYnNlcnZlci5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxl
CiAJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVj
dE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTTXV0YXRpb25SZWNvcmQuY3BwIgogCQkJCT4KIAkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KQEAgLTIzMDYzLDYyICsyMzExOSw2IEBACiAJCQkJPgogCQkJPC9G
aWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGly
KVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyLmNwcCIKLQkJCQk+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVn
fFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9v
bAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlfFdp
bjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAot
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19D
RkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJ
CTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVh
c2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJ
CQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4K
LQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlO
YW1lPSJEZWJ1Z19BbGx8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJ
CQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgot
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5h
bWU9IlByb2R1Y3Rpb258V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJ
CQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgot
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0
aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xKU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+
Ci0JCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9i
alwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1dlYktpdE5hbWVkRmxvdy5jcHAiCiAJ
CQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtNTE2MTUsNiArNTE2MTUsNjIgQEAKIAkJ
CQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXE11dGF0
aW9uT2JzZXJ2ZXIuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFt
ZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJ
CQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJl
bGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJ
CTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVn
X0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJ
CT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFt
ZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9u
CisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJ
CQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
KwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJ
CQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cTXV0YXRpb25PYnNlcnZlci5oIgorCQkJCT4KKwkJCTwv
RmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cTXV0YXRpb25PYnNlcnZl
ckludGVyZXN0R3JvdXAuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KQEAgLTU0
MzAzLDYyICs1NDM1OSw2IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGRvbVxXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmNwcCIKLQkJCQk+Ci0JCQkJ
PEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgotCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJ
PEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMy
IgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIi
Ci0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIi
Ci0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFdlYktp
dE11dGF0aW9uT2JzZXJ2ZXIuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJl
bGF0aXZlUGF0aD0iLi5cZG9tXFdlYktpdE5hbWVkRmxvdy5jcHAiCiAJCQkJPgogCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgpAQCAtNjgxODIsNyArNjgxODIsNyBAQAogCQkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJp
bmRpbmdzXGpzXEpTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxiaW5kaW5nc1xqc1xKU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02ODIzNCw3
ICs2ODIzNCw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJ
CTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNOb2RlQ3VzdG9tLmNw
cCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU05hbWVkTm9kZU1hcEN1c3Rv
bS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJEZWJ1
Z3xXaW4zMiIKQEAgLTY4Mjg2LDExICs2ODI4Niw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGlu
Z3NcanNcSlNOb2RlQ3VzdG9tLmgiCi0JCQkJCT4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUKLQkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU05vZGVGaWx0ZXJDb25kaXRpb24uY3Bw
IgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZUN1c3RvbS5jcHAiCiAJ
CQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIK
QEAgLTY4MzQyLDExICs2ODMzOCwxMSBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJ
CTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpT
Tm9kZUZpbHRlckNvbmRpdGlvbi5oIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpz
XEpTTm9kZUN1c3RvbS5oIgogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJl
bGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCIKKwkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwIgog
CQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIi
CkBAIC02ODM5OCw3ICs2ODM5NCwxMSBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJ
CTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpT
Tm9kZUl0ZXJhdG9yQ3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xq
c1xKU05vZGVGaWx0ZXJDb25kaXRpb24uaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8Rmls
ZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZUZpbHRlckN1c3RvbS5j
cHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xX
aW4zMiIKQEAgLTY4NDUwLDcgKzY4NDUwLDcgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4K
IAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xq
c1xKU05vZGVMaXN0Q3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xq
c1xKU05vZGVJdGVyYXRvckN1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0
aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKQEAgLTY4NTAyLDcgKzY4NTAyLDcgQEAKIAkJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU05vdGlmaWNhdGlvbkN1c3RvbS5jcHAiCisJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNOb2RlTGlzdEN1c3RvbS5jcHAiCiAJCQkJ
CT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKQEAg
LTY4NTU0LDcgKzY4NTU0LDcgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0Zp
bGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1BsdWdp
bkVsZW1lbnRGdW5jdGlvbnMuY3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpz
XEpTTm90aWZpY2F0aW9uQ3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpAQCAtNjg2MDYsMTEgKzY4NjA2LDcgQEAKIAkJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaCIKLQkJ
CQkJPgotCQkJCTwvRmlsZT4KLQkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRp
bmdzXGpzXEpTUHJvY2Vzc2luZ0luc3RydWN0aW9uQ3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxiaW5kaW5nc1xqc1xKU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwIgogCQkJCQk+
CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02
ODY2Miw3ICs2ODY1OCwxMSBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJCTwvRmls
ZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTUmVxdWVz
dEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2tDdXN0b20uY3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGJpbmRpbmdzXGpzXEpTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oIgorCQkJCQk+CisJCQkJPC9G
aWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNQcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb25DdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02ODcxNCw3ICs2ODcxNCw3IEBACiAJ
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJl
bGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNTY3JpcHRQcm9maWxlTm9kZUN1c3RvbS5jcHAi
CisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNSZXF1ZXN0QW5pbWF0aW9uRnJh
bWVDYWxsYmFja0N1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJ
CQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKQEAgLTY4NzY2LDcgKzY4NzY2LDcgQEAKIAkJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxiaW5kaW5nc1xqc1xKU1NoYXJlZFdvcmtlckN1c3RvbS5jcHAiCisJCQkJCVJlbGF0
aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNTY3JpcHRQcm9maWxlTm9kZUN1c3RvbS5jcHAiCiAJ
CQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIK
QEAgLTY4ODE4LDcgKzY4ODE4LDcgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8
L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1NR
TFJlc3VsdFNldFJvd0xpc3RDdXN0b20uY3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRp
bmdzXGpzXEpTU2hhcmVkV29ya2VyQ3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpAQCAtNjg4NzAsNyArNjg4NzAsNyBA
QAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU1FMVHJhbnNhY3Rpb25DdXN0b20uY3Bw
IgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU1FMUmVzdWx0U2V0Um93TGlz
dEN1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1l
PSJEZWJ1Z3xXaW4zMiIKQEAgLTY4OTIyLDcgKzY4OTIyLDcgQEAKIAkJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxi
aW5kaW5nc1xqc1xKU1NRTFRyYW5zYWN0aW9uU3luY0N1c3RvbS5jcHAiCisJCQkJCVJlbGF0aXZl
UGF0aD0iLi5cYmluZGluZ3NcanNcSlNTUUxUcmFuc2FjdGlvbkN1c3RvbS5jcHAiCiAJCQkJCT4K
IAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKQEAgLTY4
OTc0LDcgKzY4OTc0LDcgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+
CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1N0b3JhZ2VD
dXN0b20uY3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU1FMVHJhbnNh
Y3Rpb25TeW5jQ3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJ
CQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpAQCAtNjkwMjYsMTEgKzY5MDI2LDcgQEAKIAkJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxiaW5kaW5nc1xqc1xKU1N0b3JhZ2VDdXN0b20uaCIKLQkJCQkJPgotCQkJCTwvRmls
ZT4KLQkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU3R5bGVT
aGVldEN1c3RvbS5jcHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNTdG9y
YWdlQ3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJCQkJCU5h
bWU9IkRlYnVnfFdpbjMyIgpAQCAtNjkwODIsNyArNjkwNzgsMTEgQEAKIAkJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxiaW5kaW5nc1xqc1xKU1N0eWxlU2hlZXRMaXN0Q3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxiaW5kaW5nc1xqc1xKU1N0b3JhZ2VDdXN0b20uaCIKKwkJCQkJPgorCQkJCTwvRmls
ZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU3R5bGVT
aGVldEN1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlO
YW1lPSJEZWJ1Z3xXaW4zMiIKQEAgLTY5MTM0LDcgKzY5MTM0LDcgQEAKIAkJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxiaW5kaW5nc1xqc1xKU1NWR0VsZW1lbnRJbnN0YW5jZUN1c3RvbS5jcHAiCisJCQkJCVJlbGF0
aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNTdHlsZVNoZWV0TGlzdEN1c3RvbS5jcHAiCiAJCQkJ
CT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKQEAg
LTY5MTg2LDcgKzY5MTg2LDcgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0Zp
bGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1NWR0xl
bmd0aEN1c3RvbS5jcHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNTVkdF
bGVtZW50SW5zdGFuY2VDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02OTIzOCw3ICs2OTIzOCw3IEBACiAJCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0
aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNTVkdQYXRoU2VnQ3VzdG9tLmNwcCIKKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1NWR0xlbmd0aEN1c3RvbS5jcHAiCiAJCQkJCT4K
IAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKQEAgLTY5
MjkwLDcgKzY5MjkwLDcgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+
CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1RleHRDdXN0
b20uY3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU1ZHUGF0aFNlZ0N1
c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJE
ZWJ1Z3xXaW4zMiIKQEAgLTY5MzQyLDcgKzY5MzQyLDcgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5k
aW5nc1xqc1xKU1RyZWVXYWxrZXJDdXN0b20uY3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJp
bmRpbmdzXGpzXEpTVGV4dEN1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0
aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKQEAgLTY5Mzk0LDcgKzY5Mzk0LDcgQEAKIAkJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1dlYktpdEFuaW1hdGlvbkN1c3RvbS5jcHAiCisJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNUcmVlV2Fsa2VyQ3VzdG9tLmNwcCIK
IAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMy
IgpAQCAtNjk0NDYsNyArNjk0NDYsNyBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJ
CTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpT
V2ViS2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5jcHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmlu
ZGluZ3NcanNcSlNXZWJLaXRBbmltYXRpb25DdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02OTQ5OCw3ICs2OTQ5
OCw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxl
Ci0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNXZWJLaXRDU1NLZXlmcmFtZVJ1
bGVDdXN0b20uY3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTV2ViS2l0
QW5pbWF0aW9uTGlzdEN1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9u
CiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKQEAgLTY5NTUwLDcgKzY5NTUwLDcgQEAKIAkJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1dlYktpdENTU0tleWZyYW1lc1J1bGVDdXN0b20uY3Bw
IgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTV2ViS2l0Q1NTS2V5ZnJhbWVS
dWxlQ3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJCQkJCU5h
bWU9IkRlYnVnfFdpbjMyIgpAQCAtNjk2MDIsNyArNjk2MDIsNyBAQAogCQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGJpbmRpbmdzXGpzXEpTV2ViS2l0Q1NTTWF0cml4Q3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxiaW5kaW5nc1xqc1xKU1dlYktpdENTU0tleWZyYW1lc1J1bGVDdXN0b20uY3BwIgog
CQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIi
CkBAIC02OTY1NCw3ICs2OTY1NCw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJ
PC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxi
aW5kaW5nc1xqc1xKU1dlYktpdENTU01hdHJpeEN1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZp
bGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkZjhkNWE4NjI1
Yjg3NzJkYTI4ZjZjZGUwYzI4MmRhOGYxNDJmZGZjLi4xYjc3NDFmOGZmOTJhN2FjZjJiYTJjNzc0
NTU0Yzg0ZGVkNDAxNTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NzUzLDEzICs1NzUzLDEzIEBACiAJCUM2RjA4RkM5MTQz
MTAwMEQwMDY4NTg0OSAvKiBKU011dGF0aW9uUmVjb3JkLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RjA4RkM3MTQzMTAwMEQwMDY4NTg0OSAvKiBK
U011dGF0aW9uUmVjb3JkLmNwcCAqLzsgfTsKIAkJQzZGMDhGQ0ExNDMxMDAwRDAwNjg1ODQ5IC8q
IEpTTXV0YXRpb25SZWNvcmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEM2RjA4RkM4MTQzMTAwMEQwMDY4NTg0OSAvKiBKU011dGF0aW9uUmVjb3JkLmgg
Ki87IH07CiAJCUM2RjA5MDBBMTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbkNhbGxiYWNrLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwOTAwMTE0
MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25DYWxsYmFjay5oICovOyB9OwotCQlDNkYwOTAwRTE0
MzI3QjYxMDA2ODU4NDkgLyogV2ViS2l0TXV0YXRpb25PYnNlcnZlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwOTAwNTE0MzI3QjYxMDA2ODU4
NDkgLyogV2ViS2l0TXV0YXRpb25PYnNlcnZlci5jcHAgKi87IH07Ci0JCUM2RjA5MDBGMTQzMjdC
NjEwMDY4NTg0OSAvKiBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwOTAwNjE0MzI3QjYxMDA2ODU4NDkgLyog
V2ViS2l0TXV0YXRpb25PYnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCUM2RjA5MDBFMTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbk9i
c2VydmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEM2RjA5MDA1MTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbk9ic2VydmVyLmNwcCAqLzsgfTsK
KwkJQzZGMDkwMEYxNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RjA5MDA2MTQzMjdCNjEw
MDY4NTg0OSAvKiBNdXRhdGlvbk9ic2VydmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzZGMDkwMjgxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0
YXRpb25DYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDNkYwOTAyMDE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmNw
cCAqLzsgfTsKIAkJQzZGMDkwMjkxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFj
ay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDkw
MjExNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFjay5oICovOyB9OwotCQlDNkYw
OTAyQzE0MzI3RDRGMDA2ODU4NDkgLyogSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RjA5MDI0MTQzMjdE
NEYwMDY4NTg0OSAvKiBKU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuY3BwICovOyB9OwotCQlDNkYw
OTAyRDE0MzI3RDRGMDA2ODU4NDkgLyogSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwOTAyNTE0MzI3RDRG
MDA2ODU4NDkgLyogSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmggKi87IH07Ci0JCUM2RjA5MTdG
MTQzQTJCQjkwMDY4NTg0OSAvKiBKU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDkxN0UxNDNB
MkJCOTAwNjg1ODQ5IC8qIEpTV2ViS2l0TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgKi87IH07
CisJCUM2RjA5MDJDMTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDkwMjQxNDMy
N0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlci5jcHAgKi87IH07CisJCUM2RjA5MDJE
MTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RjA5MDI1MTQzMjdENEYwMDY4NTg0OSAv
KiBKU011dGF0aW9uT2JzZXJ2ZXIuaCAqLzsgfTsKKwkJQzZGMDkxN0YxNDNBMkJCOTAwNjg1ODQ5
IC8qIEpTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwOTE3RTE0M0EyQkI5MDA2ODU4NDkgLyogSlNNdXRh
dGlvbk9ic2VydmVyQ3VzdG9tLmNwcCAqLzsgfTsKIAkJQzZGMDkxODUxNDNBNkMzQjAwNjg1ODQ5
IC8qIEpTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwOTE4NDE0M0E2QzNCMDA2ODU4NDkgLyogSlNNdXRh
dGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCAqLzsgfTsKIAkJQzZGNDEwNDcxMzBDNkU4OTAwMzkzREU0
IC8qIEVudHJ5QmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDNkY0MTA0NjEzMEM2RTg5MDAzOTNERTQgLyogRW50cnlCYXNlLmNwcCAqLzsgfTsK
IAkJQ0EzQkY2N0MxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENBM0JGNjdCMTBEOTlCQUUw
MEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5jcHAgKi87IH07CkBAIC0xMjk0NCwxNCArMTI5NDQs
MTQgQEAKIAkJQzZGMDhGQzgxNDMxMDAwRDAwNjg1ODQ5IC8qIEpTTXV0YXRpb25SZWNvcmQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNdXRhdGlvblJlY29yZC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNkYwOTAwMTE0MzI3QjYxMDA2ODU4NDkgLyogTXV0
YXRpb25DYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNdXRhdGlv
bkNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM2RjA5MDAyMTQzMjdC
NjEwMDY4NTg0OSAvKiBNdXRhdGlvbkNhbGxiYWNrLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBNdXRhdGlvbkNhbGxiYWNrLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQzZG
MDkwMDUxNDMyN0I2MTAwNjg1ODQ5IC8qIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViS2l0TXV0YXRpb25PYnNlcnZlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUM2RjA5MDA2MTQzMjdCNjEwMDY4NTg0
OSAvKiBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJQzZGMDkwMDcxNDMyN0I2MTAwNjg1ODQ5IC8qIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDNkYwOTAwNTE0MzI3QjYxMDA2ODU4NDkgLyog
TXV0YXRpb25PYnNlcnZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBNdXRhdGlvbk9ic2VydmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzZG
MDkwMDYxNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTXV0YXRpb25PYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDNkYwOTAwNzE0MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25PYnNlcnZl
ci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTXV0YXRpb25PYnNlcnZlci5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM2RjA5MDIwMTQzMjdENEYwMDY4NTg0OSAvKiBKU011
dGF0aW9uQ2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNNdXRhdGlvbkNhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzZG
MDkwMjExNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFjay5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU011dGF0aW9uQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJQzZGMDkwMjQxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTV2ViS2l0TXV0
YXRpb25PYnNlcnZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlDNkYwOTAyNTE0MzI3RDRGMDA2ODU4NDkgLyogSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViS2l0TXV0YXRpb25PYnNlcnZl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDNkYwOTE3RTE0M0EyQkI5MDA2ODU4
NDkgLyogSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViS2l0TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM2RjA5MDI0MTQzMjdENEYwMDY4NTg0OSAv
KiBKU011dGF0aW9uT2JzZXJ2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNNdXRhdGlvbk9ic2VydmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQzZGMDkwMjUxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU011dGF0aW9uT2JzZXJ2ZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzZGMDkxN0UxNDNBMkJCOTAwNjg1ODQ5IC8qIEpTTXV0
YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDNkYwOTE4NDE0M0E2QzNCMDA2ODU4NDkgLyogSlNNdXRhdGlvbkNhbGxiYWNrQ3Vz
dG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTXV0YXRpb25D
YWxsYmFja0N1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM2RjQxMDQ2
MTMwQzZFODkwMDM5M0RFNCAvKiBFbnRyeUJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gRW50cnlCYXNlLmNwcDsgcGF0aCA9IE1vZHVsZXMvZmlsZXN5c3RlbS9F
bnRyeUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDQTNCRjY3QjEwRDk5
QkFFMDBFNkNFNTMgLyogU2Nyb2xsQW5pbWF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU2Nyb2xsQW5pbWF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTg2MjQsNiArMTg2MjQsOCBAQAogCQkJCUZFODBEQTYyMEU5QzQ3MDMwMDBENkY3
NSAvKiBKU0dlb3Bvc2l0aW9uLmggKi8sCiAJCQkJQzZGMDkwMjAxNDMyN0Q0RjAwNjg1ODQ5IC8q
IEpTTXV0YXRpb25DYWxsYmFjay5jcHAgKi8sCiAJCQkJQzZGMDkwMjExNDMyN0Q0RjAwNjg1ODQ5
IC8qIEpTTXV0YXRpb25DYWxsYmFjay5oICovLAorCQkJCUM2RjA5MDI0MTQzMjdENEYwMDY4NTg0
OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXIuY3BwICovLAorCQkJCUM2RjA5MDI1MTQzMjdENEYwMDY4
NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXIuaCAqLywKIAkJCQlDNkYwOEZDNzE0MzEwMDBEMDA2
ODU4NDkgLyogSlNNdXRhdGlvblJlY29yZC5jcHAgKi8sCiAJCQkJQzZGMDhGQzgxNDMxMDAwRDAw
Njg1ODQ5IC8qIEpTTXV0YXRpb25SZWNvcmQuaCAqLywKIAkJCQlCQ0Q5QzJCQzBDMTdCNjlFMDA1
QzkwQTIgLyogSlNOYW1lZE5vZGVNYXAuY3BwICovLApAQCAtMTg2NTYsOCArMTg2NTgsNiBAQAog
CQkJCTc1NDE1RDU0MTI5QUIyRDIwMDNBRDY2OSAvKiBKU1NwZWVjaElucHV0UmVzdWx0TGlzdC5o
ICovLAogCQkJCTY1REYzMUVGMDlEMUNDNjAwMDBCRTMyNSAvKiBKU1RleHQuY3BwICovLAogCQkJ
CTY1REYzMUYwMDlEMUNDNjAwMDBCRTMyNSAvKiBKU1RleHQuaCAqLywKLQkJCQlDNkYwOTAyNDE0
MzI3RDRGMDA2ODU4NDkgLyogSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmNwcCAqLywKLQkJCQlD
NkYwOTAyNTE0MzI3RDRGMDA2ODU4NDkgLyogSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmggKi8s
CiAJCQkJRDc2MTNBQzIxNDc1M0U1NjAwREI4NjA2IC8qIEpTV2ViS2l0TmFtZWRGbG93LmNwcCAq
LywKIAkJCQlENzYxM0FDMzE0NzUzRTU2MDBEQjg2MDYgLyogSlNXZWJLaXROYW1lZEZsb3cuaCAq
LywKIAkJCSk7CkBAIC0yMDA1NSw2ICsyMDA1NSw3IEBACiAJCQkJRTFBREVENDYwRTc2QjhERDAw
NEExQTVFIC8qIEpTTWVzc2FnZVBvcnRDdXN0b20uY3BwICovLAogCQkJCTQxRjU4NEM2MTA0NjUy
Q0IwMDlDQUE2NCAvKiBKU01lc3NhZ2VQb3J0Q3VzdG9tLmggKi8sCiAJCQkJQzZGMDkxODQxNDNB
NkMzQjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAgKi8sCisJCQkJQzZG
MDkxN0UxNDNBMkJCOTAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgKi8s
CiAJCQkJQkNEOUMyNUYwQzE3QUE2NzAwNUM5MEEyIC8qIEpTTmFtZWROb2RlTWFwQ3VzdG9tLmNw
cCAqLywKIAkJCQlCQ0Q5QzI2MDBDMTdBQTY3MDA1QzkwQTIgLyogSlNOb2RlQ3VzdG9tLmNwcCAq
LywKIAkJCQlCQzk0MzlDMjExNkNGNDk0MDA0OEM3NTAgLyogSlNOb2RlQ3VzdG9tLmggKi8sCkBA
IC0yMDA5NCw3ICsyMDA5NSw2IEBACiAJCQkJMzE5NDYyMzExMzAyMkY2NTAwNEJCM0Y4IC8qIEpT
V2ViS2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5jcHAgKi8sCiAJCQkJRTFBRDE0QzQxMjk3MzU0OTAw
QUNBOTg5IC8qIEpTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlQ3VzdG9tLmNwcCAqLywKIAkJCQlFMUFE
MTRCNDEyOTczNENBMDBBQ0E5ODkgLyogSlNXZWJLaXRDU1NLZXlmcmFtZXNSdWxlQ3VzdG9tLmNw
cCAqLywKLQkJCQlDNkYwOTE3RTE0M0EyQkI5MDA2ODU4NDkgLyogSlNXZWJLaXRNdXRhdGlvbk9i
c2VydmVyQ3VzdG9tLmNwcCAqLywKIAkJCQlCQzI3NUI3ODExQzVEMUMzMDBDOTIwNkMgLyogSlNX
ZWJLaXRQb2ludEN1c3RvbS5jcHAgKi8sCiAJCQkJNTE4QTM0QzYxMDI2QzhDOTAwMUI2ODk2IC8q
IEpTV2ViU29ja2V0Q3VzdG9tLmNwcCAqLywKIAkJCQlFMTgyNThBQjBFRjNDRDcwMDA5MzMyNDIg
LyogSlNXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcCAqLywKQEAgLTIxMzg5LDYgKzIxMzg5LDkgQEAK
IAkJCQlENkU1MjhBMjE0OUE5MjZEMDBFRkUxRjMgLyogTXV0YXRpb25PYnNlcnZlckludGVyZXN0
R3JvdXAuaCAqLywKIAkJCQlENkUyNzZBRDE0NjM3NDU1MDAxRDI4MEEgLyogTXV0YXRpb25PYnNl
cnZlclJlZ2lzdHJhdGlvbi5jcHAgKi8sCiAJCQkJRDZFMjc2QUUxNDYzNzQ1NTAwMUQyODBBIC8q
IE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uaCAqLywKKwkJCQlDNkYwOTAwNTE0MzI3QjYx
MDA2ODU4NDkgLyogTXV0YXRpb25PYnNlcnZlci5jcHAgKi8sCisJCQkJQzZGMDkwMDYxNDMyN0I2
MTAwNjg1ODQ5IC8qIE11dGF0aW9uT2JzZXJ2ZXIuaCAqLywKKwkJCQlDNkYwOTAwNzE0MzI3QjYx
MDA2ODU4NDkgLyogTXV0YXRpb25PYnNlcnZlci5pZGwgKi8sCiAJCQkJQzZGMDhGQjkxNDMwRkU4
RjAwNjg1ODQ5IC8qIE11dGF0aW9uUmVjb3JkLmNwcCAqLywKIAkJCQlDNkYwOEZCQTE0MzBGRThG
MDA2ODU4NDkgLyogTXV0YXRpb25SZWNvcmQuaCAqLywKIAkJCQlDNkYwOEZCQjE0MzBGRThGMDA2
ODU4NDkgLyogTXV0YXRpb25SZWNvcmQuaWRsICovLApAQCAtMjE1MjMsOSArMjE1MjYsNiBAQAog
CQkJCTMxQzBGRjFCMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5jcHAg
Ki8sCiAJCQkJMzFDMEZGMUMwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50
LmggKi8sCiAJCQkJMzFDMEZGMUQwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2
ZW50LmlkbCAqLywKLQkJCQlDNkYwOTAwNTE0MzI3QjYxMDA2ODU4NDkgLyogV2ViS2l0TXV0YXRp
b25PYnNlcnZlci5jcHAgKi8sCi0JCQkJQzZGMDkwMDYxNDMyN0I2MTAwNjg1ODQ5IC8qIFdlYktp
dE11dGF0aW9uT2JzZXJ2ZXIuaCAqLywKLQkJCQlDNkYwOTAwNzE0MzI3QjYxMDA2ODU4NDkgLyog
V2ViS2l0TXV0YXRpb25PYnNlcnZlci5pZGwgKi8sCiAJCQkJRDc2MTNBNEUxNDc0RjEzRjAwREI4
NjA2IC8qIFdlYktpdE5hbWVkRmxvdy5jcHAgKi8sCiAJCQkJRDc2MTNBNEQxNDc0RjEzRjAwREI4
NjA2IC8qIFdlYktpdE5hbWVkRmxvdy5oICovLAogCQkJCUQ3NjEzQTRBMTQ3NEVFOTUwMERCODYw
NiAvKiBXZWJLaXROYW1lZEZsb3cuaWRsICovLApAQCAtMjM2MzYsNiArMjM2MzYsNyBAQAogCQkJ
CUE4NjYyOUQxMDlEQTJCNDgwMDk2MzNBNSAvKiBKU01vdXNlRXZlbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUM2RjA5MDI5MTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2suaCBp
biBIZWFkZXJzICovLAogCQkJCTY1REYzMUZDMDlEMUNDNjAwMDBCRTMyNSAvKiBKU011dGF0aW9u
RXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUM2RjA5MDJEMTQzMjdENEYwMDY4NTg0OSAvKiBK
U011dGF0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUM2RjA4RkNBMTQzMTAwMEQw
MDY4NTg0OSAvKiBKU011dGF0aW9uUmVjb3JkLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0Q5QzJD
MTBDMTdCNjlFMDA1QzkwQTIgLyogSlNOYW1lZE5vZGVNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE5RDI0N0Y4MEQ3NTdFMzQwMEZERjk1OSAvKiBKU05hdmlnYXRvci5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yMzg4OSw3ICsyMzg5MCw2IEBACiAJCQkJNDk4MzkxNDAwRjFFNzY3NTAwQzIzNzgyIC8q
IEpTV2ViS2l0Q1NTTWF0cml4LmggaW4gSGVhZGVycyAqLywKIAkJCQk4QUQwQTU5NTE0Qzg4MzM2
MDAwRDgzQzUgLyogSlNXZWJLaXRDU1NSZWdpb25SdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkz
MTYxMUU1QjBFMUM0REUwMDBGNkE1NzkgLyogSlNXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJQzZGMDkwMkQxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTV2ViS2l0TXV0
YXRpb25PYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDk0QkQ3OUUwRjU1Qzk0QzAwNzQ3
ODI4IC8qIEpTV2ViS2l0UG9pbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxQzBGRjQwMEU0Q0VG
QUMwMDdENkZFNSAvKiBKU1dlYktpdFRyYW5zaXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNURBNUUwRkQxMDJCOTUzODAwMDg4Q0Y5IC8qIEpTV2ViU29ja2V0LmggaW4gSGVhZGVycyAq
LywKQEAgLTI0MDIyLDYgKzI0MDIyLDcgQEAKIAkJCQlGREIxNzAwNjE0QTJCQUIyMDBBMkI1RDkg
LyogTXVsdGlDaGFubmVsUmVzYW1wbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNkYwOTAwQTE0
MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODUwMzFCNEEwQTQ0RUZDNzAwRjk5MkUwIC8qIE11dGF0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICov
LAorCQkJCUM2RjA5MDBGMTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbk9ic2VydmVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlENkU1MjhBNDE0OUE5MjZEMDBFRkUxRjMgLyogTXV0YXRpb25PYnNl
cnZlckludGVyZXN0R3JvdXAuaCBpbiBIZWFkZXJzICovLAogCQkJCUQ2RTI3NkIwMTQ2Mzc0NTUw
MDFEMjgwQSAvKiBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQlDNkYwOEZCRDE0MzBGRThGMDA2ODU4NDkgLyogTXV0YXRpb25SZWNvcmQuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjQ5NzYsNyArMjQ5NzcsNiBAQAogCQkJCTI5Q0Q2MURFMTQ2RDAyODkwMDY4
RTgyQSAvKiBXZWJLaXRDU1NTaGFkZXJWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5QURE
MjMwQ0M0MDMyNjAwMDk4QzRDIC8qIFdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4OTg3ODU2NjEyMkNBMDY0MDAzQUFCREEgLyogV2ViS2l0RmxhZ3MuaCBpbiBI
ZWFkZXJzICovLAotCQkJCUM2RjA5MDBGMTQzMjdCNjEwMDY4NTg0OSAvKiBXZWJLaXRNdXRhdGlv
bk9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OTRCRDc5NTBGNTVDOEVFMDA3NDc4Mjgg
LyogV2ViS2l0UG9pbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxQzBGRjI1MEU0Q0VCNkUwMDdE
NkZFNSAvKiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQ0Yz
MzJGMEYyQjlBMjUwMDRCNjc5NSAvKiBXZWJMYXllci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjg0
NSw2ICsyNjg0NSw4IEBACiAJCQkJQzZGMDkwMjgxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRp
b25DYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNkYwOTE4NTE0M0E2QzNCMDA2ODU4
NDkgLyogSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1
REYzMUZCMDlEMUNDNjAwMDBCRTMyNSAvKiBKU011dGF0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJQzZGMDkwMkMxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlci5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlDNkYwOTE3RjE0M0EyQkI5MDA2ODU4NDkgLyogSlNNdXRh
dGlvbk9ic2VydmVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM2RjA4RkM5MTQzMTAw
MEQwMDY4NTg0OSAvKiBKU011dGF0aW9uUmVjb3JkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
RDlDMkMwMEMxN0I2OUUwMDVDOTBBMiAvKiBKU05hbWVkTm9kZU1hcC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQ0Q5QzI2MzBDMTdBQTY3MDA1QzkwQTIgLyogSlNOYW1lZE5vZGVNYXBDdXN0b20u
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzEzNSw4ICsyNzEzNyw2IEBACiAJCQkJNDk4MzkxM0Yw
RjFFNzY3NTAwQzIzNzgyIC8qIEpTV2ViS2l0Q1NTTWF0cml4LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCThBRDBBNTk0MTRDODgzMzYwMDBEODNDNSAvKiBKU1dlYktpdENTU1JlZ2lvblJ1bGUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMzE2MTFFNUEwRTFDNERFMDAwRjZBNTc5IC8qIEpTV2ViS2l0
Q1NTVHJhbnNmb3JtVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQzZGMDkwMkMxNDMyN0Q0
RjAwNjg1ODQ5IC8qIEpTV2ViS2l0TXV0YXRpb25PYnNlcnZlci5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQlDNkYwOTE3RjE0M0EyQkI5MDA2ODU4NDkgLyogSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVy
Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUQ3NjEzQUM0MTQ3NTNFNTYwMERCODYwNiAv
KiBKU1dlYktpdE5hbWVkRmxvdy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OTRCRDc5RDBGNTVD
OTRDMDA3NDc4MjggLyogSlNXZWJLaXRQb2ludC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzI3
NUI3OTExQzVEMUMzMDBDOTIwNkMgLyogSlNXZWJLaXRQb2ludEN1c3RvbS5jcHAgaW4gU291cmNl
cyAqLywKQEAgLTI3MjY5LDYgKzI3MjY5LDcgQEAKIAkJCQk5MzMwOURGQjA5OUU2NDkyMDA1NkU1
ODEgLyogTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkRCMTcw
MDUxNEEyQkFCMjAwQTJCNUQ5IC8qIE11bHRpQ2hhbm5lbFJlc2FtcGxlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk4NTAzMUI0OTBBNDRFRkM3MDBGOTkyRTAgLyogTXV0YXRpb25FdmVudC5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlDNkYwOTAwRTE0MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25P
YnNlcnZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlENkU1MjhBMzE0OUE5MjZEMDBFRkUxRjMg
LyogTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RDZFMjc2QUYxNDYzNzQ1NTAwMUQyODBBIC8qIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzZGMDhGQkMxNDMwRkU4RjAwNjg1ODQ5IC8qIE11dGF0
aW9uUmVjb3JkLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjgwMzAsNyArMjgwMzEsNiBAQAogCQkJ
CTUwMzhCQzA3MTQ3MTFDREIwMDk1RTBEMSAvKiBXZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzlBREQ4MDBDQzQwOTIyMDAwOThDNEMgLyogV2ViS2l0Q1NTVHJh
bnNmb3JtVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUExNDE0QjUxM0EwRjA1MDAwMTk5
OTZDIC8qIFdlYktpdEZvbnRGYW1pbHlOYW1lcy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlDNkYw
OTAwRTE0MzI3QjYxMDA2ODU4NDkgLyogV2ViS2l0TXV0YXRpb25PYnNlcnZlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlENzYxM0E1MDE0NzRGMTNGMDBEQjg2MDYgLyogV2ViS2l0TmFtZWRGbG93
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxQzBGRjI0MEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJL
aXRUcmFuc2l0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDRjMzMkUwRjJCOUEy
NTAwNEI2Nzk1IC8qIFdlYkxheWVyLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAppbmRleCA2NmI0YTdmNDMx
ODRiNDAxNmRlNzdkNGEzODM0Yjg5NGU5NmFiYzM5Li44Yjk0ZjY0OTdhYmEwNmFlYzFkM2ZlODgw
MDAzN2VhZmVlNjBjNjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0JpbmRpbmdzQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
QmluZGluZ3NBbGxJbk9uZS5jcHAKQEAgLTEyMCw2ICsxMjAsNyBAQAogI2luY2x1ZGUgIkpTTWVz
c2FnZUV2ZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcCIK
ICNpbmNsdWRlICJKU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwIgorI2luY2x1ZGUgIkpTTXV0
YXRpb25PYnNlcnZlckN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNOYW1lZE5vZGVNYXBDdXN0b20u
Y3BwIgogI2luY2x1ZGUgIkpTTm9kZUN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNOb2RlRmlsdGVy
Q29uZGl0aW9uLmNwcCIKQEAgLTE1OCw3ICsxNTksNiBAQAogI2luY2x1ZGUgIkpTV2ViS2l0QW5p
bWF0aW9uTGlzdEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGVD
dXN0b20uY3BwIgogI2luY2x1ZGUgIkpTV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZUN1c3RvbS5jcHAi
Ci0jaW5jbHVkZSAiSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCIKICNpbmNsdWRl
ICJKU1dlYktpdFBvaW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU1dlYlNvY2tldEN1c3RvbS5j
cHAiCiAjaW5jbHVkZSAiSlNXb3JrZXJDb250ZXh0QmFzZS5jcHAiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmNwcAppbmRleCAwMGJj
MTcwZDJiMzUyMzZlMTg5ZDIzM2U5Yzk0M2JiMjQ5ODViOWQ2Li41NTZjYTVkOGQzMTIyNTI4N2Zj
Mzg1M2UyMTgwYmEwMmQwNzYwNGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5jcHAKQEAgLTI1LDcgKzI1LDcgQEAKIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgotI2lu
Y2x1ZGUgIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIKKyNpbmNsdWRlICJNdXRhdGlvbk9ic2Vy
dmVyLmgiCiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICNpbmNsdWRlICJJREJQZW5k
aW5nVHJhbnNhY3Rpb25Nb25pdG9yLmgiCkBAIC00Miw3ICs0Miw3IEBAIHZvaWQgSlNNYWluVGhy
ZWFkRXhlY1N0YXRlOjpkaWRMZWF2ZVNjcmlwdENvbnRleHQoKQogI2VuZGlmCiAKICNpZiBFTkFC
TEUoTVVUQVRJT05fT0JTRVJWRVJTKQotICAgIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OmRlbGl2
ZXJBbGxNdXRhdGlvbnMoKTsKKyAgICBNdXRhdGlvbk9ic2VydmVyOjpkZWxpdmVyQWxsTXV0YXRp
b25zKCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAKaW5kZXggNDM3NWNlNDE3NDcwZDVlODU3
YWE0NTBkNzNjNWMwMTQzMDIwNzkxNS4uMmQ4ZWVmOTU5OTk0YTQ0ZGMyMjNhZDU4MjRjYmIyYzNi
YzcyN2M0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlv
bkNhbGxiYWNrQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011
dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwCkBAIC0zNCw4ICszNCw4IEBACiAKICNpbmNsdWRlICJK
U011dGF0aW9uQ2FsbGJhY2suaCIKIAorI2luY2x1ZGUgIkpTTXV0YXRpb25PYnNlcnZlci5oIgog
I2luY2x1ZGUgIkpTTXV0YXRpb25SZWNvcmQuaCIKLSNpbmNsdWRlICJKU1dlYktpdE11dGF0aW9u
T2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVk
ZSA8cnVudGltZS9KU0xvY2suaD4KIApAQCAtNDMsNyArNDMsNyBAQCB1c2luZyBuYW1lc3BhY2Ug
SlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWJvb2wgSlNNdXRhdGlvbkNhbGxiYWNrOjpo
YW5kbGVFdmVudChNdXRhdGlvblJlY29yZEFycmF5KiBtdXRhdGlvbnMsIFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXIqIG9ic2VydmVyKQorYm9vbCBKU011dGF0aW9uQ2FsbGJhY2s6OmhhbmRsZUV2ZW50
KE11dGF0aW9uUmVjb3JkQXJyYXkqIG11dGF0aW9ucywgTXV0YXRpb25PYnNlcnZlciogb2JzZXJ2
ZXIpCiB7CiAgICAgaWYgKCFjYW5JbnZva2VDYWxsYmFjaygpKQogICAgICAgICByZXR1cm4gdHJ1
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25PYnNl
cnZlckN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uT2Jz
ZXJ2ZXJDdXN0b20uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjljYzNiNTI0NzBjOTE4ZDQ0MzRiZGQyMDlmNTgy
YTYxMDU2M2QzYTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCkBAIC0wLDAgKzEsMTIyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKKworI2luY2x1ZGUg
IkpTTXV0YXRpb25PYnNlcnZlci5oIgorCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2lu
Y2x1ZGUgIkpTRGljdGlvbmFyeS5oIgorI2luY2x1ZGUgIkpTTXV0YXRpb25DYWxsYmFjay5oIgor
I2luY2x1ZGUgIkpTTm9kZS5oIgorI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKKyNpbmNs
dWRlICJOb2RlLmgiCisjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgorI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CisKK3VzaW5nIG5h
bWVzcGFjZSBKU0M7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBKU011dGF0aW9uT2JzZXJ2ZXJDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNNdXRh
dGlvbk9ic2VydmVyKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRD
b3VudCgpIDwgMSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RF
bm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7CisKKyAgICBKU09iamVjdCogb2JqZWN0ID0gZXhl
Yy0+YXJndW1lbnQoMCkuZ2V0T2JqZWN0KCk7CisgICAgaWYgKCFvYmplY3QpIHsKKyAgICAgICAg
c2V0RE9NRXhjZXB0aW9uKGV4ZWMsIFRZUEVfTUlTTUFUQ0hfRVJSKTsKKyAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICB9CisKKyAgICBKU011dGF0aW9u
T2JzZXJ2ZXJDb25zdHJ1Y3RvcioganNDb25zdHJ1Y3RvciA9IGpzQ2FzdDxKU011dGF0aW9uT2Jz
ZXJ2ZXJDb25zdHJ1Y3Rvcio+KGV4ZWMtPmNhbGxlZSgpKTsKKyAgICBSZWZQdHI8TXV0YXRpb25D
YWxsYmFjaz4gY2FsbGJhY2sgPSBKU011dGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZShvYmplY3QsIGpz
Q29uc3RydWN0b3ItPmdsb2JhbE9iamVjdCgpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGFzT2JqZWN0KHRvSlMoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCksIE11dGF0
aW9uT2JzZXJ2ZXI6OmNyZWF0ZShjYWxsYmFjay5yZWxlYXNlKCkpKSkpOworfQorCitzdHJ1Y3Qg
Qm9vbGVhbk9wdGlvbiB7CisgICAgY29uc3QgY2hhciogbmFtZTsKKyAgICBNdXRhdGlvbk9ic2Vy
dmVyT3B0aW9ucyB2YWx1ZTsKK307CisKK3N0YXRpYyBjb25zdCBCb29sZWFuT3B0aW9uIGJvb2xl
YW5PcHRpb25zW10gPSB7CisgICAgeyAiY2hpbGRMaXN0IiwgTXV0YXRpb25PYnNlcnZlcjo6Q2hp
bGRMaXN0IH0sCisgICAgeyAiYXR0cmlidXRlcyIsIE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0
ZXMgfSwKKyAgICB7ICJjaGFyYWN0ZXJEYXRhIiwgTXV0YXRpb25PYnNlcnZlcjo6Q2hhcmFjdGVy
RGF0YSB9LAorICAgIHsgInN1YnRyZWUiLCBNdXRhdGlvbk9ic2VydmVyOjpTdWJ0cmVlIH0sCisg
ICAgeyAiYXR0cmlidXRlT2xkVmFsdWUiLCBNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVPbGRW
YWx1ZSB9LAorICAgIHsgImNoYXJhY3RlckRhdGFPbGRWYWx1ZSIsIE11dGF0aW9uT2JzZXJ2ZXI6
OkNoYXJhY3RlckRhdGFPbGRWYWx1ZSB9Cit9OworCitzdGF0aWMgY29uc3Qgc2l6ZV90IG51bUJv
b2xlYW5PcHRpb25zID0gc2l6ZW9mKGJvb2xlYW5PcHRpb25zKSAvIHNpemVvZihCb29sZWFuT3B0
aW9uKTsKKworSlNWYWx1ZSBKU011dGF0aW9uT2JzZXJ2ZXI6Om9ic2VydmUoRXhlY1N0YXRlKiBl
eGVjKQoreworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAyKQorICAgICAgICByZXR1
cm4gdGhyb3dFcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7
CisgICAgTm9kZSogdGFyZ2V0ID0gdG9Ob2RlKGV4ZWMtPmFyZ3VtZW50KDApKTsKKyAgICBpZiAo
ZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworCisg
ICAgSlNPYmplY3QqIG9wdGlvbnNPYmplY3QgPSBleGVjLT5hcmd1bWVudCgxKS5nZXRPYmplY3Qo
KTsKKyAgICBpZiAoIW9wdGlvbnNPYmplY3QpIHsKKyAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4
ZWMsIFRZUEVfTUlTTUFUQ0hfRVJSKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Cisg
ICAgfQorCisgICAgSlNEaWN0aW9uYXJ5IGRpY3Rpb25hcnkoZXhlYywgb3B0aW9uc09iamVjdCk7
CisgICAgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgb3B0aW9ucyA9IDA7CisgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IG51bUJvb2xlYW5PcHRpb25zOyArK2kpIHsKKyAgICAgICAgYm9vbCBv
cHRpb24gPSBmYWxzZTsKKyAgICAgICAgaWYgKCFkaWN0aW9uYXJ5LnRyeUdldFByb3BlcnR5KGJv
b2xlYW5PcHRpb25zW2ldLm5hbWUsIG9wdGlvbikpCisgICAgICAgICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKKyAgICAgICAgaWYgKG9wdGlvbikKKyAgICAgICAgICAgIG9wdGlvbnMgfD0gYm9v
bGVhbk9wdGlvbnNbaV0udmFsdWU7CisgICAgfQorCisgICAgSGFzaFNldDxBdG9taWNTdHJpbmc+
IGF0dHJpYnV0ZUZpbHRlcjsKKyAgICBpZiAoIWRpY3Rpb25hcnkudHJ5R2V0UHJvcGVydHkoImF0
dHJpYnV0ZUZpbHRlciIsIGF0dHJpYnV0ZUZpbHRlcikpCisgICAgICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOworICAgIGlmICghYXR0cmlidXRlRmlsdGVyLmlzRW1wdHkoKSkKKyAgICAgICAgb3B0
aW9ucyB8PSBNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVGaWx0ZXI7CisKKyAgICBFeGNlcHRp
b25Db2RlIGVjID0gMDsKKyAgICBpbXBsKCktPm9ic2VydmUodGFyZ2V0LCBvcHRpb25zLCBhdHRy
aWJ1dGVGaWx0ZXIsIGVjKTsKKyAgICBpZiAoZWMpCisgICAgICAgIHNldERPTUV4Y2VwdGlvbihl
eGVjLCBlYyk7CisgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXJD
dXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRNdXRhdGlvbk9i
c2VydmVyQ3VzdG9tLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzlhMjQ2YTE1
OTk0YmEwOTg2NDJiZjUyMmQ4ZDU2YWNiN2QyMWFmOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktp
dE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTIyICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0g
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQot
Ci0jaW5jbHVkZSAiSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCi0KLSNpbmNsdWRlICJFeGNl
cHRpb25Db2RlLmgiCi0jaW5jbHVkZSAiSlNEaWN0aW9uYXJ5LmgiCi0jaW5jbHVkZSAiSlNNdXRh
dGlvbkNhbGxiYWNrLmgiCi0jaW5jbHVkZSAiSlNOb2RlLmgiCi0jaW5jbHVkZSAiTm9kZS5oIgot
I2luY2x1ZGUgIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIKLSNpbmNsdWRlIDxydW50aW1lL0Vy
cm9yLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9BdG9t
aWNTdHJpbmcuaD4KLQotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTV2ViS2l0TXV0YXRpb25PYnNlcnZl
ckNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIoRXhlY1N0YXRl
KiBleGVjKQotewotICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQotICAgICAgICBy
ZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4
ZWMpKTsKLQotICAgIEpTT2JqZWN0KiBvYmplY3QgPSBleGVjLT5hcmd1bWVudCgwKS5nZXRPYmpl
Y3QoKTsKLSAgICBpZiAoIW9iamVjdCkgewotICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywg
VFlQRV9NSVNNQVRDSF9FUlIpOwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwotICAgIH0KLQotICAgIEpTV2ViS2l0TXV0YXRpb25PYnNlcnZlckNvbnN0cnVj
dG9yKiBqc0NvbnN0cnVjdG9yID0ganNDYXN0PEpTV2ViS2l0TXV0YXRpb25PYnNlcnZlckNvbnN0
cnVjdG9yKj4oZXhlYy0+Y2FsbGVlKCkpOwotICAgIFJlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPiBj
YWxsYmFjayA9IEpTTXV0YXRpb25DYWxsYmFjazo6Y3JlYXRlKG9iamVjdCwganNDb25zdHJ1Y3Rv
ci0+Z2xvYmFsT2JqZWN0KCkpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNPYmplY3Qo
dG9KUyhleGVjLCBqc0NvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKSwgV2ViS2l0TXV0YXRpb25P
YnNlcnZlcjo6Y3JlYXRlKGNhbGxiYWNrLnJlbGVhc2UoKSkpKSk7Ci19Ci0KLXN0cnVjdCBCb29s
ZWFuT3B0aW9uIHsKLSAgICBjb25zdCBjaGFyKiBuYW1lOwotICAgIE11dGF0aW9uT2JzZXJ2ZXJP
cHRpb25zIHZhbHVlOwotfTsKLQotc3RhdGljIGNvbnN0IEJvb2xlYW5PcHRpb24gYm9vbGVhbk9w
dGlvbnNbXSA9IHsKLSAgICB7ICJjaGlsZExpc3QiLCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpD
aGlsZExpc3QgfSwKLSAgICB7ICJhdHRyaWJ1dGVzIiwgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6
QXR0cmlidXRlcyB9LAotICAgIHsgImNoYXJhY3RlckRhdGEiLCBXZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyOjpDaGFyYWN0ZXJEYXRhIH0sCi0gICAgeyAic3VidHJlZSIsIFdlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXI6OlN1YnRyZWUgfSwKLSAgICB7ICJhdHRyaWJ1dGVPbGRWYWx1ZSIsIFdlYktpdE11dGF0
aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZU9sZFZhbHVlIH0sCi0gICAgeyAiY2hhcmFjdGVyRGF0YU9s
ZFZhbHVlIiwgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6Q2hhcmFjdGVyRGF0YU9sZFZhbHVlIH0K
LX07Ci0KLXN0YXRpYyBjb25zdCBzaXplX3QgbnVtQm9vbGVhbk9wdGlvbnMgPSBzaXplb2YoYm9v
bGVhbk9wdGlvbnMpIC8gc2l6ZW9mKEJvb2xlYW5PcHRpb24pOwotCi1KU1ZhbHVlIEpTV2ViS2l0
TXV0YXRpb25PYnNlcnZlcjo6b2JzZXJ2ZShFeGVjU3RhdGUqIGV4ZWMpCi17Ci0gICAgaWYgKGV4
ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDIpCi0gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMs
IGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBOb2RlKiB0YXJnZXQg
PSB0b05vZGUoZXhlYy0+YXJndW1lbnQoMCkpOwotICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24o
KSkKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0KLSAgICBKU09iamVjdCogb3B0aW9u
c09iamVjdCA9IGV4ZWMtPmFyZ3VtZW50KDEpLmdldE9iamVjdCgpOwotICAgIGlmICghb3B0aW9u
c09iamVjdCkgewotICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgVFlQRV9NSVNNQVRDSF9F
UlIpOwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci0KLSAgICBKU0RpY3Rp
b25hcnkgZGljdGlvbmFyeShleGVjLCBvcHRpb25zT2JqZWN0KTsKLSAgICBNdXRhdGlvbk9ic2Vy
dmVyT3B0aW9ucyBvcHRpb25zID0gMDsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVt
Qm9vbGVhbk9wdGlvbnM7ICsraSkgewotICAgICAgICBib29sIG9wdGlvbiA9IGZhbHNlOwotICAg
ICAgICBpZiAoIWRpY3Rpb25hcnkudHJ5R2V0UHJvcGVydHkoYm9vbGVhbk9wdGlvbnNbaV0ubmFt
ZSwgb3B0aW9uKSkKLSAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgICAgICBp
ZiAob3B0aW9uKQotICAgICAgICAgICAgb3B0aW9ucyB8PSBib29sZWFuT3B0aW9uc1tpXS52YWx1
ZTsKLSAgICB9Ci0KLSAgICBIYXNoU2V0PEF0b21pY1N0cmluZz4gYXR0cmlidXRlRmlsdGVyOwot
ICAgIGlmICghZGljdGlvbmFyeS50cnlHZXRQcm9wZXJ0eSgiYXR0cmlidXRlRmlsdGVyIiwgYXR0
cmlidXRlRmlsdGVyKSkKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgaWYgKCFh
dHRyaWJ1dGVGaWx0ZXIuaXNFbXB0eSgpKQotICAgICAgICBvcHRpb25zIHw9IFdlYktpdE11dGF0
aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZUZpbHRlcjsKLQotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAw
OwotICAgIGltcGwoKS0+b2JzZXJ2ZSh0YXJnZXQsIG9wdGlvbnMsIGF0dHJpYnV0ZUZpbHRlciwg
ZWMpOwotICAgIGlmIChlYykKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKLSAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0j
ZW5kaWYgLy8gRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UmVjdXJzaW9uU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhSZWN1cnNpb25TY29wZS5jcHAKaW5kZXggOTJiZTcyMGIxNGM2OWYwNWY2
ZWVmNmE5NmMyNjgyYzRiM2NmY2Y2NS4uYzVjYmM5YzE1NTE0MDc3ODkwNWU0MjI4MGUxZmRiMDI0
MDIwMzA4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhSZWN1cnNp
b25TY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhSZWN1cnNpb25T
Y29wZS5jcHAKQEAgLTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlICJWOFJlY3Vyc2lvblNjb3BlLmgi
CiAKICNpbmNsdWRlICJJREJQZW5kaW5nVHJhbnNhY3Rpb25Nb25pdG9yLmgiCi0jaW5jbHVkZSAi
V2ViS2l0TXV0YXRpb25PYnNlcnZlci5oIgorI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00OSw3ICs0OSw3IEBAIHZvaWQgVjhSZWN1cnNp
b25TY29wZTo6ZGlkTGVhdmVTY3JpcHRDb250ZXh0KCkKIAogI2lmIEVOQUJMRShNVVRBVElPTl9P
QlNFUlZFUlMpCiAgICAgaWYgKG1faXNEb2N1bWVudENvbnRleHQpCi0gICAgICAgIFdlYktpdE11
dGF0aW9uT2JzZXJ2ZXI6OmRlbGl2ZXJBbGxNdXRhdGlvbnMoKTsKKyAgICAgICAgTXV0YXRpb25P
YnNlcnZlcjo6ZGVsaXZlckFsbE11dGF0aW9ucygpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uQ2FsbGJhY2tDdXN0
b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25DYWxs
YmFja0N1c3RvbS5jcHAKaW5kZXggYmZmYmU3NDAwZmRhMmNhNThkMmY5Yjc3MDg2ZjZjNmJiZmEw
NTI3Zi4uNzE0ZmRhMjljOWExYjIzMDU3ZmQ0YWZkMjFkMjE0ZmU5NWEyYTVjYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25DYWxsYmFja0N1
c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRp
b25DYWxsYmFja0N1c3RvbS5jcHAKQEAgLTM3LDkgKzM3LDkgQEAKICNpbmNsdWRlICJTY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCiAjaW5jbHVkZSAiVjhD
dXN0b21Wb2lkQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJWOE11dGF0aW9uT2JzZXJ2ZXIuaCIKICNp
bmNsdWRlICJWOE11dGF0aW9uUmVjb3JkLmgiCiAjaW5jbHVkZSAiVjhQcm94eS5oIgotI2luY2x1
ZGUgIlY4V2ViS2l0TXV0YXRpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25z
Lmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CkBAIC00Nyw3ICs0Nyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotYm9vbCBWOE11dGF0
aW9uQ2FsbGJhY2s6OmhhbmRsZUV2ZW50KE11dGF0aW9uUmVjb3JkQXJyYXkqIG11dGF0aW9ucywg
V2ViS2l0TXV0YXRpb25PYnNlcnZlciogb2JzZXJ2ZXIpCitib29sIFY4TXV0YXRpb25DYWxsYmFj
azo6aGFuZGxlRXZlbnQoTXV0YXRpb25SZWNvcmRBcnJheSogbXV0YXRpb25zLCBNdXRhdGlvbk9i
c2VydmVyKiBvYnNlcnZlcikKIHsKICAgICBBU1NFUlQobXV0YXRpb25zKTsKICAgICBpZiAoIW11
dGF0aW9ucykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGJhNTlkNWQ4
ZDA5ZGJlYmI4NmZjMzhjN2YwM2IxOGI3NDU2MmNiOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3Bw
CkBAIC0wLDAgKzEsMTIxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1VVEFU
SU9OX09CU0VSVkVSUykKKworI2luY2x1ZGUgIlY4TXV0YXRpb25PYnNlcnZlci5oIgorCisjaW5j
bHVkZSAiRGljdGlvbmFyeS5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRl
ICJNdXRhdGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCisjaW5jbHVkZSAi
VjhCaW5kaW5nTWFjcm9zLmgiCisjaW5jbHVkZSAiVjhET01XcmFwcGVyLmgiCisjaW5jbHVkZSAi
VjhNdXRhdGlvbkNhbGxiYWNrLmgiCisjaW5jbHVkZSAiVjhOb2RlLmgiCisjaW5jbHVkZSAiVjhQ
cm94eS5oIgorI2luY2x1ZGUgIlY4VXRpbGl0aWVzLmgiCisKKyNpbmNsdWRlIDx3dGYvSGFzaFNl
dC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOE11dGF0aW9uT2JzZXJ2ZXI6OmNvbnN0
cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3sKKyAgICBJTkNfU1RB
VFMoIkRPTS5NdXRhdGlvbk9ic2VydmVyLkNvbnN0cnVjdG9yIik7CisKKyAgICBpZiAoIWFyZ3Mu
SXNDb25zdHJ1Y3RDYWxsKCkpCisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd1R5cGVFcnJv
cigiRE9NIG9iamVjdCBjb25zdHJ1Y3RvciBjYW5ub3QgYmUgY2FsbGVkIGFzIGEgZnVuY3Rpb24u
IiwgYXJncy5HZXRJc29sYXRlKCkpOworCisgICAgaWYgKENvbnN0cnVjdG9yTW9kZTo6Y3VycmVu
dCgpID09IENvbnN0cnVjdG9yTW9kZTo6V3JhcEV4aXN0aW5nT2JqZWN0KQorICAgICAgICByZXR1
cm4gYXJncy5Ib2xkZXIoKTsKKworICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKKyAgICAgICAg
cmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29s
YXRlKCkpOworCisgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gYXJnID0gYXJnc1swXTsKKyAgICBp
ZiAoIWFyZy0+SXNPYmplY3QoKSkKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoVFlQRV9NSVNN
QVRDSF9FUlIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQgPSBnZXRTY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CisgICAgaWYgKCFjb250
ZXh0KQorICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dFcnJvcihWOFByb3h5OjpSZWZlcmVu
Y2VFcnJvciwgIk11dGF0aW9uT2JzZXJ2ZXIgY29uc3RydWN0b3IncyBhc3NvY2lhdGVkIGZyYW1l
IHVuYXZhaWxhYmxlIiwgYXJncy5HZXRJc29sYXRlKCkpOworCisgICAgUmVmUHRyPE11dGF0aW9u
Q2FsbGJhY2s+IGNhbGxiYWNrID0gVjhNdXRhdGlvbkNhbGxiYWNrOjpjcmVhdGUoYXJnLCBjb250
ZXh0KTsKKyAgICBSZWZQdHI8TXV0YXRpb25PYnNlcnZlcj4gb2JzZXJ2ZXIgPSBNdXRhdGlvbk9i
c2VydmVyOjpjcmVhdGUoY2FsbGJhY2sucmVsZWFzZSgpKTsKKworICAgIFY4RE9NV3JhcHBlcjo6
c2V0RE9NV3JhcHBlcihhcmdzLkhvbGRlcigpLCAmaW5mbywgb2JzZXJ2ZXIuZ2V0KCkpOworICAg
IFY4RE9NV3JhcHBlcjo6c2V0SlNXcmFwcGVyRm9yRE9NT2JqZWN0KG9ic2VydmVyLnJlbGVhc2Uo
KSwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD46Ok5ldyhhcmdzLkhvbGRlcigpKSk7CisgICAg
cmV0dXJuIGFyZ3MuSG9sZGVyKCk7Cit9CisKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOE11dGF0
aW9uT2JzZXJ2ZXI6Om9ic2VydmVDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQor
eworICAgIElOQ19TVEFUUygiRE9NLk11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSIpOworICAgIGlm
IChhcmdzLkxlbmd0aCgpIDwgMikKKyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5v
dWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOworICAgIE11dGF0aW9uT2JzZXJ2
ZXIqIGltcCA9IFY4TXV0YXRpb25PYnNlcnZlcjo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Cisg
ICAgRVhDRVBUSU9OX0JMT0NLKE5vZGUqLCB0YXJnZXQsIFY4Tm9kZTo6SGFzSW5zdGFuY2UoYXJn
c1swXSkgPyBWOE5vZGU6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoYXJn
c1swXSkpIDogMCk7CisKKyAgICBpZiAoIWFyZ3NbMV0tPklzT2JqZWN0KCkpCisgICAgICAgIHJl
dHVybiB0aHJvd0Vycm9yKFRZUEVfTUlTTUFUQ0hfRVJSLCBhcmdzLkdldElzb2xhdGUoKSk7CisK
KyAgICBEaWN0aW9uYXJ5IG9wdGlvbnNPYmplY3QoYXJnc1sxXSk7CisgICAgdW5zaWduZWQgb3B0
aW9ucyA9IDA7CisgICAgSGFzaFNldDxBdG9taWNTdHJpbmc+IGF0dHJpYnV0ZUZpbHRlcjsKKyAg
ICBib29sIG9wdGlvbjsKKyAgICBpZiAob3B0aW9uc09iamVjdC5nZXQoImNoaWxkTGlzdCIsIG9w
dGlvbikgJiYgb3B0aW9uKQorICAgICAgICBvcHRpb25zIHw9IE11dGF0aW9uT2JzZXJ2ZXI6OkNo
aWxkTGlzdDsKKyAgICBpZiAob3B0aW9uc09iamVjdC5nZXQoImF0dHJpYnV0ZXMiLCBvcHRpb24p
ICYmIG9wdGlvbikKKyAgICAgICAgb3B0aW9ucyB8PSBNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1
dGVzOworICAgIGlmIChvcHRpb25zT2JqZWN0LmdldCgiYXR0cmlidXRlRmlsdGVyIiwgYXR0cmli
dXRlRmlsdGVyKSkKKyAgICAgICAgb3B0aW9ucyB8PSBNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1
dGVGaWx0ZXI7CisgICAgaWYgKG9wdGlvbnNPYmplY3QuZ2V0KCJjaGFyYWN0ZXJEYXRhIiwgb3B0
aW9uKSAmJiBvcHRpb24pCisgICAgICAgIG9wdGlvbnMgfD0gTXV0YXRpb25PYnNlcnZlcjo6Q2hh
cmFjdGVyRGF0YTsKKyAgICBpZiAob3B0aW9uc09iamVjdC5nZXQoInN1YnRyZWUiLCBvcHRpb24p
ICYmIG9wdGlvbikKKyAgICAgICAgb3B0aW9ucyB8PSBNdXRhdGlvbk9ic2VydmVyOjpTdWJ0cmVl
OworICAgIGlmIChvcHRpb25zT2JqZWN0LmdldCgiYXR0cmlidXRlT2xkVmFsdWUiLCBvcHRpb24p
ICYmIG9wdGlvbikKKyAgICAgICAgb3B0aW9ucyB8PSBNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1
dGVPbGRWYWx1ZTsKKyAgICBpZiAob3B0aW9uc09iamVjdC5nZXQoImNoYXJhY3RlckRhdGFPbGRW
YWx1ZSIsIG9wdGlvbikgJiYgb3B0aW9uKQorICAgICAgICBvcHRpb25zIHw9IE11dGF0aW9uT2Jz
ZXJ2ZXI6OkNoYXJhY3RlckRhdGFPbGRWYWx1ZTsKKworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAw
OworICAgIGltcC0+b2JzZXJ2ZSh0YXJnZXQsIG9wdGlvbnMsIGF0dHJpYnV0ZUZpbHRlciwgZWMp
OworICAgIGlmIChlYykKKyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihl
YywgYXJncy5HZXRJc29sYXRlKCkpOworICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4o
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1VVEFU
SU9OX09CU0VSVkVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOFdlYktpdE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI0ZWY1ZjJlY2QyMTc5NjQwNGM5YzM0MjRiMjRm
NWRlNjM5MDk0NDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0TXV0YXRpb25PYnNl
cnZlckN1c3RvbS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMjEgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmli
dXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
Ci0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLQotI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCi0KLSNpbmNsdWRlICJW
OFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIKLQotI2luY2x1ZGUgIkRpY3Rpb25hcnkuaCIKLSNp
bmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCi0jaW5jbHVkZSAiVjhCaW5kaW5nLmgiCi0jaW5jbHVk
ZSAiVjhCaW5kaW5nTWFjcm9zLmgiCi0jaW5jbHVkZSAiVjhET01XcmFwcGVyLmgiCi0jaW5jbHVk
ZSAiVjhNdXRhdGlvbkNhbGxiYWNrLmgiCi0jaW5jbHVkZSAiVjhOb2RlLmgiCi0jaW5jbHVkZSAi
VjhQcm94eS5oIgotI2luY2x1ZGUgIlY4VXRpbGl0aWVzLmgiCi0jaW5jbHVkZSAiV2ViS2l0TXV0
YXRpb25PYnNlcnZlci5oIgotCi0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3
dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi12ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gVjhXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpjb25zdHJ1Y3RvckNhbGxi
YWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCi17Ci0gICAgSU5DX1NUQVRTKCJET00uV2Vi
S2l0TXV0YXRpb25PYnNlcnZlci5Db25zdHJ1Y3RvciIpOwotCi0gICAgaWYgKCFhcmdzLklzQ29u
c3RydWN0Q2FsbCgpKQotICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoIkRP
TSBvYmplY3QgY29uc3RydWN0b3IgY2Fubm90IGJlIGNhbGxlZCBhcyBhIGZ1bmN0aW9uLiIsIGFy
Z3MuR2V0SXNvbGF0ZSgpKTsKLQotICAgIGlmIChDb25zdHJ1Y3Rvck1vZGU6OmN1cnJlbnQoKSA9
PSBDb25zdHJ1Y3Rvck1vZGU6OldyYXBFeGlzdGluZ09iamVjdCkKLSAgICAgICAgcmV0dXJuIGFy
Z3MuSG9sZGVyKCk7Ci0KLSAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCi0gICAgICAgIHJldHVy
biBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgp
KTsKLQotICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGFyZyA9IGFyZ3NbMF07Ci0gICAgaWYgKCFh
cmctPklzT2JqZWN0KCkpCi0gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKFRZUEVfTUlTTUFUQ0hf
RVJSLCBhcmdzLkdldElzb2xhdGUoKSk7Ci0KLSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0ID0gZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwotICAgIGlmICghY29udGV4dCkK
LSAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93RXJyb3IoVjhQcm94eTo6UmVmZXJlbmNlRXJy
b3IsICJXZWJLaXRNdXRhdGlvbk9ic2VydmVyIGNvbnN0cnVjdG9yJ3MgYXNzb2NpYXRlZCBmcmFt
ZSB1bmF2YWlsYWJsZSIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKLQotICAgIFJlZlB0cjxNdXRhdGlv
bkNhbGxiYWNrPiBjYWxsYmFjayA9IFY4TXV0YXRpb25DYWxsYmFjazo6Y3JlYXRlKGFyZywgY29u
dGV4dCk7Ci0gICAgUmVmUHRyPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI+IG9ic2VydmVyID0gV2Vi
S2l0TXV0YXRpb25PYnNlcnZlcjo6Y3JlYXRlKGNhbGxiYWNrLnJlbGVhc2UoKSk7Ci0KLSAgICBW
OERPTVdyYXBwZXI6OnNldERPTVdyYXBwZXIoYXJncy5Ib2xkZXIoKSwgJmluZm8sIG9ic2VydmVy
LmdldCgpKTsKLSAgICBWOERPTVdyYXBwZXI6OnNldEpTV3JhcHBlckZvckRPTU9iamVjdChvYnNl
cnZlci5yZWxlYXNlKCksIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+OjpOZXcoYXJncy5Ib2xk
ZXIoKSkpOwotICAgIHJldHVybiBhcmdzLkhvbGRlcigpOwotfQotCi12ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gVjhXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpvYnNlcnZlQ2FsbGJhY2soY29uc3Qgdjg6
OkFyZ3VtZW50cyYgYXJncykKLXsKLSAgICBJTkNfU1RBVFMoIkRPTS5XZWJLaXRNdXRhdGlvbk9i
c2VydmVyLm9ic2VydmUiKTsKLSAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDIpCi0gICAgICAgIHJl
dHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0
ZSgpKTsKLSAgICBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKiBpbXAgPSBWOFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXI6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIEVYQ0VQVElPTl9CTE9DSyhO
b2RlKiwgdGFyZ2V0LCBWOE5vZGU6Okhhc0luc3RhbmNlKGFyZ3NbMF0pID8gVjhOb2RlOjp0b05h
dGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGFyZ3NbMF0pKSA6IDApOwotCi0gICAg
aWYgKCFhcmdzWzFdLT5Jc09iamVjdCgpKQotICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihUWVBF
X01JU01BVENIX0VSUiwgYXJncy5HZXRJc29sYXRlKCkpOwotCi0gICAgRGljdGlvbmFyeSBvcHRp
b25zT2JqZWN0KGFyZ3NbMV0pOwotICAgIHVuc2lnbmVkIG9wdGlvbnMgPSAwOwotICAgIEhhc2hT
ZXQ8QXRvbWljU3RyaW5nPiBhdHRyaWJ1dGVGaWx0ZXI7Ci0gICAgYm9vbCBvcHRpb247Ci0gICAg
aWYgKG9wdGlvbnNPYmplY3QuZ2V0KCJjaGlsZExpc3QiLCBvcHRpb24pICYmIG9wdGlvbikKLSAg
ICAgICAgb3B0aW9ucyB8PSBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpDaGlsZExpc3Q7Ci0gICAg
aWYgKG9wdGlvbnNPYmplY3QuZ2V0KCJhdHRyaWJ1dGVzIiwgb3B0aW9uKSAmJiBvcHRpb24pCi0g
ICAgICAgIG9wdGlvbnMgfD0gV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRlczsKLSAg
ICBpZiAob3B0aW9uc09iamVjdC5nZXQoImF0dHJpYnV0ZUZpbHRlciIsIGF0dHJpYnV0ZUZpbHRl
cikpCi0gICAgICAgIG9wdGlvbnMgfD0gV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRl
RmlsdGVyOwotICAgIGlmIChvcHRpb25zT2JqZWN0LmdldCgiY2hhcmFjdGVyRGF0YSIsIG9wdGlv
bikgJiYgb3B0aW9uKQotICAgICAgICBvcHRpb25zIHw9IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6
OkNoYXJhY3RlckRhdGE7Ci0gICAgaWYgKG9wdGlvbnNPYmplY3QuZ2V0KCJzdWJ0cmVlIiwgb3B0
aW9uKSAmJiBvcHRpb24pCi0gICAgICAgIG9wdGlvbnMgfD0gV2ViS2l0TXV0YXRpb25PYnNlcnZl
cjo6U3VidHJlZTsKLSAgICBpZiAob3B0aW9uc09iamVjdC5nZXQoImF0dHJpYnV0ZU9sZFZhbHVl
Iiwgb3B0aW9uKSAmJiBvcHRpb24pCi0gICAgICAgIG9wdGlvbnMgfD0gV2ViS2l0TXV0YXRpb25P
YnNlcnZlcjo6QXR0cmlidXRlT2xkVmFsdWU7Ci0gICAgaWYgKG9wdGlvbnNPYmplY3QuZ2V0KCJj
aGFyYWN0ZXJEYXRhT2xkVmFsdWUiLCBvcHRpb24pICYmIG9wdGlvbikKLSAgICAgICAgb3B0aW9u
cyB8PSBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhT2xkVmFsdWU7Ci0KLSAg
ICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpbXAtPm9ic2VydmUodGFyZ2V0LCBvcHRpb25z
LCBhdHRyaWJ1dGVGaWx0ZXIsIGVjKTsKLSAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiBWOFBy
b3h5OjpzZXRET01FeGNlcHRpb24oZWMsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKLSAgICByZXR1cm4g
djg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQot
I2VuZGlmIC8vIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hhcmFj
dGVyRGF0YS5jcHAKaW5kZXggNzYxOThmYmU1ZDgwMTZmMTkwZWM4Mzc1YjAwNTg5MTNjYjNkN2Q3
OS4uMzM5NDAzODUxM2RhZTk5MTcyNDU1OWI4MTNlM2NkZGJkYzNjM2Y4YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9DaGFyYWN0ZXJEYXRhLmNwcApAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIk5vZGVS
ZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1ZGUgIlRl
eHRCcmVha0l0ZXJhdG9yLmgiCi0jaW5jbHVkZSAiV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oIgog
CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Q2hpbGRMaXN0TXV0YXRpb25TY29wZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0NoaWxkTGlzdE11
dGF0aW9uU2NvcGUuaAppbmRleCA2ZGQ1MjM2NDBiNjFmMDZmM2E1M2JhNTc1YjVjYWVkOTIzN2M0
MDVmLi5iY2UyNjc1MWMwZjQ4NjJkMGM0YTUzOTBmY2M1YzNmYWVkNGM1MDAyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmgKQEAgLTM0LDggKzM0LDggQEAK
ICNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
KyNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiTm9kZS5oIgotI2luY2x1
ZGUgIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgog
I2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KQEAg
LTQ2LDcgKzQ2LDcgQEAgY2xhc3MgQ2hpbGRMaXN0TXV0YXRpb25TY29wZSB7CiAgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoQ2hpbGRMaXN0TXV0YXRpb25TY29wZSk7CiBwdWJsaWM6CiAgICAgQ2hp
bGRMaXN0TXV0YXRpb25TY29wZShOb2RlKiB0YXJnZXQpCi0gICAgICAgIDogbV90YXJnZXQodGFy
Z2V0LT5kb2N1bWVudCgpLT5oYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShXZWJLaXRNdXRhdGlv
bk9ic2VydmVyOjpDaGlsZExpc3QpID8gdGFyZ2V0IDogMCkKKyAgICAgICAgOiBtX3RhcmdldCh0
YXJnZXQtPmRvY3VtZW50KCktPmhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKE11dGF0aW9uT2Jz
ZXJ2ZXI6OkNoaWxkTGlzdCkgPyB0YXJnZXQgOiAwKQogICAgIHsKICAgICAgICAgaWYgKG1fdGFy
Z2V0KQogICAgICAgICAgICAgTXV0YXRpb25BY2N1bXVsYXRpb25Sb3V0ZXI6Omluc3RhbmNlKCkt
PmluY3JlbWVudFNjb3BpbmdMZXZlbChtX3RhcmdldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRE9NQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25l
LmNwcAppbmRleCAxNDhmYzNlYzk4MmM5OGY2ZmJkMjQ5YmNiYmNlNTE5M2JjM2I3OWRlLi40NWRm
MGVlZjk4MjI4MDM5NzQ4MmY2ZTVjYTZhN2ZmYjM2ZjRlMjU0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01B
bGxJbk9uZS5jcHAKQEAgLTkyLDYgKzkyLDcgQEAKICNpbmNsdWRlICJNb3VzZUV2ZW50LmNwcCIK
ICNpbmNsdWRlICJNb3VzZVJlbGF0ZWRFdmVudC5jcHAiCiAjaW5jbHVkZSAiTXV0YXRpb25FdmVu
dC5jcHAiCisjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlci5jcHAiCiAjaW5jbHVkZSAiTXV0YXRp
b25PYnNlcnZlckludGVyZXN0R3JvdXAuY3BwIgogI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXJS
ZWdpc3RyYXRpb24uY3BwIgogI2luY2x1ZGUgIk11dGF0aW9uUmVjb3JkLmNwcCIKQEAgLTE0Miw3
ICsxNDMsNiBAQAogI2luY2x1ZGUgIlVzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yLmNwcCIKICNp
bmNsdWRlICJWaWV3cG9ydEFyZ3VtZW50cy5jcHAiCiAjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9u
RXZlbnQuY3BwIgotI2luY2x1ZGUgIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIuY3BwIgogI2luY2x1
ZGUgIldlYktpdE5hbWVkRmxvdy5jcHAiCiAjaW5jbHVkZSAiV2ViS2l0VHJhbnNpdGlvbkV2ZW50
LmNwcCIKICNpbmNsdWRlICJXaGVlbEV2ZW50LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXgg
OTNlMzA0MTJlZWZmZTNiNmRjZTkwMzY2ZDU0MTQwM2EyNzliNDJhMC4uNjI0ODk4OTM1MDM3OTQ4
ZjI2Njc2ZWJhMTNkZDIxMTcxZDU5Mjg3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTM4LDYg
KzM4LDcgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JDb3VudGVycy5oIgogI2luY2x1ZGUgIkludFJl
Y3QuaCIKICNpbmNsdWRlICJMYXlvdXRUeXBlcy5oIgorI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2
ZXIuaCIKICNpbmNsdWRlICJQYWdlVmlzaWJpbGl0eVN0YXRlLmgiCiAjaW5jbHVkZSAiUGxhdGZv
cm1TY3JlZW4uaCIKICNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCkBAIC00Nyw3ICs0OCw2IEBA
CiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlICJUcmVlU2NvcGUuaCIKICNpbmNsdWRlICJW
aWV3cG9ydEFyZ3VtZW50cy5oIgotI2luY2x1ZGUgIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIK
ICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvRml4ZWRBcnJheS5oPgogI2lu
Y2x1ZGUgPHd0Zi9Pd25QdHIuaD4KQEAgLTc3MCw3ICs3NzAsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBhZGRMaXN0ZW5lclR5cGVJZk5lZWRlZChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSk7
CiAKICNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQotICAgIGJvb2wgaGFzTXV0YXRpb25P
YnNlcnZlcnNPZlR5cGUoV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6TXV0YXRpb25UeXBlIHR5cGUp
IGNvbnN0CisgICAgYm9vbCBoYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2Vy
dmVyOjpNdXRhdGlvblR5cGUgdHlwZSkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX211
dGF0aW9uT2JzZXJ2ZXJUeXBlcyAmIHR5cGU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmlu
ZGV4IDAwNTI2NGNlZDA1MmFmNjlkZjUyOGRiNjVhYThjNjBjNzVkNzFmNGQuLmEwZTFiZDg4ZTBm
NzMzYTU5NGNlOTIxMTI4OWIwZDFiYTc2ODIyYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAg
LTY2LDcgKzY2LDYgQEAKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiVGV4
dC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgotI2luY2x1ZGUgIldlYktpdE11dGF0aW9u
T2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJXZWJLaXRBbmltYXRpb25MaXN0LmgiCiAjaW5jbHVkZSAi
WE1MTlNOYW1lcy5oIgogI2luY2x1ZGUgIlhNTE5hbWVzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTXV0YXRpb25DYWxsYmFjay5oIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0
aW9uQ2FsbGJhY2suaAppbmRleCA4MDczOWM4OGFkNzhiMTMxNTk5MmQ4ZjY2NmQ5MGIyNDBhZTdl
YWQ5Li4xMTkxOTdhYmUzNGIxZGE5MDRkNDIyYmJmOGUwZjFmNzdlNzc2ZGYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25DYWxsYmFjay5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9NdXRhdGlvbkNhbGxiYWNrLmgKQEAgLTQwLDcgKzQwLDcgQEAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgTXV0YXRpb25SZWNvcmQ7Ci1jbGFzcyBXZWJLaXRNdXRhdGlvbk9i
c2VydmVyOworY2xhc3MgTXV0YXRpb25PYnNlcnZlcjsKIAogdHlwZWRlZiBWZWN0b3I8UmVmUHRy
PE11dGF0aW9uUmVjb3JkPiA+IE11dGF0aW9uUmVjb3JkQXJyYXk7CiAKQEAgLTQ4LDcgKzQ4LDcg
QEAgY2xhc3MgTXV0YXRpb25DYWxsYmFjayA6IHB1YmxpYyBSZWZDb3VudGVkPE11dGF0aW9uQ2Fs
bGJhY2s+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5NdXRhdGlvbkNhbGxiYWNrKCkgeyB9CiAK
LSAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlRXZlbnQoTXV0YXRpb25SZWNvcmRBcnJheSosIFdlYktp
dE11dGF0aW9uT2JzZXJ2ZXIqKSA9IDA7CisgICAgdmlydHVhbCBib29sIGhhbmRsZUV2ZW50KE11
dGF0aW9uUmVjb3JkQXJyYXkqLCBNdXRhdGlvbk9ic2VydmVyKikgPSAwOwogfTsKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uQ2FsbGJhY2suaWRsIGIvU291cmNl
L1dlYkNvcmUvZG9tL011dGF0aW9uQ2FsbGJhY2suaWRsCmluZGV4IDE2MzgxNzE0YzgwOWVhN2Nh
NDc4NGM2YjNiMDMxMWI4OTc5ZjgxNzUuLjJhZWNkOWJlOWU0MWRlNGYzMmU0NmY5ZDA1YjBlYmYy
Y2U0ODUwZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbkNhbGxiYWNr
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25DYWxsYmFjay5pZGwKQEAgLTMz
LDYgKzMzLDYgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBDb25kaXRpb25hbD1NVVRBVElPTl9P
QlNFUlZFUlMsCiAgICAgICAgIENhbGxiYWNrCiAgICAgXSBNdXRhdGlvbkNhbGxiYWNrIHsKLSAg
ICAgICAgW0N1c3RvbV0gYm9vbGVhbiBoYW5kbGVFdmVudChpbiBNdXRhdGlvblJlY29yZEFycmF5
IG11dGF0aW9ucywgaW4gV2ViS2l0TXV0YXRpb25PYnNlcnZlciBvYnNlcnZlcik7CisgICAgICAg
IFtDdXN0b21dIGJvb2xlYW4gaGFuZGxlRXZlbnQoaW4gTXV0YXRpb25SZWNvcmRBcnJheSBtdXRh
dGlvbnMsIGluIE11dGF0aW9uT2JzZXJ2ZXIgb2JzZXJ2ZXIpOwogICAgIH07CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTNhNzU4ZGZlMTFmNWIx
MjBhNzg5MTYwMzJmNTAyMTAwNTJjMTM3ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmNwcApAQCAtMCwwICsxLDE5NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmli
dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKworI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCisKKyNpbmNsdWRlICJN
dXRhdGlvbk9ic2VydmVyLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkV4
Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJNdXRhdGlvbkNhbGxiYWNrLmgiCisjaW5jbHVkZSAi
TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5oIgorI2luY2x1ZGUgIk11dGF0aW9uUmVjb3Jk
LmgiCisjaW5jbHVkZSAiTm9kZS5oIgorI2luY2x1ZGUgPGFsZ29yaXRobT4KKyNpbmNsdWRlIDx3
dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyB1bnNpZ25lZCBzX29i
c2VydmVyUHJpb3JpdHkgPSAwOworCitzdHJ1Y3QgTXV0YXRpb25PYnNlcnZlcjo6T2JzZXJ2ZXJM
ZXNzVGhhbiB7CisgICAgYm9vbCBvcGVyYXRvcigpKGNvbnN0IFJlZlB0cjxNdXRhdGlvbk9ic2Vy
dmVyPiYgbGhzLCBjb25zdCBSZWZQdHI8TXV0YXRpb25PYnNlcnZlcj4mIHJocykKKyAgICB7Cisg
ICAgICAgIHJldHVybiBsaHMtPm1fcHJpb3JpdHkgPCByaHMtPm1fcHJpb3JpdHk7CisgICAgfQor
fTsKKworUGFzc1JlZlB0cjxNdXRhdGlvbk9ic2VydmVyPiBNdXRhdGlvbk9ic2VydmVyOjpjcmVh
dGUoUGFzc1JlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPiBjYWxsYmFjaykKK3sKKyAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgTXV0YXRpb25PYnNlcnZl
cihjYWxsYmFjaykpOworfQorCitNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvbk9ic2VydmVyKFBh
c3NSZWZQdHI8TXV0YXRpb25DYWxsYmFjaz4gY2FsbGJhY2spCisgICAgOiBtX2NhbGxiYWNrKGNh
bGxiYWNrKQorICAgICwgbV9wcmlvcml0eShzX29ic2VydmVyUHJpb3JpdHkrKykKK3sKK30KKwor
TXV0YXRpb25PYnNlcnZlcjo6fk11dGF0aW9uT2JzZXJ2ZXIoKQoreworICAgIEFTU0VSVChtX3Jl
Z2lzdHJhdGlvbnMuaXNFbXB0eSgpKTsKK30KKworYm9vbCBNdXRhdGlvbk9ic2VydmVyOjp2YWxp
ZGF0ZU9wdGlvbnMoTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgb3B0aW9ucykKK3sKKyAgICByZXR1
cm4gKG9wdGlvbnMgJiAoQXR0cmlidXRlcyB8IENoYXJhY3RlckRhdGEgfCBDaGlsZExpc3QpKQor
ICAgICAgICAmJiAoKG9wdGlvbnMgJiBBdHRyaWJ1dGVzKSB8fCAhKG9wdGlvbnMgJiBBdHRyaWJ1
dGVPbGRWYWx1ZSkpCisgICAgICAgICYmICgob3B0aW9ucyAmIEF0dHJpYnV0ZXMpIHx8ICEob3B0
aW9ucyAmIEF0dHJpYnV0ZUZpbHRlcikpCisgICAgICAgICYmICgob3B0aW9ucyAmIENoYXJhY3Rl
ckRhdGEpIHx8ICEob3B0aW9ucyAmIENoYXJhY3RlckRhdGFPbGRWYWx1ZSkpOworfQorCit2b2lk
IE11dGF0aW9uT2JzZXJ2ZXI6Om9ic2VydmUoTm9kZSogbm9kZSwgTXV0YXRpb25PYnNlcnZlck9w
dGlvbnMgb3B0aW9ucywgY29uc3QgSGFzaFNldDxBdG9taWNTdHJpbmc+JiBhdHRyaWJ1dGVGaWx0
ZXIsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghbm9kZSkgeworICAgICAgICBlYyA9
IE5PVF9GT1VORF9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIXZhbGlk
YXRlT3B0aW9ucyhvcHRpb25zKSkgeworICAgICAgICAvLyBGSVhNRTogUmV2aXNpdCB0aGlzIG9u
Y2UgdGhlIHNwZWMgc3BlY2lmaWVzIHRoZSBleGNlcHRpb24gdHlwZTsgU1lOVEFYX0VSUiBtYXkg
bm90IGJlIGFwcHJvcHJpYXRlLgorICAgICAgICBlYyA9IFNZTlRBWF9FUlI7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKiByZWdpc3Ry
YXRpb24gPSBub2RlLT5yZWdpc3Rlck11dGF0aW9uT2JzZXJ2ZXIodGhpcyk7CisgICAgcmVnaXN0
cmF0aW9uLT5yZXNldE9ic2VydmF0aW9uKG9wdGlvbnMsIGF0dHJpYnV0ZUZpbHRlcik7CisKKyAg
ICBub2RlLT5kb2N1bWVudCgpLT5hZGRNdXRhdGlvbk9ic2VydmVyVHlwZXMocmVnaXN0cmF0aW9u
LT5tdXRhdGlvblR5cGVzKCkpOworfQorCitWZWN0b3I8UmVmUHRyPE11dGF0aW9uUmVjb3JkPiA+
IE11dGF0aW9uT2JzZXJ2ZXI6OnRha2VSZWNvcmRzKCkKK3sKKyAgICBWZWN0b3I8UmVmUHRyPE11
dGF0aW9uUmVjb3JkPiA+IHJlY29yZHM7CisgICAgcmVjb3Jkcy5zd2FwKG1fcmVjb3Jkcyk7Cisg
ICAgcmV0dXJuIHJlY29yZHM7Cit9CisKK3ZvaWQgTXV0YXRpb25PYnNlcnZlcjo6ZGlzY29ubmVj
dCgpCit7CisgICAgbV9yZWNvcmRzLmNsZWFyKCk7CisgICAgSGFzaFNldDxNdXRhdGlvbk9ic2Vy
dmVyUmVnaXN0cmF0aW9uKj4gcmVnaXN0cmF0aW9ucyhtX3JlZ2lzdHJhdGlvbnMpOworICAgIGZv
ciAoSGFzaFNldDxNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKj46Oml0ZXJhdG9yIGl0ZXIg
PSByZWdpc3RyYXRpb25zLmJlZ2luKCk7IGl0ZXIgIT0gcmVnaXN0cmF0aW9ucy5lbmQoKTsgKytp
dGVyKQorICAgICAgICAoKml0ZXIpLT51bnJlZ2lzdGVyKCk7Cit9CisKK3ZvaWQgTXV0YXRpb25P
YnNlcnZlcjo6b2JzZXJ2YXRpb25TdGFydGVkKE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24q
IHJlZ2lzdHJhdGlvbikKK3sKKyAgICBBU1NFUlQoIW1fcmVnaXN0cmF0aW9ucy5jb250YWlucyhy
ZWdpc3RyYXRpb24pKTsKKyAgICBtX3JlZ2lzdHJhdGlvbnMuYWRkKHJlZ2lzdHJhdGlvbik7Cit9
CisKK3ZvaWQgTXV0YXRpb25PYnNlcnZlcjo6b2JzZXJ2YXRpb25FbmRlZChNdXRhdGlvbk9ic2Vy
dmVyUmVnaXN0cmF0aW9uKiByZWdpc3RyYXRpb24pCit7CisgICAgQVNTRVJUKG1fcmVnaXN0cmF0
aW9ucy5jb250YWlucyhyZWdpc3RyYXRpb24pKTsKKyAgICBtX3JlZ2lzdHJhdGlvbnMucmVtb3Zl
KHJlZ2lzdHJhdGlvbik7Cit9CisKK3R5cGVkZWYgSGFzaFNldDxSZWZQdHI8TXV0YXRpb25PYnNl
cnZlcj4gPiBNdXRhdGlvbk9ic2VydmVyU2V0OworCitzdGF0aWMgTXV0YXRpb25PYnNlcnZlclNl
dCYgYWN0aXZlTXV0YXRpb25PYnNlcnZlcnMoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwo
TXV0YXRpb25PYnNlcnZlclNldCwgYWN0aXZlT2JzZXJ2ZXJzLCAoKSk7CisgICAgcmV0dXJuIGFj
dGl2ZU9ic2VydmVyczsKK30KKwordm9pZCBNdXRhdGlvbk9ic2VydmVyOjplbnF1ZXVlTXV0YXRp
b25SZWNvcmQoUGFzc1JlZlB0cjxNdXRhdGlvblJlY29yZD4gbXV0YXRpb24pCit7CisgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBtX3JlY29yZHMuYXBwZW5kKG11dGF0aW9uKTsKKyAg
ICBhY3RpdmVNdXRhdGlvbk9ic2VydmVycygpLmFkZCh0aGlzKTsKK30KKwordm9pZCBNdXRhdGlv
bk9ic2VydmVyOjpzZXRIYXNUcmFuc2llbnRSZWdpc3RyYXRpb24oKQoreworICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CisgICAgYWN0aXZlTXV0YXRpb25PYnNlcnZlcnMoKS5hZGQodGhpcyk7
Cit9CisKK3ZvaWQgTXV0YXRpb25PYnNlcnZlcjo6ZGVsaXZlcigpCit7CisgICAgLy8gQ2FsbGlu
ZyBjbGVhclRyYW5zaWVudFJlZ2lzdHJhdGlvbnMoKSBjYW4gbW9kaWZ5IG1fcmVnaXN0cmF0aW9u
cywgc28gaXQncyBuZWNlc3NhcnkKKyAgICAvLyB0byBtYWtlIGEgY29weSBvZiB0aGUgdHJhbnNp
ZW50IHJlZ2lzdHJhdGlvbnMgYmVmb3JlIG9wZXJhdGluZyBvbiB0aGVtLgorICAgIFZlY3RvcjxN
dXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKiwgMT4gdHJhbnNpZW50UmVnaXN0cmF0aW9uczsK
KyAgICBmb3IgKEhhc2hTZXQ8TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbio+OjppdGVyYXRv
ciBpdGVyID0gbV9yZWdpc3RyYXRpb25zLmJlZ2luKCk7IGl0ZXIgIT0gbV9yZWdpc3RyYXRpb25z
LmVuZCgpOyArK2l0ZXIpIHsKKyAgICAgICAgaWYgKCgqaXRlciktPmhhc1RyYW5zaWVudFJlZ2lz
dHJhdGlvbnMoKSkKKyAgICAgICAgICAgIHRyYW5zaWVudFJlZ2lzdHJhdGlvbnMuYXBwZW5kKCpp
dGVyKTsKKyAgICB9CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0cmFuc2llbnRSZWdpc3Ry
YXRpb25zLnNpemUoKTsgKytpKQorICAgICAgICB0cmFuc2llbnRSZWdpc3RyYXRpb25zW2ldLT5j
bGVhclRyYW5zaWVudFJlZ2lzdHJhdGlvbnMoKTsKKworICAgIGlmIChtX3JlY29yZHMuaXNFbXB0
eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBWZWN0b3I8UmVmUHRyPE11dGF0aW9uUmVjb3Jk
PiA+IHJlY29yZHM7CisgICAgcmVjb3Jkcy5zd2FwKG1fcmVjb3Jkcyk7CisKKyAgICBtX2NhbGxi
YWNrLT5oYW5kbGVFdmVudCgmcmVjb3JkcywgdGhpcyk7Cit9CisKK3ZvaWQgTXV0YXRpb25PYnNl
cnZlcjo6ZGVsaXZlckFsbE11dGF0aW9ucygpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKKyAgICBzdGF0aWMgYm9vbCBkZWxpdmVyeUluUHJvZ3Jlc3MgPSBmYWxzZTsKKyAgICBpZiAo
ZGVsaXZlcnlJblByb2dyZXNzKQorICAgICAgICByZXR1cm47CisgICAgZGVsaXZlcnlJblByb2dy
ZXNzID0gdHJ1ZTsKKworICAgIHdoaWxlICghYWN0aXZlTXV0YXRpb25PYnNlcnZlcnMoKS5pc0Vt
cHR5KCkpIHsKKyAgICAgICAgVmVjdG9yPFJlZlB0cjxNdXRhdGlvbk9ic2VydmVyPiA+IG9ic2Vy
dmVyczsKKyAgICAgICAgY29weVRvVmVjdG9yKGFjdGl2ZU11dGF0aW9uT2JzZXJ2ZXJzKCksIG9i
c2VydmVycyk7CisgICAgICAgIGFjdGl2ZU11dGF0aW9uT2JzZXJ2ZXJzKCkuY2xlYXIoKTsKKyAg
ICAgICAgc3RkOjpzb3J0KG9ic2VydmVycy5iZWdpbigpLCBvYnNlcnZlcnMuZW5kKCksIE9ic2Vy
dmVyTGVzc1RoYW4oKSk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb2JzZXJ2ZXJz
LnNpemUoKTsgKytpKQorICAgICAgICAgICAgb2JzZXJ2ZXJzW2ldLT5kZWxpdmVyKCk7CisgICAg
fQorCisgICAgZGVsaXZlcnlJblByb2dyZXNzID0gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YTY2NWRjMDk4YzExYTJjM2Fj
YTFjNDM5OTRkNTA2NTA2OTE3MTE5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL011dGF0aW9uT2JzZXJ2ZXIuaApAQCAtMCwwICsxLDEwNyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTXV0YXRpb25P
YnNlcnZlcl9oCisjZGVmaW5lIE11dGF0aW9uT2JzZXJ2ZXJfaAorCisjaWYgRU5BQkxFKE1VVEFU
SU9OX09CU0VSVkVSUykKKworI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3Rm
L0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L0F0b21pY1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZ0hhc2guaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNdXRhdGlvbkNhbGxiYWNrOworY2xhc3Mg
TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjsKK2NsYXNzIE11dGF0aW9uUmVjb3JkOworY2xh
c3MgTm9kZTsKKwordHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKKwordHlwZWRlZiB1bnNpZ25l
ZCBjaGFyIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zOwordHlwZWRlZiB1bnNpZ25lZCBjaGFyIE11
dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zOworCitjbGFzcyBNdXRhdGlvbk9ic2VydmVyIDog
cHVibGljIFJlZkNvdW50ZWQ8TXV0YXRpb25PYnNlcnZlcj4geworcHVibGljOgorICAgIGVudW0g
TXV0YXRpb25UeXBlIHsKKyAgICAgICAgQ2hpbGRMaXN0ID0gMSA8PCAwLAorICAgICAgICBBdHRy
aWJ1dGVzID0gMSA8PCAxLAorICAgICAgICBDaGFyYWN0ZXJEYXRhID0gMSA8PCAyLAorCisgICAg
ICAgIEFsbE11dGF0aW9uVHlwZXMgPSBDaGlsZExpc3QgfCBBdHRyaWJ1dGVzIHwgQ2hhcmFjdGVy
RGF0YQorICAgIH07CisKKyAgICBlbnVtIE9ic2VydmF0aW9uRmxhZ3MgIHsKKyAgICAgICAgU3Vi
dHJlZSA9IDEgPDwgMywKKyAgICAgICAgQXR0cmlidXRlRmlsdGVyID0gMSA8PCA0CisgICAgfTsK
KworICAgIGVudW0gRGVsaXZlcnlGbGFncyB7CisgICAgICAgIEF0dHJpYnV0ZU9sZFZhbHVlID0g
MSA8PCA1LAorICAgICAgICBDaGFyYWN0ZXJEYXRhT2xkVmFsdWUgPSAxIDw8IDYsCisgICAgfTsK
KworICAgIHN0YXRpYyBQYXNzUmVmUHRyPE11dGF0aW9uT2JzZXJ2ZXI+IGNyZWF0ZShQYXNzUmVm
UHRyPE11dGF0aW9uQ2FsbGJhY2s+KTsKKyAgICBzdGF0aWMgdm9pZCBkZWxpdmVyQWxsTXV0YXRp
b25zKCk7CisKKyAgICB+TXV0YXRpb25PYnNlcnZlcigpOworCisgICAgdm9pZCBvYnNlcnZlKE5v
ZGUqLCBNdXRhdGlvbk9ic2VydmVyT3B0aW9ucywgY29uc3QgSGFzaFNldDxBdG9taWNTdHJpbmc+
JiBhdHRyaWJ1dGVGaWx0ZXIsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBWZWN0b3I8UmVmUHRyPE11
dGF0aW9uUmVjb3JkPiA+IHRha2VSZWNvcmRzKCk7CisgICAgdm9pZCBkaXNjb25uZWN0KCk7Cisg
ICAgdm9pZCBvYnNlcnZhdGlvblN0YXJ0ZWQoTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbiop
OworICAgIHZvaWQgb2JzZXJ2YXRpb25FbmRlZChNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9u
Kik7CisgICAgdm9pZCBlbnF1ZXVlTXV0YXRpb25SZWNvcmQoUGFzc1JlZlB0cjxNdXRhdGlvblJl
Y29yZD4pOworICAgIHZvaWQgc2V0SGFzVHJhbnNpZW50UmVnaXN0cmF0aW9uKCk7CisKK3ByaXZh
dGU6CisgICAgc3RydWN0IE9ic2VydmVyTGVzc1RoYW47CisKKyAgICBNdXRhdGlvbk9ic2VydmVy
KFBhc3NSZWZQdHI8TXV0YXRpb25DYWxsYmFjaz4pOworICAgIHZvaWQgZGVsaXZlcigpOworCisg
ICAgc3RhdGljIGJvb2wgdmFsaWRhdGVPcHRpb25zKE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zKTsK
KworICAgIFJlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPiBtX2NhbGxiYWNrOworICAgIFZlY3RvcjxS
ZWZQdHI8TXV0YXRpb25SZWNvcmQ+ID4gbV9yZWNvcmRzOworICAgIEhhc2hTZXQ8TXV0YXRpb25P
YnNlcnZlclJlZ2lzdHJhdGlvbio+IG1fcmVnaXN0cmF0aW9uczsKKyAgICB1bnNpZ25lZCBtX3By
aW9yaXR5OworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykK
KworI2VuZGlmIC8vIE11dGF0aW9uT2JzZXJ2ZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9u
T2JzZXJ2ZXIuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFjNmUyNWNjMmY4ZWU3YWNmNWM2NGU1OTFmMDU0Zjg5
YjE1YWQ2ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25P
YnNlcnZlci5pZGwKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBjb3JlIHsKKyAgICBpbnRlcmZhY2Ug
WworICAgICAgICBDb25kaXRpb25hbD1NVVRBVElPTl9PQlNFUlZFUlMsCisgICAgICAgIEN1c3Rv
bUNvbnN0cnVjdG9yLAorICAgICAgICBDb25zdHJ1Y3RvclBhcmFtZXRlcnM9MQorICAgIF0gTXV0
YXRpb25PYnNlcnZlciB7CisgICAgICAgIFtDdXN0b21dIHZvaWQgb2JzZXJ2ZShpbiBOb2RlIHRh
cmdldCwgaW4gTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgb3B0aW9ucykKKyAgICAgICAgICAgIHJh
aXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBzZXF1ZW5jZTxNdXRhdGlvblJlY29yZD4gdGFr
ZVJlY29yZHMoKTsKKyAgICAgICAgdm9pZCBkaXNjb25uZWN0KCk7CisgICAgfTsKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuY3Bw
CmluZGV4IGRkMDI4OGQ1MTM5M2NlMmYwNzBhZTc0MDkyNDg2N2FiMzg1YmI3OWMuLjI0YzBjYjU4
NjUxN2UwOGJjN2E4YjQwOTNmMjFkMzFlMGRiMmQ2NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcApAQCAtNDEsMTAgKzQx
LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc093blB0cjxNdXRhdGlvbk9ic2Vy
dmVySW50ZXJlc3RHcm91cD4gTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6OmNyZWF0ZUlm
TmVlZGVkKE5vZGUqIHRhcmdldCwgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6TXV0YXRpb25UeXBl
IHR5cGUsIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9sZFZhbHVlRmxhZywgY29uc3Qg
UXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSkKK1Bhc3NPd25QdHI8TXV0YXRpb25PYnNlcnZl
ckludGVyZXN0R3JvdXA+IE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpjcmVhdGVJZk5l
ZWRlZChOb2RlKiB0YXJnZXQsIE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSB0eXBlLCBN
dXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBvbGRWYWx1ZUZsYWcsIGNvbnN0IFF1YWxpZmll
ZE5hbWUqIGF0dHJpYnV0ZU5hbWUpCiB7Ci0gICAgQVNTRVJUKCh0eXBlID09IFdlYktpdE11dGF0
aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMgJiYgYXR0cmlidXRlTmFtZSkgfHwgIWF0dHJpYnV0ZU5h
bWUpOwotICAgIEhhc2hNYXA8V2ViS2l0TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVjb3Jk
RGVsaXZlcnlPcHRpb25zPiBvYnNlcnZlcnM7CisgICAgQVNTRVJUKCh0eXBlID09IE11dGF0aW9u
T2JzZXJ2ZXI6OkF0dHJpYnV0ZXMgJiYgYXR0cmlidXRlTmFtZSkgfHwgIWF0dHJpYnV0ZU5hbWUp
OworICAgIEhhc2hNYXA8TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlP
cHRpb25zPiBvYnNlcnZlcnM7CiAgICAgdGFyZ2V0LT5nZXRSZWdpc3RlcmVkTXV0YXRpb25PYnNl
cnZlcnNPZlR5cGUob2JzZXJ2ZXJzLCB0eXBlLCBhdHRyaWJ1dGVOYW1lKTsKICAgICBpZiAob2Jz
ZXJ2ZXJzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC01Miw3ICs1Miw3
IEBAIFBhc3NPd25QdHI8TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA+IE11dGF0aW9uT2Jz
ZXJ2ZXJJbnRlcmVzdEdyb3VwOjpjcmVhdGVJCiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNdXRh
dGlvbk9ic2VydmVySW50ZXJlc3RHcm91cChvYnNlcnZlcnMsIG9sZFZhbHVlRmxhZykpOwogfQog
Ci1NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6TXV0YXRpb25PYnNlcnZlckludGVyZXN0
R3JvdXAoSGFzaE1hcDxXZWJLaXRNdXRhdGlvbk9ic2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxp
dmVyeU9wdGlvbnM+JiBvYnNlcnZlcnMsIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9s
ZFZhbHVlRmxhZykKK011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpNdXRhdGlvbk9ic2Vy
dmVySW50ZXJlc3RHcm91cChIYXNoTWFwPE11dGF0aW9uT2JzZXJ2ZXIqLCBNdXRhdGlvblJlY29y
ZERlbGl2ZXJ5T3B0aW9ucz4mIG9ic2VydmVycywgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlv
bnMgb2xkVmFsdWVGbGFnKQogICAgIDogbV9vbGRWYWx1ZUZsYWcob2xkVmFsdWVGbGFnKQogewog
ICAgIEFTU0VSVCghb2JzZXJ2ZXJzLmlzRW1wdHkoKSk7CkBAIC02MSw3ICs2MSw3IEBAIE11dGF0
aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cChI
YXNoTWFwPFdlYktpdE11dGF0CiAKIGJvb2wgTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6
OmlzT2xkVmFsdWVSZXF1ZXN0ZWQoKQogewotICAgIGZvciAoSGFzaE1hcDxXZWJLaXRNdXRhdGlv
bk9ic2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+OjppdGVyYXRvciBpdGVy
ID0gbV9vYnNlcnZlcnMuYmVnaW4oKTsgaXRlciAhPSBtX29ic2VydmVycy5lbmQoKTsgKytpdGVy
KSB7CisgICAgZm9yIChIYXNoTWFwPE11dGF0aW9uT2JzZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERl
bGl2ZXJ5T3B0aW9ucz46Oml0ZXJhdG9yIGl0ZXIgPSBtX29ic2VydmVycy5iZWdpbigpOyBpdGVy
ICE9IG1fb2JzZXJ2ZXJzLmVuZCgpOyArK2l0ZXIpIHsKICAgICAgICAgaWYgKGhhc09sZFZhbHVl
KGl0ZXItPnNlY29uZCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC03Miw4
ICs3Miw4IEBAIHZvaWQgTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6OmVucXVldWVNdXRh
dGlvblJlY29yZChQYXNzUmVmUHRyPE11dGF0aW9uUmVjCiB7CiAgICAgUmVmUHRyPE11dGF0aW9u
UmVjb3JkPiBtdXRhdGlvbiA9IHBycE11dGF0aW9uOwogICAgIFJlZlB0cjxNdXRhdGlvblJlY29y
ZD4gbXV0YXRpb25XaXRoTnVsbE9sZFZhbHVlOwotICAgIGZvciAoSGFzaE1hcDxXZWJLaXRNdXRh
dGlvbk9ic2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+OjppdGVyYXRvciBp
dGVyID0gbV9vYnNlcnZlcnMuYmVnaW4oKTsgaXRlciAhPSBtX29ic2VydmVycy5lbmQoKTsgKytp
dGVyKSB7Ci0gICAgICAgIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIqIG9ic2VydmVyID0gaXRlci0+
Zmlyc3Q7CisgICAgZm9yIChIYXNoTWFwPE11dGF0aW9uT2JzZXJ2ZXIqLCBNdXRhdGlvblJlY29y
ZERlbGl2ZXJ5T3B0aW9ucz46Oml0ZXJhdG9yIGl0ZXIgPSBtX29ic2VydmVycy5iZWdpbigpOyBp
dGVyICE9IG1fb2JzZXJ2ZXJzLmVuZCgpOyArK2l0ZXIpIHsKKyAgICAgICAgTXV0YXRpb25PYnNl
cnZlciogb2JzZXJ2ZXIgPSBpdGVyLT5maXJzdDsKICAgICAgICAgaWYgKGhhc09sZFZhbHVlKGl0
ZXItPnNlY29uZCkpIHsKICAgICAgICAgICAgIG9ic2VydmVyLT5lbnF1ZXVlTXV0YXRpb25SZWNv
cmQobXV0YXRpb24pOwogICAgICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5oCmluZGV4IDkzMzMzNGExYjdm
OTU3Mzg5ZTVjYmVkZWUwNWMyNjc3Yjk1MDEyZGIuLjdmZGUzMmVlYTkyODljNmEzODE1ZjkyYjUw
ZDYwODdlOWZjZmYxZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9i
c2VydmVySW50ZXJlc3RHcm91cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9i
c2VydmVySW50ZXJlc3RHcm91cC5oCkBAIC0zNCw5ICszNCw5IEBACiAjaWYgRU5BQkxFKE1VVEFU
SU9OX09CU0VSVkVSUykKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiTXV0YXRp
b25PYnNlcnZlci5oIgogI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJRdWFsaWZpZWROYW1l
LmgiCi0jaW5jbHVkZSAiV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIApAQCAtNDYsMzkgKzQ2LDM5
IEBAIGNsYXNzIE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwIHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgUGFzc093blB0cjxNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cD4gY3JlYXRlRm9y
Q2hpbGRMaXN0TXV0YXRpb24oTm9kZSogdGFyZ2V0KQogICAgIHsKLSAgICAgICAgaWYgKCF0YXJn
ZXQtPmRvY3VtZW50KCktPmhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXI6OkNoaWxkTGlzdCkpCisgICAgICAgIGlmICghdGFyZ2V0LT5kb2N1bWVudCgpLT5o
YXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyOjpDaGlsZExpc3QpKQog
ICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAgICAgTXV0YXRpb25SZWNvcmREZWxp
dmVyeU9wdGlvbnMgb2xkVmFsdWVGbGFnID0gMDsKLSAgICAgICAgcmV0dXJuIGNyZWF0ZUlmTmVl
ZGVkKHRhcmdldCwgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6Q2hpbGRMaXN0LCBvbGRWYWx1ZUZs
YWcpOworICAgICAgICByZXR1cm4gY3JlYXRlSWZOZWVkZWQodGFyZ2V0LCBNdXRhdGlvbk9ic2Vy
dmVyOjpDaGlsZExpc3QsIG9sZFZhbHVlRmxhZyk7CiAgICAgfQogCiAgICAgc3RhdGljIFBhc3NP
d25QdHI8TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA+IGNyZWF0ZUZvckNoYXJhY3RlckRh
dGFNdXRhdGlvbihOb2RlKiB0YXJnZXQpCiAgICAgewotICAgICAgICBpZiAoIXRhcmdldC0+ZG9j
dW1lbnQoKS0+aGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoV2ViS2l0TXV0YXRpb25PYnNlcnZl
cjo6Q2hhcmFjdGVyRGF0YSkpCisgICAgICAgIGlmICghdGFyZ2V0LT5kb2N1bWVudCgpLT5oYXNN
dXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhKSkK
ICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgICAgIHJldHVybiBjcmVhdGVJZk5l
ZWRlZCh0YXJnZXQsIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OkNoYXJhY3RlckRhdGEsIFdlYktp
dE11dGF0aW9uT2JzZXJ2ZXI6OkNoYXJhY3RlckRhdGFPbGRWYWx1ZSk7CisgICAgICAgIHJldHVy
biBjcmVhdGVJZk5lZWRlZCh0YXJnZXQsIE11dGF0aW9uT2JzZXJ2ZXI6OkNoYXJhY3RlckRhdGEs
IE11dGF0aW9uT2JzZXJ2ZXI6OkNoYXJhY3RlckRhdGFPbGRWYWx1ZSk7CiAgICAgfQogCiAgICAg
c3RhdGljIFBhc3NPd25QdHI8TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA+IGNyZWF0ZUZv
ckF0dHJpYnV0ZXNNdXRhdGlvbihOb2RlKiB0YXJnZXQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJpYnV0ZU5hbWUpCiAgICAgewotICAgICAgICBpZiAoIXRhcmdldC0+ZG9jdW1lbnQoKS0+aGFz
TXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRl
cykpCisgICAgICAgIGlmICghdGFyZ2V0LT5kb2N1bWVudCgpLT5oYXNNdXRhdGlvbk9ic2VydmVy
c09mVHlwZShNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVzKSkKICAgICAgICAgICAgIHJldHVy
biBudWxscHRyOwogCi0gICAgICAgIHJldHVybiBjcmVhdGVJZk5lZWRlZCh0YXJnZXQsIFdlYktp
dE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMsIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OkF0
dHJpYnV0ZU9sZFZhbHVlLCAmYXR0cmlidXRlTmFtZSk7CisgICAgICAgIHJldHVybiBjcmVhdGVJ
Zk5lZWRlZCh0YXJnZXQsIE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMsIE11dGF0aW9uT2Jz
ZXJ2ZXI6OkF0dHJpYnV0ZU9sZFZhbHVlLCAmYXR0cmlidXRlTmFtZSk7CiAgICAgfQogCiAgICAg
Ym9vbCBpc09sZFZhbHVlUmVxdWVzdGVkKCk7CiAgICAgdm9pZCBlbnF1ZXVlTXV0YXRpb25SZWNv
cmQoUGFzc1JlZlB0cjxNdXRhdGlvblJlY29yZD4pOwogCiBwcml2YXRlOgotICAgIHN0YXRpYyBQ
YXNzT3duUHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwPiBjcmVhdGVJZk5lZWRlZChO
b2RlKiB0YXJnZXQsIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSwgTXV0YXRp
b25SZWNvcmREZWxpdmVyeU9wdGlvbnMgb2xkVmFsdWVGbGFnLCBjb25zdCBRdWFsaWZpZWROYW1l
KiBhdHRyaWJ1dGVOYW1lID0gMCk7Ci0gICAgTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAo
SGFzaE1hcDxXZWJLaXRNdXRhdGlvbk9ic2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9w
dGlvbnM+JiBvYnNlcnZlcnMsIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9sZFZhbHVl
RmxhZyk7CisgICAgc3RhdGljIFBhc3NPd25QdHI8TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3Jv
dXA+IGNyZWF0ZUlmTmVlZGVkKE5vZGUqIHRhcmdldCwgTXV0YXRpb25PYnNlcnZlcjo6TXV0YXRp
b25UeXBlLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBvbGRWYWx1ZUZsYWcsIGNvbnN0
IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUgPSAwKTsKKyAgICBNdXRhdGlvbk9ic2VydmVy
SW50ZXJlc3RHcm91cChIYXNoTWFwPE11dGF0aW9uT2JzZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERl
bGl2ZXJ5T3B0aW9ucz4mIG9ic2VydmVycywgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMg
b2xkVmFsdWVGbGFnKTsKIAogICAgIGJvb2wgaGFzT2xkVmFsdWUoTXV0YXRpb25SZWNvcmREZWxp
dmVyeU9wdGlvbnMgb3B0aW9ucykgeyByZXR1cm4gb3B0aW9ucyAmIG1fb2xkVmFsdWVGbGFnOyB9
CiAKLSAgICBIYXNoTWFwPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERl
bGl2ZXJ5T3B0aW9ucz4gbV9vYnNlcnZlcnM7CisgICAgSGFzaE1hcDxNdXRhdGlvbk9ic2VydmVy
KiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+IG1fb2JzZXJ2ZXJzOwogICAgIE11dGF0
aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG1fb2xkVmFsdWVGbGFnOwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCmluZGV4
IDE5MGI4NWJkODU1M2FkYWU0YTBmNmNlMGYzYTk2OGZjNmM5MjZjOTcuLjU4OTVlZjQ5ZmVhYTZh
YzYzM2MyZDk0Yzk2ODMyOWI5NWE5ZTM0MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAKQEAgLTQwLDEyICs0MCwxMiBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NPd25QdHI8TXV0YXRpb25PYnNlcnZlclJlZ2lz
dHJhdGlvbj4gTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6Y3JlYXRlKFBhc3NSZWZQdHI8
V2ViS2l0TXV0YXRpb25PYnNlcnZlcj4gb2JzZXJ2ZXIsIE5vZGUqIHJlZ2lzdHJhdGlvbk5vZGUp
CitQYXNzT3duUHRyPE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24+IE11dGF0aW9uT2JzZXJ2
ZXJSZWdpc3RyYXRpb246OmNyZWF0ZShQYXNzUmVmUHRyPE11dGF0aW9uT2JzZXJ2ZXI+IG9ic2Vy
dmVyLCBOb2RlKiByZWdpc3RyYXRpb25Ob2RlKQogewogICAgIHJldHVybiBhZG9wdFB0cihuZXcg
TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbihvYnNlcnZlciwgcmVnaXN0cmF0aW9uTm9kZSkp
OwogfQogCi1NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjpNdXRhdGlvbk9ic2VydmVyUmVn
aXN0cmF0aW9uKFBhc3NSZWZQdHI8V2ViS2l0TXV0YXRpb25PYnNlcnZlcj4gb2JzZXJ2ZXIsIE5v
ZGUqIHJlZ2lzdHJhdGlvbk5vZGUpCitNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjpNdXRh
dGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKFBhc3NSZWZQdHI8TXV0YXRpb25PYnNlcnZlcj4gb2Jz
ZXJ2ZXIsIE5vZGUqIHJlZ2lzdHJhdGlvbk5vZGUpCiAgICAgIDogbV9vYnNlcnZlcihvYnNlcnZl
cikKICAgICAgLCBtX3JlZ2lzdHJhdGlvbk5vZGUocmVnaXN0cmF0aW9uTm9kZSkKICAgICAgLCBt
X29wdGlvbnMoMCkKQEAgLTEwNSwxNiArMTA1LDE2IEBAIHZvaWQgTXV0YXRpb25PYnNlcnZlclJl
Z2lzdHJhdGlvbjo6dW5yZWdpc3RlcigpCiAgICAgLy8gVGhlIGFib3ZlIGxpbmUgd2lsbCBjYXVz
ZSB0aGlzIG9iamVjdCB0byBiZSBkZWxldGVkLCBzbyBkb24ndCBkbyBhbnkgbW9yZSBpbiB0aGlz
IGZ1bmN0aW9uLgogfQogCi1ib29sIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb246OnNob3Vs
ZFJlY2VpdmVNdXRhdGlvbkZyb20oTm9kZSogbm9kZSwgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6
TXV0YXRpb25UeXBlIHR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpCiti
b29sIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb246OnNob3VsZFJlY2VpdmVNdXRhdGlvbkZy
b20oTm9kZSogbm9kZSwgTXV0YXRpb25PYnNlcnZlcjo6TXV0YXRpb25UeXBlIHR5cGUsIGNvbnN0
IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpCiB7Ci0gICAgQVNTRVJUKCh0eXBlID09IFdl
YktpdE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMgJiYgYXR0cmlidXRlTmFtZSkgfHwgIWF0
dHJpYnV0ZU5hbWUpOworICAgIEFTU0VSVCgodHlwZSA9PSBNdXRhdGlvbk9ic2VydmVyOjpBdHRy
aWJ1dGVzICYmIGF0dHJpYnV0ZU5hbWUpIHx8ICFhdHRyaWJ1dGVOYW1lKTsKICAgICBpZiAoISht
X29wdGlvbnMgJiB0eXBlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKG1fcmVn
aXN0cmF0aW9uTm9kZSAhPSBub2RlICYmICFpc1N1YnRyZWUoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgaWYgKHR5cGUgIT0gV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRl
cyB8fCAhKG1fb3B0aW9ucyAmIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZUZpbHRl
cikpCisgICAgaWYgKHR5cGUgIT0gTXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRlcyB8fCAhKG1f
b3B0aW9ucyAmIE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZUZpbHRlcikpCiAgICAgICAgIHJl
dHVybiB0cnVlOwogCiAgICAgaWYgKCFhdHRyaWJ1dGVOYW1lLT5uYW1lc3BhY2VVUkkoKS5pc051
bGwoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVn
aXN0cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJh
dGlvbi5oCmluZGV4IDIzMmVlMjVkNWFjOGVmNjU1NDVhOTQzNjQwODI2NDVhZjUzODViNzMuLmQ0
OTE0NjI1YTlkZmVkNjY2ZGY0Yjc4YTkyMWE1NzhlM2M3Nzc1NWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uaApAQCAtMzMsNyArMzMs
NyBAQAogCiAjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKIAotI2luY2x1ZGUgIldlYktp
dE11dGF0aW9uT2JzZXJ2ZXIuaCIKKyNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5j
bHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmdIYXNoLmg+CkBAIC00NSw3ICs0NSw3IEBA
IGNsYXNzIFF1YWxpZmllZE5hbWU7CiBjbGFzcyBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9u
IHsKIHB1YmxpYzoKIAotICAgIHN0YXRpYyBQYXNzT3duUHRyPE11dGF0aW9uT2JzZXJ2ZXJSZWdp
c3RyYXRpb24+IGNyZWF0ZShQYXNzUmVmUHRyPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI+LCBOb2Rl
Kik7CisgICAgc3RhdGljIFBhc3NPd25QdHI8TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbj4g
Y3JlYXRlKFBhc3NSZWZQdHI8TXV0YXRpb25PYnNlcnZlcj4sIE5vZGUqKTsKIAogICAgIH5NdXRh
dGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKCk7CiAKQEAgLTU1LDE5ICs1NSwxOSBAQCBwdWJsaWM6
CiAgICAgYm9vbCBoYXNUcmFuc2llbnRSZWdpc3RyYXRpb25zKCkgeyByZXR1cm4gbV90cmFuc2ll
bnRSZWdpc3RyYXRpb25Ob2RlcyAmJiAhbV90cmFuc2llbnRSZWdpc3RyYXRpb25Ob2Rlcy0+aXNF
bXB0eSgpOyB9CiAgICAgdm9pZCB1bnJlZ2lzdGVyKCk7CiAKLSAgICBib29sIHNob3VsZFJlY2Vp
dmVNdXRhdGlvbkZyb20oTm9kZSosIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlw
ZSwgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSk7Ci0gICAgYm9vbCBpbmxpbmUg
aXNTdWJ0cmVlKCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zICYgV2ViS2l0TXV0YXRpb25PYnNl
cnZlcjo6U3VidHJlZTsgfQorICAgIGJvb2wgc2hvdWxkUmVjZWl2ZU11dGF0aW9uRnJvbShOb2Rl
KiwgTXV0YXRpb25PYnNlcnZlcjo6TXV0YXRpb25UeXBlLCBjb25zdCBRdWFsaWZpZWROYW1lKiBh
dHRyaWJ1dGVOYW1lKTsKKyAgICBib29sIGlubGluZSBpc1N1YnRyZWUoKSBjb25zdCB7IHJldHVy
biBtX29wdGlvbnMgJiBNdXRhdGlvbk9ic2VydmVyOjpTdWJ0cmVlOyB9CiAKLSAgICBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyKiBvYnNlcnZlcigpIHsgcmV0dXJuIG1fb2JzZXJ2ZXIuZ2V0KCk7IH0K
LSAgICBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBkZWxpdmVyeU9wdGlvbnMoKSBjb25z
dCB7IHJldHVybiBtX29wdGlvbnMgJiAoV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRl
T2xkVmFsdWUgfCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhT2xkVmFsdWUp
OyB9Ci0gICAgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgbXV0YXRpb25UeXBlcygpIGNvbnN0IHsg
cmV0dXJuIG1fb3B0aW9ucyAmIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OkFsbE11dGF0aW9uVHlw
ZXM7IH0KKyAgICBNdXRhdGlvbk9ic2VydmVyKiBvYnNlcnZlcigpIHsgcmV0dXJuIG1fb2JzZXJ2
ZXIuZ2V0KCk7IH0KKyAgICBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBkZWxpdmVyeU9w
dGlvbnMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMgJiAoTXV0YXRpb25PYnNlcnZlcjo6QXR0
cmlidXRlT2xkVmFsdWUgfCBNdXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhT2xkVmFsdWUp
OyB9CisgICAgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgbXV0YXRpb25UeXBlcygpIGNvbnN0IHsg
cmV0dXJuIG1fb3B0aW9ucyAmIE11dGF0aW9uT2JzZXJ2ZXI6OkFsbE11dGF0aW9uVHlwZXM7IH0K
IAogcHJpdmF0ZToKLSAgICBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKFBhc3NSZWZQdHI8
V2ViS2l0TXV0YXRpb25PYnNlcnZlcj4sIE5vZGUqKTsKKyAgICBNdXRhdGlvbk9ic2VydmVyUmVn
aXN0cmF0aW9uKFBhc3NSZWZQdHI8TXV0YXRpb25PYnNlcnZlcj4sIE5vZGUqKTsKIAogICAgIGNv
bnN0IEhhc2hTZXQ8QXRvbWljU3RyaW5nPiYgY2FzZUluc2Vuc2l0aXZlQXR0cmlidXRlRmlsdGVy
KCk7CiAKLSAgICBSZWZQdHI8V2ViS2l0TXV0YXRpb25PYnNlcnZlcj4gbV9vYnNlcnZlcjsKKyAg
ICBSZWZQdHI8TXV0YXRpb25PYnNlcnZlcj4gbV9vYnNlcnZlcjsKICAgICBOb2RlKiBtX3JlZ2lz
dHJhdGlvbk5vZGU7CiAgICAgUmVmUHRyPE5vZGU+IG1fcmVnaXN0cmF0aW9uTm9kZUtlZXBBbGl2
ZTsKICAgICB0eXBlZGVmIEhhc2hTZXQ8UmVmUHRyPE5vZGU+ID4gTm9kZUhhc2hTZXQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5jcHAKaW5kZXggZjM1ZGM1Yjk5MDM4YmEwMzQ0OGJjNDZhOGE4MDA0NWJlYmM2Y2MxNi4u
ZGJlMDdmYjlmZDlhMDEwODYwYzA5MmE3NjM4NGJiMTM0OTg1NWNhNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNw
cApAQCAtMjUxMCwxNiArMjUxMCwxNiBAQCBIYXNoU2V0PE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3Ry
YXRpb24qPiogTm9kZTo6dHJhbnNpZW50TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJ5KAogICAgIHJl
dHVybiBoYXNSYXJlRGF0YSgpID8gcmFyZURhdGEoKS0+dHJhbnNpZW50TXV0YXRpb25PYnNlcnZl
clJlZ2lzdHJ5KCkgOiAwOwogfQogCi12b2lkIE5vZGU6OmNvbGxlY3RNYXRjaGluZ09ic2VydmVy
c0Zvck11dGF0aW9uKEhhc2hNYXA8V2ViS2l0TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVj
b3JkRGVsaXZlcnlPcHRpb25zPiYgb2JzZXJ2ZXJzLCBOb2RlKiBmcm9tTm9kZSwgV2ViS2l0TXV0
YXRpb25PYnNlcnZlcjo6TXV0YXRpb25UeXBlIHR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0
dHJpYnV0ZU5hbWUpCit2b2lkIE5vZGU6OmNvbGxlY3RNYXRjaGluZ09ic2VydmVyc0Zvck11dGF0
aW9uKEhhc2hNYXA8TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRp
b25zPiYgb2JzZXJ2ZXJzLCBOb2RlKiBmcm9tTm9kZSwgTXV0YXRpb25PYnNlcnZlcjo6TXV0YXRp
b25UeXBlIHR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpCiB7Ci0gICAg
QVNTRVJUKCh0eXBlID09IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMgJiYgYXR0
cmlidXRlTmFtZSkgfHwgIWF0dHJpYnV0ZU5hbWUpOworICAgIEFTU0VSVCgodHlwZSA9PSBNdXRh
dGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVzICYmIGF0dHJpYnV0ZU5hbWUpIHx8ICFhdHRyaWJ1dGVO
YW1lKTsKICAgICBpZiAoVmVjdG9yPE93blB0cjxNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9u
PiA+KiByZWdpc3RyeSA9IGZyb21Ob2RlLT5tdXRhdGlvbk9ic2VydmVyUmVnaXN0cnkoKSkgewog
ICAgICAgICBjb25zdCBzaXplX3Qgc2l6ZSA9IHJlZ2lzdHJ5LT5zaXplKCk7CiAgICAgICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CiAgICAgICAgICAgICBNdXRhdGlvbk9i
c2VydmVyUmVnaXN0cmF0aW9uKiByZWdpc3RyYXRpb24gPSByZWdpc3RyeS0+YXQoaSkuZ2V0KCk7
CiAgICAgICAgICAgICBpZiAocmVnaXN0cmF0aW9uLT5zaG91bGRSZWNlaXZlTXV0YXRpb25Gcm9t
KHRoaXMsIHR5cGUsIGF0dHJpYnV0ZU5hbWUpKSB7CiAgICAgICAgICAgICAgICAgTXV0YXRpb25S
ZWNvcmREZWxpdmVyeU9wdGlvbnMgZGVsaXZlcnlPcHRpb25zID0gcmVnaXN0cmF0aW9uLT5kZWxp
dmVyeU9wdGlvbnMoKTsKLSAgICAgICAgICAgICAgICBIYXNoTWFwPFdlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz46OkFkZFJlc3VsdCByZXN1bHQg
PSBvYnNlcnZlcnMuYWRkKHJlZ2lzdHJhdGlvbi0+b2JzZXJ2ZXIoKSwgZGVsaXZlcnlPcHRpb25z
KTsKKyAgICAgICAgICAgICAgICBIYXNoTWFwPE11dGF0aW9uT2JzZXJ2ZXIqLCBNdXRhdGlvblJl
Y29yZERlbGl2ZXJ5T3B0aW9ucz46OkFkZFJlc3VsdCByZXN1bHQgPSBvYnNlcnZlcnMuYWRkKHJl
Z2lzdHJhdGlvbi0+b2JzZXJ2ZXIoKSwgZGVsaXZlcnlPcHRpb25zKTsKICAgICAgICAgICAgICAg
ICBpZiAoIXJlc3VsdC5pc05ld0VudHJ5KQogICAgICAgICAgICAgICAgICAgICByZXN1bHQuaXRl
cmF0b3ItPnNlY29uZCB8PSBkZWxpdmVyeU9wdGlvbnM7CiAKQEAgLTI1MzIsNyArMjUzMiw3IEBA
IHZvaWQgTm9kZTo6Y29sbGVjdE1hdGNoaW5nT2JzZXJ2ZXJzRm9yTXV0YXRpb24oSGFzaE1hcDxX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyKiwKICAgICAgICAgICAgIE11dGF0aW9uT2JzZXJ2ZXJSZWdp
c3RyYXRpb24qIHJlZ2lzdHJhdGlvbiA9ICppdGVyOwogICAgICAgICAgICAgaWYgKHJlZ2lzdHJh
dGlvbi0+c2hvdWxkUmVjZWl2ZU11dGF0aW9uRnJvbSh0aGlzLCB0eXBlLCBhdHRyaWJ1dGVOYW1l
KSkgewogICAgICAgICAgICAgICAgIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIGRlbGl2
ZXJ5T3B0aW9ucyA9IHJlZ2lzdHJhdGlvbi0+ZGVsaXZlcnlPcHRpb25zKCk7Ci0gICAgICAgICAg
ICAgICAgSGFzaE1hcDxXZWJLaXRNdXRhdGlvbk9ic2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxp
dmVyeU9wdGlvbnM+OjpBZGRSZXN1bHQgcmVzdWx0ID0gb2JzZXJ2ZXJzLmFkZChyZWdpc3RyYXRp
b24tPm9ic2VydmVyKCksIGRlbGl2ZXJ5T3B0aW9ucyk7CisgICAgICAgICAgICAgICAgSGFzaE1h
cDxNdXRhdGlvbk9ic2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+OjpBZGRS
ZXN1bHQgcmVzdWx0ID0gb2JzZXJ2ZXJzLmFkZChyZWdpc3RyYXRpb24tPm9ic2VydmVyKCksIGRl
bGl2ZXJ5T3B0aW9ucyk7CiAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQuaXNOZXdFbnRyeSkK
ICAgICAgICAgICAgICAgICAgICAgcmVzdWx0Lml0ZXJhdG9yLT5zZWNvbmQgfD0gZGVsaXZlcnlP
cHRpb25zOwogICAgICAgICAgICAgfQpAQCAtMjU0MCwxNSArMjU0MCwxNSBAQCB2b2lkIE5vZGU6
OmNvbGxlY3RNYXRjaGluZ09ic2VydmVyc0Zvck11dGF0aW9uKEhhc2hNYXA8V2ViS2l0TXV0YXRp
b25PYnNlcnZlciosCiAgICAgfQogfQogCi12b2lkIE5vZGU6OmdldFJlZ2lzdGVyZWRNdXRhdGlv
bk9ic2VydmVyc09mVHlwZShIYXNoTWFwPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIqLCBNdXRhdGlv
blJlY29yZERlbGl2ZXJ5T3B0aW9ucz4mIG9ic2VydmVycywgV2ViS2l0TXV0YXRpb25PYnNlcnZl
cjo6TXV0YXRpb25UeXBlIHR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUp
Cit2b2lkIE5vZGU6OmdldFJlZ2lzdGVyZWRNdXRhdGlvbk9ic2VydmVyc09mVHlwZShIYXNoTWFw
PE11dGF0aW9uT2JzZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4mIG9ic2Vy
dmVycywgTXV0YXRpb25PYnNlcnZlcjo6TXV0YXRpb25UeXBlIHR5cGUsIGNvbnN0IFF1YWxpZmll
ZE5hbWUqIGF0dHJpYnV0ZU5hbWUpCiB7Ci0gICAgQVNTRVJUKCh0eXBlID09IFdlYktpdE11dGF0
aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMgJiYgYXR0cmlidXRlTmFtZSkgfHwgIWF0dHJpYnV0ZU5h
bWUpOworICAgIEFTU0VSVCgodHlwZSA9PSBNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVzICYm
IGF0dHJpYnV0ZU5hbWUpIHx8ICFhdHRyaWJ1dGVOYW1lKTsKICAgICBjb2xsZWN0TWF0Y2hpbmdP
YnNlcnZlcnNGb3JNdXRhdGlvbihvYnNlcnZlcnMsIHRoaXMsIHR5cGUsIGF0dHJpYnV0ZU5hbWUp
OwogICAgIGZvciAoTm9kZSogbm9kZSA9IHBhcmVudE5vZGUoKTsgbm9kZTsgbm9kZSA9IG5vZGUt
PnBhcmVudE5vZGUoKSkKICAgICAgICAgY29sbGVjdE1hdGNoaW5nT2JzZXJ2ZXJzRm9yTXV0YXRp
b24ob2JzZXJ2ZXJzLCBub2RlLCB0eXBlLCBhdHRyaWJ1dGVOYW1lKTsKIH0KIAotTXV0YXRpb25P
YnNlcnZlclJlZ2lzdHJhdGlvbiogTm9kZTo6cmVnaXN0ZXJNdXRhdGlvbk9ic2VydmVyKFBhc3NS
ZWZQdHI8V2ViS2l0TXV0YXRpb25PYnNlcnZlcj4gb2JzZXJ2ZXIpCitNdXRhdGlvbk9ic2VydmVy
UmVnaXN0cmF0aW9uKiBOb2RlOjpyZWdpc3Rlck11dGF0aW9uT2JzZXJ2ZXIoUGFzc1JlZlB0cjxN
dXRhdGlvbk9ic2VydmVyPiBvYnNlcnZlcikKIHsKICAgICBWZWN0b3I8T3duUHRyPE11dGF0aW9u
T2JzZXJ2ZXJSZWdpc3RyYXRpb24+ID4qIHJlZ2lzdHJ5ID0gZW5zdXJlUmFyZURhdGEoKS0+ZW5z
dXJlTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJ5KCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCByZWdpc3RyeS0+c2l6ZSgpOyArK2kpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IDI2NTkxMmQwMTg3YTcw
ZTg0MWY1NGU3MDZjNTA3MDVkYzBmNjc0ODUuLjE1YTE1MWIwYzRiZGFlMDgwYmIwYjk0NmIxZjAx
NTgxNmI5NWVmOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtMjksMTAgKzI5LDEwIEBACiAjaW5jbHVkZSAi
RXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJLVVJMSGFzaC5oIgogI2luY2x1ZGUgIkxheW91dFR5
cGVzLmgiCisjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgIlJlbmRlclN0
eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSAi
VHJlZVNoYXJlZC5oIgotI2luY2x1ZGUgIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgpAQCAtNjQxLDggKzY0MSw4IEBAIHB1YmxpYzoK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKLSAgICB2b2lkIGdldFJl
Z2lzdGVyZWRNdXRhdGlvbk9ic2VydmVyc09mVHlwZShIYXNoTWFwPFdlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4mLCBXZWJLaXRNdXRhdGlvbk9i
c2VydmVyOjpNdXRhdGlvblR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUp
OwotICAgIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qIHJlZ2lzdGVyTXV0YXRpb25PYnNl
cnZlcihQYXNzUmVmUHRyPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI+KTsKKyAgICB2b2lkIGdldFJl
Z2lzdGVyZWRNdXRhdGlvbk9ic2VydmVyc09mVHlwZShIYXNoTWFwPE11dGF0aW9uT2JzZXJ2ZXIq
LCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4mLCBNdXRhdGlvbk9ic2VydmVyOjpNdXRh
dGlvblR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpOworICAgIE11dGF0
aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qIHJlZ2lzdGVyTXV0YXRpb25PYnNlcnZlcihQYXNzUmVm
UHRyPE11dGF0aW9uT2JzZXJ2ZXI+KTsKICAgICB2b2lkIHVucmVnaXN0ZXJNdXRhdGlvbk9ic2Vy
dmVyKE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qKTsKICAgICB2b2lkIHJlZ2lzdGVyVHJh
bnNpZW50TXV0YXRpb25PYnNlcnZlcihNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKik7CiAg
ICAgdm9pZCB1bnJlZ2lzdGVyVHJhbnNpZW50TXV0YXRpb25PYnNlcnZlcihNdXRhdGlvbk9ic2Vy
dmVyUmVnaXN0cmF0aW9uKik7CkBAIC03ODYsNyArNzg2LDcgQEAgcHJpdmF0ZToKICNpZiBFTkFC
TEUoTVVUQVRJT05fT0JTRVJWRVJTKQogICAgIFZlY3RvcjxPd25QdHI8TXV0YXRpb25PYnNlcnZl
clJlZ2lzdHJhdGlvbj4gPiogbXV0YXRpb25PYnNlcnZlclJlZ2lzdHJ5KCk7CiAgICAgSGFzaFNl
dDxNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKj4qIHRyYW5zaWVudE11dGF0aW9uT2JzZXJ2
ZXJSZWdpc3RyeSgpOwotICAgIHZvaWQgY29sbGVjdE1hdGNoaW5nT2JzZXJ2ZXJzRm9yTXV0YXRp
b24oSGFzaE1hcDxXZWJLaXRNdXRhdGlvbk9ic2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVy
eU9wdGlvbnM+JiwgTm9kZSogZnJvbU5vZGUsIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0
aW9uVHlwZSwgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSk7CisgICAgdm9pZCBj
b2xsZWN0TWF0Y2hpbmdPYnNlcnZlcnNGb3JNdXRhdGlvbihIYXNoTWFwPE11dGF0aW9uT2JzZXJ2
ZXIqLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4mLCBOb2RlKiBmcm9tTm9kZSwgTXV0
YXRpb25PYnNlcnZlcjo6TXV0YXRpb25UeXBlLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1
dGVOYW1lKTsKICNlbmRpZgogCiAgICAgbXV0YWJsZSB1aW50MzJfdCBtX25vZGVGbGFnczsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlUmFyZURhdGEuaAppbmRleCA0NzQwZDIwN2ViMmM0MGQxYmM0NDgyZjFkMTNm
ZThlOGRhODVlNTIzLi5iMGE3MGZmYmNkYzJkODBlNmI5YWVkOTYxN2YyYmI2OTZmZjgyYTUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCkBAIC0yNiwxMSArMjYsMTEgQEAKICNpbmNsdWRl
ICJDbGFzc05vZGVMaXN0LmgiCiAjaW5jbHVkZSAiRE9NU2V0dGFibGVUb2tlbkxpc3QuaCIKICNp
bmNsdWRlICJEeW5hbWljTm9kZUxpc3QuaCIKKyNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyLmgi
CiAjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5oIgogI2luY2x1ZGUgIk5h
bWVOb2RlTGlzdC5oIgogI2luY2x1ZGUgIlF1YWxpZmllZE5hbWUuaCIKICNpbmNsdWRlICJUYWdO
b2RlTGlzdC5oIgotI2luY2x1ZGUgIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRl
IDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYv
UGFzc093blB0ci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE11dGF0
aW9uT2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE11dGF0aW9uT2JzZXJ2
ZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MDI1YjZlMmE2YmUyY2UxMDQ1
YTRmMjA2ODExM2Q1OGU1M2Y3YWY4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmNw
cAorKysgL2Rldi9udWxsCkBAIC0xLDE5NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
LSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
LSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0j
aWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKLQotI2luY2x1ZGUgIldlYktpdE11dGF0aW9u
T2JzZXJ2ZXIuaCIKLQotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiRXhjZXB0aW9u
Q29kZS5oIgotI2luY2x1ZGUgIk11dGF0aW9uQ2FsbGJhY2suaCIKLSNpbmNsdWRlICJNdXRhdGlv
bk9ic2VydmVyUmVnaXN0cmF0aW9uLmgiCi0jaW5jbHVkZSAiTXV0YXRpb25SZWNvcmQuaCIKLSNp
bmNsdWRlICJOb2RlLmgiCi0jaW5jbHVkZSA8YWxnb3JpdGhtPgotI2luY2x1ZGUgPHd0Zi9IYXNo
U2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotc3RhdGljIHVuc2lnbmVkIHNfb2JzZXJ2ZXJQ
cmlvcml0eSA9IDA7Ci0KLXN0cnVjdCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpPYnNlcnZlckxl
c3NUaGFuIHsKLSAgICBib29sIG9wZXJhdG9yKCkoY29uc3QgUmVmUHRyPFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXI+JiBsaHMsIGNvbnN0IFJlZlB0cjxXZWJLaXRNdXRhdGlvbk9ic2VydmVyPiYgcmhz
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGxocy0+bV9wcmlvcml0eSA8IHJocy0+bV9wcmlvcml0
eTsKLSAgICB9Ci19OwotCi1QYXNzUmVmUHRyPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI+IFdlYktp
dE11dGF0aW9uT2JzZXJ2ZXI6OmNyZWF0ZShQYXNzUmVmUHRyPE11dGF0aW9uQ2FsbGJhY2s+IGNh
bGxiYWNrKQotewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGNhbGxiYWNrKSk7Ci19Ci0KLVdlYktpdE11
dGF0aW9uT2JzZXJ2ZXI6OldlYktpdE11dGF0aW9uT2JzZXJ2ZXIoUGFzc1JlZlB0cjxNdXRhdGlv
bkNhbGxiYWNrPiBjYWxsYmFjaykKLSAgICA6IG1fY2FsbGJhY2soY2FsbGJhY2spCi0gICAgLCBt
X3ByaW9yaXR5KHNfb2JzZXJ2ZXJQcmlvcml0eSsrKQotewotfQotCi1XZWJLaXRNdXRhdGlvbk9i
c2VydmVyOjp+V2ViS2l0TXV0YXRpb25PYnNlcnZlcigpCi17Ci0gICAgQVNTRVJUKG1fcmVnaXN0
cmF0aW9ucy5pc0VtcHR5KCkpOwotfQotCi1ib29sIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OnZh
bGlkYXRlT3B0aW9ucyhNdXRhdGlvbk9ic2VydmVyT3B0aW9ucyBvcHRpb25zKQotewotICAgIHJl
dHVybiAob3B0aW9ucyAmIChBdHRyaWJ1dGVzIHwgQ2hhcmFjdGVyRGF0YSB8IENoaWxkTGlzdCkp
Ci0gICAgICAgICYmICgob3B0aW9ucyAmIEF0dHJpYnV0ZXMpIHx8ICEob3B0aW9ucyAmIEF0dHJp
YnV0ZU9sZFZhbHVlKSkKLSAgICAgICAgJiYgKChvcHRpb25zICYgQXR0cmlidXRlcykgfHwgIShv
cHRpb25zICYgQXR0cmlidXRlRmlsdGVyKSkKLSAgICAgICAgJiYgKChvcHRpb25zICYgQ2hhcmFj
dGVyRGF0YSkgfHwgIShvcHRpb25zICYgQ2hhcmFjdGVyRGF0YU9sZFZhbHVlKSk7Ci19Ci0KLXZv
aWQgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6b2JzZXJ2ZShOb2RlKiBub2RlLCBNdXRhdGlvbk9i
c2VydmVyT3B0aW9ucyBvcHRpb25zLCBjb25zdCBIYXNoU2V0PEF0b21pY1N0cmluZz4mIGF0dHJp
YnV0ZUZpbHRlciwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKCFub2RlKSB7Ci0gICAg
ICAgIGVjID0gTk9UX0ZPVU5EX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlm
ICghdmFsaWRhdGVPcHRpb25zKG9wdGlvbnMpKSB7Ci0gICAgICAgIC8vIEZJWE1FOiBSZXZpc2l0
IHRoaXMgb25jZSB0aGUgc3BlYyBzcGVjaWZpZXMgdGhlIGV4Y2VwdGlvbiB0eXBlOyBTWU5UQVhf
RVJSIG1heSBub3QgYmUgYXBwcm9wcmlhdGUuCi0gICAgICAgIGVjID0gU1lOVEFYX0VSUjsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24q
IHJlZ2lzdHJhdGlvbiA9IG5vZGUtPnJlZ2lzdGVyTXV0YXRpb25PYnNlcnZlcih0aGlzKTsKLSAg
ICByZWdpc3RyYXRpb24tPnJlc2V0T2JzZXJ2YXRpb24ob3B0aW9ucywgYXR0cmlidXRlRmlsdGVy
KTsKLQotICAgIG5vZGUtPmRvY3VtZW50KCktPmFkZE11dGF0aW9uT2JzZXJ2ZXJUeXBlcyhyZWdp
c3RyYXRpb24tPm11dGF0aW9uVHlwZXMoKSk7Ci19Ci0KLVZlY3RvcjxSZWZQdHI8TXV0YXRpb25S
ZWNvcmQ+ID4gV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6dGFrZVJlY29yZHMoKQotewotICAgIFZl
Y3RvcjxSZWZQdHI8TXV0YXRpb25SZWNvcmQ+ID4gcmVjb3JkczsKLSAgICByZWNvcmRzLnN3YXAo
bV9yZWNvcmRzKTsKLSAgICByZXR1cm4gcmVjb3JkczsKLX0KLQotdm9pZCBXZWJLaXRNdXRhdGlv
bk9ic2VydmVyOjpkaXNjb25uZWN0KCkKLXsKLSAgICBtX3JlY29yZHMuY2xlYXIoKTsKLSAgICBI
YXNoU2V0PE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qPiByZWdpc3RyYXRpb25zKG1fcmVn
aXN0cmF0aW9ucyk7Ci0gICAgZm9yIChIYXNoU2V0PE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRp
b24qPjo6aXRlcmF0b3IgaXRlciA9IHJlZ2lzdHJhdGlvbnMuYmVnaW4oKTsgaXRlciAhPSByZWdp
c3RyYXRpb25zLmVuZCgpOyArK2l0ZXIpCi0gICAgICAgICgqaXRlciktPnVucmVnaXN0ZXIoKTsK
LX0KLQotdm9pZCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpvYnNlcnZhdGlvblN0YXJ0ZWQoTXV0
YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbiogcmVnaXN0cmF0aW9uKQotewotICAgIEFTU0VSVCgh
bV9yZWdpc3RyYXRpb25zLmNvbnRhaW5zKHJlZ2lzdHJhdGlvbikpOwotICAgIG1fcmVnaXN0cmF0
aW9ucy5hZGQocmVnaXN0cmF0aW9uKTsKLX0KLQotdm9pZCBXZWJLaXRNdXRhdGlvbk9ic2VydmVy
OjpvYnNlcnZhdGlvbkVuZGVkKE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qIHJlZ2lzdHJh
dGlvbikKLXsKLSAgICBBU1NFUlQobV9yZWdpc3RyYXRpb25zLmNvbnRhaW5zKHJlZ2lzdHJhdGlv
bikpOwotICAgIG1fcmVnaXN0cmF0aW9ucy5yZW1vdmUocmVnaXN0cmF0aW9uKTsKLX0KLQotdHlw
ZWRlZiBIYXNoU2V0PFJlZlB0cjxXZWJLaXRNdXRhdGlvbk9ic2VydmVyPiA+IE11dGF0aW9uT2Jz
ZXJ2ZXJTZXQ7Ci0KLXN0YXRpYyBNdXRhdGlvbk9ic2VydmVyU2V0JiBhY3RpdmVNdXRhdGlvbk9i
c2VydmVycygpCi17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChNdXRhdGlvbk9ic2VydmVyU2V0
LCBhY3RpdmVPYnNlcnZlcnMsICgpKTsKLSAgICByZXR1cm4gYWN0aXZlT2JzZXJ2ZXJzOwotfQot
Ci12b2lkIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OmVucXVldWVNdXRhdGlvblJlY29yZChQYXNz
UmVmUHRyPE11dGF0aW9uUmVjb3JkPiBtdXRhdGlvbikKLXsKLSAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwotICAgIG1fcmVjb3Jkcy5hcHBlbmQobXV0YXRpb24pOwotICAgIGFjdGl2ZU11dGF0
aW9uT2JzZXJ2ZXJzKCkuYWRkKHRoaXMpOwotfQotCi12b2lkIFdlYktpdE11dGF0aW9uT2JzZXJ2
ZXI6OnNldEhhc1RyYW5zaWVudFJlZ2lzdHJhdGlvbigpCi17Ci0gICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKLSAgICBhY3RpdmVNdXRhdGlvbk9ic2VydmVycygpLmFkZCh0aGlzKTsKLX0KLQot
dm9pZCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpkZWxpdmVyKCkKLXsKLSAgICAvLyBDYWxsaW5n
IGNsZWFyVHJhbnNpZW50UmVnaXN0cmF0aW9ucygpIGNhbiBtb2RpZnkgbV9yZWdpc3RyYXRpb25z
LCBzbyBpdCdzIG5lY2Vzc2FyeQotICAgIC8vIHRvIG1ha2UgYSBjb3B5IG9mIHRoZSB0cmFuc2ll
bnQgcmVnaXN0cmF0aW9ucyBiZWZvcmUgb3BlcmF0aW5nIG9uIHRoZW0uCi0gICAgVmVjdG9yPE11
dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qLCAxPiB0cmFuc2llbnRSZWdpc3RyYXRpb25zOwot
ICAgIGZvciAoSGFzaFNldDxNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKj46Oml0ZXJhdG9y
IGl0ZXIgPSBtX3JlZ2lzdHJhdGlvbnMuYmVnaW4oKTsgaXRlciAhPSBtX3JlZ2lzdHJhdGlvbnMu
ZW5kKCk7ICsraXRlcikgewotICAgICAgICBpZiAoKCppdGVyKS0+aGFzVHJhbnNpZW50UmVnaXN0
cmF0aW9ucygpKQotICAgICAgICAgICAgdHJhbnNpZW50UmVnaXN0cmF0aW9ucy5hcHBlbmQoKml0
ZXIpOwotICAgIH0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRyYW5zaWVudFJlZ2lzdHJh
dGlvbnMuc2l6ZSgpOyArK2kpCi0gICAgICAgIHRyYW5zaWVudFJlZ2lzdHJhdGlvbnNbaV0tPmNs
ZWFyVHJhbnNpZW50UmVnaXN0cmF0aW9ucygpOwotCi0gICAgaWYgKG1fcmVjb3Jkcy5pc0VtcHR5
KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFZlY3RvcjxSZWZQdHI8TXV0YXRpb25SZWNvcmQ+
ID4gcmVjb3JkczsKLSAgICByZWNvcmRzLnN3YXAobV9yZWNvcmRzKTsKLQotICAgIG1fY2FsbGJh
Y2stPmhhbmRsZUV2ZW50KCZyZWNvcmRzLCB0aGlzKTsKLX0KLQotdm9pZCBXZWJLaXRNdXRhdGlv
bk9ic2VydmVyOjpkZWxpdmVyQWxsTXV0YXRpb25zKCkKLXsKLSAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwotICAgIHN0YXRpYyBib29sIGRlbGl2ZXJ5SW5Qcm9ncmVzcyA9IGZhbHNlOwotICAg
IGlmIChkZWxpdmVyeUluUHJvZ3Jlc3MpCi0gICAgICAgIHJldHVybjsKLSAgICBkZWxpdmVyeUlu
UHJvZ3Jlc3MgPSB0cnVlOwotCi0gICAgd2hpbGUgKCFhY3RpdmVNdXRhdGlvbk9ic2VydmVycygp
LmlzRW1wdHkoKSkgewotICAgICAgICBWZWN0b3I8UmVmUHRyPFdlYktpdE11dGF0aW9uT2JzZXJ2
ZXI+ID4gb2JzZXJ2ZXJzOwotICAgICAgICBjb3B5VG9WZWN0b3IoYWN0aXZlTXV0YXRpb25PYnNl
cnZlcnMoKSwgb2JzZXJ2ZXJzKTsKLSAgICAgICAgYWN0aXZlTXV0YXRpb25PYnNlcnZlcnMoKS5j
bGVhcigpOwotICAgICAgICBzdGQ6OnNvcnQob2JzZXJ2ZXJzLmJlZ2luKCksIG9ic2VydmVycy5l
bmQoKSwgT2JzZXJ2ZXJMZXNzVGhhbigpKTsKLSAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBvYnNlcnZlcnMuc2l6ZSgpOyArK2kpCi0gICAgICAgICAgICBvYnNlcnZlcnNbaV0tPmRlbGl2
ZXIoKTsKLSAgICB9Ci0KLSAgICBkZWxpdmVyeUluUHJvZ3Jlc3MgPSBmYWxzZTsKLX0KLQotfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVS
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzOGFmMjM3ZTE5OGJlOGE3MjlhYWMyZjAwMGRiOGFmZTU4
ZjI5NzM5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgKKysrIC9kZXYvbnVsbApA
QCAtMSwxMDcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQot
ICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQot
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
LSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpZm5kZWYgV2ViS2l0TXV0YXRpb25PYnNlcnZlcl9oCi0jZGVmaW5l
IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXJfaAotCi0jaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVS
UykKLQotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4K
LSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmlu
Zy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZ0hhc2guaD4KLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCi1jbGFzcyBNdXRhdGlvbkNhbGxiYWNrOwotY2xhc3MgTXV0YXRpb25PYnNl
cnZlclJlZ2lzdHJhdGlvbjsKLWNsYXNzIE11dGF0aW9uUmVjb3JkOwotY2xhc3MgTm9kZTsKLQot
dHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKLQotdHlwZWRlZiB1bnNpZ25lZCBjaGFyIE11dGF0
aW9uT2JzZXJ2ZXJPcHRpb25zOwotdHlwZWRlZiB1bnNpZ25lZCBjaGFyIE11dGF0aW9uUmVjb3Jk
RGVsaXZlcnlPcHRpb25zOwotCi1jbGFzcyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyIDogcHVibGlj
IFJlZkNvdW50ZWQ8V2ViS2l0TXV0YXRpb25PYnNlcnZlcj4gewotcHVibGljOgotICAgIGVudW0g
TXV0YXRpb25UeXBlIHsKLSAgICAgICAgQ2hpbGRMaXN0ID0gMSA8PCAwLAotICAgICAgICBBdHRy
aWJ1dGVzID0gMSA8PCAxLAotICAgICAgICBDaGFyYWN0ZXJEYXRhID0gMSA8PCAyLAotCi0gICAg
ICAgIEFsbE11dGF0aW9uVHlwZXMgPSBDaGlsZExpc3QgfCBBdHRyaWJ1dGVzIHwgQ2hhcmFjdGVy
RGF0YQotICAgIH07Ci0KLSAgICBlbnVtIE9ic2VydmF0aW9uRmxhZ3MgIHsKLSAgICAgICAgU3Vi
dHJlZSA9IDEgPDwgMywKLSAgICAgICAgQXR0cmlidXRlRmlsdGVyID0gMSA8PCA0Ci0gICAgfTsK
LQotICAgIGVudW0gRGVsaXZlcnlGbGFncyB7Ci0gICAgICAgIEF0dHJpYnV0ZU9sZFZhbHVlID0g
MSA8PCA1LAotICAgICAgICBDaGFyYWN0ZXJEYXRhT2xkVmFsdWUgPSAxIDw8IDYsCi0gICAgfTsK
LQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI+IGNyZWF0ZShQ
YXNzUmVmUHRyPE11dGF0aW9uQ2FsbGJhY2s+KTsKLSAgICBzdGF0aWMgdm9pZCBkZWxpdmVyQWxs
TXV0YXRpb25zKCk7Ci0KLSAgICB+V2ViS2l0TXV0YXRpb25PYnNlcnZlcigpOwotCi0gICAgdm9p
ZCBvYnNlcnZlKE5vZGUqLCBNdXRhdGlvbk9ic2VydmVyT3B0aW9ucywgY29uc3QgSGFzaFNldDxB
dG9taWNTdHJpbmc+JiBhdHRyaWJ1dGVGaWx0ZXIsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBWZWN0
b3I8UmVmUHRyPE11dGF0aW9uUmVjb3JkPiA+IHRha2VSZWNvcmRzKCk7Ci0gICAgdm9pZCBkaXNj
b25uZWN0KCk7Ci0gICAgdm9pZCBvYnNlcnZhdGlvblN0YXJ0ZWQoTXV0YXRpb25PYnNlcnZlclJl
Z2lzdHJhdGlvbiopOwotICAgIHZvaWQgb2JzZXJ2YXRpb25FbmRlZChNdXRhdGlvbk9ic2VydmVy
UmVnaXN0cmF0aW9uKik7Ci0gICAgdm9pZCBlbnF1ZXVlTXV0YXRpb25SZWNvcmQoUGFzc1JlZlB0
cjxNdXRhdGlvblJlY29yZD4pOwotICAgIHZvaWQgc2V0SGFzVHJhbnNpZW50UmVnaXN0cmF0aW9u
KCk7Ci0KLXByaXZhdGU6Ci0gICAgc3RydWN0IE9ic2VydmVyTGVzc1RoYW47Ci0KLSAgICBXZWJL
aXRNdXRhdGlvbk9ic2VydmVyKFBhc3NSZWZQdHI8TXV0YXRpb25DYWxsYmFjaz4pOwotICAgIHZv
aWQgZGVsaXZlcigpOwotCi0gICAgc3RhdGljIGJvb2wgdmFsaWRhdGVPcHRpb25zKE11dGF0aW9u
T2JzZXJ2ZXJPcHRpb25zKTsKLQotICAgIFJlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPiBtX2NhbGxi
YWNrOwotICAgIFZlY3RvcjxSZWZQdHI8TXV0YXRpb25SZWNvcmQ+ID4gbV9yZWNvcmRzOwotICAg
IEhhc2hTZXQ8TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbio+IG1fcmVnaXN0cmF0aW9uczsK
LSAgICB1bnNpZ25lZCBtX3ByaW9yaXR5OwotfTsKLQotfQotCi0jZW5kaWYgLy8gRU5BQkxFKE1V
VEFUSU9OX09CU0VSVkVSUykKLQotI2VuZGlmIC8vIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXJfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaWRs
IGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaWRsCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNTM1ZjQ1YmZlMWIwMjE1OGQ3NDgzMDgxNDRjODlhZTcz
OTc3N2Q1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmlkbAorKysgL2Rldi9udWxs
CkBAIC0xLDQyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
LSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
LSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
Ci0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi1tb2R1bGUgY29yZSB7Ci0gICAgaW50ZXJmYWNlIFsKLSAgICAgICAg
Q29uZGl0aW9uYWw9TVVUQVRJT05fT0JTRVJWRVJTLAotICAgICAgICBDdXN0b21Db25zdHJ1Y3Rv
ciwKLSAgICAgICAgQ29uc3RydWN0b3JQYXJhbWV0ZXJzPTEKLSAgICBdIFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXIgewotICAgICAgICBbQ3VzdG9tXSB2b2lkIG9ic2VydmUoaW4gTm9kZSB0YXJnZXQs
IGluIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIG9wdGlvbnMpCi0gICAgICAgICAgICByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKLSAgICAgICAgc2VxdWVuY2U8TXV0YXRpb25SZWNvcmQ+IHRha2VSZWNv
cmRzKCk7Ci0gICAgICAgIHZvaWQgZGlzY29ubmVjdCgpOwotICAgIH07Ci19CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5pZGwKaW5kZXggYjIwNjU0M2IxNTU4NjcyNGQ5ZmI4MWUwZWExOTM2MGI3MDM5
NDYwNi4uMzZiYTcwMzA2ZTBjOGMzMWRjNWM2YjY1MjljYjY4ZWExMGZhYjk4NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmlkbApAQCAtNzc4LDcgKzc3OCw4IEBAIG1vZHVsZSB3aW5kb3cgewog
CiAgICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9QkxPQl0gRE9NVVJMQ29uc3RydWN0b3Ig
d2Via2l0VVJMOwogCi0gICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9TVVUQVRJT05fT0JT
RVJWRVJTXSBXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ29uc3RydWN0b3IgV2ViS2l0TXV0YXRpb25P
YnNlcnZlcjsKKyAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1NVVRBVElPTl9PQlNFUlZF
UlNdIE11dGF0aW9uT2JzZXJ2ZXJDb25zdHJ1Y3RvciBNdXRhdGlvbk9ic2VydmVyOworICAgICAg
ICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU1VVEFUSU9OX09CU0VSVkVSU10gTXV0YXRpb25PYnNl
cnZlckNvbnN0cnVjdG9yIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI7CiAKICNlbmRpZiAvLyBkZWZp
bmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYktpdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJLaXQu
Y3BwCmluZGV4IDYxMDY1OTdhZThmYjE1ZWRlNjA2YjYxYjc4NDI0NDk4Yzk5ZDc0MWEuLjFiYjNi
NDRhOTNkZmZjNWZjODI2YTFhM2I2MGZiMGM2NmFiNzk1M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYktpdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViS2l0LmNwcApAQCAtMzIsMTMgKzMyLDEzIEBACiAjaW5jbHVkZSAiV2ViS2l0Lmgi
CiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlci5oIgog
I2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAj
aW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJUZXh0RW5jb2RpbmcuaCIKICNpbmNsdWRl
ICJWOEJpbmRpbmcuaCIKICNpbmNsdWRlICJWOFJlY3Vyc2lvblNjb3BlLmgiCi0jaW5jbHVkZSAi
V2ViS2l0TXV0YXRpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgIldlYk1lZGlhUGxheWVyQ2xpZW50
SW1wbC5oIgogI2luY2x1ZGUgIldlYlNvY2tldC5oIgogI2luY2x1ZGUgIldvcmtlckNvbnRleHRF
eGVjdXRpb25Qcm94eS5oIgpAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHdpbGxQcm9jZXNzVGFzaygpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRQcm9jZXNzVGFz
aygpCiAgICAgewotICAgICAgICBXZWJDb3JlOjpXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpkZWxp
dmVyQWxsTXV0YXRpb25zKCk7CisgICAgICAgIFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6OmRl
bGl2ZXJBbGxNdXRhdGlvbnMoKTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwIGIvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNw
cAppbmRleCBmZTFmNzBkYWUxYjg5NzRjODZjMzdkNzg2ZDJhMmUyYjk2ZjQxZGEwLi45YTI4MWVj
ZDQ5MTZjM2EyNTkwNmEwMDJmNGFhZDkxNDQwZmNjMGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVm
bC5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlIDxKU0VsZW1lbnQuaD4KICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9PcGFxdWVKU1N0cmluZy5oPgogI2luY2x1ZGUgPE1lbW9yeUNhY2hl
Lmg+CisjaW5jbHVkZSA8TXV0YXRpb25PYnNlcnZlci5oPgogI2luY2x1ZGUgPFBhZ2VHcm91cC5o
PgogI2luY2x1ZGUgPFByaW50Q29udGV4dC5oPgogI2luY2x1ZGUgPFJlbmRlclRyZWVBc1RleHQu
aD4KQEAgLTU1LDcgKzU2LDYgQEAKICNpbmNsdWRlIDxTY3JpcHRWYWx1ZS5oPgogI2luY2x1ZGUg
PFNldHRpbmdzLmg+CiAjaW5jbHVkZSA8VGV4dEl0ZXJhdG9yLmg+Ci0jaW5jbHVkZSA8V2ViS2l0
TXV0YXRpb25PYnNlcnZlci5oPgogI2luY2x1ZGUgPGJpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5o
PgogI2luY2x1ZGUgPGhpc3RvcnkvSGlzdG9yeUl0ZW0uaD4KICNpbmNsdWRlIDx3b3JrZXJzL1dv
cmtlclRocmVhZC5oPgpAQCAtNTk3LDcgKzU5Nyw3IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBw
b3J0RWZsOjpkdW1wQ29uZmlndXJhdGlvbkZvclZpZXdwb3J0KEV2YXNfT2JqZWN0KiBld2tWaWV3
CiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6ZGVsaXZlckFsbE11dGF0aW9uc0lmTmVj
ZXNzYXJ5KCkKIHsKICNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQotICAgIFdlYkNvcmU6
OldlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OmRlbGl2ZXJBbGxNdXRhdGlvbnMoKTsKKyAgICBXZWJD
b3JlOjpNdXRhdGlvbk9ic2VydmVyOjpkZWxpdmVyQWxsTXV0YXRpb25zKCk7CiAjZW5kaWYKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKaW5kZXggZjY5ZWI4N2M1NjYzZTRjMTM3ZjhiMjJm
MDdmYjA2MGFkNmU0MjM1Mi4uNWJjMDQ5ZDFmOWNlZjBkZWNkYmYyYTQwNmIyYjA3M2NiMjlhMjQw
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVk
ZSAiSlNMb2NrLmgiCiAjaW5jbHVkZSAiSlNOb2RlTGlzdC5oIgogI2luY2x1ZGUgIkpTVmFsdWUu
aCIKKyNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIK
ICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgpAQCAt
NjQsNyArNjUsNiBAQAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJh
dG9yLmgiCiAjaW5jbHVkZSAiV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuaCIKLSNpbmNsdWRl
ICJXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAj
aW5jbHVkZSAid2Via2l0Z2xvYmFsc3ByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJmcmFt
ZS5oIgpAQCAtODYzLDcgKzg2Myw3IEBAIEpTVmFsdWVSZWYgRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrOjpjb21wdXRlZFN0eWxlSW5jbHVkaW5nVmlzaXRlZEluZm8oSlNDb250ZXh0CiB2b2lkIER1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6ZGVsaXZlckFsbE11dGF0aW9uc0lmTmVjZXNzYXJ5KCkK
IHsKICNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQotICAgIFdlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXI6OmRlbGl2ZXJBbGxNdXRhdGlvbnMoKTsKKyAgICBNdXRhdGlvbk9ic2VydmVyOjpkZWxp
dmVyQWxsTXV0YXRpb25zKCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDJmNmFhZjliNDFkNTZmODNmYTk1ZmQyZTgxMmU1
NzgxMzMxMzQ3NGQuLmVlMDFkYWYxYWRlYmM0OWIzMGM2YzQyMDdiNWI4YTQ4YzQzMzNiNzMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMiBAQAorMjAxMi0wNi0xNSAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZW1vdmUgdmVuZG9yIHByZWZpeCBmcm9tIERPTSBNdXRhdGlvbk9ic2VydmVycwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkyMzEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL2d0ay9FdmVudFNlbmRlci5jcHA6CisKIDIwMTItMDYtMTUgIENzYWJhIE9zenRyb2dv
bsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIHN0eWxlIGZpeCBh
ZnRlciByMTIwMzUxLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0V2ZW50
U2VuZGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9FdmVudFNlbmRlci5jcHAKaW5k
ZXggMTAyYmI2NjBmMjA0Yjk5MGI4ZGRmNWEzMTQyNThjYjk1OWIxMjJmYi4uNGNjMmFiMzRiMmY1
MDZmY2I2NDkzMGJjOWRjOTJmYzZlMWVjNTgzNiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvZ3RrL0V2ZW50U2VuZGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsv
RXZlbnRTZW5kZXIuY3BwCkBAIC0zNSw3ICszNSw2IEBACiAKICNpbmNsdWRlICJEdW1wUmVuZGVy
VHJlZS5oIgogI2luY2x1ZGUgIldlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
ay5oIgotI2luY2x1ZGUgIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlIDxHT3du
UHRyR3RrLmg+CiAjaW5jbHVkZSA8R1JlZlB0ckd0ay5oPgogI2luY2x1ZGUgPEd0a1ZlcnNpb25p
bmcuaD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCBjYWM0YzFjZmExYzJlMzYxZWJmYTc1Mzc5M2Y1OTE0ODQ3MDg1NTQzLi4y
OTFhOWVmZGJjYjRhZmE4NjQ0NWEzZDVmZjk5OGVhYTk5NDVmZTRmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NDMgQEAKKzIwMTItMDYtMTUgIEFkYW0gS2xlaW4gIDxhZGFta0BjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmVtb3ZlIHZlbmRvciBwcmVmaXggZnJvbSBET00gTXV0YXRpb25PYnNlcnZlcnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5MjMxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWxsIHRlc3RzIGhh
dmUgYmVlbiB1cGRhdGVkIHRvIHJlZmVyZW5jZSB0aGUgdW5wcmVmaXhlZCBuYW1lLgorCisgICAg
ICAgICogZmFzdC9tdXRhdGlvbi9jYWxsYmFjay1hcmd1bWVudHMuaHRtbDoKKyAgICAgICAgKiBm
YXN0L211dGF0aW9uL2NsZWFyLXRyYW5zaWVudC13aXRob3V0LWRlbGl2ZXJ5Lmh0bWw6CisgICAg
ICAgICogZmFzdC9tdXRhdGlvbi9jcmVhdGUtZHVyaW5nLWRlbGl2ZXJ5Lmh0bWw6CisgICAgICAg
ICogZmFzdC9tdXRhdGlvbi9jcm9zcy1kb2N1bWVudC5odG1sOgorICAgICAgICAqIGZhc3QvbXV0
YXRpb24vZGF0YWJhc2UtY2FsbGJhY2stZGVsaXZlcnkuaHRtbDoKKyAgICAgICAgKiBmYXN0L211
dGF0aW9uL2RlbGl2ZXJ5LW9yZGVyLmh0bWw6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi9kaXNj
b25uZWN0LWNhbmNlbC1wZW5kaW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L211dGF0
aW9uL2Rpc2Nvbm5lY3QtY2FuY2VsLXBlbmRpbmcuaHRtbDoKKyAgICAgICAgKiBmYXN0L211dGF0
aW9uL2RvY3VtZW50LWZyYWdtZW50LWluc2VydGlvbi5odG1sOgorICAgICAgICAqIGZhc3QvbXV0
YXRpb24vZW5kLW9mLXRhc2stZGVsaXZlcnkuaHRtbDoKKyAgICAgICAgKiBmYXN0L211dGF0aW9u
L2ZpbGVzeXN0ZW0tY2FsbGJhY2stZGVsaXZlcnkuaHRtbDoKKyAgICAgICAgKiBmYXN0L211dGF0
aW9uL2lubGluZS1ldmVudC1saXN0ZW5lci5odG1sOgorICAgICAgICAqIGZhc3QvbXV0YXRpb24v
bXV0YXRlLWR1cmluZy1kZWxpdmVyeS5odG1sOgorICAgICAgICAqIGZhc3QvbXV0YXRpb24vbXV0
YXRpb24tY2FsbGJhY2stbm9uLWVsZW1lbnQtY3Jhc2guaHRtbDoKKyAgICAgICAgKiBmYXN0L211
dGF0aW9uL211dGF0aW9uLW9ic2VydmVyLWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L211dGF0aW9uL211dGF0aW9uLW9ic2VydmVyLWNvbnN0cnVjdG9yLmh0bWw6Cisg
ICAgICAgICogZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGZhc3QvbXV0YXRpb24vb2JzZXJ2ZS1hdHRyaWJ1dGVzLmh0bWw6CisgICAgICAg
ICogZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWNoYXJhY3RlcmRhdGEtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvbXV0YXRpb24vb2JzZXJ2ZS1jaGFyYWN0ZXJkYXRhLmh0bWw6CisgICAgICAg
ICogZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWNoaWxkTGlzdC1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWNoaWxkTGlzdC5odG1sOgorICAgICAgICAqIGZhc3Qv
bXV0YXRpb24vb2JzZXJ2ZS1leGNlcHRpb25zLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0
L211dGF0aW9uL29ic2VydmUtZXhjZXB0aW9ucy5odG1sOgorICAgICAgICAqIGZhc3QvbXV0YXRp
b24vb2JzZXJ2ZS1zdWJ0cmVlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L211dGF0aW9u
L29ic2VydmUtc3VidHJlZS5odG1sOgorICAgICAgICAqIGZhc3QvbXV0YXRpb24vc2hhZG93LWRv
bS5odG1sOgorICAgICAgICAqIGZhc3QvbXV0YXRpb24vdGFrZVJlY29yZHMtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGZhc3QvbXV0YXRpb24vdGFrZVJlY29yZHMuaHRtbDoKKyAgICAgICAgKiBm
YXN0L211dGF0aW9uL3RyYW5zaWVudC1nYy1jcmFzaC5odG1sOgorCiAyMDEyLTA2LTE1ICBBYmhp
c2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQ2xlYW51cCBlbXB0
eSBhbm9ueW1vdXMgYmxvY2sgY29udGludWF0aW9uLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9tdXRhdGlvbi9jYWxsYmFjay1hcmd1bWVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
bXV0YXRpb24vY2FsbGJhY2stYXJndW1lbnRzLmh0bWwKaW5kZXggZjc4ZGRkOTJkMzVhNDk4NDgy
NjBkNjdjNmUyMWVlZGFkMDcxZGQ2My4uZjg3NjcyZmVjZDdhMzUzZDQwNGQ5OGJkMzMzODkzZjU5
MzQwNjVjYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9jYWxsYmFjay1h
cmd1bWVudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2NhbGxiYWNrLWFy
Z3VtZW50cy5odG1sCkBAIC0xMiw3ICsxMiw3IEBAIGZ1bmN0aW9uIG11dGF0aW9uQ2FsbGJhY2so
bXV0YXRpb25zLCBvYnNlcnZlcikgewogICAgIHNob3VsZEJlKCdhcmd1bWVudDInLCAnbXV0YXRp
b25PYnNlcnZlcicpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQotdmFyIG11dGF0aW9uT2JzZXJ2
ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihtdXRhdGlvbkNhbGxiYWNrKTsKK3ZhciBt
dXRhdGlvbk9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIobXV0YXRpb25DYWxsYmFjayk7
CiB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiBtdXRhdGlvbk9ic2Vy
dmVyLm9ic2VydmUoZGl2LCB7YXR0cmlidXRlczogdHJ1ZX0pOwogZGl2LnNldEF0dHJpYnV0ZSgn
Zm9vJywgJ2JhcicpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9jbGVh
ci10cmFuc2llbnQtd2l0aG91dC1kZWxpdmVyeS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRh
dGlvbi9jbGVhci10cmFuc2llbnQtd2l0aG91dC1kZWxpdmVyeS5odG1sCmluZGV4IGUxZmVlODE3
MjBlYmNkNzA5ZTgwOTk5ZjRhOWJlMTI3MmNhYTg3ZTIuLjQyYTUzZTM4YmQ1ZjU2ZTNjMzI0MWFk
MzRjY2I2N2FjMTA0OTQzMTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24v
Y2xlYXItdHJhbnNpZW50LXdpdGhvdXQtZGVsaXZlcnkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L211dGF0aW9uL2NsZWFyLXRyYW5zaWVudC13aXRob3V0LWRlbGl2ZXJ5Lmh0bWwKQEAgLTcs
NyArNyw3IEBAIHZhciBtdXRhdGlvbnNEZWxpdmVyZWQgPSBmYWxzZTsKIGZ1bmN0aW9uIGNhbGxi
YWNrKG11dGF0aW9ucykgewogICAgIG11dGF0aW9uc0RlbGl2ZXJlZCA9IHRydWU7CiB9Ci12YXIg
b2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihjYWxsYmFjayk7Cit2YXIgb2Jz
ZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihjYWxsYmFjayk7CiAKIHZhciBkaXYgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKIHZhciBzcGFuID0gZGl2LmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L211dGF0aW9uL2NyZWF0ZS1kdXJpbmctZGVsaXZlcnkuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvbXV0YXRpb24vY3JlYXRlLWR1cmluZy1kZWxpdmVyeS5odG1sCmluZGV4IGNlZWUyNGU3MDgy
Y2Y4MWQ1YTVhNTQ5YzRjZDdiNGQyZGI4ZTIwMjYuLjRmNWQwN2M2YzAxZDlkZjhmZjUzMTQ1Nzcx
ZDJlYzUzNDg4OGMyYWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vY3Jl
YXRlLWR1cmluZy1kZWxpdmVyeS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24v
Y3JlYXRlLWR1cmluZy1kZWxpdmVyeS5odG1sCkBAIC0xNywxNyArMTcsMTcgQEAgdmFyIG9yZGVy
ID0gW107CiB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAKIHZhciBv
YnNlcnZlcjM7Ci12YXIgb2JzZXJ2ZXIxID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVu
Y3Rpb24obXV0YXRpb25zKSB7Cit2YXIgb2JzZXJ2ZXIxID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIo
ZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgb3JkZXIucHVzaCgxKTsKICAgICBpZiAoIW9ic2Vy
dmVyMykgewotICAgICAgICBvYnNlcnZlcjMgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihm
dW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIzID0gbmV3IE11dGF0aW9uT2Jz
ZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICBvcmRlci5wdXNoKDMpOwog
ICAgICAgICB9KTsKICAgICAgICAgb2JzZXJ2ZXIzLm9ic2VydmUoZGl2LCB7YXR0cmlidXRlczog
dHJ1ZX0pOwogICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCdmb28nLCAnYmF6Jyk7CiAgICAgfQog
fSk7Ci12YXIgb2JzZXJ2ZXIyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24o
bXV0YXRpb25zKSB7Cit2YXIgb2JzZXJ2ZXIyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rp
b24obXV0YXRpb25zKSB7CiAgICAgb3JkZXIucHVzaCgyKTsKIH0pOwogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2Nyb3NzLWRvY3VtZW50Lmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L211dGF0aW9uL2Nyb3NzLWRvY3VtZW50Lmh0bWwKaW5kZXggZjRlZTdmMGNmY2Q4NzRi
ZWRiZjg4YTlmYWZhN2FiYTlmMTgwNGZhMS4uYzg4M2RhMzRmNDQ2ZmNkOTJlMTE2NmJhZWQ5YmU1
YjE3MmI3YjhkMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9jcm9zcy1k
b2N1bWVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vY3Jvc3MtZG9jdW1l
bnQuaHRtbApAQCAtMTgsNyArMTgsNyBAQCBmdW5jdGlvbiB0ZXN0QmFzaWMoKSB7CiAKICAgICAg
ICAgbXV0YXRpb25zID0gbnVsbDsKICAgICAgICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIo
ZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2Jz
ZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25z
ID0gbXV0YXRpb25zOwogICAgICAgICB9KTsKIApAQCAtNTIsNyArNTIsNyBAQCBmdW5jdGlvbiB0
ZXN0U3VidHJlZSgpIHsKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKICAgICAgICAgZGl2ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgIHN1YkRpdiA9IGRpdi5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7Ci0gICAgICAgIG9ic2VydmVy
ID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAg
ICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7
CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0YXRpb25zOwogICAgICAgICB9KTsK
IApAQCAtODksNyArODksNyBAQCBmdW5jdGlvbiBydW5OZXh0VGVzdCgpIHsKIAogZGVzY3JpcHRp
b24oJ1Rlc3QgdGhhdCBNdXRhdGlvbk9ic2VydmVycyBtb3ZlIGNvcnJlY3RseSBhY3Jvc3MgZG9j
dW1lbnRzJyk7CiAKLWlmICghd2luZG93LldlYktpdE11dGF0aW9uT2JzZXJ2ZXIpCitpZiAoIXdp
bmRvdy5NdXRhdGlvbk9ic2VydmVyKQogICAgIHRlc3RGYWlsZWQoJ1RoaXMgdGVzdCByZXF1aXJl
cyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKScpOwogZWxzZQogICAgIHJ1bk5leHRUZXN0KCk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2RhdGFiYXNlLWNhbGxiYWNr
LWRlbGl2ZXJ5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2RhdGFiYXNlLWNhbGxi
YWNrLWRlbGl2ZXJ5Lmh0bWwKaW5kZXggYzc5YTNmYWMyN2RkODdjYTk0NTljNjFjMTEyYTZjMjhj
NDY2ZjYyNC4uNDAzOGQwZmUwNjllODNmNjVhMzJiYjkwNWNmZGMzNDhjOTk5ZTZlZCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9kYXRhYmFzZS1jYWxsYmFjay1kZWxpdmVy
eS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vZGF0YWJhc2UtY2FsbGJhY2st
ZGVsaXZlcnkuaHRtbApAQCAtMTIsNyArMTIsNyBAQCBmdW5jdGlvbiB0ZXN0RGF0YWJhc2UoKSB7
CiAgICAgZnVuY3Rpb24gc3RhcnQoKSB7CiAgICAgICAgIG11dGF0aW9ucyA9IG51bGw7CiAgICAg
ICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgICAgICBvYnNlcnZl
ciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2Jz
ZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICBt
dXRhdGlvbnMgPSBtOwogICAgICAgICB9KTsKIApAQCAtNDEsNyArNDEsNyBAQCBmdW5jdGlvbiB0
ZXN0RGF0YWJhc2UoKSB7CiAKIGRlc2NyaXB0aW9uKCdUZXN0aW5nIG11dGF0aW9ucyBhcmUgZGVs
aXZlcmVkIGZvbGxvd2luZyBEYXRhYmFzZSB0cmFuc2FjdGlvbiBjYWxsYmFja3MuJyk7CiAKLWlm
ICghd2luZG93LldlYktpdE11dGF0aW9uT2JzZXJ2ZXIpIHsKK2lmICghd2luZG93Lk11dGF0aW9u
T2JzZXJ2ZXIpIHsKICAgICB0ZXN0RmFpbGVkKCdUaGlzIHRlc3QgcmVxdWlyZXMgRU5BQkxFKE1V
VEFUSU9OX09CU0VSVkVSUyknKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0gZWxzZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9kZWxpdmVyeS1vcmRlci5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9kZWxpdmVyeS1vcmRlci5odG1sCmluZGV4IDRlNTVjMGQ2
MmI2NTM0OGQ5ZWFhM2MyYjUwNjdmNWZhZmI4MmI0ZGQuLjViYzI5OTFhNWI1YmVjODIyZmFmNmFh
ZGNlYWZiZjY5YTQ0MzVjYTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24v
ZGVsaXZlcnktb3JkZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2RlbGl2
ZXJ5LW9yZGVyLmh0bWwKQEAgLTIzLDcgKzIzLDcgQEAgdmFyIG9yZGVyID0gW107CiB2YXIgb2Jz
ZXJ2ZXJzID0gW107CiAKIGZ1bmN0aW9uIHNldFVwT3JkZXJpbmcobnVtKSB7Ci0gICAgb2JzZXJ2
ZXJzLnB1c2gobmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7
CisgICAgb2JzZXJ2ZXJzLnB1c2gobmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRp
b25zKSB7CiAgICAgICAgIG9yZGVyLnB1c2gobnVtKTsKICAgICB9KSk7CiB9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2Rpc2Nvbm5lY3QtY2FuY2VsLXBlbmRpbmctZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9kaXNjb25uZWN0LWNhbmNlbC1w
ZW5kaW5nLWV4cGVjdGVkLnR4dAppbmRleCAzYjVkOTdlNzUzMmQ2OGY2NjZlYmFlOWZhNWMwYTNj
YWQzZmIxYjEyLi43MzZhNzVlMTkxZDZiNTFkY2Y3YWM3NTBlNTQyZDg4OGFjNTIxYzRlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2Rpc2Nvbm5lY3QtY2FuY2VsLXBlbmRp
bmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vZGlzY29ubmVj
dC1jYW5jZWwtcGVuZGluZy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1UZXN0IHRoYXQg
V2ViS2l0TXV0YXRpb25PYnNlcnZlci5kaXNjb25uZWN0IGNhbmNlbHMgcGVuZGluZyBkZWxpdmVy
eQorVGVzdCB0aGF0IE11dGF0aW9uT2JzZXJ2ZXIuZGlzY29ubmVjdCBjYW5jZWxzIHBlbmRpbmcg
ZGVsaXZlcnkKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L211dGF0aW9uL2Rpc2Nvbm5lY3QtY2FuY2VsLXBlbmRpbmcuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vZGlzY29ubmVjdC1jYW5jZWwtcGVuZGluZy5odG1sCmlu
ZGV4IGY2MmZkNTI5ZTM5YzUxYWM3YzQ2OGM5OWJlYTM3MTM3NTAxNTZhZDEuLmJkNDc4MDhmNGMy
NTM3YTNjNDdkNDY4YTY5M2M3YzQyZGE0YWE3OTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvbXV0YXRpb24vZGlzY29ubmVjdC1jYW5jZWwtcGVuZGluZy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvbXV0YXRpb24vZGlzY29ubmVjdC1jYW5jZWwtcGVuZGluZy5odG1sCkBAIC0xLDcg
KzEsNyBAQAogPCFET0NUWVBFIGh0bWw+CiA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1kZXNjcmlwdGlvbignVGVzdCB0aGF0
IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIuZGlzY29ubmVjdCBjYW5jZWxzIHBlbmRpbmcgZGVsaXZl
cnknKTsKK2Rlc2NyaXB0aW9uKCdUZXN0IHRoYXQgTXV0YXRpb25PYnNlcnZlci5kaXNjb25uZWN0
IGNhbmNlbHMgcGVuZGluZyBkZWxpdmVyeScpOwogCiB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRy
dWU7CiB2YXIgbXV0YXRpb25zOwpAQCAtMTEsNyArMTEsNyBAQCBmdW5jdGlvbiBzdGFydCgpIHsK
ICAgICBtdXRhdGlvbnMgPSBudWxsOwogICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2RpdicpOwogCi0gICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5j
dGlvbihtKSB7CisgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbiht
KSB7CiAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgfSk7CiAKQEAgLTM2LDcgKzM2LDcgQEAg
ZnVuY3Rpb24gZmluaXNoKCkgewogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCi1pZiAoIXdpbmRv
dy5XZWJLaXRNdXRhdGlvbk9ic2VydmVyKQoraWYgKCF3aW5kb3cuTXV0YXRpb25PYnNlcnZlcikK
ICAgICB0ZXN0RmFpbGVkKCdUaGlzIHRlc3QgcmVxdWlyZXMgRU5BQkxFKE1VVEFUSU9OX09CU0VS
VkVSUyknKTsKIGVsc2UKICAgICBzdGFydCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9tdXRhdGlvbi9kb2N1bWVudC1mcmFnbWVudC1pbnNlcnRpb24uaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvbXV0YXRpb24vZG9jdW1lbnQtZnJhZ21lbnQtaW5zZXJ0aW9uLmh0bWwKaW5kZXggY2Fj
NDZjZmY0MzIwN2E5ZTJiZjBkOWZhNmMzYzNkZWMyYWU1ZmZlNC4uYjY0NjZlY2ViNDRkNjRhZmY4
YTZmOWMzMDhmMGQ1ZjYwMjRmODZmZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRh
dGlvbi9kb2N1bWVudC1mcmFnbWVudC1pbnNlcnRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L211dGF0aW9uL2RvY3VtZW50LWZyYWdtZW50LWluc2VydGlvbi5odG1sCkBAIC0yMCw3ICsy
MCw3IEBAIGZ1bmN0aW9uIGNyZWF0ZU9ic2VydmVkRGl2KCkgewogZnVuY3Rpb24gY2FsbGJhY2so
bXV0YXRpb25zKSB7CiAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKIH0KLXZhciBv
YnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGNhbGxiYWNrKTsKK3ZhciBvYnNl
cnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGNhbGxiYWNrKTsKIAogZnVuY3Rpb24gdGVzdEFw
cGVuZENoaWxkKCkgewogICAgIGRlYnVnKCdUZXN0aW5nIGFwcGVuZENoaWxkJyk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2VuZC1vZi10YXNrLWRlbGl2ZXJ5Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2VuZC1vZi10YXNrLWRlbGl2ZXJ5Lmh0bWwKaW5k
ZXggMjJkMzY0NzhjODk3MmFiYWQ5ZTdkZTUyMDhmMjk2YjM4ZDM4Zjk2Yi4uNGM3OWE3NTRiZTI0
NGI2NGVhOTZlNmNiNDU3YWVjMDdiNmE4OTdjNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9tdXRhdGlvbi9lbmQtb2YtdGFzay1kZWxpdmVyeS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvbXV0YXRpb24vZW5kLW9mLXRhc2stZGVsaXZlcnkuaHRtbApAQCAtMTIsNyArMTIsNyBAQAog
ICAgIHZhciBsaXN0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcignb2wnKTsKICAgICB2YXIgcCA9
IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3AnKTsKICAgICB2YXIgb2JzZXJ2ZXJSdW5zID0gMDsK
LSAgICB2YXIgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbigp
IHsgKytvYnNlcnZlclJ1bnM7IH0pOworICAgIHZhciBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9i
c2VydmVyKGZ1bmN0aW9uKCkgeyArK29ic2VydmVyUnVuczsgfSk7CiAgICAgb2JzZXJ2ZXIub2Jz
ZXJ2ZShsaXN0LCB7Y2hpbGRMaXN0OiB0cnVlfSk7CiAgICAgbGlzdC5hZGRFdmVudExpc3RlbmVy
KCdibHVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0g
b2JzZXJ2ZXJSdW5zID09IDEgPyAnUEFTU0VEJyA6ICdGQUlMRUQnOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9maWxlc3lzdGVtLWNhbGxiYWNrLWRlbGl2ZXJ5Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2ZpbGVzeXN0ZW0tY2FsbGJhY2stZGVsaXZlcnku
aHRtbAppbmRleCBlZjFjNTZhMTVhOGU4MjMwNGM4MWU1N2Y0YWNkYzg4YzlkYjc1N2Y3Li5hYjU1
Yjg5OTRkMzgxZmQ1NzZjMjFlZTE2ZGVjMDg4NzM3YTljNjJjIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L211dGF0aW9uL2ZpbGVzeXN0ZW0tY2FsbGJhY2stZGVsaXZlcnkuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2ZpbGVzeXN0ZW0tY2FsbGJhY2stZGVsaXZlcnku
aHRtbApAQCAtMTIsNyArMTIsNyBAQCBmdW5jdGlvbiB0ZXN0RmlsZXN5c3RlbSgpIHsKICAgICBm
dW5jdGlvbiBzdGFydCgpIHsKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKICAgICAgICAgZGl2
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3
IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9
IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9u
cyA9IG07CiAgICAgICAgIH0pOwogCkBAIC01Niw3ICs1Niw3IEBAIGZ1bmN0aW9uIHRlc3RGaWxl
c3lzdGVtKCkgewogCiBkZXNjcmlwdGlvbignVGVzdCB0aGF0IE11dGF0aW9uIFJlY29yZHMgYXJl
IGRlbGl2ZXJlZCBmb2xsb3dpbmcgRmlsZVN5c3RlbSBjYWxsYmFja3MuJyk7CiAKLWlmICghd2lu
ZG93LldlYktpdE11dGF0aW9uT2JzZXJ2ZXIgfHwgIXdpbmRvdy53ZWJraXRSZXF1ZXN0RmlsZVN5
c3RlbSkgeworaWYgKCF3aW5kb3cuTXV0YXRpb25PYnNlcnZlciB8fCAhd2luZG93LndlYmtpdFJl
cXVlc3RGaWxlU3lzdGVtKSB7CiAgICAgdGVzdEZhaWxlZCgnVGhpcyB0ZXN0IHJlcXVpcmVzIEVO
QUJMRShNVVRBVElPTl9PQlNFUlZFUlMpIGFuZCBFTkFCTEUoRklMRV9TWVNURU0pJyk7CiAgICAg
ZmluaXNoSlNUZXN0KCk7CiB9IGVsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0
YXRpb24vaW5saW5lLWV2ZW50LWxpc3RlbmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0
aW9uL2lubGluZS1ldmVudC1saXN0ZW5lci5odG1sCmluZGV4IDMwOTY4ZTE0ZmJkNjc5ODFkYTA1
YWZiMDgxZGQ4OTNkN2JiZTA5OTMuLjU3ZDg2YjkzYmE4MmMzOTJkOTk0OWY0Y2JjOWI2MDU0NzMy
YjI0MGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vaW5saW5lLWV2ZW50
LWxpc3RlbmVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9pbmxpbmUtZXZl
bnQtbGlzdGVuZXIuaHRtbApAQCAtMTAsNyArMTAsNyBAQAogCiAgICAgdmFyIGxpc3QgPSBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCdvbCcpOwogICAgIHZhciBvYnNlcnZlclJhbiA9IGZhbHNlOwot
ICAgIHZhciBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKCkg
eyBvYnNlcnZlclJhbiA9IHRydWU7IH0pOworICAgIHZhciBvYnNlcnZlciA9IG5ldyBNdXRhdGlv
bk9ic2VydmVyKGZ1bmN0aW9uKCkgeyBvYnNlcnZlclJhbiA9IHRydWU7IH0pOwogICAgIG9ic2Vy
dmVyLm9ic2VydmUobGlzdCwge2NoaWxkTGlzdDogdHJ1ZSwgY2hhcmFjdGVyRGF0YTogdHJ1ZX0p
OwogICAgIGxpc3QuZm9jdXMoKTsKICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9tdXRhdGUtZHVyaW5nLWRlbGl2ZXJ5Lmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL211dGF0ZS1kdXJpbmctZGVsaXZlcnkuaHRt
bAppbmRleCBmOTMwMWI5N2U1Y2QxOGExMDUyMjRjZmRhYzRmZTRmOGEzOTM3YjM2Li5jOTQ5Zjdl
N2IwMmUwMjc4ZGFmOWRiZjdmMDRmM2JhN2VlZjgzODZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L211dGF0aW9uL211dGF0ZS1kdXJpbmctZGVsaXZlcnkuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L211dGF0aW9uL211dGF0ZS1kdXJpbmctZGVsaXZlcnkuaHRtbApAQCAtMTUsMTQg
KzE1LDE0IEBAIGZ1bmN0aW9uIGZpbmlzaCgpIHsKIHZhciBvcmRlciA9IFtdOwogdmFyIGRpdiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogCi12YXIgb2JzZXJ2ZXIxID0gbmV3IFdl
YktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7Cit2YXIgb2JzZXJ2ZXIx
ID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgb3JkZXIu
cHVzaCgxKTsKICAgICBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3Bh
bicpKTsKIH0pOwotdmFyIG9ic2VydmVyMiA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1
bmN0aW9uKG11dGF0aW9ucykgewordmFyIG9ic2VydmVyMiA9IG5ldyBNdXRhdGlvbk9ic2VydmVy
KGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgIG9yZGVyLnB1c2goMik7CiB9KTsKLXZhciBvYnNl
cnZlcjMgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsK
K3ZhciBvYnNlcnZlcjMgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMp
IHsKICAgICBvcmRlci5wdXNoKDMpOwogfSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvbXV0YXRpb24vbXV0YXRpb24tY2FsbGJhY2stbm9uLWVsZW1lbnQtY3Jhc2guaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vbXV0YXRpb24tY2FsbGJhY2stbm9uLWVsZW1lbnQtY3Jh
c2guaHRtbAppbmRleCA3NWYyMmVmOTYxMTZhM2E1MDc5NmM0OGEzNmUzZWQ3MGUwODUwYjZlLi4y
ZWFhMDQ2MWI3MTA2ODVhMDYzYmY3MWM4Yzc4ZjQzNzM1OTI2YmYxIDEwMDc1NQotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L211dGF0aW9uL211dGF0aW9uLWNhbGxiYWNrLW5vbi1lbGVtZW50LWNyYXNo
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9tdXRhdGlvbi1jYWxsYmFjay1u
b24tZWxlbWVudC1jcmFzaC5odG1sCkBAIC05LDcgKzksNyBAQCBmdW5jdGlvbiBtdXRhdGlvbkNh
bGxiYWNrKG11dGF0aW9ucywgb2JzZXJ2ZXIpIHsKICAgICBtdXRhdGlvbnNbMF0uYWRkZWROb2Rl
c1stMV07CiB9CiAKLXZhciBtdXRhdGlvbk9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXIobXV0YXRpb25DYWxsYmFjayk7Cit2YXIgbXV0YXRpb25PYnNlcnZlciA9IG5ldyBNdXRh
dGlvbk9ic2VydmVyKG11dGF0aW9uQ2FsbGJhY2spOwogbXV0YXRpb25PYnNlcnZlci5vYnNlcnZl
KGRvY3VtZW50LmJvZHksIHtjaGlsZExpc3Q6IHRydWV9KTsKIGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlBBU1MuIFdlYktpdCBkaWRuJ3QgY3Jhc2gi
KSk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vbXV0
YXRpb24tb2JzZXJ2ZXItY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9tdXRhdGlvbi9tdXRhdGlvbi1vYnNlcnZlci1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQKaW5k
ZXggMmJlYjNlODZlNzBlMjQ4NWE3NzIwMTgwNzc2NDI4NTkxNzkyNzQ5ZC4uNTQ3ZjRiZDQ4M2Yz
ZjAxOTViMGFlMDY3NGMwNjhlYTdkZmI1OWM3ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9tdXRhdGlvbi9tdXRhdGlvbi1vYnNlcnZlci1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9tdXRhdGlvbi1vYnNlcnZlci1jb25zdHJ1Y3Rv
ci1leHBlY3RlZC50eHQKQEAgLTEsMTEgKzEsMTEgQEAKLVRlc3QgdGhlIGNvbnN0cnVjdG9yIG9m
IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIKK1Rlc3QgdGhlIGNvbnN0cnVjdG9yIG9mIE11dGF0aW9u
T2JzZXJ2ZXIKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1Mgd2luZG93Lldl
YktpdE11dGF0aW9uT2JzZXJ2ZXIgaXMgbm9uLW51bGwuCi1QQVNTIHR5cGVvZiBXZWJLaXRNdXRh
dGlvbk9ic2VydmVyLnByb3RvdHlwZS5vYnNlcnZlIGlzICJmdW5jdGlvbiIKLVBBU1MgdHlwZW9m
IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIucHJvdG90eXBlLmRpc2Nvbm5lY3QgaXMgImZ1bmN0aW9u
IgorUEFTUyB3aW5kb3cuTXV0YXRpb25PYnNlcnZlciBpcyBub24tbnVsbC4KK1BBU1MgdHlwZW9m
IE11dGF0aW9uT2JzZXJ2ZXIucHJvdG90eXBlLm9ic2VydmUgaXMgImZ1bmN0aW9uIgorUEFTUyB0
eXBlb2YgTXV0YXRpb25PYnNlcnZlci5wcm90b3R5cGUuZGlzY29ubmVjdCBpcyAiZnVuY3Rpb24i
CiBQQVNTIHR5cGVvZiBvYnNlcnZlci5vYnNlcnZlIGlzICJmdW5jdGlvbiIKIFBBU1MgdHlwZW9m
IG9ic2VydmVyLmRpc2Nvbm5lY3QgaXMgImZ1bmN0aW9uIgogUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9tdXRhdGlv
bi1vYnNlcnZlci1jb25zdHJ1Y3Rvci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9t
dXRhdGlvbi1vYnNlcnZlci1jb25zdHJ1Y3Rvci5odG1sCmluZGV4IGFiNDBmNzBlZDczNjhmNTM4
NWExZjQ5ZDg1ZDM5ZTRhNjBhZTM3Y2QuLmI4YTkyYmIzYTZmYjJhYWExZTQzZTRlNDQ1MDg1MzQw
MDFmYzliY2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vbXV0YXRpb24t
b2JzZXJ2ZXItY29uc3RydWN0b3IuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9u
L211dGF0aW9uLW9ic2VydmVyLWNvbnN0cnVjdG9yLmh0bWwKQEAgLTExLDE3ICsxMSwxNyBAQAog
PHNjcmlwdD4KIAogZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICBzaG91bGRCZU5vbk51bGwoJ3dp
bmRvdy5XZWJLaXRNdXRhdGlvbk9ic2VydmVyJyk7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCd0eXBlb2YgV2ViS2l0TXV0YXRpb25PYnNlcnZlci5wcm90b3R5cGUub2JzZXJ2ZScsICdmdW5j
dGlvbicpOwotICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygndHlwZW9mIFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXIucHJvdG90eXBlLmRpc2Nvbm5lY3QnLCAnZnVuY3Rpb24nKTsKLSAgICB3aW5kb3cu
b2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMp
IHsgfSk7CisgICAgc2hvdWxkQmVOb25OdWxsKCd3aW5kb3cuTXV0YXRpb25PYnNlcnZlcicpOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygndHlwZW9mIE11dGF0aW9uT2JzZXJ2ZXIucHJvdG90
eXBlLm9ic2VydmUnLCAnZnVuY3Rpb24nKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3R5
cGVvZiBNdXRhdGlvbk9ic2VydmVyLnByb3RvdHlwZS5kaXNjb25uZWN0JywgJ2Z1bmN0aW9uJyk7
CisgICAgd2luZG93Lm9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0
YXRpb25zKSB7IH0pOwogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygndHlwZW9mIG9ic2VydmVy
Lm9ic2VydmUnLCAnZnVuY3Rpb24nKTsKICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3R5cGVv
ZiBvYnNlcnZlci5kaXNjb25uZWN0JywgJ2Z1bmN0aW9uJyk7CiB9CiAKLWRlc2NyaXB0aW9uKCdU
ZXN0IHRoZSBjb25zdHJ1Y3RvciBvZiBXZWJLaXRNdXRhdGlvbk9ic2VydmVyJyk7CitkZXNjcmlw
dGlvbignVGVzdCB0aGUgY29uc3RydWN0b3Igb2YgTXV0YXRpb25PYnNlcnZlcicpOwogCi1pZiAo
IXdpbmRvdy5XZWJLaXRNdXRhdGlvbk9ic2VydmVyKQoraWYgKCF3aW5kb3cuTXV0YXRpb25PYnNl
cnZlcikKICAgICB0ZXN0RmFpbGVkKCdUaGlzIHRlc3QgcmVxdWlyZXMgRU5BQkxFKE1VVEFUSU9O
X09CU0VSVkVSUyknKTsKIGVsc2UKICAgICBydW5UZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtYXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5k
ZXggMDdhNjhjM2NkOWY3MDRiOGM1MWUxNTFkNDdkYTE0MGZjNGYxM2RkYy4uYjk5OGM5ODk0NzNm
OWE3YmZhYmI5NTYzOWJiNDA2MjZlODBkNzE5YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9tdXRhdGlvbi9vYnNlcnZlLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtMSw0
ICsxLDQgQEAKLVRlc3QgV2ViS2l0TXV0YXRpb25PYnNlcnZlci5vYnNlcnZlIG9uIGF0dHJpYnV0
ZXMKK1Rlc3QgTXV0YXRpb25PYnNlcnZlci5vYnNlcnZlIG9uIGF0dHJpYnV0ZXMKIAogT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0
aW9uL29ic2VydmUtYXR0cmlidXRlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9v
YnNlcnZlLWF0dHJpYnV0ZXMuaHRtbAppbmRleCA0MjFlZWFkZjFmZjcxODY5YjgzYTk5OTIyODA3
NjBjODJkZjRhMmZkLi4zNmVhOTBiNTEwM2E5ZjEyNWViMzYwM2Q5MDFiNzYxYjQyZWJmN2E3IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtYXR0cmlidXRlcy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1hdHRyaWJ1dGVzLmh0
bWwKQEAgLTE4LDcgKzE4LDcgQEAgZnVuY3Rpb24gdGVzdEJhc2ljKCkgewogICAgICAgICBkaXYg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgZGl2LnNldEF0dHJpYnV0
ZSgnYmFyJywgJ2ZvbycpOwogCi0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9i
c2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAg
IH0pOwogCkBAIC04Miw3ICs4Miw3IEBAIGZ1bmN0aW9uIHRlc3RXcm9uZ1R5cGUoKSB7CiAKICAg
ICAgICAgbXV0YXRpb25zID0gbnVsbDsKICAgICAgICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZGl2Jyk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2
ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVy
KGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwog
CkBAIC0xMTEsNyArMTExLDcgQEAgZnVuY3Rpb24gdGVzdE11bHRpcGxlUmVnaXN0cmF0aW9uKCkg
ewogCQljYWxscyA9IDA7CiAgICAgICAgIG11dGF0aW9ucyA9IG51bGw7CiAgICAgICAgIGRpdiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBu
ZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICBtdXRhdGlvbnMg
PSBtOwogCQkJY2FsbHMrKzsKICAgICAgICAgfSk7CkBAIC0xNTMsMTAgKzE1MywxMCBAQCBmdW5j
dGlvbiB0ZXN0TXVsdGlwbGVPYnNlcnZlcnMoKSB7CiAgICAgICAgIGRlYnVnKCdUZXN0aW5nIHRo
YXQgbXVsdGlwbGUgb2JzZXJ2ZXJzIGNhbiBiZSByZWdpc3RlcmVkIHRvIGEgZ2l2ZW4gbm9kZSBh
bmQgYm90aCByZWNlaXZlIG11dGF0aW9ucy4nKTsKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsK
ICAgICAgICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIG9i
c2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAg
ICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAg
ICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwotICAgICAgICBvYnNlcnZlcjIgPSBuZXcg
V2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyMiA9
IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9u
czIgPSBtOwogICAgICAgICB9KTsKICAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShkaXYsIHsgYXR0
cmlidXRlczogdHJ1ZSB9KTsKQEAgLTE4OSw3ICsxODksNyBAQCBmdW5jdGlvbiB0ZXN0TmFtZXNw
YWNlVVJJKCkgewogICAgICAgICBkZWJ1ZygnVGVzdGluZyB0aGF0ICJhdHRyaWJ1dGVOYW1lc3Bh
Y2UiIHZhbHVlIGlzIGRlbGl2ZXJlZCBwcm9wZXJseS4nKTsKICAgICAgICAgbXV0YXRpb25zID0g
bnVsbDsKICAgICAgICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAg
ICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewor
ICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAg
ICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBAIC0yMjEsNyArMjIxLDcg
QEAgZnVuY3Rpb24gdGVzdFByb3BlcnR5QWNjZXNzKCkgewogICAgICAgICBpbWcgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdpbWcnKTsKICAgICAgICAgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2EnKTsKIAotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVy
KGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihm
dW5jdGlvbihtKSB7CiAgICAgICAgICAgICBtdXRhdGlvbnMgPSBtOwogICAgICAgICB9KTsKIApA
QCAtMjYyLDcgKzI2Miw3IEBAIGZ1bmN0aW9uIHRlc3RPcmRlcmluZ1dydERPTVN1YnRyZWVNb2Rp
ZmllZCgpIHsKIAogICAgICAgICBzdWJEaXYgPSBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnZGl2JykpOwogCi0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0
aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlv
bk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAg
ICAgIH0pOwogCkBAIC0zMDUsNyArMzA1LDcgQEAgZnVuY3Rpb24gdGVzdE9sZFZhbHVlKCkgewog
ICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgZGl2
LnNldEF0dHJpYnV0ZSgnYmFyJywgJ2JvbycpOwogICAgICAgICAKLSAgICAgICAgb2JzZXJ2ZXIg
PSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICAg
ICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsK
ICAgICAgICAgICAgIHdpbmRvdy5tdXRhdGlvbnMgPSBtdXRhdGlvbnM7CiAgICAgICAgIH0pOwog
ICAgICAgICBvYnNlcnZlci5vYnNlcnZlKGRpdiwgeyBhdHRyaWJ1dGVzOiB0cnVlLCBhdHRyaWJ1
dGVPbGRWYWx1ZTogdHJ1ZSB9KTsKQEAgLTM0NiwxMCArMzQ2LDEwIEBAIGZ1bmN0aW9uIHRlc3RP
bGRWYWx1ZUFzUmVxdWVzdGVkKCkgewogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwogICAgICAg
ICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgZGl2LnNldEF0
dHJpYnV0ZSgnZm9vJywgJ2JhcicpOwotICAgICAgICBvYnNlcnZlcldpdGhPbGRWYWx1ZSA9IG5l
dyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBv
YnNlcnZlcldpdGhPbGRWYWx1ZSA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0
aW9ucykgewogICAgICAgICAgICAgd2luZG93Lm11dGF0aW9uc1dpdGhPbGRWYWx1ZSA9IG11dGF0
aW9uczsKICAgICAgICAgfSk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11
dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cu
bXV0YXRpb25zID0gbXV0YXRpb25zOwogICAgICAgICB9KTsKICAgICAgICAgb2JzZXJ2ZXJXaXRo
T2xkVmFsdWUub2JzZXJ2ZShkaXYsIHsgYXR0cmlidXRlczogdHJ1ZSwgYXR0cmlidXRlT2xkVmFs
dWU6IHRydWUgfSk7CkBAIC0zODcsNyArMzg3LDcgQEAgZnVuY3Rpb24gdGVzdE9sZFZhbHVlVW5p
b25NdWx0aXBsZU9ic2VydmF0aW9ucygpIHsKICAgICAgICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7CiAgICAgICAgIHNwYW4gPSBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnc3BhbicpKTsKICAgICAgICAgc3Bhbi5zZXRBdHRyaWJ1dGUoJ2Zvbycs
ICdiYXInKTsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihm
dW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNl
cnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICAgICAgICAgIHdpbmRvdy5tdXRhdGlvbnMg
PSBtdXRhdGlvbnM7CiAgICAgICAgIH0pOwogICAgICAgICBvYnNlcnZlci5vYnNlcnZlKGRpdiwg
eyBhdHRyaWJ1dGVzOiB0cnVlLCBhdHRyaWJ1dGVPbGRWYWx1ZTogdHJ1ZSwgc3VidHJlZTogdHJ1
ZSB9KTsKQEAgLTQxNyw3ICs0MTcsNyBAQCBmdW5jdGlvbiB0ZXN0SURMQXR0cmlidXRlKCkgewog
ICAgICAgICBkZWJ1ZygnVGVzdGluZyBzZXR0aW5nIGFuIGF0dHJpYnV0ZSB2aWEgcmVmbGVjdGVk
IElETCBhdHRyaWJ1dGUuJyk7CiAgICAgICAgIG11dGF0aW9ucyA9IG51bGw7CiAgICAgICAgIGRp
diA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgICAgICBvYnNlcnZlciA9IG5l
dyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBv
YnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAg
ICAgICAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAgICAg
ICAgIG9ic2VydmVyLm9ic2VydmUoZGl2LCB7IGF0dHJpYnV0ZXM6IHRydWUsIGF0dHJpYnV0ZU9s
ZFZhbHVlOiB0cnVlIH0pOwpAQCAtNDU0LDcgKzQ1NCw3IEBAIGZ1bmN0aW9uIHRlc3RBdHRyaWJ1
dGVGaWx0ZXIoKSB7CiAgICAgICAgIGRlYnVnKCdUZXN0aW5nIHRoYXQgYXR0cmlidXRlRmlsdGVy
IHdvcmtzIGFzIGV4cGVjdGVkIGFuZCBvYnNlcnZlcyBjYXNlIHdpdGggSFRNTCBlbGVtZW50cy4n
KTsKIAogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBu
ZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICBtdXRhdGlvbnMg
PSBtOwogICAgICAgICB9KTsKIApAQCAtNDk0LDcgKzQ5NCw3IEBAIGZ1bmN0aW9uIHRlc3RBdHRy
aWJ1dGVGaWx0ZXJTdWJ0cmVlKCkgewogICAgICAgICBkZWJ1ZygnVGVzdGluZyB0aGUgYmVoYXZp
b3Igb2YgYXR0cmlidXRlRmlsdGVyIHdoZW4gdGhlIHNhbWUgb2JzZXJ2ZXIgb2JzZXJ2ZXMgYXQg
bXVsdGlwbGUgbm9kZXMgaW4gYSBzdWJ0cmVlIHdpdGggZGlmZmVyZW50IGZpbHRlciBvcHRpb25z
LicpOwogCiAgICAgICAgIG11dGF0aW9ucyA9IG51bGw7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3
IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9
IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9u
cyA9IG07CiAgICAgICAgIH0pOwogCkBAIC01NjUsNyArNTY1LDcgQEAgZnVuY3Rpb24gdGVzdEF0
dHJpYnV0ZUZpbHRlck5vbkhUTUxFbGVtZW50KCkgewogICAgICAgICBkZWJ1ZygnVGVzdGluZyB0
aGF0IHNldHRpbmcgYW4gYXR0cmlidXRlRmlsdGVyIGZpbHRlcnMgb3V0IG5hbWVzcGFjZWQgYXR0
cmlidXRlcy4nKTsKIAogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwotICAgICAgICBvYnNlcnZl
ciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2Jz
ZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICBt
dXRhdGlvbnMgPSBtOwogICAgICAgICB9KTsKIApAQCAtNTk3LDcgKzU5Nyw3IEBAIGZ1bmN0aW9u
IHRlc3RBdHRyaWJ1dGVGaWx0ZXJOb25IVE1MRG9jdW1lbnQoKSB7CiAKICAgICAgICAgc3ZnRG9j
ID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQoJ2h0dHA6Ly93d3cudzMu
b3JnLzIwMDAvc3ZnJywgJ3N2ZycsICdzdmcnKTsKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsK
LSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbiht
KSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkg
ewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTY0Miw3ICs2
NDIsNyBAQCBmdW5jdGlvbiB0ZXN0U3R5bGVBdHRyaWJ1dGVQcm9wZXJ0eUFjY2VzcygpIHsKICAg
ICAgICAgZGVidWcoJ1Rlc3RpbmcgdGhhdCBtb2RpZnlpbmcgYW4gZWxlbWVudHMgc3R5bGUgcHJv
cGVydHkgZGlzcGF0Y2hlcyBNdXRhdGlvbiBSZWNvcmRzLicpOwogCiAgICAgICAgIG11dGF0aW9u
cyA9IG51bGw7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIo
ZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1
bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBA
IC02OTQsNyArNjk0LDcgQEAgZnVuY3Rpb24gdGVzdFN0eWxlQXR0cmlidXRlUHJvcGVydHlBY2Nl
c3NPbGRWYWx1ZSgpIHsKICAgICAgICAgZGVidWcoJ1Rlc3RpbmcgdGhhdCBtb2RpZnlpbmcgYW4g
ZWxlbWVudHMgc3R5bGUgcHJvcGVydHkgZGlzcGF0Y2hlcyBNdXRhdGlvbiBSZWNvcmRzIHdpdGgg
Y29ycmVjdCBvbGRWYWx1ZXMuJyk7CiAKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKLSAgICAg
ICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7Cisg
ICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAg
ICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTc0Niw3ICs3NDYsNyBA
QCBmdW5jdGlvbiB0ZXN0U3R5bGVBdHRyaWJ1dGVQcm9wZXJ0eUFjY2Vzc0lnbm9yZU5vb3AoKSB7
CiAgICAgICAgIGRlYnVnKCdUZXN0aW5nIHRoYXQgYSBuby1vcCBzdHlsZSBwcm9wZXJ0eSBtdXRh
dGlvbiBkb2VzIG5vdCBjcmVhdGUgTXV0YXRpb24gUmVjb3Jkcy4nKTsKIAogICAgICAgICBtdXRh
dGlvbnMgPSBudWxsOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZl
cihmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICBtdXRhdGlvbnMgPSBtOwogICAgICAgICB9KTsK
IApAQCAtNzc2LDcgKzc3Niw3IEBAIGZ1bmN0aW9uIHRlc3RNdXRhdGVUaHJvdWdoQXR0ck5vZGVW
YWx1ZSgpIHsKICAgICAgICAgZGVidWcoJ1Rlc3QgdGhhdCBtdXRhdGluZyBhbiBhdHRyaWJ1dGUg
dGhyb3VnaCBhbiBhdHRyIG5vZGUgZGVsaXZlcnMgbXV0YXRpb24gcmVjb3JkcycpOwogCiAgICAg
ICAgIG11dGF0aW9ucyA9IG51bGw7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0
aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3
IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5k
b3cubXV0YXRpb25zID0gbXV0YXRpb25zOwogICAgICAgICB9KTsKIApAQCAtODEwLDcgKzgxMCw3
IEBAIGZ1bmN0aW9uIHRlc3RNdXRhdGVUaHJvdWdoQXR0ck5vZGVDaGlsZCgpIHsKICAgICAgICAg
ZGVidWcoJ1Rlc3QgdGhhdCBtdXRhdGluZyBhbiBhdHRyaWJ1dGUgYnkgYXR0YWNoaW5nIGEgY2hp
bGQgdG8gYW4gYXR0ciBub2RlIGRlbGl2ZXJzIG11dGF0aW9uIHJlY29yZHMnKTsKIAogICAgICAg
ICBtdXRhdGlvbnMgPSBudWxsOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlv
bk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBN
dXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICAgICAgd2luZG93
Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAKQEAgLTg0NCw3ICs4NDQsNyBA
QCBmdW5jdGlvbiB0ZXN0U2V0QW5kUmVtb3ZlQXR0cmlidXRlTm9kZSgpIHsKICAgICAgICAgZGVi
dWcoJ1Rlc3QgdGhhdCBtdXRhdGluZyB2aWEgc2V0QXR0cmlidXRlTm9kZSBkZWxpdmVycyBtdXRh
dGlvbiByZWNvcmRzJyk7CiAKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKLSAgICAgICAgb2Jz
ZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsK
KyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlv
bnMpIHsKICAgICAgICAgICAgIHdpbmRvdy5tdXRhdGlvbnMgPSBtdXRhdGlvbnM7CiAgICAgICAg
IH0pOwogCkBAIC04OTMsNyArODkzLDcgQEAgZnVuY3Rpb24gdGVzdE1peGVkTm9kZUFuZEVsZW1l
bnRPcGVyYXRpb25zKCkgewogICAgICAgICBkZWJ1ZygnVGVzdCB0aGF0IHNldEF0dHJpYnV0ZSBv
biBhbiBhdHRyaWJ1dGUgd2l0aCBhbiBleGlzdGluZyBBdHRyIGRlbGl2ZXJzIG11dGF0aW9uIHJl
Y29yZHMnKTsKIAogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwotICAgICAgICBvYnNlcnZlciA9
IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAg
ICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewog
ICAgICAgICAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAK
QEAgLTkyOSw3ICs5MjksNyBAQCBmdW5jdGlvbiB0ZXN0TmFtZWROb2RlTWFwT3BlcmF0aW9ucygp
IHsKICAgICAgICAgZGVidWcoJ1Rlc3QgdGhhdCBzZXROYW1lZEl0ZW0gYW5kIHJlbW92ZU5hbWVk
SXRlbSBkZWxpdmVyIG11dGF0aW9uIHJlY29yZHMnKTsKIAogICAgICAgICBtdXRhdGlvbnMgPSBu
dWxsOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0
aW9uKG11dGF0aW9ucykgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVy
KGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11
dGF0aW9uczsKICAgICAgICAgfSk7CiAKQEAgLTk5Nyw5ICs5OTcsOSBAQCBmdW5jdGlvbiBydW5O
ZXh0VGVzdCgpIHsKICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKLWRlc2NyaXB0aW9uKCdU
ZXN0IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSBvbiBhdHRyaWJ1dGVzJyk7CitkZXNj
cmlwdGlvbignVGVzdCBNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUgb24gYXR0cmlidXRlcycpOwog
Ci1pZiAoIXdpbmRvdy5XZWJLaXRNdXRhdGlvbk9ic2VydmVyKQoraWYgKCF3aW5kb3cuTXV0YXRp
b25PYnNlcnZlcikKICAgICB0ZXN0RmFpbGVkKCdUaGlzIHRlc3QgcmVxdWlyZXMgRU5BQkxFKE1V
VEFUSU9OX09CU0VSVkVSUyknKTsKIGVsc2UKICAgICBydW5OZXh0VGVzdCgpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWNoYXJhY3RlcmRhdGEtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWNoYXJhY3RlcmRhdGEt
ZXhwZWN0ZWQudHh0CmluZGV4IDFkZmYzYjU1ZDI3NmNjMTVhNjgzOWJlZDdkOTdiMzgyYzZmN2Fk
ZmIuLjMxZGQ1NzQwNTJjMmZlNzYzZTg4ZjI3ZjBhMjU5MDA4ZmRlN2U0MGEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1jaGFyYWN0ZXJkYXRhLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtY2hhcmFjdGVyZGF0
YS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1UZXN0IFdlYktpdE11dGF0aW9uT2JzZXJ2
ZXIub2JzZXJ2ZSBvbiBDaGFyYWN0ZXJEYXRhIG5vZGVzCitUZXN0IE11dGF0aW9uT2JzZXJ2ZXIu
b2JzZXJ2ZSBvbiBDaGFyYWN0ZXJEYXRhIG5vZGVzCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWNoYXJh
Y3RlcmRhdGEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1jaGFyYWN0
ZXJkYXRhLmh0bWwKaW5kZXggMDFjYWVhMjFlYTQzMDZiNmZjZmYyZTQ5ZmQwZTM5NzM3YTEyNjQ1
Yy4uZDg5MDU0YTczYTg0NDMxZjBlOThkOTY5YjM0Mjg5NmJmNmI2MDcyNyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWNoYXJhY3RlcmRhdGEuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtY2hhcmFjdGVyZGF0YS5odG1sCkBA
IC0yNyw3ICsyNyw3IEBAIGZ1bmN0aW9uIHRlc3RCYXNpYygpIHsKICAgICAgICAgZGl2ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgIGRpdi50ZXh0Q29udGVudCA9ICdm
b28nOwogICAgICAgICBjaGFyRGF0YU5vZGUgPSBkaXYuZmlyc3RDaGlsZDsKLSAgICAgICAgb2Jz
ZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAg
IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAg
ICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTg3LDcgKzg3LDcgQEAgZnVuY3Rp
b24gdGVzdFdyb25nVHlwZSgpIHsKICAgICAgICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7CiAgICAgICAgIGRpdi50ZXh0Q29udGVudCA9ICdoZWxsbyc7CiAgICAgICAgIGNo
YXJEYXRhTm9kZSA9IGRpdi5maXJzdENoaWxkOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJL
aXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcg
TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICBtdXRhdGlvbnMgPSBt
OwogICAgICAgICB9KTsKIApAQCAtMTE3LDEwICsxMTcsMTAgQEAgZnVuY3Rpb24gdGVzdE11bHRp
cGxlT2JzZXJ2ZXJzKCkgewogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKTsKICAgICAgICAgZGl2LnRleHRDb250ZW50ID0gJ2Zvbyc7CiAgICAgICAgIGNoYXJEYXRh
Tm9kZSA9IGRpdi5maXJzdENoaWxkOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRh
dGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRp
b25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICBtdXRhdGlvbnMgPSBtOwogICAg
ICAgICB9KTsKLSAgICAgICAgb2JzZXJ2ZXIyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIo
ZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlcjIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihm
dW5jdGlvbihtKSB7CiAgICAgICAgICAgICBtdXRhdGlvbnMyID0gbTsKICAgICAgICAgfSk7CiAg
ICAgICAgIG9ic2VydmVyLm9ic2VydmUoY2hhckRhdGFOb2RlLCB7Y2hhcmFjdGVyRGF0YTogdHJ1
ZX0pOwpAQCAtMTYxLDcgKzE2MSw3IEBAIGZ1bmN0aW9uIHRlc3RPcmRlcmluZ1dydERPTVN1YnRy
ZWVNb2RpZmllZCgpIHsKICAgICAgICAgc3ViRGl2LnRleHRDb250ZW50ID0gJ2Zvbyc7CiAgICAg
ICAgIGNoYXJEYXRhTm9kZSA9IHN1YkRpdi5maXJzdENoaWxkOwogCi0gICAgICAgIG9ic2VydmVy
ID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNl
cnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11
dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBAIC0yMDIsNyArMjAyLDcgQEAgZnVuY3Rpb24g
dGVzdE9sZFZhbHVlKCkgewogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKTsKICAgICAgICAgZGl2LnRleHRDb250ZW50ID0gJ2Zvbyc7CiAgICAgICAgIGNoYXJEYXRh
Tm9kZSA9IGRpdi5maXJzdENoaWxkOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRh
dGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBvYnNlcnZlciA9IG5l
dyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICAgICAgd2lu
ZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAgICAgICAgIG9ic2VydmVy
Lm9ic2VydmUoY2hhckRhdGFOb2RlLCB7Y2hhcmFjdGVyRGF0YTogdHJ1ZSwgY2hhcmFjdGVyRGF0
YU9sZFZhbHVlOiB0cnVlfSk7CkBAIC0yMzksMTAgKzIzOSwxMCBAQCBmdW5jdGlvbiB0ZXN0T2xk
VmFsdWVBc1JlcXVlc3RlZCgpIHsKICAgICAgICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7CiAgICAgICAgIGRpdi50ZXh0Q29udGVudCA9ICdmb28nOwogICAgICAgICBjaGFy
RGF0YU5vZGUgPSBkaXYuZmlyc3RDaGlsZDsKLSAgICAgICAgb2JzZXJ2ZXJXaXRoT2xkVmFsdWUg
PSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICAg
ICAgb2JzZXJ2ZXJXaXRoT2xkVmFsdWUgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbiht
dXRhdGlvbnMpIHsKICAgICAgICAgICAgIHdpbmRvdy5tdXRhdGlvbnNXaXRoT2xkVmFsdWUgPSBt
dXRhdGlvbnM7CiAgICAgICAgIH0pOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRh
dGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBvYnNlcnZlciA9IG5l
dyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICAgICAgd2lu
ZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAgICAgICAgIG9ic2VydmVy
V2l0aE9sZFZhbHVlLm9ic2VydmUoY2hhckRhdGFOb2RlLCB7Y2hhcmFjdGVyRGF0YTogdHJ1ZSwg
Y2hhcmFjdGVyRGF0YU9sZFZhbHVlOiB0cnVlfSk7CkBAIC0yNzcsNyArMjc3LDcgQEAgZnVuY3Rp
b24gdGVzdE9sZFZhbHVlVW5pb25NdWx0aXBsZU9ic2VydmF0aW9ucygpIHsKICAgICAgICAgZGl2
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgIGRpdi50ZXh0Q29udGVu
dCA9ICdmb28nOwogICAgICAgICBjaGFyRGF0YU5vZGUgPSBkaXYuZmlyc3RDaGlsZDsKLSAgICAg
ICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlv
bnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbiht
dXRhdGlvbnMpIHsKICAgICAgICAgICAgIHdpbmRvdy5tdXRhdGlvbnMgPSBtdXRhdGlvbnM7CiAg
ICAgICAgIH0pOwogICAgICAgICBvYnNlcnZlci5vYnNlcnZlKGRpdiwge2NoYXJhY3RlckRhdGE6
IHRydWUsIGNoYXJhY3RlckRhdGFPbGRWYWx1ZTogdHJ1ZSwgc3VidHJlZTogdHJ1ZX0pOwpAQCAt
MzE2LDkgKzMxNiw5IEBAIGZ1bmN0aW9uIHJ1bk5leHRUZXN0KCkgewogICAgICAgICBmaW5pc2hK
U1Rlc3QoKTsKIH0KIAotZGVzY3JpcHRpb24oJ1Rlc3QgV2ViS2l0TXV0YXRpb25PYnNlcnZlci5v
YnNlcnZlIG9uIENoYXJhY3RlckRhdGEgbm9kZXMnKTsKK2Rlc2NyaXB0aW9uKCdUZXN0IE11dGF0
aW9uT2JzZXJ2ZXIub2JzZXJ2ZSBvbiBDaGFyYWN0ZXJEYXRhIG5vZGVzJyk7CiAKLWlmICghd2lu
ZG93LldlYktpdE11dGF0aW9uT2JzZXJ2ZXIpCitpZiAoIXdpbmRvdy5NdXRhdGlvbk9ic2VydmVy
KQogICAgIHRlc3RGYWlsZWQoJ1RoaXMgdGVzdCByZXF1aXJlcyBFTkFCTEUoTVVUQVRJT05fT0JT
RVJWRVJTKScpOwogZWxzZQogICAgIHJ1bk5leHRUZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtY2hpbGRMaXN0LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1jaGlsZExpc3QtZXhwZWN0ZWQudHh0CmluZGV4
IGQ3YmIyNzY0MmYxZDQ2YmVmYmMyZDAwZmIxYWU1OWQ4ZTA3N2QyMGEuLmMzYzFmNmNkZTViMjEw
ZmM2YTM1NDIwOGYxMGU2MzM0NTI1OWQ4YjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
bXV0YXRpb24vb2JzZXJ2ZS1jaGlsZExpc3QtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1jaGlsZExpc3QtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEs
NCBAQAotVGVzdCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUgb24gYXR0cmlidXRlcy4K
K1Rlc3QgTXV0YXRpb25PYnNlcnZlci5vYnNlcnZlIG9uIGF0dHJpYnV0ZXMuCiAKIE9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlv
bi9vYnNlcnZlLWNoaWxkTGlzdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNl
cnZlLWNoaWxkTGlzdC5odG1sCmluZGV4IGEzYTg0ZDQ0Mzg4NjRhZTcyYjI5YzY4OThjNDQwZTA5
OGQyOGQ5MTIuLmRjNjE4YzZhZjdiMDUyOWFmZmE1OGYxYWZkMGJkNTZjMGE0MzFmNTIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1jaGlsZExpc3QuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtY2hpbGRMaXN0Lmh0bWwKQEAg
LTI0LDcgKzI0LDcgQEAgZnVuY3Rpb24gdGVzdEJhc2ljKCkgewogCiAgICAgICAgIG11dGF0aW9u
cyA9IG51bGw7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwot
ICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0p
IHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7
CiAgICAgICAgICAgICBtdXRhdGlvbnMgPSBtOwogICAgICAgICB9KTsKIApAQCAtODQsNyArODQs
NyBAQCBmdW5jdGlvbiB0ZXN0V3JvbmdUeXBlKCkgewogCiAgICAgICAgIG11dGF0aW9ucyA9IG51
bGw7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgICAg
ICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAg
ICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAg
ICAgICAgICBtdXRhdGlvbnMgPSBtOwogICAgICAgICB9KTsKIApAQCAtMTEzLDcgKzExMyw3IEBA
IGZ1bmN0aW9uIHRlc3RNdWx0aXBsZVJlZ2lzdHJhdGlvbigpIHsKICAgICAgICAgY2FsbHMgPSAw
OwogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25P
YnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2Jz
ZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAg
ICAgIGNhbGxzKys7CiAgICAgICAgIH0pOwpAQCAtMTU0LDEwICsxNTQsMTAgQEAgZnVuY3Rpb24g
dGVzdE11bHRpcGxlT2JzZXJ2ZXJzKCkgewogICAgICAgICBkZWJ1ZygnVGVzdGluZyB0aGF0IG11
bHRpcGxlIG9ic2VydmVycyBjYW4gYmUgcmVnaXN0ZXJlZCB0byBhIGdpdmVuIG5vZGUgYW5kIGJv
dGggcmVjZWl2ZSBtdXRhdGlvbnMuJyk7CiAgICAgICAgIG11dGF0aW9ucyA9IG51bGw7CiAgICAg
ICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgICAgICBvYnNlcnZl
ciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2Jz
ZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICBt
dXRhdGlvbnMgPSBtOwogICAgICAgICB9KTsKLSAgICAgICAgb2JzZXJ2ZXIyID0gbmV3IFdlYktp
dE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlcjIgPSBuZXcg
TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICBtdXRhdGlvbnMyID0g
bTsKICAgICAgICAgfSk7CiAgICAgICAgIG9ic2VydmVyLm9ic2VydmUoZGl2LCB7IGNoaWxkTGlz
dDogdHJ1ZSB9KTsKQEAgLTE5Miw3ICsxOTIsNyBAQCBmdW5jdGlvbiB0ZXN0SW5uZXJIVE1MQW5k
SW5uZXJUZXh0KCkgewogICAgICAgICBkaXYuaW5uZXJIVE1MID0gJzxzcGFuPkZvbzwvc3Bhbj48
ZGl2PkJhcjwvZGl2Pic7CiAgICAgICAgIHJlbW92ZWREaXYxID0gZGl2LmZpcnN0Q2hpbGQ7CiAg
ICAgICAgIHJlbW92ZWREaXYyID0gcmVtb3ZlZERpdjEubmV4dFNpYmxpbmc7Ci0gICAgICAgIG9i
c2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAg
ICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAg
ICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBAIC0yNTAsNyArMjUwLDcgQEAgZnVu
Y3Rpb24gdGVzdFJlcGxhY2VDaGlsZCgpIHsKICAgICAgICAgZGl2LmlubmVySFRNTCA9ICc8c3Bh
bj5Gb288L3NwYW4+PGRpdj5CYXI8L2Rpdj4nOwogICAgICAgICByZW1vdmVkRGl2MSA9IGRpdi5m
aXJzdENoaWxkOwogCi0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2
ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVy
KGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwog
CkBAIC0zMTUsNyArMzE1LDcgQEAgZnVuY3Rpb24gdGVzdEluc2VydEJlZm9yZSgpIHsKICAgICAg
ICAgYWRkZWREaXYxID0gZnJhZ21lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2JykpOwogICAgICAgICBhZGRlZERpdjIgPSBmcmFnbWVudC5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7CiAKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2Vi
S2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3
IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0g
bTsKICAgICAgICAgfSk7CiAKQEAgLTM1Niw3ICszNTYsNyBAQCBmdW5jdGlvbiB0ZXN0QXBwZW5k
Q2hpbGQoKSB7CiAgICAgICAgIGFkZGVkRGl2MSA9IGZyYWdtZW50LmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsKICAgICAgICAgYWRkZWREaXYyID0gZnJhZ21lbnQu
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpOwogCi0gICAgICAgIG9i
c2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAg
ICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAg
ICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBAIC0zODcsNyArMzg3LDcgQEAgZnVu
Y3Rpb24gdGVzdElubmVySFRNTEVtcHR5KCkgewogCiAgICAgICAgIHZhciBkaXYgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKLSAgICAg
ICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlv
bnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbiht
dXRhdGlvbnMpIHsKICAgICAgICAgICAgIHdpbmRvdy5tdXRhdGlvbnMgPSBtdXRhdGlvbnM7CiAg
ICAgICAgIH0pOwogICAgICAgICBvYnNlcnZlci5vYnNlcnZlKGRpdiwge2NoaWxkTGlzdDogdHJ1
ZX0pOwpAQCAtNDE0LDkgKzQxNCw5IEBAIGZ1bmN0aW9uIHJ1bk5leHRUZXN0KCkgewogICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAotZGVzY3JpcHRpb24oJ1Rlc3QgV2ViS2l0TXV0YXRpb25P
YnNlcnZlci5vYnNlcnZlIG9uIGF0dHJpYnV0ZXMuJyk7CitkZXNjcmlwdGlvbignVGVzdCBNdXRh
dGlvbk9ic2VydmVyLm9ic2VydmUgb24gYXR0cmlidXRlcy4nKTsKIAotaWYgKCF3aW5kb3cuV2Vi
S2l0TXV0YXRpb25PYnNlcnZlcikKK2lmICghd2luZG93Lk11dGF0aW9uT2JzZXJ2ZXIpCiAgICAg
dGVzdEZhaWxlZCgnVGhpcyB0ZXN0IHJlcXVpcmVzIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMp
Jyk7CiBlbHNlCiAgICAgcnVuTmV4dFRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvbXV0YXRpb24vb2JzZXJ2ZS1leGNlcHRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1leGNlcHRpb25zLWV4cGVjdGVkLnR4dAppbmRleCA5ZjZl
MzdhOTEwNmYwNjM4MDBhZGQzM2Q3YmUwZTMxMmUwZDE4YjI1Li44YzliNGRlODA4ZWExZWQ5Yjkw
NDM0OTZiYzQ1OTU5NDJmNDM0OGIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0
aW9uL29ic2VydmUtZXhjZXB0aW9ucy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9tdXRhdGlvbi9vYnNlcnZlLWV4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBA
QAotVGVzdCB0aGF0IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSB0aHJvd3MgZXhjZXB0
aW9ucyBhcHByb3ByaWF0ZWx5CitUZXN0IHRoYXQgTXV0YXRpb25PYnNlcnZlci5vYnNlcnZlIHRo
cm93cyBleGNlcHRpb25zIGFwcHJvcHJpYXRlbHkKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtZXhjZXB0
aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWV4Y2VwdGlvbnMu
aHRtbAppbmRleCBkNDY1N2I2ZGQ3YzJlMzMxMjgzZTI4OTI1Y2RmOTBjNWRmNDYyMDU5Li43NjYx
NTQ3YjI3OWZmZmNiYzgzMjdkNTZiYTE5NmZlYjNhMWI1YmViIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtZXhjZXB0aW9ucy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1leGNlcHRpb25zLmh0bWwKQEAgLTExLDcgKzExLDcg
QEAKIDxzY3JpcHQ+CiAKIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgd2luZG93Lm9ic2VydmVy
ID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7IH0pOwor
ICAgIHdpbmRvdy5vYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0
aW9ucykgeyB9KTsKICAgICBzaG91bGRUaHJvdygnb2JzZXJ2ZXIub2JzZXJ2ZSgpJyk7CiAgICAg
c2hvdWxkVGhyb3coJ29ic2VydmVyLm9ic2VydmUobnVsbCknKTsKICAgICBzaG91bGRUaHJvdygn
b2JzZXJ2ZXIub2JzZXJ2ZSh1bmRlZmluZWQpJyk7CkBAIC0yNiw5ICsyNiw5IEBAIGZ1bmN0aW9u
IHJ1blRlc3QoKSB7CiAgICAgc2hvdWxkVGhyb3coJ29ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQu
Ym9keSwge2NoYXJhY3RlckRhdGE6IHRydWUsIGF0dHJpYnV0ZUZpbHRlcjogWyJpZCJdfSknKTsK
IH0KIAotZGVzY3JpcHRpb24oJ1Rlc3QgdGhhdCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLm9ic2Vy
dmUgdGhyb3dzIGV4Y2VwdGlvbnMgYXBwcm9wcmlhdGVseScpOworZGVzY3JpcHRpb24oJ1Rlc3Qg
dGhhdCBNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUgdGhyb3dzIGV4Y2VwdGlvbnMgYXBwcm9wcmlh
dGVseScpOwogCi1pZiAoIXdpbmRvdy5XZWJLaXRNdXRhdGlvbk9ic2VydmVyKQoraWYgKCF3aW5k
b3cuTXV0YXRpb25PYnNlcnZlcikKICAgICB0ZXN0RmFpbGVkKCdUaGlzIHRlc3QgcmVxdWlyZXMg
RU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUyknKTsKIGVsc2UKICAgICBydW5UZXN0KCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtc3VidHJlZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtc3VidHJlZS1leHBlY3Rl
ZC50eHQKaW5kZXggYjg5NGRjZGExYjNmNmQyZDM0OWJkN2M0YTlhNGNkMDY5YTRlNjllZC4uNjUz
YzdhNDgyMjFjOTNlMTlkNzYyOGFhNmNmODY4OTRmMjkxMjIwMCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLXN1YnRyZWUtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1zdWJ0cmVlLWV4cGVjdGVkLnR4dApAQCAt
MSw0ICsxLDQgQEAKLVRlc3QgV2ViS2l0TXV0YXRpb25PYnNlcnZlci5vYnNlcnZlIG9uIGEgc3Vi
dHJlZQorVGVzdCBNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUgb24gYSBzdWJ0cmVlCiAKIE9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRh
dGlvbi9vYnNlcnZlLXN1YnRyZWUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2Jz
ZXJ2ZS1zdWJ0cmVlLmh0bWwKaW5kZXggMzdlNDAyODVlMmI4YjcxZDIyMjZmZDM2MTgxZGE0Yjg1
M2EyMDU3Mi4uOTU1MTk0N2E0YzMyOGY1YTgzNDg0YzY0ZmU5NDUzY2EwMmQ2NTZhMiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLXN1YnRyZWUuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtc3VidHJlZS5odG1sCkBAIC0yNyw3
ICsyNyw3IEBAIGZ1bmN0aW9uIHRlc3RCYXNpYygpIHsKICAgICAgICAgZGl2ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgIHN1YkRpdiA9IGRpdi5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7CiAgICAgICAgIHN1YkRpdi5pbm5lckhUTUwg
PSAnaGVsbG8sIHdvcmxkJzsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25P
YnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0
YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICAgICAgICAgIHdpbmRvdy5t
dXRhdGlvbnMgPSBtdXRhdGlvbnM7CiAgICAgICAgIH0pOwogCkBAIC02NiwxMCArNjYsMTAgQEAg
ZnVuY3Rpb24gdGVzdE11bHRpcGxlT2JzZXJ2ZXJzKCkgewogICAgICAgICBtdXRhdGlvbnMyID0g
bnVsbDsKICAgICAgICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAg
ICAgIHN1YkRpdiA9IGRpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KSk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rp
b24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIo
ZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0
YXRpb25zOwogICAgICAgICB9KTsKLSAgICAgICAgb2JzZXJ2ZXIyID0gbmV3IFdlYktpdE11dGF0
aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyMiA9IG5l
dyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICAgICAgd2lu
ZG93Lm11dGF0aW9uczIgPSBtdXRhdGlvbnM7CiAgICAgICAgIH0pOwogCkBAIC0xMDksNyArMTA5
LDcgQEAgZnVuY3Rpb24gdGVzdE11bHRpcGxlT2JzZXJ2YXRpb25zKCkgewogICAgICAgICBjYWxs
cyA9IDA7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAg
ICAgICBzdWJEaXYgPSBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2
JykpOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0
aW9uKG11dGF0aW9ucykgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVy
KGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11
dGF0aW9uczsKICAgICAgICAgICAgICsrY2FsbHM7CiAgICAgICAgIH0pOwpAQCAtMTQ1LDcgKzE0
NSw3IEBAIGZ1bmN0aW9uIHRlc3RUcmFuc2llbnREZXRhY2hlZEJhc2ljKCkgewogICAgICAgICBk
aXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgc3ViRGl2ID0gZGl2
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsKICAgICAgICAgc3Vi
RGl2LmlubmVySFRNTCA9ICdoZWxsbywgd29ybGQnOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBvYnNl
cnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAg
ICAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAKQEAgLTIz
MCw3ICsyMzAsNyBAQCBmdW5jdGlvbiB0ZXN0VHJhbnNpZW50RGV0YWNoZWREZXRhaWxlZCgpIHsK
ICAgICAgICAgc3ViRGl2Mi5pbm5lckhUTUwgPSAnaGVsbG8sIHdvcmxkJzsKICAgICAgICAgc3Vi
RGl2MyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogCi0gICAgICAgIG9ic2VydmVy
ID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAg
ICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7
CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0YXRpb25zOwogICAgICAgICB9KTsK
IApAQCAtMjk2LDkgKzI5Niw5IEBAIGZ1bmN0aW9uIHJ1bk5leHRUZXN0KCkgewogICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKIH0KIAotZGVzY3JpcHRpb24oJ1Rlc3QgV2ViS2l0TXV0YXRpb25PYnNl
cnZlci5vYnNlcnZlIG9uIGEgc3VidHJlZScpOworZGVzY3JpcHRpb24oJ1Rlc3QgTXV0YXRpb25P
YnNlcnZlci5vYnNlcnZlIG9uIGEgc3VidHJlZScpOwogCi1pZiAoIXdpbmRvdy5XZWJLaXRNdXRh
dGlvbk9ic2VydmVyKQoraWYgKCF3aW5kb3cuTXV0YXRpb25PYnNlcnZlcikKICAgICB0ZXN0RmFp
bGVkKCdUaGlzIHRlc3QgcmVxdWlyZXMgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUyknKTsKIGVs
c2UKICAgICBydW5OZXh0VGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRh
dGlvbi9zaGFkb3ctZG9tLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL3NoYWRvdy1k
b20uaHRtbAppbmRleCA2NmM3OWVhYzAwZjk1OTYwYTA0MzFjZTJiMjk1MjJjYTA3NTZiZmFiLi43
MzE3ZDdhNzU5MDkwYTY1MTMyNTExY2NiZjRmNTE4MGEwNDU1ZGUyIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L211dGF0aW9uL3NoYWRvdy1kb20uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L211dGF0aW9uL3NoYWRvdy1kb20uaHRtbApAQCAtMTQsNyArMTQsNyBAQCBmdW5jdGlvbiBk
b1Rlc3QoKSB7CiAgICAgfQogCiAgICAgdmFyIHNoYWRvd1Jvb3QgPSBpbnRlcm5hbHMuc2hhZG93
Um9vdChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpKTsKLSAgICB2YXIgb2JzZXJ2ZXIg
PSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICB2
YXIgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsK
ICAgICAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICB9KTsKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi90YWtlUmVjb3Jkcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL3Rha2VSZWNvcmRzLWV4cGVjdGVkLnR4dAppbmRl
eCBhYzY0NDI2YWIxM2FlMmUxYzkwMzhkZmI2M2I3OTEyZDNhMDY1ZWY3Li45ZjMzMjYxNGY0MzZl
MWMyMTFmOGE1MmQ2NzcwNjcyOGFjYTE1NGQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L211dGF0aW9uL3Rha2VSZWNvcmRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L211dGF0aW9uL3Rha2VSZWNvcmRzLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKLVRlc3Rp
bmcgV2ViS2l0TXV0YXRpb25PYnNlcnZlci50YWtlUmVjb3JkcworVGVzdGluZyBNdXRhdGlvbk9i
c2VydmVyLnRha2VSZWNvcmRzCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi90YWtlUmVjb3Jkcy5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9tdXRhdGlvbi90YWtlUmVjb3Jkcy5odG1sCmluZGV4IDAzOWEzMmZiZDkxMTgw
YmE4ZDY2YzE3ZGI4NTcyYzNlNDU0NGNiYzIuLjYzNDE4MGE1OWNlNTRkZDNjNjc1MmU5ZWFjYmYz
N2QwOWNlMjIwMGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vdGFrZVJl
Y29yZHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL3Rha2VSZWNvcmRzLmh0
bWwKQEAgLTIzLDcgKzIzLDcgQEAgZnVuY3Rpb24gdGVzdEJhc2ljKCkgewogICAgICAgICBkaXYg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgc3ViRGl2ID0gZGl2LmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsKICAgICAgICAgc3ViRGl2
LmlubmVySFRNTCA9ICdoZWxsbywgd29ybGQnOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJL
aXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBvYnNlcnZl
ciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICAg
ICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAKQEAgLTczLDkg
KzczLDkgQEAgZnVuY3Rpb24gcnVuTmV4dFRlc3QoKSB7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgp
OwogfQogCi1kZXNjcmlwdGlvbignVGVzdGluZyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLnRha2VS
ZWNvcmRzJyk7CitkZXNjcmlwdGlvbignVGVzdGluZyBNdXRhdGlvbk9ic2VydmVyLnRha2VSZWNv
cmRzJyk7CiAKLWlmICghd2luZG93LldlYktpdE11dGF0aW9uT2JzZXJ2ZXIpCitpZiAoIXdpbmRv
dy5NdXRhdGlvbk9ic2VydmVyKQogICAgIHRlc3RGYWlsZWQoJ1RoaXMgdGVzdCByZXF1aXJlcyBF
TkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKScpOwogZWxzZQogICAgIHJ1bk5leHRUZXN0KCk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL3RyYW5zaWVudC1nYy1jcmFzaC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi90cmFuc2llbnQtZ2MtY3Jhc2guaHRtbApp
bmRleCA2YzEzNjQyZDc2OGExMTgyOWJiZjhhYjU5YTFlZmMxMjA5ZWFmNTEzLi42Y2U2ZWI4YzNh
ZmVjYTQ2YWMyNTIyNWRiMmQxNWJmMDY5MDE0NWI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L211dGF0aW9uL3RyYW5zaWVudC1nYy1jcmFzaC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvbXV0YXRpb24vdHJhbnNpZW50LWdjLWNyYXNoLmh0bWwKQEAgLTYsNyArNiw3IEBAIGRlc2Ny
aXB0aW9uKCdDbGVhcmluZyB0cmFuc2llbnQgb2JzZXJ2ZXJzIGFmdGVyIG9ic2VydmF0aW9uIG5v
ZGUgaXMgR0NlZCBzaG91bGQKIGZ1bmN0aW9uIGNhbGxiYWNrKG11dGF0aW9ucykgewogICAgIHdp
bmRvdy5tdXRhdGlvbnMgPSBtdXRhdGlvbnM7CiB9Ci12YXIgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0
TXV0YXRpb25PYnNlcnZlcihjYWxsYmFjayk7Cit2YXIgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25P
YnNlcnZlcihjYWxsYmFjayk7CiAKIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKTsKIHZhciBzcGFuID0gZGl2LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J3NwYW4nKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149584</attachid>
            <date>2012-06-26 12:18:11 -0700</date>
            <delta_ts>2012-06-26 12:51:30 -0700</delta_ts>
            <desc>Disable by default on not-fully-supported platforms</desc>
            <filename>bug-89231-20120626121810.patch</filename>
            <type>text/plain</type>
            <size>181913</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxMjczCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
MmFhNDI3Y2Q4ZmUzOGI5NWNiODdmMGQ0YWI3YTdlOGMxODBlNTYzLi5mODkzMGEzZWYxMzAwNDli
OTdkYzhmMDQ3NTZhNTdkZjg1ZTExODVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxMi0wNi0yNiAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZW1vdmUgdmVuZG9yIHByZWZpeCBmcm9tIERPTSBNdXRhdGlvbk9ic2VydmVy
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkyMzEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZp
Z3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDEyLTA2LTI2ICBGaWxpcCBQ
aXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgTmV3IGZhc3QvanMvZGZnLXN0b3Jl
LXVuZXhwZWN0ZWQtdmFsdWUtaW50by1hcmd1bWVudC1hbmQtb3NyLWV4aXQuaHRtbCBmYWlscyBv
biAzMiBiaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4OGQ1NDA0ZWEyYWE3ZDM1MjQwODQwNjMzNzY4MzY4MWJj
YmI3MmMzLi45ZTNkNDViNjU5MGRkYTQ0OGNmMWYyN2M1ZTEyNmRhM2U1YWQ3MGYzIDEwMDc1NQot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTEzIEBACisyMDEyLTA2LTE1ICBBZGFtIEtsZWluICA8YWRhbWtAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJlbW92ZSB2ZW5kb3IgcHJlZml4IGZyb20gRE9NIE11dGF0
aW9uT2JzZXJ2ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04OTIzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE11dGF0aW9uT2JzZXJ2ZXJzIGhhdmUgYmVlbiBzcGVjaWZpZWQgYXMgcGFydCBvZiBET000
IGZvciBzb21lIHRpbWUgbm93LAorICAgICAgICBhbmQgTW96aWxsYSBpcyBzaGlwcGluZyBhIGNv
bXBhdGlibGUgaW1wbGVtZW50YXRpb24gd2l0aG91dCBhIHZlbmRvcgorICAgICAgICBwcmVmaXgu
IFRoaXMgY2hhbmdlIGV4cG9zZXMgdGhlIE11dGF0aW9uT2JzZXJ2ZXIgY29uc3RydWN0b3Igb24g
dGhlCisgICAgICAgIFdpbmRvdyBvYmplY3QuIEFsbCByZWZlcmVuY2VzIHRvIHRoZSBvbGQgcHJl
Zml4ZWQgbmFtZSBoYXZlIGJlZW4KKyAgICAgICAgcmVtb3ZlZCwgc2F2ZSBmb3IgYSBiYWNrd2Fy
ZHMtY29tcGF0aWJpbGl0eSByZWZlcmVuY2UgaW4gRE9NV2luZG93LmlkbC4KKworICAgICAgICBT
aW5jZSBub3QgYWxsIHBvcnRzIGZ1bGx5IGltcGxlbWVudCB0aGUgc3BlYywgdGhpcyBjaGFuZ2Ug
YWxzbyBuYXJyb3dzCisgICAgICAgIHRoZSBwb3J0cyBmb3Igd2hpY2ggRU5BQkxFX01VVEFUSU9O
X09CU0VSVkVSUyBpcyBvbiBieSBkZWZhdWx0IHRvCisgICAgICAgIENocm9taXVtLCBFZmwsIGFu
ZCBHdGsgKHRob3NlIHN1cHBvcnQgZW5kLW9mLXRhc2sgZGVsaXZlcnkgaW4KKyAgICAgICAgRFJU
LCBzZWUgaHR0cDovL3dlYmtpdC5vcmcvYi83ODI5MCkuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LCBubyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorICAg
ICAgICAqIERlcml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtl
OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToK
KyAgICAgICAgKiBVc2VKU0MuY21ha2U6CisgICAgICAgICogVXNlVjguY21ha2U6CisgICAgICAg
ICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU01haW5U
aHJlYWRFeGVjU3RhdGU6OmRpZExlYXZlU2NyaXB0Q29udGV4dCk6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpT
TXV0YXRpb25DYWxsYmFjazo6aGFuZGxlRXZlbnQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwLgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpKU011dGF0aW9uT2JzZXJ2ZXJDb25zdHJ1Y3Rv
cjo6Y29uc3RydWN0SlNNdXRhdGlvbk9ic2VydmVyKToKKyAgICAgICAgKEJvb2xlYW5PcHRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6SlNNdXRhdGlvbk9ic2VydmVyOjpvYnNlcnZlKToKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9WOFJlY3Vyc2lvblNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlY4UmVjdXJzaW9uU2NvcGU6OmRpZExlYXZlU2NyaXB0Q29udGV4dCk6CisgICAgICAgICogYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpWOE11dGF0aW9uQ2FsbGJhY2s6OmhhbmRsZUV2ZW50KToKKyAgICAgICAgKiBiaW5k
aW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcDogUmVuYW1lZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdE11dGF0aW9uT2JzZXJ2
ZXJDdXN0b20uY3BwLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpWOE11
dGF0aW9uT2JzZXJ2ZXI6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6
VjhNdXRhdGlvbk9ic2VydmVyOjpvYnNlcnZlQ2FsbGJhY2spOgorICAgICAgICAqIGRvbS9DaGFy
YWN0ZXJEYXRhLmNwcDoKKyAgICAgICAgKiBkb20vQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6Q2hpbGRMaXN0TXV0YXRpb25TY29wZTo6Q2hpbGRMaXN0TXV0YXRp
b25TY29wZSk6CisgICAgICAgICogZG9tL0RPTUFsbEluT25lLmNwcDoKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpoYXNNdXRhdGlvbk9ic2Vy
dmVyc09mVHlwZSk6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAqIGRvbS9N
dXRhdGlvbkNhbGxiYWNrLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE11dGF0aW9u
Q2FsbGJhY2spOgorICAgICAgICAqIGRvbS9NdXRhdGlvbkNhbGxiYWNrLmlkbDoKKyAgICAgICAg
KiBkb20vTXV0YXRpb25PYnNlcnZlci5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9k
b20vV2ViS2l0TXV0YXRpb25PYnNlcnZlci5jcHAuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6Ok9ic2VydmVyTGVzc1RoYW46Om9wZXJhdG9y
KCkpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uT2JzZXJ2ZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6fk11dGF0aW9uT2JzZXJ2ZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6dmFsaWRhdGVPcHRpb25zKToKKyAgICAgICAg
KFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6Om9ic2VydmUpOgorICAgICAgICAoV2ViQ29yZTo6
TXV0YXRpb25PYnNlcnZlcjo6dGFrZVJlY29yZHMpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRp
b25PYnNlcnZlcjo6ZGlzY29ubmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2Vy
dmVyOjpvYnNlcnZhdGlvblN0YXJ0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNl
cnZlcjo6b2JzZXJ2YXRpb25FbmRlZCk6CisgICAgICAgIChXZWJDb3JlOjphY3RpdmVNdXRhdGlv
bk9ic2VydmVycyk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyOjplbnF1ZXVl
TXV0YXRpb25SZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6c2V0
SGFzVHJhbnNpZW50UmVnaXN0cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2Jz
ZXJ2ZXI6OmRlbGl2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6ZGVs
aXZlckFsbE11dGF0aW9ucyk6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXIuaDogUmVu
YW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmguCisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE11dGF0aW9uT2JzZXJ2ZXIpOgorICAgICAgICAq
IGRvbS9NdXRhdGlvbk9ic2VydmVyLmlkbDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Rv
bS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmlkbC4KKyAgICAgICAgKiBkb20vTXV0YXRpb25PYnNl
cnZlckludGVyZXN0R3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZl
ckludGVyZXN0R3JvdXA6OmNyZWF0ZUlmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0
aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cCk6
CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6aXNPbGRW
YWx1ZVJlcXVlc3RlZCk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVySW50ZXJl
c3RHcm91cDo6ZW5xdWV1ZU11dGF0aW9uUmVjb3JkKToKKyAgICAgICAgKiBkb20vTXV0YXRpb25P
YnNlcnZlckludGVyZXN0R3JvdXAuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2
ZXJJbnRlcmVzdEdyb3VwOjpjcmVhdGVGb3JDaGlsZExpc3RNdXRhdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlRm9yQ2hhcmFjdGVy
RGF0YU11dGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVz
dEdyb3VwOjpjcmVhdGVGb3JBdHRyaWJ1dGVzTXV0YXRpb24pOgorICAgICAgICAoTXV0YXRpb25P
YnNlcnZlckludGVyZXN0R3JvdXApOgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVyUmVn
aXN0cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJSZWdpc3Ry
YXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyUmVnaXN0
cmF0aW9uOjpNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
Ok11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb246OnNob3VsZFJlY2VpdmVNdXRhdGlvbkZyb20p
OgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmg6CisgICAgICAg
IChNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0
aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb246OmlzU3VidHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpN
dXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjpvYnNlcnZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjpkZWxpdmVyeU9wdGlvbnMpOgorICAgICAg
ICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6bXV0YXRpb25UeXBlcyk6
CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6Y29sbGVj
dE1hdGNoaW5nT2JzZXJ2ZXJzRm9yTXV0YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6
Z2V0UmVnaXN0ZXJlZE11dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok5vZGU6OnJlZ2lzdGVyTXV0YXRpb25PYnNlcnZlcik6CisgICAgICAgICogZG9tL05vZGUuaDoK
KyAgICAgICAgKE5vZGUpOgorICAgICAgICAqIGRvbS9Ob2RlUmFyZURhdGEuaDoKKyAgICAgICAg
KiBwYWdlL0RPTVdpbmRvdy5pZGw6CisKIDIwMTItMDYtMjYgIElhbiBWb2xsaWNrICA8dm9sbGlj
a0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBMYXllciBjaHJvbWl1bSBzaG91
bGQgbmVlZCBhIHJlZHJhdyBhZnRlciBnZXR0aW5nIGl0cyBmaXJzdCBub24tZW1wdHkgYm91bmRz
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAwMjUwMzA0MzA3YzU5ZmI1ODkyMjAzZjYx
MjJjZmIyYzNkZDVkODI1Li5hYmQyMzNkZDhiOTI5YjVjNzhkNmJkNjcyYzJkYjEwNzVkYzZkZjA4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEyLTA2LTE1
ICBBZGFtIEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbW92ZSB2ZW5k
b3IgcHJlZml4IGZyb20gRE9NIE11dGF0aW9uT2JzZXJ2ZXJzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTIzMQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3JjL1dlYktpdC5jcHA6CisKIDIwMTItMDYt
MjYgIElhbiBWb2xsaWNrICA8dm9sbGlja0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9t
aXVtXSBMYXllciBjaHJvbWl1bSBzaG91bGQgbmVlZCBhIHJlZHJhdyBhZnRlciBnZXR0aW5nIGl0
cyBmaXJzdCBub24tZW1wdHkgYm91bmRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDAwMWEwM2M1MThh
NzAzYjUyNWEwYzI4MmQwM2Y5NGUzYWY2YjRmODcuLjA5MGRlZDIzYTViMGZhOTVhYjQ0N2U4OGEy
NWQ4MjVjYzg4ODU5ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0w
Ni0xNSAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZW1vdmUg
dmVuZG9yIHByZWZpeCBmcm9tIERPTSBNdXRhdGlvbk9ic2VydmVycworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkyMzEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydEVmbC5jcHA6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6
OmRlbGl2ZXJBbGxNdXRhdGlvbnNJZk5lY2Vzc2FyeSk6CisKIDIwMTItMDYtMjUgIEd5dXlvdW5n
IEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXSBJbXBsZW1l
bnQgTmV0d29yayBJbmZvcm1hdGlvbiBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBmMjQ3OGQ1YTIz
M2RhNWMwODhlMDg5YmZmYjFkODA5NzViNGU5ODNjLi5kOWU2MTM5NjIxMzJhMDkwZjhhM2E1NTk5
MzA5ZjM5ZDJhNmU4MWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTIt
MDYtMTUgIEFkYW0gS2xlaW4gIDxhZGFta0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVtb3Zl
IHZlbmRvciBwcmVmaXggZnJvbSBET00gTXV0YXRpb25PYnNlcnZlcnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5MjMxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
OjpkZWxpdmVyQWxsTXV0YXRpb25zSWZOZWNlc3NhcnkpOgorCiAyMDEyLTA2LTI1ICBDYXJsb3Mg
R2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2Vk
LiBVcGRhdGUgTkVXUyBhbmQgY29uZmlndXJlLmFjIGZvciAxLjkuNCByZWxlYXNlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKaW5kZXggNjA2YmNlYjgzMzJlYjIyNzQxMjk4OGU1Yjk0MjE0NjIwOGI4OGFhNi4uZDky
NGJhMWU1MjkzNTJhZTA5YWM5ZDFjYTlhY2JlNDI5Yzg3MDVmMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEyIEBACisyMDEyLTA2LTI2ICBBZGFtIEtsZWluICA8YWRhbWtAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJlbW92ZSB2ZW5kb3IgcHJlZml4IGZyb20gRE9NIE11dGF0aW9uT2Jz
ZXJ2ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
OTIzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisKIDIwMTItMDYtMjMgIFNo
ZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMjEwNTguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMDY3Yjk4ODM1YzM5OGU2
MWIxY2YxNzIzOTUzNjY1OTU5M2ZmNjczMi4uMzcwMjdhZWE3YWM2MjI5OWU4NWI5YjZmY2I4Mzgy
YzI3OGE4ZTUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEyLTA2LTI2ICBBZGFt
IEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbW92ZSB2ZW5kb3IgcHJl
Zml4IGZyb20gRE9NIE11dGF0aW9uT2JzZXJ2ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTIzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWc6CisKIDIwMTItMDYtMjYgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6
QGludGVsLmNvbT4KIAogICAgICAgICBbV0syXVtHVEtdIFVuaW5pdGlhbGl6ZWQgdmFyaWFibGUg
aW4gVGV4dENoZWNrZXJHdGsuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggYWUyYzM5
M2IxN2MyYjA5YjJhNTI3OTE0YTUzZWNlOTFkZDczZmM1ZC4uNDgzNWI0MjM2NDk3NjNjMmViMWQx
MmQxZjJmOGE5MmI5NDU1MDVlZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtOTksNyAr
OTksNyBAQCBFTkFCTEVfTUVESUFfU1RBVElTVElDUyA9IDsKIEVOQUJMRV9NRVRFUl9UQUcgPSBF
TkFCTEVfTUVURVJfVEFHOwogRU5BQkxFX01IVE1MID0gOwogRU5BQkxFX01JQ1JPREFUQSA9IDsK
LUVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMgPSBFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTOwor
RU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUyA9IDsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gJChF
TkFCTEVfTk9USUZJQ0FUSU9OU18kKFJFQUxfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX05PVElG
SUNBVElPTlNfbWFjb3N4ID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU19tYWNvc3hfJChUQVJHRVRf
TUFDX09TX1hfVkVSU0lPTl9NQUpPUikpOwogRU5BQkxFX05PVElGSUNBVElPTlNfbWFjb3N4XzEw
NzAgPSA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDZkM2RhN2Y4YzI0YjQ2MjdjNWYxMjMzOTk4
ZGYzNzBlNTEzNDQzZjcuLmEzMjdlY2UyYjgxMzM4MTkzNjE3YzhkNjgyYzRlOTcxZTk0NGI3MDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yMjIsNiArMjIyLDcgQEAgU0VUKFdlYkNvcmVfSURM
X0ZJTEVTCiAgICAgZG9tL01vdXNlRXZlbnQuaWRsCiAgICAgZG9tL011dGF0aW9uQ2FsbGJhY2su
aWRsCiAgICAgZG9tL011dGF0aW9uRXZlbnQuaWRsCisgICAgZG9tL011dGF0aW9uT2JzZXJ2ZXIu
aWRsCiAgICAgZG9tL011dGF0aW9uUmVjb3JkLmlkbAogICAgIGRvbS9OYW1lZE5vZGVNYXAuaWRs
CiAgICAgZG9tL05vZGVGaWx0ZXIuaWRsCkBAIC0yNDUsNyArMjQ2LDYgQEAgU0VUKFdlYkNvcmVf
SURMX0ZJTEVTCiAgICAgZG9tL1RyZWVXYWxrZXIuaWRsCiAgICAgZG9tL1VJRXZlbnQuaWRsCiAg
ICAgZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50LmlkbAotICAgIGRvbS9XZWJLaXRNdXRhdGlvbk9i
c2VydmVyLmlkbAogICAgIGRvbS9XZWJLaXROYW1lZEZsb3cuaWRsCiAgICAgZG9tL1dlYktpdFRy
YW5zaXRpb25FdmVudC5pZGwKICAgICBkb20vV2hlZWxFdmVudC5pZGwKQEAgLTYxMiw2ICs2MTIs
NyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL01vdXNlRXZlbnQuY3BwCiAgICAgZG9t
L01vdXNlUmVsYXRlZEV2ZW50LmNwcAogICAgIGRvbS9NdXRhdGlvbkV2ZW50LmNwcAorICAgIGRv
bS9NdXRhdGlvbk9ic2VydmVyLmNwcAogICAgIGRvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RH
cm91cC5jcHAKICAgICBkb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAKICAgICBk
b20vTXV0YXRpb25SZWNvcmQuY3BwCkBAIC02NjUsNyArNjY2LDYgQEAgU0VUKFdlYkNvcmVfU09V
UkNFUwogICAgIGRvbS9Vc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvci5jcHAKICAgICBkb20vVmll
d3BvcnRBcmd1bWVudHMuY3BwCiAgICAgZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50LmNwcAotICAg
IGRvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmNwcAogICAgIGRvbS9XZWJLaXROYW1lZEZsb3cu
Y3BwCiAgICAgZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5jcHAKICAgICBkb20vV2hlZWxFdmVu
dC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWcKaW5kZXggYjFiODQ5NjZkOWI0MjFlZDk2ZDI4ZjI0YzJhZTZmNGNkY2Iw
OGYyNy4uNjFkMmFmNTY3ZTI1MmM3YWJlZWU2YzNmZTJhMGUzOWZhN2JjMTk2MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcK
KysrIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWcKQEAgLTEwMCw3ICsxMDAsNyBAQCBFTkFCTEVfTUVESUFfU1RBVElTVElDUyA9IDsKIEVOQUJM
RV9NRVRFUl9UQUcgPSBFTkFCTEVfTUVURVJfVEFHOwogRU5BQkxFX01IVE1MID0gOwogRU5BQkxF
X01JQ1JPREFUQSA9IDsKLUVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMgPSBFTkFCTEVfTVVUQVRJ
T05fT0JTRVJWRVJTOworRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUyA9IDsKIEVOQUJMRV9OT1RJ
RklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFJFQUxfUExBVEZPUk1fTkFNRSkp
OwogRU5BQkxFX05PVElGSUNBVElPTlNfbWFjb3N4ID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU19t
YWNvc3hfJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUikpOwogRU5BQkxFX05PVElGSUNB
VElPTlNfbWFjb3N4XzEwNzAgPSA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKaW5kZXggOGU4
MTBiOTBlMzZmMDIzZDI2ODBkNjE5OGVlMTk3NTAzNDZjMjNmNi4uMTZmNmUxNTJlMzNjOTM2Zjc3
OGM4MGE0ZTE0MGFmZDY5YzBhYmExNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcApAQCAt
MjQ0LDYgKzI0NCw3IEBACiAjaW5jbHVkZSAiSlNNb3VzZUV2ZW50LmNwcCIKICNpbmNsdWRlICJK
U011dGF0aW9uQ2FsbGJhY2suY3BwIgogI2luY2x1ZGUgIkpTTXV0YXRpb25FdmVudC5jcHAiCisj
aW5jbHVkZSAiSlNNdXRhdGlvbk9ic2VydmVyLmNwcCIKICNpbmNsdWRlICJKU011dGF0aW9uUmVj
b3JkLmNwcCIKICNpbmNsdWRlICJKU05hbWVkTm9kZU1hcC5jcHAiCiAjaW5jbHVkZSAiSlNOYXZp
Z2F0b3IuY3BwIgpAQCAtNDc3LDcgKzQ3OCw2IEBACiAjaW5jbHVkZSAiSlNXZWJLaXRDU1NUcmFu
c2Zvcm1WYWx1ZS5jcHAiCiAjaW5jbHVkZSAiSlNXZWJLaXRDU1NNYXRyaXguY3BwIgogI2luY2x1
ZGUgIkpTV2ViS2l0Q1NTUmVnaW9uUnVsZS5jcHAiCi0jaW5jbHVkZSAiSlNXZWJLaXRNdXRhdGlv
bk9ic2VydmVyLmNwcCIKICNpbmNsdWRlICJKU1dlYktpdE5hbWVkRmxvdy5jcHAiCiAjaW5jbHVk
ZSAiSlNXZWJLaXRQb2ludC5jcHAiCiAjaW5jbHVkZSAiSlNXZWJLaXRUcmFuc2l0aW9uRXZlbnQu
Y3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggMDNmNDAwNGZhOGJmMWE1ZTFm
MzJjNGNlOThkNmZhZTA0MDljNGE2Ny4uM2FlMzQxMmI5ZDAyODY4ZDdhZTU3OTBjNmJiNWY4MmM2
MWI1YjQ1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0yMjQsNiArMjI0LDcg
QEAgQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvZG9tL01vdXNlRXZlbnQuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL2RvbS9NdXRhdGlvbkNhbGxiYWNrLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9kb20vTXV0YXRpb25FdmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvZG9tL011dGF0aW9uT2Jz
ZXJ2ZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9NdXRhdGlvblJlY29yZC5pZGwgXAogICAg
ICQoV2ViQ29yZSkvZG9tL05hbWVkTm9kZU1hcC5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL05v
ZGUuaWRsIFwKQEAgLTI0OSw3ICsyNTAsNiBAQCBCSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJD
b3JlKS9kb20vVHJlZVdhbGtlci5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL1VJRXZlbnQuaWRs
IFwKICAgICAkKFdlYkNvcmUpL2RvbS9XZWJLaXRBbmltYXRpb25FdmVudC5pZGwgXAotICAgICQo
V2ViQ29yZSkvZG9tL1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaWRsIFwKICAgICAkKFdlYkNvcmUp
L2RvbS9XZWJLaXROYW1lZEZsb3cuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9XZWJLaXRUcmFu
c2l0aW9uRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9XaGVlbEV2ZW50LmlkbCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAyYTE0MzE2NjM0NTQ3ZjA0MmUzMjEyNTll
MGRiNTJlYjQ5ZDM1MmNlLi43NzQ0ZTIyMWU4MjE3NTliMDc3ZjQ0ODJkNTQwNGQ1YWJlNTY2MzFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTQwNSw2ICs0MDUsOCBAQCB3ZWJj
b3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlv
bkNhbGxiYWNrLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvbkV2ZW50LmNw
cCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uRXZlbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uT2JzZXJ2ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTTXV0YXRpb25PYnNlcnZlci5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTTXV0YXRpb25SZWNvcmQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRp
b25SZWNvcmQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU05hbWVkTm9kZU1hcC5jcHAg
XApAQCAtNjE2LDggKzYxOCw2IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdENTU1JlZ2lvblJ1bGUuaCBcCiAJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCBcCiAJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmggXAotCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1dlYktpdE5hbWVkRmxvdy5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNX
ZWJLaXROYW1lZEZsb3cuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdFBvaW50
LmNwcCBcCkBAIC03NjgsNiArNzY4LDcgQEAgZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJJChXZWJD
b3JlKS9kb20vTW91c2VFdmVudC5pZGwgXAogCSQoV2ViQ29yZSkvZG9tL011dGF0aW9uQ2FsbGJh
Y2suaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9NdXRhdGlvbkV2ZW50LmlkbCBcCisJJChXZWJDb3Jl
KS9kb20vTXV0YXRpb25PYnNlcnZlci5pZGwgXAogCSQoV2ViQ29yZSkvZG9tL011dGF0aW9uUmVj
b3JkLmlkbCBcCiAJJChXZWJDb3JlKS9kb20vTmFtZWROb2RlTWFwLmlkbCBcCiAJJChXZWJDb3Jl
KS9kb20vTm9kZS5pZGwgXApAQCAtNzkxLDcgKzc5Miw2IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0g
XAogCSQoV2ViQ29yZSkvZG9tL1RyZWVXYWxrZXIuaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9VSUV2
ZW50LmlkbCBcCiAJJChXZWJDb3JlKS9kb20vV2ViS2l0QW5pbWF0aW9uRXZlbnQuaWRsIFwKLQkk
KFdlYkNvcmUpL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmlkbCBcCiAJJChXZWJDb3JlKS9k
b20vV2ViS2l0TmFtZWRGbG93LmlkbCBcCiAJJChXZWJDb3JlKS9kb20vV2ViS2l0VHJhbnNpdGlv
bkV2ZW50LmlkbCBcCiAJJChXZWJDb3JlKS9kb20vV2hlZWxFdmVudC5pZGwgXApAQCAtMTQ1MCw2
ICsxNDUwLDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNNZXNzYWdlUG9ydEN1c3RvbS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTm9kZUN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9k
ZUN1c3RvbS5oIFwKQEAgLTE0OTQsNyArMTQ5NSw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJ
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGVDdXN0b20u
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdENTU0tleWZyYW1lc1J1
bGVDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVy
aW5nQ29udGV4dEN1c3RvbS5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2Vi
S2l0TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV2ViS2l0UG9pbnRDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1dlYlNvY2tldEN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
V29ya2VyQ29udGV4dEJhc2UuY3BwIFwKQEAgLTE5MjgsNiArMTkyOCw4IEBAIHdlYmNvcmVfc291
cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uQ2FsbGJhY2suaCBcCiAJU291
cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uRXZlbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20v
TXV0YXRpb25FdmVudC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5j
cHAgXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmggXAogCVNvdXJjZS9X
ZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAgXApAQCAtMjAzOCw4ICsy
MDQwLDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vVmlld3Bv
cnRBcmd1bWVudHMuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50LmggXAotCVNv
dXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmNwcCBcCi0JU291cmNlL1dl
YkNvcmUvZG9tL1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9t
L1dlYktpdE5hbWVkRmxvdy5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZs
b3cuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5jcHAgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKaW5kZXggNGZhNzI1NzdlYWIxNjY1ZGYzYzI2YjQyMTYxNDYxZDM4MmU2ZDZhZC4u
YjE2Mjg0NTRiOTJhZDY0NTE5NTBmMTE0MjY5OTRlNGJjZDY0ZGRhOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBA
IC0yMDEsNiArMjAxLDcgQEAgdjggewogICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhNZXNz
YWdlUG9ydEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdl
RXZlbnRDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25D
YWxsYmFja0N1c3RvbS5jcHAgXAorICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlv
bk9ic2VydmVyQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE5hbWVk
Tm9kZU1hcEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhOYW1lZE5v
ZGVzQ29sbGVjdGlvbi5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhOb2RlQ3Vz
dG9tLmNwcCBcCkBAIC0yMTUsNyArMjE2LDYgQEAgdjggewogICAgICAgICBiaW5kaW5ncy92OC9j
dXN0b20vVjhTdHlsZVNoZWV0Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3Rv
bS9WOFN0eWxlU2hlZXRMaXN0Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3Rv
bS9WOFdlYktpdEFuaW1hdGlvbkN1c3RvbS5jcHAgXAotICAgICAgICBiaW5kaW5ncy92OC9jdXN0
b20vVjhXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdz
L3Y4L2N1c3RvbS9WOFdlYktpdFBvaW50Q29uc3RydWN0b3IuY3BwIFwKICAgICAgICAgYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4V29ya2VyQ29udGV4dEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5n
cy92OC9jdXN0b20vVjhXb3JrZXJDdXN0b20uY3BwIFwKQEAgLTMzMyw2ICszMzMsNyBAQCB2OCB7
CiAgICAgICAgIGJpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwIFwKICAgICAgICAg
YmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5oIFwKICAgICAgICAgYmluZGluZ3MvanMv
SlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCBcCisgICAgICAgIGJpbmRpbmdzL2pzL0pTTXV0
YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU05hbWVkTm9k
ZU1hcEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwIFwK
ICAgICAgICAgYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCBcCkBAIC0zNjAs
NyArMzYxLDYgQEAgdjggewogICAgICAgICBiaW5kaW5ncy9qcy9KU1dlYktpdEFuaW1hdGlvbkxp
c3RDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNXZWJLaXRDU1NLZXlmcmFtZVJ1
bGVDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNXZWJLaXRDU1NLZXlmcmFtZXNS
dWxlQ3VzdG9tLmNwcCBcCi0gICAgICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0TXV0YXRpb25PYnNl
cnZlckN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU1dlYktpdFBvaW50Q3VzdG9t
LmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIFwK
ICAgICAgICAgYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAgXApA
QCAtNTc1LDYgKzU3NSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGRvbS9Nb3VzZUV2ZW50LmNwcCBc
CiAgICAgZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcCBcCiAgICAgZG9tL011dGF0aW9uRXZlbnQu
Y3BwIFwKKyAgICBkb20vTXV0YXRpb25PYnNlcnZlci5jcHAgXAogICAgIGRvbS9NdXRhdGlvbk9i
c2VydmVySW50ZXJlc3RHcm91cC5jcHAgXAogICAgIGRvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0
cmF0aW9uLmNwcCBcCiAgICAgZG9tL011dGF0aW9uUmVjb3JkLmNwcCBcCkBAIC02MjksNyArNjMw
LDYgQEAgU09VUkNFUyArPSBcCiAgICAgZG9tL1VzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yLmNw
cCBcCiAgICAgZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcCBcCiAgICAgZG9tL1dlYktpdEFuaW1h
dGlvbkV2ZW50LmNwcCBcCi0gICAgZG9tL1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuY3BwIFwKICAg
ICBkb20vV2ViS2l0TmFtZWRGbG93LmNwcCBcCiAgICAgZG9tL1dlYktpdFRyYW5zaXRpb25FdmVu
dC5jcHAgXAogICAgIGRvbS9XaGVlbEV2ZW50LmNwcCBcCkBAIC0xNzU3LDYgKzE3NTcsNyBAQCBI
RUFERVJTICs9IFwKICAgICBkb20vTW91c2VSZWxhdGVkRXZlbnQuaCBcCiAgICAgZG9tL011dGF0
aW9uQ2FsbGJhY2suaCBcCiAgICAgZG9tL011dGF0aW9uRXZlbnQuaCBcCisgICAgZG9tL011dGF0
aW9uT2JzZXJ2ZXIuaCBcCiAgICAgZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uaCBc
CiAgICAgZG9tL011dGF0aW9uUmVjb3JkLmggXAogICAgIGRvbS9OYW1lZE5vZGVNYXAuaCBcCkBA
IC0xODA1LDcgKzE4MDYsNiBAQCBIRUFERVJTICs9IFwKICAgICBkb20vVXNlckdlc3R1cmVJbmRp
Y2F0b3IuaCBcCiAgICAgZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmggXAogICAgIGRvbS9XZWJLaXRB
bmltYXRpb25FdmVudC5oIFwKLSAgICBkb20vV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oIFwKICAg
ICBkb20vV2ViS2l0TmFtZWRGbG93LmggXAogICAgIGRvbS9XZWJLaXRUcmFuc2l0aW9uRXZlbnQu
aCBcCiAgICAgZG9tL1doZWVsRXZlbnQuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9V
c2VKU0MuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UKaW5kZXggY2U2OTBlZmZm
MmYzZWM5YjU3YTBhYWI2ODIwYmM3YjJiOWM2ZDY1ZS4uYTQ0NTAyZjkyODAwMzA3ZDY3NTdjZTk5
ZWE0Y2M3ODFmZWFjNzM5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVXNlSlNDLmNtYWtl
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1VzZUpTQy5jbWFrZQpAQCAtMTE2LDYgKzExNiw3IEBAIExJ
U1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50
Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwCiAgICAg
YmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcAorICAgIGJpbmRpbmdzL2pz
L0pTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU05hbWVkTm9k
ZU1hcEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCiAgICAgYmlu
ZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcApAQCAtMTQyLDcgKzE0Myw2IEBAIExJ
U1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0QW5pbWF0
aW9uTGlzdEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1dlYktpdENTU0tleWZyYW1lUnVs
ZUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1dlYktpdENTU0tleWZyYW1lc1J1bGVDdXN0
b20uY3BwCi0gICAgYmluZGluZ3MvanMvSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNw
cAogICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRDdXN0b20uY3BwCiAgICAgYmluZGluZ3Mv
anMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1hNTEh0dHBS
ZXF1ZXN0VXBsb2FkQ3VzdG9tLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVXNlVjgu
Y21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9Vc2VWOC5jbWFrZQppbmRleCA2Nzc1ZTk1MmQ3NmZlNjIx
MDIzZGYwMWMwNjA2N2ZlZTNjYjlkZjRmLi5jOGEyNTNjMzliNDlkZDlmYWE0OTk1MWRlYTQ3YzQ2
MDc2ZmY0MjU0IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Vc2VWOC5jbWFrZQorKysgYi9T
b3VyY2UvV2ViQ29yZS9Vc2VWOC5jbWFrZQpAQCAtMTMxLDYgKzEzMSw3IEBAIExJU1QoQVBQRU5E
IFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VFdmVudEN1
c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlUG9ydEN1c3RvbS5jcHAK
ICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcAorICAg
IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCiAgICAgYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4TmFtZWROb2RlTWFwQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL3Y4
L2N1c3RvbS9WOE5hbWVkTm9kZXNDb2xsZWN0aW9uLmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1c3Rv
bS9WOE5vZGVDdXN0b20uY3BwCkBAIC0xNTEsNyArMTUyLDYgQEAgTElTVChBUFBFTkQgV2ViQ29y
ZV9TT1VSQ0VTCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4VWludDhBcnJheUN1c3RvbS5jcHAK
ICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3Bw
CiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNwcAotICAg
IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCiAg
ICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5jcHAKICAgICBi
aW5kaW5ncy92OC9jdXN0b20vVjhXZWJTb2NrZXRDdXN0b20uY3BwCiAgICAgYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4V29ya2VyQ29udGV4dEN1c3RvbS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBlOWVi
ZDZjMWY0ZTM4ZGQ4MjUwNDRlZTE0MTA5YzQxYzM5YWU5YjQyLi42YzE2ZGIxMmMzYjc5MDIzZTVk
MGJhZmU5OGNlYzI2OWM3ZWJlYmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC05NjYsNiArOTY2LDcg
QEAKICAgICAgICAgICAgICdkb20vTW91c2VFdmVudC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9N
dXRhdGlvbkNhbGxiYWNrLmlkbCcsCiAgICAgICAgICAgICAnZG9tL011dGF0aW9uRXZlbnQuaWRs
JywKKyAgICAgICAgICAgICdkb20vTXV0YXRpb25PYnNlcnZlci5pZGwnLAogICAgICAgICAgICAg
J2RvbS9NdXRhdGlvblJlY29yZC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9OYW1lZE5vZGVNYXAu
aWRsJywKICAgICAgICAgICAgICdkb20vTm9kZS5pZGwnLApAQCAtOTkxLDcgKzk5Miw2IEBACiAg
ICAgICAgICAgICAnZG9tL1RyZWVXYWxrZXIuaWRsJywKICAgICAgICAgICAgICdkb20vVUlFdmVu
dC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9XZWJLaXRBbmltYXRpb25FdmVudC5pZGwnLAotICAg
ICAgICAgICAgJ2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmlkbCcsCiAgICAgICAgICAgICAn
ZG9tL1dlYktpdE5hbWVkRmxvdy5pZGwnLAogICAgICAgICAgICAgJ2RvbS9XZWJLaXRUcmFuc2l0
aW9uRXZlbnQuaWRsJywKICAgICAgICAgICAgICdkb20vV2hlZWxFdmVudC5pZGwnLApAQCAtMjAx
NSw2ICsyMDE1LDcgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3Vz
dG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5o
JywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3Bw
JywKKyAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3Bw
JywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAnLAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAnLAogICAgICAgICAgICAg
J2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAnLApAQCAtMjA1Nyw3ICsyMDU4
LDYgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0
b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dlYktpdENTU0tleWZyYW1lUnVs
ZUN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTS2V5ZnJh
bWVzUnVsZUN1c3RvbS5jcHAnLAotICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV2ViS2l0TXV0
YXRpb25PYnNlcnZlckN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV2Vi
S2l0UG9pbnRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dlYlNvY2tl
dEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJh
c2UuY3BwJywKQEAgLTIzMjcsNiArMjMyNyw3IEBACiAgICAgICAgICAgICAnYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4TWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mv
djgvY3VzdG9tL1Y4TWVzc2FnZVBvcnRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5n
cy92OC9jdXN0b20vVjhNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCcsCisgICAgICAgICAgICAn
YmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAnLAogICAgICAg
ICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5hbWVkTm9kZU1hcEN1c3RvbS5jcHAnLAogICAg
ICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5hbWVkTm9kZXNDb2xsZWN0aW9uLmNwcCcs
CiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4TmFtZWROb2Rlc0NvbGxlY3Rpb24u
aCcsCkBAIC0yMzU2LDcgKzIzNTcsNiBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOFVpbnQ4Q2xhbXBlZEFycmF5Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mv
djgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAg
ICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNwcCcsCi0gICAg
ICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0TXV0YXRpb25PYnNlcnZlckN1c3Rv
bS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdFBvaW50Q29u
c3RydWN0b3IuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJTb2Nr
ZXRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhXb3JrZXJD
b250ZXh0Q3VzdG9tLmNwcCcsCkBAIC01MzU5LDYgKzUzNTksOCBAQAogICAgICAgICAgICAgJ2Rv
bS9NdXRhdGlvbkNhbGxiYWNrLmgnLAogICAgICAgICAgICAgJ2RvbS9NdXRhdGlvbkV2ZW50LmNw
cCcsCiAgICAgICAgICAgICAnZG9tL011dGF0aW9uRXZlbnQuaCcsCisgICAgICAgICAgICAnZG9t
L011dGF0aW9uT2JzZXJ2ZXIuY3BwJywKKyAgICAgICAgICAgICdkb20vTXV0YXRpb25PYnNlcnZl
ci5oJywKICAgICAgICAgICAgICdkb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuY3Bw
JywKICAgICAgICAgICAgICdkb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuaCcsCiAg
ICAgICAgICAgICAnZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwJywKQEAgLTU0
NTksOCArNTQ2MSw2IEBACiAgICAgICAgICAgICAnZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcCcs
CiAgICAgICAgICAgICAnZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCcsCiAgICAgICAgICAg
ICAnZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50LmgnLAotICAgICAgICAgICAgJ2RvbS9XZWJLaXRN
dXRhdGlvbk9ic2VydmVyLmNwcCcsCi0gICAgICAgICAgICAnZG9tL1dlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXIuaCcsCiAgICAgICAgICAgICAnZG9tL1dlYktpdE5hbWVkRmxvdy5jcHAnLAogICAgICAg
ICAgICAgJ2RvbS9XZWJLaXROYW1lZEZsb3cuaCcsCiAgICAgICAgICAgICAnZG9tL1dlYktpdFRy
YW5zaXRpb25FdmVudC5jcHAnLApAQCAtNzc0MSw2ICs3NzQxLDggQEAKICAgICAgICAgICAgICc8
KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25DYWxsYmFjay5o
JywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
TXV0YXRpb25FdmVudC5jcHAnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvbkV2ZW50LmgnLAorICAgICAgICAgICAgJzwoUFJPRFVD
VF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvbk9ic2VydmVyLmNwcCcsCisg
ICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0
aW9uT2JzZXJ2ZXIuaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU011dGF0aW9uUmVjb3JkLmNwcCcsCiAgICAgICAgICAgICAnPChQUk9EVUNU
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uUmVjb3JkLmgnLAogICAgICAg
ICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNOYW1lZE5vZGVN
YXAuY3BwJywKQEAgLTgyODcsOCArODI4OSw2IEBACiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdENTU1JlZ2lvblJ1bGUuaCcsCiAgICAg
ICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdENT
U1RyYW5zZm9ybVZhbHVlLmNwcCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmgnLAotICAgICAgICAg
ICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRNdXRhdGlv
bk9ic2VydmVyLmNwcCcsCi0gICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCcsCiAgICAgICAgICAgICAnPChQ
Uk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdFBvaW50LmNwcCcsCiAg
ICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktp
dFBvaW50LmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNXZWJLaXROYW1lZEZsb3cuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggZDEyZGI1NjZjOGMzOTU5NmZkMGYxMjU0OGUwNzEx
NTY4NmMxMjdlOS4uMzU4NmM2ZWQ4ZjExNmQ1MGY0ZmVjODc2ODg2MWViMTY2MjYyODM0ZSAxMDA3
NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTExNTkw
LDYgKzExNTkwLDYyIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2
ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZl
ZFNvdXJjZXNcSlNNdXRhdGlvbk9ic2VydmVyLmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1
cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
KwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJ
CQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgor
CQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1
cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZp
bGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCisJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0Zp
bGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIp
XG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU011dGF0aW9uT2JzZXJ2ZXIuaCIK
KwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1
cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU011dGF0
aW9uUmVjb3JkLmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCkBAIC0yMzA2Myw2
MiArMjMxMTksNiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQ
YXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXEpTV2ViS2l0TXV0YXRpb25PYnNlcnZlci5jcHAiCi0JCQkJPgotCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
Ci0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KLQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgotCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgotCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJ
PC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRNdXRhdGlvbk9i
c2VydmVyLmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9
IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJj
ZXNcSlNXZWJLaXROYW1lZEZsb3cuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
QEAgLTUxNjUxLDYgKzUxNjUxLDYyIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxNdXRhdGlvbk9ic2VydmVyLmNwcCIKKwkJCQk+CisJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMy
IgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIi
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIi
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXE11dGF0
aW9uT2JzZXJ2ZXIuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZl
UGF0aD0iLi5cZG9tXE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcCIKIAkJCQk+CiAJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCkBAIC01NDMzOSw2MiArNTQzOTUsNiBAQAogCQkJCT4KIAkJ
CTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cV2ViS2l0TXV0YXRp
b25PYnNlcnZlci5jcHAiCi0JCQkJPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1l
PSJEZWJ1Z3xXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJ
CQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVs
ZWFzZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJ
PFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdf
Q2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJ
PgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1l
PSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0J
CQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
LQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJ
CQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgot
CQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJ
CQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCi0JCQkJPgot
CQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxXZWJLaXROYW1l
ZEZsb3cuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KQEAgLTY4MjE4LDcgKzY4
MjE4LDcgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZp
bGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU05hbWVkTm9kZU1hcEN1c3Rv
bS5jcHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNNdXRhdGlvbk9ic2Vy
dmVyQ3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJCQkJCU5h
bWU9IkRlYnVnfFdpbjMyIgpAQCAtNjgyNzAsNyArNjgyNzAsNyBAQAogCQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGJpbmRpbmdzXGpzXEpTTm9kZUN1c3RvbS5jcHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmlu
ZGluZ3NcanNcSlNOYW1lZE5vZGVNYXBDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02ODMyMiwxMSArNjgzMjIs
NyBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQot
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZUN1c3RvbS5oIgotCQkJCQk+
Ci0JCQkJPC9GaWxlPgotCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3Nc
anNcSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5k
aW5nc1xqc1xKU05vZGVDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02ODM3OCwxMSArNjgzNzQsMTEgQEAKIAkJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU05vZGVGaWx0ZXJDb25kaXRpb24uaCIKKwkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU05vZGVDdXN0b20uaCIKIAkJCQkJPgogCQkJ
CTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpT
Tm9kZUZpbHRlckN1c3RvbS5jcHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNc
SlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpAQCAtNjg0MzQsNyArNjg0MzAsMTEgQEAKIAkJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU05vZGVJdGVyYXRvckN1c3RvbS5jcHAiCisJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmgiCisJ
CQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5k
aW5nc1xqc1xKU05vZGVGaWx0ZXJDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02ODQ4Niw3ICs2ODQ4Niw3IEBA
CiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNOb2RlTGlzdEN1c3RvbS5jcHAiCisJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNOb2RlSXRlcmF0b3JDdXN0b20uY3BwIgog
CQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIi
CkBAIC02ODUzOCw3ICs2ODUzOCw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJ
PC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNO
b3RpZmljYXRpb25DdXN0b20uY3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpz
XEpTTm9kZUxpc3RDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgog
CQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02ODU5MCw3ICs2ODU5MCw3IEBACiAJCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZl
UGF0aD0iLi5cYmluZGluZ3NcanNcSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcCIKKwkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU05vdGlmaWNhdGlvbkN1c3RvbS5jcHAiCiAJ
CQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIK
QEAgLTY4NjQyLDExICs2ODY0Miw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJ
PC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNQ
bHVnaW5FbGVtZW50RnVuY3Rpb25zLmgiCi0JCQkJCT4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUK
LQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1Byb2Nlc3NpbmdJbnN0cnVjdGlv
bkN1c3RvbS5jcHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNQbHVnaW5F
bGVtZW50RnVuY3Rpb25zLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJ
CQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpAQCAtNjg2OTgsNyArNjg2OTQsMTEgQEAKIAkJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxiaW5kaW5nc1xqc1xKU1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrQ3VzdG9t
LmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1BsdWdpbkVsZW1lbnRG
dW5jdGlvbnMuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTUHJvY2Vzc2luZ0luc3RydWN0aW9uQ3VzdG9tLmNwcCIK
IAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMy
IgpAQCAtNjg3NTAsNyArNjg3NTAsNyBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJ
CTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpT
U2NyaXB0UHJvZmlsZU5vZGVDdXN0b20uY3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRp
bmdzXGpzXEpTUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2tDdXN0b20uY3BwIgogCQkJCQk+
CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02
ODgwMiw3ICs2ODgwMiw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxl
PgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNTaGFyZWRX
b3JrZXJDdXN0b20uY3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU2Ny
aXB0UHJvZmlsZU5vZGVDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02ODg1NCw3ICs2ODg1NCw3IEBACiAJCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0
aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNTUUxSZXN1bHRTZXRSb3dMaXN0Q3VzdG9tLmNwcCIK
KwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1NoYXJlZFdvcmtlckN1c3RvbS5j
cHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xX
aW4zMiIKQEAgLTY4OTA2LDcgKzY4OTA2LDcgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4K
IAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xq
c1xKU1NRTFRyYW5zYWN0aW9uQ3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5k
aW5nc1xqc1xKU1NRTFJlc3VsdFNldFJvd0xpc3RDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02ODk1OCw3ICs2
ODk1OCw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxG
aWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNTUUxUcmFuc2FjdGlvblN5
bmNDdXN0b20uY3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU1FMVHJh
bnNhY3Rpb25DdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJ
CQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02OTAxMCw3ICs2OTAxMCw3IEBACiAJCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0
aD0iLi5cYmluZGluZ3NcanNcSlNTdG9yYWdlQ3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxiaW5kaW5nc1xqc1xKU1NRTFRyYW5zYWN0aW9uU3luY0N1c3RvbS5jcHAiCiAJCQkJCT4K
IAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKQEAgLTY5
MDYyLDExICs2OTA2Miw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxl
PgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNTdG9yYWdl
Q3VzdG9tLmgiCi0JCQkJCT4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxiaW5kaW5nc1xqc1xKU1N0eWxlU2hlZXRDdXN0b20uY3BwIgorCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU3RvcmFnZUN1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKQEAgLTY5MTE4LDcg
KzY5MTE0LDExIEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJ
CTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNTdHlsZVNoZWV0TGlz
dEN1c3RvbS5jcHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNTdG9yYWdl
Q3VzdG9tLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxiaW5kaW5nc1xqc1xKU1N0eWxlU2hlZXRDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02OTE3MCw3
ICs2OTE3MCw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJ
CTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNTVkdFbGVtZW50SW5z
dGFuY2VDdXN0b20uY3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU3R5
bGVTaGVldExpc3RDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgog
CQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02OTIyMiw3ICs2OTIyMiw3IEBACiAJCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZl
UGF0aD0iLi5cYmluZGluZ3NcanNcSlNTVkdMZW5ndGhDdXN0b20uY3BwIgorCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU1ZHRWxlbWVudEluc3RhbmNlQ3VzdG9tLmNwcCIKIAkJ
CQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpA
QCAtNjkyNzQsNyArNjkyNzQsNyBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJCTwv
RmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU1ZH
UGF0aFNlZ0N1c3RvbS5jcHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNT
VkdMZW5ndGhDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJ
CQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02OTMyNiw3ICs2OTMyNiw3IEBACiAJCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0
aD0iLi5cYmluZGluZ3NcanNcSlNUZXh0Q3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxiaW5kaW5nc1xqc1xKU1NWR1BhdGhTZWdDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02OTM3OCw3ICs2OTM3
OCw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxl
Ci0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNUcmVlV2Fsa2VyQ3VzdG9tLmNw
cCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1RleHRDdXN0b20uY3BwIgog
CQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIi
CkBAIC02OTQzMCw3ICs2OTQzMCw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJ
PC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNX
ZWJLaXRBbmltYXRpb25DdXN0b20uY3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdz
XGpzXEpTVHJlZVdhbGtlckN1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0
aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKQEAgLTY5NDgyLDcgKzY5NDgyLDcgQEAKIAkJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20uY3Bw
IgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTV2ViS2l0QW5pbWF0aW9uQ3Vz
dG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJCQkJCU5hbWU9IkRl
YnVnfFdpbjMyIgpAQCAtNjk1MzQsNyArNjk1MzQsNyBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRp
bmdzXGpzXEpTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlQ3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxiaW5kaW5nc1xqc1xKU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20uY3BwIgogCQkJ
CQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBA
IC02OTU4Niw3ICs2OTU4Niw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9G
aWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNXZWJL
aXRDU1NLZXlmcmFtZXNSdWxlQ3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5k
aW5nc1xqc1xKU1dlYktpdENTU0tleWZyYW1lUnVsZUN1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKQEAgLTY5NjM4LDcg
KzY5NjM4LDcgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJ
PEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1dlYktpdENTU01hdHJp
eEN1c3RvbS5jcHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNXZWJLaXRD
U1NLZXlmcmFtZXNSdWxlQ3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpAQCAtNjk2OTAsNyArNjk2OTAsNyBAQAogCQkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTV2ViS2l0TXV0YXRpb25PYnNlcnZlckN1c3RvbS5j
cHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNXZWJLaXRDU1NNYXRyaXhD
dXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0i
RGVidWd8V2luMzIiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggY2M4MzQ0MTM0NTdhMzQwOTNkYzBjNmUyMTI1YTBkODk5ZjFjYzc1
Yi4uYzBmMDk2ZjJjZWM3M2RmZWU4NDVjMzc0NWFmMDBiMGMwMzZmYjhjYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTc3Miwx
MyArNTc3MiwxMyBAQAogCQlDNkYwOEZDOTE0MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRhdGlvblJl
Y29yZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
NkYwOEZDNzE0MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRhdGlvblJlY29yZC5jcHAgKi87IH07CiAJ
CUM2RjA4RkNBMTQzMTAwMEQwMDY4NTg0OSAvKiBKU011dGF0aW9uUmVjb3JkLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwOEZDODE0MzEwMDBEMDA2
ODU4NDkgLyogSlNNdXRhdGlvblJlY29yZC5oICovOyB9OwogCQlDNkYwOTAwQTE0MzI3QjYxMDA2
ODU4NDkgLyogTXV0YXRpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQzZGMDkwMDExNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uQ2Fs
bGJhY2suaCAqLzsgfTsKLQkJQzZGMDkwMEUxNDMyN0I2MTAwNjg1ODQ5IC8qIFdlYktpdE11dGF0
aW9uT2JzZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzZGMDkwMDUxNDMyN0I2MTAwNjg1ODQ5IC8qIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIu
Y3BwICovOyB9OwotCQlDNkYwOTAwRjE0MzI3QjYxMDA2ODU4NDkgLyogV2ViS2l0TXV0YXRpb25P
YnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QzZGMDkwMDYxNDMyN0I2MTAwNjg1ODQ5IC8qIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDNkYwOTAwRTE0
MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25PYnNlcnZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwOTAwNTE0MzI3QjYxMDA2ODU4NDkgLyog
TXV0YXRpb25PYnNlcnZlci5jcHAgKi87IH07CisJCUM2RjA5MDBGMTQzMjdCNjEwMDY4NTg0OSAv
KiBNdXRhdGlvbk9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDNkYwOTAwNjE0MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25PYnNlcnZlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUM2RjA5
MDI4MTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDkwMjAxNDMyN0Q0RjAwNjg1
ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFjay5jcHAgKi87IH07CiAJCUM2RjA5MDI5MTQzMjdENEYw
MDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RjA5MDIxMTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0
aW9uQ2FsbGJhY2suaCAqLzsgfTsKLQkJQzZGMDkwMkMxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTV2Vi
S2l0TXV0YXRpb25PYnNlcnZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDNkYwOTAyNDE0MzI3RDRGMDA2ODU4NDkgLyogSlNXZWJLaXRNdXRhdGlv
bk9ic2VydmVyLmNwcCAqLzsgfTsKLQkJQzZGMDkwMkQxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTV2Vi
S2l0TXV0YXRpb25PYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzZGMDkwMjUxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTV2ViS2l0TXV0YXRpb25P
YnNlcnZlci5oICovOyB9OwotCQlDNkYwOTE3RjE0M0EyQkI5MDA2ODU4NDkgLyogSlNXZWJLaXRN
dXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEM2RjA5MTdFMTQzQTJCQjkwMDY4NTg0OSAvKiBKU1dlYktpdE11dGF0
aW9uT2JzZXJ2ZXJDdXN0b20uY3BwICovOyB9OworCQlDNkYwOTAyQzE0MzI3RDRGMDA2ODU4NDkg
LyogSlNNdXRhdGlvbk9ic2VydmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEM2RjA5MDI0MTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uT2Jz
ZXJ2ZXIuY3BwICovOyB9OworCQlDNkYwOTAyRDE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlv
bk9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDNkYwOTAyNTE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyLmggKi87IH07
CisJCUM2RjA5MTdGMTQzQTJCQjkwMDY4NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDkx
N0UxNDNBMkJCOTAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgKi87IH07
CiAJCUM2RjA5MTg1MTQzQTZDM0IwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2tDdXN0b20u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDkx
ODQxNDNBNkMzQjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAgKi87IH07
CiAJCUM2RjQxMDQ3MTMwQzZFODkwMDM5M0RFNCAvKiBFbnRyeUJhc2UuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGNDEwNDYxMzBDNkU4OTAwMzkz
REU0IC8qIEVudHJ5QmFzZS5jcHAgKi87IH07CiAJCUNBM0JGNjdDMTBEOTlCQUUwMEU2Q0U1MyAv
KiBTY3JvbGxBbmltYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDQTNCRjY3QjEwRDk5QkFFMDBFNkNFNTMgLyogU2Nyb2xsQW5pbWF0b3IuY3Bw
ICovOyB9OwpAQCAtMTI5ODUsMTQgKzEyOTg1LDE0IEBACiAJCUM2RjA4RkM4MTQzMTAwMEQwMDY4
NTg0OSAvKiBKU011dGF0aW9uUmVjb3JkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTTXV0YXRpb25SZWNvcmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzZG
MDkwMDExNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTXV0YXRpb25DYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDNkYwOTAwMjE0MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25DYWxsYmFj
ay5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTXV0YXRpb25DYWxsYmFjay5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUM2RjA5MDA1MTQzMjdCNjEwMDY4NTg0OSAvKiBXZWJL
aXRNdXRhdGlvbk9ic2VydmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlDNkYwOTAwNjE0MzI3QjYxMDA2ODU4NDkgLyogV2ViS2l0TXV0YXRpb25PYnNlcnZlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXRNdXRhdGlvbk9ic2VydmVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUM2RjA5MDA3MTQzMjdCNjEwMDY4NTg0
OSAvKiBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QzZGMDkwMDUxNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uT2JzZXJ2ZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTXV0YXRpb25PYnNlcnZlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM2RjA5MDA2MTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRh
dGlvbk9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE11dGF0aW9u
T2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzZGMDkwMDcxNDMyN0I2
MTAwNjg1ODQ5IC8qIE11dGF0aW9uT2JzZXJ2ZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IE11dGF0aW9uT2JzZXJ2ZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNkYw
OTAyMDE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTXV0YXRpb25DYWxsYmFjay5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM2RjA5MDIxMTQzMjdENEYwMDY4NTg0OSAvKiBKU011
dGF0aW9uQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNdXRh
dGlvbkNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUM2RjA5MDI0MTQz
MjdENEYwMDY4NTg0OSAvKiBKU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQzZGMDkwMjUxNDMyN0Q0RjAwNjg1ODQ5IC8q
IEpTV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJQzZGMDkxN0UxNDNBMkJCOTAwNjg1ODQ5IC8qIEpTV2ViS2l0TXV0YXRpb25PYnNlcnZl
ckN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYktp
dE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlDNkYwOTAyNDE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTXV0YXRpb25PYnNlcnZlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM2RjA5MDI1MTQzMjdENEYwMDY4NTg0OSAv
KiBKU011dGF0aW9uT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNNdXRhdGlvbk9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM2RjA5
MTdFMTQzQTJCQjkwMDY4NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9t
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzZGMDkxODQxNDNBNkMzQjAwNjg1
ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDNkY0MTA0NjEzMEM2RTg5MDAzOTNERTQgLyogRW50cnlCYXNl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEVudHJ5QmFzZS5jcHA7
IHBhdGggPSBNb2R1bGVzL2ZpbGVzeXN0ZW0vRW50cnlCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0EzQkY2N0IxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9y
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9sbEFuaW1hdG9y
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NjgyLDYgKzE4NjgyLDggQEAK
IAkJCQlGRTgwREE2MjBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9wb3NpdGlvbi5oICovLAogCQkJ
CUM2RjA5MDIwMTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2suY3BwICovLAog
CQkJCUM2RjA5MDIxMTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2suaCAqLywK
KwkJCQlDNkYwOTAyNDE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyLmNwcCAq
LywKKwkJCQlDNkYwOTAyNTE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyLmgg
Ki8sCiAJCQkJQzZGMDhGQzcxNDMxMDAwRDAwNjg1ODQ5IC8qIEpTTXV0YXRpb25SZWNvcmQuY3Bw
ICovLAogCQkJCUM2RjA4RkM4MTQzMTAwMEQwMDY4NTg0OSAvKiBKU011dGF0aW9uUmVjb3JkLmgg
Ki8sCiAJCQkJQkNEOUMyQkMwQzE3QjY5RTAwNUM5MEEyIC8qIEpTTmFtZWROb2RlTWFwLmNwcCAq
LywKQEAgLTE4NzE0LDggKzE4NzE2LDYgQEAKIAkJCQk3NTQxNUQ1NDEyOUFCMkQyMDAzQUQ2Njkg
LyogSlNTcGVlY2hJbnB1dFJlc3VsdExpc3QuaCAqLywKIAkJCQk2NURGMzFFRjA5RDFDQzYwMDAw
QkUzMjUgLyogSlNUZXh0LmNwcCAqLywKIAkJCQk2NURGMzFGMDA5RDFDQzYwMDAwQkUzMjUgLyog
SlNUZXh0LmggKi8sCi0JCQkJQzZGMDkwMjQxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTV2ViS2l0TXV0
YXRpb25PYnNlcnZlci5jcHAgKi8sCi0JCQkJQzZGMDkwMjUxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpT
V2ViS2l0TXV0YXRpb25PYnNlcnZlci5oICovLAogCQkJCUQ3NjEzQUMyMTQ3NTNFNTYwMERCODYw
NiAvKiBKU1dlYktpdE5hbWVkRmxvdy5jcHAgKi8sCiAJCQkJRDc2MTNBQzMxNDc1M0U1NjAwREI4
NjA2IC8qIEpTV2ViS2l0TmFtZWRGbG93LmggKi8sCiAJCQkpOwpAQCAtMjAxMTMsNiArMjAxMTMs
NyBAQAogCQkJCUUxQURFRDQ2MEU3NkI4REQwMDRBMUE1RSAvKiBKU01lc3NhZ2VQb3J0Q3VzdG9t
LmNwcCAqLywKIAkJCQk0MUY1ODRDNjEwNDY1MkNCMDA5Q0FBNjQgLyogSlNNZXNzYWdlUG9ydEN1
c3RvbS5oICovLAogCQkJCUM2RjA5MTg0MTQzQTZDM0IwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2Fs
bGJhY2tDdXN0b20uY3BwICovLAorCQkJCUM2RjA5MTdFMTQzQTJCQjkwMDY4NTg0OSAvKiBKU011
dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwICovLAogCQkJCUJDRDlDMjVGMEMxN0FBNjcwMDVDOTBB
MiAvKiBKU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAgKi8sCiAJCQkJQkNEOUMyNjAwQzE3QUE2NzAw
NUM5MEEyIC8qIEpTTm9kZUN1c3RvbS5jcHAgKi8sCiAJCQkJQkM5NDM5QzIxMTZDRjQ5NDAwNDhD
NzUwIC8qIEpTTm9kZUN1c3RvbS5oICovLApAQCAtMjAxNTIsNyArMjAxNTMsNiBAQAogCQkJCTMx
OTQ2MjMxMTMwMjJGNjUwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20uY3Bw
ICovLAogCQkJCUUxQUQxNEM0MTI5NzM1NDkwMEFDQTk4OSAvKiBKU1dlYktpdENTU0tleWZyYW1l
UnVsZUN1c3RvbS5jcHAgKi8sCiAJCQkJRTFBRDE0QjQxMjk3MzRDQTAwQUNBOTg5IC8qIEpTV2Vi
S2l0Q1NTS2V5ZnJhbWVzUnVsZUN1c3RvbS5jcHAgKi8sCi0JCQkJQzZGMDkxN0UxNDNBMkJCOTAw
Njg1ODQ5IC8qIEpTV2ViS2l0TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgKi8sCiAJCQkJQkMy
NzVCNzgxMUM1RDFDMzAwQzkyMDZDIC8qIEpTV2ViS2l0UG9pbnRDdXN0b20uY3BwICovLAogCQkJ
CTUxOEEzNEM2MTAyNkM4QzkwMDFCNjg5NiAvKiBKU1dlYlNvY2tldEN1c3RvbS5jcHAgKi8sCiAJ
CQkJRTE4MjU4QUIwRUYzQ0Q3MDAwOTMzMjQyIC8qIEpTV29ya2VyQ29udGV4dEN1c3RvbS5jcHAg
Ki8sCkBAIC0yMTQ1Miw2ICsyMTQ1Miw5IEBACiAJCQkJRDZFNTI4QTIxNDlBOTI2RDAwRUZFMUYz
IC8qIE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmggKi8sCiAJCQkJRDZFMjc2QUQxNDYz
NzQ1NTAwMUQyODBBIC8qIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwICovLAogCQkJ
CUQ2RTI3NkFFMTQ2Mzc0NTUwMDFEMjgwQSAvKiBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9u
LmggKi8sCisJCQkJQzZGMDkwMDUxNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uT2JzZXJ2ZXIu
Y3BwICovLAorCQkJCUM2RjA5MDA2MTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbk9ic2VydmVy
LmggKi8sCisJCQkJQzZGMDkwMDcxNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uT2JzZXJ2ZXIu
aWRsICovLAogCQkJCUM2RjA4RkI5MTQzMEZFOEYwMDY4NTg0OSAvKiBNdXRhdGlvblJlY29yZC5j
cHAgKi8sCiAJCQkJQzZGMDhGQkExNDMwRkU4RjAwNjg1ODQ5IC8qIE11dGF0aW9uUmVjb3JkLmgg
Ki8sCiAJCQkJQzZGMDhGQkIxNDMwRkU4RjAwNjg1ODQ5IC8qIE11dGF0aW9uUmVjb3JkLmlkbCAq
LywKQEAgLTIxNTg2LDkgKzIxNTg5LDYgQEAKIAkJCQkzMUMwRkYxQjBFNENFQjZFMDA3RDZGRTUg
LyogV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwICovLAogCQkJCTMxQzBGRjFDMEU0Q0VCNkUwMDdE
NkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5oICovLAogCQkJCTMxQzBGRjFEMEU0Q0VCNkUw
MDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5pZGwgKi8sCi0JCQkJQzZGMDkwMDUxNDMy
N0I2MTAwNjg1ODQ5IC8qIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIuY3BwICovLAotCQkJCUM2RjA5
MDA2MTQzMjdCNjEwMDY4NTg0OSAvKiBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmggKi8sCi0JCQkJ
QzZGMDkwMDcxNDMyN0I2MTAwNjg1ODQ5IC8qIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaWRsICov
LAogCQkJCUQ3NjEzQTRFMTQ3NEYxM0YwMERCODYwNiAvKiBXZWJLaXROYW1lZEZsb3cuY3BwICov
LAogCQkJCUQ3NjEzQTREMTQ3NEYxM0YwMERCODYwNiAvKiBXZWJLaXROYW1lZEZsb3cuaCAqLywK
IAkJCQlENzYxM0E0QTE0NzRFRTk1MDBEQjg2MDYgLyogV2ViS2l0TmFtZWRGbG93LmlkbCAqLywK
QEAgLTIzNzAyLDYgKzIzNzAyLDcgQEAKIAkJCQlBODY2MjlEMTA5REEyQjQ4MDA5NjMzQTUgLyog
SlNNb3VzZUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlDNkYwOTAyOTE0MzI3RDRGMDA2ODU4
NDkgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NURGMzFGQzA5
RDFDQzYwMDAwQkUzMjUgLyogSlNNdXRhdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlD
NkYwOTAyRDE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDNkYwOEZDQTE0MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRhdGlvblJlY29yZC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkNEOUMyQzEwQzE3QjY5RTAwNUM5MEEyIC8qIEpTTmFtZWRO
b2RlTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOUQyNDdGODBENzU3RTM0MDBGREY5NTkgLyog
SlNOYXZpZ2F0b3IuaCBpbiBIZWFkZXJzICovLApAQCAtMjM5NTYsNyArMjM5NTcsNiBAQAogCQkJ
CTQ5ODM5MTQwMEYxRTc2NzUwMEMyMzc4MiAvKiBKU1dlYktpdENTU01hdHJpeC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOEFEMEE1OTUxNEM4ODMzNjAwMEQ4M0M1IC8qIEpTV2ViS2l0Q1NTUmVnaW9u
UnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2MTFFNUIwRTFDNERFMDAwRjZBNTc5IC8qIEpT
V2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCBpbiBIZWFkZXJzICovLAotCQkJCUM2RjA5MDJEMTQz
MjdENEYwMDY4NTg0OSAvKiBKU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQ5NEJENzlFMEY1NUM5NEMwMDc0NzgyOCAvKiBKU1dlYktpdFBvaW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkzMUMwRkY0MDBFNENFRkFDMDA3RDZGRTUgLyogSlNXZWJLaXRUcmFuc2l0
aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVEQTVFMEZEMTAyQjk1MzgwMDA4OENGOSAv
KiBKU1dlYlNvY2tldC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDA4OSw2ICsyNDA4OSw3IEBACiAJ
CQkJRkRCMTcwMDYxNEEyQkFCMjAwQTJCNUQ5IC8qIE11bHRpQ2hhbm5lbFJlc2FtcGxlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQzZGMDkwMEExNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uQ2Fs
bGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTg1MDMxQjRBMEE0NEVGQzcwMEY5OTJFMCAvKiBN
dXRhdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlDNkYwOTAwRjE0MzI3QjYxMDA2ODU4
NDkgLyogTXV0YXRpb25PYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDZFNTI4QTQxNDlB
OTI2RDAwRUZFMUYzIC8qIE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlENkUyNzZCMDE0NjM3NDU1MDAxRDI4MEEgLyogTXV0YXRpb25PYnNlcnZlclJl
Z2lzdHJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzZGMDhGQkQxNDMwRkU4RjAwNjg1ODQ5
IC8qIE11dGF0aW9uUmVjb3JkLmggaW4gSGVhZGVycyAqLywKQEAgLTI1MDQ2LDcgKzI1MDQ3LDYg
QEAKIAkJCQkyOUNENjFERTE0NkQwMjg5MDA2OEU4MkEgLyogV2ViS2l0Q1NTU2hhZGVyVmFsdWUu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDOUFERDIzMENDNDAzMjYwMDA5OEM0QyAvKiBXZWJLaXRD
U1NUcmFuc2Zvcm1WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODk4Nzg1NjYxMjJDQTA2NDAw
M0FBQkRBIC8qIFdlYktpdEZsYWdzLmggaW4gSGVhZGVycyAqLywKLQkJCQlDNkYwOTAwRjE0MzI3
QjYxMDA2ODU4NDkgLyogV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDk0QkQ3OTUwRjU1QzhFRTAwNzQ3ODI4IC8qIFdlYktpdFBvaW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQkzMUMwRkYyNTBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0VHJhbnNpdGlvbkV2ZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkNGMzMyRjBGMkI5QTI1MDA0QjY3OTUgLyogV2ViTGF5
ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjY5MjEsNiArMjY5MjEsOCBAQAogCQkJCUM2RjA5MDI4
MTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQzZGMDkxODUxNDNBNkMzQjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFja0N1c3Rv
bS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NURGMzFGQjA5RDFDQzYwMDAwQkUzMjUgLyogSlNN
dXRhdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUM2RjA5MDJDMTQzMjdENEYwMDY4
NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzZGMDkx
N0YxNDNBMkJCOTAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlDNkYwOEZDOTE0MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRhdGlvblJlY29y
ZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0Q5QzJDMDBDMTdCNjlFMDA1QzkwQTIgLyogSlNO
YW1lZE5vZGVNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNEOUMyNjMwQzE3QUE2NzAwNUM5
MEEyIC8qIEpTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjcyMTIs
OCArMjcyMTQsNiBAQAogCQkJCTQ5ODM5MTNGMEYxRTc2NzUwMEMyMzc4MiAvKiBKU1dlYktpdENT
U01hdHJpeC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4QUQwQTU5NDE0Qzg4MzM2MDAwRDgzQzUg
LyogSlNXZWJLaXRDU1NSZWdpb25SdWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxNjExRTVB
MEUxQzRERTAwMEY2QTU3OSAvKiBKU1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCBpbiBTb3Vy
Y2VzICovLAotCQkJCUM2RjA5MDJDMTQzMjdENEYwMDY4NTg0OSAvKiBKU1dlYktpdE11dGF0aW9u
T2JzZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQzZGMDkxN0YxNDNBMkJCOTAwNjg1ODQ5
IC8qIEpTV2ViS2l0TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlENzYxM0FDNDE0NzUzRTU2MDBEQjg2MDYgLyogSlNXZWJLaXROYW1lZEZsb3cuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDk0QkQ3OUQwRjU1Qzk0QzAwNzQ3ODI4IC8qIEpTV2ViS2l0UG9pbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyNzVCNzkxMUM1RDFDMzAwQzkyMDZDIC8qIEpTV2Vi
S2l0UG9pbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzM0Niw2ICsyNzM0Niw3IEBA
CiAJCQkJOTMzMDlERkIwOTlFNjQ5MjAwNTZFNTgxIC8qIE1vdmVTZWxlY3Rpb25Db21tYW5kLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUZEQjE3MDA1MTRBMkJBQjIwMEEyQjVEOSAvKiBNdWx0aUNo
YW5uZWxSZXNhbXBsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODUwMzFCNDkwQTQ0RUZDNzAw
Rjk5MkUwIC8qIE11dGF0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzZGMDkwMEUx
NDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uT2JzZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRDZFNTI4QTMxNDlBOTI2RDAwRUZFMUYzIC8qIE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdy
b3VwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUQ2RTI3NkFGMTQ2Mzc0NTUwMDFEMjgwQSAvKiBN
dXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM2RjA4
RkJDMTQzMEZFOEYwMDY4NTg0OSAvKiBNdXRhdGlvblJlY29yZC5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTI4MTEwLDcgKzI4MTExLDYgQEAKIAkJCQk1MDM4QkMwNzE0NzExQ0RCMDA5NUUwRDEgLyog
V2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM5QUREODAwQ0M0
MDkyMjAwMDk4QzRDIC8qIFdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTFBMTQxNEI1MTNBMEYwNTAwMDE5OTk2QyAvKiBXZWJLaXRGb250RmFtaWx5TmFtZXMu
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQzZGMDkwMEUxNDMyN0I2MTAwNjg1ODQ5IC8qIFdlYktp
dE11dGF0aW9uT2JzZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDc2MTNBNTAxNDc0RjEz
RjAwREI4NjA2IC8qIFdlYktpdE5hbWVkRmxvdy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUMw
RkYyNDBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGQ0YzMzJFMEYyQjlBMjUwMDRCNjc5NSAvKiBXZWJMYXllci5tbSBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5k
aW5nc0FsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NB
bGxJbk9uZS5jcHAKaW5kZXggNjZiNGE3ZjQzMTg0YjQwMTZkZTc3ZDRhMzgzNGI4OTRlOTZhYmMz
OS4uOGI5NGY2NDk3YWJhMDZhZWMxZDNmZTg4MDAwMzdlYWZlZTYwYzY1NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCkBAIC0xMjAs
NiArMTIwLDcgQEAKICNpbmNsdWRlICJKU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAiCiAjaW5jbHVk
ZSAiSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNNdXRhdGlvbkNhbGxiYWNr
Q3VzdG9tLmNwcCIKKyNpbmNsdWRlICJKU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIgogI2lu
Y2x1ZGUgIkpTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU05vZGVDdXN0b20u
Y3BwIgogI2luY2x1ZGUgIkpTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAiCkBAIC0xNTgsNyArMTU5
LDYgQEAKICNpbmNsdWRlICJKU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20uY3BwIgogI2luY2x1
ZGUgIkpTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU1dlYktp
dENTU0tleWZyYW1lc1J1bGVDdXN0b20uY3BwIgotI2luY2x1ZGUgIkpTV2ViS2l0TXV0YXRpb25P
YnNlcnZlckN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNXZWJLaXRQb2ludEN1c3RvbS5jcHAiCiAj
aW5jbHVkZSAiSlNXZWJTb2NrZXRDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTV29ya2VyQ29udGV4
dEJhc2UuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWlu
VGhyZWFkRXhlY1N0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWFpblRo
cmVhZEV4ZWNTdGF0ZS5jcHAKaW5kZXggMDBiYzE3MGQyYjM1MjM2ZTE4OWQyMzNlOWM5NDNiYjI0
OTg1YjlkNi4uNTU2Y2E1ZDhkMzEyMjUyODdmYzM4NTNlMjE4MGJhMDJkMDc2MDRkYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUu
Y3BwCkBAIC0yNSw3ICsyNSw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJK
U01haW5UaHJlYWRFeGVjU3RhdGUuaCIKLSNpbmNsdWRlICJXZWJLaXRNdXRhdGlvbk9ic2VydmVy
LmgiCisjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlci5oIgogCiAjaWYgRU5BQkxFKElOREVYRURf
REFUQUJBU0UpCiAjaW5jbHVkZSAiSURCUGVuZGluZ1RyYW5zYWN0aW9uTW9uaXRvci5oIgpAQCAt
NDIsNyArNDIsNyBAQCB2b2lkIEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6ZGlkTGVhdmVTY3JpcHRD
b250ZXh0KCkKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKLSAgICBX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpkZWxpdmVyQWxsTXV0YXRpb25zKCk7CisgICAgTXV0YXRp
b25PYnNlcnZlcjo6ZGVsaXZlckFsbE11dGF0aW9ucygpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2tDdXN0b20u
Y3BwCmluZGV4IDQzNzVjZTQxNzQ3MGQ1ZTg1N2FhNDUwZDczYzVjMDE0MzAyMDc5MTUuLjJkOGVl
Zjk1OTk5NGE0NGRjMjIzYWQ1ODI0Y2JiMmMzYmM3MjdjNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcApAQCAt
MzQsOCArMzQsOCBAQAogCiAjaW5jbHVkZSAiSlNNdXRhdGlvbkNhbGxiYWNrLmgiCiAKKyNpbmNs
dWRlICJKU011dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJKU011dGF0aW9uUmVjb3JkLmgi
Ci0jaW5jbHVkZSAiSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CiAKQEAgLTQz
LDcgKzQzLDcgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1ib29sIEpTTXV0YXRpb25DYWxsYmFjazo6aGFuZGxlRXZlbnQoTXV0YXRpb25SZWNvcmRBcnJh
eSogbXV0YXRpb25zLCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKiBvYnNlcnZlcikKK2Jvb2wgSlNN
dXRhdGlvbkNhbGxiYWNrOjpoYW5kbGVFdmVudChNdXRhdGlvblJlY29yZEFycmF5KiBtdXRhdGlv
bnMsIE11dGF0aW9uT2JzZXJ2ZXIqIG9ic2VydmVyKQogewogICAgIGlmICghY2FuSW52b2tlQ2Fs
bGJhY2soKSkKICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
YjU1NjBkODBjYzk3YzQzMDFjN2Y1MGFlMTQwODQxN2ZlMGNiMGIyCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNw
cApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1VVEFU
SU9OX09CU0VSVkVSUykKKworI2luY2x1ZGUgIkpTTXV0YXRpb25PYnNlcnZlci5oIgorCisjaW5j
bHVkZSAiSlNNdXRhdGlvbkNhbGxiYWNrLmgiCisjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlci5o
IgorI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KKwordXNpbmcgbmFtZXNwYWNlIEpTQzsKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTTXV0
YXRpb25PYnNlcnZlckNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU011dGF0aW9uT2JzZXJ2ZXIoRXhl
Y1N0YXRlKiBleGVjKQoreworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQorICAg
ICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vy
cm9yKGV4ZWMpKTsKKworICAgIEpTT2JqZWN0KiBvYmplY3QgPSBleGVjLT5hcmd1bWVudCgwKS5n
ZXRPYmplY3QoKTsKKyAgICBpZiAoIW9iamVjdCkgeworICAgICAgICBzZXRET01FeGNlcHRpb24o
ZXhlYywgVFlQRV9NSVNNQVRDSF9FUlIpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOworICAgIH0KKworICAgIEpTTXV0YXRpb25PYnNlcnZlckNvbnN0cnVj
dG9yKiBqc0NvbnN0cnVjdG9yID0ganNDYXN0PEpTTXV0YXRpb25PYnNlcnZlckNvbnN0cnVjdG9y
Kj4oZXhlYy0+Y2FsbGVlKCkpOworICAgIFJlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPiBjYWxsYmFj
ayA9IEpTTXV0YXRpb25DYWxsYmFjazo6Y3JlYXRlKG9iamVjdCwganNDb25zdHJ1Y3Rvci0+Z2xv
YmFsT2JqZWN0KCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNPYmplY3QodG9KUyhl
eGVjLCBqc0NvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKSwgTXV0YXRpb25PYnNlcnZlcjo6Y3Jl
YXRlKGNhbGxiYWNrLnJlbGVhc2UoKSkpKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3Vz
dG9tLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDFmZmFmYzM2MGYzZGE0OTAx
M2UzZTY3NWU5MDI4MWNkY2M0OWJiMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdE11dGF0aW9u
T2JzZXJ2ZXJDdXN0b20uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0
cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0g
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCi0KLSNpbmNsdWRl
ICJKU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIKLQotI2luY2x1ZGUgIkpTTXV0YXRpb25DYWxs
YmFjay5oIgotI2luY2x1ZGUgIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIKLSNpbmNsdWRlIDxy
dW50aW1lL0Vycm9yLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1dlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXJDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyKEV4ZWNT
dGF0ZSogZXhlYykKLXsKLSAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKLSAgICAg
ICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJv
cihleGVjKSk7Ci0KLSAgICBKU09iamVjdCogb2JqZWN0ID0gZXhlYy0+YXJndW1lbnQoMCkuZ2V0
T2JqZWN0KCk7Ci0gICAgaWYgKCFvYmplY3QpIHsKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4
ZWMsIFRZUEVfTUlTTUFUQ0hfRVJSKTsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKLSAgICB9Ci0KLSAgICBKU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXJDb25z
dHJ1Y3RvcioganNDb25zdHJ1Y3RvciA9IGpzQ2FzdDxKU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXJD
b25zdHJ1Y3Rvcio+KGV4ZWMtPmNhbGxlZSgpKTsKLSAgICBSZWZQdHI8TXV0YXRpb25DYWxsYmFj
az4gY2FsbGJhY2sgPSBKU011dGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZShvYmplY3QsIGpzQ29uc3Ry
dWN0b3ItPmdsb2JhbE9iamVjdCgpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2Jq
ZWN0KHRvSlMoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCksIFdlYktpdE11dGF0
aW9uT2JzZXJ2ZXI6OmNyZWF0ZShjYWxsYmFjay5yZWxlYXNlKCkpKSkpOwotfQotCi19IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhSZWN1cnNpb25TY29wZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFJlY3Vyc2lvblNjb3BlLmNwcAppbmRl
eCA5MmJlNzIwYjE0YzY5ZjA1ZjZlZWY2YTk2YzI2ODJjNGIzY2ZjZjY1Li5jNWNiYzljMTU1MTQw
Nzc4OTA1ZTQyMjgwZTFmZGIwMjQwMjAzMDg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOFJlY3Vyc2lvblNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOFJlY3Vyc2lvblNjb3BlLmNwcApAQCAtMzIsNyArMzIsNyBAQAogI2luY2x1ZGUg
IlY4UmVjdXJzaW9uU2NvcGUuaCIKIAogI2luY2x1ZGUgIklEQlBlbmRpbmdUcmFuc2FjdGlvbk1v
bml0b3IuaCIKLSNpbmNsdWRlICJXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSAi
TXV0YXRpb25PYnNlcnZlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ5LDcgKzQ5
LDcgQEAgdm9pZCBWOFJlY3Vyc2lvblNjb3BlOjpkaWRMZWF2ZVNjcmlwdENvbnRleHQoKQogCiAj
aWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKICAgICBpZiAobV9pc0RvY3VtZW50Q29udGV4
dCkKLSAgICAgICAgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6ZGVsaXZlckFsbE11dGF0aW9ucygp
OworICAgICAgICBNdXRhdGlvbk9ic2VydmVyOjpkZWxpdmVyQWxsTXV0YXRpb25zKCk7CiAjZW5k
aWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
TXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcAppbmRleCBiZmZiZTc0MDBmZGEyY2E1
OGQyZjliNzcwODZmNmM2YmJmYTA1MjdmLi43MTRmZGEyOWM5YTFiMjMwNTdmZDRhZmQyMWQyMTRm
ZTk1YTJhNWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcApAQCAtMzcsOSArMzcsOSBA
QAogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJWOEJpbmRp
bmcuaCIKICNpbmNsdWRlICJWOEN1c3RvbVZvaWRDYWxsYmFjay5oIgorI2luY2x1ZGUgIlY4TXV0
YXRpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgIlY4TXV0YXRpb25SZWNvcmQuaCIKICNpbmNsdWRl
ICJWOFByb3h5LmgiCi0jaW5jbHVkZSAiVjhXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5j
bHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTQ3LDcgKzQ3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1ib29sIFY4TXV0YXRpb25DYWxsYmFjazo6aGFuZGxlRXZlbnQoTXV0YXRpb25SZWNv
cmRBcnJheSogbXV0YXRpb25zLCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKiBvYnNlcnZlcikKK2Jv
b2wgVjhNdXRhdGlvbkNhbGxiYWNrOjpoYW5kbGVFdmVudChNdXRhdGlvblJlY29yZEFycmF5KiBt
dXRhdGlvbnMsIE11dGF0aW9uT2JzZXJ2ZXIqIG9ic2VydmVyKQogewogICAgIEFTU0VSVChtdXRh
dGlvbnMpOwogICAgIGlmICghbXV0YXRpb25zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hNDNkNmU5MWRkNmQzYjk4Njc5MTI3NDE2MWUzZDI3OGRiMzE2ODEyCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRp
b25PYnNlcnZlckN1c3RvbS5jcHAKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KworI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCisKKyNpbmNsdWRlICJWOE11dGF0aW9u
T2JzZXJ2ZXIuaCIKKworI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKKyNpbmNsdWRlICJW
OEJpbmRpbmcuaCIKKyNpbmNsdWRlICJWOEJpbmRpbmdNYWNyb3MuaCIKKyNpbmNsdWRlICJWOERP
TVdyYXBwZXIuaCIKKyNpbmNsdWRlICJWOE11dGF0aW9uQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJW
OFByb3h5LmgiCisjaW5jbHVkZSAiVjhVdGlsaXRpZXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhNdXRhdGlvbk9ic2VydmVyOjpjb25zdHJ1Y3Rv
ckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit7CisgICAgSU5DX1NUQVRTKCJE
T00uTXV0YXRpb25PYnNlcnZlci5Db25zdHJ1Y3RvciIpOworCisgICAgaWYgKCFhcmdzLklzQ29u
c3RydWN0Q2FsbCgpKQorICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoIkRP
TSBvYmplY3QgY29uc3RydWN0b3IgY2Fubm90IGJlIGNhbGxlZCBhcyBhIGZ1bmN0aW9uLiIsIGFy
Z3MuR2V0SXNvbGF0ZSgpKTsKKworICAgIGlmIChDb25zdHJ1Y3Rvck1vZGU6OmN1cnJlbnQoKSA9
PSBDb25zdHJ1Y3Rvck1vZGU6OldyYXBFeGlzdGluZ09iamVjdCkKKyAgICAgICAgcmV0dXJuIGFy
Z3MuSG9sZGVyKCk7CisKKyAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCisgICAgICAgIHJldHVy
biBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgp
KTsKKworICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGFyZyA9IGFyZ3NbMF07CisgICAgaWYgKCFh
cmctPklzT2JqZWN0KCkpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKFRZUEVfTUlTTUFUQ0hf
RVJSLCBhcmdzLkdldElzb2xhdGUoKSk7CisKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0ID0gZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIGlmICghY29udGV4dCkK
KyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93RXJyb3IoVjhQcm94eTo6UmVmZXJlbmNlRXJy
b3IsICJNdXRhdGlvbk9ic2VydmVyIGNvbnN0cnVjdG9yJ3MgYXNzb2NpYXRlZCBmcmFtZSB1bmF2
YWlsYWJsZSIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKworICAgIFJlZlB0cjxNdXRhdGlvbkNhbGxi
YWNrPiBjYWxsYmFjayA9IFY4TXV0YXRpb25DYWxsYmFjazo6Y3JlYXRlKGFyZywgY29udGV4dCk7
CisgICAgUmVmUHRyPE11dGF0aW9uT2JzZXJ2ZXI+IG9ic2VydmVyID0gTXV0YXRpb25PYnNlcnZl
cjo6Y3JlYXRlKGNhbGxiYWNrLnJlbGVhc2UoKSk7CisKKyAgICBWOERPTVdyYXBwZXI6OnNldERP
TVdyYXBwZXIoYXJncy5Ib2xkZXIoKSwgJmluZm8sIG9ic2VydmVyLmdldCgpKTsKKyAgICBWOERP
TVdyYXBwZXI6OnNldEpTV3JhcHBlckZvckRPTU9iamVjdChvYnNlcnZlci5yZWxlYXNlKCksIHY4
OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+OjpOZXcoYXJncy5Ib2xkZXIoKSkpOworICAgIHJldHVy
biBhcmdzLkhvbGRlcigpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRNdXRhdGlvbk9ic2VydmVy
Q3VzdG9tLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzY2Nzg1NGIyOTcyYjUy
ZThmOGVmOWFiMGM2ZDZiZGI1MzNlNzk0Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJL
aXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDc4ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0g
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQot
Ci0jaW5jbHVkZSAiVjhXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCi0KLSNpbmNsdWRlICJWOEJp
bmRpbmcuaCIKLSNpbmNsdWRlICJWOEJpbmRpbmdNYWNyb3MuaCIKLSNpbmNsdWRlICJWOERPTVdy
YXBwZXIuaCIKLSNpbmNsdWRlICJWOE11dGF0aW9uQ2FsbGJhY2suaCIKLSNpbmNsdWRlICJWOFBy
b3h5LmgiCi0jaW5jbHVkZSAiVjhVdGlsaXRpZXMuaCIKLSNpbmNsdWRlICJXZWJLaXRNdXRhdGlv
bk9ic2VydmVyLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IFY4V2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2
ODo6QXJndW1lbnRzJiBhcmdzKQotewotICAgIElOQ19TVEFUUygiRE9NLldlYktpdE11dGF0aW9u
T2JzZXJ2ZXIuQ29uc3RydWN0b3IiKTsKLQotICAgIGlmICghYXJncy5Jc0NvbnN0cnVjdENhbGwo
KSkKLSAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93VHlwZUVycm9yKCJET00gb2JqZWN0IGNv
bnN0cnVjdG9yIGNhbm5vdCBiZSBjYWxsZWQgYXMgYSBmdW5jdGlvbi4iLCBhcmdzLkdldElzb2xh
dGUoKSk7Ci0KLSAgICBpZiAoQ29uc3RydWN0b3JNb2RlOjpjdXJyZW50KCkgPT0gQ29uc3RydWN0
b3JNb2RlOjpXcmFwRXhpc3RpbmdPYmplY3QpCi0gICAgICAgIHJldHVybiBhcmdzLkhvbGRlcigp
OwotCi0gICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQotICAgICAgICByZXR1cm4gVjhQcm94eTo6
dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7Ci0KLSAgICB2
ODo6TG9jYWw8djg6OlZhbHVlPiBhcmcgPSBhcmdzWzBdOwotICAgIGlmICghYXJnLT5Jc09iamVj
dCgpKQotICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihUWVBFX01JU01BVENIX0VSUiwgYXJncy5H
ZXRJc29sYXRlKCkpOwotCi0gICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCA9IGdl
dFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKLSAgICBpZiAoIWNvbnRleHQpCi0gICAgICAgIHJl
dHVybiBWOFByb3h5Ojp0aHJvd0Vycm9yKFY4UHJveHk6OlJlZmVyZW5jZUVycm9yLCAiV2ViS2l0
TXV0YXRpb25PYnNlcnZlciBjb25zdHJ1Y3RvcidzIGFzc29jaWF0ZWQgZnJhbWUgdW5hdmFpbGFi
bGUiLCBhcmdzLkdldElzb2xhdGUoKSk7Ci0KLSAgICBSZWZQdHI8TXV0YXRpb25DYWxsYmFjaz4g
Y2FsbGJhY2sgPSBWOE11dGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZShhcmcsIGNvbnRleHQpOwotICAg
IFJlZlB0cjxXZWJLaXRNdXRhdGlvbk9ic2VydmVyPiBvYnNlcnZlciA9IFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXI6OmNyZWF0ZShjYWxsYmFjay5yZWxlYXNlKCkpOwotCi0gICAgVjhET01XcmFwcGVy
OjpzZXRET01XcmFwcGVyKGFyZ3MuSG9sZGVyKCksICZpbmZvLCBvYnNlcnZlci5nZXQoKSk7Ci0g
ICAgVjhET01XcmFwcGVyOjpzZXRKU1dyYXBwZXJGb3JET01PYmplY3Qob2JzZXJ2ZXIucmVsZWFz
ZSgpLCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Pjo6TmV3KGFyZ3MuSG9sZGVyKCkpKTsKLSAg
ICByZXR1cm4gYXJncy5Ib2xkZXIoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0j
ZW5kaWYgLy8gRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGFyYWN0
ZXJEYXRhLmNwcAppbmRleCA3NjE5OGZiZTVkODAxNmYxOTBlYzgzNzViMDA1ODkxM2NiM2Q3ZDc5
Li4zMzk0MDM4NTEzZGFlOTkxNzI0NTU5YjgxM2UzY2RkYmRjM2MzZjhjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0NoYXJhY3RlckRhdGEuY3BwCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSAiTm9kZVJl
bmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCiAjaW5jbHVkZSAiVGV4
dEJyZWFrSXRlcmF0b3IuaCIKLSNpbmNsdWRlICJXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCiAK
IHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9D
aGlsZExpc3RNdXRhdGlvblNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRMaXN0TXV0
YXRpb25TY29wZS5oCmluZGV4IDZkZDUyMzY0MGI2MWYwNmYzYTUzYmE1NzViNWNhZWQ5MjM3YzQw
NWYuLmJjZTI2NzUxYzBmNDg2MmQwYzRhNTM5MGZjYzVjM2ZhZWQ0YzUwMDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0NoaWxkTGlzdE11dGF0aW9uU2NvcGUuaApAQCAtMzQsOCArMzQsOCBAQAog
I2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgor
I2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJOb2RlLmgiCi0jaW5jbHVk
ZSAiV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAj
aW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgpAQCAt
NDYsNyArNDYsNyBAQCBjbGFzcyBDaGlsZExpc3RNdXRhdGlvblNjb3BlIHsKICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShDaGlsZExpc3RNdXRhdGlvblNjb3BlKTsKIHB1YmxpYzoKICAgICBDaGls
ZExpc3RNdXRhdGlvblNjb3BlKE5vZGUqIHRhcmdldCkKLSAgICAgICAgOiBtX3RhcmdldCh0YXJn
ZXQtPmRvY3VtZW50KCktPmhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXI6OkNoaWxkTGlzdCkgPyB0YXJnZXQgOiAwKQorICAgICAgICA6IG1fdGFyZ2V0KHRh
cmdldC0+ZG9jdW1lbnQoKS0+aGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNl
cnZlcjo6Q2hpbGRMaXN0KSA/IHRhcmdldCA6IDApCiAgICAgewogICAgICAgICBpZiAobV90YXJn
ZXQpCiAgICAgICAgICAgICBNdXRhdGlvbkFjY3VtdWxhdGlvblJvdXRlcjo6aW5zdGFuY2UoKS0+
aW5jcmVtZW50U2NvcGluZ0xldmVsKG1fdGFyZ2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9ET01BbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUu
Y3BwCmluZGV4IGQzZDQ5MDJkNGM4NmFkZDY1YjUxZjM0NGRhMmI5OTBiYmUzYWIzMGYuLjU5MmQ3
Mjk5MmFjNGYzNGYwYjNmOWIwYzAzM2IyOGFiYTJlODgzNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFs
bEluT25lLmNwcApAQCAtOTIsNiArOTIsNyBAQAogI2luY2x1ZGUgIk1vdXNlRXZlbnQuY3BwIgog
I2luY2x1ZGUgIk1vdXNlUmVsYXRlZEV2ZW50LmNwcCIKICNpbmNsdWRlICJNdXRhdGlvbkV2ZW50
LmNwcCIKKyNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyLmNwcCIKICNpbmNsdWRlICJNdXRhdGlv
bk9ic2VydmVySW50ZXJlc3RHcm91cC5jcHAiCiAjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlclJl
Z2lzdHJhdGlvbi5jcHAiCiAjaW5jbHVkZSAiTXV0YXRpb25SZWNvcmQuY3BwIgpAQCAtMTQyLDcg
KzE0Myw2IEBACiAjaW5jbHVkZSAiVXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3IuY3BwIgogI2lu
Y2x1ZGUgIlZpZXdwb3J0QXJndW1lbnRzLmNwcCIKICNpbmNsdWRlICJXZWJLaXRBbmltYXRpb25F
dmVudC5jcHAiCi0jaW5jbHVkZSAiV2ViS2l0TXV0YXRpb25PYnNlcnZlci5jcHAiCiAjaW5jbHVk
ZSAiV2ViS2l0TmFtZWRGbG93LmNwcCIKICNpbmNsdWRlICJXZWJLaXRUcmFuc2l0aW9uRXZlbnQu
Y3BwIgogI2luY2x1ZGUgIldoZWVsRXZlbnQuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA2
ODg4NWZiMzNmNDk1MjE0YzMxYTM3MDMzOGZlYzgwNGI0YjExY2FkLi5kZWNmNzVmZDE5ZjcyMDIw
NjU3MTBhZWFiMWUzZmYyYTk4ZjVlMDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMzgsNiAr
MzgsNyBAQAogI2luY2x1ZGUgIkluc3BlY3RvckNvdW50ZXJzLmgiCiAjaW5jbHVkZSAiSW50UmVj
dC5oIgogI2luY2x1ZGUgIkxheW91dFR5cGVzLmgiCisjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZl
ci5oIgogI2luY2x1ZGUgIlBhZ2VWaXNpYmlsaXR5U3RhdGUuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bVNjcmVlbi5oIgogI2luY2x1ZGUgIlF1YWxpZmllZE5hbWUuaCIKQEAgLTQ3LDcgKzQ4LDYgQEAK
ICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgIlRyZWVTY29wZS5oIgogI2luY2x1ZGUgIlZp
ZXdwb3J0QXJndW1lbnRzLmgiCi0jaW5jbHVkZSAiV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oIgog
I2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9GaXhlZEFycmF5Lmg+CiAjaW5j
bHVkZSA8d3RmL093blB0ci5oPgpAQCAtNzcxLDcgKzc3MSw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IGFkZExpc3RlbmVyVHlwZUlmTmVlZGVkKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlKTsK
IAogI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCi0gICAgYm9vbCBoYXNNdXRhdGlvbk9i
c2VydmVyc09mVHlwZShXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvblR5cGUgdHlwZSkg
Y29uc3QKKyAgICBib29sIGhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKE11dGF0aW9uT2JzZXJ2
ZXI6Ok11dGF0aW9uVHlwZSB0eXBlKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fbXV0
YXRpb25PYnNlcnZlclR5cGVzICYgdHlwZTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5k
ZXggOWRhMTU2YjRmMWEwYTkwZWYyOGU3MjgyZmVkYTYxNjFhMzllZmJiMy4uMjQzYTZjMWY0MTY2
ZjIzMmM1OTIwYTU2OTRkYzI0MzQ1NmVhZGQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAt
NjgsNyArNjgsNiBAQAogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3Iu
aCIKICNpbmNsdWRlICJWb2lkQ2FsbGJhY2suaCIKLSNpbmNsdWRlICJXZWJLaXRNdXRhdGlvbk9i
c2VydmVyLmgiCiAjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9uTGlzdC5oIgogI2luY2x1ZGUgIlhN
TE5TTmFtZXMuaCIKICNpbmNsdWRlICJYTUxOYW1lcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uQ2FsbGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlv
bkNhbGxiYWNrLmgKaW5kZXggODA3MzljODhhZDc4YjEzMTU5OTJkOGY2NjZkOTBiMjQwYWU3ZWFk
OS4uMTE5MTk3YWJlMzRiMWRhOTA0ZDQyMmJiZjhlMGYxZjc3ZTc3NmRmMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uQ2FsbGJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTXV0YXRpb25DYWxsYmFjay5oCkBAIC00MCw3ICs0MCw3IEBACiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIE11dGF0aW9uUmVjb3JkOwotY2xhc3MgV2ViS2l0TXV0YXRpb25PYnNl
cnZlcjsKK2NsYXNzIE11dGF0aW9uT2JzZXJ2ZXI7CiAKIHR5cGVkZWYgVmVjdG9yPFJlZlB0cjxN
dXRhdGlvblJlY29yZD4gPiBNdXRhdGlvblJlY29yZEFycmF5OwogCkBAIC00OCw3ICs0OCw3IEBA
IGNsYXNzIE11dGF0aW9uQ2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxNdXRhdGlvbkNhbGxi
YWNrPiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+TXV0YXRpb25DYWxsYmFjaygpIHsgfQogCi0g
ICAgdmlydHVhbCBib29sIGhhbmRsZUV2ZW50KE11dGF0aW9uUmVjb3JkQXJyYXkqLCBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyKikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChNdXRh
dGlvblJlY29yZEFycmF5KiwgTXV0YXRpb25PYnNlcnZlciopID0gMDsKIH07CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbkNhbGxiYWNrLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9NdXRhdGlvbkNhbGxiYWNrLmlkbAppbmRleCAxNjM4MTcxNGM4MDllYTdjYTQ3
ODRjNmIzYjAzMTFiODk3OWY4MTc1Li4yYWVjZDliZTllNDFkZTRmMzJlNDZmOWQwNWIwZWJmMmNl
NDg1MGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25DYWxsYmFjay5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uQ2FsbGJhY2suaWRsCkBAIC0zMyw2
ICszMyw2IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgQ29uZGl0aW9uYWw9TVVUQVRJT05fT0JT
RVJWRVJTLAogICAgICAgICBDYWxsYmFjawogICAgIF0gTXV0YXRpb25DYWxsYmFjayB7Ci0gICAg
ICAgIFtDdXN0b21dIGJvb2xlYW4gaGFuZGxlRXZlbnQoaW4gTXV0YXRpb25SZWNvcmRBcnJheSBt
dXRhdGlvbnMsIGluIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIgb2JzZXJ2ZXIpOworICAgICAgICBb
Q3VzdG9tXSBib29sZWFuIGhhbmRsZUV2ZW50KGluIE11dGF0aW9uUmVjb3JkQXJyYXkgbXV0YXRp
b25zLCBpbiBNdXRhdGlvbk9ic2VydmVyIG9ic2VydmVyKTsKICAgICB9OwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE5MjkxMWYwYWJjMmRhNTg0
YjY0MWE0NmRiYjU2OGVmMDFmMTRiOTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAKQEAgLTAsMCArMSwyMjEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisKKyNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQorCisjaW5jbHVkZSAiTXV0
YXRpb25PYnNlcnZlci5oIgorCisjaW5jbHVkZSAiRGljdGlvbmFyeS5oIgorI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIk11dGF0aW9u
Q2FsbGJhY2suaCIKKyNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmgiCisj
aW5jbHVkZSAiTXV0YXRpb25SZWNvcmQuaCIKKyNpbmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSA8
YWxnb3JpdGhtPgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL01haW5U
aHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kworc3RhdGljIHVuc2lnbmVkIHNfb2JzZXJ2ZXJQcmlvcml0eSA9IDA7CisKK3N0cnVjdCBNdXRh
dGlvbk9ic2VydmVyOjpPYnNlcnZlckxlc3NUaGFuIHsKKyAgICBib29sIG9wZXJhdG9yKCkoY29u
c3QgUmVmUHRyPE11dGF0aW9uT2JzZXJ2ZXI+JiBsaHMsIGNvbnN0IFJlZlB0cjxNdXRhdGlvbk9i
c2VydmVyPiYgcmhzKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGxocy0+bV9wcmlvcml0eSA8IHJo
cy0+bV9wcmlvcml0eTsKKyAgICB9Cit9OworCitQYXNzUmVmUHRyPE11dGF0aW9uT2JzZXJ2ZXI+
IE11dGF0aW9uT2JzZXJ2ZXI6OmNyZWF0ZShQYXNzUmVmUHRyPE11dGF0aW9uQ2FsbGJhY2s+IGNh
bGxiYWNrKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBNdXRhdGlvbk9ic2VydmVyKGNhbGxiYWNrKSk7Cit9CisKK011dGF0aW9uT2JzZXJ2
ZXI6Ok11dGF0aW9uT2JzZXJ2ZXIoUGFzc1JlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPiBjYWxsYmFj
aykKKyAgICA6IG1fY2FsbGJhY2soY2FsbGJhY2spCisgICAgLCBtX3ByaW9yaXR5KHNfb2JzZXJ2
ZXJQcmlvcml0eSsrKQoreworfQorCitNdXRhdGlvbk9ic2VydmVyOjp+TXV0YXRpb25PYnNlcnZl
cigpCit7CisgICAgQVNTRVJUKG1fcmVnaXN0cmF0aW9ucy5pc0VtcHR5KCkpOworfQorCitib29s
IE11dGF0aW9uT2JzZXJ2ZXI6OnZhbGlkYXRlT3B0aW9ucyhNdXRhdGlvbk9ic2VydmVyT3B0aW9u
cyBvcHRpb25zKQoreworICAgIHJldHVybiAob3B0aW9ucyAmIChBdHRyaWJ1dGVzIHwgQ2hhcmFj
dGVyRGF0YSB8IENoaWxkTGlzdCkpCisgICAgICAgICYmICgob3B0aW9ucyAmIEF0dHJpYnV0ZXMp
IHx8ICEob3B0aW9ucyAmIEF0dHJpYnV0ZU9sZFZhbHVlKSkKKyAgICAgICAgJiYgKChvcHRpb25z
ICYgQXR0cmlidXRlcykgfHwgIShvcHRpb25zICYgQXR0cmlidXRlRmlsdGVyKSkKKyAgICAgICAg
JiYgKChvcHRpb25zICYgQ2hhcmFjdGVyRGF0YSkgfHwgIShvcHRpb25zICYgQ2hhcmFjdGVyRGF0
YU9sZFZhbHVlKSk7Cit9CisKK3ZvaWQgTXV0YXRpb25PYnNlcnZlcjo6b2JzZXJ2ZShOb2RlKiBu
b2RlLCBjb25zdCBEaWN0aW9uYXJ5JiBvcHRpb25zRGljdGlvbmFyeSwgRXhjZXB0aW9uQ29kZSYg
ZWMpCit7CisgICAgaWYgKCFub2RlKSB7CisgICAgICAgIGVjID0gTk9UX0ZPVU5EX0VSUjsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChvcHRpb25zRGljdGlvbmFyeS5pc1VuZGVm
aW5lZE9yTnVsbCgpKSB7CisgICAgICAgIGVjID0gVFlQRV9NSVNNQVRDSF9FUlI7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3Qgc3RydWN0IHsKKyAgICAgICAgY29u
c3QgY2hhciogbmFtZTsKKyAgICAgICAgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgdmFsdWU7Cisg
ICAgfSBib29sZWFuT3B0aW9uc1tdID0geworICAgICAgICB7ICJjaGlsZExpc3QiLCBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyOjpDaGlsZExpc3QgfSwKKyAgICAgICAgeyAiYXR0cmlidXRlcyIsIFdl
YktpdE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMgfSwKKyAgICAgICAgeyAiY2hhcmFjdGVy
RGF0YSIsIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OkNoYXJhY3RlckRhdGEgfSwKKyAgICAgICAg
eyAic3VidHJlZSIsIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OlN1YnRyZWUgfSwKKyAgICAgICAg
eyAiYXR0cmlidXRlT2xkVmFsdWUiLCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVP
bGRWYWx1ZSB9LAorICAgICAgICB7ICJjaGFyYWN0ZXJEYXRhT2xkVmFsdWUiLCBXZWJLaXRNdXRh
dGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhT2xkVmFsdWUgfQorICAgIH07CisgICAgTXV0YXRp
b25PYnNlcnZlck9wdGlvbnMgb3B0aW9ucyA9IDA7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IHNpemVvZihib29sZWFuT3B0aW9ucykgLyBzaXplb2YoYm9vbGVhbk9wdGlvbnNbMF0pOyAr
K2kpIHsKKyAgICAgICAgYm9vbCB2YWx1ZSA9IGZhbHNlOworICAgICAgICBpZiAob3B0aW9uc0Rp
Y3Rpb25hcnkuZ2V0KGJvb2xlYW5PcHRpb25zW2ldLm5hbWUsIHZhbHVlKSAmJiB2YWx1ZSkKKyAg
ICAgICAgICAgIG9wdGlvbnMgfD0gYm9vbGVhbk9wdGlvbnNbaV0udmFsdWU7CisgICAgfQorCisg
ICAgSGFzaFNldDxBdG9taWNTdHJpbmc+IGF0dHJpYnV0ZUZpbHRlcjsKKyAgICBpZiAob3B0aW9u
c0RpY3Rpb25hcnkuZ2V0KCJhdHRyaWJ1dGVGaWx0ZXIiLCBhdHRyaWJ1dGVGaWx0ZXIpKQorICAg
ICAgICBvcHRpb25zIHw9IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZUZpbHRlcjsK
KworICAgIGlmICghdmFsaWRhdGVPcHRpb25zKG9wdGlvbnMpKSB7CisgICAgICAgIGVjID0gU1lO
VEFYX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIE11dGF0aW9uT2JzZXJ2ZXJS
ZWdpc3RyYXRpb24qIHJlZ2lzdHJhdGlvbiA9IG5vZGUtPnJlZ2lzdGVyTXV0YXRpb25PYnNlcnZl
cih0aGlzKTsKKyAgICByZWdpc3RyYXRpb24tPnJlc2V0T2JzZXJ2YXRpb24ob3B0aW9ucywgYXR0
cmlidXRlRmlsdGVyKTsKKworICAgIG5vZGUtPmRvY3VtZW50KCktPmFkZE11dGF0aW9uT2JzZXJ2
ZXJUeXBlcyhyZWdpc3RyYXRpb24tPm11dGF0aW9uVHlwZXMoKSk7Cit9CisKK1ZlY3RvcjxSZWZQ
dHI8TXV0YXRpb25SZWNvcmQ+ID4gTXV0YXRpb25PYnNlcnZlcjo6dGFrZVJlY29yZHMoKQorewor
ICAgIFZlY3RvcjxSZWZQdHI8TXV0YXRpb25SZWNvcmQ+ID4gcmVjb3JkczsKKyAgICByZWNvcmRz
LnN3YXAobV9yZWNvcmRzKTsKKyAgICByZXR1cm4gcmVjb3JkczsKK30KKwordm9pZCBNdXRhdGlv
bk9ic2VydmVyOjpkaXNjb25uZWN0KCkKK3sKKyAgICBtX3JlY29yZHMuY2xlYXIoKTsKKyAgICBI
YXNoU2V0PE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qPiByZWdpc3RyYXRpb25zKG1fcmVn
aXN0cmF0aW9ucyk7CisgICAgZm9yIChIYXNoU2V0PE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRp
b24qPjo6aXRlcmF0b3IgaXRlciA9IHJlZ2lzdHJhdGlvbnMuYmVnaW4oKTsgaXRlciAhPSByZWdp
c3RyYXRpb25zLmVuZCgpOyArK2l0ZXIpCisgICAgICAgICgqaXRlciktPnVucmVnaXN0ZXIoKTsK
K30KKwordm9pZCBNdXRhdGlvbk9ic2VydmVyOjpvYnNlcnZhdGlvblN0YXJ0ZWQoTXV0YXRpb25P
YnNlcnZlclJlZ2lzdHJhdGlvbiogcmVnaXN0cmF0aW9uKQoreworICAgIEFTU0VSVCghbV9yZWdp
c3RyYXRpb25zLmNvbnRhaW5zKHJlZ2lzdHJhdGlvbikpOworICAgIG1fcmVnaXN0cmF0aW9ucy5h
ZGQocmVnaXN0cmF0aW9uKTsKK30KKwordm9pZCBNdXRhdGlvbk9ic2VydmVyOjpvYnNlcnZhdGlv
bkVuZGVkKE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qIHJlZ2lzdHJhdGlvbikKK3sKKyAg
ICBBU1NFUlQobV9yZWdpc3RyYXRpb25zLmNvbnRhaW5zKHJlZ2lzdHJhdGlvbikpOworICAgIG1f
cmVnaXN0cmF0aW9ucy5yZW1vdmUocmVnaXN0cmF0aW9uKTsKK30KKwordHlwZWRlZiBIYXNoU2V0
PFJlZlB0cjxNdXRhdGlvbk9ic2VydmVyPiA+IE11dGF0aW9uT2JzZXJ2ZXJTZXQ7CisKK3N0YXRp
YyBNdXRhdGlvbk9ic2VydmVyU2V0JiBhY3RpdmVNdXRhdGlvbk9ic2VydmVycygpCit7CisgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChNdXRhdGlvbk9ic2VydmVyU2V0LCBhY3RpdmVPYnNlcnZlcnMs
ICgpKTsKKyAgICByZXR1cm4gYWN0aXZlT2JzZXJ2ZXJzOworfQorCit2b2lkIE11dGF0aW9uT2Jz
ZXJ2ZXI6OmVucXVldWVNdXRhdGlvblJlY29yZChQYXNzUmVmUHRyPE11dGF0aW9uUmVjb3JkPiBt
dXRhdGlvbikKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIG1fcmVjb3Jkcy5h
cHBlbmQobXV0YXRpb24pOworICAgIGFjdGl2ZU11dGF0aW9uT2JzZXJ2ZXJzKCkuYWRkKHRoaXMp
OworfQorCit2b2lkIE11dGF0aW9uT2JzZXJ2ZXI6OnNldEhhc1RyYW5zaWVudFJlZ2lzdHJhdGlv
bigpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBhY3RpdmVNdXRhdGlvbk9i
c2VydmVycygpLmFkZCh0aGlzKTsKK30KKwordm9pZCBNdXRhdGlvbk9ic2VydmVyOjpkZWxpdmVy
KCkKK3sKKyAgICAvLyBDYWxsaW5nIGNsZWFyVHJhbnNpZW50UmVnaXN0cmF0aW9ucygpIGNhbiBt
b2RpZnkgbV9yZWdpc3RyYXRpb25zLCBzbyBpdCdzIG5lY2Vzc2FyeQorICAgIC8vIHRvIG1ha2Ug
YSBjb3B5IG9mIHRoZSB0cmFuc2llbnQgcmVnaXN0cmF0aW9ucyBiZWZvcmUgb3BlcmF0aW5nIG9u
IHRoZW0uCisgICAgVmVjdG9yPE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qLCAxPiB0cmFu
c2llbnRSZWdpc3RyYXRpb25zOworICAgIGZvciAoSGFzaFNldDxNdXRhdGlvbk9ic2VydmVyUmVn
aXN0cmF0aW9uKj46Oml0ZXJhdG9yIGl0ZXIgPSBtX3JlZ2lzdHJhdGlvbnMuYmVnaW4oKTsgaXRl
ciAhPSBtX3JlZ2lzdHJhdGlvbnMuZW5kKCk7ICsraXRlcikgeworICAgICAgICBpZiAoKCppdGVy
KS0+aGFzVHJhbnNpZW50UmVnaXN0cmF0aW9ucygpKQorICAgICAgICAgICAgdHJhbnNpZW50UmVn
aXN0cmF0aW9ucy5hcHBlbmQoKml0ZXIpOworICAgIH0KKyAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IHRyYW5zaWVudFJlZ2lzdHJhdGlvbnMuc2l6ZSgpOyArK2kpCisgICAgICAgIHRyYW5zaWVu
dFJlZ2lzdHJhdGlvbnNbaV0tPmNsZWFyVHJhbnNpZW50UmVnaXN0cmF0aW9ucygpOworCisgICAg
aWYgKG1fcmVjb3Jkcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIFZlY3RvcjxS
ZWZQdHI8TXV0YXRpb25SZWNvcmQ+ID4gcmVjb3JkczsKKyAgICByZWNvcmRzLnN3YXAobV9yZWNv
cmRzKTsKKworICAgIG1fY2FsbGJhY2stPmhhbmRsZUV2ZW50KCZyZWNvcmRzLCB0aGlzKTsKK30K
Kwordm9pZCBNdXRhdGlvbk9ic2VydmVyOjpkZWxpdmVyQWxsTXV0YXRpb25zKCkKK3sKKyAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHN0YXRpYyBib29sIGRlbGl2ZXJ5SW5Qcm9ncmVz
cyA9IGZhbHNlOworICAgIGlmIChkZWxpdmVyeUluUHJvZ3Jlc3MpCisgICAgICAgIHJldHVybjsK
KyAgICBkZWxpdmVyeUluUHJvZ3Jlc3MgPSB0cnVlOworCisgICAgd2hpbGUgKCFhY3RpdmVNdXRh
dGlvbk9ic2VydmVycygpLmlzRW1wdHkoKSkgeworICAgICAgICBWZWN0b3I8UmVmUHRyPE11dGF0
aW9uT2JzZXJ2ZXI+ID4gb2JzZXJ2ZXJzOworICAgICAgICBjb3B5VG9WZWN0b3IoYWN0aXZlTXV0
YXRpb25PYnNlcnZlcnMoKSwgb2JzZXJ2ZXJzKTsKKyAgICAgICAgYWN0aXZlTXV0YXRpb25PYnNl
cnZlcnMoKS5jbGVhcigpOworICAgICAgICBzdGQ6OnNvcnQob2JzZXJ2ZXJzLmJlZ2luKCksIG9i
c2VydmVycy5lbmQoKSwgT2JzZXJ2ZXJMZXNzVGhhbigpKTsKKyAgICAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBvYnNlcnZlcnMuc2l6ZSgpOyArK2kpCisgICAgICAgICAgICBvYnNlcnZlcnNb
aV0tPmRlbGl2ZXIoKTsKKyAgICB9CisKKyAgICBkZWxpdmVyeUluUHJvZ3Jlc3MgPSBmYWxzZTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1VVEFUSU9O
X09CU0VSVkVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2Vy
dmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjdmZDM3MjA2OTZkZmM1M2JmNTc1NDgzMzVjZmI1MWI0M2IxMjBiYmUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5oCkBAIC0wLDAgKzEsMTA4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBNdXRhdGlvbk9ic2VydmVyX2gKKyNkZWZpbmUgTXV0YXRpb25PYnNlcnZlcl9o
CisKKyNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQorCisjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
QXRvbWljU3RyaW5nSGFzaC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERpY3Rp
b25hcnk7CitjbGFzcyBNdXRhdGlvbkNhbGxiYWNrOworY2xhc3MgTXV0YXRpb25PYnNlcnZlclJl
Z2lzdHJhdGlvbjsKK2NsYXNzIE11dGF0aW9uUmVjb3JkOworY2xhc3MgTm9kZTsKKwordHlwZWRl
ZiBpbnQgRXhjZXB0aW9uQ29kZTsKKwordHlwZWRlZiB1bnNpZ25lZCBjaGFyIE11dGF0aW9uT2Jz
ZXJ2ZXJPcHRpb25zOwordHlwZWRlZiB1bnNpZ25lZCBjaGFyIE11dGF0aW9uUmVjb3JkRGVsaXZl
cnlPcHRpb25zOworCitjbGFzcyBNdXRhdGlvbk9ic2VydmVyIDogcHVibGljIFJlZkNvdW50ZWQ8
TXV0YXRpb25PYnNlcnZlcj4geworcHVibGljOgorICAgIGVudW0gTXV0YXRpb25UeXBlIHsKKyAg
ICAgICAgQ2hpbGRMaXN0ID0gMSA8PCAwLAorICAgICAgICBBdHRyaWJ1dGVzID0gMSA8PCAxLAor
ICAgICAgICBDaGFyYWN0ZXJEYXRhID0gMSA8PCAyLAorCisgICAgICAgIEFsbE11dGF0aW9uVHlw
ZXMgPSBDaGlsZExpc3QgfCBBdHRyaWJ1dGVzIHwgQ2hhcmFjdGVyRGF0YQorICAgIH07CisKKyAg
ICBlbnVtIE9ic2VydmF0aW9uRmxhZ3MgIHsKKyAgICAgICAgU3VidHJlZSA9IDEgPDwgMywKKyAg
ICAgICAgQXR0cmlidXRlRmlsdGVyID0gMSA8PCA0CisgICAgfTsKKworICAgIGVudW0gRGVsaXZl
cnlGbGFncyB7CisgICAgICAgIEF0dHJpYnV0ZU9sZFZhbHVlID0gMSA8PCA1LAorICAgICAgICBD
aGFyYWN0ZXJEYXRhT2xkVmFsdWUgPSAxIDw8IDYsCisgICAgfTsKKworICAgIHN0YXRpYyBQYXNz
UmVmUHRyPE11dGF0aW9uT2JzZXJ2ZXI+IGNyZWF0ZShQYXNzUmVmUHRyPE11dGF0aW9uQ2FsbGJh
Y2s+KTsKKyAgICBzdGF0aWMgdm9pZCBkZWxpdmVyQWxsTXV0YXRpb25zKCk7CisKKyAgICB+TXV0
YXRpb25PYnNlcnZlcigpOworCisgICAgdm9pZCBvYnNlcnZlKE5vZGUqLCBjb25zdCBEaWN0aW9u
YXJ5JiwgRXhjZXB0aW9uQ29kZSYpOworICAgIFZlY3RvcjxSZWZQdHI8TXV0YXRpb25SZWNvcmQ+
ID4gdGFrZVJlY29yZHMoKTsKKyAgICB2b2lkIGRpc2Nvbm5lY3QoKTsKKyAgICB2b2lkIG9ic2Vy
dmF0aW9uU3RhcnRlZChNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKik7CisgICAgdm9pZCBv
YnNlcnZhdGlvbkVuZGVkKE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qKTsKKyAgICB2b2lk
IGVucXVldWVNdXRhdGlvblJlY29yZChQYXNzUmVmUHRyPE11dGF0aW9uUmVjb3JkPik7CisgICAg
dm9pZCBzZXRIYXNUcmFuc2llbnRSZWdpc3RyYXRpb24oKTsKKworcHJpdmF0ZToKKyAgICBzdHJ1
Y3QgT2JzZXJ2ZXJMZXNzVGhhbjsKKworICAgIE11dGF0aW9uT2JzZXJ2ZXIoUGFzc1JlZlB0cjxN
dXRhdGlvbkNhbGxiYWNrPik7CisgICAgdm9pZCBkZWxpdmVyKCk7CisKKyAgICBzdGF0aWMgYm9v
bCB2YWxpZGF0ZU9wdGlvbnMoTXV0YXRpb25PYnNlcnZlck9wdGlvbnMpOworCisgICAgUmVmUHRy
PE11dGF0aW9uQ2FsbGJhY2s+IG1fY2FsbGJhY2s7CisgICAgVmVjdG9yPFJlZlB0cjxNdXRhdGlv
blJlY29yZD4gPiBtX3JlY29yZHM7CisgICAgSGFzaFNldDxNdXRhdGlvbk9ic2VydmVyUmVnaXN0
cmF0aW9uKj4gbV9yZWdpc3RyYXRpb25zOworICAgIHVuc2lnbmVkIG1fcHJpb3JpdHk7Cit9Owor
Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQorCisjZW5kaWYgLy8g
TXV0YXRpb25PYnNlcnZlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRp
b25PYnNlcnZlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5pZGwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMGFlOTkyZTZkYTc1ZTUxNTQzZjc3OThiNzE2MDY1OThkMTc5YWMyMQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmlkbApA
QCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisg
KiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisg
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworbW9kdWxlIGNvcmUgeworICAgIGludGVyZmFjZSBbCisgICAgICAgIENv
bmRpdGlvbmFsPU1VVEFUSU9OX09CU0VSVkVSUywKKyAgICAgICAgQ3VzdG9tQ29uc3RydWN0b3Is
CisgICAgICAgIENvbnN0cnVjdG9yUGFyYW1ldGVycz0xCisgICAgXSBNdXRhdGlvbk9ic2VydmVy
IHsKKyAgICAgICAgdm9pZCBvYnNlcnZlKGluIE5vZGUgdGFyZ2V0LCBpbiBEaWN0aW9uYXJ5IG9w
dGlvbnMpCisgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgc2VxdWVu
Y2U8TXV0YXRpb25SZWNvcmQ+IHRha2VSZWNvcmRzKCk7CisgICAgICAgIHZvaWQgZGlzY29ubmVj
dCgpOworICAgIH07Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25P
YnNlcnZlckludGVyZXN0R3JvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2Jz
ZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcAppbmRleCBkZDAyODhkNTEzOTNjZTJmMDcwYWU3NDA5MjQ4
NjdhYjM4NWJiNzljLi4yNGMwY2I1ODY1MTdlMDhiYzdhOGI0MDkzZjIxZDMxZTBkYjJkNjRlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3Jv
dXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RH
cm91cC5jcHAKQEAgLTQxLDEwICs0MSwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBh
c3NPd25QdHI8TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA+IE11dGF0aW9uT2JzZXJ2ZXJJ
bnRlcmVzdEdyb3VwOjpjcmVhdGVJZk5lZWRlZChOb2RlKiB0YXJnZXQsIFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSB0eXBlLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9u
cyBvbGRWYWx1ZUZsYWcsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpCitQYXNz
T3duUHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwPiBNdXRhdGlvbk9ic2VydmVySW50
ZXJlc3RHcm91cDo6Y3JlYXRlSWZOZWVkZWQoTm9kZSogdGFyZ2V0LCBNdXRhdGlvbk9ic2VydmVy
OjpNdXRhdGlvblR5cGUgdHlwZSwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgb2xkVmFs
dWVGbGFnLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKQogewotICAgIEFTU0VS
VCgodHlwZSA9PSBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVzICYmIGF0dHJpYnV0
ZU5hbWUpIHx8ICFhdHRyaWJ1dGVOYW1lKTsKLSAgICBIYXNoTWFwPFdlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4gb2JzZXJ2ZXJzOworICAgIEFT
U0VSVCgodHlwZSA9PSBNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVzICYmIGF0dHJpYnV0ZU5h
bWUpIHx8ICFhdHRyaWJ1dGVOYW1lKTsKKyAgICBIYXNoTWFwPE11dGF0aW9uT2JzZXJ2ZXIqLCBN
dXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4gb2JzZXJ2ZXJzOwogICAgIHRhcmdldC0+Z2V0
UmVnaXN0ZXJlZE11dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKG9ic2VydmVycywgdHlwZSwgYXR0cmli
dXRlTmFtZSk7CiAgICAgaWYgKG9ic2VydmVycy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwpAQCAtNTIsNyArNTIsNyBAQCBQYXNzT3duUHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRl
cmVzdEdyb3VwPiBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlSQogICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAob2JzZXJ2ZXJz
LCBvbGRWYWx1ZUZsYWcpKTsKIH0KIAotTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6Ok11
dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwKEhhc2hNYXA8V2ViS2l0TXV0YXRpb25PYnNlcnZl
ciosIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPiYgb2JzZXJ2ZXJzLCBNdXRhdGlvblJl
Y29yZERlbGl2ZXJ5T3B0aW9ucyBvbGRWYWx1ZUZsYWcpCitNdXRhdGlvbk9ic2VydmVySW50ZXJl
c3RHcm91cDo6TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAoSGFzaE1hcDxNdXRhdGlvbk9i
c2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+JiBvYnNlcnZlcnMsIE11dGF0
aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9sZFZhbHVlRmxhZykKICAgICA6IG1fb2xkVmFsdWVG
bGFnKG9sZFZhbHVlRmxhZykKIHsKICAgICBBU1NFUlQoIW9ic2VydmVycy5pc0VtcHR5KCkpOwpA
QCAtNjEsNyArNjEsNyBAQCBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6TXV0YXRpb25P
YnNlcnZlckludGVyZXN0R3JvdXAoSGFzaE1hcDxXZWJLaXRNdXRhdAogCiBib29sIE11dGF0aW9u
T2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjppc09sZFZhbHVlUmVxdWVzdGVkKCkKIHsKLSAgICBmb3Ig
KEhhc2hNYXA8V2ViS2l0TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlP
cHRpb25zPjo6aXRlcmF0b3IgaXRlciA9IG1fb2JzZXJ2ZXJzLmJlZ2luKCk7IGl0ZXIgIT0gbV9v
YnNlcnZlcnMuZW5kKCk7ICsraXRlcikgeworICAgIGZvciAoSGFzaE1hcDxNdXRhdGlvbk9ic2Vy
dmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+OjppdGVyYXRvciBpdGVyID0gbV9v
YnNlcnZlcnMuYmVnaW4oKTsgaXRlciAhPSBtX29ic2VydmVycy5lbmQoKTsgKytpdGVyKSB7CiAg
ICAgICAgIGlmIChoYXNPbGRWYWx1ZShpdGVyLT5zZWNvbmQpKQogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQpAQCAtNzIsOCArNzIsOCBAQCB2b2lkIE11dGF0aW9uT2JzZXJ2ZXJJbnRl
cmVzdEdyb3VwOjplbnF1ZXVlTXV0YXRpb25SZWNvcmQoUGFzc1JlZlB0cjxNdXRhdGlvblJlYwog
ewogICAgIFJlZlB0cjxNdXRhdGlvblJlY29yZD4gbXV0YXRpb24gPSBwcnBNdXRhdGlvbjsKICAg
ICBSZWZQdHI8TXV0YXRpb25SZWNvcmQ+IG11dGF0aW9uV2l0aE51bGxPbGRWYWx1ZTsKLSAgICBm
b3IgKEhhc2hNYXA8V2ViS2l0TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVjb3JkRGVsaXZl
cnlPcHRpb25zPjo6aXRlcmF0b3IgaXRlciA9IG1fb2JzZXJ2ZXJzLmJlZ2luKCk7IGl0ZXIgIT0g
bV9vYnNlcnZlcnMuZW5kKCk7ICsraXRlcikgewotICAgICAgICBXZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyKiBvYnNlcnZlciA9IGl0ZXItPmZpcnN0OworICAgIGZvciAoSGFzaE1hcDxNdXRhdGlvbk9i
c2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+OjppdGVyYXRvciBpdGVyID0g
bV9vYnNlcnZlcnMuYmVnaW4oKTsgaXRlciAhPSBtX29ic2VydmVycy5lbmQoKTsgKytpdGVyKSB7
CisgICAgICAgIE11dGF0aW9uT2JzZXJ2ZXIqIG9ic2VydmVyID0gaXRlci0+Zmlyc3Q7CiAgICAg
ICAgIGlmIChoYXNPbGRWYWx1ZShpdGVyLT5zZWNvbmQpKSB7CiAgICAgICAgICAgICBvYnNlcnZl
ci0+ZW5xdWV1ZU11dGF0aW9uUmVjb3JkKG11dGF0aW9uKTsKICAgICAgICAgICAgIGNvbnRpbnVl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVz
dEdyb3VwLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3Jv
dXAuaAppbmRleCA5MzMzMzRhMWI3Zjk1NzM4OWU1Y2JlZGVlMDVjMjY3N2I5NTAxMmRiLi43ZmRl
MzJlZWE5Mjg5YzZhMzgxNWY5MmI1MGQ2MDg3ZTlmY2ZmMWQyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuaApAQCAtMzQsOSArMzQs
OSBAQAogI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCiAKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgorI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJOb2RlLmgiCiAj
aW5jbHVkZSAiUXVhbGlmaWVkTmFtZS5oIgotI2luY2x1ZGUgIldlYktpdE11dGF0aW9uT2JzZXJ2
ZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRy
Lmg+CiAKQEAgLTQ2LDM5ICs0NiwzOSBAQCBjbGFzcyBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RH
cm91cCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NPd25QdHI8TXV0YXRpb25PYnNlcnZlcklu
dGVyZXN0R3JvdXA+IGNyZWF0ZUZvckNoaWxkTGlzdE11dGF0aW9uKE5vZGUqIHRhcmdldCkKICAg
ICB7Ci0gICAgICAgIGlmICghdGFyZ2V0LT5kb2N1bWVudCgpLT5oYXNNdXRhdGlvbk9ic2VydmVy
c09mVHlwZShXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpDaGlsZExpc3QpKQorICAgICAgICBpZiAo
IXRhcmdldC0+ZG9jdW1lbnQoKS0+aGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25P
YnNlcnZlcjo6Q2hpbGRMaXN0KSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAg
ICAgIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9sZFZhbHVlRmxhZyA9IDA7Ci0gICAg
ICAgIHJldHVybiBjcmVhdGVJZk5lZWRlZCh0YXJnZXQsIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6
OkNoaWxkTGlzdCwgb2xkVmFsdWVGbGFnKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUlmTmVlZGVk
KHRhcmdldCwgTXV0YXRpb25PYnNlcnZlcjo6Q2hpbGRMaXN0LCBvbGRWYWx1ZUZsYWcpOwogICAg
IH0KIAogICAgIHN0YXRpYyBQYXNzT3duUHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3Vw
PiBjcmVhdGVGb3JDaGFyYWN0ZXJEYXRhTXV0YXRpb24oTm9kZSogdGFyZ2V0KQogICAgIHsKLSAg
ICAgICAgaWYgKCF0YXJnZXQtPmRvY3VtZW50KCktPmhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBl
KFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OkNoYXJhY3RlckRhdGEpKQorICAgICAgICBpZiAoIXRh
cmdldC0+ZG9jdW1lbnQoKS0+aGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNl
cnZlcjo6Q2hhcmFjdGVyRGF0YSkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAg
ICAgICByZXR1cm4gY3JlYXRlSWZOZWVkZWQodGFyZ2V0LCBXZWJLaXRNdXRhdGlvbk9ic2VydmVy
OjpDaGFyYWN0ZXJEYXRhLCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhT2xk
VmFsdWUpOworICAgICAgICByZXR1cm4gY3JlYXRlSWZOZWVkZWQodGFyZ2V0LCBNdXRhdGlvbk9i
c2VydmVyOjpDaGFyYWN0ZXJEYXRhLCBNdXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhT2xk
VmFsdWUpOwogICAgIH0KIAogICAgIHN0YXRpYyBQYXNzT3duUHRyPE11dGF0aW9uT2JzZXJ2ZXJJ
bnRlcmVzdEdyb3VwPiBjcmVhdGVGb3JBdHRyaWJ1dGVzTXV0YXRpb24oTm9kZSogdGFyZ2V0LCBj
b25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKQogICAgIHsKLSAgICAgICAgaWYgKCF0
YXJnZXQtPmRvY3VtZW50KCktPmhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKFdlYktpdE11dGF0
aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMpKQorICAgICAgICBpZiAoIXRhcmdldC0+ZG9jdW1lbnQo
KS0+aGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRl
cykpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICByZXR1cm4gY3JlYXRl
SWZOZWVkZWQodGFyZ2V0LCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVzLCBXZWJL
aXRNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVPbGRWYWx1ZSwgJmF0dHJpYnV0ZU5hbWUpOwor
ICAgICAgICByZXR1cm4gY3JlYXRlSWZOZWVkZWQodGFyZ2V0LCBNdXRhdGlvbk9ic2VydmVyOjpB
dHRyaWJ1dGVzLCBNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVPbGRWYWx1ZSwgJmF0dHJpYnV0
ZU5hbWUpOwogICAgIH0KIAogICAgIGJvb2wgaXNPbGRWYWx1ZVJlcXVlc3RlZCgpOwogICAgIHZv
aWQgZW5xdWV1ZU11dGF0aW9uUmVjb3JkKFBhc3NSZWZQdHI8TXV0YXRpb25SZWNvcmQ+KTsKIAog
cHJpdmF0ZToKLSAgICBzdGF0aWMgUGFzc093blB0cjxNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RH
cm91cD4gY3JlYXRlSWZOZWVkZWQoTm9kZSogdGFyZ2V0LCBXZWJLaXRNdXRhdGlvbk9ic2VydmVy
OjpNdXRhdGlvblR5cGUsIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9sZFZhbHVlRmxh
ZywgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSA9IDApOwotICAgIE11dGF0aW9u
T2JzZXJ2ZXJJbnRlcmVzdEdyb3VwKEhhc2hNYXA8V2ViS2l0TXV0YXRpb25PYnNlcnZlciosIE11
dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPiYgb2JzZXJ2ZXJzLCBNdXRhdGlvblJlY29yZERl
bGl2ZXJ5T3B0aW9ucyBvbGRWYWx1ZUZsYWcpOworICAgIHN0YXRpYyBQYXNzT3duUHRyPE11dGF0
aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwPiBjcmVhdGVJZk5lZWRlZChOb2RlKiB0YXJnZXQsIE11
dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlv
bnMgb2xkVmFsdWVGbGFnLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lID0gMCk7
CisgICAgTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAoSGFzaE1hcDxNdXRhdGlvbk9ic2Vy
dmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+JiBvYnNlcnZlcnMsIE11dGF0aW9u
UmVjb3JkRGVsaXZlcnlPcHRpb25zIG9sZFZhbHVlRmxhZyk7CiAKICAgICBib29sIGhhc09sZFZh
bHVlKE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9wdGlvbnMpIHsgcmV0dXJuIG9wdGlv
bnMgJiBtX29sZFZhbHVlRmxhZzsgfQogCi0gICAgSGFzaE1hcDxXZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+IG1fb2JzZXJ2ZXJzOworICAgIEhh
c2hNYXA8TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPiBt
X29ic2VydmVyczsKICAgICBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBtX29sZFZhbHVl
RmxhZzsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2Vy
dmVyUmVnaXN0cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVy
UmVnaXN0cmF0aW9uLmNwcAppbmRleCAxOTBiODViZDg1NTNhZGFlNGEwZjZjZTBmM2E5NjhmYzZj
OTI2Yzk3Li41ODk1ZWY0OWZlYWE2YWM2MzNjMmQ5NGM5NjgzMjliOTVhOWUzNDM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3Bw
CkBAIC00MCwxMiArNDAsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzT3duUHRy
PE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24+IE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRp
b246OmNyZWF0ZShQYXNzUmVmUHRyPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI+IG9ic2VydmVyLCBO
b2RlKiByZWdpc3RyYXRpb25Ob2RlKQorUGFzc093blB0cjxNdXRhdGlvbk9ic2VydmVyUmVnaXN0
cmF0aW9uPiBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjpjcmVhdGUoUGFzc1JlZlB0cjxN
dXRhdGlvbk9ic2VydmVyPiBvYnNlcnZlciwgTm9kZSogcmVnaXN0cmF0aW9uTm9kZSkKIHsKICAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24ob2JzZXJ2
ZXIsIHJlZ2lzdHJhdGlvbk5vZGUpKTsKIH0KIAotTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlv
bjo6TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbihQYXNzUmVmUHRyPFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXI+IG9ic2VydmVyLCBOb2RlKiByZWdpc3RyYXRpb25Ob2RlKQorTXV0YXRpb25PYnNl
cnZlclJlZ2lzdHJhdGlvbjo6TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbihQYXNzUmVmUHRy
PE11dGF0aW9uT2JzZXJ2ZXI+IG9ic2VydmVyLCBOb2RlKiByZWdpc3RyYXRpb25Ob2RlKQogICAg
ICA6IG1fb2JzZXJ2ZXIob2JzZXJ2ZXIpCiAgICAgICwgbV9yZWdpc3RyYXRpb25Ob2RlKHJlZ2lz
dHJhdGlvbk5vZGUpCiAgICAgICwgbV9vcHRpb25zKDApCkBAIC0xMDUsMTYgKzEwNSwxNiBAQCB2
b2lkIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb246OnVucmVnaXN0ZXIoKQogICAgIC8vIFRo
ZSBhYm92ZSBsaW5lIHdpbGwgY2F1c2UgdGhpcyBvYmplY3QgdG8gYmUgZGVsZXRlZCwgc28gZG9u
J3QgZG8gYW55IG1vcmUgaW4gdGhpcyBmdW5jdGlvbi4KIH0KIAotYm9vbCBNdXRhdGlvbk9ic2Vy
dmVyUmVnaXN0cmF0aW9uOjpzaG91bGRSZWNlaXZlTXV0YXRpb25Gcm9tKE5vZGUqIG5vZGUsIFdl
YktpdE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSB0eXBlLCBjb25zdCBRdWFsaWZpZWRO
YW1lKiBhdHRyaWJ1dGVOYW1lKQorYm9vbCBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjpz
aG91bGRSZWNlaXZlTXV0YXRpb25Gcm9tKE5vZGUqIG5vZGUsIE11dGF0aW9uT2JzZXJ2ZXI6Ok11
dGF0aW9uVHlwZSB0eXBlLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKQogewot
ICAgIEFTU0VSVCgodHlwZSA9PSBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVzICYm
IGF0dHJpYnV0ZU5hbWUpIHx8ICFhdHRyaWJ1dGVOYW1lKTsKKyAgICBBU1NFUlQoKHR5cGUgPT0g
TXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRlcyAmJiBhdHRyaWJ1dGVOYW1lKSB8fCAhYXR0cmli
dXRlTmFtZSk7CiAgICAgaWYgKCEobV9vcHRpb25zICYgdHlwZSkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgIGlmIChtX3JlZ2lzdHJhdGlvbk5vZGUgIT0gbm9kZSAmJiAhaXNTdWJ0cmVl
KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICh0eXBlICE9IFdlYktpdE11dGF0
aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMgfHwgIShtX29wdGlvbnMgJiBXZWJLaXRNdXRhdGlvbk9i
c2VydmVyOjpBdHRyaWJ1dGVGaWx0ZXIpKQorICAgIGlmICh0eXBlICE9IE11dGF0aW9uT2JzZXJ2
ZXI6OkF0dHJpYnV0ZXMgfHwgIShtX29wdGlvbnMgJiBNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1
dGVGaWx0ZXIpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGlmICghYXR0cmlidXRlTmFt
ZS0+bmFtZXNwYWNlVVJJKCkuaXNOdWxsKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZG9tL011
dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uaAppbmRleCAyMzJlZTI1ZDVhYzhlZjY1NTQ1YTk0
MzY0MDgyNjQ1YWY1Mzg1YjczLi5kNDkxNDYyNWE5ZGZlZDY2NmRmNGI3OGE5MjFhNTc4ZTNjNzc3
NTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lz
dHJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0
cmF0aW9uLmgKQEAgLTMzLDcgKzMzLDcgQEAKIAogI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZF
UlMpCiAKLSNpbmNsdWRlICJXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSAiTXV0
YXRpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvQXRvbWljU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nSGFz
aC5oPgpAQCAtNDUsNyArNDUsNyBAQCBjbGFzcyBRdWFsaWZpZWROYW1lOwogY2xhc3MgTXV0YXRp
b25PYnNlcnZlclJlZ2lzdHJhdGlvbiB7CiBwdWJsaWM6CiAKLSAgICBzdGF0aWMgUGFzc093blB0
cjxNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uPiBjcmVhdGUoUGFzc1JlZlB0cjxXZWJLaXRN
dXRhdGlvbk9ic2VydmVyPiwgTm9kZSopOworICAgIHN0YXRpYyBQYXNzT3duUHRyPE11dGF0aW9u
T2JzZXJ2ZXJSZWdpc3RyYXRpb24+IGNyZWF0ZShQYXNzUmVmUHRyPE11dGF0aW9uT2JzZXJ2ZXI+
LCBOb2RlKik7CiAKICAgICB+TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbigpOwogCkBAIC01
NSwxOSArNTUsMTkgQEAgcHVibGljOgogICAgIGJvb2wgaGFzVHJhbnNpZW50UmVnaXN0cmF0aW9u
cygpIHsgcmV0dXJuIG1fdHJhbnNpZW50UmVnaXN0cmF0aW9uTm9kZXMgJiYgIW1fdHJhbnNpZW50
UmVnaXN0cmF0aW9uTm9kZXMtPmlzRW1wdHkoKTsgfQogICAgIHZvaWQgdW5yZWdpc3RlcigpOwog
Ci0gICAgYm9vbCBzaG91bGRSZWNlaXZlTXV0YXRpb25Gcm9tKE5vZGUqLCBXZWJLaXRNdXRhdGlv
bk9ic2VydmVyOjpNdXRhdGlvblR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5h
bWUpOwotICAgIGJvb2wgaW5saW5lIGlzU3VidHJlZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9u
cyAmIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OlN1YnRyZWU7IH0KKyAgICBib29sIHNob3VsZFJl
Y2VpdmVNdXRhdGlvbkZyb20oTm9kZSosIE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSwg
Y29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSk7CisgICAgYm9vbCBpbmxpbmUgaXNT
dWJ0cmVlKCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zICYgTXV0YXRpb25PYnNlcnZlcjo6U3Vi
dHJlZTsgfQogCi0gICAgV2ViS2l0TXV0YXRpb25PYnNlcnZlciogb2JzZXJ2ZXIoKSB7IHJldHVy
biBtX29ic2VydmVyLmdldCgpOyB9Ci0gICAgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMg
ZGVsaXZlcnlPcHRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zICYgKFdlYktpdE11dGF0
aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZU9sZFZhbHVlIHwgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6
Q2hhcmFjdGVyRGF0YU9sZFZhbHVlKTsgfQotICAgIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIG11
dGF0aW9uVHlwZXMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMgJiBXZWJLaXRNdXRhdGlvbk9i
c2VydmVyOjpBbGxNdXRhdGlvblR5cGVzOyB9CisgICAgTXV0YXRpb25PYnNlcnZlciogb2JzZXJ2
ZXIoKSB7IHJldHVybiBtX29ic2VydmVyLmdldCgpOyB9CisgICAgTXV0YXRpb25SZWNvcmREZWxp
dmVyeU9wdGlvbnMgZGVsaXZlcnlPcHRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zICYg
KE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZU9sZFZhbHVlIHwgTXV0YXRpb25PYnNlcnZlcjo6
Q2hhcmFjdGVyRGF0YU9sZFZhbHVlKTsgfQorICAgIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIG11
dGF0aW9uVHlwZXMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMgJiBNdXRhdGlvbk9ic2VydmVy
OjpBbGxNdXRhdGlvblR5cGVzOyB9CiAKIHByaXZhdGU6Ci0gICAgTXV0YXRpb25PYnNlcnZlclJl
Z2lzdHJhdGlvbihQYXNzUmVmUHRyPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI+LCBOb2RlKik7Cisg
ICAgTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbihQYXNzUmVmUHRyPE11dGF0aW9uT2JzZXJ2
ZXI+LCBOb2RlKik7CiAKICAgICBjb25zdCBIYXNoU2V0PEF0b21pY1N0cmluZz4mIGNhc2VJbnNl
bnNpdGl2ZUF0dHJpYnV0ZUZpbHRlcigpOwogCi0gICAgUmVmUHRyPFdlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXI+IG1fb2JzZXJ2ZXI7CisgICAgUmVmUHRyPE11dGF0aW9uT2JzZXJ2ZXI+IG1fb2JzZXJ2
ZXI7CiAgICAgTm9kZSogbV9yZWdpc3RyYXRpb25Ob2RlOwogICAgIFJlZlB0cjxOb2RlPiBtX3Jl
Z2lzdHJhdGlvbk5vZGVLZWVwQWxpdmU7CiAgICAgdHlwZWRlZiBIYXNoU2V0PFJlZlB0cjxOb2Rl
PiA+IE5vZGVIYXNoU2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IGFlMzk0NWJlNWQwYzBkZWQ4ZGVj
ZjAwYzU5OWQ0ZjI4MjMxOTEwNjIuLjA1MDRiNzA5MTcyOWUyYTNkYWU3Mzc5MjBkMTQ1NzEzMWQ5
NGYxMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTI0MDMsMTYgKzI0MDMsMTYgQEAgSGFzaFNldDxN
dXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKj4qIE5vZGU6OnRyYW5zaWVudE11dGF0aW9uT2Jz
ZXJ2ZXJSZWdpc3RyeSgKICAgICByZXR1cm4gaGFzUmFyZURhdGEoKSA/IHJhcmVEYXRhKCktPnRy
YW5zaWVudE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyeSgpIDogMDsKIH0KIAotdm9pZCBOb2RlOjpj
b2xsZWN0TWF0Y2hpbmdPYnNlcnZlcnNGb3JNdXRhdGlvbihIYXNoTWFwPFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4mIG9ic2VydmVycywgTm9k
ZSogZnJvbU5vZGUsIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSB0eXBlLCBj
b25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKQordm9pZCBOb2RlOjpjb2xsZWN0TWF0
Y2hpbmdPYnNlcnZlcnNGb3JNdXRhdGlvbihIYXNoTWFwPE11dGF0aW9uT2JzZXJ2ZXIqLCBNdXRh
dGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4mIG9ic2VydmVycywgTm9kZSogZnJvbU5vZGUsIE11
dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSB0eXBlLCBjb25zdCBRdWFsaWZpZWROYW1lKiBh
dHRyaWJ1dGVOYW1lKQogewotICAgIEFTU0VSVCgodHlwZSA9PSBXZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyOjpBdHRyaWJ1dGVzICYmIGF0dHJpYnV0ZU5hbWUpIHx8ICFhdHRyaWJ1dGVOYW1lKTsKKyAg
ICBBU1NFUlQoKHR5cGUgPT0gTXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRlcyAmJiBhdHRyaWJ1
dGVOYW1lKSB8fCAhYXR0cmlidXRlTmFtZSk7CiAgICAgaWYgKFZlY3RvcjxPd25QdHI8TXV0YXRp
b25PYnNlcnZlclJlZ2lzdHJhdGlvbj4gPiogcmVnaXN0cnkgPSBmcm9tTm9kZS0+bXV0YXRpb25P
YnNlcnZlclJlZ2lzdHJ5KCkpIHsKICAgICAgICAgY29uc3Qgc2l6ZV90IHNpemUgPSByZWdpc3Ry
eS0+c2l6ZSgpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgewog
ICAgICAgICAgICAgTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbiogcmVnaXN0cmF0aW9uID0g
cmVnaXN0cnktPmF0KGkpLmdldCgpOwogICAgICAgICAgICAgaWYgKHJlZ2lzdHJhdGlvbi0+c2hv
dWxkUmVjZWl2ZU11dGF0aW9uRnJvbSh0aGlzLCB0eXBlLCBhdHRyaWJ1dGVOYW1lKSkgewogICAg
ICAgICAgICAgICAgIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIGRlbGl2ZXJ5T3B0aW9u
cyA9IHJlZ2lzdHJhdGlvbi0+ZGVsaXZlcnlPcHRpb25zKCk7Ci0gICAgICAgICAgICAgICAgSGFz
aE1hcDxXZWJLaXRNdXRhdGlvbk9ic2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlv
bnM+OjpBZGRSZXN1bHQgcmVzdWx0ID0gb2JzZXJ2ZXJzLmFkZChyZWdpc3RyYXRpb24tPm9ic2Vy
dmVyKCksIGRlbGl2ZXJ5T3B0aW9ucyk7CisgICAgICAgICAgICAgICAgSGFzaE1hcDxNdXRhdGlv
bk9ic2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+OjpBZGRSZXN1bHQgcmVz
dWx0ID0gb2JzZXJ2ZXJzLmFkZChyZWdpc3RyYXRpb24tPm9ic2VydmVyKCksIGRlbGl2ZXJ5T3B0
aW9ucyk7CiAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQuaXNOZXdFbnRyeSkKICAgICAgICAg
ICAgICAgICAgICAgcmVzdWx0Lml0ZXJhdG9yLT5zZWNvbmQgfD0gZGVsaXZlcnlPcHRpb25zOwog
CkBAIC0yNDI1LDcgKzI0MjUsNyBAQCB2b2lkIE5vZGU6OmNvbGxlY3RNYXRjaGluZ09ic2VydmVy
c0Zvck11dGF0aW9uKEhhc2hNYXA8V2ViS2l0TXV0YXRpb25PYnNlcnZlciosCiAgICAgICAgICAg
ICBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKiByZWdpc3RyYXRpb24gPSAqaXRlcjsKICAg
ICAgICAgICAgIGlmIChyZWdpc3RyYXRpb24tPnNob3VsZFJlY2VpdmVNdXRhdGlvbkZyb20odGhp
cywgdHlwZSwgYXR0cmlidXRlTmFtZSkpIHsKICAgICAgICAgICAgICAgICBNdXRhdGlvblJlY29y
ZERlbGl2ZXJ5T3B0aW9ucyBkZWxpdmVyeU9wdGlvbnMgPSByZWdpc3RyYXRpb24tPmRlbGl2ZXJ5
T3B0aW9ucygpOwotICAgICAgICAgICAgICAgIEhhc2hNYXA8V2ViS2l0TXV0YXRpb25PYnNlcnZl
ciosIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPjo6QWRkUmVzdWx0IHJlc3VsdCA9IG9i
c2VydmVycy5hZGQocmVnaXN0cmF0aW9uLT5vYnNlcnZlcigpLCBkZWxpdmVyeU9wdGlvbnMpOwor
ICAgICAgICAgICAgICAgIEhhc2hNYXA8TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVjb3Jk
RGVsaXZlcnlPcHRpb25zPjo6QWRkUmVzdWx0IHJlc3VsdCA9IG9ic2VydmVycy5hZGQocmVnaXN0
cmF0aW9uLT5vYnNlcnZlcigpLCBkZWxpdmVyeU9wdGlvbnMpOwogICAgICAgICAgICAgICAgIGlm
ICghcmVzdWx0LmlzTmV3RW50cnkpCiAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5pdGVyYXRv
ci0+c2Vjb25kIHw9IGRlbGl2ZXJ5T3B0aW9uczsKICAgICAgICAgICAgIH0KQEAgLTI0MzMsMTUg
KzI0MzMsMTUgQEAgdm9pZCBOb2RlOjpjb2xsZWN0TWF0Y2hpbmdPYnNlcnZlcnNGb3JNdXRhdGlv
bihIYXNoTWFwPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIqLAogICAgIH0KIH0KIAotdm9pZCBOb2Rl
OjpnZXRSZWdpc3RlcmVkTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoSGFzaE1hcDxXZWJLaXRNdXRh
dGlvbk9ic2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+JiBvYnNlcnZlcnMs
IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSB0eXBlLCBjb25zdCBRdWFsaWZp
ZWROYW1lKiBhdHRyaWJ1dGVOYW1lKQordm9pZCBOb2RlOjpnZXRSZWdpc3RlcmVkTXV0YXRpb25P
YnNlcnZlcnNPZlR5cGUoSGFzaE1hcDxNdXRhdGlvbk9ic2VydmVyKiwgTXV0YXRpb25SZWNvcmRE
ZWxpdmVyeU9wdGlvbnM+JiBvYnNlcnZlcnMsIE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlw
ZSB0eXBlLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKQogewotICAgIEFTU0VS
VCgodHlwZSA9PSBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVzICYmIGF0dHJpYnV0
ZU5hbWUpIHx8ICFhdHRyaWJ1dGVOYW1lKTsKKyAgICBBU1NFUlQoKHR5cGUgPT0gTXV0YXRpb25P
YnNlcnZlcjo6QXR0cmlidXRlcyAmJiBhdHRyaWJ1dGVOYW1lKSB8fCAhYXR0cmlidXRlTmFtZSk7
CiAgICAgY29sbGVjdE1hdGNoaW5nT2JzZXJ2ZXJzRm9yTXV0YXRpb24ob2JzZXJ2ZXJzLCB0aGlz
LCB0eXBlLCBhdHRyaWJ1dGVOYW1lKTsKICAgICBmb3IgKE5vZGUqIG5vZGUgPSBwYXJlbnROb2Rl
KCk7IG5vZGU7IG5vZGUgPSBub2RlLT5wYXJlbnROb2RlKCkpCiAgICAgICAgIGNvbGxlY3RNYXRj
aGluZ09ic2VydmVyc0Zvck11dGF0aW9uKG9ic2VydmVycywgbm9kZSwgdHlwZSwgYXR0cmlidXRl
TmFtZSk7CiB9CiAKLU11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qIE5vZGU6OnJlZ2lzdGVy
TXV0YXRpb25PYnNlcnZlcihQYXNzUmVmUHRyPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI+IG9ic2Vy
dmVyKQorTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbiogTm9kZTo6cmVnaXN0ZXJNdXRhdGlv
bk9ic2VydmVyKFBhc3NSZWZQdHI8TXV0YXRpb25PYnNlcnZlcj4gb2JzZXJ2ZXIpCiB7CiAgICAg
VmVjdG9yPE93blB0cjxNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uPiA+KiByZWdpc3RyeSA9
IGVuc3VyZVJhcmVEYXRhKCktPmVuc3VyZU11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyeSgpOwogICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVnaXN0cnktPnNpemUoKTsgKytpKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
aAppbmRleCBjOWMyNjc0ZDI3YzVjYzFlMzA0OGYwZjUzMDM3N2VjMzYxZDY5MWJhLi45Yzk3NWYz
MzAyYzc0OTE3OTA1N2ZkZDZiYmIxYTZiYjk0MmNhZTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTMwLDEw
ICszMCwxMCBAQAogI2luY2x1ZGUgIktVUkxIYXNoLmgiCiAjaW5jbHVkZSAiTGF5b3V0VHlwZXMu
aCIKICNpbmNsdWRlICJNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlICJNdXRhdGlv
bk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKICNpbmNsdWRl
ICJTY3JpcHRXcmFwcGFibGUuaCIKICNpbmNsdWRlICJUcmVlU2hhcmVkLmgiCi0jaW5jbHVkZSAi
V2ViS2l0TXV0YXRpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5j
bHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5n
Lmg+CkBAIC02MzQsOCArNjM0LDggQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoTVVU
QVRJT05fT0JTRVJWRVJTKQotICAgIHZvaWQgZ2V0UmVnaXN0ZXJlZE11dGF0aW9uT2JzZXJ2ZXJz
T2ZUeXBlKEhhc2hNYXA8V2ViS2l0TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVjb3JkRGVs
aXZlcnlPcHRpb25zPiYsIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSwgY29u
c3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSk7Ci0gICAgTXV0YXRpb25PYnNlcnZlclJl
Z2lzdHJhdGlvbiogcmVnaXN0ZXJNdXRhdGlvbk9ic2VydmVyKFBhc3NSZWZQdHI8V2ViS2l0TXV0
YXRpb25PYnNlcnZlcj4pOworICAgIHZvaWQgZ2V0UmVnaXN0ZXJlZE11dGF0aW9uT2JzZXJ2ZXJz
T2ZUeXBlKEhhc2hNYXA8TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlP
cHRpb25zPiYsIE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSwgY29uc3QgUXVhbGlmaWVk
TmFtZSogYXR0cmlidXRlTmFtZSk7CisgICAgTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbiog
cmVnaXN0ZXJNdXRhdGlvbk9ic2VydmVyKFBhc3NSZWZQdHI8TXV0YXRpb25PYnNlcnZlcj4pOwog
ICAgIHZvaWQgdW5yZWdpc3Rlck11dGF0aW9uT2JzZXJ2ZXIoTXV0YXRpb25PYnNlcnZlclJlZ2lz
dHJhdGlvbiopOwogICAgIHZvaWQgcmVnaXN0ZXJUcmFuc2llbnRNdXRhdGlvbk9ic2VydmVyKE11
dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qKTsKICAgICB2b2lkIHVucmVnaXN0ZXJUcmFuc2ll
bnRNdXRhdGlvbk9ic2VydmVyKE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qKTsKQEAgLTc4
MSw3ICs3ODEsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCiAg
ICAgVmVjdG9yPE93blB0cjxNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uPiA+KiBtdXRhdGlv
bk9ic2VydmVyUmVnaXN0cnkoKTsKICAgICBIYXNoU2V0PE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3Ry
YXRpb24qPiogdHJhbnNpZW50TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJ5KCk7Ci0gICAgdm9pZCBj
b2xsZWN0TWF0Y2hpbmdPYnNlcnZlcnNGb3JNdXRhdGlvbihIYXNoTWFwPFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4mLCBOb2RlKiBmcm9tTm9k
ZSwgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6TXV0YXRpb25UeXBlLCBjb25zdCBRdWFsaWZpZWRO
YW1lKiBhdHRyaWJ1dGVOYW1lKTsKKyAgICB2b2lkIGNvbGxlY3RNYXRjaGluZ09ic2VydmVyc0Zv
ck11dGF0aW9uKEhhc2hNYXA8TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVjb3JkRGVsaXZl
cnlPcHRpb25zPiYsIE5vZGUqIGZyb21Ob2RlLCBNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvblR5
cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpOwogI2VuZGlmCiAKICAgICBt
dXRhYmxlIHVpbnQzMl90IG1fbm9kZUZsYWdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGVSYXJlRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCmlu
ZGV4IGI3ZjM1OWU2MDE1NWY2NjVkNmZjNzI2ZTlmOWJlZDU0M2Q1ZDg1ODYuLjBkZGUyYTI4YmRh
YTYyMDAxMzc0MDZiY2RkYThjZWUxNzM2OWMwNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlUmFyZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRh
LmgKQEAgLTI1LDEwICsyNSwxMCBAQAogI2luY2x1ZGUgIkNoaWxkTm9kZUxpc3QuaCIKICNpbmNs
dWRlICJET01TZXR0YWJsZVRva2VuTGlzdC5oIgogI2luY2x1ZGUgIkR5bmFtaWNOb2RlTGlzdC5o
IgorI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJNdXRhdGlvbk9ic2Vy
dmVyUmVnaXN0cmF0aW9uLmgiCiAjaW5jbHVkZSAiUXVhbGlmaWVkTmFtZS5oIgogI2luY2x1ZGUg
IlRhZ05vZGVMaXN0LmgiCi0jaW5jbHVkZSAiV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oIgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9QYXNzT3duUHRyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0
TXV0YXRpb25PYnNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TXV0YXRpb25P
YnNlcnZlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZmZTZhYTc3ODgyZDhj
MDZiOGQ0Njc4ZGNhOWU0OTMyMjEzZGJhODIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE11dGF0aW9uT2JzZXJ2
ZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMjIxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgot
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
LSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0KLSNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQotCi0jaW5jbHVkZSAiV2ViS2l0TXV0
YXRpb25PYnNlcnZlci5oIgotCi0jaW5jbHVkZSAiRGljdGlvbmFyeS5oIgotI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCi0jaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgotI2luY2x1ZGUgIk11dGF0aW9u
Q2FsbGJhY2suaCIKLSNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmgiCi0j
aW5jbHVkZSAiTXV0YXRpb25SZWNvcmQuaCIKLSNpbmNsdWRlICJOb2RlLmgiCi0jaW5jbHVkZSA8
YWxnb3JpdGhtPgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL01haW5U
aHJlYWQuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotc3RhdGljIHVuc2lnbmVkIHNfb2JzZXJ2ZXJQcmlvcml0eSA9IDA7Ci0KLXN0cnVjdCBXZWJL
aXRNdXRhdGlvbk9ic2VydmVyOjpPYnNlcnZlckxlc3NUaGFuIHsKLSAgICBib29sIG9wZXJhdG9y
KCkoY29uc3QgUmVmUHRyPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI+JiBsaHMsIGNvbnN0IFJlZlB0
cjxXZWJLaXRNdXRhdGlvbk9ic2VydmVyPiYgcmhzKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGxo
cy0+bV9wcmlvcml0eSA8IHJocy0+bV9wcmlvcml0eTsKLSAgICB9Ci19OwotCi1QYXNzUmVmUHRy
PFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI+IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OmNyZWF0ZShQ
YXNzUmVmUHRyPE11dGF0aW9uQ2FsbGJhY2s+IGNhbGxiYWNrKQotewotICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyKGNhbGxiYWNrKSk7Ci19Ci0KLVdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OldlYktpdE11dGF0
aW9uT2JzZXJ2ZXIoUGFzc1JlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPiBjYWxsYmFjaykKLSAgICA6
IG1fY2FsbGJhY2soY2FsbGJhY2spCi0gICAgLCBtX3ByaW9yaXR5KHNfb2JzZXJ2ZXJQcmlvcml0
eSsrKQotewotfQotCi1XZWJLaXRNdXRhdGlvbk9ic2VydmVyOjp+V2ViS2l0TXV0YXRpb25PYnNl
cnZlcigpCi17Ci0gICAgQVNTRVJUKG1fcmVnaXN0cmF0aW9ucy5pc0VtcHR5KCkpOwotfQotCi1i
b29sIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OnZhbGlkYXRlT3B0aW9ucyhNdXRhdGlvbk9ic2Vy
dmVyT3B0aW9ucyBvcHRpb25zKQotewotICAgIHJldHVybiAob3B0aW9ucyAmIChBdHRyaWJ1dGVz
IHwgQ2hhcmFjdGVyRGF0YSB8IENoaWxkTGlzdCkpCi0gICAgICAgICYmICgob3B0aW9ucyAmIEF0
dHJpYnV0ZXMpIHx8ICEob3B0aW9ucyAmIEF0dHJpYnV0ZU9sZFZhbHVlKSkKLSAgICAgICAgJiYg
KChvcHRpb25zICYgQXR0cmlidXRlcykgfHwgIShvcHRpb25zICYgQXR0cmlidXRlRmlsdGVyKSkK
LSAgICAgICAgJiYgKChvcHRpb25zICYgQ2hhcmFjdGVyRGF0YSkgfHwgIShvcHRpb25zICYgQ2hh
cmFjdGVyRGF0YU9sZFZhbHVlKSk7Ci19Ci0KLXZvaWQgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6
b2JzZXJ2ZShOb2RlKiBub2RlLCBjb25zdCBEaWN0aW9uYXJ5JiBvcHRpb25zRGljdGlvbmFyeSwg
RXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKCFub2RlKSB7Ci0gICAgICAgIGVjID0gTk9U
X0ZPVU5EX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChvcHRpb25zRGlj
dGlvbmFyeS5pc1VuZGVmaW5lZE9yTnVsbCgpKSB7Ci0gICAgICAgIGVjID0gVFlQRV9NSVNNQVRD
SF9FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBzdGF0aWMgY29uc3Qgc3RydWN0
IHsKLSAgICAgICAgY29uc3QgY2hhciogbmFtZTsKLSAgICAgICAgTXV0YXRpb25PYnNlcnZlck9w
dGlvbnMgdmFsdWU7Ci0gICAgfSBib29sZWFuT3B0aW9uc1tdID0gewotICAgICAgICB7ICJjaGls
ZExpc3QiLCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpDaGlsZExpc3QgfSwKLSAgICAgICAgeyAi
YXR0cmlidXRlcyIsIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMgfSwKLSAgICAg
ICAgeyAiY2hhcmFjdGVyRGF0YSIsIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OkNoYXJhY3RlckRh
dGEgfSwKLSAgICAgICAgeyAic3VidHJlZSIsIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OlN1YnRy
ZWUgfSwKLSAgICAgICAgeyAiYXR0cmlidXRlT2xkVmFsdWUiLCBXZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyOjpBdHRyaWJ1dGVPbGRWYWx1ZSB9LAotICAgICAgICB7ICJjaGFyYWN0ZXJEYXRhT2xkVmFs
dWUiLCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhT2xkVmFsdWUgfQotICAg
IH07Ci0gICAgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgb3B0aW9ucyA9IDA7Ci0gICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IHNpemVvZihib29sZWFuT3B0aW9ucykgLyBzaXplb2YoYm9vbGVh
bk9wdGlvbnNbMF0pOyArK2kpIHsKLSAgICAgICAgYm9vbCB2YWx1ZSA9IGZhbHNlOwotICAgICAg
ICBpZiAob3B0aW9uc0RpY3Rpb25hcnkuZ2V0KGJvb2xlYW5PcHRpb25zW2ldLm5hbWUsIHZhbHVl
KSAmJiB2YWx1ZSkKLSAgICAgICAgICAgIG9wdGlvbnMgfD0gYm9vbGVhbk9wdGlvbnNbaV0udmFs
dWU7Ci0gICAgfQotCi0gICAgSGFzaFNldDxBdG9taWNTdHJpbmc+IGF0dHJpYnV0ZUZpbHRlcjsK
LSAgICBpZiAob3B0aW9uc0RpY3Rpb25hcnkuZ2V0KCJhdHRyaWJ1dGVGaWx0ZXIiLCBhdHRyaWJ1
dGVGaWx0ZXIpKQotICAgICAgICBvcHRpb25zIHw9IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OkF0
dHJpYnV0ZUZpbHRlcjsKLQotICAgIGlmICghdmFsaWRhdGVPcHRpb25zKG9wdGlvbnMpKSB7Ci0g
ICAgICAgIGVjID0gU1lOVEFYX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIE11
dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qIHJlZ2lzdHJhdGlvbiA9IG5vZGUtPnJlZ2lzdGVy
TXV0YXRpb25PYnNlcnZlcih0aGlzKTsKLSAgICByZWdpc3RyYXRpb24tPnJlc2V0T2JzZXJ2YXRp
b24ob3B0aW9ucywgYXR0cmlidXRlRmlsdGVyKTsKLQotICAgIG5vZGUtPmRvY3VtZW50KCktPmFk
ZE11dGF0aW9uT2JzZXJ2ZXJUeXBlcyhyZWdpc3RyYXRpb24tPm11dGF0aW9uVHlwZXMoKSk7Ci19
Ci0KLVZlY3RvcjxSZWZQdHI8TXV0YXRpb25SZWNvcmQ+ID4gV2ViS2l0TXV0YXRpb25PYnNlcnZl
cjo6dGFrZVJlY29yZHMoKQotewotICAgIFZlY3RvcjxSZWZQdHI8TXV0YXRpb25SZWNvcmQ+ID4g
cmVjb3JkczsKLSAgICByZWNvcmRzLnN3YXAobV9yZWNvcmRzKTsKLSAgICByZXR1cm4gcmVjb3Jk
czsKLX0KLQotdm9pZCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpkaXNjb25uZWN0KCkKLXsKLSAg
ICBtX3JlY29yZHMuY2xlYXIoKTsKLSAgICBIYXNoU2V0PE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3Ry
YXRpb24qPiByZWdpc3RyYXRpb25zKG1fcmVnaXN0cmF0aW9ucyk7Ci0gICAgZm9yIChIYXNoU2V0
PE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qPjo6aXRlcmF0b3IgaXRlciA9IHJlZ2lzdHJh
dGlvbnMuYmVnaW4oKTsgaXRlciAhPSByZWdpc3RyYXRpb25zLmVuZCgpOyArK2l0ZXIpCi0gICAg
ICAgICgqaXRlciktPnVucmVnaXN0ZXIoKTsKLX0KLQotdm9pZCBXZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyOjpvYnNlcnZhdGlvblN0YXJ0ZWQoTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbiogcmVn
aXN0cmF0aW9uKQotewotICAgIEFTU0VSVCghbV9yZWdpc3RyYXRpb25zLmNvbnRhaW5zKHJlZ2lz
dHJhdGlvbikpOwotICAgIG1fcmVnaXN0cmF0aW9ucy5hZGQocmVnaXN0cmF0aW9uKTsKLX0KLQot
dm9pZCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpvYnNlcnZhdGlvbkVuZGVkKE11dGF0aW9uT2Jz
ZXJ2ZXJSZWdpc3RyYXRpb24qIHJlZ2lzdHJhdGlvbikKLXsKLSAgICBBU1NFUlQobV9yZWdpc3Ry
YXRpb25zLmNvbnRhaW5zKHJlZ2lzdHJhdGlvbikpOwotICAgIG1fcmVnaXN0cmF0aW9ucy5yZW1v
dmUocmVnaXN0cmF0aW9uKTsKLX0KLQotdHlwZWRlZiBIYXNoU2V0PFJlZlB0cjxXZWJLaXRNdXRh
dGlvbk9ic2VydmVyPiA+IE11dGF0aW9uT2JzZXJ2ZXJTZXQ7Ci0KLXN0YXRpYyBNdXRhdGlvbk9i
c2VydmVyU2V0JiBhY3RpdmVNdXRhdGlvbk9ic2VydmVycygpCi17Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChNdXRhdGlvbk9ic2VydmVyU2V0LCBhY3RpdmVPYnNlcnZlcnMsICgpKTsKLSAgICBy
ZXR1cm4gYWN0aXZlT2JzZXJ2ZXJzOwotfQotCi12b2lkIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6
OmVucXVldWVNdXRhdGlvblJlY29yZChQYXNzUmVmUHRyPE11dGF0aW9uUmVjb3JkPiBtdXRhdGlv
bikKLXsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIG1fcmVjb3Jkcy5hcHBlbmQo
bXV0YXRpb24pOwotICAgIGFjdGl2ZU11dGF0aW9uT2JzZXJ2ZXJzKCkuYWRkKHRoaXMpOwotfQot
Ci12b2lkIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OnNldEhhc1RyYW5zaWVudFJlZ2lzdHJhdGlv
bigpCi17Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBhY3RpdmVNdXRhdGlvbk9i
c2VydmVycygpLmFkZCh0aGlzKTsKLX0KLQotdm9pZCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpk
ZWxpdmVyKCkKLXsKLSAgICAvLyBDYWxsaW5nIGNsZWFyVHJhbnNpZW50UmVnaXN0cmF0aW9ucygp
IGNhbiBtb2RpZnkgbV9yZWdpc3RyYXRpb25zLCBzbyBpdCdzIG5lY2Vzc2FyeQotICAgIC8vIHRv
IG1ha2UgYSBjb3B5IG9mIHRoZSB0cmFuc2llbnQgcmVnaXN0cmF0aW9ucyBiZWZvcmUgb3BlcmF0
aW5nIG9uIHRoZW0uCi0gICAgVmVjdG9yPE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qLCAx
PiB0cmFuc2llbnRSZWdpc3RyYXRpb25zOwotICAgIGZvciAoSGFzaFNldDxNdXRhdGlvbk9ic2Vy
dmVyUmVnaXN0cmF0aW9uKj46Oml0ZXJhdG9yIGl0ZXIgPSBtX3JlZ2lzdHJhdGlvbnMuYmVnaW4o
KTsgaXRlciAhPSBtX3JlZ2lzdHJhdGlvbnMuZW5kKCk7ICsraXRlcikgewotICAgICAgICBpZiAo
KCppdGVyKS0+aGFzVHJhbnNpZW50UmVnaXN0cmF0aW9ucygpKQotICAgICAgICAgICAgdHJhbnNp
ZW50UmVnaXN0cmF0aW9ucy5hcHBlbmQoKml0ZXIpOwotICAgIH0KLSAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHRyYW5zaWVudFJlZ2lzdHJhdGlvbnMuc2l6ZSgpOyArK2kpCi0gICAgICAgIHRy
YW5zaWVudFJlZ2lzdHJhdGlvbnNbaV0tPmNsZWFyVHJhbnNpZW50UmVnaXN0cmF0aW9ucygpOwot
Ci0gICAgaWYgKG1fcmVjb3Jkcy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFZl
Y3RvcjxSZWZQdHI8TXV0YXRpb25SZWNvcmQ+ID4gcmVjb3JkczsKLSAgICByZWNvcmRzLnN3YXAo
bV9yZWNvcmRzKTsKLQotICAgIG1fY2FsbGJhY2stPmhhbmRsZUV2ZW50KCZyZWNvcmRzLCB0aGlz
KTsKLX0KLQotdm9pZCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpkZWxpdmVyQWxsTXV0YXRpb25z
KCkKLXsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIHN0YXRpYyBib29sIGRlbGl2
ZXJ5SW5Qcm9ncmVzcyA9IGZhbHNlOwotICAgIGlmIChkZWxpdmVyeUluUHJvZ3Jlc3MpCi0gICAg
ICAgIHJldHVybjsKLSAgICBkZWxpdmVyeUluUHJvZ3Jlc3MgPSB0cnVlOwotCi0gICAgd2hpbGUg
KCFhY3RpdmVNdXRhdGlvbk9ic2VydmVycygpLmlzRW1wdHkoKSkgewotICAgICAgICBWZWN0b3I8
UmVmUHRyPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI+ID4gb2JzZXJ2ZXJzOwotICAgICAgICBjb3B5
VG9WZWN0b3IoYWN0aXZlTXV0YXRpb25PYnNlcnZlcnMoKSwgb2JzZXJ2ZXJzKTsKLSAgICAgICAg
YWN0aXZlTXV0YXRpb25PYnNlcnZlcnMoKS5jbGVhcigpOwotICAgICAgICBzdGQ6OnNvcnQob2Jz
ZXJ2ZXJzLmJlZ2luKCksIG9ic2VydmVycy5lbmQoKSwgT2JzZXJ2ZXJMZXNzVGhhbigpKTsKLSAg
ICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvYnNlcnZlcnMuc2l6ZSgpOyArK2kpCi0gICAg
ICAgICAgICBvYnNlcnZlcnNbaV0tPmRlbGl2ZXIoKTsKLSAgICB9Ci0KLSAgICBkZWxpdmVyeUlu
UHJvZ3Jlc3MgPSBmYWxzZTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYg
Ly8gRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0
TXV0YXRpb25PYnNlcnZlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZjA5NjQ3
MjY2NzE0NTY5OThlNWFiMTFkOTM4NTY2YzQzMDJjZjg1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRNdXRhdGlv
bk9ic2VydmVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMDggKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRp
b24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0g
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV2ViS2l0
TXV0YXRpb25PYnNlcnZlcl9oCi0jZGVmaW5lIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXJfaAotCi0j
aWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKLQotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
Ci0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgot
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21p
Y1N0cmluZ0hhc2guaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBEaWN0aW9uYXJ5
OwotY2xhc3MgTXV0YXRpb25DYWxsYmFjazsKLWNsYXNzIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3Ry
YXRpb247Ci1jbGFzcyBNdXRhdGlvblJlY29yZDsKLWNsYXNzIE5vZGU7Ci0KLXR5cGVkZWYgaW50
IEV4Y2VwdGlvbkNvZGU7Ci0KLXR5cGVkZWYgdW5zaWduZWQgY2hhciBNdXRhdGlvbk9ic2VydmVy
T3B0aW9uczsKLXR5cGVkZWYgdW5zaWduZWQgY2hhciBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0
aW9uczsKLQotY2xhc3MgV2ViS2l0TXV0YXRpb25PYnNlcnZlciA6IHB1YmxpYyBSZWZDb3VudGVk
PFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI+IHsKLXB1YmxpYzoKLSAgICBlbnVtIE11dGF0aW9uVHlw
ZSB7Ci0gICAgICAgIENoaWxkTGlzdCA9IDEgPDwgMCwKLSAgICAgICAgQXR0cmlidXRlcyA9IDEg
PDwgMSwKLSAgICAgICAgQ2hhcmFjdGVyRGF0YSA9IDEgPDwgMiwKLQotICAgICAgICBBbGxNdXRh
dGlvblR5cGVzID0gQ2hpbGRMaXN0IHwgQXR0cmlidXRlcyB8IENoYXJhY3RlckRhdGEKLSAgICB9
OwotCi0gICAgZW51bSBPYnNlcnZhdGlvbkZsYWdzICB7Ci0gICAgICAgIFN1YnRyZWUgPSAxIDw8
IDMsCi0gICAgICAgIEF0dHJpYnV0ZUZpbHRlciA9IDEgPDwgNAotICAgIH07Ci0KLSAgICBlbnVt
IERlbGl2ZXJ5RmxhZ3MgewotICAgICAgICBBdHRyaWJ1dGVPbGRWYWx1ZSA9IDEgPDwgNSwKLSAg
ICAgICAgQ2hhcmFjdGVyRGF0YU9sZFZhbHVlID0gMSA8PCA2LAotICAgIH07Ci0KLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxXZWJLaXRNdXRhdGlvbk9ic2VydmVyPiBjcmVhdGUoUGFzc1JlZlB0cjxN
dXRhdGlvbkNhbGxiYWNrPik7Ci0gICAgc3RhdGljIHZvaWQgZGVsaXZlckFsbE11dGF0aW9ucygp
OwotCi0gICAgfldlYktpdE11dGF0aW9uT2JzZXJ2ZXIoKTsKLQotICAgIHZvaWQgb2JzZXJ2ZShO
b2RlKiwgY29uc3QgRGljdGlvbmFyeSYsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBWZWN0b3I8UmVm
UHRyPE11dGF0aW9uUmVjb3JkPiA+IHRha2VSZWNvcmRzKCk7Ci0gICAgdm9pZCBkaXNjb25uZWN0
KCk7Ci0gICAgdm9pZCBvYnNlcnZhdGlvblN0YXJ0ZWQoTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJh
dGlvbiopOwotICAgIHZvaWQgb2JzZXJ2YXRpb25FbmRlZChNdXRhdGlvbk9ic2VydmVyUmVnaXN0
cmF0aW9uKik7Ci0gICAgdm9pZCBlbnF1ZXVlTXV0YXRpb25SZWNvcmQoUGFzc1JlZlB0cjxNdXRh
dGlvblJlY29yZD4pOwotICAgIHZvaWQgc2V0SGFzVHJhbnNpZW50UmVnaXN0cmF0aW9uKCk7Ci0K
LXByaXZhdGU6Ci0gICAgc3RydWN0IE9ic2VydmVyTGVzc1RoYW47Ci0KLSAgICBXZWJLaXRNdXRh
dGlvbk9ic2VydmVyKFBhc3NSZWZQdHI8TXV0YXRpb25DYWxsYmFjaz4pOwotICAgIHZvaWQgZGVs
aXZlcigpOwotCi0gICAgc3RhdGljIGJvb2wgdmFsaWRhdGVPcHRpb25zKE11dGF0aW9uT2JzZXJ2
ZXJPcHRpb25zKTsKLQotICAgIFJlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPiBtX2NhbGxiYWNrOwot
ICAgIFZlY3RvcjxSZWZQdHI8TXV0YXRpb25SZWNvcmQ+ID4gbV9yZWNvcmRzOwotICAgIEhhc2hT
ZXQ8TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbio+IG1fcmVnaXN0cmF0aW9uczsKLSAgICB1
bnNpZ25lZCBtX3ByaW9yaXR5OwotfTsKLQotfQotCi0jZW5kaWYgLy8gRU5BQkxFKE1VVEFUSU9O
X09CU0VSVkVSUykKLQotI2VuZGlmIC8vIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXJfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaWRsIGIvU291
cmNlL1dlYkNvcmUvZG9tL1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaWRsCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBjMzM4YmUyOGRlMTk0ODIyY2QxYmJmOGI1NDQxNGVlZDE3MWVkZWZk
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmlkbAorKysgL2Rldi9udWxsCkBAIC0x
LDQyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1l
dDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi1tb2R1bGUgY29yZSB7Ci0gICAgaW50ZXJmYWNlIFsKLSAgICAgICAgQ29uZGl0
aW9uYWw9TVVUQVRJT05fT0JTRVJWRVJTLAotICAgICAgICBDdXN0b21Db25zdHJ1Y3RvciwKLSAg
ICAgICAgQ29uc3RydWN0b3JQYXJhbWV0ZXJzPTEKLSAgICBdIFdlYktpdE11dGF0aW9uT2JzZXJ2
ZXIgewotICAgICAgICB2b2lkIG9ic2VydmUoaW4gTm9kZSB0YXJnZXQsIGluIERpY3Rpb25hcnkg
b3B0aW9ucykKLSAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBzZXF1
ZW5jZTxNdXRhdGlvblJlY29yZD4gdGFrZVJlY29yZHMoKTsKLSAgICAgICAgdm9pZCBkaXNjb25u
ZWN0KCk7Ci0gICAgfTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAppbmRleCBiMjA2NTQz
YjE1NTg2NzI0ZDlmYjgxZTBlYTE5MzYwYjcwMzk0NjA2Li4zNmJhNzAzMDZlMGM4YzMxZGM1YzZi
NjUyOWNiNjhlYTEwZmFiOTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCkBAIC03Nzgs
NyArNzc4LDggQEAgbW9kdWxlIHdpbmRvdyB7CiAKICAgICAgICAgYXR0cmlidXRlIFtDb25kaXRp
b25hbD1CTE9CXSBET01VUkxDb25zdHJ1Y3RvciB3ZWJraXRVUkw7CiAKLSAgICAgICAgYXR0cmli
dXRlIFtDb25kaXRpb25hbD1NVVRBVElPTl9PQlNFUlZFUlNdIFdlYktpdE11dGF0aW9uT2JzZXJ2
ZXJDb25zdHJ1Y3RvciBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOworICAgICAgICBhdHRyaWJ1dGUg
W0NvbmRpdGlvbmFsPU1VVEFUSU9OX09CU0VSVkVSU10gTXV0YXRpb25PYnNlcnZlckNvbnN0cnVj
dG9yIE11dGF0aW9uT2JzZXJ2ZXI7CisgICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9TVVU
QVRJT05fT0JTRVJWRVJTXSBNdXRhdGlvbk9ic2VydmVyQ29uc3RydWN0b3IgV2ViS2l0TXV0YXRp
b25PYnNlcnZlcjsKIAogI2VuZGlmIC8vIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViS2l0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYktpdC5jcHAKaW5kZXggNjEwNjU5N2FlOGZiMTVlZGU2
MDZiNjFiNzg0MjQ0OThjOTlkNzQxYS4uMWJiM2I0NGE5M2RmZmM1ZmM4MjZhMWEzYjYwZmIwYzY2
YWI3OTUzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViS2l0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJLaXQuY3BwCkBAIC0zMiwxMyAr
MzIsMTMgQEAKICNpbmNsdWRlICJXZWJLaXQuaCIKIAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNp
bmNsdWRlICJNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUg
IlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1
ZGUgIlRleHRFbmNvZGluZy5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgogI2luY2x1ZGUgIlY4
UmVjdXJzaW9uU2NvcGUuaCIKLSNpbmNsdWRlICJXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCiAj
aW5jbHVkZSAiV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0
LmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmgiCkBAIC02Niw3ICs2
Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFByb2Nlc3NUYXNrKCkgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIGRpZFByb2Nlc3NUYXNrKCkKICAgICB7Ci0gICAgICAgIFdlYkNvcmU6
OldlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OmRlbGl2ZXJBbGxNdXRhdGlvbnMoKTsKKyAgICAgICAg
V2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6ZGVsaXZlckFsbE11dGF0aW9ucygpOwogICAgIH0K
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCmluZGV4IGZlMWY3MGRhZTFiODk3NGM4NmMz
N2Q3ODZkMmEyZTJiOTZmNDFkYTAuLjlhMjgxZWNkNDkxNmMzYTI1OTA2YTAwMmY0YWFkOTE0NDBm
Y2MwYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2lu
Y2x1ZGUgPEpTRWxlbWVudC5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL09wYXF1ZUpTU3Ry
aW5nLmg+CiAjaW5jbHVkZSA8TWVtb3J5Q2FjaGUuaD4KKyNpbmNsdWRlIDxNdXRhdGlvbk9ic2Vy
dmVyLmg+CiAjaW5jbHVkZSA8UGFnZUdyb3VwLmg+CiAjaW5jbHVkZSA8UHJpbnRDb250ZXh0Lmg+
CiAjaW5jbHVkZSA8UmVuZGVyVHJlZUFzVGV4dC5oPgpAQCAtNTUsNyArNTYsNiBAQAogI2luY2x1
ZGUgPFNjcmlwdFZhbHVlLmg+CiAjaW5jbHVkZSA8U2V0dGluZ3MuaD4KICNpbmNsdWRlIDxUZXh0
SXRlcmF0b3IuaD4KLSNpbmNsdWRlIDxXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmg+CiAjaW5jbHVk
ZSA8YmluZGluZ3MvanMvR0NDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8aGlzdG9yeS9IaXN0b3J5
SXRlbS5oPgogI2luY2x1ZGUgPHdvcmtlcnMvV29ya2VyVGhyZWFkLmg+CkBAIC01OTcsNyArNTk3
LDcgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmR1bXBDb25maWd1cmF0aW9uRm9y
Vmlld3BvcnQoRXZhc19PYmplY3QqIGV3a1ZpZXcKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0
RWZsOjpkZWxpdmVyQWxsTXV0YXRpb25zSWZOZWNlc3NhcnkoKQogewogI2lmIEVOQUJMRShNVVRB
VElPTl9PQlNFUlZFUlMpCi0gICAgV2ViQ29yZTo6V2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6ZGVs
aXZlckFsbE11dGF0aW9ucygpOworICAgIFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6OmRlbGl2
ZXJBbGxNdXRhdGlvbnMoKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwIGIvU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcApp
bmRleCBhOWRlODc1Yzk0N2YxMmQxODgzZTc4NmYzMGNkZjgyZmUzN2I2YjQxLi4zMzQzNjY0OWMy
MDAzMmNlZTFjMGU3YTRkYTU4ZjBjMWZhZDExNGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5j
cHAKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlICJKU0xvY2suaCIKICNpbmNsdWRlICJKU05v
ZGVMaXN0LmgiCiAjaW5jbHVkZSAiSlNWYWx1ZS5oIgorI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2
ZXIuaCIKICNpbmNsdWRlICJOb2RlTGlzdC5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2lu
Y2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCkBAIC02NCw3ICs2NSw2IEBACiAjaW5jbHVkZSAiU2V0
dGluZ3MuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJXZWJLaXRBY2Nl
c3NpYmxlV3JhcHBlckF0ay5oIgotI2luY2x1ZGUgIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIK
ICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKICNpbmNsdWRlICJ3ZWJraXRnbG9iYWxzcHJpdmF0
ZS5oIgogI2luY2x1ZGUgIndlYmtpdHdlYmZyYW1lLmgiCkBAIC04MzgsNyArODM4LDcgQEAgSlNW
YWx1ZVJlZiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmNvbXB1dGVkU3R5bGVJbmNsdWRpbmdW
aXNpdGVkSW5mbyhKU0NvbnRleHQKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpkZWxp
dmVyQWxsTXV0YXRpb25zSWZOZWNlc3NhcnkoKQogewogI2lmIEVOQUJMRShNVVRBVElPTl9PQlNF
UlZFUlMpCi0gICAgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6ZGVsaXZlckFsbE11dGF0aW9ucygp
OworICAgIE11dGF0aW9uT2JzZXJ2ZXI6OmRlbGl2ZXJBbGxNdXRhdGlvbnMoKTsKICNlbmRpZgog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IGIxYjg0OTY2ZDliNDIxZWQ5NmQyOGYyNGMyYWU2ZjRj
ZGNiMDhmMjcuLjYxZDJhZjU2N2UyNTJjN2FiZWVlNmMzZmUyYTBlMzlmYTdiYzE5NjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZp
bmVzLnhjY29uZmlnCkBAIC0xMDAsNyArMTAwLDcgQEAgRU5BQkxFX01FRElBX1NUQVRJU1RJQ1Mg
PSA7CiBFTkFCTEVfTUVURVJfVEFHID0gRU5BQkxFX01FVEVSX1RBRzsKIEVOQUJMRV9NSFRNTCA9
IDsKIEVOQUJMRV9NSUNST0RBVEEgPSA7Ci1FTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTID0gRU5B
QkxFX01VVEFUSU9OX09CU0VSVkVSUzsKK0VOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMgPSA7CiBF
TkFCTEVfTk9USUZJQ0FUSU9OUyA9ICQoRU5BQkxFX05PVElGSUNBVElPTlNfJChSRUFMX1BMQVRG
T1JNX05BTUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9ICQoRU5BQkxFX05PVElG
SUNBVElPTlNfbWFjb3N4XyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IpKTsKIEVOQUJM
RV9OT1RJRklDQVRJT05TX21hY29zeF8xMDcwID0gOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0
Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCBiMWI4NDk2NmQ5
YjQyMWVkOTZkMjhmMjRjMmFlNmY0Y2RjYjA4ZjI3Li42MWQyYWY1NjdlMjUyYzdhYmVlZTZjM2Zl
MmEwZTM5ZmE3YmMxOTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0
aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtMTAwLDcgKzEwMCw3IEBAIEVOQUJMRV9N
RURJQV9TVEFUSVNUSUNTID0gOwogRU5BQkxFX01FVEVSX1RBRyA9IEVOQUJMRV9NRVRFUl9UQUc7
CiBFTkFCTEVfTUhUTUwgPSA7CiBFTkFCTEVfTUlDUk9EQVRBID0gOwotRU5BQkxFX01VVEFUSU9O
X09CU0VSVkVSUyA9IEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlM7CitFTkFCTEVfTVVUQVRJT05f
T0JTRVJWRVJTID0gOwogRU5BQkxFX05PVElGSUNBVElPTlMgPSAkKEVOQUJMRV9OT1RJRklDQVRJ
T05TXyQoUkVBTF9QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfTk9USUZJQ0FUSU9OU19tYWNvc3gg
PSAkKEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeF8kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9O
X01BSk9SKSk7CiBFTkFCTEVfTk9USUZJQ0FUSU9OU19tYWNvc3hfMTA3MCA9IDsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiZjg5NjgyMmI2NzZi
MDcwZmQ5MTRhYzQ2MzdiZWMwOTJjZjkxYTdiLi5iNWQ0Y2M0NWM0NmRhZDA2YTViOTI0YTk2ZDU2
ODJhN2M0MDMzYjljIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDYtMTUgIEFkYW0gS2xlaW4gIDxhZGFta0Bj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVtb3ZlIHZlbmRvciBwcmVmaXggZnJvbSBET00gTXV0
YXRpb25PYnNlcnZlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg5MjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvRXZlbnRTZW5kZXIuY3BwOgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbTogRW5hYmxlIE11dGF0aW9uT2JzZXJ2ZXJz
IG9ubHkgZm9yIHBvcnRzCisgICAgICAgIHRoYXQgcGFzcyBhbGwgZmFzdC9tdXRhdGlvbi8uLi4g
dGVzdHMgKGluY2x1ZGluZyBlbmQtb2YtdGFzayBkZWxpdmVyeSkuCisKIDIwMTItMDYtMjYgIFRo
aWFnbyBNYXJjb3MgUC4gU2FudG9zICA8dGhpYWdvLnNhbnRvc0BpbnRlbC5jb20+CiAKICAgICAg
ICAgd2Via2l0cHk6IE1ha2Ugd2Via2l0LXBhdGNoIHBhdGNoZXMtdG8tcmV2aWV3IHVzZWZ1bApk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0V2ZW50U2VuZGVyLmNwcCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9FdmVudFNlbmRlci5jcHAKaW5kZXggMTAyYmI2NjBmMjA0
Yjk5MGI4ZGRmNWEzMTQyNThjYjk1OWIxMjJmYi4uNGNjMmFiMzRiMmY1MDZmY2I2NDkzMGJjOWRj
OTJmYzZlMWVjNTgzNiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0V2ZW50
U2VuZGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRXZlbnRTZW5kZXIuY3Bw
CkBAIC0zNSw3ICszNSw2IEBACiAKICNpbmNsdWRlICJEdW1wUmVuZGVyVHJlZS5oIgogI2luY2x1
ZGUgIldlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oIgotI2luY2x1ZGUg
IldlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlIDxHT3duUHRyR3RrLmg+CiAjaW5j
bHVkZSA8R1JlZlB0ckd0ay5oPgogI2luY2x1ZGUgPEd0a1ZlcnNpb25pbmcuaD4KZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQppbmRleCAwZjAzM2FjNTU0OWVlNWM3OTdiZjEy
MDRhMzU2NzE5NWM0OTY1ZGFkLi5mOTJkMTUyNmVkY2RlNWI1ODhkNTc1ZTRjYTNjYWFhMGNmYWM5
YWI2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0K
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCkBAIC0yOTUsNyAr
Mjk1LDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfTUlDUk9E
QVRBIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJG1pY3JvZGF0YVN1cHBvcnQgfSwKIAogICAg
IHsgb3B0aW9uID0+ICJtdXRhdGlvbi1vYnNlcnZlcnMiLCBkZXNjID0+ICJUb2dnbGUgTXV0YXRp
b24gT2JzZXJ2ZXJzIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfTVVUQVRJT05f
T0JTRVJWRVJTIiwgZGVmYXVsdCA9PiAxLCB2YWx1ZSA9PiBcJG11dGF0aW9uT2JzZXJ2ZXJzU3Vw
cG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTIiwgZGVm
YXVsdCA9PiAoaXNDaHJvbWl1bSgpIHx8IGlzR3RrKCkgfHwgaXNFZmwoKSksIHZhbHVlID0+IFwk
bXV0YXRpb25PYnNlcnZlcnNTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAibmV0c2NhcGUt
cGx1Z2luLWFwaSIsIGRlc2MgPT4gIlRvZ2dsZSBOZXRzY2FwZSBQbHVnaW4gQVBJIHN1cHBvcnQi
LAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSIsIGRlZmF1bHQg
PT4gIWlzRWZsKCksIHZhbHVlID0+IFwkbmV0c2NhcGVQbHVnaW5BUElTdXBwb3J0IH0sCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggODYxZDYxYjk1MTUzNmVmY2Q1MTIwNjIyYWZmMTk3ZmY3OWRhMzU0My4uM2U4ZGFhZTcxOWUx
NjgwN2ExMzE0NTA2MTI4OWZiYWViYjJmZjY0MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDEy
LTA2LTE1ICBBZGFtIEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbW92
ZSB2ZW5kb3IgcHJlZml4IGZyb20gRE9NIE11dGF0aW9uT2JzZXJ2ZXJzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTIzMQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFsbCB0ZXN0cyBoYXZlIGJlZW4gdXBk
YXRlZCB0byByZWZlcmVuY2UgdGhlIHVucHJlZml4ZWQgbmFtZS4KKworICAgICAgICAqIGZhc3Qv
bXV0YXRpb24vY2FsbGJhY2stYXJndW1lbnRzLmh0bWw6CisgICAgICAgICogZmFzdC9tdXRhdGlv
bi9jbGVhci10cmFuc2llbnQtd2l0aG91dC1kZWxpdmVyeS5odG1sOgorICAgICAgICAqIGZhc3Qv
bXV0YXRpb24vY3JlYXRlLWR1cmluZy1kZWxpdmVyeS5odG1sOgorICAgICAgICAqIGZhc3QvbXV0
YXRpb24vY3Jvc3MtZG9jdW1lbnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L211dGF0aW9uL2RhdGFi
YXNlLWNhbGxiYWNrLWRlbGl2ZXJ5Lmh0bWw6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi9kZWxp
dmVyeS1vcmRlci5odG1sOgorICAgICAgICAqIGZhc3QvbXV0YXRpb24vZGlzY29ubmVjdC1jYW5j
ZWwtcGVuZGluZy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi9kaXNjb25u
ZWN0LWNhbmNlbC1wZW5kaW5nLmh0bWw6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi9kb2N1bWVu
dC1mcmFnbWVudC1pbnNlcnRpb24uaHRtbDoKKyAgICAgICAgKiBmYXN0L211dGF0aW9uL2VuZC1v
Zi10YXNrLWRlbGl2ZXJ5Lmh0bWw6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi9maWxlc3lzdGVt
LWNhbGxiYWNrLWRlbGl2ZXJ5Lmh0bWw6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi9pbmxpbmUt
ZXZlbnQtbGlzdGVuZXIuaHRtbDoKKyAgICAgICAgKiBmYXN0L211dGF0aW9uL211dGF0ZS1kdXJp
bmctZGVsaXZlcnkuaHRtbDoKKyAgICAgICAgKiBmYXN0L211dGF0aW9uL211dGF0aW9uLWNhbGxi
YWNrLW5vbi1lbGVtZW50LWNyYXNoLmh0bWw6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi9tdXRh
dGlvbi1vYnNlcnZlci1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9t
dXRhdGlvbi9tdXRhdGlvbi1vYnNlcnZlci1jb25zdHJ1Y3Rvci5odG1sOgorICAgICAgICAqIGZh
c3QvbXV0YXRpb24vb2JzZXJ2ZS1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBm
YXN0L211dGF0aW9uL29ic2VydmUtYXR0cmlidXRlcy5odG1sOgorICAgICAgICAqIGZhc3QvbXV0
YXRpb24vb2JzZXJ2ZS1jaGFyYWN0ZXJkYXRhLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0
L211dGF0aW9uL29ic2VydmUtY2hhcmFjdGVyZGF0YS5odG1sOgorICAgICAgICAqIGZhc3QvbXV0
YXRpb24vb2JzZXJ2ZS1jaGlsZExpc3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvbXV0
YXRpb24vb2JzZXJ2ZS1jaGlsZExpc3QuaHRtbDoKKyAgICAgICAgKiBmYXN0L211dGF0aW9uL29i
c2VydmUtZXhjZXB0aW9ucy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi9v
YnNlcnZlLWV4Y2VwdGlvbnMuaHRtbDoKKyAgICAgICAgKiBmYXN0L211dGF0aW9uL29ic2VydmUt
c3VidHJlZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi9vYnNlcnZlLXN1
YnRyZWUuaHRtbDoKKyAgICAgICAgKiBmYXN0L211dGF0aW9uL3NoYWRvdy1kb20uaHRtbDoKKyAg
ICAgICAgKiBmYXN0L211dGF0aW9uL3Rha2VSZWNvcmRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBmYXN0L211dGF0aW9uL3Rha2VSZWNvcmRzLmh0bWw6CisgICAgICAgICogZmFzdC9tdXRhdGlv
bi90cmFuc2llbnQtZ2MtY3Jhc2guaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2tpcHBl
ZDogU2tpcCBNdXRhdGlvbk9ic2VydmVyIHRlc3RzIGFzIHRoZXkncmUgbm93IGRpc2FibGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL3dpbi9Ta2lwcGVkOiBkaXR0bworICAgICAgICAqIHBsYXRmb3Jt
L3dpbmNhaXJvL1NraXBwZWQ6IGRpdHRvCisKIDIwMTItMDYtMjYgIEFscGhhIExhbSAgPGhjbGFt
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIE1hcmsgYSBsYXlvdXQgdGVzdCBh
cyBmYWlsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2NhbGxiYWNrLWFy
Z3VtZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9jYWxsYmFjay1hcmd1bWVu
dHMuaHRtbAppbmRleCBmNzhkZGQ5MmQzNWE0OTg0ODI2MGQ2N2M2ZTIxZWVkYWQwNzFkZDYzLi5m
ODc2NzJmZWNkN2EzNTNkNDA0ZDk4YmQzMzM4OTNmNTkzNDA2NWNjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L211dGF0aW9uL2NhbGxiYWNrLWFyZ3VtZW50cy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvbXV0YXRpb24vY2FsbGJhY2stYXJndW1lbnRzLmh0bWwKQEAgLTEyLDcgKzEy
LDcgQEAgZnVuY3Rpb24gbXV0YXRpb25DYWxsYmFjayhtdXRhdGlvbnMsIG9ic2VydmVyKSB7CiAg
ICAgc2hvdWxkQmUoJ2FyZ3VtZW50MicsICdtdXRhdGlvbk9ic2VydmVyJyk7CiAgICAgZmluaXNo
SlNUZXN0KCk7CiB9Ci12YXIgbXV0YXRpb25PYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9i
c2VydmVyKG11dGF0aW9uQ2FsbGJhY2spOwordmFyIG11dGF0aW9uT2JzZXJ2ZXIgPSBuZXcgTXV0
YXRpb25PYnNlcnZlcihtdXRhdGlvbkNhbGxiYWNrKTsKIHZhciBkaXYgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKTsKIG11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZShkaXYsIHthdHRyaWJ1
dGVzOiB0cnVlfSk7CiBkaXYuc2V0QXR0cmlidXRlKCdmb28nLCAnYmFyJyk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2NsZWFyLXRyYW5zaWVudC13aXRob3V0LWRlbGl2
ZXJ5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2NsZWFyLXRyYW5zaWVudC13aXRo
b3V0LWRlbGl2ZXJ5Lmh0bWwKaW5kZXggZTFmZWU4MTcyMGViY2Q3MDllODA5OTlmNGE5YmUxMjcy
Y2FhODdlMi4uNDJhNTNlMzhiZDVmNTZlM2MzMjQxYWQzNGNjYjY3YWMxMDQ5NDMxNCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9jbGVhci10cmFuc2llbnQtd2l0aG91dC1k
ZWxpdmVyeS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vY2xlYXItdHJhbnNp
ZW50LXdpdGhvdXQtZGVsaXZlcnkuaHRtbApAQCAtNyw3ICs3LDcgQEAgdmFyIG11dGF0aW9uc0Rl
bGl2ZXJlZCA9IGZhbHNlOwogZnVuY3Rpb24gY2FsbGJhY2sobXV0YXRpb25zKSB7CiAgICAgbXV0
YXRpb25zRGVsaXZlcmVkID0gdHJ1ZTsKIH0KLXZhciBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRh
dGlvbk9ic2VydmVyKGNhbGxiYWNrKTsKK3ZhciBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2Vy
dmVyKGNhbGxiYWNrKTsKIAogdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OwogdmFyIHNwYW4gPSBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3Bh
bicpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vY3JlYXRlLWR1cmlu
Zy1kZWxpdmVyeS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9jcmVhdGUtZHVyaW5n
LWRlbGl2ZXJ5Lmh0bWwKaW5kZXggY2VlZTI0ZTcwODJjZjgxZDVhNWE1NDljNGNkN2I0ZDJkYjhl
MjAyNi4uNGY1ZDA3YzZjMDFkOWRmOGZmNTMxNDU3NzFkMmVjNTM0ODg4YzJhYSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9jcmVhdGUtZHVyaW5nLWRlbGl2ZXJ5Lmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9jcmVhdGUtZHVyaW5nLWRlbGl2ZXJ5Lmh0
bWwKQEAgLTE3LDE3ICsxNywxNyBAQCB2YXIgb3JkZXIgPSBbXTsKIHZhciBkaXYgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKIAogdmFyIG9ic2VydmVyMzsKLXZhciBvYnNlcnZlcjEg
PSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKK3ZhciBv
YnNlcnZlcjEgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAg
ICBvcmRlci5wdXNoKDEpOwogICAgIGlmICghb2JzZXJ2ZXIzKSB7Ci0gICAgICAgIG9ic2VydmVy
MyA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAg
ICAgICBvYnNlcnZlcjMgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMp
IHsKICAgICAgICAgICAgIG9yZGVyLnB1c2goMyk7CiAgICAgICAgIH0pOwogICAgICAgICBvYnNl
cnZlcjMub2JzZXJ2ZShkaXYsIHthdHRyaWJ1dGVzOiB0cnVlfSk7CiAgICAgICAgIGRpdi5zZXRB
dHRyaWJ1dGUoJ2ZvbycsICdiYXonKTsKICAgICB9CiB9KTsKLXZhciBvYnNlcnZlcjIgPSBuZXcg
V2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKK3ZhciBvYnNlcnZl
cjIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICBvcmRl
ci5wdXNoKDIpOwogfSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24v
Y3Jvc3MtZG9jdW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vY3Jvc3MtZG9j
dW1lbnQuaHRtbAppbmRleCBmNGVlN2YwY2ZjZDg3NGJlZGJmODhhOWZhZmE3YWJhOWYxODA0ZmEx
Li5jODgzZGEzNGY0NDZmY2Q5MmUxMTY2YmFlZDliZTViMTcyYjdiOGQzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2Nyb3NzLWRvY3VtZW50Lmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9tdXRhdGlvbi9jcm9zcy1kb2N1bWVudC5odG1sCkBAIC0xOCw3ICsxOCw3IEBA
IGZ1bmN0aW9uIHRlc3RCYXNpYygpIHsKIAogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwogICAg
ICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgb2JzZXJ2
ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKKyAg
ICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMp
IHsKICAgICAgICAgICAgIHdpbmRvdy5tdXRhdGlvbnMgPSBtdXRhdGlvbnM7CiAgICAgICAgIH0p
OwogCkBAIC01Miw3ICs1Miw3IEBAIGZ1bmN0aW9uIHRlc3RTdWJ0cmVlKCkgewogICAgICAgICBt
dXRhdGlvbnMgPSBudWxsOwogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKTsKICAgICAgICAgc3ViRGl2ID0gZGl2LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2RpdicpKTsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNl
cnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRp
b25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICAgICAgICAgIHdpbmRvdy5tdXRh
dGlvbnMgPSBtdXRhdGlvbnM7CiAgICAgICAgIH0pOwogCkBAIC04OSw3ICs4OSw3IEBAIGZ1bmN0
aW9uIHJ1bk5leHRUZXN0KCkgewogCiBkZXNjcmlwdGlvbignVGVzdCB0aGF0IE11dGF0aW9uT2Jz
ZXJ2ZXJzIG1vdmUgY29ycmVjdGx5IGFjcm9zcyBkb2N1bWVudHMnKTsKIAotaWYgKCF3aW5kb3cu
V2ViS2l0TXV0YXRpb25PYnNlcnZlcikKK2lmICghd2luZG93Lk11dGF0aW9uT2JzZXJ2ZXIpCiAg
ICAgdGVzdEZhaWxlZCgnVGhpcyB0ZXN0IHJlcXVpcmVzIEVOQUJMRShNVVRBVElPTl9PQlNFUlZF
UlMpJyk7CiBlbHNlCiAgICAgcnVuTmV4dFRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvbXV0YXRpb24vZGF0YWJhc2UtY2FsbGJhY2stZGVsaXZlcnkuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvbXV0YXRpb24vZGF0YWJhc2UtY2FsbGJhY2stZGVsaXZlcnkuaHRtbAppbmRleCBj
NzlhM2ZhYzI3ZGQ4N2NhOTQ1OWM2MWMxMTJhNmMyOGM0NjZmNjI0Li40MDM4ZDBmZTA2OWU4M2Y2
NWEzMmJiOTA1Y2ZkYzM0OGM5OTllNmVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211
dGF0aW9uL2RhdGFiYXNlLWNhbGxiYWNrLWRlbGl2ZXJ5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9tdXRhdGlvbi9kYXRhYmFzZS1jYWxsYmFjay1kZWxpdmVyeS5odG1sCkBAIC0xMiw3ICsx
Miw3IEBAIGZ1bmN0aW9uIHRlc3REYXRhYmFzZSgpIHsKICAgICBmdW5jdGlvbiBzdGFydCgpIHsK
ICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKICAgICAgICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2Vy
dmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0p
OwogCkBAIC00MSw3ICs0MSw3IEBAIGZ1bmN0aW9uIHRlc3REYXRhYmFzZSgpIHsKIAogZGVzY3Jp
cHRpb24oJ1Rlc3RpbmcgbXV0YXRpb25zIGFyZSBkZWxpdmVyZWQgZm9sbG93aW5nIERhdGFiYXNl
IHRyYW5zYWN0aW9uIGNhbGxiYWNrcy4nKTsKIAotaWYgKCF3aW5kb3cuV2ViS2l0TXV0YXRpb25P
YnNlcnZlcikgeworaWYgKCF3aW5kb3cuTXV0YXRpb25PYnNlcnZlcikgewogICAgIHRlc3RGYWls
ZWQoJ1RoaXMgdGVzdCByZXF1aXJlcyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKScpOwogICAg
IGZpbmlzaEpTVGVzdCgpOwogfSBlbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211
dGF0aW9uL2RlbGl2ZXJ5LW9yZGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2Rl
bGl2ZXJ5LW9yZGVyLmh0bWwKaW5kZXggNGU1NWMwZDYyYjY1MzQ4ZDllYWEzYzJiNTA2N2Y1ZmFm
YjgyYjRkZC4uNWJjMjk5MWE1YjViZWM4MjJmYWY2YWFkY2VhZmJmNjlhNDQzNWNhMSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9kZWxpdmVyeS1vcmRlci5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vZGVsaXZlcnktb3JkZXIuaHRtbApAQCAtMjMsNyAr
MjMsNyBAQCB2YXIgb3JkZXIgPSBbXTsKIHZhciBvYnNlcnZlcnMgPSBbXTsKIAogZnVuY3Rpb24g
c2V0VXBPcmRlcmluZyhudW0pIHsKLSAgICBvYnNlcnZlcnMucHVzaChuZXcgV2ViS2l0TXV0YXRp
b25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICBvYnNlcnZlcnMucHVzaChuZXcg
TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICAgICAgb3JkZXIucHVz
aChudW0pOwogICAgIH0pKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRp
b24vZGlzY29ubmVjdC1jYW5jZWwtcGVuZGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L211dGF0aW9uL2Rpc2Nvbm5lY3QtY2FuY2VsLXBlbmRpbmctZXhwZWN0ZWQudHh0CmluZGV4
IDNiNWQ5N2U3NTMyZDY4ZjY2NmViYWU5ZmE1YzBhM2NhZDNmYjFiMTIuLjczNmE3NWUxOTFkNmI1
MWRjZjdhYzc1MGU1NDJkODg4YWM1MjFjNGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
bXV0YXRpb24vZGlzY29ubmVjdC1jYW5jZWwtcGVuZGluZy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9kaXNjb25uZWN0LWNhbmNlbC1wZW5kaW5nLWV4cGVjdGVk
LnR4dApAQCAtMSw0ICsxLDQgQEAKLVRlc3QgdGhhdCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmRp
c2Nvbm5lY3QgY2FuY2VscyBwZW5kaW5nIGRlbGl2ZXJ5CitUZXN0IHRoYXQgTXV0YXRpb25PYnNl
cnZlci5kaXNjb25uZWN0IGNhbmNlbHMgcGVuZGluZyBkZWxpdmVyeQogCiBPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vZGlz
Y29ubmVjdC1jYW5jZWwtcGVuZGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9k
aXNjb25uZWN0LWNhbmNlbC1wZW5kaW5nLmh0bWwKaW5kZXggZjYyZmQ1MjllMzljNTFhYzdjNDY4
Yzk5YmVhMzcxMzc1MDE1NmFkMS4uYmQ0NzgwOGY0YzI1MzdhM2M0N2Q0NjhhNjkzYzdjNDJkYTRh
YTc5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9kaXNjb25uZWN0LWNh
bmNlbC1wZW5kaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9kaXNjb25u
ZWN0LWNhbmNlbC1wZW5kaW5nLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8IURPQ1RZUEUgaHRtbD4K
IDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdD4KLWRlc2NyaXB0aW9uKCdUZXN0IHRoYXQgV2ViS2l0TXV0YXRpb25PYnNlcnZlci5k
aXNjb25uZWN0IGNhbmNlbHMgcGVuZGluZyBkZWxpdmVyeScpOworZGVzY3JpcHRpb24oJ1Rlc3Qg
dGhhdCBNdXRhdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QgY2FuY2VscyBwZW5kaW5nIGRlbGl2ZXJ5
Jyk7CiAKIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIHZhciBtdXRhdGlvbnM7CkBAIC0x
MSw3ICsxMSw3IEBAIGZ1bmN0aW9uIHN0YXJ0KCkgewogICAgIG11dGF0aW9ucyA9IG51bGw7CiAg
ICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAKLSAgICBvYnNlcnZlciA9
IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICBvYnNlcnZlciA9
IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgbXV0YXRpb25zID0g
bTsKICAgICB9KTsKIApAQCAtMzYsNyArMzYsNyBAQCBmdW5jdGlvbiBmaW5pc2goKSB7CiAgICAg
ZmluaXNoSlNUZXN0KCk7CiB9CiAKLWlmICghd2luZG93LldlYktpdE11dGF0aW9uT2JzZXJ2ZXIp
CitpZiAoIXdpbmRvdy5NdXRhdGlvbk9ic2VydmVyKQogICAgIHRlc3RGYWlsZWQoJ1RoaXMgdGVz
dCByZXF1aXJlcyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKScpOwogZWxzZQogICAgIHN0YXJ0
KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2RvY3VtZW50LWZyYWdt
ZW50LWluc2VydGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9kb2N1bWVudC1m
cmFnbWVudC1pbnNlcnRpb24uaHRtbAppbmRleCBjYWM0NmNmZjQzMjA3YTllMmJmMGQ5ZmE2YzNj
M2RlYzJhZTVmZmU0Li5iNjQ2NmVjZWI0NGQ2NGFmZjhhNmY5YzMwOGYwZDVmNjAyNGY4NmZmIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2RvY3VtZW50LWZyYWdtZW50LWlu
c2VydGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vZG9jdW1lbnQtZnJh
Z21lbnQtaW5zZXJ0aW9uLmh0bWwKQEAgLTIwLDcgKzIwLDcgQEAgZnVuY3Rpb24gY3JlYXRlT2Jz
ZXJ2ZWREaXYoKSB7CiBmdW5jdGlvbiBjYWxsYmFjayhtdXRhdGlvbnMpIHsKICAgICB3aW5kb3cu
bXV0YXRpb25zID0gbXV0YXRpb25zOwogfQotdmFyIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0
aW9uT2JzZXJ2ZXIoY2FsbGJhY2spOwordmFyIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2
ZXIoY2FsbGJhY2spOwogCiBmdW5jdGlvbiB0ZXN0QXBwZW5kQ2hpbGQoKSB7CiAgICAgZGVidWco
J1Rlc3RpbmcgYXBwZW5kQ2hpbGQnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0
YXRpb24vZW5kLW9mLXRhc2stZGVsaXZlcnkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRp
b24vZW5kLW9mLXRhc2stZGVsaXZlcnkuaHRtbAppbmRleCAyMmQzNjQ3OGM4OTcyYWJhZDllN2Rl
NTIwOGYyOTZiMzhkMzhmOTZiLi40Yzc5YTc1NGJlMjQ0YjY0ZWE5NmU2Y2I0NTdhZWMwN2I2YTg5
N2M0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2VuZC1vZi10YXNrLWRl
bGl2ZXJ5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9lbmQtb2YtdGFzay1k
ZWxpdmVyeS5odG1sCkBAIC0xMiw3ICsxMiw3IEBACiAgICAgdmFyIGxpc3QgPSBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCdvbCcpOwogICAgIHZhciBwID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcign
cCcpOwogICAgIHZhciBvYnNlcnZlclJ1bnMgPSAwOwotICAgIHZhciBvYnNlcnZlciA9IG5ldyBX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKCkgeyArK29ic2VydmVyUnVuczsgfSk7Cisg
ICAgdmFyIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKSB7ICsrb2Jz
ZXJ2ZXJSdW5zOyB9KTsKICAgICBvYnNlcnZlci5vYnNlcnZlKGxpc3QsIHtjaGlsZExpc3Q6IHRy
dWV9KTsKICAgICBsaXN0LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCBmdW5jdGlvbigpIHsKICAg
ICAgICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSBvYnNlcnZlclJ1bnMgPT0gMSA/ICdQQVNT
RUQnIDogJ0ZBSUxFRCc7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2Zp
bGVzeXN0ZW0tY2FsbGJhY2stZGVsaXZlcnkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRp
b24vZmlsZXN5c3RlbS1jYWxsYmFjay1kZWxpdmVyeS5odG1sCmluZGV4IGVmMWM1NmExNWE4ZTgy
MzA0YzgxZTU3ZjRhY2RjODhjOWRiNzU3ZjcuLmFiNTViODk5NGQzODFmZDU3NmMyMWVlMTZkZWMw
ODg3MzdhOWM2MmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vZmlsZXN5
c3RlbS1jYWxsYmFjay1kZWxpdmVyeS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRp
b24vZmlsZXN5c3RlbS1jYWxsYmFjay1kZWxpdmVyeS5odG1sCkBAIC0xMiw3ICsxMiw3IEBAIGZ1
bmN0aW9uIHRlc3RGaWxlc3lzdGVtKCkgewogICAgIGZ1bmN0aW9uIHN0YXJ0KCkgewogICAgICAg
ICBtdXRhdGlvbnMgPSBudWxsOwogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdkaXYnKTsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihm
dW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVu
Y3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAg
LTU2LDcgKzU2LDcgQEAgZnVuY3Rpb24gdGVzdEZpbGVzeXN0ZW0oKSB7CiAKIGRlc2NyaXB0aW9u
KCdUZXN0IHRoYXQgTXV0YXRpb24gUmVjb3JkcyBhcmUgZGVsaXZlcmVkIGZvbGxvd2luZyBGaWxl
U3lzdGVtIGNhbGxiYWNrcy4nKTsKIAotaWYgKCF3aW5kb3cuV2ViS2l0TXV0YXRpb25PYnNlcnZl
ciB8fCAhd2luZG93LndlYmtpdFJlcXVlc3RGaWxlU3lzdGVtKSB7CitpZiAoIXdpbmRvdy5NdXRh
dGlvbk9ic2VydmVyIHx8ICF3aW5kb3cud2Via2l0UmVxdWVzdEZpbGVTeXN0ZW0pIHsKICAgICB0
ZXN0RmFpbGVkKCdUaGlzIHRlc3QgcmVxdWlyZXMgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykg
YW5kIEVOQUJMRShGSUxFX1NZU1RFTSknKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0gZWxzZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9pbmxpbmUtZXZlbnQtbGlzdGVu
ZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vaW5saW5lLWV2ZW50LWxpc3RlbmVy
Lmh0bWwKaW5kZXggMzA5NjhlMTRmYmQ2Nzk4MWRhMDVhZmIwODFkZDg5M2Q3YmJlMDk5My4uNTdk
ODZiOTNiYTgyYzM5MmQ5OTQ5ZjRjYmM5YjYwNTQ3MzJiMjQwYiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9tdXRhdGlvbi9pbmxpbmUtZXZlbnQtbGlzdGVuZXIuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L211dGF0aW9uL2lubGluZS1ldmVudC1saXN0ZW5lci5odG1sCkBAIC0xMCw3
ICsxMCw3IEBACiAKICAgICB2YXIgbGlzdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ29sJyk7
CiAgICAgdmFyIG9ic2VydmVyUmFuID0gZmFsc2U7Ci0gICAgdmFyIG9ic2VydmVyID0gbmV3IFdl
YktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKSB7IG9ic2VydmVyUmFuID0gdHJ1ZTsgfSk7
CisgICAgdmFyIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKSB7IG9i
c2VydmVyUmFuID0gdHJ1ZTsgfSk7CiAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShsaXN0LCB7Y2hpbGRM
aXN0OiB0cnVlLCBjaGFyYWN0ZXJEYXRhOiB0cnVlfSk7CiAgICAgbGlzdC5mb2N1cygpOwogICAg
IGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211
dGF0aW9uL211dGF0ZS1kdXJpbmctZGVsaXZlcnkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0
YXRpb24vbXV0YXRlLWR1cmluZy1kZWxpdmVyeS5odG1sCmluZGV4IGY5MzAxYjk3ZTVjZDE4YTEw
NTIyNGNmZGFjNGZlNGY4YTM5MzdiMzYuLmM5NDlmN2U3YjAyZTAyNzhkYWY5ZGJmN2YwNGYzYmE3
ZWVmODM4NmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vbXV0YXRlLWR1
cmluZy1kZWxpdmVyeS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vbXV0YXRl
LWR1cmluZy1kZWxpdmVyeS5odG1sCkBAIC0xNSwxNCArMTUsMTQgQEAgZnVuY3Rpb24gZmluaXNo
KCkgewogdmFyIG9yZGVyID0gW107CiB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
ZGl2Jyk7CiAKLXZhciBvYnNlcnZlcjEgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5j
dGlvbihtdXRhdGlvbnMpIHsKK3ZhciBvYnNlcnZlcjEgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihm
dW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICBvcmRlci5wdXNoKDEpOwogICAgIGRpdi5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykpOwogfSk7Ci12YXIgb2JzZXJ2ZXIy
ID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7Cit2YXIg
b2JzZXJ2ZXIyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAg
ICAgb3JkZXIucHVzaCgyKTsKIH0pOwotdmFyIG9ic2VydmVyMyA9IG5ldyBXZWJLaXRNdXRhdGlv
bk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewordmFyIG9ic2VydmVyMyA9IG5ldyBNdXRh
dGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgIG9yZGVyLnB1c2goMyk7CiB9
KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9tdXRhdGlvbi1jYWxs
YmFjay1ub24tZWxlbWVudC1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9t
dXRhdGlvbi1jYWxsYmFjay1ub24tZWxlbWVudC1jcmFzaC5odG1sCmluZGV4IDc1ZjIyZWY5NjEx
NmEzYTUwNzk2YzQ4YTM2ZTNlZDcwZTA4NTBiNmUuLjJlYWEwNDYxYjcxMDY4NWEwNjNiZjcxYzhj
NzhmNDM3MzU5MjZiZjEgMTAwNzU1Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vbXV0
YXRpb24tY2FsbGJhY2stbm9uLWVsZW1lbnQtY3Jhc2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L211dGF0aW9uL211dGF0aW9uLWNhbGxiYWNrLW5vbi1lbGVtZW50LWNyYXNoLmh0bWwKQEAg
LTksNyArOSw3IEBAIGZ1bmN0aW9uIG11dGF0aW9uQ2FsbGJhY2sobXV0YXRpb25zLCBvYnNlcnZl
cikgewogICAgIG11dGF0aW9uc1swXS5hZGRlZE5vZGVzWy0xXTsKIH0KIAotdmFyIG11dGF0aW9u
T2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihtdXRhdGlvbkNhbGxiYWNrKTsK
K3ZhciBtdXRhdGlvbk9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIobXV0YXRpb25DYWxs
YmFjayk7CiBtdXRhdGlvbk9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuYm9keSwge2NoaWxkTGlz
dDogdHJ1ZX0pOwogZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0
Tm9kZSgiUEFTUy4gV2ViS2l0IGRpZG4ndCBjcmFzaCIpKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9tdXRhdGlvbi1vYnNlcnZlci1jb25zdHJ1Y3Rv
ci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL211dGF0aW9uLW9ic2Vy
dmVyLWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dAppbmRleCAyYmViM2U4NmU3MGUyNDg1YTc3MjAx
ODA3NzY0Mjg1OTE3OTI3NDlkLi41NDdmNGJkNDgzZjNmMDE5NWIwYWUwNjc0YzA2OGVhN2RmYjU5
YzdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL211dGF0aW9uLW9ic2Vy
dmVyLWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0
aW9uL211dGF0aW9uLW9ic2VydmVyLWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dApAQCAtMSwxMSAr
MSwxMSBAQAotVGVzdCB0aGUgY29uc3RydWN0b3Igb2YgV2ViS2l0TXV0YXRpb25PYnNlcnZlcgor
VGVzdCB0aGUgY29uc3RydWN0b3Igb2YgTXV0YXRpb25PYnNlcnZlcgogCiBPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCiAKIAotUEFTUyB3aW5kb3cuV2ViS2l0TXV0YXRpb25PYnNlcnZlciBpcyBu
b24tbnVsbC4KLVBBU1MgdHlwZW9mIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIucHJvdG90eXBlLm9i
c2VydmUgaXMgImZ1bmN0aW9uIgotUEFTUyB0eXBlb2YgV2ViS2l0TXV0YXRpb25PYnNlcnZlci5w
cm90b3R5cGUuZGlzY29ubmVjdCBpcyAiZnVuY3Rpb24iCitQQVNTIHdpbmRvdy5NdXRhdGlvbk9i
c2VydmVyIGlzIG5vbi1udWxsLgorUEFTUyB0eXBlb2YgTXV0YXRpb25PYnNlcnZlci5wcm90b3R5
cGUub2JzZXJ2ZSBpcyAiZnVuY3Rpb24iCitQQVNTIHR5cGVvZiBNdXRhdGlvbk9ic2VydmVyLnBy
b3RvdHlwZS5kaXNjb25uZWN0IGlzICJmdW5jdGlvbiIKIFBBU1MgdHlwZW9mIG9ic2VydmVyLm9i
c2VydmUgaXMgImZ1bmN0aW9uIgogUEFTUyB0eXBlb2Ygb2JzZXJ2ZXIuZGlzY29ubmVjdCBpcyAi
ZnVuY3Rpb24iCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL211dGF0aW9uLW9ic2VydmVyLWNvbnN0cnVjdG9yLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL211dGF0aW9uLW9ic2VydmVyLWNvbnN0cnVj
dG9yLmh0bWwKaW5kZXggYWI0MGY3MGVkNzM2OGY1Mzg1YTFmNDlkODVkMzllNGE2MGFlMzdjZC4u
YjhhOTJiYjNhNmZiMmFhYTFlNDNlNGU0NDUwODUzNDAwMWZjOWJjZSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9tdXRhdGlvbi1vYnNlcnZlci1jb25zdHJ1Y3Rvci5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vbXV0YXRpb24tb2JzZXJ2ZXItY29uc3Ry
dWN0b3IuaHRtbApAQCAtMTEsMTcgKzExLDE3IEBACiA8c2NyaXB0PgogCiBmdW5jdGlvbiBydW5U
ZXN0KCkgewotICAgIHNob3VsZEJlTm9uTnVsbCgnd2luZG93LldlYktpdE11dGF0aW9uT2JzZXJ2
ZXInKTsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3R5cGVvZiBXZWJLaXRNdXRhdGlvbk9i
c2VydmVyLnByb3RvdHlwZS5vYnNlcnZlJywgJ2Z1bmN0aW9uJyk7Ci0gICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCd0eXBlb2YgV2ViS2l0TXV0YXRpb25PYnNlcnZlci5wcm90b3R5cGUuZGlzY29u
bmVjdCcsICdmdW5jdGlvbicpOwotICAgIHdpbmRvdy5vYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRh
dGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeyB9KTsKKyAgICBzaG91bGRCZU5vbk51
bGwoJ3dpbmRvdy5NdXRhdGlvbk9ic2VydmVyJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCd0eXBlb2YgTXV0YXRpb25PYnNlcnZlci5wcm90b3R5cGUub2JzZXJ2ZScsICdmdW5jdGlvbicp
OworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygndHlwZW9mIE11dGF0aW9uT2JzZXJ2ZXIucHJv
dG90eXBlLmRpc2Nvbm5lY3QnLCAnZnVuY3Rpb24nKTsKKyAgICB3aW5kb3cub2JzZXJ2ZXIgPSBu
ZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsgfSk7CiAgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCd0eXBlb2Ygb2JzZXJ2ZXIub2JzZXJ2ZScsICdmdW5jdGlvbicpOwog
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygndHlwZW9mIG9ic2VydmVyLmRpc2Nvbm5lY3QnLCAn
ZnVuY3Rpb24nKTsKIH0KIAotZGVzY3JpcHRpb24oJ1Rlc3QgdGhlIGNvbnN0cnVjdG9yIG9mIFdl
YktpdE11dGF0aW9uT2JzZXJ2ZXInKTsKK2Rlc2NyaXB0aW9uKCdUZXN0IHRoZSBjb25zdHJ1Y3Rv
ciBvZiBNdXRhdGlvbk9ic2VydmVyJyk7CiAKLWlmICghd2luZG93LldlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXIpCitpZiAoIXdpbmRvdy5NdXRhdGlvbk9ic2VydmVyKQogICAgIHRlc3RGYWlsZWQoJ1Ro
aXMgdGVzdCByZXF1aXJlcyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKScpOwogZWxzZQogICAg
IHJ1blRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2
ZS1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2Jz
ZXJ2ZS1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCAwN2E2OGMzY2Q5ZjcwNGI4YzUxZTE1
MWQ0N2RhMTQwZmM0ZjEzZGRjLi5iOTk4Yzk4OTQ3M2Y5YTdiZmFiYjk1NjM5YmI0MDYyNmU4MGQ3
MTliIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtYXR0cmli
dXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZl
LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotVGVzdCBXZWJLaXRNdXRh
dGlvbk9ic2VydmVyLm9ic2VydmUgb24gYXR0cmlidXRlcworVGVzdCBNdXRhdGlvbk9ic2VydmVy
Lm9ic2VydmUgb24gYXR0cmlidXRlcwogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1hdHRyaWJ1dGVzLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtYXR0cmlidXRlcy5odG1sCmlu
ZGV4IDQyMWVlYWRmMWZmNzE4NjliODNhOTk5MjI4MDc2MGM4MmRmNGEyZmQuLjM2ZWE5MGI1MTAz
YTlmMTI1ZWIzNjAzZDkwMWI3NjFiNDJlYmY3YTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvbXV0YXRpb24vb2JzZXJ2ZS1hdHRyaWJ1dGVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9tdXRhdGlvbi9vYnNlcnZlLWF0dHJpYnV0ZXMuaHRtbApAQCAtMTgsNyArMTgsNyBAQCBmdW5j
dGlvbiB0ZXN0QmFzaWMoKSB7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2RpdicpOwogICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCdiYXInLCAnZm9vJyk7CiAKLSAgICAg
ICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7Cisg
ICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAg
ICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTgyLDcgKzgyLDcgQEAg
ZnVuY3Rpb24gdGVzdFdyb25nVHlwZSgpIHsKIAogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwog
ICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgb2Jz
ZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAg
IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAg
ICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTExMSw3ICsxMTEsNyBAQCBmdW5j
dGlvbiB0ZXN0TXVsdGlwbGVSZWdpc3RyYXRpb24oKSB7CiAJCWNhbGxzID0gMDsKICAgICAgICAg
bXV0YXRpb25zID0gbnVsbDsKICAgICAgICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
ZGl2Jyk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVu
Y3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0
aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAJCQljYWxscysrOwogICAgICAg
ICB9KTsKQEAgLTE1MywxMCArMTUzLDEwIEBAIGZ1bmN0aW9uIHRlc3RNdWx0aXBsZU9ic2VydmVy
cygpIHsKICAgICAgICAgZGVidWcoJ1Rlc3RpbmcgdGhhdCBtdWx0aXBsZSBvYnNlcnZlcnMgY2Fu
IGJlIHJlZ2lzdGVyZWQgdG8gYSBnaXZlbiBub2RlIGFuZCBib3RoIHJlY2VpdmUgbXV0YXRpb25z
LicpOwogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwogICAgICAgICBkaXYgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRp
b25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9u
T2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAg
ICAgfSk7Ci0gICAgICAgIG9ic2VydmVyMiA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1
bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVu
Y3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zMiA9IG07CiAgICAgICAgIH0pOwogICAg
ICAgICBvYnNlcnZlci5vYnNlcnZlKGRpdiwgeyBhdHRyaWJ1dGVzOiB0cnVlIH0pOwpAQCAtMTg5
LDcgKzE4OSw3IEBAIGZ1bmN0aW9uIHRlc3ROYW1lc3BhY2VVUkkoKSB7CiAgICAgICAgIGRlYnVn
KCdUZXN0aW5nIHRoYXQgImF0dHJpYnV0ZU5hbWVzcGFjZSIgdmFsdWUgaXMgZGVsaXZlcmVkIHBy
b3Blcmx5LicpOwogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwogICAgICAgICBkaXYgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0
TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11
dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsK
ICAgICAgICAgfSk7CiAKQEAgLTIyMSw3ICsyMjEsNyBAQCBmdW5jdGlvbiB0ZXN0UHJvcGVydHlB
Y2Nlc3MoKSB7CiAgICAgICAgIGltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpOwog
ICAgICAgICBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOwogCi0gICAgICAgIG9ic2Vy
dmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBv
YnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAg
IG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBAIC0yNjIsNyArMjYyLDcgQEAgZnVuY3Rp
b24gdGVzdE9yZGVyaW5nV3J0RE9NU3VidHJlZU1vZGlmaWVkKCkgewogCiAgICAgICAgIHN1YkRp
diA9IGRpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7CiAKLSAg
ICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7
CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewog
ICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTMwNSw3ICszMDUs
NyBAQCBmdW5jdGlvbiB0ZXN0T2xkVmFsdWUoKSB7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCdiYXInLCAnYm9v
Jyk7CiAgICAgICAgIAotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlv
bk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICAgICAgd2luZG93Lm11dGF0
aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAgICAgICAgIG9ic2VydmVyLm9ic2VydmUo
ZGl2LCB7IGF0dHJpYnV0ZXM6IHRydWUsIGF0dHJpYnV0ZU9sZFZhbHVlOiB0cnVlIH0pOwpAQCAt
MzQ2LDEwICszNDYsMTAgQEAgZnVuY3Rpb24gdGVzdE9sZFZhbHVlQXNSZXF1ZXN0ZWQoKSB7CiAg
ICAgICAgIG11dGF0aW9ucyA9IG51bGw7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2RpdicpOwogICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCdmb28nLCAnYmFyJyk7Ci0g
ICAgICAgIG9ic2VydmVyV2l0aE9sZFZhbHVlID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIo
ZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyV2l0aE9sZFZhbHVlID0gbmV3
IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5k
b3cubXV0YXRpb25zV2l0aE9sZFZhbHVlID0gbXV0YXRpb25zOwogICAgICAgICB9KTsKLSAgICAg
ICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlv
bnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbiht
dXRhdGlvbnMpIHsKICAgICAgICAgICAgIHdpbmRvdy5tdXRhdGlvbnMgPSBtdXRhdGlvbnM7CiAg
ICAgICAgIH0pOwogICAgICAgICBvYnNlcnZlcldpdGhPbGRWYWx1ZS5vYnNlcnZlKGRpdiwgeyBh
dHRyaWJ1dGVzOiB0cnVlLCBhdHRyaWJ1dGVPbGRWYWx1ZTogdHJ1ZSB9KTsKQEAgLTM4Nyw3ICsz
ODcsNyBAQCBmdW5jdGlvbiB0ZXN0T2xkVmFsdWVVbmlvbk11bHRpcGxlT2JzZXJ2YXRpb25zKCkg
ewogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAg
c3BhbiA9IGRpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykpOwog
ICAgICAgICBzcGFuLnNldEF0dHJpYnV0ZSgnZm9vJywgJ2JhcicpOwotICAgICAgICBvYnNlcnZl
ciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAg
ICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykg
ewogICAgICAgICAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7
CiAgICAgICAgIG9ic2VydmVyLm9ic2VydmUoZGl2LCB7IGF0dHJpYnV0ZXM6IHRydWUsIGF0dHJp
YnV0ZU9sZFZhbHVlOiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pOwpAQCAtNDE3LDcgKzQxNyw3IEBA
IGZ1bmN0aW9uIHRlc3RJRExBdHRyaWJ1dGUoKSB7CiAgICAgICAgIGRlYnVnKCdUZXN0aW5nIHNl
dHRpbmcgYW4gYXR0cmlidXRlIHZpYSByZWZsZWN0ZWQgSURMIGF0dHJpYnV0ZS4nKTsKICAgICAg
ICAgbXV0YXRpb25zID0gbnVsbDsKICAgICAgICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIo
ZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2Jz
ZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25z
ID0gbXV0YXRpb25zOwogICAgICAgICB9KTsKICAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShkaXYs
IHsgYXR0cmlidXRlczogdHJ1ZSwgYXR0cmlidXRlT2xkVmFsdWU6IHRydWUgfSk7CkBAIC00NTQs
NyArNDU0LDcgQEAgZnVuY3Rpb24gdGVzdEF0dHJpYnV0ZUZpbHRlcigpIHsKICAgICAgICAgZGVi
dWcoJ1Rlc3RpbmcgdGhhdCBhdHRyaWJ1dGVGaWx0ZXIgd29ya3MgYXMgZXhwZWN0ZWQgYW5kIG9i
c2VydmVzIGNhc2Ugd2l0aCBIVE1MIGVsZW1lbnRzLicpOwogCiAgICAgICAgIG11dGF0aW9ucyA9
IG51bGw7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVu
Y3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0
aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBAIC00
OTQsNyArNDk0LDcgQEAgZnVuY3Rpb24gdGVzdEF0dHJpYnV0ZUZpbHRlclN1YnRyZWUoKSB7CiAg
ICAgICAgIGRlYnVnKCdUZXN0aW5nIHRoZSBiZWhhdmlvciBvZiBhdHRyaWJ1dGVGaWx0ZXIgd2hl
biB0aGUgc2FtZSBvYnNlcnZlciBvYnNlcnZlcyBhdCBtdWx0aXBsZSBub2RlcyBpbiBhIHN1YnRy
ZWUgd2l0aCBkaWZmZXJlbnQgZmlsdGVyIG9wdGlvbnMuJyk7CiAKICAgICAgICAgbXV0YXRpb25z
ID0gbnVsbDsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihm
dW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVu
Y3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAg
LTU2NSw3ICs1NjUsNyBAQCBmdW5jdGlvbiB0ZXN0QXR0cmlidXRlRmlsdGVyTm9uSFRNTEVsZW1l
bnQoKSB7CiAgICAgICAgIGRlYnVnKCdUZXN0aW5nIHRoYXQgc2V0dGluZyBhbiBhdHRyaWJ1dGVG
aWx0ZXIgZmlsdGVycyBvdXQgbmFtZXNwYWNlZCBhdHRyaWJ1dGVzLicpOwogCiAgICAgICAgIG11
dGF0aW9ucyA9IG51bGw7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2Vy
dmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0p
OwogCkBAIC01OTcsNyArNTk3LDcgQEAgZnVuY3Rpb24gdGVzdEF0dHJpYnV0ZUZpbHRlck5vbkhU
TUxEb2N1bWVudCgpIHsKIAogICAgICAgICBzdmdEb2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlv
bi5jcmVhdGVEb2N1bWVudCgnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLCAnc3ZnJywgJ3N2
ZycpOwogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBu
ZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICBtdXRhdGlvbnMg
PSBtOwogICAgICAgICB9KTsKIApAQCAtNjQyLDcgKzY0Miw3IEBAIGZ1bmN0aW9uIHRlc3RTdHls
ZUF0dHJpYnV0ZVByb3BlcnR5QWNjZXNzKCkgewogICAgICAgICBkZWJ1ZygnVGVzdGluZyB0aGF0
IG1vZGlmeWluZyBhbiBlbGVtZW50cyBzdHlsZSBwcm9wZXJ0eSBkaXNwYXRjaGVzIE11dGF0aW9u
IFJlY29yZHMuJyk7CiAKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKLSAgICAgICAgb2JzZXJ2
ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9i
c2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAg
bXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTY5NCw3ICs2OTQsNyBAQCBmdW5jdGlv
biB0ZXN0U3R5bGVBdHRyaWJ1dGVQcm9wZXJ0eUFjY2Vzc09sZFZhbHVlKCkgewogICAgICAgICBk
ZWJ1ZygnVGVzdGluZyB0aGF0IG1vZGlmeWluZyBhbiBlbGVtZW50cyBzdHlsZSBwcm9wZXJ0eSBk
aXNwYXRjaGVzIE11dGF0aW9uIFJlY29yZHMgd2l0aCBjb3JyZWN0IG9sZFZhbHVlcy4nKTsKIAog
ICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0
YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICBtdXRhdGlvbnMgPSBtOwog
ICAgICAgICB9KTsKIApAQCAtNzQ2LDcgKzc0Niw3IEBAIGZ1bmN0aW9uIHRlc3RTdHlsZUF0dHJp
YnV0ZVByb3BlcnR5QWNjZXNzSWdub3JlTm9vcCgpIHsKICAgICAgICAgZGVidWcoJ1Rlc3Rpbmcg
dGhhdCBhIG5vLW9wIHN0eWxlIHByb3BlcnR5IG11dGF0aW9uIGRvZXMgbm90IGNyZWF0ZSBNdXRh
dGlvbiBSZWNvcmRzLicpOwogCiAgICAgICAgIG11dGF0aW9ucyA9IG51bGw7Ci0gICAgICAgIG9i
c2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAg
ICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAg
ICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBAIC03NzYsNyArNzc2LDcgQEAgZnVu
Y3Rpb24gdGVzdE11dGF0ZVRocm91Z2hBdHRyTm9kZVZhbHVlKCkgewogICAgICAgICBkZWJ1Zygn
VGVzdCB0aGF0IG11dGF0aW5nIGFuIGF0dHJpYnV0ZSB0aHJvdWdoIGFuIGF0dHIgbm9kZSBkZWxp
dmVycyBtdXRhdGlvbiByZWNvcmRzJyk7CiAKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKLSAg
ICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRh
dGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlv
bihtdXRhdGlvbnMpIHsKICAgICAgICAgICAgIHdpbmRvdy5tdXRhdGlvbnMgPSBtdXRhdGlvbnM7
CiAgICAgICAgIH0pOwogCkBAIC04MTAsNyArODEwLDcgQEAgZnVuY3Rpb24gdGVzdE11dGF0ZVRo
cm91Z2hBdHRyTm9kZUNoaWxkKCkgewogICAgICAgICBkZWJ1ZygnVGVzdCB0aGF0IG11dGF0aW5n
IGFuIGF0dHJpYnV0ZSBieSBhdHRhY2hpbmcgYSBjaGlsZCB0byBhbiBhdHRyIG5vZGUgZGVsaXZl
cnMgbXV0YXRpb24gcmVjb3JkcycpOwogCiAgICAgICAgIG11dGF0aW9ucyA9IG51bGw7Ci0gICAg
ICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRp
b25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24o
bXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0YXRpb25zOwog
ICAgICAgICB9KTsKIApAQCAtODQ0LDcgKzg0NCw3IEBAIGZ1bmN0aW9uIHRlc3RTZXRBbmRSZW1v
dmVBdHRyaWJ1dGVOb2RlKCkgewogICAgICAgICBkZWJ1ZygnVGVzdCB0aGF0IG11dGF0aW5nIHZp
YSBzZXRBdHRyaWJ1dGVOb2RlIGRlbGl2ZXJzIG11dGF0aW9uIHJlY29yZHMnKTsKIAogICAgICAg
ICBtdXRhdGlvbnMgPSBudWxsOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlv
bk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBN
dXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICAgICAgd2luZG93
Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAKQEAgLTg5Myw3ICs4OTMsNyBA
QCBmdW5jdGlvbiB0ZXN0TWl4ZWROb2RlQW5kRWxlbWVudE9wZXJhdGlvbnMoKSB7CiAgICAgICAg
IGRlYnVnKCdUZXN0IHRoYXQgc2V0QXR0cmlidXRlIG9uIGFuIGF0dHJpYnV0ZSB3aXRoIGFuIGV4
aXN0aW5nIEF0dHIgZGVsaXZlcnMgbXV0YXRpb24gcmVjb3JkcycpOwogCiAgICAgICAgIG11dGF0
aW9ucyA9IG51bGw7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2
ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9u
T2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRp
b25zID0gbXV0YXRpb25zOwogICAgICAgICB9KTsKIApAQCAtOTI5LDcgKzkyOSw3IEBAIGZ1bmN0
aW9uIHRlc3ROYW1lZE5vZGVNYXBPcGVyYXRpb25zKCkgewogICAgICAgICBkZWJ1ZygnVGVzdCB0
aGF0IHNldE5hbWVkSXRlbSBhbmQgcmVtb3ZlTmFtZWRJdGVtIGRlbGl2ZXIgbXV0YXRpb24gcmVj
b3JkcycpOwogCiAgICAgICAgIG11dGF0aW9ucyA9IG51bGw7Ci0gICAgICAgIG9ic2VydmVyID0g
bmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAg
IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAg
ICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0YXRpb25zOwogICAgICAgICB9KTsKIApA
QCAtOTk3LDkgKzk5Nyw5IEBAIGZ1bmN0aW9uIHJ1bk5leHRUZXN0KCkgewogICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsKIH0KIAotZGVzY3JpcHRpb24oJ1Rlc3QgV2ViS2l0TXV0YXRpb25PYnNlcnZl
ci5vYnNlcnZlIG9uIGF0dHJpYnV0ZXMnKTsKK2Rlc2NyaXB0aW9uKCdUZXN0IE11dGF0aW9uT2Jz
ZXJ2ZXIub2JzZXJ2ZSBvbiBhdHRyaWJ1dGVzJyk7CiAKLWlmICghd2luZG93LldlYktpdE11dGF0
aW9uT2JzZXJ2ZXIpCitpZiAoIXdpbmRvdy5NdXRhdGlvbk9ic2VydmVyKQogICAgIHRlc3RGYWls
ZWQoJ1RoaXMgdGVzdCByZXF1aXJlcyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKScpOwogZWxz
ZQogICAgIHJ1bk5leHRUZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0
aW9uL29ic2VydmUtY2hhcmFjdGVyZGF0YS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L211dGF0aW9uL29ic2VydmUtY2hhcmFjdGVyZGF0YS1leHBlY3RlZC50eHQKaW5kZXggMWRmZjNi
NTVkMjc2Y2MxNWE2ODM5YmVkN2Q5N2IzODJjNmY3YWRmYi4uMzFkZDU3NDA1MmMyZmU3NjNlODhm
MjdmMGEyNTkwMDhmZGU3ZTQwYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlv
bi9vYnNlcnZlLWNoYXJhY3RlcmRhdGEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvbXV0YXRpb24vb2JzZXJ2ZS1jaGFyYWN0ZXJkYXRhLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsx
LDQgQEAKLVRlc3QgV2ViS2l0TXV0YXRpb25PYnNlcnZlci5vYnNlcnZlIG9uIENoYXJhY3RlckRh
dGEgbm9kZXMKK1Rlc3QgTXV0YXRpb25PYnNlcnZlci5vYnNlcnZlIG9uIENoYXJhY3RlckRhdGEg
bm9kZXMKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtY2hhcmFjdGVyZGF0YS5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWNoYXJhY3RlcmRhdGEuaHRtbAppbmRleCAwMWNhZWEy
MWVhNDMwNmI2ZmNmZjJlNDlmZDBlMzk3MzdhMTI2NDVjLi5kODkwNTRhNzNhODQ0MzFmMGU5OGQ5
NjliMzQyODk2YmY2YjYwNzI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9u
L29ic2VydmUtY2hhcmFjdGVyZGF0YS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRp
b24vb2JzZXJ2ZS1jaGFyYWN0ZXJkYXRhLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAgZnVuY3Rpb24g
dGVzdEJhc2ljKCkgewogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKICAgICAgICAgZGl2LnRleHRDb250ZW50ID0gJ2Zvbyc7CiAgICAgICAgIGNoYXJEYXRhTm9k
ZSA9IGRpdi5maXJzdENoaWxkOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlv
bk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25P
YnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICBtdXRhdGlvbnMgPSBtOwogICAgICAg
ICB9KTsKIApAQCAtODcsNyArODcsNyBAQCBmdW5jdGlvbiB0ZXN0V3JvbmdUeXBlKCkgewogICAg
ICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgZGl2LnRl
eHRDb250ZW50ID0gJ2hlbGxvJzsKICAgICAgICAgY2hhckRhdGFOb2RlID0gZGl2LmZpcnN0Q2hp
bGQ7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rp
b24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9u
KG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBAIC0xMTcs
MTAgKzExNywxMCBAQCBmdW5jdGlvbiB0ZXN0TXVsdGlwbGVPYnNlcnZlcnMoKSB7CiAgICAgICAg
IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICBkaXYudGV4dENv
bnRlbnQgPSAnZm9vJzsKICAgICAgICAgY2hhckRhdGFOb2RlID0gZGl2LmZpcnN0Q2hpbGQ7Ci0g
ICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkg
eworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsK
ICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwotICAgICAgICBvYnNlcnZl
cjIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9i
c2VydmVyMiA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAg
IG11dGF0aW9uczIgPSBtOwogICAgICAgICB9KTsKICAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShj
aGFyRGF0YU5vZGUsIHtjaGFyYWN0ZXJEYXRhOiB0cnVlfSk7CkBAIC0xNjEsNyArMTYxLDcgQEAg
ZnVuY3Rpb24gdGVzdE9yZGVyaW5nV3J0RE9NU3VidHJlZU1vZGlmaWVkKCkgewogICAgICAgICBz
dWJEaXYudGV4dENvbnRlbnQgPSAnZm9vJzsKICAgICAgICAgY2hhckRhdGFOb2RlID0gc3ViRGl2
LmZpcnN0Q2hpbGQ7CiAKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNl
cnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2
ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7
CiAKQEAgLTIwMiw3ICsyMDIsNyBAQCBmdW5jdGlvbiB0ZXN0T2xkVmFsdWUoKSB7CiAgICAgICAg
IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICBkaXYudGV4dENv
bnRlbnQgPSAnZm9vJzsKICAgICAgICAgY2hhckRhdGFOb2RlID0gZGl2LmZpcnN0Q2hpbGQ7Ci0g
ICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0
YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rp
b24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0YXRpb25z
OwogICAgICAgICB9KTsKICAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShjaGFyRGF0YU5vZGUsIHtj
aGFyYWN0ZXJEYXRhOiB0cnVlLCBjaGFyYWN0ZXJEYXRhT2xkVmFsdWU6IHRydWV9KTsKQEAgLTIz
OSwxMCArMjM5LDEwIEBAIGZ1bmN0aW9uIHRlc3RPbGRWYWx1ZUFzUmVxdWVzdGVkKCkgewogICAg
ICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgZGl2LnRl
eHRDb250ZW50ID0gJ2Zvbyc7CiAgICAgICAgIGNoYXJEYXRhTm9kZSA9IGRpdi5maXJzdENoaWxk
OwotICAgICAgICBvYnNlcnZlcldpdGhPbGRWYWx1ZSA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBvYnNlcnZlcldpdGhPbGRWYWx1ZSA9
IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICAgICAg
d2luZG93Lm11dGF0aW9uc1dpdGhPbGRWYWx1ZSA9IG11dGF0aW9uczsKICAgICAgICAgfSk7Ci0g
ICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0
YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rp
b24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0YXRpb25z
OwogICAgICAgICB9KTsKICAgICAgICAgb2JzZXJ2ZXJXaXRoT2xkVmFsdWUub2JzZXJ2ZShjaGFy
RGF0YU5vZGUsIHtjaGFyYWN0ZXJEYXRhOiB0cnVlLCBjaGFyYWN0ZXJEYXRhT2xkVmFsdWU6IHRy
dWV9KTsKQEAgLTI3Nyw3ICsyNzcsNyBAQCBmdW5jdGlvbiB0ZXN0T2xkVmFsdWVVbmlvbk11bHRp
cGxlT2JzZXJ2YXRpb25zKCkgewogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdkaXYnKTsKICAgICAgICAgZGl2LnRleHRDb250ZW50ID0gJ2Zvbyc7CiAgICAgICAgIGNoYXJE
YXRhTm9kZSA9IGRpdi5maXJzdENoaWxkOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBvYnNlcnZlciA9
IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICAgICAg
d2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAgICAgICAgIG9ic2Vy
dmVyLm9ic2VydmUoZGl2LCB7Y2hhcmFjdGVyRGF0YTogdHJ1ZSwgY2hhcmFjdGVyRGF0YU9sZFZh
bHVlOiB0cnVlLCBzdWJ0cmVlOiB0cnVlfSk7CkBAIC0zMTYsOSArMzE2LDkgQEAgZnVuY3Rpb24g
cnVuTmV4dFRlc3QoKSB7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCi1kZXNjcmlwdGlv
bignVGVzdCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUgb24gQ2hhcmFjdGVyRGF0YSBu
b2RlcycpOworZGVzY3JpcHRpb24oJ1Rlc3QgTXV0YXRpb25PYnNlcnZlci5vYnNlcnZlIG9uIENo
YXJhY3RlckRhdGEgbm9kZXMnKTsKIAotaWYgKCF3aW5kb3cuV2ViS2l0TXV0YXRpb25PYnNlcnZl
cikKK2lmICghd2luZG93Lk11dGF0aW9uT2JzZXJ2ZXIpCiAgICAgdGVzdEZhaWxlZCgnVGhpcyB0
ZXN0IHJlcXVpcmVzIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpJyk7CiBlbHNlCiAgICAgcnVu
TmV4dFRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2
ZS1jaGlsZExpc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNl
cnZlLWNoaWxkTGlzdC1leHBlY3RlZC50eHQKaW5kZXggZDdiYjI3NjQyZjFkNDZiZWZiYzJkMDBm
YjFhZTU5ZDhlMDc3ZDIwYS4uYzNjMWY2Y2RlNWIyMTBmYzZhMzU0MjA4ZjEwZTYzMzQ1MjU5ZDhi
OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWNoaWxkTGlz
dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWNo
aWxkTGlzdC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1UZXN0IFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXIub2JzZXJ2ZSBvbiBhdHRyaWJ1dGVzLgorVGVzdCBNdXRhdGlvbk9ic2VydmVyLm9i
c2VydmUgb24gYXR0cmlidXRlcy4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtY2hpbGRMaXN0Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtY2hpbGRMaXN0Lmh0bWwKaW5kZXgg
YTNhODRkNDQzODg2NGFlNzJiMjljNjg5OGM0NDBlMDk4ZDI4ZDkxMi4uZGM2MThjNmFmN2IwNTI5
YWZmYTU4ZjFhZmQwYmQ1NmMwYTQzMWY1MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9t
dXRhdGlvbi9vYnNlcnZlLWNoaWxkTGlzdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0
YXRpb24vb2JzZXJ2ZS1jaGlsZExpc3QuaHRtbApAQCAtMjQsNyArMjQsNyBAQCBmdW5jdGlvbiB0
ZXN0QmFzaWMoKSB7CiAKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKICAgICAgICAgZGl2ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdl
YktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5l
dyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9
IG07CiAgICAgICAgIH0pOwogCkBAIC04NCw3ICs4NCw3IEBAIGZ1bmN0aW9uIHRlc3RXcm9uZ1R5
cGUoKSB7CiAKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKICAgICAgICAgZGl2ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11
dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRh
dGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAg
ICAgICAgIH0pOwogCkBAIC0xMTMsNyArMTEzLDcgQEAgZnVuY3Rpb24gdGVzdE11bHRpcGxlUmVn
aXN0cmF0aW9uKCkgewogICAgICAgICBjYWxscyA9IDA7CiAgICAgICAgIG11dGF0aW9ucyA9IG51
bGw7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgICAg
ICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAg
ICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAg
ICAgICAgICBtdXRhdGlvbnMgPSBtOwogICAgICAgICAgICAgY2FsbHMrKzsKICAgICAgICAgfSk7
CkBAIC0xNTQsMTAgKzE1NCwxMCBAQCBmdW5jdGlvbiB0ZXN0TXVsdGlwbGVPYnNlcnZlcnMoKSB7
CiAgICAgICAgIGRlYnVnKCdUZXN0aW5nIHRoYXQgbXVsdGlwbGUgb2JzZXJ2ZXJzIGNhbiBiZSBy
ZWdpc3RlcmVkIHRvIGEgZ2l2ZW4gbm9kZSBhbmQgYm90aCByZWNlaXZlIG11dGF0aW9ucy4nKTsK
ICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKICAgICAgICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2Vy
dmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0p
OwotICAgICAgICBvYnNlcnZlcjIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlv
bihtKSB7CisgICAgICAgIG9ic2VydmVyMiA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9u
KG0pIHsKICAgICAgICAgICAgIG11dGF0aW9uczIgPSBtOwogICAgICAgICB9KTsKICAgICAgICAg
b2JzZXJ2ZXIub2JzZXJ2ZShkaXYsIHsgY2hpbGRMaXN0OiB0cnVlIH0pOwpAQCAtMTkyLDcgKzE5
Miw3IEBAIGZ1bmN0aW9uIHRlc3RJbm5lckhUTUxBbmRJbm5lclRleHQoKSB7CiAgICAgICAgIGRp
di5pbm5lckhUTUwgPSAnPHNwYW4+Rm9vPC9zcGFuPjxkaXY+QmFyPC9kaXY+JzsKICAgICAgICAg
cmVtb3ZlZERpdjEgPSBkaXYuZmlyc3RDaGlsZDsKICAgICAgICAgcmVtb3ZlZERpdjIgPSByZW1v
dmVkRGl2MS5uZXh0U2libGluZzsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRp
b25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9u
T2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAg
ICAgfSk7CiAKQEAgLTI1MCw3ICsyNTAsNyBAQCBmdW5jdGlvbiB0ZXN0UmVwbGFjZUNoaWxkKCkg
ewogICAgICAgICBkaXYuaW5uZXJIVE1MID0gJzxzcGFuPkZvbzwvc3Bhbj48ZGl2PkJhcjwvZGl2
Pic7CiAgICAgICAgIHJlbW92ZWREaXYxID0gZGl2LmZpcnN0Q2hpbGQ7CiAKLSAgICAgICAgb2Jz
ZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAg
IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAg
ICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTMxNSw3ICszMTUsNyBAQCBmdW5j
dGlvbiB0ZXN0SW5zZXJ0QmVmb3JlKCkgewogICAgICAgICBhZGRlZERpdjEgPSBmcmFnbWVudC5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7CiAgICAgICAgIGFkZGVk
RGl2MiA9IGZyYWdtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
KTsKIAotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0
aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlv
bihtKSB7CiAgICAgICAgICAgICBtdXRhdGlvbnMgPSBtOwogICAgICAgICB9KTsKIApAQCAtMzU2
LDcgKzM1Niw3IEBAIGZ1bmN0aW9uIHRlc3RBcHBlbmRDaGlsZCgpIHsKICAgICAgICAgYWRkZWRE
aXYxID0gZnJhZ21lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jykp
OwogICAgICAgICBhZGRlZERpdjIgPSBmcmFnbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKSk7CiAKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRp
b25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9u
T2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAg
ICAgfSk7CiAKQEAgLTM4Nyw3ICszODcsNyBAQCBmdW5jdGlvbiB0ZXN0SW5uZXJIVE1MRW1wdHko
KSB7CiAKICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwog
ICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBvYnNlcnZlciA9
IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICAgICAg
d2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAgICAgICAgIG9ic2Vy
dmVyLm9ic2VydmUoZGl2LCB7Y2hpbGRMaXN0OiB0cnVlfSk7CkBAIC00MTQsOSArNDE0LDkgQEAg
ZnVuY3Rpb24gcnVuTmV4dFRlc3QoKSB7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCi1k
ZXNjcmlwdGlvbignVGVzdCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUgb24gYXR0cmli
dXRlcy4nKTsKK2Rlc2NyaXB0aW9uKCdUZXN0IE11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSBvbiBh
dHRyaWJ1dGVzLicpOwogCi1pZiAoIXdpbmRvdy5XZWJLaXRNdXRhdGlvbk9ic2VydmVyKQoraWYg
KCF3aW5kb3cuTXV0YXRpb25PYnNlcnZlcikKICAgICB0ZXN0RmFpbGVkKCdUaGlzIHRlc3QgcmVx
dWlyZXMgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUyknKTsKIGVsc2UKICAgICBydW5OZXh0VGVz
dCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWV4Y2Vw
dGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWV4
Y2VwdGlvbnMtZXhwZWN0ZWQudHh0CmluZGV4IDlmNmUzN2E5MTA2ZjA2MzgwMGFkZDMzZDdiZTBl
MzEyZTBkMThiMjUuLjhjOWI0ZGU4MDhlYTFlZDliOTA0MzQ5NmJjNDU5NTk0MmY0MzQ4YjEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1leGNlcHRpb25zLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtZXhjZXB0
aW9ucy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1UZXN0IHRoYXQgV2ViS2l0TXV0YXRp
b25PYnNlcnZlci5vYnNlcnZlIHRocm93cyBleGNlcHRpb25zIGFwcHJvcHJpYXRlbHkKK1Rlc3Qg
dGhhdCBNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUgdGhyb3dzIGV4Y2VwdGlvbnMgYXBwcm9wcmlh
dGVseQogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1leGNlcHRpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L211dGF0aW9uL29ic2VydmUtZXhjZXB0aW9ucy5odG1sCmluZGV4IGQ0NjU3YjZkZDdjMmUz
MzEyODNlMjg5MjVjZGY5MGM1ZGY0NjIwNTkuLjc2NjE1NDdiMjc5ZmZmY2JjODMyN2Q1NmJhMTk2
ZmViM2ExYjViZWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2
ZS1leGNlcHRpb25zLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZl
LWV4Y2VwdGlvbnMuaHRtbApAQCAtMTEsNyArMTEsNyBAQAogPHNjcmlwdD4KIAogZnVuY3Rpb24g
cnVuVGVzdCgpIHsKLSAgICB3aW5kb3cub2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNl
cnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsgfSk7CisgICAgd2luZG93Lm9ic2VydmVyID0gbmV3
IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7IH0pOwogICAgIHNob3VsZFRo
cm93KCdvYnNlcnZlci5vYnNlcnZlKCknKTsKICAgICBzaG91bGRUaHJvdygnb2JzZXJ2ZXIub2Jz
ZXJ2ZShudWxsKScpOwogICAgIHNob3VsZFRocm93KCdvYnNlcnZlci5vYnNlcnZlKHVuZGVmaW5l
ZCknKTsKQEAgLTI2LDkgKzI2LDkgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICBzaG91bGRU
aHJvdygnb2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5ib2R5LCB7Y2hhcmFjdGVyRGF0YTogdHJ1
ZSwgYXR0cmlidXRlRmlsdGVyOiBbImlkIl19KScpOwogfQogCi1kZXNjcmlwdGlvbignVGVzdCB0
aGF0IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSB0aHJvd3MgZXhjZXB0aW9ucyBhcHBy
b3ByaWF0ZWx5Jyk7CitkZXNjcmlwdGlvbignVGVzdCB0aGF0IE11dGF0aW9uT2JzZXJ2ZXIub2Jz
ZXJ2ZSB0aHJvd3MgZXhjZXB0aW9ucyBhcHByb3ByaWF0ZWx5Jyk7CiAKLWlmICghd2luZG93Lldl
YktpdE11dGF0aW9uT2JzZXJ2ZXIpCitpZiAoIXdpbmRvdy5NdXRhdGlvbk9ic2VydmVyKQogICAg
IHRlc3RGYWlsZWQoJ1RoaXMgdGVzdCByZXF1aXJlcyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJT
KScpOwogZWxzZQogICAgIHJ1blRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
bXV0YXRpb24vb2JzZXJ2ZS1zdWJ0cmVlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
bXV0YXRpb24vb2JzZXJ2ZS1zdWJ0cmVlLWV4cGVjdGVkLnR4dAppbmRleCBiODk0ZGNkYTFiM2Y2
ZDJkMzQ5YmQ3YzRhOWE0Y2QwNjlhNGU2OWVkLi42NTNjN2E0ODIyMWM5M2UxOWQ3NjI4YWE2Y2Y4
Njg5NGYyOTEyMjAwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2Vy
dmUtc3VidHJlZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9v
YnNlcnZlLXN1YnRyZWUtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotVGVzdCBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyLm9ic2VydmUgb24gYSBzdWJ0cmVlCitUZXN0IE11dGF0aW9uT2JzZXJ2
ZXIub2JzZXJ2ZSBvbiBhIHN1YnRyZWUKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtc3VidHJlZS5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLXN1YnRyZWUuaHRtbAppbmRleCAz
N2U0MDI4NWUyYjhiNzFkMjIyNmZkMzYxODFkYTRiODUzYTIwNTcyLi45NTUxOTQ3YTRjMzI4ZjVh
ODM0ODRjNjRmZTk0NTNjYTAyZDY1NmEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211
dGF0aW9uL29ic2VydmUtc3VidHJlZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRp
b24vb2JzZXJ2ZS1zdWJ0cmVlLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAgZnVuY3Rpb24gdGVzdEJh
c2ljKCkgewogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAg
ICAgICAgc3ViRGl2ID0gZGl2LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpKTsKICAgICAgICAgc3ViRGl2LmlubmVySFRNTCA9ICdoZWxsbywgd29ybGQnOwotICAgICAg
ICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9u
cykgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11
dGF0aW9ucykgewogICAgICAgICAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAg
ICAgICAgfSk7CiAKQEAgLTY2LDEwICs2NiwxMCBAQCBmdW5jdGlvbiB0ZXN0TXVsdGlwbGVPYnNl
cnZlcnMoKSB7CiAgICAgICAgIG11dGF0aW9uczIgPSBudWxsOwogICAgICAgICBkaXYgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgc3ViRGl2ID0gZGl2LmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsKLSAgICAgICAgb2JzZXJ2ZXIgPSBu
ZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICAgICAg
b2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAg
ICAgICAgICAgIHdpbmRvdy5tdXRhdGlvbnMgPSBtdXRhdGlvbnM7CiAgICAgICAgIH0pOwotICAg
ICAgICBvYnNlcnZlcjIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRh
dGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rp
b24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zMiA9IG11dGF0aW9u
czsKICAgICAgICAgfSk7CiAKQEAgLTEwOSw3ICsxMDksNyBAQCBmdW5jdGlvbiB0ZXN0TXVsdGlw
bGVPYnNlcnZhdGlvbnMoKSB7CiAgICAgICAgIGNhbGxzID0gMDsKICAgICAgICAgZGl2ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgIHN1YkRpdiA9IGRpdi5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7Ci0gICAgICAgIG9ic2VydmVyID0g
bmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAg
IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAg
ICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0YXRpb25zOwogICAgICAgICAgICAgKytj
YWxsczsKICAgICAgICAgfSk7CkBAIC0xNDUsNyArMTQ1LDcgQEAgZnVuY3Rpb24gdGVzdFRyYW5z
aWVudERldGFjaGVkQmFzaWMoKSB7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpOwogICAgICAgICBzdWJEaXYgPSBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnZGl2JykpOwogICAgICAgICBzdWJEaXYuaW5uZXJIVE1MID0gJ2hlbGxvLCB3
b3JsZCc7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVu
Y3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2
ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zID0g
bXV0YXRpb25zOwogICAgICAgICB9KTsKIApAQCAtMjMwLDcgKzIzMCw3IEBAIGZ1bmN0aW9uIHRl
c3RUcmFuc2llbnREZXRhY2hlZERldGFpbGVkKCkgewogICAgICAgICBzdWJEaXYyLmlubmVySFRN
TCA9ICdoZWxsbywgd29ybGQnOwogICAgICAgICBzdWJEaXYzID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZGl2Jyk7CiAKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNl
cnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRp
b25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICAgICAgICAgIHdpbmRvdy5tdXRh
dGlvbnMgPSBtdXRhdGlvbnM7CiAgICAgICAgIH0pOwogCkBAIC0yOTYsOSArMjk2LDkgQEAgZnVu
Y3Rpb24gcnVuTmV4dFRlc3QoKSB7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCi1kZXNj
cmlwdGlvbignVGVzdCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUgb24gYSBzdWJ0cmVl
Jyk7CitkZXNjcmlwdGlvbignVGVzdCBNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUgb24gYSBzdWJ0
cmVlJyk7CiAKLWlmICghd2luZG93LldlYktpdE11dGF0aW9uT2JzZXJ2ZXIpCitpZiAoIXdpbmRv
dy5NdXRhdGlvbk9ic2VydmVyKQogICAgIHRlc3RGYWlsZWQoJ1RoaXMgdGVzdCByZXF1aXJlcyBF
TkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKScpOwogZWxzZQogICAgIHJ1bk5leHRUZXN0KCk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL3NoYWRvdy1kb20uaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vc2hhZG93LWRvbS5odG1sCmluZGV4IDY2Yzc5ZWFjMDBm
OTU5NjBhMDQzMWNlMmIyOTUyMmNhMDc1NmJmYWIuLjczMTdkN2E3NTkwOTBhNjUxMzI1MTFjY2Jm
NGY1MTgwYTA0NTVkZTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vc2hh
ZG93LWRvbS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vc2hhZG93LWRvbS5o
dG1sCkBAIC0xNCw3ICsxNCw3IEBAIGZ1bmN0aW9uIGRvVGVzdCgpIHsKICAgICB9CiAKICAgICB2
YXIgc2hhZG93Um9vdCA9IGludGVybmFscy5zaGFkb3dSb290KGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoJ2lucHV0JykpOwotICAgIHZhciBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgIHZhciBvYnNlcnZlciA9IG5ldyBNdXRhdGlv
bk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICB3aW5kb3cubXV0YXRpb25z
ID0gbXV0YXRpb25zOwogICAgIH0pOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211
dGF0aW9uL3Rha2VSZWNvcmRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRp
b24vdGFrZVJlY29yZHMtZXhwZWN0ZWQudHh0CmluZGV4IGFjNjQ0MjZhYjEzYWUyZTFjOTAzOGRm
YjYzYjc5MTJkM2EwNjVlZjcuLjlmMzMyNjE0ZjQzNmUxYzIxMWY4YTUyZDY3NzA2NzI4YWNhMTU0
ZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vdGFrZVJlY29yZHMtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vdGFrZVJlY29yZHMtZXhw
ZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotVGVzdGluZyBXZWJLaXRNdXRhdGlvbk9ic2VydmVy
LnRha2VSZWNvcmRzCitUZXN0aW5nIE11dGF0aW9uT2JzZXJ2ZXIudGFrZVJlY29yZHMKIAogT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211
dGF0aW9uL3Rha2VSZWNvcmRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL3Rha2VS
ZWNvcmRzLmh0bWwKaW5kZXggMDM5YTMyZmJkOTExODBiYThkNjZjMTdkYjg1NzJjM2U0NTQ0Y2Jj
Mi4uNjM0MTgwYTU5Y2U1NGRkM2M2NzUyZTllYWNiZjM3ZDA5Y2UyMjAwYiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi90YWtlUmVjb3Jkcy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvbXV0YXRpb24vdGFrZVJlY29yZHMuaHRtbApAQCAtMjMsNyArMjMsNyBAQCBmdW5j
dGlvbiB0ZXN0QmFzaWMoKSB7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2RpdicpOwogICAgICAgICBzdWJEaXYgPSBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2JykpOwogICAgICAgICBzdWJEaXYuaW5uZXJIVE1MID0gJ2hlbGxvLCB3b3Js
ZCc7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rp
b24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIo
ZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0
YXRpb25zOwogICAgICAgICB9KTsKIApAQCAtNzMsOSArNzMsOSBAQCBmdW5jdGlvbiBydW5OZXh0
VGVzdCgpIHsKICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKLWRlc2NyaXB0aW9uKCdUZXN0
aW5nIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIudGFrZVJlY29yZHMnKTsKK2Rlc2NyaXB0aW9uKCdU
ZXN0aW5nIE11dGF0aW9uT2JzZXJ2ZXIudGFrZVJlY29yZHMnKTsKIAotaWYgKCF3aW5kb3cuV2Vi
S2l0TXV0YXRpb25PYnNlcnZlcikKK2lmICghd2luZG93Lk11dGF0aW9uT2JzZXJ2ZXIpCiAgICAg
dGVzdEZhaWxlZCgnVGhpcyB0ZXN0IHJlcXVpcmVzIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMp
Jyk7CiBlbHNlCiAgICAgcnVuTmV4dFRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvbXV0YXRpb24vdHJhbnNpZW50LWdjLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211
dGF0aW9uL3RyYW5zaWVudC1nYy1jcmFzaC5odG1sCmluZGV4IDZjMTM2NDJkNzY4YTExODI5YmJm
OGFiNTlhMWVmYzEyMDllYWY1MTMuLjZjZTZlYjhjM2FmZWNhNDZhYzI1MjI1ZGIyZDE1YmYwNjkw
MTQ1YjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vdHJhbnNpZW50LWdj
LWNyYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi90cmFuc2llbnQtZ2Mt
Y3Jhc2guaHRtbApAQCAtNiw3ICs2LDcgQEAgZGVzY3JpcHRpb24oJ0NsZWFyaW5nIHRyYW5zaWVu
dCBvYnNlcnZlcnMgYWZ0ZXIgb2JzZXJ2YXRpb24gbm9kZSBpcyBHQ2VkIHNob3VsZAogZnVuY3Rp
b24gY2FsbGJhY2sobXV0YXRpb25zKSB7CiAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9u
czsKIH0KLXZhciBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGNhbGxiYWNr
KTsKK3ZhciBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGNhbGxiYWNrKTsKIAogdmFy
IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogdmFyIHNwYW4gPSBkaXYuYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1NraXBwZWQKaW5kZXggMjAyNDYzYWVlM2ExZDJjZTkxZThjNzI0YjVhNjdiYmU5NmFjYTRkNC4u
NmM5OTFlMTNhNDdkNWZkN2QxMTcxZDQ1MmEyMDJlZDZjYWJiOTNiMSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1NraXBwZWQKQEAgLTMzNiw3ICszMzYsNiBAQCBodHRwL3Rlc3RzL3NlY3VyaXR5L2ZpbGVz
eXN0ZW0taWZyYW1lLWZyb20tcmVtb3RlLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRD
b250ZW50L2ZpbGVzeXN0ZW0tdXJsLWluLWlmcmFtZS5odG1sCiBodHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oeWJpL3NlbmQtZmlsZS1ibG9iLmh0bWwKIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rl
c3RzL2h5Ymkvc2VuZC1maWxlLWJsb2ItZmFpbC5odG1sCi1mYXN0L211dGF0aW9uL2ZpbGVzeXN0
ZW0tY2FsbGJhY2stZGVsaXZlcnkuaHRtbAogCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00NjIyMwogIyBUaGUgV2ViS2l0IHBsdWdpbiBpbXBsZW1lbnRhdGlvbiBk
b2VzIG5vdCBzdXBwb3J0IGlmcmFtZSBzaGltcy4KQEAgLTU4Nyw5ICs1ODYsOSBAQCBtZWRpYS9X
M0MvdmlkZW8vY2FuUGxheVR5cGUvY2FuUGxheVR5cGVfdHdvX2ltcGxpZXNfb25lXzQuaHRtbAog
bWVkaWEvVzNDL3ZpZGVvL2NhblBsYXlUeXBlL2NhblBsYXlUeXBlX3R3b19pbXBsaWVzX29uZV81
Lmh0bWwKIG1lZGlhL1czQy92aWRlby9jYW5QbGF5VHlwZS9jYW5QbGF5VHlwZV90d29faW1wbGll
c19vbmVfNi5odG1sCiAKLSMgRmFpbHMgYmVjYXVzZSBNdXRhdGlvbk9ic2VydmVycyBhcmUgbm90
IG5vdGlmaWVkIGF0IGVuZC1vZi10YXNrCisjIE11dGF0aW9uT2JzZXJ2ZXJzIGFyZSBub3QgZW5h
YmxlZCBkdWUgdG8KICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4
MjkwCi1mYXN0L211dGF0aW9uL2VuZC1vZi10YXNrLWRlbGl2ZXJ5Lmh0bWwKK2Zhc3QvbXV0YXRp
b24KIAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIwMTAKICMg
TmVlZHMgUGFnZUNsaWVudHM6OnZpYnJhdGlvbkNsaWVudCgpIGltcGxlbWVudGF0aW9uLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCBlODkyMjIxMDJkYjM0ZjU1YWJhZWVlNTk5NTg2OGY4
YzlhNWRmNDk0Li4xYmM0NmY0YTIzOGQxMDYyYzFlOTE0YWJhYWY3NzVkZTNiNWI0ZDhmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtMTMxMiw3ICsxMzEyLDYgQEAgaHR0cC90ZXN0cy9p
bnNwZWN0b3IvZmlsZXN5c3RlbQogaHR0cC90ZXN0cy9zZWN1cml0eS9maWxlc3lzdGVtLWlmcmFt
ZS1mcm9tLXJlbW90ZS5odG1sCiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3NlbmQt
ZmlsZS1ibG9iLmh0bWwKIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1maWxl
LWJsb2ItZmFpbC5odG1sCi1mYXN0L211dGF0aW9uL2ZpbGVzeXN0ZW0tY2FsbGJhY2stZGVsaXZl
cnkuaHRtbAogCiAjIExheW91dFRlc3RDb250cm9sbGVyOjpub2Rlc0Zyb21SZWN0IGlzIG5vdCBz
dXBwb3J0ZWQuCiBmYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWJhc2ljLmh0bWwKQEAgLTE1ODQsOSAr
MTU4Myw5IEBAIHBvaW50ZXItbG9jay8KICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTcyNDM1CiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWFycmF5
cy5odG1sCiAKLSMgRmFpbHMgYmVjYXVzZSBNdXRhdGlvbk9ic2VydmVycyBhcmUgbm90IG5vdGlm
aWVkIGF0IGVuZC1vZi10YXNrCisjIE11dGF0aW9uT2JzZXJ2ZXJzIGFyZSBub3QgZW5hYmxlZCBk
dWUgdG8KICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MjkwCi1m
YXN0L211dGF0aW9uL2VuZC1vZi10YXNrLWRlbGl2ZXJ5Lmh0bWwKK2Zhc3QvbXV0YXRpb24KIAog
IyBSZWJhc2VsaW5lIGFmdGVyIGJ1ZyA3MTcwNS4gQWxsIGRpZmZlcmVuY2VzIGFyZSBkdWUgdG8g
dGhlIGZhY3QgdGhhdCB0YWJsZSBjYXB0aW9ucyBub3cKICMgZXhwYW5kIHRvIHRoZSBmdWxsIHdp
ZHRoIG9mIHRoZSB0YWJsZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNh
aXJvL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9Ta2lwcGVkCmluZGV4
IGYwNTc4MzEzOWNlY2M1NDY1M2Q3MmYyYjNlMzMwMmJmMzM4MzRjYmYuLmM2MGVjNjc4MTJlYTFk
YWEwZDhlNzIzNDMyYmQwNWIzMGY5NmQ1OTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dpbmNhaXJvL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8v
U2tpcHBlZApAQCAtMTgxMCw3ICsxODEwLDYgQEAgaHR0cC90ZXN0cy9pbnNwZWN0b3IvZmlsZXN5
c3RlbQogaHR0cC90ZXN0cy9zZWN1cml0eS9maWxlc3lzdGVtLWlmcmFtZS1mcm9tLXJlbW90ZS5o
dG1sCiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3NlbmQtZmlsZS1ibG9iLmh0bWwK
IGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1maWxlLWJsb2ItZmFpbC5odG1s
Ci1mYXN0L211dGF0aW9uL2ZpbGVzeXN0ZW0tY2FsbGJhY2stZGVsaXZlcnkuaHRtbAogZmFzdC9m
b3Jtcy9maWxlL2lucHV0LWZpbGUtZW50cmllcy5odG1sCiAKICMgTGF5b3V0VGVzdENvbnRyb2xs
ZXI6Om5vZGVzRnJvbVJlY3QgaXMgbm90IHN1cHBvcnRlZC4KQEAgLTIwODUsOSArMjA4NCw5IEBA
IHBvaW50ZXItbG9jay8KICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTcyNDM1CiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWFycmF5cy5odG1sCiAK
LSMgRmFpbHMgYmVjYXVzZSBNdXRhdGlvbk9ic2VydmVycyBhcmUgbm90IG5vdGlmaWVkIGF0IGVu
ZC1vZi10YXNrCisjIE11dGF0aW9uT2JzZXJ2ZXJzIGFyZSBub3QgZW5hYmxlZCBkdWUgdG8KICMg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MjkwCi1mYXN0L211dGF0
aW9uL2VuZC1vZi10YXNrLWRlbGl2ZXJ5Lmh0bWwKK2Zhc3QvbXV0YXRpb24KIAogI1ZpYnJhdGlv
biBBUEkgaXMgbm90IGltcGxlbWVudGVkLgogZmFzdC9kb20vbmF2aWdhdG9yLXZpYnJhdGlvbi5o
dG1sCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nIGIvV2ViS2l0TGlicmFy
aWVzL0NoYW5nZUxvZwppbmRleCBkOTE4NzJkMzc2ODZhMmY3YmY3YmM0YzRkOGY2YzlkNzJlOTlm
NTg5Li5jZDIxMjUxYmE2Y2RiYmQ4Yzk4YmNlMWE1MmI3M2U0MDU3NjgwN2QxIDEwMDY0NAotLS0g
YS9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdExpYnJhcmllcy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wNi0yNiAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZW1vdmUgdmVuZG9yIHByZWZpeCBmcm9tIERPTSBNdXRhdGlv
bk9ic2VydmVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODkyMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHdpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzLnZzcHJvcHM6CisgICAgICAgICog
d2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXNDYWlyby52c3Byb3BzOgorCiAyMDEyLTA2
LTE5ICBNaWtlIFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW50cm9kdWNl
IEVOQUJMRV9DU1BfTkVYVCBjb25maWd1cmF0aW9uIGZsYWcuCmRpZmYgLS1naXQgYS9XZWJLaXRM
aWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXMudnNwcm9wcyBiL1dlYktp
dExpYnJhcmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lcy52c3Byb3BzCmluZGV4
IGI5MDE0MTA1ZmFiODkyYTc0YTQ3ZGVkOWE1ZTYxNjkzODcyYzFkMTYuLmFiMzE2NTE5YmJmMjUz
OTQ5Mjc4N2FkMDBjNDc0ZTUxMTNmNTQ1OTEgMTAwNjQ0Ci0tLSBhL1dlYktpdExpYnJhcmllcy93
aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lcy52c3Byb3BzCisrKyBiL1dlYktpdExpYnJh
cmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lcy52c3Byb3BzCkBAIC0yNDgsNyAr
MjQ4LDcgQEAKIAkvPgogICA8VXNlck1hY3JvCiAJCU5hbWU9IkVOQUJMRV9NVVRBVElPTl9PQlNF
UlZFUlMiCi0JCVZhbHVlPSJFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTIgorCQlWYWx1ZT0iIgog
CQlQZXJmb3JtRW52aXJvbm1lbnRTZXQ9InRydWUiCiAJLz4KICAgPFVzZXJNYWNybwpkaWZmIC0t
Z2l0IGEvV2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzQ2Fp
cm8udnNwcm9wcyBiL1dlYktpdExpYnJhcmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVm
aW5lc0NhaXJvLnZzcHJvcHMKaW5kZXggODIyYWUzYzg2MTk5OTk0MjkxOTIwNjM3MjBiZjIzNjEz
NWZiN2ZhMy4uZjEyNWVhZjYyZDU2MmNjMDE3NzI1YjdiZjEzNTU4ZDM3MmEyYjdhMiAxMDA2NDQK
LS0tIGEvV2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzQ2Fp
cm8udnNwcm9wcworKysgYi9XZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVy
ZURlZmluZXNDYWlyby52c3Byb3BzCkBAIC0yMzMsNyArMjMzLDcgQEAKIAkvPgogICA8VXNlck1h
Y3JvCiAJCU5hbWU9IkVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMiCi0JCVZhbHVlPSJFTkFCTEVf
TVVUQVRJT05fT0JTRVJWRVJTIgorCQlWYWx1ZT0iIgogCQlQZXJmb3JtRW52aXJvbm1lbnRTZXQ9
InRydWUiCiAJLz4KICAgPFVzZXJNYWNybwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149587</attachid>
            <date>2012-06-26 12:51:44 -0700</date>
            <delta_ts>2012-06-28 17:51:38 -0700</delta_ts>
            <desc>Fix build</desc>
            <filename>bug-89231-20120626125144.patch</filename>
            <type>text/plain</type>
            <size>181745</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxMjczCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
MmFhNDI3Y2Q4ZmUzOGI5NWNiODdmMGQ0YWI3YTdlOGMxODBlNTYzLi5mODkzMGEzZWYxMzAwNDli
OTdkYzhmMDQ3NTZhNTdkZjg1ZTExODVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxMi0wNi0yNiAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZW1vdmUgdmVuZG9yIHByZWZpeCBmcm9tIERPTSBNdXRhdGlvbk9ic2VydmVy
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkyMzEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZp
Z3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDEyLTA2LTI2ICBGaWxpcCBQ
aXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgTmV3IGZhc3QvanMvZGZnLXN0b3Jl
LXVuZXhwZWN0ZWQtdmFsdWUtaW50by1hcmd1bWVudC1hbmQtb3NyLWV4aXQuaHRtbCBmYWlscyBv
biAzMiBiaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4OGQ1NDA0ZWEyYWE3ZDM1MjQwODQwNjMzNzY4MzY4MWJj
YmI3MmMzLi45ZTNkNDViNjU5MGRkYTQ0OGNmMWYyN2M1ZTEyNmRhM2U1YWQ3MGYzIDEwMDc1NQot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTEzIEBACisyMDEyLTA2LTE1ICBBZGFtIEtsZWluICA8YWRhbWtAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJlbW92ZSB2ZW5kb3IgcHJlZml4IGZyb20gRE9NIE11dGF0
aW9uT2JzZXJ2ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04OTIzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE11dGF0aW9uT2JzZXJ2ZXJzIGhhdmUgYmVlbiBzcGVjaWZpZWQgYXMgcGFydCBvZiBET000
IGZvciBzb21lIHRpbWUgbm93LAorICAgICAgICBhbmQgTW96aWxsYSBpcyBzaGlwcGluZyBhIGNv
bXBhdGlibGUgaW1wbGVtZW50YXRpb24gd2l0aG91dCBhIHZlbmRvcgorICAgICAgICBwcmVmaXgu
IFRoaXMgY2hhbmdlIGV4cG9zZXMgdGhlIE11dGF0aW9uT2JzZXJ2ZXIgY29uc3RydWN0b3Igb24g
dGhlCisgICAgICAgIFdpbmRvdyBvYmplY3QuIEFsbCByZWZlcmVuY2VzIHRvIHRoZSBvbGQgcHJl
Zml4ZWQgbmFtZSBoYXZlIGJlZW4KKyAgICAgICAgcmVtb3ZlZCwgc2F2ZSBmb3IgYSBiYWNrd2Fy
ZHMtY29tcGF0aWJpbGl0eSByZWZlcmVuY2UgaW4gRE9NV2luZG93LmlkbC4KKworICAgICAgICBT
aW5jZSBub3QgYWxsIHBvcnRzIGZ1bGx5IGltcGxlbWVudCB0aGUgc3BlYywgdGhpcyBjaGFuZ2Ug
YWxzbyBuYXJyb3dzCisgICAgICAgIHRoZSBwb3J0cyBmb3Igd2hpY2ggRU5BQkxFX01VVEFUSU9O
X09CU0VSVkVSUyBpcyBvbiBieSBkZWZhdWx0IHRvCisgICAgICAgIENocm9taXVtLCBFZmwsIGFu
ZCBHdGsgKHRob3NlIHN1cHBvcnQgZW5kLW9mLXRhc2sgZGVsaXZlcnkgaW4KKyAgICAgICAgRFJU
LCBzZWUgaHR0cDovL3dlYmtpdC5vcmcvYi83ODI5MCkuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LCBubyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorICAg
ICAgICAqIERlcml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtl
OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToK
KyAgICAgICAgKiBVc2VKU0MuY21ha2U6CisgICAgICAgICogVXNlVjguY21ha2U6CisgICAgICAg
ICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU01haW5U
aHJlYWRFeGVjU3RhdGU6OmRpZExlYXZlU2NyaXB0Q29udGV4dCk6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpT
TXV0YXRpb25DYWxsYmFjazo6aGFuZGxlRXZlbnQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwLgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpKU011dGF0aW9uT2JzZXJ2ZXJDb25zdHJ1Y3Rv
cjo6Y29uc3RydWN0SlNNdXRhdGlvbk9ic2VydmVyKToKKyAgICAgICAgKEJvb2xlYW5PcHRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6SlNNdXRhdGlvbk9ic2VydmVyOjpvYnNlcnZlKToKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9WOFJlY3Vyc2lvblNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlY4UmVjdXJzaW9uU2NvcGU6OmRpZExlYXZlU2NyaXB0Q29udGV4dCk6CisgICAgICAgICogYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpWOE11dGF0aW9uQ2FsbGJhY2s6OmhhbmRsZUV2ZW50KToKKyAgICAgICAgKiBiaW5k
aW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcDogUmVuYW1lZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdE11dGF0aW9uT2JzZXJ2
ZXJDdXN0b20uY3BwLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpWOE11
dGF0aW9uT2JzZXJ2ZXI6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6
VjhNdXRhdGlvbk9ic2VydmVyOjpvYnNlcnZlQ2FsbGJhY2spOgorICAgICAgICAqIGRvbS9DaGFy
YWN0ZXJEYXRhLmNwcDoKKyAgICAgICAgKiBkb20vQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6Q2hpbGRMaXN0TXV0YXRpb25TY29wZTo6Q2hpbGRMaXN0TXV0YXRp
b25TY29wZSk6CisgICAgICAgICogZG9tL0RPTUFsbEluT25lLmNwcDoKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpoYXNNdXRhdGlvbk9ic2Vy
dmVyc09mVHlwZSk6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAqIGRvbS9N
dXRhdGlvbkNhbGxiYWNrLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE11dGF0aW9u
Q2FsbGJhY2spOgorICAgICAgICAqIGRvbS9NdXRhdGlvbkNhbGxiYWNrLmlkbDoKKyAgICAgICAg
KiBkb20vTXV0YXRpb25PYnNlcnZlci5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9k
b20vV2ViS2l0TXV0YXRpb25PYnNlcnZlci5jcHAuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6Ok9ic2VydmVyTGVzc1RoYW46Om9wZXJhdG9y
KCkpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uT2JzZXJ2ZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6fk11dGF0aW9uT2JzZXJ2ZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6dmFsaWRhdGVPcHRpb25zKToKKyAgICAgICAg
KFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6Om9ic2VydmUpOgorICAgICAgICAoV2ViQ29yZTo6
TXV0YXRpb25PYnNlcnZlcjo6dGFrZVJlY29yZHMpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRp
b25PYnNlcnZlcjo6ZGlzY29ubmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2Vy
dmVyOjpvYnNlcnZhdGlvblN0YXJ0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNl
cnZlcjo6b2JzZXJ2YXRpb25FbmRlZCk6CisgICAgICAgIChXZWJDb3JlOjphY3RpdmVNdXRhdGlv
bk9ic2VydmVycyk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyOjplbnF1ZXVl
TXV0YXRpb25SZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6c2V0
SGFzVHJhbnNpZW50UmVnaXN0cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2Jz
ZXJ2ZXI6OmRlbGl2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6ZGVs
aXZlckFsbE11dGF0aW9ucyk6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXIuaDogUmVu
YW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmguCisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE11dGF0aW9uT2JzZXJ2ZXIpOgorICAgICAgICAq
IGRvbS9NdXRhdGlvbk9ic2VydmVyLmlkbDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Rv
bS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmlkbC4KKyAgICAgICAgKiBkb20vTXV0YXRpb25PYnNl
cnZlckludGVyZXN0R3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZl
ckludGVyZXN0R3JvdXA6OmNyZWF0ZUlmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0
aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cCk6
CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6aXNPbGRW
YWx1ZVJlcXVlc3RlZCk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVySW50ZXJl
c3RHcm91cDo6ZW5xdWV1ZU11dGF0aW9uUmVjb3JkKToKKyAgICAgICAgKiBkb20vTXV0YXRpb25P
YnNlcnZlckludGVyZXN0R3JvdXAuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2
ZXJJbnRlcmVzdEdyb3VwOjpjcmVhdGVGb3JDaGlsZExpc3RNdXRhdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlRm9yQ2hhcmFjdGVy
RGF0YU11dGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVz
dEdyb3VwOjpjcmVhdGVGb3JBdHRyaWJ1dGVzTXV0YXRpb24pOgorICAgICAgICAoTXV0YXRpb25P
YnNlcnZlckludGVyZXN0R3JvdXApOgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVyUmVn
aXN0cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJSZWdpc3Ry
YXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyUmVnaXN0
cmF0aW9uOjpNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
Ok11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb246OnNob3VsZFJlY2VpdmVNdXRhdGlvbkZyb20p
OgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmg6CisgICAgICAg
IChNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0
aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb246OmlzU3VidHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpN
dXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjpvYnNlcnZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjpkZWxpdmVyeU9wdGlvbnMpOgorICAgICAg
ICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6bXV0YXRpb25UeXBlcyk6
CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6Y29sbGVj
dE1hdGNoaW5nT2JzZXJ2ZXJzRm9yTXV0YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6
Z2V0UmVnaXN0ZXJlZE11dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok5vZGU6OnJlZ2lzdGVyTXV0YXRpb25PYnNlcnZlcik6CisgICAgICAgICogZG9tL05vZGUuaDoK
KyAgICAgICAgKE5vZGUpOgorICAgICAgICAqIGRvbS9Ob2RlUmFyZURhdGEuaDoKKyAgICAgICAg
KiBwYWdlL0RPTVdpbmRvdy5pZGw6CisKIDIwMTItMDYtMjYgIElhbiBWb2xsaWNrICA8dm9sbGlj
a0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBMYXllciBjaHJvbWl1bSBzaG91
bGQgbmVlZCBhIHJlZHJhdyBhZnRlciBnZXR0aW5nIGl0cyBmaXJzdCBub24tZW1wdHkgYm91bmRz
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAwMjUwMzA0MzA3YzU5ZmI1ODkyMjAzZjYx
MjJjZmIyYzNkZDVkODI1Li5hYmQyMzNkZDhiOTI5YjVjNzhkNmJkNjcyYzJkYjEwNzVkYzZkZjA4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEyLTA2LTE1
ICBBZGFtIEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbW92ZSB2ZW5k
b3IgcHJlZml4IGZyb20gRE9NIE11dGF0aW9uT2JzZXJ2ZXJzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTIzMQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3JjL1dlYktpdC5jcHA6CisKIDIwMTItMDYt
MjYgIElhbiBWb2xsaWNrICA8dm9sbGlja0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9t
aXVtXSBMYXllciBjaHJvbWl1bSBzaG91bGQgbmVlZCBhIHJlZHJhdyBhZnRlciBnZXR0aW5nIGl0
cyBmaXJzdCBub24tZW1wdHkgYm91bmRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDAwMWEwM2M1MThh
NzAzYjUyNWEwYzI4MmQwM2Y5NGUzYWY2YjRmODcuLjA5MGRlZDIzYTViMGZhOTVhYjQ0N2U4OGEy
NWQ4MjVjYzg4ODU5ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0w
Ni0xNSAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZW1vdmUg
dmVuZG9yIHByZWZpeCBmcm9tIERPTSBNdXRhdGlvbk9ic2VydmVycworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkyMzEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydEVmbC5jcHA6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6
OmRlbGl2ZXJBbGxNdXRhdGlvbnNJZk5lY2Vzc2FyeSk6CisKIDIwMTItMDYtMjUgIEd5dXlvdW5n
IEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXSBJbXBsZW1l
bnQgTmV0d29yayBJbmZvcm1hdGlvbiBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBmMjQ3OGQ1YTIz
M2RhNWMwODhlMDg5YmZmYjFkODA5NzViNGU5ODNjLi5kOWU2MTM5NjIxMzJhMDkwZjhhM2E1NTk5
MzA5ZjM5ZDJhNmU4MWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTIt
MDYtMTUgIEFkYW0gS2xlaW4gIDxhZGFta0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVtb3Zl
IHZlbmRvciBwcmVmaXggZnJvbSBET00gTXV0YXRpb25PYnNlcnZlcnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5MjMxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
OjpkZWxpdmVyQWxsTXV0YXRpb25zSWZOZWNlc3NhcnkpOgorCiAyMDEyLTA2LTI1ICBDYXJsb3Mg
R2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2Vk
LiBVcGRhdGUgTkVXUyBhbmQgY29uZmlndXJlLmFjIGZvciAxLjkuNCByZWxlYXNlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKaW5kZXggNjA2YmNlYjgzMzJlYjIyNzQxMjk4OGU1Yjk0MjE0NjIwOGI4OGFhNi4uZDky
NGJhMWU1MjkzNTJhZTA5YWM5ZDFjYTlhY2JlNDI5Yzg3MDVmMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEyIEBACisyMDEyLTA2LTI2ICBBZGFtIEtsZWluICA8YWRhbWtAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJlbW92ZSB2ZW5kb3IgcHJlZml4IGZyb20gRE9NIE11dGF0aW9uT2Jz
ZXJ2ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
OTIzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisKIDIwMTItMDYtMjMgIFNo
ZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMjEwNTguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMDY3Yjk4ODM1YzM5OGU2
MWIxY2YxNzIzOTUzNjY1OTU5M2ZmNjczMi4uMzcwMjdhZWE3YWM2MjI5OWU4NWI5YjZmY2I4Mzgy
YzI3OGE4ZTUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEyLTA2LTI2ICBBZGFt
IEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbW92ZSB2ZW5kb3IgcHJl
Zml4IGZyb20gRE9NIE11dGF0aW9uT2JzZXJ2ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTIzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWc6CisKIDIwMTItMDYtMjYgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6
QGludGVsLmNvbT4KIAogICAgICAgICBbV0syXVtHVEtdIFVuaW5pdGlhbGl6ZWQgdmFyaWFibGUg
aW4gVGV4dENoZWNrZXJHdGsuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggYWUyYzM5
M2IxN2MyYjA5YjJhNTI3OTE0YTUzZWNlOTFkZDczZmM1ZC4uNDgzNWI0MjM2NDk3NjNjMmViMWQx
MmQxZjJmOGE5MmI5NDU1MDVlZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtOTksNyAr
OTksNyBAQCBFTkFCTEVfTUVESUFfU1RBVElTVElDUyA9IDsKIEVOQUJMRV9NRVRFUl9UQUcgPSBF
TkFCTEVfTUVURVJfVEFHOwogRU5BQkxFX01IVE1MID0gOwogRU5BQkxFX01JQ1JPREFUQSA9IDsK
LUVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMgPSBFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTOwor
RU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUyA9IDsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gJChF
TkFCTEVfTk9USUZJQ0FUSU9OU18kKFJFQUxfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX05PVElG
SUNBVElPTlNfbWFjb3N4ID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU19tYWNvc3hfJChUQVJHRVRf
TUFDX09TX1hfVkVSU0lPTl9NQUpPUikpOwogRU5BQkxFX05PVElGSUNBVElPTlNfbWFjb3N4XzEw
NzAgPSA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDZkM2RhN2Y4YzI0YjQ2MjdjNWYxMjMzOTk4
ZGYzNzBlNTEzNDQzZjcuLmEzMjdlY2UyYjgxMzM4MTkzNjE3YzhkNjgyYzRlOTcxZTk0NGI3MDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yMjIsNiArMjIyLDcgQEAgU0VUKFdlYkNvcmVfSURM
X0ZJTEVTCiAgICAgZG9tL01vdXNlRXZlbnQuaWRsCiAgICAgZG9tL011dGF0aW9uQ2FsbGJhY2su
aWRsCiAgICAgZG9tL011dGF0aW9uRXZlbnQuaWRsCisgICAgZG9tL011dGF0aW9uT2JzZXJ2ZXIu
aWRsCiAgICAgZG9tL011dGF0aW9uUmVjb3JkLmlkbAogICAgIGRvbS9OYW1lZE5vZGVNYXAuaWRs
CiAgICAgZG9tL05vZGVGaWx0ZXIuaWRsCkBAIC0yNDUsNyArMjQ2LDYgQEAgU0VUKFdlYkNvcmVf
SURMX0ZJTEVTCiAgICAgZG9tL1RyZWVXYWxrZXIuaWRsCiAgICAgZG9tL1VJRXZlbnQuaWRsCiAg
ICAgZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50LmlkbAotICAgIGRvbS9XZWJLaXRNdXRhdGlvbk9i
c2VydmVyLmlkbAogICAgIGRvbS9XZWJLaXROYW1lZEZsb3cuaWRsCiAgICAgZG9tL1dlYktpdFRy
YW5zaXRpb25FdmVudC5pZGwKICAgICBkb20vV2hlZWxFdmVudC5pZGwKQEAgLTYxMiw2ICs2MTIs
NyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL01vdXNlRXZlbnQuY3BwCiAgICAgZG9t
L01vdXNlUmVsYXRlZEV2ZW50LmNwcAogICAgIGRvbS9NdXRhdGlvbkV2ZW50LmNwcAorICAgIGRv
bS9NdXRhdGlvbk9ic2VydmVyLmNwcAogICAgIGRvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RH
cm91cC5jcHAKICAgICBkb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAKICAgICBk
b20vTXV0YXRpb25SZWNvcmQuY3BwCkBAIC02NjUsNyArNjY2LDYgQEAgU0VUKFdlYkNvcmVfU09V
UkNFUwogICAgIGRvbS9Vc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvci5jcHAKICAgICBkb20vVmll
d3BvcnRBcmd1bWVudHMuY3BwCiAgICAgZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50LmNwcAotICAg
IGRvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmNwcAogICAgIGRvbS9XZWJLaXROYW1lZEZsb3cu
Y3BwCiAgICAgZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5jcHAKICAgICBkb20vV2hlZWxFdmVu
dC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWcKaW5kZXggYjFiODQ5NjZkOWI0MjFlZDk2ZDI4ZjI0YzJhZTZmNGNkY2Iw
OGYyNy4uNjFkMmFmNTY3ZTI1MmM3YWJlZWU2YzNmZTJhMGUzOWZhN2JjMTk2MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcK
KysrIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWcKQEAgLTEwMCw3ICsxMDAsNyBAQCBFTkFCTEVfTUVESUFfU1RBVElTVElDUyA9IDsKIEVOQUJM
RV9NRVRFUl9UQUcgPSBFTkFCTEVfTUVURVJfVEFHOwogRU5BQkxFX01IVE1MID0gOwogRU5BQkxF
X01JQ1JPREFUQSA9IDsKLUVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMgPSBFTkFCTEVfTVVUQVRJ
T05fT0JTRVJWRVJTOworRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUyA9IDsKIEVOQUJMRV9OT1RJ
RklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFJFQUxfUExBVEZPUk1fTkFNRSkp
OwogRU5BQkxFX05PVElGSUNBVElPTlNfbWFjb3N4ID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU19t
YWNvc3hfJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUikpOwogRU5BQkxFX05PVElGSUNB
VElPTlNfbWFjb3N4XzEwNzAgPSA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKaW5kZXggOGU4
MTBiOTBlMzZmMDIzZDI2ODBkNjE5OGVlMTk3NTAzNDZjMjNmNi4uMTZmNmUxNTJlMzNjOTM2Zjc3
OGM4MGE0ZTE0MGFmZDY5YzBhYmExNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcApAQCAt
MjQ0LDYgKzI0NCw3IEBACiAjaW5jbHVkZSAiSlNNb3VzZUV2ZW50LmNwcCIKICNpbmNsdWRlICJK
U011dGF0aW9uQ2FsbGJhY2suY3BwIgogI2luY2x1ZGUgIkpTTXV0YXRpb25FdmVudC5jcHAiCisj
aW5jbHVkZSAiSlNNdXRhdGlvbk9ic2VydmVyLmNwcCIKICNpbmNsdWRlICJKU011dGF0aW9uUmVj
b3JkLmNwcCIKICNpbmNsdWRlICJKU05hbWVkTm9kZU1hcC5jcHAiCiAjaW5jbHVkZSAiSlNOYXZp
Z2F0b3IuY3BwIgpAQCAtNDc3LDcgKzQ3OCw2IEBACiAjaW5jbHVkZSAiSlNXZWJLaXRDU1NUcmFu
c2Zvcm1WYWx1ZS5jcHAiCiAjaW5jbHVkZSAiSlNXZWJLaXRDU1NNYXRyaXguY3BwIgogI2luY2x1
ZGUgIkpTV2ViS2l0Q1NTUmVnaW9uUnVsZS5jcHAiCi0jaW5jbHVkZSAiSlNXZWJLaXRNdXRhdGlv
bk9ic2VydmVyLmNwcCIKICNpbmNsdWRlICJKU1dlYktpdE5hbWVkRmxvdy5jcHAiCiAjaW5jbHVk
ZSAiSlNXZWJLaXRQb2ludC5jcHAiCiAjaW5jbHVkZSAiSlNXZWJLaXRUcmFuc2l0aW9uRXZlbnQu
Y3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggMDNmNDAwNGZhOGJmMWE1ZTFm
MzJjNGNlOThkNmZhZTA0MDljNGE2Ny4uM2FlMzQxMmI5ZDAyODY4ZDdhZTU3OTBjNmJiNWY4MmM2
MWI1YjQ1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0yMjQsNiArMjI0LDcg
QEAgQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvZG9tL01vdXNlRXZlbnQuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL2RvbS9NdXRhdGlvbkNhbGxiYWNrLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9kb20vTXV0YXRpb25FdmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvZG9tL011dGF0aW9uT2Jz
ZXJ2ZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9NdXRhdGlvblJlY29yZC5pZGwgXAogICAg
ICQoV2ViQ29yZSkvZG9tL05hbWVkTm9kZU1hcC5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL05v
ZGUuaWRsIFwKQEAgLTI0OSw3ICsyNTAsNiBAQCBCSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJD
b3JlKS9kb20vVHJlZVdhbGtlci5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL1VJRXZlbnQuaWRs
IFwKICAgICAkKFdlYkNvcmUpL2RvbS9XZWJLaXRBbmltYXRpb25FdmVudC5pZGwgXAotICAgICQo
V2ViQ29yZSkvZG9tL1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaWRsIFwKICAgICAkKFdlYkNvcmUp
L2RvbS9XZWJLaXROYW1lZEZsb3cuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9XZWJLaXRUcmFu
c2l0aW9uRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9XaGVlbEV2ZW50LmlkbCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAyYTE0MzE2NjM0NTQ3ZjA0MmUzMjEyNTll
MGRiNTJlYjQ5ZDM1MmNlLi43NzQ0ZTIyMWU4MjE3NTliMDc3ZjQ0ODJkNTQwNGQ1YWJlNTY2MzFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTQwNSw2ICs0MDUsOCBAQCB3ZWJj
b3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlv
bkNhbGxiYWNrLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvbkV2ZW50LmNw
cCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uRXZlbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uT2JzZXJ2ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTTXV0YXRpb25PYnNlcnZlci5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTTXV0YXRpb25SZWNvcmQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRp
b25SZWNvcmQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU05hbWVkTm9kZU1hcC5jcHAg
XApAQCAtNjE2LDggKzYxOCw2IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdENTU1JlZ2lvblJ1bGUuaCBcCiAJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCBcCiAJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmggXAotCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1dlYktpdE5hbWVkRmxvdy5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNX
ZWJLaXROYW1lZEZsb3cuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdFBvaW50
LmNwcCBcCkBAIC03NjgsNiArNzY4LDcgQEAgZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJJChXZWJD
b3JlKS9kb20vTW91c2VFdmVudC5pZGwgXAogCSQoV2ViQ29yZSkvZG9tL011dGF0aW9uQ2FsbGJh
Y2suaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9NdXRhdGlvbkV2ZW50LmlkbCBcCisJJChXZWJDb3Jl
KS9kb20vTXV0YXRpb25PYnNlcnZlci5pZGwgXAogCSQoV2ViQ29yZSkvZG9tL011dGF0aW9uUmVj
b3JkLmlkbCBcCiAJJChXZWJDb3JlKS9kb20vTmFtZWROb2RlTWFwLmlkbCBcCiAJJChXZWJDb3Jl
KS9kb20vTm9kZS5pZGwgXApAQCAtNzkxLDcgKzc5Miw2IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0g
XAogCSQoV2ViQ29yZSkvZG9tL1RyZWVXYWxrZXIuaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9VSUV2
ZW50LmlkbCBcCiAJJChXZWJDb3JlKS9kb20vV2ViS2l0QW5pbWF0aW9uRXZlbnQuaWRsIFwKLQkk
KFdlYkNvcmUpL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmlkbCBcCiAJJChXZWJDb3JlKS9k
b20vV2ViS2l0TmFtZWRGbG93LmlkbCBcCiAJJChXZWJDb3JlKS9kb20vV2ViS2l0VHJhbnNpdGlv
bkV2ZW50LmlkbCBcCiAJJChXZWJDb3JlKS9kb20vV2hlZWxFdmVudC5pZGwgXApAQCAtMTQ1MCw2
ICsxNDUwLDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNNZXNzYWdlUG9ydEN1c3RvbS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTm9kZUN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9k
ZUN1c3RvbS5oIFwKQEAgLTE0OTQsNyArMTQ5NSw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJ
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGVDdXN0b20u
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdENTU0tleWZyYW1lc1J1
bGVDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVy
aW5nQ29udGV4dEN1c3RvbS5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2Vi
S2l0TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV2ViS2l0UG9pbnRDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1dlYlNvY2tldEN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
V29ya2VyQ29udGV4dEJhc2UuY3BwIFwKQEAgLTE5MjgsNiArMTkyOCw4IEBAIHdlYmNvcmVfc291
cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uQ2FsbGJhY2suaCBcCiAJU291
cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uRXZlbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20v
TXV0YXRpb25FdmVudC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5j
cHAgXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmggXAogCVNvdXJjZS9X
ZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAgXApAQCAtMjAzOCw4ICsy
MDQwLDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vVmlld3Bv
cnRBcmd1bWVudHMuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50LmggXAotCVNv
dXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmNwcCBcCi0JU291cmNlL1dl
YkNvcmUvZG9tL1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9t
L1dlYktpdE5hbWVkRmxvdy5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZs
b3cuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5jcHAgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKaW5kZXggNGZhNzI1NzdlYWIxNjY1ZGYzYzI2YjQyMTYxNDYxZDM4MmU2ZDZhZC4u
YjE2Mjg0NTRiOTJhZDY0NTE5NTBmMTE0MjY5OTRlNGJjZDY0ZGRhOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBA
IC0yMDEsNiArMjAxLDcgQEAgdjggewogICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhNZXNz
YWdlUG9ydEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdl
RXZlbnRDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25D
YWxsYmFja0N1c3RvbS5jcHAgXAorICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlv
bk9ic2VydmVyQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE5hbWVk
Tm9kZU1hcEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhOYW1lZE5v
ZGVzQ29sbGVjdGlvbi5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhOb2RlQ3Vz
dG9tLmNwcCBcCkBAIC0yMTUsNyArMjE2LDYgQEAgdjggewogICAgICAgICBiaW5kaW5ncy92OC9j
dXN0b20vVjhTdHlsZVNoZWV0Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3Rv
bS9WOFN0eWxlU2hlZXRMaXN0Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3Rv
bS9WOFdlYktpdEFuaW1hdGlvbkN1c3RvbS5jcHAgXAotICAgICAgICBiaW5kaW5ncy92OC9jdXN0
b20vVjhXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdz
L3Y4L2N1c3RvbS9WOFdlYktpdFBvaW50Q29uc3RydWN0b3IuY3BwIFwKICAgICAgICAgYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4V29ya2VyQ29udGV4dEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5n
cy92OC9jdXN0b20vVjhXb3JrZXJDdXN0b20uY3BwIFwKQEAgLTMzMyw2ICszMzMsNyBAQCB2OCB7
CiAgICAgICAgIGJpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwIFwKICAgICAgICAg
YmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5oIFwKICAgICAgICAgYmluZGluZ3MvanMv
SlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCBcCisgICAgICAgIGJpbmRpbmdzL2pzL0pTTXV0
YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU05hbWVkTm9k
ZU1hcEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwIFwK
ICAgICAgICAgYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCBcCkBAIC0zNjAs
NyArMzYxLDYgQEAgdjggewogICAgICAgICBiaW5kaW5ncy9qcy9KU1dlYktpdEFuaW1hdGlvbkxp
c3RDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNXZWJLaXRDU1NLZXlmcmFtZVJ1
bGVDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNXZWJLaXRDU1NLZXlmcmFtZXNS
dWxlQ3VzdG9tLmNwcCBcCi0gICAgICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0TXV0YXRpb25PYnNl
cnZlckN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU1dlYktpdFBvaW50Q3VzdG9t
LmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIFwK
ICAgICAgICAgYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAgXApA
QCAtNTc1LDYgKzU3NSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGRvbS9Nb3VzZUV2ZW50LmNwcCBc
CiAgICAgZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcCBcCiAgICAgZG9tL011dGF0aW9uRXZlbnQu
Y3BwIFwKKyAgICBkb20vTXV0YXRpb25PYnNlcnZlci5jcHAgXAogICAgIGRvbS9NdXRhdGlvbk9i
c2VydmVySW50ZXJlc3RHcm91cC5jcHAgXAogICAgIGRvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0
cmF0aW9uLmNwcCBcCiAgICAgZG9tL011dGF0aW9uUmVjb3JkLmNwcCBcCkBAIC02MjksNyArNjMw
LDYgQEAgU09VUkNFUyArPSBcCiAgICAgZG9tL1VzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yLmNw
cCBcCiAgICAgZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcCBcCiAgICAgZG9tL1dlYktpdEFuaW1h
dGlvbkV2ZW50LmNwcCBcCi0gICAgZG9tL1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuY3BwIFwKICAg
ICBkb20vV2ViS2l0TmFtZWRGbG93LmNwcCBcCiAgICAgZG9tL1dlYktpdFRyYW5zaXRpb25FdmVu
dC5jcHAgXAogICAgIGRvbS9XaGVlbEV2ZW50LmNwcCBcCkBAIC0xNzU3LDYgKzE3NTcsNyBAQCBI
RUFERVJTICs9IFwKICAgICBkb20vTW91c2VSZWxhdGVkRXZlbnQuaCBcCiAgICAgZG9tL011dGF0
aW9uQ2FsbGJhY2suaCBcCiAgICAgZG9tL011dGF0aW9uRXZlbnQuaCBcCisgICAgZG9tL011dGF0
aW9uT2JzZXJ2ZXIuaCBcCiAgICAgZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uaCBc
CiAgICAgZG9tL011dGF0aW9uUmVjb3JkLmggXAogICAgIGRvbS9OYW1lZE5vZGVNYXAuaCBcCkBA
IC0xODA1LDcgKzE4MDYsNiBAQCBIRUFERVJTICs9IFwKICAgICBkb20vVXNlckdlc3R1cmVJbmRp
Y2F0b3IuaCBcCiAgICAgZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmggXAogICAgIGRvbS9XZWJLaXRB
bmltYXRpb25FdmVudC5oIFwKLSAgICBkb20vV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oIFwKICAg
ICBkb20vV2ViS2l0TmFtZWRGbG93LmggXAogICAgIGRvbS9XZWJLaXRUcmFuc2l0aW9uRXZlbnQu
aCBcCiAgICAgZG9tL1doZWVsRXZlbnQuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9V
c2VKU0MuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UKaW5kZXggY2U2OTBlZmZm
MmYzZWM5YjU3YTBhYWI2ODIwYmM3YjJiOWM2ZDY1ZS4uYTQ0NTAyZjkyODAwMzA3ZDY3NTdjZTk5
ZWE0Y2M3ODFmZWFjNzM5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVXNlSlNDLmNtYWtl
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1VzZUpTQy5jbWFrZQpAQCAtMTE2LDYgKzExNiw3IEBAIExJ
U1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50
Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwCiAgICAg
YmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcAorICAgIGJpbmRpbmdzL2pz
L0pTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU05hbWVkTm9k
ZU1hcEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCiAgICAgYmlu
ZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcApAQCAtMTQyLDcgKzE0Myw2IEBAIExJ
U1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0QW5pbWF0
aW9uTGlzdEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1dlYktpdENTU0tleWZyYW1lUnVs
ZUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1dlYktpdENTU0tleWZyYW1lc1J1bGVDdXN0
b20uY3BwCi0gICAgYmluZGluZ3MvanMvSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNw
cAogICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRDdXN0b20uY3BwCiAgICAgYmluZGluZ3Mv
anMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1hNTEh0dHBS
ZXF1ZXN0VXBsb2FkQ3VzdG9tLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVXNlVjgu
Y21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9Vc2VWOC5jbWFrZQppbmRleCA2Nzc1ZTk1MmQ3NmZlNjIx
MDIzZGYwMWMwNjA2N2ZlZTNjYjlkZjRmLi5jOGEyNTNjMzliNDlkZDlmYWE0OTk1MWRlYTQ3YzQ2
MDc2ZmY0MjU0IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Vc2VWOC5jbWFrZQorKysgYi9T
b3VyY2UvV2ViQ29yZS9Vc2VWOC5jbWFrZQpAQCAtMTMxLDYgKzEzMSw3IEBAIExJU1QoQVBQRU5E
IFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VFdmVudEN1
c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlUG9ydEN1c3RvbS5jcHAK
ICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcAorICAg
IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCiAgICAgYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4TmFtZWROb2RlTWFwQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL3Y4
L2N1c3RvbS9WOE5hbWVkTm9kZXNDb2xsZWN0aW9uLmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1c3Rv
bS9WOE5vZGVDdXN0b20uY3BwCkBAIC0xNTEsNyArMTUyLDYgQEAgTElTVChBUFBFTkQgV2ViQ29y
ZV9TT1VSQ0VTCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4VWludDhBcnJheUN1c3RvbS5jcHAK
ICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3Bw
CiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNwcAotICAg
IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCiAg
ICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5jcHAKICAgICBi
aW5kaW5ncy92OC9jdXN0b20vVjhXZWJTb2NrZXRDdXN0b20uY3BwCiAgICAgYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4V29ya2VyQ29udGV4dEN1c3RvbS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBlOWVi
ZDZjMWY0ZTM4ZGQ4MjUwNDRlZTE0MTA5YzQxYzM5YWU5YjQyLi42YzE2ZGIxMmMzYjc5MDIzZTVk
MGJhZmU5OGNlYzI2OWM3ZWJlYmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC05NjYsNiArOTY2LDcg
QEAKICAgICAgICAgICAgICdkb20vTW91c2VFdmVudC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9N
dXRhdGlvbkNhbGxiYWNrLmlkbCcsCiAgICAgICAgICAgICAnZG9tL011dGF0aW9uRXZlbnQuaWRs
JywKKyAgICAgICAgICAgICdkb20vTXV0YXRpb25PYnNlcnZlci5pZGwnLAogICAgICAgICAgICAg
J2RvbS9NdXRhdGlvblJlY29yZC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9OYW1lZE5vZGVNYXAu
aWRsJywKICAgICAgICAgICAgICdkb20vTm9kZS5pZGwnLApAQCAtOTkxLDcgKzk5Miw2IEBACiAg
ICAgICAgICAgICAnZG9tL1RyZWVXYWxrZXIuaWRsJywKICAgICAgICAgICAgICdkb20vVUlFdmVu
dC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9XZWJLaXRBbmltYXRpb25FdmVudC5pZGwnLAotICAg
ICAgICAgICAgJ2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmlkbCcsCiAgICAgICAgICAgICAn
ZG9tL1dlYktpdE5hbWVkRmxvdy5pZGwnLAogICAgICAgICAgICAgJ2RvbS9XZWJLaXRUcmFuc2l0
aW9uRXZlbnQuaWRsJywKICAgICAgICAgICAgICdkb20vV2hlZWxFdmVudC5pZGwnLApAQCAtMjAx
NSw2ICsyMDE1LDcgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3Vz
dG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5o
JywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3Bw
JywKKyAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3Bw
JywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAnLAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAnLAogICAgICAgICAgICAg
J2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAnLApAQCAtMjA1Nyw3ICsyMDU4
LDYgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0
b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dlYktpdENTU0tleWZyYW1lUnVs
ZUN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTS2V5ZnJh
bWVzUnVsZUN1c3RvbS5jcHAnLAotICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV2ViS2l0TXV0
YXRpb25PYnNlcnZlckN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV2Vi
S2l0UG9pbnRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dlYlNvY2tl
dEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJh
c2UuY3BwJywKQEAgLTIzMjcsNiArMjMyNyw3IEBACiAgICAgICAgICAgICAnYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4TWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mv
djgvY3VzdG9tL1Y4TWVzc2FnZVBvcnRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5n
cy92OC9jdXN0b20vVjhNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCcsCisgICAgICAgICAgICAn
YmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAnLAogICAgICAg
ICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5hbWVkTm9kZU1hcEN1c3RvbS5jcHAnLAogICAg
ICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5hbWVkTm9kZXNDb2xsZWN0aW9uLmNwcCcs
CiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4TmFtZWROb2Rlc0NvbGxlY3Rpb24u
aCcsCkBAIC0yMzU2LDcgKzIzNTcsNiBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOFVpbnQ4Q2xhbXBlZEFycmF5Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mv
djgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAg
ICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNwcCcsCi0gICAg
ICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0TXV0YXRpb25PYnNlcnZlckN1c3Rv
bS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdFBvaW50Q29u
c3RydWN0b3IuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJTb2Nr
ZXRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhXb3JrZXJD
b250ZXh0Q3VzdG9tLmNwcCcsCkBAIC01MzU5LDYgKzUzNTksOCBAQAogICAgICAgICAgICAgJ2Rv
bS9NdXRhdGlvbkNhbGxiYWNrLmgnLAogICAgICAgICAgICAgJ2RvbS9NdXRhdGlvbkV2ZW50LmNw
cCcsCiAgICAgICAgICAgICAnZG9tL011dGF0aW9uRXZlbnQuaCcsCisgICAgICAgICAgICAnZG9t
L011dGF0aW9uT2JzZXJ2ZXIuY3BwJywKKyAgICAgICAgICAgICdkb20vTXV0YXRpb25PYnNlcnZl
ci5oJywKICAgICAgICAgICAgICdkb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuY3Bw
JywKICAgICAgICAgICAgICdkb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuaCcsCiAg
ICAgICAgICAgICAnZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwJywKQEAgLTU0
NTksOCArNTQ2MSw2IEBACiAgICAgICAgICAgICAnZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcCcs
CiAgICAgICAgICAgICAnZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCcsCiAgICAgICAgICAg
ICAnZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50LmgnLAotICAgICAgICAgICAgJ2RvbS9XZWJLaXRN
dXRhdGlvbk9ic2VydmVyLmNwcCcsCi0gICAgICAgICAgICAnZG9tL1dlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXIuaCcsCiAgICAgICAgICAgICAnZG9tL1dlYktpdE5hbWVkRmxvdy5jcHAnLAogICAgICAg
ICAgICAgJ2RvbS9XZWJLaXROYW1lZEZsb3cuaCcsCiAgICAgICAgICAgICAnZG9tL1dlYktpdFRy
YW5zaXRpb25FdmVudC5jcHAnLApAQCAtNzc0MSw2ICs3NzQxLDggQEAKICAgICAgICAgICAgICc8
KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25DYWxsYmFjay5o
JywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
TXV0YXRpb25FdmVudC5jcHAnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvbkV2ZW50LmgnLAorICAgICAgICAgICAgJzwoUFJPRFVD
VF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvbk9ic2VydmVyLmNwcCcsCisg
ICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0
aW9uT2JzZXJ2ZXIuaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU011dGF0aW9uUmVjb3JkLmNwcCcsCiAgICAgICAgICAgICAnPChQUk9EVUNU
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uUmVjb3JkLmgnLAogICAgICAg
ICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNOYW1lZE5vZGVN
YXAuY3BwJywKQEAgLTgyODcsOCArODI4OSw2IEBACiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdENTU1JlZ2lvblJ1bGUuaCcsCiAgICAg
ICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdENT
U1RyYW5zZm9ybVZhbHVlLmNwcCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmgnLAotICAgICAgICAg
ICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRNdXRhdGlv
bk9ic2VydmVyLmNwcCcsCi0gICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCcsCiAgICAgICAgICAgICAnPChQ
Uk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdFBvaW50LmNwcCcsCiAg
ICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktp
dFBvaW50LmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNXZWJLaXROYW1lZEZsb3cuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggZDEyZGI1NjZjOGMzOTU5NmZkMGYxMjU0OGUwNzEx
NTY4NmMxMjdlOS4uMzU4NmM2ZWQ4ZjExNmQ1MGY0ZmVjODc2ODg2MWViMTY2MjYyODM0ZSAxMDA3
NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTExNTkw
LDYgKzExNTkwLDYyIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2
ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZl
ZFNvdXJjZXNcSlNNdXRhdGlvbk9ic2VydmVyLmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1
cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
KwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJ
CQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgor
CQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1
cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZp
bGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCisJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0Zp
bGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIp
XG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU011dGF0aW9uT2JzZXJ2ZXIuaCIK
KwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1
cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU011dGF0
aW9uUmVjb3JkLmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCkBAIC0yMzA2Myw2
MiArMjMxMTksNiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQ
YXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXEpTV2ViS2l0TXV0YXRpb25PYnNlcnZlci5jcHAiCi0JCQkJPgotCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
Ci0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KLQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgotCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgotCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJ
PC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRNdXRhdGlvbk9i
c2VydmVyLmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9
IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJj
ZXNcSlNXZWJLaXROYW1lZEZsb3cuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
QEAgLTUxNjUxLDYgKzUxNjUxLDYyIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxNdXRhdGlvbk9ic2VydmVyLmNwcCIKKwkJCQk+CisJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMy
IgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIi
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIi
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXE11dGF0
aW9uT2JzZXJ2ZXIuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZl
UGF0aD0iLi5cZG9tXE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcCIKIAkJCQk+CiAJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCkBAIC01NDMzOSw2MiArNTQzOTUsNiBAQAogCQkJCT4KIAkJ
CTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cV2ViS2l0TXV0YXRp
b25PYnNlcnZlci5jcHAiCi0JCQkJPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1l
PSJEZWJ1Z3xXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJ
CQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVs
ZWFzZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJ
PFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdf
Q2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJ
PgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1l
PSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0J
CQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
LQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJ
CQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgot
CQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJ
CQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCi0JCQkJPgot
CQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxXZWJLaXROYW1l
ZEZsb3cuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KQEAgLTY4MjE4LDcgKzY4
MjE4LDcgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZp
bGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU05hbWVkTm9kZU1hcEN1c3Rv
bS5jcHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNNdXRhdGlvbk9ic2Vy
dmVyQ3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJCQkJCU5h
bWU9IkRlYnVnfFdpbjMyIgpAQCAtNjgyNzAsNyArNjgyNzAsNyBAQAogCQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGJpbmRpbmdzXGpzXEpTTm9kZUN1c3RvbS5jcHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmlu
ZGluZ3NcanNcSlNOYW1lZE5vZGVNYXBDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02ODMyMiwxMSArNjgzMjIs
NyBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQot
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZUN1c3RvbS5oIgotCQkJCQk+
Ci0JCQkJPC9GaWxlPgotCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3Nc
anNcSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5k
aW5nc1xqc1xKU05vZGVDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02ODM3OCwxMSArNjgzNzQsMTEgQEAKIAkJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU05vZGVGaWx0ZXJDb25kaXRpb24uaCIKKwkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU05vZGVDdXN0b20uaCIKIAkJCQkJPgogCQkJ
CTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpT
Tm9kZUZpbHRlckN1c3RvbS5jcHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNc
SlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpAQCAtNjg0MzQsNyArNjg0MzAsMTEgQEAKIAkJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU05vZGVJdGVyYXRvckN1c3RvbS5jcHAiCisJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmgiCisJ
CQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5k
aW5nc1xqc1xKU05vZGVGaWx0ZXJDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02ODQ4Niw3ICs2ODQ4Niw3IEBA
CiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNOb2RlTGlzdEN1c3RvbS5jcHAiCisJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNOb2RlSXRlcmF0b3JDdXN0b20uY3BwIgog
CQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIi
CkBAIC02ODUzOCw3ICs2ODUzOCw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJ
PC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNO
b3RpZmljYXRpb25DdXN0b20uY3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpz
XEpTTm9kZUxpc3RDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgog
CQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02ODU5MCw3ICs2ODU5MCw3IEBACiAJCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZl
UGF0aD0iLi5cYmluZGluZ3NcanNcSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcCIKKwkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU05vdGlmaWNhdGlvbkN1c3RvbS5jcHAiCiAJ
CQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIK
QEAgLTY4NjQyLDExICs2ODY0Miw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJ
PC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNQ
bHVnaW5FbGVtZW50RnVuY3Rpb25zLmgiCi0JCQkJCT4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUK
LQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1Byb2Nlc3NpbmdJbnN0cnVjdGlv
bkN1c3RvbS5jcHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNQbHVnaW5F
bGVtZW50RnVuY3Rpb25zLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJ
CQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpAQCAtNjg2OTgsNyArNjg2OTQsMTEgQEAKIAkJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxiaW5kaW5nc1xqc1xKU1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrQ3VzdG9t
LmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1BsdWdpbkVsZW1lbnRG
dW5jdGlvbnMuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTUHJvY2Vzc2luZ0luc3RydWN0aW9uQ3VzdG9tLmNwcCIK
IAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMy
IgpAQCAtNjg3NTAsNyArNjg3NTAsNyBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJ
CTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpT
U2NyaXB0UHJvZmlsZU5vZGVDdXN0b20uY3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRp
bmdzXGpzXEpTUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2tDdXN0b20uY3BwIgogCQkJCQk+
CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02
ODgwMiw3ICs2ODgwMiw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxl
PgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNTaGFyZWRX
b3JrZXJDdXN0b20uY3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU2Ny
aXB0UHJvZmlsZU5vZGVDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02ODg1NCw3ICs2ODg1NCw3IEBACiAJCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0
aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNTUUxSZXN1bHRTZXRSb3dMaXN0Q3VzdG9tLmNwcCIK
KwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1NoYXJlZFdvcmtlckN1c3RvbS5j
cHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xX
aW4zMiIKQEAgLTY4OTA2LDcgKzY4OTA2LDcgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4K
IAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xq
c1xKU1NRTFRyYW5zYWN0aW9uQ3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5k
aW5nc1xqc1xKU1NRTFJlc3VsdFNldFJvd0xpc3RDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02ODk1OCw3ICs2
ODk1OCw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxG
aWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNTUUxUcmFuc2FjdGlvblN5
bmNDdXN0b20uY3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU1FMVHJh
bnNhY3Rpb25DdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJ
CQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02OTAxMCw3ICs2OTAxMCw3IEBACiAJCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0
aD0iLi5cYmluZGluZ3NcanNcSlNTdG9yYWdlQ3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxiaW5kaW5nc1xqc1xKU1NRTFRyYW5zYWN0aW9uU3luY0N1c3RvbS5jcHAiCiAJCQkJCT4K
IAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKQEAgLTY5
MDYyLDExICs2OTA2Miw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxl
PgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNTdG9yYWdl
Q3VzdG9tLmgiCi0JCQkJCT4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxiaW5kaW5nc1xqc1xKU1N0eWxlU2hlZXRDdXN0b20uY3BwIgorCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU3RvcmFnZUN1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKQEAgLTY5MTE4LDcg
KzY5MTE0LDExIEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJ
CTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNTdHlsZVNoZWV0TGlz
dEN1c3RvbS5jcHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNTdG9yYWdl
Q3VzdG9tLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxiaW5kaW5nc1xqc1xKU1N0eWxlU2hlZXRDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02OTE3MCw3
ICs2OTE3MCw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJ
CTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNTVkdFbGVtZW50SW5z
dGFuY2VDdXN0b20uY3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU3R5
bGVTaGVldExpc3RDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgog
CQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02OTIyMiw3ICs2OTIyMiw3IEBACiAJCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZl
UGF0aD0iLi5cYmluZGluZ3NcanNcSlNTVkdMZW5ndGhDdXN0b20uY3BwIgorCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU1ZHRWxlbWVudEluc3RhbmNlQ3VzdG9tLmNwcCIKIAkJ
CQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpA
QCAtNjkyNzQsNyArNjkyNzQsNyBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJCTwv
RmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU1ZH
UGF0aFNlZ0N1c3RvbS5jcHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNT
VkdMZW5ndGhDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJ
CQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02OTMyNiw3ICs2OTMyNiw3IEBACiAJCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0
aD0iLi5cYmluZGluZ3NcanNcSlNUZXh0Q3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxiaW5kaW5nc1xqc1xKU1NWR1BhdGhTZWdDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02OTM3OCw3ICs2OTM3
OCw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxl
Ci0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNUcmVlV2Fsa2VyQ3VzdG9tLmNw
cCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1RleHRDdXN0b20uY3BwIgog
CQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIi
CkBAIC02OTQzMCw3ICs2OTQzMCw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJ
PC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNX
ZWJLaXRBbmltYXRpb25DdXN0b20uY3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdz
XGpzXEpTVHJlZVdhbGtlckN1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0
aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKQEAgLTY5NDgyLDcgKzY5NDgyLDcgQEAKIAkJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20uY3Bw
IgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTV2ViS2l0QW5pbWF0aW9uQ3Vz
dG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJCQkJCU5hbWU9IkRl
YnVnfFdpbjMyIgpAQCAtNjk1MzQsNyArNjk1MzQsNyBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRp
bmdzXGpzXEpTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlQ3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxiaW5kaW5nc1xqc1xKU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20uY3BwIgogCQkJ
CQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBA
IC02OTU4Niw3ICs2OTU4Niw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9G
aWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNXZWJL
aXRDU1NLZXlmcmFtZXNSdWxlQ3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5k
aW5nc1xqc1xKU1dlYktpdENTU0tleWZyYW1lUnVsZUN1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKQEAgLTY5NjM4LDcg
KzY5NjM4LDcgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJ
PEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1dlYktpdENTU01hdHJp
eEN1c3RvbS5jcHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNXZWJLaXRD
U1NLZXlmcmFtZXNSdWxlQ3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpAQCAtNjk2OTAsNyArNjk2OTAsNyBAQAogCQkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTV2ViS2l0TXV0YXRpb25PYnNlcnZlckN1c3RvbS5j
cHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNXZWJLaXRDU1NNYXRyaXhD
dXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0i
RGVidWd8V2luMzIiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggY2M4MzQ0MTM0NTdhMzQwOTNkYzBjNmUyMTI1YTBkODk5ZjFjYzc1
Yi4uYzBmMDk2ZjJjZWM3M2RmZWU4NDVjMzc0NWFmMDBiMGMwMzZmYjhjYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTc3Miwx
MyArNTc3MiwxMyBAQAogCQlDNkYwOEZDOTE0MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRhdGlvblJl
Y29yZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
NkYwOEZDNzE0MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRhdGlvblJlY29yZC5jcHAgKi87IH07CiAJ
CUM2RjA4RkNBMTQzMTAwMEQwMDY4NTg0OSAvKiBKU011dGF0aW9uUmVjb3JkLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwOEZDODE0MzEwMDBEMDA2
ODU4NDkgLyogSlNNdXRhdGlvblJlY29yZC5oICovOyB9OwogCQlDNkYwOTAwQTE0MzI3QjYxMDA2
ODU4NDkgLyogTXV0YXRpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQzZGMDkwMDExNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uQ2Fs
bGJhY2suaCAqLzsgfTsKLQkJQzZGMDkwMEUxNDMyN0I2MTAwNjg1ODQ5IC8qIFdlYktpdE11dGF0
aW9uT2JzZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzZGMDkwMDUxNDMyN0I2MTAwNjg1ODQ5IC8qIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIu
Y3BwICovOyB9OwotCQlDNkYwOTAwRjE0MzI3QjYxMDA2ODU4NDkgLyogV2ViS2l0TXV0YXRpb25P
YnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QzZGMDkwMDYxNDMyN0I2MTAwNjg1ODQ5IC8qIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDNkYwOTAwRTE0
MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25PYnNlcnZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwOTAwNTE0MzI3QjYxMDA2ODU4NDkgLyog
TXV0YXRpb25PYnNlcnZlci5jcHAgKi87IH07CisJCUM2RjA5MDBGMTQzMjdCNjEwMDY4NTg0OSAv
KiBNdXRhdGlvbk9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDNkYwOTAwNjE0MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25PYnNlcnZlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUM2RjA5
MDI4MTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDkwMjAxNDMyN0Q0RjAwNjg1
ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFjay5jcHAgKi87IH07CiAJCUM2RjA5MDI5MTQzMjdENEYw
MDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RjA5MDIxMTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0
aW9uQ2FsbGJhY2suaCAqLzsgfTsKLQkJQzZGMDkwMkMxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTV2Vi
S2l0TXV0YXRpb25PYnNlcnZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDNkYwOTAyNDE0MzI3RDRGMDA2ODU4NDkgLyogSlNXZWJLaXRNdXRhdGlv
bk9ic2VydmVyLmNwcCAqLzsgfTsKLQkJQzZGMDkwMkQxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTV2Vi
S2l0TXV0YXRpb25PYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzZGMDkwMjUxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTV2ViS2l0TXV0YXRpb25P
YnNlcnZlci5oICovOyB9OwotCQlDNkYwOTE3RjE0M0EyQkI5MDA2ODU4NDkgLyogSlNXZWJLaXRN
dXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEM2RjA5MTdFMTQzQTJCQjkwMDY4NTg0OSAvKiBKU1dlYktpdE11dGF0
aW9uT2JzZXJ2ZXJDdXN0b20uY3BwICovOyB9OworCQlDNkYwOTAyQzE0MzI3RDRGMDA2ODU4NDkg
LyogSlNNdXRhdGlvbk9ic2VydmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEM2RjA5MDI0MTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uT2Jz
ZXJ2ZXIuY3BwICovOyB9OworCQlDNkYwOTAyRDE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlv
bk9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDNkYwOTAyNTE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyLmggKi87IH07
CisJCUM2RjA5MTdGMTQzQTJCQjkwMDY4NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDkx
N0UxNDNBMkJCOTAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgKi87IH07
CiAJCUM2RjA5MTg1MTQzQTZDM0IwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2tDdXN0b20u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDkx
ODQxNDNBNkMzQjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAgKi87IH07
CiAJCUM2RjQxMDQ3MTMwQzZFODkwMDM5M0RFNCAvKiBFbnRyeUJhc2UuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGNDEwNDYxMzBDNkU4OTAwMzkz
REU0IC8qIEVudHJ5QmFzZS5jcHAgKi87IH07CiAJCUNBM0JGNjdDMTBEOTlCQUUwMEU2Q0U1MyAv
KiBTY3JvbGxBbmltYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDQTNCRjY3QjEwRDk5QkFFMDBFNkNFNTMgLyogU2Nyb2xsQW5pbWF0b3IuY3Bw
ICovOyB9OwpAQCAtMTI5ODUsMTQgKzEyOTg1LDE0IEBACiAJCUM2RjA4RkM4MTQzMTAwMEQwMDY4
NTg0OSAvKiBKU011dGF0aW9uUmVjb3JkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTTXV0YXRpb25SZWNvcmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzZG
MDkwMDExNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTXV0YXRpb25DYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDNkYwOTAwMjE0MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25DYWxsYmFj
ay5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTXV0YXRpb25DYWxsYmFjay5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUM2RjA5MDA1MTQzMjdCNjEwMDY4NTg0OSAvKiBXZWJL
aXRNdXRhdGlvbk9ic2VydmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlDNkYwOTAwNjE0MzI3QjYxMDA2ODU4NDkgLyogV2ViS2l0TXV0YXRpb25PYnNlcnZlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXRNdXRhdGlvbk9ic2VydmVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUM2RjA5MDA3MTQzMjdCNjEwMDY4NTg0
OSAvKiBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QzZGMDkwMDUxNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uT2JzZXJ2ZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTXV0YXRpb25PYnNlcnZlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM2RjA5MDA2MTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRh
dGlvbk9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE11dGF0aW9u
T2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzZGMDkwMDcxNDMyN0I2
MTAwNjg1ODQ5IC8qIE11dGF0aW9uT2JzZXJ2ZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IE11dGF0aW9uT2JzZXJ2ZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNkYw
OTAyMDE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTXV0YXRpb25DYWxsYmFjay5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM2RjA5MDIxMTQzMjdENEYwMDY4NTg0OSAvKiBKU011
dGF0aW9uQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNdXRh
dGlvbkNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUM2RjA5MDI0MTQz
MjdENEYwMDY4NTg0OSAvKiBKU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQzZGMDkwMjUxNDMyN0Q0RjAwNjg1ODQ5IC8q
IEpTV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJQzZGMDkxN0UxNDNBMkJCOTAwNjg1ODQ5IC8qIEpTV2ViS2l0TXV0YXRpb25PYnNlcnZl
ckN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYktp
dE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlDNkYwOTAyNDE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTXV0YXRpb25PYnNlcnZlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM2RjA5MDI1MTQzMjdENEYwMDY4NTg0OSAv
KiBKU011dGF0aW9uT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNNdXRhdGlvbk9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM2RjA5
MTdFMTQzQTJCQjkwMDY4NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9t
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzZGMDkxODQxNDNBNkMzQjAwNjg1
ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDNkY0MTA0NjEzMEM2RTg5MDAzOTNERTQgLyogRW50cnlCYXNl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEVudHJ5QmFzZS5jcHA7
IHBhdGggPSBNb2R1bGVzL2ZpbGVzeXN0ZW0vRW50cnlCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0EzQkY2N0IxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9y
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9sbEFuaW1hdG9y
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NjgyLDYgKzE4NjgyLDggQEAK
IAkJCQlGRTgwREE2MjBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9wb3NpdGlvbi5oICovLAogCQkJ
CUM2RjA5MDIwMTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2suY3BwICovLAog
CQkJCUM2RjA5MDIxMTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2suaCAqLywK
KwkJCQlDNkYwOTAyNDE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyLmNwcCAq
LywKKwkJCQlDNkYwOTAyNTE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyLmgg
Ki8sCiAJCQkJQzZGMDhGQzcxNDMxMDAwRDAwNjg1ODQ5IC8qIEpTTXV0YXRpb25SZWNvcmQuY3Bw
ICovLAogCQkJCUM2RjA4RkM4MTQzMTAwMEQwMDY4NTg0OSAvKiBKU011dGF0aW9uUmVjb3JkLmgg
Ki8sCiAJCQkJQkNEOUMyQkMwQzE3QjY5RTAwNUM5MEEyIC8qIEpTTmFtZWROb2RlTWFwLmNwcCAq
LywKQEAgLTE4NzE0LDggKzE4NzE2LDYgQEAKIAkJCQk3NTQxNUQ1NDEyOUFCMkQyMDAzQUQ2Njkg
LyogSlNTcGVlY2hJbnB1dFJlc3VsdExpc3QuaCAqLywKIAkJCQk2NURGMzFFRjA5RDFDQzYwMDAw
QkUzMjUgLyogSlNUZXh0LmNwcCAqLywKIAkJCQk2NURGMzFGMDA5RDFDQzYwMDAwQkUzMjUgLyog
SlNUZXh0LmggKi8sCi0JCQkJQzZGMDkwMjQxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTV2ViS2l0TXV0
YXRpb25PYnNlcnZlci5jcHAgKi8sCi0JCQkJQzZGMDkwMjUxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpT
V2ViS2l0TXV0YXRpb25PYnNlcnZlci5oICovLAogCQkJCUQ3NjEzQUMyMTQ3NTNFNTYwMERCODYw
NiAvKiBKU1dlYktpdE5hbWVkRmxvdy5jcHAgKi8sCiAJCQkJRDc2MTNBQzMxNDc1M0U1NjAwREI4
NjA2IC8qIEpTV2ViS2l0TmFtZWRGbG93LmggKi8sCiAJCQkpOwpAQCAtMjAxMTMsNiArMjAxMTMs
NyBAQAogCQkJCUUxQURFRDQ2MEU3NkI4REQwMDRBMUE1RSAvKiBKU01lc3NhZ2VQb3J0Q3VzdG9t
LmNwcCAqLywKIAkJCQk0MUY1ODRDNjEwNDY1MkNCMDA5Q0FBNjQgLyogSlNNZXNzYWdlUG9ydEN1
c3RvbS5oICovLAogCQkJCUM2RjA5MTg0MTQzQTZDM0IwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2Fs
bGJhY2tDdXN0b20uY3BwICovLAorCQkJCUM2RjA5MTdFMTQzQTJCQjkwMDY4NTg0OSAvKiBKU011
dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwICovLAogCQkJCUJDRDlDMjVGMEMxN0FBNjcwMDVDOTBB
MiAvKiBKU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAgKi8sCiAJCQkJQkNEOUMyNjAwQzE3QUE2NzAw
NUM5MEEyIC8qIEpTTm9kZUN1c3RvbS5jcHAgKi8sCiAJCQkJQkM5NDM5QzIxMTZDRjQ5NDAwNDhD
NzUwIC8qIEpTTm9kZUN1c3RvbS5oICovLApAQCAtMjAxNTIsNyArMjAxNTMsNiBAQAogCQkJCTMx
OTQ2MjMxMTMwMjJGNjUwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20uY3Bw
ICovLAogCQkJCUUxQUQxNEM0MTI5NzM1NDkwMEFDQTk4OSAvKiBKU1dlYktpdENTU0tleWZyYW1l
UnVsZUN1c3RvbS5jcHAgKi8sCiAJCQkJRTFBRDE0QjQxMjk3MzRDQTAwQUNBOTg5IC8qIEpTV2Vi
S2l0Q1NTS2V5ZnJhbWVzUnVsZUN1c3RvbS5jcHAgKi8sCi0JCQkJQzZGMDkxN0UxNDNBMkJCOTAw
Njg1ODQ5IC8qIEpTV2ViS2l0TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgKi8sCiAJCQkJQkMy
NzVCNzgxMUM1RDFDMzAwQzkyMDZDIC8qIEpTV2ViS2l0UG9pbnRDdXN0b20uY3BwICovLAogCQkJ
CTUxOEEzNEM2MTAyNkM4QzkwMDFCNjg5NiAvKiBKU1dlYlNvY2tldEN1c3RvbS5jcHAgKi8sCiAJ
CQkJRTE4MjU4QUIwRUYzQ0Q3MDAwOTMzMjQyIC8qIEpTV29ya2VyQ29udGV4dEN1c3RvbS5jcHAg
Ki8sCkBAIC0yMTQ1Miw2ICsyMTQ1Miw5IEBACiAJCQkJRDZFNTI4QTIxNDlBOTI2RDAwRUZFMUYz
IC8qIE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmggKi8sCiAJCQkJRDZFMjc2QUQxNDYz
NzQ1NTAwMUQyODBBIC8qIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwICovLAogCQkJ
CUQ2RTI3NkFFMTQ2Mzc0NTUwMDFEMjgwQSAvKiBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9u
LmggKi8sCisJCQkJQzZGMDkwMDUxNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uT2JzZXJ2ZXIu
Y3BwICovLAorCQkJCUM2RjA5MDA2MTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbk9ic2VydmVy
LmggKi8sCisJCQkJQzZGMDkwMDcxNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uT2JzZXJ2ZXIu
aWRsICovLAogCQkJCUM2RjA4RkI5MTQzMEZFOEYwMDY4NTg0OSAvKiBNdXRhdGlvblJlY29yZC5j
cHAgKi8sCiAJCQkJQzZGMDhGQkExNDMwRkU4RjAwNjg1ODQ5IC8qIE11dGF0aW9uUmVjb3JkLmgg
Ki8sCiAJCQkJQzZGMDhGQkIxNDMwRkU4RjAwNjg1ODQ5IC8qIE11dGF0aW9uUmVjb3JkLmlkbCAq
LywKQEAgLTIxNTg2LDkgKzIxNTg5LDYgQEAKIAkJCQkzMUMwRkYxQjBFNENFQjZFMDA3RDZGRTUg
LyogV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwICovLAogCQkJCTMxQzBGRjFDMEU0Q0VCNkUwMDdE
NkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5oICovLAogCQkJCTMxQzBGRjFEMEU0Q0VCNkUw
MDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5pZGwgKi8sCi0JCQkJQzZGMDkwMDUxNDMy
N0I2MTAwNjg1ODQ5IC8qIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIuY3BwICovLAotCQkJCUM2RjA5
MDA2MTQzMjdCNjEwMDY4NTg0OSAvKiBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmggKi8sCi0JCQkJ
QzZGMDkwMDcxNDMyN0I2MTAwNjg1ODQ5IC8qIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaWRsICov
LAogCQkJCUQ3NjEzQTRFMTQ3NEYxM0YwMERCODYwNiAvKiBXZWJLaXROYW1lZEZsb3cuY3BwICov
LAogCQkJCUQ3NjEzQTREMTQ3NEYxM0YwMERCODYwNiAvKiBXZWJLaXROYW1lZEZsb3cuaCAqLywK
IAkJCQlENzYxM0E0QTE0NzRFRTk1MDBEQjg2MDYgLyogV2ViS2l0TmFtZWRGbG93LmlkbCAqLywK
QEAgLTIzNzAyLDYgKzIzNzAyLDcgQEAKIAkJCQlBODY2MjlEMTA5REEyQjQ4MDA5NjMzQTUgLyog
SlNNb3VzZUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlDNkYwOTAyOTE0MzI3RDRGMDA2ODU4
NDkgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NURGMzFGQzA5
RDFDQzYwMDAwQkUzMjUgLyogSlNNdXRhdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlD
NkYwOTAyRDE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDNkYwOEZDQTE0MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRhdGlvblJlY29yZC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkNEOUMyQzEwQzE3QjY5RTAwNUM5MEEyIC8qIEpTTmFtZWRO
b2RlTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOUQyNDdGODBENzU3RTM0MDBGREY5NTkgLyog
SlNOYXZpZ2F0b3IuaCBpbiBIZWFkZXJzICovLApAQCAtMjM5NTYsNyArMjM5NTcsNiBAQAogCQkJ
CTQ5ODM5MTQwMEYxRTc2NzUwMEMyMzc4MiAvKiBKU1dlYktpdENTU01hdHJpeC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOEFEMEE1OTUxNEM4ODMzNjAwMEQ4M0M1IC8qIEpTV2ViS2l0Q1NTUmVnaW9u
UnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2MTFFNUIwRTFDNERFMDAwRjZBNTc5IC8qIEpT
V2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCBpbiBIZWFkZXJzICovLAotCQkJCUM2RjA5MDJEMTQz
MjdENEYwMDY4NTg0OSAvKiBKU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQ5NEJENzlFMEY1NUM5NEMwMDc0NzgyOCAvKiBKU1dlYktpdFBvaW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkzMUMwRkY0MDBFNENFRkFDMDA3RDZGRTUgLyogSlNXZWJLaXRUcmFuc2l0
aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVEQTVFMEZEMTAyQjk1MzgwMDA4OENGOSAv
KiBKU1dlYlNvY2tldC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDA4OSw2ICsyNDA4OSw3IEBACiAJ
CQkJRkRCMTcwMDYxNEEyQkFCMjAwQTJCNUQ5IC8qIE11bHRpQ2hhbm5lbFJlc2FtcGxlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQzZGMDkwMEExNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uQ2Fs
bGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTg1MDMxQjRBMEE0NEVGQzcwMEY5OTJFMCAvKiBN
dXRhdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlDNkYwOTAwRjE0MzI3QjYxMDA2ODU4
NDkgLyogTXV0YXRpb25PYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDZFNTI4QTQxNDlB
OTI2RDAwRUZFMUYzIC8qIE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlENkUyNzZCMDE0NjM3NDU1MDAxRDI4MEEgLyogTXV0YXRpb25PYnNlcnZlclJl
Z2lzdHJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzZGMDhGQkQxNDMwRkU4RjAwNjg1ODQ5
IC8qIE11dGF0aW9uUmVjb3JkLmggaW4gSGVhZGVycyAqLywKQEAgLTI1MDQ2LDcgKzI1MDQ3LDYg
QEAKIAkJCQkyOUNENjFERTE0NkQwMjg5MDA2OEU4MkEgLyogV2ViS2l0Q1NTU2hhZGVyVmFsdWUu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDOUFERDIzMENDNDAzMjYwMDA5OEM0QyAvKiBXZWJLaXRD
U1NUcmFuc2Zvcm1WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODk4Nzg1NjYxMjJDQTA2NDAw
M0FBQkRBIC8qIFdlYktpdEZsYWdzLmggaW4gSGVhZGVycyAqLywKLQkJCQlDNkYwOTAwRjE0MzI3
QjYxMDA2ODU4NDkgLyogV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDk0QkQ3OTUwRjU1QzhFRTAwNzQ3ODI4IC8qIFdlYktpdFBvaW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQkzMUMwRkYyNTBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0VHJhbnNpdGlvbkV2ZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkNGMzMyRjBGMkI5QTI1MDA0QjY3OTUgLyogV2ViTGF5
ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjY5MjEsNiArMjY5MjEsOCBAQAogCQkJCUM2RjA5MDI4
MTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQzZGMDkxODUxNDNBNkMzQjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFja0N1c3Rv
bS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NURGMzFGQjA5RDFDQzYwMDAwQkUzMjUgLyogSlNN
dXRhdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUM2RjA5MDJDMTQzMjdENEYwMDY4
NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzZGMDkx
N0YxNDNBMkJCOTAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlDNkYwOEZDOTE0MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRhdGlvblJlY29y
ZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0Q5QzJDMDBDMTdCNjlFMDA1QzkwQTIgLyogSlNO
YW1lZE5vZGVNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNEOUMyNjMwQzE3QUE2NzAwNUM5
MEEyIC8qIEpTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjcyMTIs
OCArMjcyMTQsNiBAQAogCQkJCTQ5ODM5MTNGMEYxRTc2NzUwMEMyMzc4MiAvKiBKU1dlYktpdENT
U01hdHJpeC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4QUQwQTU5NDE0Qzg4MzM2MDAwRDgzQzUg
LyogSlNXZWJLaXRDU1NSZWdpb25SdWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxNjExRTVB
MEUxQzRERTAwMEY2QTU3OSAvKiBKU1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCBpbiBTb3Vy
Y2VzICovLAotCQkJCUM2RjA5MDJDMTQzMjdENEYwMDY4NTg0OSAvKiBKU1dlYktpdE11dGF0aW9u
T2JzZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQzZGMDkxN0YxNDNBMkJCOTAwNjg1ODQ5
IC8qIEpTV2ViS2l0TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlENzYxM0FDNDE0NzUzRTU2MDBEQjg2MDYgLyogSlNXZWJLaXROYW1lZEZsb3cuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDk0QkQ3OUQwRjU1Qzk0QzAwNzQ3ODI4IC8qIEpTV2ViS2l0UG9pbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyNzVCNzkxMUM1RDFDMzAwQzkyMDZDIC8qIEpTV2Vi
S2l0UG9pbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzM0Niw2ICsyNzM0Niw3IEBA
CiAJCQkJOTMzMDlERkIwOTlFNjQ5MjAwNTZFNTgxIC8qIE1vdmVTZWxlY3Rpb25Db21tYW5kLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUZEQjE3MDA1MTRBMkJBQjIwMEEyQjVEOSAvKiBNdWx0aUNo
YW5uZWxSZXNhbXBsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODUwMzFCNDkwQTQ0RUZDNzAw
Rjk5MkUwIC8qIE11dGF0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzZGMDkwMEUx
NDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uT2JzZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRDZFNTI4QTMxNDlBOTI2RDAwRUZFMUYzIC8qIE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdy
b3VwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUQ2RTI3NkFGMTQ2Mzc0NTUwMDFEMjgwQSAvKiBN
dXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM2RjA4
RkJDMTQzMEZFOEYwMDY4NTg0OSAvKiBNdXRhdGlvblJlY29yZC5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTI4MTEwLDcgKzI4MTExLDYgQEAKIAkJCQk1MDM4QkMwNzE0NzExQ0RCMDA5NUUwRDEgLyog
V2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM5QUREODAwQ0M0
MDkyMjAwMDk4QzRDIC8qIFdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTFBMTQxNEI1MTNBMEYwNTAwMDE5OTk2QyAvKiBXZWJLaXRGb250RmFtaWx5TmFtZXMu
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQzZGMDkwMEUxNDMyN0I2MTAwNjg1ODQ5IC8qIFdlYktp
dE11dGF0aW9uT2JzZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDc2MTNBNTAxNDc0RjEz
RjAwREI4NjA2IC8qIFdlYktpdE5hbWVkRmxvdy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUMw
RkYyNDBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGQ0YzMzJFMEYyQjlBMjUwMDRCNjc5NSAvKiBXZWJMYXllci5tbSBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5k
aW5nc0FsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NB
bGxJbk9uZS5jcHAKaW5kZXggNjZiNGE3ZjQzMTg0YjQwMTZkZTc3ZDRhMzgzNGI4OTRlOTZhYmMz
OS4uOGI5NGY2NDk3YWJhMDZhZWMxZDNmZTg4MDAwMzdlYWZlZTYwYzY1NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCkBAIC0xMjAs
NiArMTIwLDcgQEAKICNpbmNsdWRlICJKU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAiCiAjaW5jbHVk
ZSAiSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNNdXRhdGlvbkNhbGxiYWNr
Q3VzdG9tLmNwcCIKKyNpbmNsdWRlICJKU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIgogI2lu
Y2x1ZGUgIkpTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU05vZGVDdXN0b20u
Y3BwIgogI2luY2x1ZGUgIkpTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAiCkBAIC0xNTgsNyArMTU5
LDYgQEAKICNpbmNsdWRlICJKU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20uY3BwIgogI2luY2x1
ZGUgIkpTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU1dlYktp
dENTU0tleWZyYW1lc1J1bGVDdXN0b20uY3BwIgotI2luY2x1ZGUgIkpTV2ViS2l0TXV0YXRpb25P
YnNlcnZlckN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNXZWJLaXRQb2ludEN1c3RvbS5jcHAiCiAj
aW5jbHVkZSAiSlNXZWJTb2NrZXRDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTV29ya2VyQ29udGV4
dEJhc2UuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWlu
VGhyZWFkRXhlY1N0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWFpblRo
cmVhZEV4ZWNTdGF0ZS5jcHAKaW5kZXggMDBiYzE3MGQyYjM1MjM2ZTE4OWQyMzNlOWM5NDNiYjI0
OTg1YjlkNi4uNTU2Y2E1ZDhkMzEyMjUyODdmYzM4NTNlMjE4MGJhMDJkMDc2MDRkYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUu
Y3BwCkBAIC0yNSw3ICsyNSw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJK
U01haW5UaHJlYWRFeGVjU3RhdGUuaCIKLSNpbmNsdWRlICJXZWJLaXRNdXRhdGlvbk9ic2VydmVy
LmgiCisjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlci5oIgogCiAjaWYgRU5BQkxFKElOREVYRURf
REFUQUJBU0UpCiAjaW5jbHVkZSAiSURCUGVuZGluZ1RyYW5zYWN0aW9uTW9uaXRvci5oIgpAQCAt
NDIsNyArNDIsNyBAQCB2b2lkIEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6ZGlkTGVhdmVTY3JpcHRD
b250ZXh0KCkKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKLSAgICBX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpkZWxpdmVyQWxsTXV0YXRpb25zKCk7CisgICAgTXV0YXRp
b25PYnNlcnZlcjo6ZGVsaXZlckFsbE11dGF0aW9ucygpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2tDdXN0b20u
Y3BwCmluZGV4IDQzNzVjZTQxNzQ3MGQ1ZTg1N2FhNDUwZDczYzVjMDE0MzAyMDc5MTUuLjJkOGVl
Zjk1OTk5NGE0NGRjMjIzYWQ1ODI0Y2JiMmMzYmM3MjdjNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcApAQCAt
MzQsOCArMzQsOCBAQAogCiAjaW5jbHVkZSAiSlNNdXRhdGlvbkNhbGxiYWNrLmgiCiAKKyNpbmNs
dWRlICJKU011dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJKU011dGF0aW9uUmVjb3JkLmgi
Ci0jaW5jbHVkZSAiSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CiAKQEAgLTQz
LDcgKzQzLDcgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1ib29sIEpTTXV0YXRpb25DYWxsYmFjazo6aGFuZGxlRXZlbnQoTXV0YXRpb25SZWNvcmRBcnJh
eSogbXV0YXRpb25zLCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKiBvYnNlcnZlcikKK2Jvb2wgSlNN
dXRhdGlvbkNhbGxiYWNrOjpoYW5kbGVFdmVudChNdXRhdGlvblJlY29yZEFycmF5KiBtdXRhdGlv
bnMsIE11dGF0aW9uT2JzZXJ2ZXIqIG9ic2VydmVyKQogewogICAgIGlmICghY2FuSW52b2tlQ2Fs
bGJhY2soKSkKICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
YjU1NjBkODBjYzk3YzQzMDFjN2Y1MGFlMTQwODQxN2ZlMGNiMGIyCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNw
cApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1VVEFU
SU9OX09CU0VSVkVSUykKKworI2luY2x1ZGUgIkpTTXV0YXRpb25PYnNlcnZlci5oIgorCisjaW5j
bHVkZSAiSlNNdXRhdGlvbkNhbGxiYWNrLmgiCisjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlci5o
IgorI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KKwordXNpbmcgbmFtZXNwYWNlIEpTQzsKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTTXV0
YXRpb25PYnNlcnZlckNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU011dGF0aW9uT2JzZXJ2ZXIoRXhl
Y1N0YXRlKiBleGVjKQoreworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQorICAg
ICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vy
cm9yKGV4ZWMpKTsKKworICAgIEpTT2JqZWN0KiBvYmplY3QgPSBleGVjLT5hcmd1bWVudCgwKS5n
ZXRPYmplY3QoKTsKKyAgICBpZiAoIW9iamVjdCkgeworICAgICAgICBzZXRET01FeGNlcHRpb24o
ZXhlYywgVFlQRV9NSVNNQVRDSF9FUlIpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOworICAgIH0KKworICAgIEpTTXV0YXRpb25PYnNlcnZlckNvbnN0cnVj
dG9yKiBqc0NvbnN0cnVjdG9yID0ganNDYXN0PEpTTXV0YXRpb25PYnNlcnZlckNvbnN0cnVjdG9y
Kj4oZXhlYy0+Y2FsbGVlKCkpOworICAgIFJlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPiBjYWxsYmFj
ayA9IEpTTXV0YXRpb25DYWxsYmFjazo6Y3JlYXRlKG9iamVjdCwganNDb25zdHJ1Y3Rvci0+Z2xv
YmFsT2JqZWN0KCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNPYmplY3QodG9KUyhl
eGVjLCBqc0NvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKSwgTXV0YXRpb25PYnNlcnZlcjo6Y3Jl
YXRlKGNhbGxiYWNrLnJlbGVhc2UoKSkpKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3Vz
dG9tLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDFmZmFmYzM2MGYzZGE0OTAx
M2UzZTY3NWU5MDI4MWNkY2M0OWJiMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdE11dGF0aW9u
T2JzZXJ2ZXJDdXN0b20uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0
cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0g
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCi0KLSNpbmNsdWRl
ICJKU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIKLQotI2luY2x1ZGUgIkpTTXV0YXRpb25DYWxs
YmFjay5oIgotI2luY2x1ZGUgIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIKLSNpbmNsdWRlIDxy
dW50aW1lL0Vycm9yLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1dlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXJDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyKEV4ZWNT
dGF0ZSogZXhlYykKLXsKLSAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKLSAgICAg
ICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJv
cihleGVjKSk7Ci0KLSAgICBKU09iamVjdCogb2JqZWN0ID0gZXhlYy0+YXJndW1lbnQoMCkuZ2V0
T2JqZWN0KCk7Ci0gICAgaWYgKCFvYmplY3QpIHsKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4
ZWMsIFRZUEVfTUlTTUFUQ0hfRVJSKTsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKLSAgICB9Ci0KLSAgICBKU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXJDb25z
dHJ1Y3RvcioganNDb25zdHJ1Y3RvciA9IGpzQ2FzdDxKU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXJD
b25zdHJ1Y3Rvcio+KGV4ZWMtPmNhbGxlZSgpKTsKLSAgICBSZWZQdHI8TXV0YXRpb25DYWxsYmFj
az4gY2FsbGJhY2sgPSBKU011dGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZShvYmplY3QsIGpzQ29uc3Ry
dWN0b3ItPmdsb2JhbE9iamVjdCgpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2Jq
ZWN0KHRvSlMoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCksIFdlYktpdE11dGF0
aW9uT2JzZXJ2ZXI6OmNyZWF0ZShjYWxsYmFjay5yZWxlYXNlKCkpKSkpOwotfQotCi19IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhSZWN1cnNpb25TY29wZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFJlY3Vyc2lvblNjb3BlLmNwcAppbmRl
eCA5MmJlNzIwYjE0YzY5ZjA1ZjZlZWY2YTk2YzI2ODJjNGIzY2ZjZjY1Li5jNWNiYzljMTU1MTQw
Nzc4OTA1ZTQyMjgwZTFmZGIwMjQwMjAzMDg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOFJlY3Vyc2lvblNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOFJlY3Vyc2lvblNjb3BlLmNwcApAQCAtMzIsNyArMzIsNyBAQAogI2luY2x1ZGUg
IlY4UmVjdXJzaW9uU2NvcGUuaCIKIAogI2luY2x1ZGUgIklEQlBlbmRpbmdUcmFuc2FjdGlvbk1v
bml0b3IuaCIKLSNpbmNsdWRlICJXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSAi
TXV0YXRpb25PYnNlcnZlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ5LDcgKzQ5
LDcgQEAgdm9pZCBWOFJlY3Vyc2lvblNjb3BlOjpkaWRMZWF2ZVNjcmlwdENvbnRleHQoKQogCiAj
aWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKICAgICBpZiAobV9pc0RvY3VtZW50Q29udGV4
dCkKLSAgICAgICAgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6ZGVsaXZlckFsbE11dGF0aW9ucygp
OworICAgICAgICBNdXRhdGlvbk9ic2VydmVyOjpkZWxpdmVyQWxsTXV0YXRpb25zKCk7CiAjZW5k
aWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
TXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcAppbmRleCBiZmZiZTc0MDBmZGEyY2E1
OGQyZjliNzcwODZmNmM2YmJmYTA1MjdmLi43MTRmZGEyOWM5YTFiMjMwNTdmZDRhZmQyMWQyMTRm
ZTk1YTJhNWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcApAQCAtMzcsOSArMzcsOSBA
QAogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJWOEJpbmRp
bmcuaCIKICNpbmNsdWRlICJWOEN1c3RvbVZvaWRDYWxsYmFjay5oIgorI2luY2x1ZGUgIlY4TXV0
YXRpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgIlY4TXV0YXRpb25SZWNvcmQuaCIKICNpbmNsdWRl
ICJWOFByb3h5LmgiCi0jaW5jbHVkZSAiVjhXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5j
bHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTQ3LDcgKzQ3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1ib29sIFY4TXV0YXRpb25DYWxsYmFjazo6aGFuZGxlRXZlbnQoTXV0YXRpb25SZWNv
cmRBcnJheSogbXV0YXRpb25zLCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKiBvYnNlcnZlcikKK2Jv
b2wgVjhNdXRhdGlvbkNhbGxiYWNrOjpoYW5kbGVFdmVudChNdXRhdGlvblJlY29yZEFycmF5KiBt
dXRhdGlvbnMsIE11dGF0aW9uT2JzZXJ2ZXIqIG9ic2VydmVyKQogewogICAgIEFTU0VSVChtdXRh
dGlvbnMpOwogICAgIGlmICghbXV0YXRpb25zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hNDNkNmU5MWRkNmQzYjk4Njc5MTI3NDE2MWUzZDI3OGRiMzE2ODEyCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRp
b25PYnNlcnZlckN1c3RvbS5jcHAKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KworI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCisKKyNpbmNsdWRlICJWOE11dGF0aW9u
T2JzZXJ2ZXIuaCIKKworI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKKyNpbmNsdWRlICJW
OEJpbmRpbmcuaCIKKyNpbmNsdWRlICJWOEJpbmRpbmdNYWNyb3MuaCIKKyNpbmNsdWRlICJWOERP
TVdyYXBwZXIuaCIKKyNpbmNsdWRlICJWOE11dGF0aW9uQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJW
OFByb3h5LmgiCisjaW5jbHVkZSAiVjhVdGlsaXRpZXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhNdXRhdGlvbk9ic2VydmVyOjpjb25zdHJ1Y3Rv
ckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit7CisgICAgSU5DX1NUQVRTKCJE
T00uTXV0YXRpb25PYnNlcnZlci5Db25zdHJ1Y3RvciIpOworCisgICAgaWYgKCFhcmdzLklzQ29u
c3RydWN0Q2FsbCgpKQorICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoIkRP
TSBvYmplY3QgY29uc3RydWN0b3IgY2Fubm90IGJlIGNhbGxlZCBhcyBhIGZ1bmN0aW9uLiIsIGFy
Z3MuR2V0SXNvbGF0ZSgpKTsKKworICAgIGlmIChDb25zdHJ1Y3Rvck1vZGU6OmN1cnJlbnQoKSA9
PSBDb25zdHJ1Y3Rvck1vZGU6OldyYXBFeGlzdGluZ09iamVjdCkKKyAgICAgICAgcmV0dXJuIGFy
Z3MuSG9sZGVyKCk7CisKKyAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCisgICAgICAgIHJldHVy
biBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgp
KTsKKworICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGFyZyA9IGFyZ3NbMF07CisgICAgaWYgKCFh
cmctPklzT2JqZWN0KCkpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKFRZUEVfTUlTTUFUQ0hf
RVJSLCBhcmdzLkdldElzb2xhdGUoKSk7CisKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0ID0gZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIGlmICghY29udGV4dCkK
KyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93RXJyb3IoVjhQcm94eTo6UmVmZXJlbmNlRXJy
b3IsICJNdXRhdGlvbk9ic2VydmVyIGNvbnN0cnVjdG9yJ3MgYXNzb2NpYXRlZCBmcmFtZSB1bmF2
YWlsYWJsZSIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKworICAgIFJlZlB0cjxNdXRhdGlvbkNhbGxi
YWNrPiBjYWxsYmFjayA9IFY4TXV0YXRpb25DYWxsYmFjazo6Y3JlYXRlKGFyZywgY29udGV4dCk7
CisgICAgUmVmUHRyPE11dGF0aW9uT2JzZXJ2ZXI+IG9ic2VydmVyID0gTXV0YXRpb25PYnNlcnZl
cjo6Y3JlYXRlKGNhbGxiYWNrLnJlbGVhc2UoKSk7CisKKyAgICBWOERPTVdyYXBwZXI6OnNldERP
TVdyYXBwZXIoYXJncy5Ib2xkZXIoKSwgJmluZm8sIG9ic2VydmVyLmdldCgpKTsKKyAgICBWOERP
TVdyYXBwZXI6OnNldEpTV3JhcHBlckZvckRPTU9iamVjdChvYnNlcnZlci5yZWxlYXNlKCksIHY4
OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+OjpOZXcoYXJncy5Ib2xkZXIoKSkpOworICAgIHJldHVy
biBhcmdzLkhvbGRlcigpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRNdXRhdGlvbk9ic2VydmVy
Q3VzdG9tLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzY2Nzg1NGIyOTcyYjUy
ZThmOGVmOWFiMGM2ZDZiZGI1MzNlNzk0Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJL
aXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDc4ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0g
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQot
Ci0jaW5jbHVkZSAiVjhXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCi0KLSNpbmNsdWRlICJWOEJp
bmRpbmcuaCIKLSNpbmNsdWRlICJWOEJpbmRpbmdNYWNyb3MuaCIKLSNpbmNsdWRlICJWOERPTVdy
YXBwZXIuaCIKLSNpbmNsdWRlICJWOE11dGF0aW9uQ2FsbGJhY2suaCIKLSNpbmNsdWRlICJWOFBy
b3h5LmgiCi0jaW5jbHVkZSAiVjhVdGlsaXRpZXMuaCIKLSNpbmNsdWRlICJXZWJLaXRNdXRhdGlv
bk9ic2VydmVyLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IFY4V2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2
ODo6QXJndW1lbnRzJiBhcmdzKQotewotICAgIElOQ19TVEFUUygiRE9NLldlYktpdE11dGF0aW9u
T2JzZXJ2ZXIuQ29uc3RydWN0b3IiKTsKLQotICAgIGlmICghYXJncy5Jc0NvbnN0cnVjdENhbGwo
KSkKLSAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93VHlwZUVycm9yKCJET00gb2JqZWN0IGNv
bnN0cnVjdG9yIGNhbm5vdCBiZSBjYWxsZWQgYXMgYSBmdW5jdGlvbi4iLCBhcmdzLkdldElzb2xh
dGUoKSk7Ci0KLSAgICBpZiAoQ29uc3RydWN0b3JNb2RlOjpjdXJyZW50KCkgPT0gQ29uc3RydWN0
b3JNb2RlOjpXcmFwRXhpc3RpbmdPYmplY3QpCi0gICAgICAgIHJldHVybiBhcmdzLkhvbGRlcigp
OwotCi0gICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQotICAgICAgICByZXR1cm4gVjhQcm94eTo6
dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7Ci0KLSAgICB2
ODo6TG9jYWw8djg6OlZhbHVlPiBhcmcgPSBhcmdzWzBdOwotICAgIGlmICghYXJnLT5Jc09iamVj
dCgpKQotICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihUWVBFX01JU01BVENIX0VSUiwgYXJncy5H
ZXRJc29sYXRlKCkpOwotCi0gICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCA9IGdl
dFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKLSAgICBpZiAoIWNvbnRleHQpCi0gICAgICAgIHJl
dHVybiBWOFByb3h5Ojp0aHJvd0Vycm9yKFY4UHJveHk6OlJlZmVyZW5jZUVycm9yLCAiV2ViS2l0
TXV0YXRpb25PYnNlcnZlciBjb25zdHJ1Y3RvcidzIGFzc29jaWF0ZWQgZnJhbWUgdW5hdmFpbGFi
bGUiLCBhcmdzLkdldElzb2xhdGUoKSk7Ci0KLSAgICBSZWZQdHI8TXV0YXRpb25DYWxsYmFjaz4g
Y2FsbGJhY2sgPSBWOE11dGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZShhcmcsIGNvbnRleHQpOwotICAg
IFJlZlB0cjxXZWJLaXRNdXRhdGlvbk9ic2VydmVyPiBvYnNlcnZlciA9IFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXI6OmNyZWF0ZShjYWxsYmFjay5yZWxlYXNlKCkpOwotCi0gICAgVjhET01XcmFwcGVy
OjpzZXRET01XcmFwcGVyKGFyZ3MuSG9sZGVyKCksICZpbmZvLCBvYnNlcnZlci5nZXQoKSk7Ci0g
ICAgVjhET01XcmFwcGVyOjpzZXRKU1dyYXBwZXJGb3JET01PYmplY3Qob2JzZXJ2ZXIucmVsZWFz
ZSgpLCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Pjo6TmV3KGFyZ3MuSG9sZGVyKCkpKTsKLSAg
ICByZXR1cm4gYXJncy5Ib2xkZXIoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0j
ZW5kaWYgLy8gRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGFyYWN0
ZXJEYXRhLmNwcAppbmRleCA3NjE5OGZiZTVkODAxNmYxOTBlYzgzNzViMDA1ODkxM2NiM2Q3ZDc5
Li4zMzk0MDM4NTEzZGFlOTkxNzI0NTU5YjgxM2UzY2RkYmRjM2MzZjhjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0NoYXJhY3RlckRhdGEuY3BwCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSAiTm9kZVJl
bmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCiAjaW5jbHVkZSAiVGV4
dEJyZWFrSXRlcmF0b3IuaCIKLSNpbmNsdWRlICJXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCiAK
IHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9D
aGlsZExpc3RNdXRhdGlvblNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRMaXN0TXV0
YXRpb25TY29wZS5oCmluZGV4IDZkZDUyMzY0MGI2MWYwNmYzYTUzYmE1NzViNWNhZWQ5MjM3YzQw
NWYuLmJjZTI2NzUxYzBmNDg2MmQwYzRhNTM5MGZjYzVjM2ZhZWQ0YzUwMDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0NoaWxkTGlzdE11dGF0aW9uU2NvcGUuaApAQCAtMzQsOCArMzQsOCBAQAog
I2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgor
I2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJOb2RlLmgiCi0jaW5jbHVk
ZSAiV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAj
aW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgpAQCAt
NDYsNyArNDYsNyBAQCBjbGFzcyBDaGlsZExpc3RNdXRhdGlvblNjb3BlIHsKICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShDaGlsZExpc3RNdXRhdGlvblNjb3BlKTsKIHB1YmxpYzoKICAgICBDaGls
ZExpc3RNdXRhdGlvblNjb3BlKE5vZGUqIHRhcmdldCkKLSAgICAgICAgOiBtX3RhcmdldCh0YXJn
ZXQtPmRvY3VtZW50KCktPmhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXI6OkNoaWxkTGlzdCkgPyB0YXJnZXQgOiAwKQorICAgICAgICA6IG1fdGFyZ2V0KHRh
cmdldC0+ZG9jdW1lbnQoKS0+aGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNl
cnZlcjo6Q2hpbGRMaXN0KSA/IHRhcmdldCA6IDApCiAgICAgewogICAgICAgICBpZiAobV90YXJn
ZXQpCiAgICAgICAgICAgICBNdXRhdGlvbkFjY3VtdWxhdGlvblJvdXRlcjo6aW5zdGFuY2UoKS0+
aW5jcmVtZW50U2NvcGluZ0xldmVsKG1fdGFyZ2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9ET01BbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUu
Y3BwCmluZGV4IGQzZDQ5MDJkNGM4NmFkZDY1YjUxZjM0NGRhMmI5OTBiYmUzYWIzMGYuLjU5MmQ3
Mjk5MmFjNGYzNGYwYjNmOWIwYzAzM2IyOGFiYTJlODgzNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFs
bEluT25lLmNwcApAQCAtOTIsNiArOTIsNyBAQAogI2luY2x1ZGUgIk1vdXNlRXZlbnQuY3BwIgog
I2luY2x1ZGUgIk1vdXNlUmVsYXRlZEV2ZW50LmNwcCIKICNpbmNsdWRlICJNdXRhdGlvbkV2ZW50
LmNwcCIKKyNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyLmNwcCIKICNpbmNsdWRlICJNdXRhdGlv
bk9ic2VydmVySW50ZXJlc3RHcm91cC5jcHAiCiAjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlclJl
Z2lzdHJhdGlvbi5jcHAiCiAjaW5jbHVkZSAiTXV0YXRpb25SZWNvcmQuY3BwIgpAQCAtMTQyLDcg
KzE0Myw2IEBACiAjaW5jbHVkZSAiVXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3IuY3BwIgogI2lu
Y2x1ZGUgIlZpZXdwb3J0QXJndW1lbnRzLmNwcCIKICNpbmNsdWRlICJXZWJLaXRBbmltYXRpb25F
dmVudC5jcHAiCi0jaW5jbHVkZSAiV2ViS2l0TXV0YXRpb25PYnNlcnZlci5jcHAiCiAjaW5jbHVk
ZSAiV2ViS2l0TmFtZWRGbG93LmNwcCIKICNpbmNsdWRlICJXZWJLaXRUcmFuc2l0aW9uRXZlbnQu
Y3BwIgogI2luY2x1ZGUgIldoZWVsRXZlbnQuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA2
ODg4NWZiMzNmNDk1MjE0YzMxYTM3MDMzOGZlYzgwNGI0YjExY2FkLi5kZWNmNzVmZDE5ZjcyMDIw
NjU3MTBhZWFiMWUzZmYyYTk4ZjVlMDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMzgsNiAr
MzgsNyBAQAogI2luY2x1ZGUgIkluc3BlY3RvckNvdW50ZXJzLmgiCiAjaW5jbHVkZSAiSW50UmVj
dC5oIgogI2luY2x1ZGUgIkxheW91dFR5cGVzLmgiCisjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZl
ci5oIgogI2luY2x1ZGUgIlBhZ2VWaXNpYmlsaXR5U3RhdGUuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bVNjcmVlbi5oIgogI2luY2x1ZGUgIlF1YWxpZmllZE5hbWUuaCIKQEAgLTQ3LDcgKzQ4LDYgQEAK
ICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgIlRyZWVTY29wZS5oIgogI2luY2x1ZGUgIlZp
ZXdwb3J0QXJndW1lbnRzLmgiCi0jaW5jbHVkZSAiV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oIgog
I2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9GaXhlZEFycmF5Lmg+CiAjaW5j
bHVkZSA8d3RmL093blB0ci5oPgpAQCAtNzcxLDcgKzc3MSw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IGFkZExpc3RlbmVyVHlwZUlmTmVlZGVkKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlKTsK
IAogI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCi0gICAgYm9vbCBoYXNNdXRhdGlvbk9i
c2VydmVyc09mVHlwZShXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvblR5cGUgdHlwZSkg
Y29uc3QKKyAgICBib29sIGhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKE11dGF0aW9uT2JzZXJ2
ZXI6Ok11dGF0aW9uVHlwZSB0eXBlKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fbXV0
YXRpb25PYnNlcnZlclR5cGVzICYgdHlwZTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5k
ZXggOWRhMTU2YjRmMWEwYTkwZWYyOGU3MjgyZmVkYTYxNjFhMzllZmJiMy4uMjQzYTZjMWY0MTY2
ZjIzMmM1OTIwYTU2OTRkYzI0MzQ1NmVhZGQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAt
NjgsNyArNjgsNiBAQAogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3Iu
aCIKICNpbmNsdWRlICJWb2lkQ2FsbGJhY2suaCIKLSNpbmNsdWRlICJXZWJLaXRNdXRhdGlvbk9i
c2VydmVyLmgiCiAjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9uTGlzdC5oIgogI2luY2x1ZGUgIlhN
TE5TTmFtZXMuaCIKICNpbmNsdWRlICJYTUxOYW1lcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uQ2FsbGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlv
bkNhbGxiYWNrLmgKaW5kZXggODA3MzljODhhZDc4YjEzMTU5OTJkOGY2NjZkOTBiMjQwYWU3ZWFk
OS4uMTE5MTk3YWJlMzRiMWRhOTA0ZDQyMmJiZjhlMGYxZjc3ZTc3NmRmMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uQ2FsbGJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTXV0YXRpb25DYWxsYmFjay5oCkBAIC00MCw3ICs0MCw3IEBACiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIE11dGF0aW9uUmVjb3JkOwotY2xhc3MgV2ViS2l0TXV0YXRpb25PYnNl
cnZlcjsKK2NsYXNzIE11dGF0aW9uT2JzZXJ2ZXI7CiAKIHR5cGVkZWYgVmVjdG9yPFJlZlB0cjxN
dXRhdGlvblJlY29yZD4gPiBNdXRhdGlvblJlY29yZEFycmF5OwogCkBAIC00OCw3ICs0OCw3IEBA
IGNsYXNzIE11dGF0aW9uQ2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxNdXRhdGlvbkNhbGxi
YWNrPiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+TXV0YXRpb25DYWxsYmFjaygpIHsgfQogCi0g
ICAgdmlydHVhbCBib29sIGhhbmRsZUV2ZW50KE11dGF0aW9uUmVjb3JkQXJyYXkqLCBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyKikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChNdXRh
dGlvblJlY29yZEFycmF5KiwgTXV0YXRpb25PYnNlcnZlciopID0gMDsKIH07CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbkNhbGxiYWNrLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9NdXRhdGlvbkNhbGxiYWNrLmlkbAppbmRleCAxNjM4MTcxNGM4MDllYTdjYTQ3
ODRjNmIzYjAzMTFiODk3OWY4MTc1Li4yYWVjZDliZTllNDFkZTRmMzJlNDZmOWQwNWIwZWJmMmNl
NDg1MGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25DYWxsYmFjay5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uQ2FsbGJhY2suaWRsCkBAIC0zMyw2
ICszMyw2IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgQ29uZGl0aW9uYWw9TVVUQVRJT05fT0JT
RVJWRVJTLAogICAgICAgICBDYWxsYmFjawogICAgIF0gTXV0YXRpb25DYWxsYmFjayB7Ci0gICAg
ICAgIFtDdXN0b21dIGJvb2xlYW4gaGFuZGxlRXZlbnQoaW4gTXV0YXRpb25SZWNvcmRBcnJheSBt
dXRhdGlvbnMsIGluIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIgb2JzZXJ2ZXIpOworICAgICAgICBb
Q3VzdG9tXSBib29sZWFuIGhhbmRsZUV2ZW50KGluIE11dGF0aW9uUmVjb3JkQXJyYXkgbXV0YXRp
b25zLCBpbiBNdXRhdGlvbk9ic2VydmVyIG9ic2VydmVyKTsKICAgICB9OwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUxOWE2MGUwNTU0MzQ4N2Mw
NGZiN2MzMDAyZjVkYzdkMTdlZDE2YmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAKQEAgLTAsMCArMSwyMjEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisKKyNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQorCisjaW5jbHVkZSAiTXV0
YXRpb25PYnNlcnZlci5oIgorCisjaW5jbHVkZSAiRGljdGlvbmFyeS5oIgorI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIk11dGF0aW9u
Q2FsbGJhY2suaCIKKyNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmgiCisj
aW5jbHVkZSAiTXV0YXRpb25SZWNvcmQuaCIKKyNpbmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSA8
YWxnb3JpdGhtPgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL01haW5U
aHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kworc3RhdGljIHVuc2lnbmVkIHNfb2JzZXJ2ZXJQcmlvcml0eSA9IDA7CisKK3N0cnVjdCBNdXRh
dGlvbk9ic2VydmVyOjpPYnNlcnZlckxlc3NUaGFuIHsKKyAgICBib29sIG9wZXJhdG9yKCkoY29u
c3QgUmVmUHRyPE11dGF0aW9uT2JzZXJ2ZXI+JiBsaHMsIGNvbnN0IFJlZlB0cjxNdXRhdGlvbk9i
c2VydmVyPiYgcmhzKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGxocy0+bV9wcmlvcml0eSA8IHJo
cy0+bV9wcmlvcml0eTsKKyAgICB9Cit9OworCitQYXNzUmVmUHRyPE11dGF0aW9uT2JzZXJ2ZXI+
IE11dGF0aW9uT2JzZXJ2ZXI6OmNyZWF0ZShQYXNzUmVmUHRyPE11dGF0aW9uQ2FsbGJhY2s+IGNh
bGxiYWNrKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBNdXRhdGlvbk9ic2VydmVyKGNhbGxiYWNrKSk7Cit9CisKK011dGF0aW9uT2JzZXJ2
ZXI6Ok11dGF0aW9uT2JzZXJ2ZXIoUGFzc1JlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPiBjYWxsYmFj
aykKKyAgICA6IG1fY2FsbGJhY2soY2FsbGJhY2spCisgICAgLCBtX3ByaW9yaXR5KHNfb2JzZXJ2
ZXJQcmlvcml0eSsrKQoreworfQorCitNdXRhdGlvbk9ic2VydmVyOjp+TXV0YXRpb25PYnNlcnZl
cigpCit7CisgICAgQVNTRVJUKG1fcmVnaXN0cmF0aW9ucy5pc0VtcHR5KCkpOworfQorCitib29s
IE11dGF0aW9uT2JzZXJ2ZXI6OnZhbGlkYXRlT3B0aW9ucyhNdXRhdGlvbk9ic2VydmVyT3B0aW9u
cyBvcHRpb25zKQoreworICAgIHJldHVybiAob3B0aW9ucyAmIChBdHRyaWJ1dGVzIHwgQ2hhcmFj
dGVyRGF0YSB8IENoaWxkTGlzdCkpCisgICAgICAgICYmICgob3B0aW9ucyAmIEF0dHJpYnV0ZXMp
IHx8ICEob3B0aW9ucyAmIEF0dHJpYnV0ZU9sZFZhbHVlKSkKKyAgICAgICAgJiYgKChvcHRpb25z
ICYgQXR0cmlidXRlcykgfHwgIShvcHRpb25zICYgQXR0cmlidXRlRmlsdGVyKSkKKyAgICAgICAg
JiYgKChvcHRpb25zICYgQ2hhcmFjdGVyRGF0YSkgfHwgIShvcHRpb25zICYgQ2hhcmFjdGVyRGF0
YU9sZFZhbHVlKSk7Cit9CisKK3ZvaWQgTXV0YXRpb25PYnNlcnZlcjo6b2JzZXJ2ZShOb2RlKiBu
b2RlLCBjb25zdCBEaWN0aW9uYXJ5JiBvcHRpb25zRGljdGlvbmFyeSwgRXhjZXB0aW9uQ29kZSYg
ZWMpCit7CisgICAgaWYgKCFub2RlKSB7CisgICAgICAgIGVjID0gTk9UX0ZPVU5EX0VSUjsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChvcHRpb25zRGljdGlvbmFyeS5pc1VuZGVm
aW5lZE9yTnVsbCgpKSB7CisgICAgICAgIGVjID0gVFlQRV9NSVNNQVRDSF9FUlI7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3Qgc3RydWN0IHsKKyAgICAgICAgY29u
c3QgY2hhciogbmFtZTsKKyAgICAgICAgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgdmFsdWU7Cisg
ICAgfSBib29sZWFuT3B0aW9uc1tdID0geworICAgICAgICB7ICJjaGlsZExpc3QiLCBDaGlsZExp
c3QgfSwKKyAgICAgICAgeyAiYXR0cmlidXRlcyIsIEF0dHJpYnV0ZXMgfSwKKyAgICAgICAgeyAi
Y2hhcmFjdGVyRGF0YSIsIENoYXJhY3RlckRhdGEgfSwKKyAgICAgICAgeyAic3VidHJlZSIsIFN1
YnRyZWUgfSwKKyAgICAgICAgeyAiYXR0cmlidXRlT2xkVmFsdWUiLCBBdHRyaWJ1dGVPbGRWYWx1
ZSB9LAorICAgICAgICB7ICJjaGFyYWN0ZXJEYXRhT2xkVmFsdWUiLCBDaGFyYWN0ZXJEYXRhT2xk
VmFsdWUgfQorICAgIH07CisgICAgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgb3B0aW9ucyA9IDA7
CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemVvZihib29sZWFuT3B0aW9ucykgLyBz
aXplb2YoYm9vbGVhbk9wdGlvbnNbMF0pOyArK2kpIHsKKyAgICAgICAgYm9vbCB2YWx1ZSA9IGZh
bHNlOworICAgICAgICBpZiAob3B0aW9uc0RpY3Rpb25hcnkuZ2V0KGJvb2xlYW5PcHRpb25zW2ld
Lm5hbWUsIHZhbHVlKSAmJiB2YWx1ZSkKKyAgICAgICAgICAgIG9wdGlvbnMgfD0gYm9vbGVhbk9w
dGlvbnNbaV0udmFsdWU7CisgICAgfQorCisgICAgSGFzaFNldDxBdG9taWNTdHJpbmc+IGF0dHJp
YnV0ZUZpbHRlcjsKKyAgICBpZiAob3B0aW9uc0RpY3Rpb25hcnkuZ2V0KCJhdHRyaWJ1dGVGaWx0
ZXIiLCBhdHRyaWJ1dGVGaWx0ZXIpKQorICAgICAgICBvcHRpb25zIHw9IEF0dHJpYnV0ZUZpbHRl
cjsKKworICAgIGlmICghdmFsaWRhdGVPcHRpb25zKG9wdGlvbnMpKSB7CisgICAgICAgIGVjID0g
U1lOVEFYX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIE11dGF0aW9uT2JzZXJ2
ZXJSZWdpc3RyYXRpb24qIHJlZ2lzdHJhdGlvbiA9IG5vZGUtPnJlZ2lzdGVyTXV0YXRpb25PYnNl
cnZlcih0aGlzKTsKKyAgICByZWdpc3RyYXRpb24tPnJlc2V0T2JzZXJ2YXRpb24ob3B0aW9ucywg
YXR0cmlidXRlRmlsdGVyKTsKKworICAgIG5vZGUtPmRvY3VtZW50KCktPmFkZE11dGF0aW9uT2Jz
ZXJ2ZXJUeXBlcyhyZWdpc3RyYXRpb24tPm11dGF0aW9uVHlwZXMoKSk7Cit9CisKK1ZlY3RvcjxS
ZWZQdHI8TXV0YXRpb25SZWNvcmQ+ID4gTXV0YXRpb25PYnNlcnZlcjo6dGFrZVJlY29yZHMoKQor
eworICAgIFZlY3RvcjxSZWZQdHI8TXV0YXRpb25SZWNvcmQ+ID4gcmVjb3JkczsKKyAgICByZWNv
cmRzLnN3YXAobV9yZWNvcmRzKTsKKyAgICByZXR1cm4gcmVjb3JkczsKK30KKwordm9pZCBNdXRh
dGlvbk9ic2VydmVyOjpkaXNjb25uZWN0KCkKK3sKKyAgICBtX3JlY29yZHMuY2xlYXIoKTsKKyAg
ICBIYXNoU2V0PE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qPiByZWdpc3RyYXRpb25zKG1f
cmVnaXN0cmF0aW9ucyk7CisgICAgZm9yIChIYXNoU2V0PE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3Ry
YXRpb24qPjo6aXRlcmF0b3IgaXRlciA9IHJlZ2lzdHJhdGlvbnMuYmVnaW4oKTsgaXRlciAhPSBy
ZWdpc3RyYXRpb25zLmVuZCgpOyArK2l0ZXIpCisgICAgICAgICgqaXRlciktPnVucmVnaXN0ZXIo
KTsKK30KKwordm9pZCBNdXRhdGlvbk9ic2VydmVyOjpvYnNlcnZhdGlvblN0YXJ0ZWQoTXV0YXRp
b25PYnNlcnZlclJlZ2lzdHJhdGlvbiogcmVnaXN0cmF0aW9uKQoreworICAgIEFTU0VSVCghbV9y
ZWdpc3RyYXRpb25zLmNvbnRhaW5zKHJlZ2lzdHJhdGlvbikpOworICAgIG1fcmVnaXN0cmF0aW9u
cy5hZGQocmVnaXN0cmF0aW9uKTsKK30KKwordm9pZCBNdXRhdGlvbk9ic2VydmVyOjpvYnNlcnZh
dGlvbkVuZGVkKE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qIHJlZ2lzdHJhdGlvbikKK3sK
KyAgICBBU1NFUlQobV9yZWdpc3RyYXRpb25zLmNvbnRhaW5zKHJlZ2lzdHJhdGlvbikpOworICAg
IG1fcmVnaXN0cmF0aW9ucy5yZW1vdmUocmVnaXN0cmF0aW9uKTsKK30KKwordHlwZWRlZiBIYXNo
U2V0PFJlZlB0cjxNdXRhdGlvbk9ic2VydmVyPiA+IE11dGF0aW9uT2JzZXJ2ZXJTZXQ7CisKK3N0
YXRpYyBNdXRhdGlvbk9ic2VydmVyU2V0JiBhY3RpdmVNdXRhdGlvbk9ic2VydmVycygpCit7Cisg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChNdXRhdGlvbk9ic2VydmVyU2V0LCBhY3RpdmVPYnNlcnZl
cnMsICgpKTsKKyAgICByZXR1cm4gYWN0aXZlT2JzZXJ2ZXJzOworfQorCit2b2lkIE11dGF0aW9u
T2JzZXJ2ZXI6OmVucXVldWVNdXRhdGlvblJlY29yZChQYXNzUmVmUHRyPE11dGF0aW9uUmVjb3Jk
PiBtdXRhdGlvbikKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIG1fcmVjb3Jk
cy5hcHBlbmQobXV0YXRpb24pOworICAgIGFjdGl2ZU11dGF0aW9uT2JzZXJ2ZXJzKCkuYWRkKHRo
aXMpOworfQorCit2b2lkIE11dGF0aW9uT2JzZXJ2ZXI6OnNldEhhc1RyYW5zaWVudFJlZ2lzdHJh
dGlvbigpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBhY3RpdmVNdXRhdGlv
bk9ic2VydmVycygpLmFkZCh0aGlzKTsKK30KKwordm9pZCBNdXRhdGlvbk9ic2VydmVyOjpkZWxp
dmVyKCkKK3sKKyAgICAvLyBDYWxsaW5nIGNsZWFyVHJhbnNpZW50UmVnaXN0cmF0aW9ucygpIGNh
biBtb2RpZnkgbV9yZWdpc3RyYXRpb25zLCBzbyBpdCdzIG5lY2Vzc2FyeQorICAgIC8vIHRvIG1h
a2UgYSBjb3B5IG9mIHRoZSB0cmFuc2llbnQgcmVnaXN0cmF0aW9ucyBiZWZvcmUgb3BlcmF0aW5n
IG9uIHRoZW0uCisgICAgVmVjdG9yPE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qLCAxPiB0
cmFuc2llbnRSZWdpc3RyYXRpb25zOworICAgIGZvciAoSGFzaFNldDxNdXRhdGlvbk9ic2VydmVy
UmVnaXN0cmF0aW9uKj46Oml0ZXJhdG9yIGl0ZXIgPSBtX3JlZ2lzdHJhdGlvbnMuYmVnaW4oKTsg
aXRlciAhPSBtX3JlZ2lzdHJhdGlvbnMuZW5kKCk7ICsraXRlcikgeworICAgICAgICBpZiAoKCpp
dGVyKS0+aGFzVHJhbnNpZW50UmVnaXN0cmF0aW9ucygpKQorICAgICAgICAgICAgdHJhbnNpZW50
UmVnaXN0cmF0aW9ucy5hcHBlbmQoKml0ZXIpOworICAgIH0KKyAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHRyYW5zaWVudFJlZ2lzdHJhdGlvbnMuc2l6ZSgpOyArK2kpCisgICAgICAgIHRyYW5z
aWVudFJlZ2lzdHJhdGlvbnNbaV0tPmNsZWFyVHJhbnNpZW50UmVnaXN0cmF0aW9ucygpOworCisg
ICAgaWYgKG1fcmVjb3Jkcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIFZlY3Rv
cjxSZWZQdHI8TXV0YXRpb25SZWNvcmQ+ID4gcmVjb3JkczsKKyAgICByZWNvcmRzLnN3YXAobV9y
ZWNvcmRzKTsKKworICAgIG1fY2FsbGJhY2stPmhhbmRsZUV2ZW50KCZyZWNvcmRzLCB0aGlzKTsK
K30KKwordm9pZCBNdXRhdGlvbk9ic2VydmVyOjpkZWxpdmVyQWxsTXV0YXRpb25zKCkKK3sKKyAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHN0YXRpYyBib29sIGRlbGl2ZXJ5SW5Qcm9n
cmVzcyA9IGZhbHNlOworICAgIGlmIChkZWxpdmVyeUluUHJvZ3Jlc3MpCisgICAgICAgIHJldHVy
bjsKKyAgICBkZWxpdmVyeUluUHJvZ3Jlc3MgPSB0cnVlOworCisgICAgd2hpbGUgKCFhY3RpdmVN
dXRhdGlvbk9ic2VydmVycygpLmlzRW1wdHkoKSkgeworICAgICAgICBWZWN0b3I8UmVmUHRyPE11
dGF0aW9uT2JzZXJ2ZXI+ID4gb2JzZXJ2ZXJzOworICAgICAgICBjb3B5VG9WZWN0b3IoYWN0aXZl
TXV0YXRpb25PYnNlcnZlcnMoKSwgb2JzZXJ2ZXJzKTsKKyAgICAgICAgYWN0aXZlTXV0YXRpb25P
YnNlcnZlcnMoKS5jbGVhcigpOworICAgICAgICBzdGQ6OnNvcnQob2JzZXJ2ZXJzLmJlZ2luKCks
IG9ic2VydmVycy5lbmQoKSwgT2JzZXJ2ZXJMZXNzVGhhbigpKTsKKyAgICAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBvYnNlcnZlcnMuc2l6ZSgpOyArK2kpCisgICAgICAgICAgICBvYnNlcnZl
cnNbaV0tPmRlbGl2ZXIoKTsKKyAgICB9CisKKyAgICBkZWxpdmVyeUluUHJvZ3Jlc3MgPSBmYWxz
ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1VVEFU
SU9OX09CU0VSVkVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9i
c2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdmZDM3MjA2OTZkZmM1M2JmNTc1NDgzMzVjZmI1MWI0M2IxMjBiYmUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5oCkBAIC0wLDAgKzEs
MTA4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBNdXRhdGlvbk9ic2VydmVyX2gKKyNkZWZpbmUgTXV0YXRpb25PYnNlcnZl
cl9oCisKKyNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQorCisjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVm
UHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvQXRvbWljU3RyaW5nSGFzaC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERp
Y3Rpb25hcnk7CitjbGFzcyBNdXRhdGlvbkNhbGxiYWNrOworY2xhc3MgTXV0YXRpb25PYnNlcnZl
clJlZ2lzdHJhdGlvbjsKK2NsYXNzIE11dGF0aW9uUmVjb3JkOworY2xhc3MgTm9kZTsKKwordHlw
ZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKKwordHlwZWRlZiB1bnNpZ25lZCBjaGFyIE11dGF0aW9u
T2JzZXJ2ZXJPcHRpb25zOwordHlwZWRlZiB1bnNpZ25lZCBjaGFyIE11dGF0aW9uUmVjb3JkRGVs
aXZlcnlPcHRpb25zOworCitjbGFzcyBNdXRhdGlvbk9ic2VydmVyIDogcHVibGljIFJlZkNvdW50
ZWQ8TXV0YXRpb25PYnNlcnZlcj4geworcHVibGljOgorICAgIGVudW0gTXV0YXRpb25UeXBlIHsK
KyAgICAgICAgQ2hpbGRMaXN0ID0gMSA8PCAwLAorICAgICAgICBBdHRyaWJ1dGVzID0gMSA8PCAx
LAorICAgICAgICBDaGFyYWN0ZXJEYXRhID0gMSA8PCAyLAorCisgICAgICAgIEFsbE11dGF0aW9u
VHlwZXMgPSBDaGlsZExpc3QgfCBBdHRyaWJ1dGVzIHwgQ2hhcmFjdGVyRGF0YQorICAgIH07CisK
KyAgICBlbnVtIE9ic2VydmF0aW9uRmxhZ3MgIHsKKyAgICAgICAgU3VidHJlZSA9IDEgPDwgMywK
KyAgICAgICAgQXR0cmlidXRlRmlsdGVyID0gMSA8PCA0CisgICAgfTsKKworICAgIGVudW0gRGVs
aXZlcnlGbGFncyB7CisgICAgICAgIEF0dHJpYnV0ZU9sZFZhbHVlID0gMSA8PCA1LAorICAgICAg
ICBDaGFyYWN0ZXJEYXRhT2xkVmFsdWUgPSAxIDw8IDYsCisgICAgfTsKKworICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPE11dGF0aW9uT2JzZXJ2ZXI+IGNyZWF0ZShQYXNzUmVmUHRyPE11dGF0aW9uQ2Fs
bGJhY2s+KTsKKyAgICBzdGF0aWMgdm9pZCBkZWxpdmVyQWxsTXV0YXRpb25zKCk7CisKKyAgICB+
TXV0YXRpb25PYnNlcnZlcigpOworCisgICAgdm9pZCBvYnNlcnZlKE5vZGUqLCBjb25zdCBEaWN0
aW9uYXJ5JiwgRXhjZXB0aW9uQ29kZSYpOworICAgIFZlY3RvcjxSZWZQdHI8TXV0YXRpb25SZWNv
cmQ+ID4gdGFrZVJlY29yZHMoKTsKKyAgICB2b2lkIGRpc2Nvbm5lY3QoKTsKKyAgICB2b2lkIG9i
c2VydmF0aW9uU3RhcnRlZChNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKik7CisgICAgdm9p
ZCBvYnNlcnZhdGlvbkVuZGVkKE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qKTsKKyAgICB2
b2lkIGVucXVldWVNdXRhdGlvblJlY29yZChQYXNzUmVmUHRyPE11dGF0aW9uUmVjb3JkPik7Cisg
ICAgdm9pZCBzZXRIYXNUcmFuc2llbnRSZWdpc3RyYXRpb24oKTsKKworcHJpdmF0ZToKKyAgICBz
dHJ1Y3QgT2JzZXJ2ZXJMZXNzVGhhbjsKKworICAgIE11dGF0aW9uT2JzZXJ2ZXIoUGFzc1JlZlB0
cjxNdXRhdGlvbkNhbGxiYWNrPik7CisgICAgdm9pZCBkZWxpdmVyKCk7CisKKyAgICBzdGF0aWMg
Ym9vbCB2YWxpZGF0ZU9wdGlvbnMoTXV0YXRpb25PYnNlcnZlck9wdGlvbnMpOworCisgICAgUmVm
UHRyPE11dGF0aW9uQ2FsbGJhY2s+IG1fY2FsbGJhY2s7CisgICAgVmVjdG9yPFJlZlB0cjxNdXRh
dGlvblJlY29yZD4gPiBtX3JlY29yZHM7CisgICAgSGFzaFNldDxNdXRhdGlvbk9ic2VydmVyUmVn
aXN0cmF0aW9uKj4gbV9yZWdpc3RyYXRpb25zOworICAgIHVuc2lnbmVkIG1fcHJpb3JpdHk7Cit9
OworCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQorCisjZW5kaWYg
Ly8gTXV0YXRpb25PYnNlcnZlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0
YXRpb25PYnNlcnZlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5p
ZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGFlOTkyZTZkYTc1ZTUxNTQzZjc3OThiNzE2MDY1OThkMTc5YWMyMQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmlk
bApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworbW9kdWxlIGNvcmUgeworICAgIGludGVyZmFjZSBbCisgICAgICAg
IENvbmRpdGlvbmFsPU1VVEFUSU9OX09CU0VSVkVSUywKKyAgICAgICAgQ3VzdG9tQ29uc3RydWN0
b3IsCisgICAgICAgIENvbnN0cnVjdG9yUGFyYW1ldGVycz0xCisgICAgXSBNdXRhdGlvbk9ic2Vy
dmVyIHsKKyAgICAgICAgdm9pZCBvYnNlcnZlKGluIE5vZGUgdGFyZ2V0LCBpbiBEaWN0aW9uYXJ5
IG9wdGlvbnMpCisgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgc2Vx
dWVuY2U8TXV0YXRpb25SZWNvcmQ+IHRha2VSZWNvcmRzKCk7CisgICAgICAgIHZvaWQgZGlzY29u
bmVjdCgpOworICAgIH07Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRp
b25PYnNlcnZlckludGVyZXN0R3JvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9u
T2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcAppbmRleCBkZDAyODhkNTEzOTNjZTJmMDcwYWU3NDA5
MjQ4NjdhYjM4NWJiNzljLi4yNGMwY2I1ODY1MTdlMDhiYzdhOGI0MDkzZjIxZDMxZTBkYjJkNjRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0
R3JvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJl
c3RHcm91cC5jcHAKQEAgLTQxLDEwICs0MSwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LVBhc3NPd25QdHI8TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA+IE11dGF0aW9uT2JzZXJ2
ZXJJbnRlcmVzdEdyb3VwOjpjcmVhdGVJZk5lZWRlZChOb2RlKiB0YXJnZXQsIFdlYktpdE11dGF0
aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSB0eXBlLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0
aW9ucyBvbGRWYWx1ZUZsYWcsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpCitQ
YXNzT3duUHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwPiBNdXRhdGlvbk9ic2VydmVy
SW50ZXJlc3RHcm91cDo6Y3JlYXRlSWZOZWVkZWQoTm9kZSogdGFyZ2V0LCBNdXRhdGlvbk9ic2Vy
dmVyOjpNdXRhdGlvblR5cGUgdHlwZSwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgb2xk
VmFsdWVGbGFnLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKQogewotICAgIEFT
U0VSVCgodHlwZSA9PSBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVzICYmIGF0dHJp
YnV0ZU5hbWUpIHx8ICFhdHRyaWJ1dGVOYW1lKTsKLSAgICBIYXNoTWFwPFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4gb2JzZXJ2ZXJzOworICAg
IEFTU0VSVCgodHlwZSA9PSBNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVzICYmIGF0dHJpYnV0
ZU5hbWUpIHx8ICFhdHRyaWJ1dGVOYW1lKTsKKyAgICBIYXNoTWFwPE11dGF0aW9uT2JzZXJ2ZXIq
LCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4gb2JzZXJ2ZXJzOwogICAgIHRhcmdldC0+
Z2V0UmVnaXN0ZXJlZE11dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKG9ic2VydmVycywgdHlwZSwgYXR0
cmlidXRlTmFtZSk7CiAgICAgaWYgKG9ic2VydmVycy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVy
biBudWxscHRyOwpAQCAtNTIsNyArNTIsNyBAQCBQYXNzT3duUHRyPE11dGF0aW9uT2JzZXJ2ZXJJ
bnRlcmVzdEdyb3VwPiBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlSQogICAg
IHJldHVybiBhZG9wdFB0cihuZXcgTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAob2JzZXJ2
ZXJzLCBvbGRWYWx1ZUZsYWcpKTsKIH0KIAotTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6
Ok11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwKEhhc2hNYXA8V2ViS2l0TXV0YXRpb25PYnNl
cnZlciosIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPiYgb2JzZXJ2ZXJzLCBNdXRhdGlv
blJlY29yZERlbGl2ZXJ5T3B0aW9ucyBvbGRWYWx1ZUZsYWcpCitNdXRhdGlvbk9ic2VydmVySW50
ZXJlc3RHcm91cDo6TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAoSGFzaE1hcDxNdXRhdGlv
bk9ic2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+JiBvYnNlcnZlcnMsIE11
dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9sZFZhbHVlRmxhZykKICAgICA6IG1fb2xkVmFs
dWVGbGFnKG9sZFZhbHVlRmxhZykKIHsKICAgICBBU1NFUlQoIW9ic2VydmVycy5pc0VtcHR5KCkp
OwpAQCAtNjEsNyArNjEsNyBAQCBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6TXV0YXRp
b25PYnNlcnZlckludGVyZXN0R3JvdXAoSGFzaE1hcDxXZWJLaXRNdXRhdAogCiBib29sIE11dGF0
aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjppc09sZFZhbHVlUmVxdWVzdGVkKCkKIHsKLSAgICBm
b3IgKEhhc2hNYXA8V2ViS2l0TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVjb3JkRGVsaXZl
cnlPcHRpb25zPjo6aXRlcmF0b3IgaXRlciA9IG1fb2JzZXJ2ZXJzLmJlZ2luKCk7IGl0ZXIgIT0g
bV9vYnNlcnZlcnMuZW5kKCk7ICsraXRlcikgeworICAgIGZvciAoSGFzaE1hcDxNdXRhdGlvbk9i
c2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+OjppdGVyYXRvciBpdGVyID0g
bV9vYnNlcnZlcnMuYmVnaW4oKTsgaXRlciAhPSBtX29ic2VydmVycy5lbmQoKTsgKytpdGVyKSB7
CiAgICAgICAgIGlmIChoYXNPbGRWYWx1ZShpdGVyLT5zZWNvbmQpKQogICAgICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgfQpAQCAtNzIsOCArNzIsOCBAQCB2b2lkIE11dGF0aW9uT2JzZXJ2ZXJJ
bnRlcmVzdEdyb3VwOjplbnF1ZXVlTXV0YXRpb25SZWNvcmQoUGFzc1JlZlB0cjxNdXRhdGlvblJl
YwogewogICAgIFJlZlB0cjxNdXRhdGlvblJlY29yZD4gbXV0YXRpb24gPSBwcnBNdXRhdGlvbjsK
ICAgICBSZWZQdHI8TXV0YXRpb25SZWNvcmQ+IG11dGF0aW9uV2l0aE51bGxPbGRWYWx1ZTsKLSAg
ICBmb3IgKEhhc2hNYXA8V2ViS2l0TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVjb3JkRGVs
aXZlcnlPcHRpb25zPjo6aXRlcmF0b3IgaXRlciA9IG1fb2JzZXJ2ZXJzLmJlZ2luKCk7IGl0ZXIg
IT0gbV9vYnNlcnZlcnMuZW5kKCk7ICsraXRlcikgewotICAgICAgICBXZWJLaXRNdXRhdGlvbk9i
c2VydmVyKiBvYnNlcnZlciA9IGl0ZXItPmZpcnN0OworICAgIGZvciAoSGFzaE1hcDxNdXRhdGlv
bk9ic2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+OjppdGVyYXRvciBpdGVy
ID0gbV9vYnNlcnZlcnMuYmVnaW4oKTsgaXRlciAhPSBtX29ic2VydmVycy5lbmQoKTsgKytpdGVy
KSB7CisgICAgICAgIE11dGF0aW9uT2JzZXJ2ZXIqIG9ic2VydmVyID0gaXRlci0+Zmlyc3Q7CiAg
ICAgICAgIGlmIChoYXNPbGRWYWx1ZShpdGVyLT5zZWNvbmQpKSB7CiAgICAgICAgICAgICBvYnNl
cnZlci0+ZW5xdWV1ZU11dGF0aW9uUmVjb3JkKG11dGF0aW9uKTsKICAgICAgICAgICAgIGNvbnRp
bnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRl
cmVzdEdyb3VwLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0
R3JvdXAuaAppbmRleCA5MzMzMzRhMWI3Zjk1NzM4OWU1Y2JlZGVlMDVjMjY3N2I5NTAxMmRiLi43
ZmRlMzJlZWE5Mjg5YzZhMzgxNWY5MmI1MGQ2MDg3ZTlmY2ZmMWQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuaApAQCAtMzQsOSAr
MzQsOSBAQAogI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCiAKICNpbmNsdWRlICJEb2N1
bWVudC5oIgorI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJOb2RlLmgi
CiAjaW5jbHVkZSAiUXVhbGlmaWVkTmFtZS5oIgotI2luY2x1ZGUgIldlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3du
UHRyLmg+CiAKQEAgLTQ2LDM5ICs0NiwzOSBAQCBjbGFzcyBNdXRhdGlvbk9ic2VydmVySW50ZXJl
c3RHcm91cCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NPd25QdHI8TXV0YXRpb25PYnNlcnZl
ckludGVyZXN0R3JvdXA+IGNyZWF0ZUZvckNoaWxkTGlzdE11dGF0aW9uKE5vZGUqIHRhcmdldCkK
ICAgICB7Ci0gICAgICAgIGlmICghdGFyZ2V0LT5kb2N1bWVudCgpLT5oYXNNdXRhdGlvbk9ic2Vy
dmVyc09mVHlwZShXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpDaGlsZExpc3QpKQorICAgICAgICBp
ZiAoIXRhcmdldC0+ZG9jdW1lbnQoKS0+aGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRp
b25PYnNlcnZlcjo6Q2hpbGRMaXN0KSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAg
ICAgICAgIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9sZFZhbHVlRmxhZyA9IDA7Ci0g
ICAgICAgIHJldHVybiBjcmVhdGVJZk5lZWRlZCh0YXJnZXQsIFdlYktpdE11dGF0aW9uT2JzZXJ2
ZXI6OkNoaWxkTGlzdCwgb2xkVmFsdWVGbGFnKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUlmTmVl
ZGVkKHRhcmdldCwgTXV0YXRpb25PYnNlcnZlcjo6Q2hpbGRMaXN0LCBvbGRWYWx1ZUZsYWcpOwog
ICAgIH0KIAogICAgIHN0YXRpYyBQYXNzT3duUHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdy
b3VwPiBjcmVhdGVGb3JDaGFyYWN0ZXJEYXRhTXV0YXRpb24oTm9kZSogdGFyZ2V0KQogICAgIHsK
LSAgICAgICAgaWYgKCF0YXJnZXQtPmRvY3VtZW50KCktPmhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZU
eXBlKFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OkNoYXJhY3RlckRhdGEpKQorICAgICAgICBpZiAo
IXRhcmdldC0+ZG9jdW1lbnQoKS0+aGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25P
YnNlcnZlcjo6Q2hhcmFjdGVyRGF0YSkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAot
ICAgICAgICByZXR1cm4gY3JlYXRlSWZOZWVkZWQodGFyZ2V0LCBXZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyOjpDaGFyYWN0ZXJEYXRhLCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRh
T2xkVmFsdWUpOworICAgICAgICByZXR1cm4gY3JlYXRlSWZOZWVkZWQodGFyZ2V0LCBNdXRhdGlv
bk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhLCBNdXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRh
T2xkVmFsdWUpOwogICAgIH0KIAogICAgIHN0YXRpYyBQYXNzT3duUHRyPE11dGF0aW9uT2JzZXJ2
ZXJJbnRlcmVzdEdyb3VwPiBjcmVhdGVGb3JBdHRyaWJ1dGVzTXV0YXRpb24oTm9kZSogdGFyZ2V0
LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKQogICAgIHsKLSAgICAgICAgaWYg
KCF0YXJnZXQtPmRvY3VtZW50KCktPmhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKFdlYktpdE11
dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMpKQorICAgICAgICBpZiAoIXRhcmdldC0+ZG9jdW1l
bnQoKS0+aGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlcjo6QXR0cmli
dXRlcykpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICByZXR1cm4gY3Jl
YXRlSWZOZWVkZWQodGFyZ2V0LCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVzLCBX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVPbGRWYWx1ZSwgJmF0dHJpYnV0ZU5hbWUp
OworICAgICAgICByZXR1cm4gY3JlYXRlSWZOZWVkZWQodGFyZ2V0LCBNdXRhdGlvbk9ic2VydmVy
OjpBdHRyaWJ1dGVzLCBNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVPbGRWYWx1ZSwgJmF0dHJp
YnV0ZU5hbWUpOwogICAgIH0KIAogICAgIGJvb2wgaXNPbGRWYWx1ZVJlcXVlc3RlZCgpOwogICAg
IHZvaWQgZW5xdWV1ZU11dGF0aW9uUmVjb3JkKFBhc3NSZWZQdHI8TXV0YXRpb25SZWNvcmQ+KTsK
IAogcHJpdmF0ZToKLSAgICBzdGF0aWMgUGFzc093blB0cjxNdXRhdGlvbk9ic2VydmVySW50ZXJl
c3RHcm91cD4gY3JlYXRlSWZOZWVkZWQoTm9kZSogdGFyZ2V0LCBXZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyOjpNdXRhdGlvblR5cGUsIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9sZFZhbHVl
RmxhZywgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSA9IDApOwotICAgIE11dGF0
aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwKEhhc2hNYXA8V2ViS2l0TXV0YXRpb25PYnNlcnZlcios
IE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPiYgb2JzZXJ2ZXJzLCBNdXRhdGlvblJlY29y
ZERlbGl2ZXJ5T3B0aW9ucyBvbGRWYWx1ZUZsYWcpOworICAgIHN0YXRpYyBQYXNzT3duUHRyPE11
dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwPiBjcmVhdGVJZk5lZWRlZChOb2RlKiB0YXJnZXQs
IE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9w
dGlvbnMgb2xkVmFsdWVGbGFnLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lID0g
MCk7CisgICAgTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAoSGFzaE1hcDxNdXRhdGlvbk9i
c2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+JiBvYnNlcnZlcnMsIE11dGF0
aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9sZFZhbHVlRmxhZyk7CiAKICAgICBib29sIGhhc09s
ZFZhbHVlKE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9wdGlvbnMpIHsgcmV0dXJuIG9w
dGlvbnMgJiBtX29sZFZhbHVlRmxhZzsgfQogCi0gICAgSGFzaE1hcDxXZWJLaXRNdXRhdGlvbk9i
c2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+IG1fb2JzZXJ2ZXJzOworICAg
IEhhc2hNYXA8TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25z
PiBtX29ic2VydmVyczsKICAgICBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBtX29sZFZh
bHVlRmxhZzsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9i
c2VydmVyUmVnaXN0cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2Vy
dmVyUmVnaXN0cmF0aW9uLmNwcAppbmRleCAxOTBiODViZDg1NTNhZGFlNGEwZjZjZTBmM2E5Njhm
YzZjOTI2Yzk3Li41ODk1ZWY0OWZlYWE2YWM2MzNjMmQ5NGM5NjgzMjliOTVhOWUzNDM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24u
Y3BwCkBAIC00MCwxMiArNDAsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzT3du
UHRyPE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24+IE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3Ry
YXRpb246OmNyZWF0ZShQYXNzUmVmUHRyPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI+IG9ic2VydmVy
LCBOb2RlKiByZWdpc3RyYXRpb25Ob2RlKQorUGFzc093blB0cjxNdXRhdGlvbk9ic2VydmVyUmVn
aXN0cmF0aW9uPiBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjpjcmVhdGUoUGFzc1JlZlB0
cjxNdXRhdGlvbk9ic2VydmVyPiBvYnNlcnZlciwgTm9kZSogcmVnaXN0cmF0aW9uTm9kZSkKIHsK
ICAgICByZXR1cm4gYWRvcHRQdHIobmV3IE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24ob2Jz
ZXJ2ZXIsIHJlZ2lzdHJhdGlvbk5vZGUpKTsKIH0KIAotTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJh
dGlvbjo6TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbihQYXNzUmVmUHRyPFdlYktpdE11dGF0
aW9uT2JzZXJ2ZXI+IG9ic2VydmVyLCBOb2RlKiByZWdpc3RyYXRpb25Ob2RlKQorTXV0YXRpb25P
YnNlcnZlclJlZ2lzdHJhdGlvbjo6TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbihQYXNzUmVm
UHRyPE11dGF0aW9uT2JzZXJ2ZXI+IG9ic2VydmVyLCBOb2RlKiByZWdpc3RyYXRpb25Ob2RlKQog
ICAgICA6IG1fb2JzZXJ2ZXIob2JzZXJ2ZXIpCiAgICAgICwgbV9yZWdpc3RyYXRpb25Ob2RlKHJl
Z2lzdHJhdGlvbk5vZGUpCiAgICAgICwgbV9vcHRpb25zKDApCkBAIC0xMDUsMTYgKzEwNSwxNiBA
QCB2b2lkIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb246OnVucmVnaXN0ZXIoKQogICAgIC8v
IFRoZSBhYm92ZSBsaW5lIHdpbGwgY2F1c2UgdGhpcyBvYmplY3QgdG8gYmUgZGVsZXRlZCwgc28g
ZG9uJ3QgZG8gYW55IG1vcmUgaW4gdGhpcyBmdW5jdGlvbi4KIH0KIAotYm9vbCBNdXRhdGlvbk9i
c2VydmVyUmVnaXN0cmF0aW9uOjpzaG91bGRSZWNlaXZlTXV0YXRpb25Gcm9tKE5vZGUqIG5vZGUs
IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSB0eXBlLCBjb25zdCBRdWFsaWZp
ZWROYW1lKiBhdHRyaWJ1dGVOYW1lKQorYm9vbCBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9u
OjpzaG91bGRSZWNlaXZlTXV0YXRpb25Gcm9tKE5vZGUqIG5vZGUsIE11dGF0aW9uT2JzZXJ2ZXI6
Ok11dGF0aW9uVHlwZSB0eXBlLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKQog
ewotICAgIEFTU0VSVCgodHlwZSA9PSBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVz
ICYmIGF0dHJpYnV0ZU5hbWUpIHx8ICFhdHRyaWJ1dGVOYW1lKTsKKyAgICBBU1NFUlQoKHR5cGUg
PT0gTXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRlcyAmJiBhdHRyaWJ1dGVOYW1lKSB8fCAhYXR0
cmlidXRlTmFtZSk7CiAgICAgaWYgKCEobV9vcHRpb25zICYgdHlwZSkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIGlmIChtX3JlZ2lzdHJhdGlvbk5vZGUgIT0gbm9kZSAmJiAhaXNTdWJ0
cmVlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICh0eXBlICE9IFdlYktpdE11
dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMgfHwgIShtX29wdGlvbnMgJiBXZWJLaXRNdXRhdGlv
bk9ic2VydmVyOjpBdHRyaWJ1dGVGaWx0ZXIpKQorICAgIGlmICh0eXBlICE9IE11dGF0aW9uT2Jz
ZXJ2ZXI6OkF0dHJpYnV0ZXMgfHwgIShtX29wdGlvbnMgJiBNdXRhdGlvbk9ic2VydmVyOjpBdHRy
aWJ1dGVGaWx0ZXIpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGlmICghYXR0cmlidXRl
TmFtZS0+bmFtZXNwYWNlVVJJKCkuaXNOdWxsKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uaAppbmRleCAyMzJlZTI1ZDVhYzhlZjY1NTQ1
YTk0MzY0MDgyNjQ1YWY1Mzg1YjczLi5kNDkxNDYyNWE5ZGZlZDY2NmRmNGI3OGE5MjFhNTc4ZTNj
Nzc3NTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJl
Z2lzdHJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVn
aXN0cmF0aW9uLmgKQEAgLTMzLDcgKzMzLDcgQEAKIAogI2lmIEVOQUJMRShNVVRBVElPTl9PQlNF
UlZFUlMpCiAKLSNpbmNsdWRlICJXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSAi
TXV0YXRpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5n
SGFzaC5oPgpAQCAtNDUsNyArNDUsNyBAQCBjbGFzcyBRdWFsaWZpZWROYW1lOwogY2xhc3MgTXV0
YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbiB7CiBwdWJsaWM6CiAKLSAgICBzdGF0aWMgUGFzc093
blB0cjxNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uPiBjcmVhdGUoUGFzc1JlZlB0cjxXZWJL
aXRNdXRhdGlvbk9ic2VydmVyPiwgTm9kZSopOworICAgIHN0YXRpYyBQYXNzT3duUHRyPE11dGF0
aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24+IGNyZWF0ZShQYXNzUmVmUHRyPE11dGF0aW9uT2JzZXJ2
ZXI+LCBOb2RlKik7CiAKICAgICB+TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbigpOwogCkBA
IC01NSwxOSArNTUsMTkgQEAgcHVibGljOgogICAgIGJvb2wgaGFzVHJhbnNpZW50UmVnaXN0cmF0
aW9ucygpIHsgcmV0dXJuIG1fdHJhbnNpZW50UmVnaXN0cmF0aW9uTm9kZXMgJiYgIW1fdHJhbnNp
ZW50UmVnaXN0cmF0aW9uTm9kZXMtPmlzRW1wdHkoKTsgfQogICAgIHZvaWQgdW5yZWdpc3Rlcigp
OwogCi0gICAgYm9vbCBzaG91bGRSZWNlaXZlTXV0YXRpb25Gcm9tKE5vZGUqLCBXZWJLaXRNdXRh
dGlvbk9ic2VydmVyOjpNdXRhdGlvblR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0
ZU5hbWUpOwotICAgIGJvb2wgaW5saW5lIGlzU3VidHJlZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3B0
aW9ucyAmIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OlN1YnRyZWU7IH0KKyAgICBib29sIHNob3Vs
ZFJlY2VpdmVNdXRhdGlvbkZyb20oTm9kZSosIE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlw
ZSwgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSk7CisgICAgYm9vbCBpbmxpbmUg
aXNTdWJ0cmVlKCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zICYgTXV0YXRpb25PYnNlcnZlcjo6
U3VidHJlZTsgfQogCi0gICAgV2ViS2l0TXV0YXRpb25PYnNlcnZlciogb2JzZXJ2ZXIoKSB7IHJl
dHVybiBtX29ic2VydmVyLmdldCgpOyB9Ci0gICAgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlv
bnMgZGVsaXZlcnlPcHRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zICYgKFdlYktpdE11
dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZU9sZFZhbHVlIHwgV2ViS2l0TXV0YXRpb25PYnNlcnZl
cjo6Q2hhcmFjdGVyRGF0YU9sZFZhbHVlKTsgfQotICAgIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25z
IG11dGF0aW9uVHlwZXMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMgJiBXZWJLaXRNdXRhdGlv
bk9ic2VydmVyOjpBbGxNdXRhdGlvblR5cGVzOyB9CisgICAgTXV0YXRpb25PYnNlcnZlciogb2Jz
ZXJ2ZXIoKSB7IHJldHVybiBtX29ic2VydmVyLmdldCgpOyB9CisgICAgTXV0YXRpb25SZWNvcmRE
ZWxpdmVyeU9wdGlvbnMgZGVsaXZlcnlPcHRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25z
ICYgKE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZU9sZFZhbHVlIHwgTXV0YXRpb25PYnNlcnZl
cjo6Q2hhcmFjdGVyRGF0YU9sZFZhbHVlKTsgfQorICAgIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25z
IG11dGF0aW9uVHlwZXMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMgJiBNdXRhdGlvbk9ic2Vy
dmVyOjpBbGxNdXRhdGlvblR5cGVzOyB9CiAKIHByaXZhdGU6Ci0gICAgTXV0YXRpb25PYnNlcnZl
clJlZ2lzdHJhdGlvbihQYXNzUmVmUHRyPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI+LCBOb2RlKik7
CisgICAgTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbihQYXNzUmVmUHRyPE11dGF0aW9uT2Jz
ZXJ2ZXI+LCBOb2RlKik7CiAKICAgICBjb25zdCBIYXNoU2V0PEF0b21pY1N0cmluZz4mIGNhc2VJ
bnNlbnNpdGl2ZUF0dHJpYnV0ZUZpbHRlcigpOwogCi0gICAgUmVmUHRyPFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXI+IG1fb2JzZXJ2ZXI7CisgICAgUmVmUHRyPE11dGF0aW9uT2JzZXJ2ZXI+IG1fb2Jz
ZXJ2ZXI7CiAgICAgTm9kZSogbV9yZWdpc3RyYXRpb25Ob2RlOwogICAgIFJlZlB0cjxOb2RlPiBt
X3JlZ2lzdHJhdGlvbk5vZGVLZWVwQWxpdmU7CiAgICAgdHlwZWRlZiBIYXNoU2V0PFJlZlB0cjxO
b2RlPiA+IE5vZGVIYXNoU2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IGFlMzk0NWJlNWQwYzBkZWQ4
ZGVjZjAwYzU5OWQ0ZjI4MjMxOTEwNjIuLjA1MDRiNzA5MTcyOWUyYTNkYWU3Mzc5MjBkMTQ1NzEz
MWQ5NGYxMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTI0MDMsMTYgKzI0MDMsMTYgQEAgSGFzaFNl
dDxNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKj4qIE5vZGU6OnRyYW5zaWVudE11dGF0aW9u
T2JzZXJ2ZXJSZWdpc3RyeSgKICAgICByZXR1cm4gaGFzUmFyZURhdGEoKSA/IHJhcmVEYXRhKCkt
PnRyYW5zaWVudE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyeSgpIDogMDsKIH0KIAotdm9pZCBOb2Rl
Ojpjb2xsZWN0TWF0Y2hpbmdPYnNlcnZlcnNGb3JNdXRhdGlvbihIYXNoTWFwPFdlYktpdE11dGF0
aW9uT2JzZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4mIG9ic2VydmVycywg
Tm9kZSogZnJvbU5vZGUsIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSB0eXBl
LCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKQordm9pZCBOb2RlOjpjb2xsZWN0
TWF0Y2hpbmdPYnNlcnZlcnNGb3JNdXRhdGlvbihIYXNoTWFwPE11dGF0aW9uT2JzZXJ2ZXIqLCBN
dXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4mIG9ic2VydmVycywgTm9kZSogZnJvbU5vZGUs
IE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSB0eXBlLCBjb25zdCBRdWFsaWZpZWROYW1l
KiBhdHRyaWJ1dGVOYW1lKQogewotICAgIEFTU0VSVCgodHlwZSA9PSBXZWJLaXRNdXRhdGlvbk9i
c2VydmVyOjpBdHRyaWJ1dGVzICYmIGF0dHJpYnV0ZU5hbWUpIHx8ICFhdHRyaWJ1dGVOYW1lKTsK
KyAgICBBU1NFUlQoKHR5cGUgPT0gTXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRlcyAmJiBhdHRy
aWJ1dGVOYW1lKSB8fCAhYXR0cmlidXRlTmFtZSk7CiAgICAgaWYgKFZlY3RvcjxPd25QdHI8TXV0
YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbj4gPiogcmVnaXN0cnkgPSBmcm9tTm9kZS0+bXV0YXRp
b25PYnNlcnZlclJlZ2lzdHJ5KCkpIHsKICAgICAgICAgY29uc3Qgc2l6ZV90IHNpemUgPSByZWdp
c3RyeS0+c2l6ZSgpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkg
ewogICAgICAgICAgICAgTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbiogcmVnaXN0cmF0aW9u
ID0gcmVnaXN0cnktPmF0KGkpLmdldCgpOwogICAgICAgICAgICAgaWYgKHJlZ2lzdHJhdGlvbi0+
c2hvdWxkUmVjZWl2ZU11dGF0aW9uRnJvbSh0aGlzLCB0eXBlLCBhdHRyaWJ1dGVOYW1lKSkgewog
ICAgICAgICAgICAgICAgIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIGRlbGl2ZXJ5T3B0
aW9ucyA9IHJlZ2lzdHJhdGlvbi0+ZGVsaXZlcnlPcHRpb25zKCk7Ci0gICAgICAgICAgICAgICAg
SGFzaE1hcDxXZWJLaXRNdXRhdGlvbk9ic2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9w
dGlvbnM+OjpBZGRSZXN1bHQgcmVzdWx0ID0gb2JzZXJ2ZXJzLmFkZChyZWdpc3RyYXRpb24tPm9i
c2VydmVyKCksIGRlbGl2ZXJ5T3B0aW9ucyk7CisgICAgICAgICAgICAgICAgSGFzaE1hcDxNdXRh
dGlvbk9ic2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+OjpBZGRSZXN1bHQg
cmVzdWx0ID0gb2JzZXJ2ZXJzLmFkZChyZWdpc3RyYXRpb24tPm9ic2VydmVyKCksIGRlbGl2ZXJ5
T3B0aW9ucyk7CiAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQuaXNOZXdFbnRyeSkKICAgICAg
ICAgICAgICAgICAgICAgcmVzdWx0Lml0ZXJhdG9yLT5zZWNvbmQgfD0gZGVsaXZlcnlPcHRpb25z
OwogCkBAIC0yNDI1LDcgKzI0MjUsNyBAQCB2b2lkIE5vZGU6OmNvbGxlY3RNYXRjaGluZ09ic2Vy
dmVyc0Zvck11dGF0aW9uKEhhc2hNYXA8V2ViS2l0TXV0YXRpb25PYnNlcnZlciosCiAgICAgICAg
ICAgICBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKiByZWdpc3RyYXRpb24gPSAqaXRlcjsK
ICAgICAgICAgICAgIGlmIChyZWdpc3RyYXRpb24tPnNob3VsZFJlY2VpdmVNdXRhdGlvbkZyb20o
dGhpcywgdHlwZSwgYXR0cmlidXRlTmFtZSkpIHsKICAgICAgICAgICAgICAgICBNdXRhdGlvblJl
Y29yZERlbGl2ZXJ5T3B0aW9ucyBkZWxpdmVyeU9wdGlvbnMgPSByZWdpc3RyYXRpb24tPmRlbGl2
ZXJ5T3B0aW9ucygpOwotICAgICAgICAgICAgICAgIEhhc2hNYXA8V2ViS2l0TXV0YXRpb25PYnNl
cnZlciosIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPjo6QWRkUmVzdWx0IHJlc3VsdCA9
IG9ic2VydmVycy5hZGQocmVnaXN0cmF0aW9uLT5vYnNlcnZlcigpLCBkZWxpdmVyeU9wdGlvbnMp
OworICAgICAgICAgICAgICAgIEhhc2hNYXA8TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVj
b3JkRGVsaXZlcnlPcHRpb25zPjo6QWRkUmVzdWx0IHJlc3VsdCA9IG9ic2VydmVycy5hZGQocmVn
aXN0cmF0aW9uLT5vYnNlcnZlcigpLCBkZWxpdmVyeU9wdGlvbnMpOwogICAgICAgICAgICAgICAg
IGlmICghcmVzdWx0LmlzTmV3RW50cnkpCiAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5pdGVy
YXRvci0+c2Vjb25kIHw9IGRlbGl2ZXJ5T3B0aW9uczsKICAgICAgICAgICAgIH0KQEAgLTI0MzMs
MTUgKzI0MzMsMTUgQEAgdm9pZCBOb2RlOjpjb2xsZWN0TWF0Y2hpbmdPYnNlcnZlcnNGb3JNdXRh
dGlvbihIYXNoTWFwPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIqLAogICAgIH0KIH0KIAotdm9pZCBO
b2RlOjpnZXRSZWdpc3RlcmVkTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoSGFzaE1hcDxXZWJLaXRN
dXRhdGlvbk9ic2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+JiBvYnNlcnZl
cnMsIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSB0eXBlLCBjb25zdCBRdWFs
aWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKQordm9pZCBOb2RlOjpnZXRSZWdpc3RlcmVkTXV0YXRp
b25PYnNlcnZlcnNPZlR5cGUoSGFzaE1hcDxNdXRhdGlvbk9ic2VydmVyKiwgTXV0YXRpb25SZWNv
cmREZWxpdmVyeU9wdGlvbnM+JiBvYnNlcnZlcnMsIE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9u
VHlwZSB0eXBlLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKQogewotICAgIEFT
U0VSVCgodHlwZSA9PSBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVzICYmIGF0dHJp
YnV0ZU5hbWUpIHx8ICFhdHRyaWJ1dGVOYW1lKTsKKyAgICBBU1NFUlQoKHR5cGUgPT0gTXV0YXRp
b25PYnNlcnZlcjo6QXR0cmlidXRlcyAmJiBhdHRyaWJ1dGVOYW1lKSB8fCAhYXR0cmlidXRlTmFt
ZSk7CiAgICAgY29sbGVjdE1hdGNoaW5nT2JzZXJ2ZXJzRm9yTXV0YXRpb24ob2JzZXJ2ZXJzLCB0
aGlzLCB0eXBlLCBhdHRyaWJ1dGVOYW1lKTsKICAgICBmb3IgKE5vZGUqIG5vZGUgPSBwYXJlbnRO
b2RlKCk7IG5vZGU7IG5vZGUgPSBub2RlLT5wYXJlbnROb2RlKCkpCiAgICAgICAgIGNvbGxlY3RN
YXRjaGluZ09ic2VydmVyc0Zvck11dGF0aW9uKG9ic2VydmVycywgbm9kZSwgdHlwZSwgYXR0cmli
dXRlTmFtZSk7CiB9CiAKLU11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qIE5vZGU6OnJlZ2lz
dGVyTXV0YXRpb25PYnNlcnZlcihQYXNzUmVmUHRyPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI+IG9i
c2VydmVyKQorTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbiogTm9kZTo6cmVnaXN0ZXJNdXRh
dGlvbk9ic2VydmVyKFBhc3NSZWZQdHI8TXV0YXRpb25PYnNlcnZlcj4gb2JzZXJ2ZXIpCiB7CiAg
ICAgVmVjdG9yPE93blB0cjxNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uPiA+KiByZWdpc3Ry
eSA9IGVuc3VyZVJhcmVEYXRhKCktPmVuc3VyZU11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyeSgpOwog
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVnaXN0cnktPnNpemUoKTsgKytpKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuaAppbmRleCBjOWMyNjc0ZDI3YzVjYzFlMzA0OGYwZjUzMDM3N2VjMzYxZDY5MWJhLi45Yzk3
NWYzMzAyYzc0OTE3OTA1N2ZkZDZiYmIxYTZiYjk0MmNhZTQyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTMw
LDEwICszMCwxMCBAQAogI2luY2x1ZGUgIktVUkxIYXNoLmgiCiAjaW5jbHVkZSAiTGF5b3V0VHlw
ZXMuaCIKICNpbmNsdWRlICJNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlICJNdXRh
dGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKICNpbmNs
dWRlICJTY3JpcHRXcmFwcGFibGUuaCIKICNpbmNsdWRlICJUcmVlU2hhcmVkLmgiCi0jaW5jbHVk
ZSAiV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAj
aW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3Ry
aW5nLmg+CkBAIC02MzQsOCArNjM0LDggQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUo
TVVUQVRJT05fT0JTRVJWRVJTKQotICAgIHZvaWQgZ2V0UmVnaXN0ZXJlZE11dGF0aW9uT2JzZXJ2
ZXJzT2ZUeXBlKEhhc2hNYXA8V2ViS2l0TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVjb3Jk
RGVsaXZlcnlPcHRpb25zPiYsIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSwg
Y29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSk7Ci0gICAgTXV0YXRpb25PYnNlcnZl
clJlZ2lzdHJhdGlvbiogcmVnaXN0ZXJNdXRhdGlvbk9ic2VydmVyKFBhc3NSZWZQdHI8V2ViS2l0
TXV0YXRpb25PYnNlcnZlcj4pOworICAgIHZvaWQgZ2V0UmVnaXN0ZXJlZE11dGF0aW9uT2JzZXJ2
ZXJzT2ZUeXBlKEhhc2hNYXA8TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVjb3JkRGVsaXZl
cnlPcHRpb25zPiYsIE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSwgY29uc3QgUXVhbGlm
aWVkTmFtZSogYXR0cmlidXRlTmFtZSk7CisgICAgTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlv
biogcmVnaXN0ZXJNdXRhdGlvbk9ic2VydmVyKFBhc3NSZWZQdHI8TXV0YXRpb25PYnNlcnZlcj4p
OwogICAgIHZvaWQgdW5yZWdpc3Rlck11dGF0aW9uT2JzZXJ2ZXIoTXV0YXRpb25PYnNlcnZlclJl
Z2lzdHJhdGlvbiopOwogICAgIHZvaWQgcmVnaXN0ZXJUcmFuc2llbnRNdXRhdGlvbk9ic2VydmVy
KE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qKTsKICAgICB2b2lkIHVucmVnaXN0ZXJUcmFu
c2llbnRNdXRhdGlvbk9ic2VydmVyKE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qKTsKQEAg
LTc4MSw3ICs3ODEsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMp
CiAgICAgVmVjdG9yPE93blB0cjxNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uPiA+KiBtdXRh
dGlvbk9ic2VydmVyUmVnaXN0cnkoKTsKICAgICBIYXNoU2V0PE11dGF0aW9uT2JzZXJ2ZXJSZWdp
c3RyYXRpb24qPiogdHJhbnNpZW50TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJ5KCk7Ci0gICAgdm9p
ZCBjb2xsZWN0TWF0Y2hpbmdPYnNlcnZlcnNGb3JNdXRhdGlvbihIYXNoTWFwPFdlYktpdE11dGF0
aW9uT2JzZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4mLCBOb2RlKiBmcm9t
Tm9kZSwgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6TXV0YXRpb25UeXBlLCBjb25zdCBRdWFsaWZp
ZWROYW1lKiBhdHRyaWJ1dGVOYW1lKTsKKyAgICB2b2lkIGNvbGxlY3RNYXRjaGluZ09ic2VydmVy
c0Zvck11dGF0aW9uKEhhc2hNYXA8TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVjb3JkRGVs
aXZlcnlPcHRpb25zPiYsIE5vZGUqIGZyb21Ob2RlLCBNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlv
blR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpOwogI2VuZGlmCiAKICAg
ICBtdXRhYmxlIHVpbnQzMl90IG1fbm9kZUZsYWdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGVSYXJlRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5o
CmluZGV4IGI3ZjM1OWU2MDE1NWY2NjVkNmZjNzI2ZTlmOWJlZDU0M2Q1ZDg1ODYuLjBkZGUyYTI4
YmRhYTYyMDAxMzc0MDZiY2RkYThjZWUxNzM2OWMwNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlUmFyZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVE
YXRhLmgKQEAgLTI1LDEwICsyNSwxMCBAQAogI2luY2x1ZGUgIkNoaWxkTm9kZUxpc3QuaCIKICNp
bmNsdWRlICJET01TZXR0YWJsZVRva2VuTGlzdC5oIgogI2luY2x1ZGUgIkR5bmFtaWNOb2RlTGlz
dC5oIgorI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJNdXRhdGlvbk9i
c2VydmVyUmVnaXN0cmF0aW9uLmgiCiAjaW5jbHVkZSAiUXVhbGlmaWVkTmFtZS5oIgogI2luY2x1
ZGUgIlRhZ05vZGVMaXN0LmgiCi0jaW5jbHVkZSAiV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oIgog
I2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2Vi
S2l0TXV0YXRpb25PYnNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TXV0YXRp
b25PYnNlcnZlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZmZTZhYTc3ODgy
ZDhjMDZiOGQ0Njc4ZGNhOWU0OTMyMjEzZGJhODIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMjIxICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9u
LgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0KLSNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQotCi0jaW5jbHVkZSAiV2ViS2l0
TXV0YXRpb25PYnNlcnZlci5oIgotCi0jaW5jbHVkZSAiRGljdGlvbmFyeS5oIgotI2luY2x1ZGUg
IkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgotI2luY2x1ZGUgIk11dGF0
aW9uQ2FsbGJhY2suaCIKLSNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmgi
Ci0jaW5jbHVkZSAiTXV0YXRpb25SZWNvcmQuaCIKLSNpbmNsdWRlICJOb2RlLmgiCi0jaW5jbHVk
ZSA8YWxnb3JpdGhtPgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL01h
aW5UaHJlYWQuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotc3RhdGljIHVuc2lnbmVkIHNfb2JzZXJ2ZXJQcmlvcml0eSA9IDA7Ci0KLXN0cnVjdCBX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpPYnNlcnZlckxlc3NUaGFuIHsKLSAgICBib29sIG9wZXJh
dG9yKCkoY29uc3QgUmVmUHRyPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI+JiBsaHMsIGNvbnN0IFJl
ZlB0cjxXZWJLaXRNdXRhdGlvbk9ic2VydmVyPiYgcmhzKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IGxocy0+bV9wcmlvcml0eSA8IHJocy0+bV9wcmlvcml0eTsKLSAgICB9Ci19OwotCi1QYXNzUmVm
UHRyPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI+IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OmNyZWF0
ZShQYXNzUmVmUHRyPE11dGF0aW9uQ2FsbGJhY2s+IGNhbGxiYWNrKQotewotICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJLaXRNdXRhdGlvbk9i
c2VydmVyKGNhbGxiYWNrKSk7Ci19Ci0KLVdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OldlYktpdE11
dGF0aW9uT2JzZXJ2ZXIoUGFzc1JlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPiBjYWxsYmFjaykKLSAg
ICA6IG1fY2FsbGJhY2soY2FsbGJhY2spCi0gICAgLCBtX3ByaW9yaXR5KHNfb2JzZXJ2ZXJQcmlv
cml0eSsrKQotewotfQotCi1XZWJLaXRNdXRhdGlvbk9ic2VydmVyOjp+V2ViS2l0TXV0YXRpb25P
YnNlcnZlcigpCi17Ci0gICAgQVNTRVJUKG1fcmVnaXN0cmF0aW9ucy5pc0VtcHR5KCkpOwotfQot
Ci1ib29sIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OnZhbGlkYXRlT3B0aW9ucyhNdXRhdGlvbk9i
c2VydmVyT3B0aW9ucyBvcHRpb25zKQotewotICAgIHJldHVybiAob3B0aW9ucyAmIChBdHRyaWJ1
dGVzIHwgQ2hhcmFjdGVyRGF0YSB8IENoaWxkTGlzdCkpCi0gICAgICAgICYmICgob3B0aW9ucyAm
IEF0dHJpYnV0ZXMpIHx8ICEob3B0aW9ucyAmIEF0dHJpYnV0ZU9sZFZhbHVlKSkKLSAgICAgICAg
JiYgKChvcHRpb25zICYgQXR0cmlidXRlcykgfHwgIShvcHRpb25zICYgQXR0cmlidXRlRmlsdGVy
KSkKLSAgICAgICAgJiYgKChvcHRpb25zICYgQ2hhcmFjdGVyRGF0YSkgfHwgIShvcHRpb25zICYg
Q2hhcmFjdGVyRGF0YU9sZFZhbHVlKSk7Ci19Ci0KLXZvaWQgV2ViS2l0TXV0YXRpb25PYnNlcnZl
cjo6b2JzZXJ2ZShOb2RlKiBub2RlLCBjb25zdCBEaWN0aW9uYXJ5JiBvcHRpb25zRGljdGlvbmFy
eSwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKCFub2RlKSB7Ci0gICAgICAgIGVjID0g
Tk9UX0ZPVU5EX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChvcHRpb25z
RGljdGlvbmFyeS5pc1VuZGVmaW5lZE9yTnVsbCgpKSB7Ci0gICAgICAgIGVjID0gVFlQRV9NSVNN
QVRDSF9FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBzdGF0aWMgY29uc3Qgc3Ry
dWN0IHsKLSAgICAgICAgY29uc3QgY2hhciogbmFtZTsKLSAgICAgICAgTXV0YXRpb25PYnNlcnZl
ck9wdGlvbnMgdmFsdWU7Ci0gICAgfSBib29sZWFuT3B0aW9uc1tdID0gewotICAgICAgICB7ICJj
aGlsZExpc3QiLCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpDaGlsZExpc3QgfSwKLSAgICAgICAg
eyAiYXR0cmlidXRlcyIsIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMgfSwKLSAg
ICAgICAgeyAiY2hhcmFjdGVyRGF0YSIsIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OkNoYXJhY3Rl
ckRhdGEgfSwKLSAgICAgICAgeyAic3VidHJlZSIsIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OlN1
YnRyZWUgfSwKLSAgICAgICAgeyAiYXR0cmlidXRlT2xkVmFsdWUiLCBXZWJLaXRNdXRhdGlvbk9i
c2VydmVyOjpBdHRyaWJ1dGVPbGRWYWx1ZSB9LAotICAgICAgICB7ICJjaGFyYWN0ZXJEYXRhT2xk
VmFsdWUiLCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhT2xkVmFsdWUgfQot
ICAgIH07Ci0gICAgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgb3B0aW9ucyA9IDA7Ci0gICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemVvZihib29sZWFuT3B0aW9ucykgLyBzaXplb2YoYm9v
bGVhbk9wdGlvbnNbMF0pOyArK2kpIHsKLSAgICAgICAgYm9vbCB2YWx1ZSA9IGZhbHNlOwotICAg
ICAgICBpZiAob3B0aW9uc0RpY3Rpb25hcnkuZ2V0KGJvb2xlYW5PcHRpb25zW2ldLm5hbWUsIHZh
bHVlKSAmJiB2YWx1ZSkKLSAgICAgICAgICAgIG9wdGlvbnMgfD0gYm9vbGVhbk9wdGlvbnNbaV0u
dmFsdWU7Ci0gICAgfQotCi0gICAgSGFzaFNldDxBdG9taWNTdHJpbmc+IGF0dHJpYnV0ZUZpbHRl
cjsKLSAgICBpZiAob3B0aW9uc0RpY3Rpb25hcnkuZ2V0KCJhdHRyaWJ1dGVGaWx0ZXIiLCBhdHRy
aWJ1dGVGaWx0ZXIpKQotICAgICAgICBvcHRpb25zIHw9IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6
OkF0dHJpYnV0ZUZpbHRlcjsKLQotICAgIGlmICghdmFsaWRhdGVPcHRpb25zKG9wdGlvbnMpKSB7
Ci0gICAgICAgIGVjID0gU1lOVEFYX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
IE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qIHJlZ2lzdHJhdGlvbiA9IG5vZGUtPnJlZ2lz
dGVyTXV0YXRpb25PYnNlcnZlcih0aGlzKTsKLSAgICByZWdpc3RyYXRpb24tPnJlc2V0T2JzZXJ2
YXRpb24ob3B0aW9ucywgYXR0cmlidXRlRmlsdGVyKTsKLQotICAgIG5vZGUtPmRvY3VtZW50KCkt
PmFkZE11dGF0aW9uT2JzZXJ2ZXJUeXBlcyhyZWdpc3RyYXRpb24tPm11dGF0aW9uVHlwZXMoKSk7
Ci19Ci0KLVZlY3RvcjxSZWZQdHI8TXV0YXRpb25SZWNvcmQ+ID4gV2ViS2l0TXV0YXRpb25PYnNl
cnZlcjo6dGFrZVJlY29yZHMoKQotewotICAgIFZlY3RvcjxSZWZQdHI8TXV0YXRpb25SZWNvcmQ+
ID4gcmVjb3JkczsKLSAgICByZWNvcmRzLnN3YXAobV9yZWNvcmRzKTsKLSAgICByZXR1cm4gcmVj
b3JkczsKLX0KLQotdm9pZCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpkaXNjb25uZWN0KCkKLXsK
LSAgICBtX3JlY29yZHMuY2xlYXIoKTsKLSAgICBIYXNoU2V0PE11dGF0aW9uT2JzZXJ2ZXJSZWdp
c3RyYXRpb24qPiByZWdpc3RyYXRpb25zKG1fcmVnaXN0cmF0aW9ucyk7Ci0gICAgZm9yIChIYXNo
U2V0PE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qPjo6aXRlcmF0b3IgaXRlciA9IHJlZ2lz
dHJhdGlvbnMuYmVnaW4oKTsgaXRlciAhPSByZWdpc3RyYXRpb25zLmVuZCgpOyArK2l0ZXIpCi0g
ICAgICAgICgqaXRlciktPnVucmVnaXN0ZXIoKTsKLX0KLQotdm9pZCBXZWJLaXRNdXRhdGlvbk9i
c2VydmVyOjpvYnNlcnZhdGlvblN0YXJ0ZWQoTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbiog
cmVnaXN0cmF0aW9uKQotewotICAgIEFTU0VSVCghbV9yZWdpc3RyYXRpb25zLmNvbnRhaW5zKHJl
Z2lzdHJhdGlvbikpOwotICAgIG1fcmVnaXN0cmF0aW9ucy5hZGQocmVnaXN0cmF0aW9uKTsKLX0K
LQotdm9pZCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpvYnNlcnZhdGlvbkVuZGVkKE11dGF0aW9u
T2JzZXJ2ZXJSZWdpc3RyYXRpb24qIHJlZ2lzdHJhdGlvbikKLXsKLSAgICBBU1NFUlQobV9yZWdp
c3RyYXRpb25zLmNvbnRhaW5zKHJlZ2lzdHJhdGlvbikpOwotICAgIG1fcmVnaXN0cmF0aW9ucy5y
ZW1vdmUocmVnaXN0cmF0aW9uKTsKLX0KLQotdHlwZWRlZiBIYXNoU2V0PFJlZlB0cjxXZWJLaXRN
dXRhdGlvbk9ic2VydmVyPiA+IE11dGF0aW9uT2JzZXJ2ZXJTZXQ7Ci0KLXN0YXRpYyBNdXRhdGlv
bk9ic2VydmVyU2V0JiBhY3RpdmVNdXRhdGlvbk9ic2VydmVycygpCi17Ci0gICAgREVGSU5FX1NU
QVRJQ19MT0NBTChNdXRhdGlvbk9ic2VydmVyU2V0LCBhY3RpdmVPYnNlcnZlcnMsICgpKTsKLSAg
ICByZXR1cm4gYWN0aXZlT2JzZXJ2ZXJzOwotfQotCi12b2lkIFdlYktpdE11dGF0aW9uT2JzZXJ2
ZXI6OmVucXVldWVNdXRhdGlvblJlY29yZChQYXNzUmVmUHRyPE11dGF0aW9uUmVjb3JkPiBtdXRh
dGlvbikKLXsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIG1fcmVjb3Jkcy5hcHBl
bmQobXV0YXRpb24pOwotICAgIGFjdGl2ZU11dGF0aW9uT2JzZXJ2ZXJzKCkuYWRkKHRoaXMpOwot
fQotCi12b2lkIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OnNldEhhc1RyYW5zaWVudFJlZ2lzdHJh
dGlvbigpCi17Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBhY3RpdmVNdXRhdGlv
bk9ic2VydmVycygpLmFkZCh0aGlzKTsKLX0KLQotdm9pZCBXZWJLaXRNdXRhdGlvbk9ic2VydmVy
OjpkZWxpdmVyKCkKLXsKLSAgICAvLyBDYWxsaW5nIGNsZWFyVHJhbnNpZW50UmVnaXN0cmF0aW9u
cygpIGNhbiBtb2RpZnkgbV9yZWdpc3RyYXRpb25zLCBzbyBpdCdzIG5lY2Vzc2FyeQotICAgIC8v
IHRvIG1ha2UgYSBjb3B5IG9mIHRoZSB0cmFuc2llbnQgcmVnaXN0cmF0aW9ucyBiZWZvcmUgb3Bl
cmF0aW5nIG9uIHRoZW0uCi0gICAgVmVjdG9yPE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24q
LCAxPiB0cmFuc2llbnRSZWdpc3RyYXRpb25zOwotICAgIGZvciAoSGFzaFNldDxNdXRhdGlvbk9i
c2VydmVyUmVnaXN0cmF0aW9uKj46Oml0ZXJhdG9yIGl0ZXIgPSBtX3JlZ2lzdHJhdGlvbnMuYmVn
aW4oKTsgaXRlciAhPSBtX3JlZ2lzdHJhdGlvbnMuZW5kKCk7ICsraXRlcikgewotICAgICAgICBp
ZiAoKCppdGVyKS0+aGFzVHJhbnNpZW50UmVnaXN0cmF0aW9ucygpKQotICAgICAgICAgICAgdHJh
bnNpZW50UmVnaXN0cmF0aW9ucy5hcHBlbmQoKml0ZXIpOwotICAgIH0KLSAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IHRyYW5zaWVudFJlZ2lzdHJhdGlvbnMuc2l6ZSgpOyArK2kpCi0gICAgICAg
IHRyYW5zaWVudFJlZ2lzdHJhdGlvbnNbaV0tPmNsZWFyVHJhbnNpZW50UmVnaXN0cmF0aW9ucygp
OwotCi0gICAgaWYgKG1fcmVjb3Jkcy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAg
IFZlY3RvcjxSZWZQdHI8TXV0YXRpb25SZWNvcmQ+ID4gcmVjb3JkczsKLSAgICByZWNvcmRzLnN3
YXAobV9yZWNvcmRzKTsKLQotICAgIG1fY2FsbGJhY2stPmhhbmRsZUV2ZW50KCZyZWNvcmRzLCB0
aGlzKTsKLX0KLQotdm9pZCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpkZWxpdmVyQWxsTXV0YXRp
b25zKCkKLXsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIHN0YXRpYyBib29sIGRl
bGl2ZXJ5SW5Qcm9ncmVzcyA9IGZhbHNlOwotICAgIGlmIChkZWxpdmVyeUluUHJvZ3Jlc3MpCi0g
ICAgICAgIHJldHVybjsKLSAgICBkZWxpdmVyeUluUHJvZ3Jlc3MgPSB0cnVlOwotCi0gICAgd2hp
bGUgKCFhY3RpdmVNdXRhdGlvbk9ic2VydmVycygpLmlzRW1wdHkoKSkgewotICAgICAgICBWZWN0
b3I8UmVmUHRyPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI+ID4gb2JzZXJ2ZXJzOwotICAgICAgICBj
b3B5VG9WZWN0b3IoYWN0aXZlTXV0YXRpb25PYnNlcnZlcnMoKSwgb2JzZXJ2ZXJzKTsKLSAgICAg
ICAgYWN0aXZlTXV0YXRpb25PYnNlcnZlcnMoKS5jbGVhcigpOwotICAgICAgICBzdGQ6OnNvcnQo
b2JzZXJ2ZXJzLmJlZ2luKCksIG9ic2VydmVycy5lbmQoKSwgT2JzZXJ2ZXJMZXNzVGhhbigpKTsK
LSAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvYnNlcnZlcnMuc2l6ZSgpOyArK2kpCi0g
ICAgICAgICAgICBvYnNlcnZlcnNbaV0tPmRlbGl2ZXIoKTsKLSAgICB9Ci0KLSAgICBkZWxpdmVy
eUluUHJvZ3Jlc3MgPSBmYWxzZTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5k
aWYgLy8gRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2Vi
S2l0TXV0YXRpb25PYnNlcnZlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZjA5
NjQ3MjY2NzE0NTY5OThlNWFiMTFkOTM4NTY2YzQzMDJjZjg1Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRNdXRh
dGlvbk9ic2VydmVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMDggKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmli
dXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
Ci0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV2Vi
S2l0TXV0YXRpb25PYnNlcnZlcl9oCi0jZGVmaW5lIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXJfaAot
Ci0jaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKLQotI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5o
PgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgot
I2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0F0
b21pY1N0cmluZ0hhc2guaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBEaWN0aW9u
YXJ5OwotY2xhc3MgTXV0YXRpb25DYWxsYmFjazsKLWNsYXNzIE11dGF0aW9uT2JzZXJ2ZXJSZWdp
c3RyYXRpb247Ci1jbGFzcyBNdXRhdGlvblJlY29yZDsKLWNsYXNzIE5vZGU7Ci0KLXR5cGVkZWYg
aW50IEV4Y2VwdGlvbkNvZGU7Ci0KLXR5cGVkZWYgdW5zaWduZWQgY2hhciBNdXRhdGlvbk9ic2Vy
dmVyT3B0aW9uczsKLXR5cGVkZWYgdW5zaWduZWQgY2hhciBNdXRhdGlvblJlY29yZERlbGl2ZXJ5
T3B0aW9uczsKLQotY2xhc3MgV2ViS2l0TXV0YXRpb25PYnNlcnZlciA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI+IHsKLXB1YmxpYzoKLSAgICBlbnVtIE11dGF0aW9u
VHlwZSB7Ci0gICAgICAgIENoaWxkTGlzdCA9IDEgPDwgMCwKLSAgICAgICAgQXR0cmlidXRlcyA9
IDEgPDwgMSwKLSAgICAgICAgQ2hhcmFjdGVyRGF0YSA9IDEgPDwgMiwKLQotICAgICAgICBBbGxN
dXRhdGlvblR5cGVzID0gQ2hpbGRMaXN0IHwgQXR0cmlidXRlcyB8IENoYXJhY3RlckRhdGEKLSAg
ICB9OwotCi0gICAgZW51bSBPYnNlcnZhdGlvbkZsYWdzICB7Ci0gICAgICAgIFN1YnRyZWUgPSAx
IDw8IDMsCi0gICAgICAgIEF0dHJpYnV0ZUZpbHRlciA9IDEgPDwgNAotICAgIH07Ci0KLSAgICBl
bnVtIERlbGl2ZXJ5RmxhZ3MgewotICAgICAgICBBdHRyaWJ1dGVPbGRWYWx1ZSA9IDEgPDwgNSwK
LSAgICAgICAgQ2hhcmFjdGVyRGF0YU9sZFZhbHVlID0gMSA8PCA2LAotICAgIH07Ci0KLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxXZWJLaXRNdXRhdGlvbk9ic2VydmVyPiBjcmVhdGUoUGFzc1JlZlB0
cjxNdXRhdGlvbkNhbGxiYWNrPik7Ci0gICAgc3RhdGljIHZvaWQgZGVsaXZlckFsbE11dGF0aW9u
cygpOwotCi0gICAgfldlYktpdE11dGF0aW9uT2JzZXJ2ZXIoKTsKLQotICAgIHZvaWQgb2JzZXJ2
ZShOb2RlKiwgY29uc3QgRGljdGlvbmFyeSYsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBWZWN0b3I8
UmVmUHRyPE11dGF0aW9uUmVjb3JkPiA+IHRha2VSZWNvcmRzKCk7Ci0gICAgdm9pZCBkaXNjb25u
ZWN0KCk7Ci0gICAgdm9pZCBvYnNlcnZhdGlvblN0YXJ0ZWQoTXV0YXRpb25PYnNlcnZlclJlZ2lz
dHJhdGlvbiopOwotICAgIHZvaWQgb2JzZXJ2YXRpb25FbmRlZChNdXRhdGlvbk9ic2VydmVyUmVn
aXN0cmF0aW9uKik7Ci0gICAgdm9pZCBlbnF1ZXVlTXV0YXRpb25SZWNvcmQoUGFzc1JlZlB0cjxN
dXRhdGlvblJlY29yZD4pOwotICAgIHZvaWQgc2V0SGFzVHJhbnNpZW50UmVnaXN0cmF0aW9uKCk7
Ci0KLXByaXZhdGU6Ci0gICAgc3RydWN0IE9ic2VydmVyTGVzc1RoYW47Ci0KLSAgICBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyKFBhc3NSZWZQdHI8TXV0YXRpb25DYWxsYmFjaz4pOwotICAgIHZvaWQg
ZGVsaXZlcigpOwotCi0gICAgc3RhdGljIGJvb2wgdmFsaWRhdGVPcHRpb25zKE11dGF0aW9uT2Jz
ZXJ2ZXJPcHRpb25zKTsKLQotICAgIFJlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPiBtX2NhbGxiYWNr
OwotICAgIFZlY3RvcjxSZWZQdHI8TXV0YXRpb25SZWNvcmQ+ID4gbV9yZWNvcmRzOwotICAgIEhh
c2hTZXQ8TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbio+IG1fcmVnaXN0cmF0aW9uczsKLSAg
ICB1bnNpZ25lZCBtX3ByaW9yaXR5OwotfTsKLQotfQotCi0jZW5kaWYgLy8gRU5BQkxFKE1VVEFU
SU9OX09CU0VSVkVSUykKLQotI2VuZGlmIC8vIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXJfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaWRsIGIv
U291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaWRsCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBjMzM4YmUyOGRlMTk0ODIyY2QxYmJmOGI1NDQxNGVlZDE3MWVk
ZWZkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmlkbAorKysgL2Rldi9udWxsCkBA
IC0xLDQyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAq
IG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0g
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi1tb2R1bGUgY29yZSB7Ci0gICAgaW50ZXJmYWNlIFsKLSAgICAgICAgQ29u
ZGl0aW9uYWw9TVVUQVRJT05fT0JTRVJWRVJTLAotICAgICAgICBDdXN0b21Db25zdHJ1Y3RvciwK
LSAgICAgICAgQ29uc3RydWN0b3JQYXJhbWV0ZXJzPTEKLSAgICBdIFdlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXIgewotICAgICAgICB2b2lkIG9ic2VydmUoaW4gTm9kZSB0YXJnZXQsIGluIERpY3Rpb25h
cnkgb3B0aW9ucykKLSAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBz
ZXF1ZW5jZTxNdXRhdGlvblJlY29yZD4gdGFrZVJlY29yZHMoKTsKLSAgICAgICAgdm9pZCBkaXNj
b25uZWN0KCk7Ci0gICAgfTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAppbmRleCBiMjA2
NTQzYjE1NTg2NzI0ZDlmYjgxZTBlYTE5MzYwYjcwMzk0NjA2Li4zNmJhNzAzMDZlMGM4YzMxZGM1
YzZiNjUyOWNiNjhlYTEwZmFiOTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCkBAIC03
NzgsNyArNzc4LDggQEAgbW9kdWxlIHdpbmRvdyB7CiAKICAgICAgICAgYXR0cmlidXRlIFtDb25k
aXRpb25hbD1CTE9CXSBET01VUkxDb25zdHJ1Y3RvciB3ZWJraXRVUkw7CiAKLSAgICAgICAgYXR0
cmlidXRlIFtDb25kaXRpb25hbD1NVVRBVElPTl9PQlNFUlZFUlNdIFdlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXJDb25zdHJ1Y3RvciBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOworICAgICAgICBhdHRyaWJ1
dGUgW0NvbmRpdGlvbmFsPU1VVEFUSU9OX09CU0VSVkVSU10gTXV0YXRpb25PYnNlcnZlckNvbnN0
cnVjdG9yIE11dGF0aW9uT2JzZXJ2ZXI7CisgICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9
TVVUQVRJT05fT0JTRVJWRVJTXSBNdXRhdGlvbk9ic2VydmVyQ29uc3RydWN0b3IgV2ViS2l0TXV0
YXRpb25PYnNlcnZlcjsKIAogI2VuZGlmIC8vIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViS2l0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYktpdC5jcHAKaW5kZXggNjEwNjU5N2FlOGZiMTVl
ZGU2MDZiNjFiNzg0MjQ0OThjOTlkNzQxYS4uMWJiM2I0NGE5M2RmZmM1ZmM4MjZhMWEzYjYwZmIw
YzY2YWI3OTUzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViS2l0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJLaXQuY3BwCkBAIC0zMiwx
MyArMzIsMTMgQEAKICNpbmNsdWRlICJXZWJLaXQuaCIKIAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
KyNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1
ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2lu
Y2x1ZGUgIlRleHRFbmNvZGluZy5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgogI2luY2x1ZGUg
IlY4UmVjdXJzaW9uU2NvcGUuaCIKLSNpbmNsdWRlICJXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgi
CiAjaW5jbHVkZSAiV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgiCiAjaW5jbHVkZSAiV2ViU29j
a2V0LmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmgiCkBAIC02Niw3
ICs2Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFByb2Nlc3NUYXNrKCkgeyB9
CiAgICAgdmlydHVhbCB2b2lkIGRpZFByb2Nlc3NUYXNrKCkKICAgICB7Ci0gICAgICAgIFdlYkNv
cmU6OldlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OmRlbGl2ZXJBbGxNdXRhdGlvbnMoKTsKKyAgICAg
ICAgV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6ZGVsaXZlckFsbE11dGF0aW9ucygpOwogICAg
IH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCmluZGV4IGZlMWY3MGRhZTFiODk3NGM4
NmMzN2Q3ODZkMmEyZTJiOTZmNDFkYTAuLjlhMjgxZWNkNDkxNmMzYTI1OTA2YTAwMmY0YWFkOTE0
NDBmY2MwYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcApAQCAtNDcsNiArNDcsNyBAQAog
I2luY2x1ZGUgPEpTRWxlbWVudC5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL09wYXF1ZUpT
U3RyaW5nLmg+CiAjaW5jbHVkZSA8TWVtb3J5Q2FjaGUuaD4KKyNpbmNsdWRlIDxNdXRhdGlvbk9i
c2VydmVyLmg+CiAjaW5jbHVkZSA8UGFnZUdyb3VwLmg+CiAjaW5jbHVkZSA8UHJpbnRDb250ZXh0
Lmg+CiAjaW5jbHVkZSA8UmVuZGVyVHJlZUFzVGV4dC5oPgpAQCAtNTUsNyArNTYsNiBAQAogI2lu
Y2x1ZGUgPFNjcmlwdFZhbHVlLmg+CiAjaW5jbHVkZSA8U2V0dGluZ3MuaD4KICNpbmNsdWRlIDxU
ZXh0SXRlcmF0b3IuaD4KLSNpbmNsdWRlIDxXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmg+CiAjaW5j
bHVkZSA8YmluZGluZ3MvanMvR0NDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8aGlzdG9yeS9IaXN0
b3J5SXRlbS5oPgogI2luY2x1ZGUgPHdvcmtlcnMvV29ya2VyVGhyZWFkLmg+CkBAIC01OTcsNyAr
NTk3LDcgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmR1bXBDb25maWd1cmF0aW9u
Rm9yVmlld3BvcnQoRXZhc19PYmplY3QqIGV3a1ZpZXcKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBw
b3J0RWZsOjpkZWxpdmVyQWxsTXV0YXRpb25zSWZOZWNlc3NhcnkoKQogewogI2lmIEVOQUJMRShN
VVRBVElPTl9PQlNFUlZFUlMpCi0gICAgV2ViQ29yZTo6V2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6
ZGVsaXZlckFsbE11dGF0aW9ucygpOworICAgIFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6OmRl
bGl2ZXJBbGxNdXRhdGlvbnMoKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwIGIvU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNw
cAppbmRleCBhOWRlODc1Yzk0N2YxMmQxODgzZTc4NmYzMGNkZjgyZmUzN2I2YjQxLi4zMzQzNjY0
OWMyMDAzMmNlZTFjMGU3YTRkYTU4ZjBjMWZhZDExNGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
ay5jcHAKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlICJKU0xvY2suaCIKICNpbmNsdWRlICJK
U05vZGVMaXN0LmgiCiAjaW5jbHVkZSAiSlNWYWx1ZS5oIgorI2luY2x1ZGUgIk11dGF0aW9uT2Jz
ZXJ2ZXIuaCIKICNpbmNsdWRlICJOb2RlTGlzdC5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCkBAIC02NCw3ICs2NSw2IEBACiAjaW5jbHVkZSAi
U2V0dGluZ3MuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJXZWJLaXRB
Y2Nlc3NpYmxlV3JhcHBlckF0ay5oIgotI2luY2x1ZGUgIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIu
aCIKICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKICNpbmNsdWRlICJ3ZWJraXRnbG9iYWxzcHJp
dmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdHdlYmZyYW1lLmgiCkBAIC04MzgsNyArODM4LDcgQEAg
SlNWYWx1ZVJlZiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmNvbXB1dGVkU3R5bGVJbmNsdWRp
bmdWaXNpdGVkSW5mbyhKU0NvbnRleHQKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpk
ZWxpdmVyQWxsTXV0YXRpb25zSWZOZWNlc3NhcnkoKQogewogI2lmIEVOQUJMRShNVVRBVElPTl9P
QlNFUlZFUlMpCi0gICAgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6ZGVsaXZlckFsbE11dGF0aW9u
cygpOworICAgIE11dGF0aW9uT2JzZXJ2ZXI6OmRlbGl2ZXJBbGxNdXRhdGlvbnMoKTsKICNlbmRp
ZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0
dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0Zl
YXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IGIxYjg0OTY2ZDliNDIxZWQ5NmQyOGYyNGMyYWU2
ZjRjZGNiMDhmMjcuLjYxZDJhZjU2N2UyNTJjN2FiZWVlNmMzZmUyYTBlMzlmYTdiYzE5NjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCkBAIC0xMDAsNyArMTAwLDcgQEAgRU5BQkxFX01FRElBX1NUQVRJU1RJ
Q1MgPSA7CiBFTkFCTEVfTUVURVJfVEFHID0gRU5BQkxFX01FVEVSX1RBRzsKIEVOQUJMRV9NSFRN
TCA9IDsKIEVOQUJMRV9NSUNST0RBVEEgPSA7Ci1FTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTID0g
RU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUzsKK0VOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMgPSA7
CiBFTkFCTEVfTk9USUZJQ0FUSU9OUyA9ICQoRU5BQkxFX05PVElGSUNBVElPTlNfJChSRUFMX1BM
QVRGT1JNX05BTUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9ICQoRU5BQkxFX05P
VElGSUNBVElPTlNfbWFjb3N4XyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IpKTsKIEVO
QUJMRV9OT1RJRklDQVRJT05TX21hY29zeF8xMDcwID0gOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2Vi
S2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCBiMWI4NDk2
NmQ5YjQyMWVkOTZkMjhmMjRjMmFlNmY0Y2RjYjA4ZjI3Li42MWQyYWY1NjdlMjUyYzdhYmVlZTZj
M2ZlMmEwZTM5ZmE3YmMxOTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0
aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtMTAwLDcgKzEwMCw3IEBAIEVOQUJM
RV9NRURJQV9TVEFUSVNUSUNTID0gOwogRU5BQkxFX01FVEVSX1RBRyA9IEVOQUJMRV9NRVRFUl9U
QUc7CiBFTkFCTEVfTUhUTUwgPSA7CiBFTkFCTEVfTUlDUk9EQVRBID0gOwotRU5BQkxFX01VVEFU
SU9OX09CU0VSVkVSUyA9IEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlM7CitFTkFCTEVfTVVUQVRJ
T05fT0JTRVJWRVJTID0gOwogRU5BQkxFX05PVElGSUNBVElPTlMgPSAkKEVOQUJMRV9OT1RJRklD
QVRJT05TXyQoUkVBTF9QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfTk9USUZJQ0FUSU9OU19tYWNv
c3ggPSAkKEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeF8kKFRBUkdFVF9NQUNfT1NfWF9WRVJT
SU9OX01BSk9SKSk7CiBFTkFCTEVfTk9USUZJQ0FUSU9OU19tYWNvc3hfMTA3MCA9IDsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiZjg5NjgyMmI2
NzZiMDcwZmQ5MTRhYzQ2MzdiZWMwOTJjZjkxYTdiLi5iNWQ0Y2M0NWM0NmRhZDA2YTViOTI0YTk2
ZDU2ODJhN2M0MDMzYjljIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDYtMTUgIEFkYW0gS2xlaW4gIDxhZGFt
a0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVtb3ZlIHZlbmRvciBwcmVmaXggZnJvbSBET00g
TXV0YXRpb25PYnNlcnZlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg5MjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvRXZlbnRTZW5kZXIuY3BwOgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbTogRW5hYmxlIE11dGF0aW9uT2JzZXJ2
ZXJzIG9ubHkgZm9yIHBvcnRzCisgICAgICAgIHRoYXQgcGFzcyBhbGwgZmFzdC9tdXRhdGlvbi8u
Li4gdGVzdHMgKGluY2x1ZGluZyBlbmQtb2YtdGFzayBkZWxpdmVyeSkuCisKIDIwMTItMDYtMjYg
IFRoaWFnbyBNYXJjb3MgUC4gU2FudG9zICA8dGhpYWdvLnNhbnRvc0BpbnRlbC5jb20+CiAKICAg
ICAgICAgd2Via2l0cHk6IE1ha2Ugd2Via2l0LXBhdGNoIHBhdGNoZXMtdG8tcmV2aWV3IHVzZWZ1
bApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0V2ZW50U2VuZGVyLmNwcCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9FdmVudFNlbmRlci5jcHAKaW5kZXggMTAyYmI2NjBm
MjA0Yjk5MGI4ZGRmNWEzMTQyNThjYjk1OWIxMjJmYi4uNGNjMmFiMzRiMmY1MDZmY2I2NDkzMGJj
OWRjOTJmYzZlMWVjNTgzNiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0V2
ZW50U2VuZGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRXZlbnRTZW5kZXIu
Y3BwCkBAIC0zNSw3ICszNSw2IEBACiAKICNpbmNsdWRlICJEdW1wUmVuZGVyVHJlZS5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oIgotI2luY2x1
ZGUgIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlIDxHT3duUHRyR3RrLmg+CiAj
aW5jbHVkZSA8R1JlZlB0ckd0ay5oPgogI2luY2x1ZGUgPEd0a1ZlcnNpb25pbmcuaD4KZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQppbmRleCAwZjAzM2FjNTU0OWVlNWM3OTdi
ZjEyMDRhMzU2NzE5NWM0OTY1ZGFkLi5mOTJkMTUyNmVkY2RlNWI1ODhkNTc1ZTRjYTNjYWFhMGNm
YWM5YWI2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3Qu
cG0KKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCkBAIC0yOTUs
NyArMjk1LDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfTUlD
Uk9EQVRBIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJG1pY3JvZGF0YVN1cHBvcnQgfSwKIAog
ICAgIHsgb3B0aW9uID0+ICJtdXRhdGlvbi1vYnNlcnZlcnMiLCBkZXNjID0+ICJUb2dnbGUgTXV0
YXRpb24gT2JzZXJ2ZXJzIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfTVVUQVRJ
T05fT0JTRVJWRVJTIiwgZGVmYXVsdCA9PiAxLCB2YWx1ZSA9PiBcJG11dGF0aW9uT2JzZXJ2ZXJz
U3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTIiwg
ZGVmYXVsdCA9PiAoaXNDaHJvbWl1bSgpIHx8IGlzR3RrKCkgfHwgaXNFZmwoKSksIHZhbHVlID0+
IFwkbXV0YXRpb25PYnNlcnZlcnNTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAibmV0c2Nh
cGUtcGx1Z2luLWFwaSIsIGRlc2MgPT4gIlRvZ2dsZSBOZXRzY2FwZSBQbHVnaW4gQVBJIHN1cHBv
cnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSIsIGRlZmF1
bHQgPT4gIWlzRWZsKCksIHZhbHVlID0+IFwkbmV0c2NhcGVQbHVnaW5BUElTdXBwb3J0IH0sCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggODYxZDYxYjk1MTUzNmVmY2Q1MTIwNjIyYWZmMTk3ZmY3OWRhMzU0My4uM2U4ZGFhZTcx
OWUxNjgwN2ExMzE0NTA2MTI4OWZiYWViYjJmZjY0MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisy
MDEyLTA2LTE1ICBBZGFtIEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
bW92ZSB2ZW5kb3IgcHJlZml4IGZyb20gRE9NIE11dGF0aW9uT2JzZXJ2ZXJzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTIzMQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFsbCB0ZXN0cyBoYXZlIGJlZW4g
dXBkYXRlZCB0byByZWZlcmVuY2UgdGhlIHVucHJlZml4ZWQgbmFtZS4KKworICAgICAgICAqIGZh
c3QvbXV0YXRpb24vY2FsbGJhY2stYXJndW1lbnRzLmh0bWw6CisgICAgICAgICogZmFzdC9tdXRh
dGlvbi9jbGVhci10cmFuc2llbnQtd2l0aG91dC1kZWxpdmVyeS5odG1sOgorICAgICAgICAqIGZh
c3QvbXV0YXRpb24vY3JlYXRlLWR1cmluZy1kZWxpdmVyeS5odG1sOgorICAgICAgICAqIGZhc3Qv
bXV0YXRpb24vY3Jvc3MtZG9jdW1lbnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L211dGF0aW9uL2Rh
dGFiYXNlLWNhbGxiYWNrLWRlbGl2ZXJ5Lmh0bWw6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi9k
ZWxpdmVyeS1vcmRlci5odG1sOgorICAgICAgICAqIGZhc3QvbXV0YXRpb24vZGlzY29ubmVjdC1j
YW5jZWwtcGVuZGluZy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi9kaXNj
b25uZWN0LWNhbmNlbC1wZW5kaW5nLmh0bWw6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi9kb2N1
bWVudC1mcmFnbWVudC1pbnNlcnRpb24uaHRtbDoKKyAgICAgICAgKiBmYXN0L211dGF0aW9uL2Vu
ZC1vZi10YXNrLWRlbGl2ZXJ5Lmh0bWw6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi9maWxlc3lz
dGVtLWNhbGxiYWNrLWRlbGl2ZXJ5Lmh0bWw6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi9pbmxp
bmUtZXZlbnQtbGlzdGVuZXIuaHRtbDoKKyAgICAgICAgKiBmYXN0L211dGF0aW9uL211dGF0ZS1k
dXJpbmctZGVsaXZlcnkuaHRtbDoKKyAgICAgICAgKiBmYXN0L211dGF0aW9uL211dGF0aW9uLWNh
bGxiYWNrLW5vbi1lbGVtZW50LWNyYXNoLmh0bWw6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi9t
dXRhdGlvbi1vYnNlcnZlci1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFz
dC9tdXRhdGlvbi9tdXRhdGlvbi1vYnNlcnZlci1jb25zdHJ1Y3Rvci5odG1sOgorICAgICAgICAq
IGZhc3QvbXV0YXRpb24vb2JzZXJ2ZS1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBmYXN0L211dGF0aW9uL29ic2VydmUtYXR0cmlidXRlcy5odG1sOgorICAgICAgICAqIGZhc3Qv
bXV0YXRpb24vb2JzZXJ2ZS1jaGFyYWN0ZXJkYXRhLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBm
YXN0L211dGF0aW9uL29ic2VydmUtY2hhcmFjdGVyZGF0YS5odG1sOgorICAgICAgICAqIGZhc3Qv
bXV0YXRpb24vb2JzZXJ2ZS1jaGlsZExpc3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
bXV0YXRpb24vb2JzZXJ2ZS1jaGlsZExpc3QuaHRtbDoKKyAgICAgICAgKiBmYXN0L211dGF0aW9u
L29ic2VydmUtZXhjZXB0aW9ucy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9tdXRhdGlv
bi9vYnNlcnZlLWV4Y2VwdGlvbnMuaHRtbDoKKyAgICAgICAgKiBmYXN0L211dGF0aW9uL29ic2Vy
dmUtc3VidHJlZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi9vYnNlcnZl
LXN1YnRyZWUuaHRtbDoKKyAgICAgICAgKiBmYXN0L211dGF0aW9uL3NoYWRvdy1kb20uaHRtbDoK
KyAgICAgICAgKiBmYXN0L211dGF0aW9uL3Rha2VSZWNvcmRzLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L211dGF0aW9uL3Rha2VSZWNvcmRzLmh0bWw6CisgICAgICAgICogZmFzdC9tdXRh
dGlvbi90cmFuc2llbnQtZ2MtY3Jhc2guaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2tp
cHBlZDogU2tpcCBNdXRhdGlvbk9ic2VydmVyIHRlc3RzIGFzIHRoZXkncmUgbm93IGRpc2FibGVk
LgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Ta2lwcGVkOiBkaXR0bworICAgICAgICAqIHBsYXRm
b3JtL3dpbmNhaXJvL1NraXBwZWQ6IGRpdHRvCisKIDIwMTItMDYtMjYgIEFscGhhIExhbSAgPGhj
bGFtQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIE1hcmsgYSBsYXlvdXQgdGVz
dCBhcyBmYWlsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2NhbGxiYWNr
LWFyZ3VtZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9jYWxsYmFjay1hcmd1
bWVudHMuaHRtbAppbmRleCBmNzhkZGQ5MmQzNWE0OTg0ODI2MGQ2N2M2ZTIxZWVkYWQwNzFkZDYz
Li5mODc2NzJmZWNkN2EzNTNkNDA0ZDk4YmQzMzM4OTNmNTkzNDA2NWNjIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2NhbGxiYWNrLWFyZ3VtZW50cy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vY2FsbGJhY2stYXJndW1lbnRzLmh0bWwKQEAgLTEyLDcg
KzEyLDcgQEAgZnVuY3Rpb24gbXV0YXRpb25DYWxsYmFjayhtdXRhdGlvbnMsIG9ic2VydmVyKSB7
CiAgICAgc2hvdWxkQmUoJ2FyZ3VtZW50MicsICdtdXRhdGlvbk9ic2VydmVyJyk7CiAgICAgZmlu
aXNoSlNUZXN0KCk7CiB9Ci12YXIgbXV0YXRpb25PYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlv
bk9ic2VydmVyKG11dGF0aW9uQ2FsbGJhY2spOwordmFyIG11dGF0aW9uT2JzZXJ2ZXIgPSBuZXcg
TXV0YXRpb25PYnNlcnZlcihtdXRhdGlvbkNhbGxiYWNrKTsKIHZhciBkaXYgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKTsKIG11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZShkaXYsIHthdHRy
aWJ1dGVzOiB0cnVlfSk7CiBkaXYuc2V0QXR0cmlidXRlKCdmb28nLCAnYmFyJyk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2NsZWFyLXRyYW5zaWVudC13aXRob3V0LWRl
bGl2ZXJ5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2NsZWFyLXRyYW5zaWVudC13
aXRob3V0LWRlbGl2ZXJ5Lmh0bWwKaW5kZXggZTFmZWU4MTcyMGViY2Q3MDllODA5OTlmNGE5YmUx
MjcyY2FhODdlMi4uNDJhNTNlMzhiZDVmNTZlM2MzMjQxYWQzNGNjYjY3YWMxMDQ5NDMxNCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9jbGVhci10cmFuc2llbnQtd2l0aG91
dC1kZWxpdmVyeS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vY2xlYXItdHJh
bnNpZW50LXdpdGhvdXQtZGVsaXZlcnkuaHRtbApAQCAtNyw3ICs3LDcgQEAgdmFyIG11dGF0aW9u
c0RlbGl2ZXJlZCA9IGZhbHNlOwogZnVuY3Rpb24gY2FsbGJhY2sobXV0YXRpb25zKSB7CiAgICAg
bXV0YXRpb25zRGVsaXZlcmVkID0gdHJ1ZTsKIH0KLXZhciBvYnNlcnZlciA9IG5ldyBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyKGNhbGxiYWNrKTsKK3ZhciBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9i
c2VydmVyKGNhbGxiYWNrKTsKIAogdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpOwogdmFyIHNwYW4gPSBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
c3BhbicpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vY3JlYXRlLWR1
cmluZy1kZWxpdmVyeS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9jcmVhdGUtZHVy
aW5nLWRlbGl2ZXJ5Lmh0bWwKaW5kZXggY2VlZTI0ZTcwODJjZjgxZDVhNWE1NDljNGNkN2I0ZDJk
YjhlMjAyNi4uNGY1ZDA3YzZjMDFkOWRmOGZmNTMxNDU3NzFkMmVjNTM0ODg4YzJhYSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9jcmVhdGUtZHVyaW5nLWRlbGl2ZXJ5Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9jcmVhdGUtZHVyaW5nLWRlbGl2ZXJ5
Lmh0bWwKQEAgLTE3LDE3ICsxNywxNyBAQCB2YXIgb3JkZXIgPSBbXTsKIHZhciBkaXYgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKIAogdmFyIG9ic2VydmVyMzsKLXZhciBvYnNlcnZl
cjEgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKK3Zh
ciBvYnNlcnZlcjEgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsK
ICAgICBvcmRlci5wdXNoKDEpOwogICAgIGlmICghb2JzZXJ2ZXIzKSB7Ci0gICAgICAgIG9ic2Vy
dmVyMyA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewor
ICAgICAgICBvYnNlcnZlcjMgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlv
bnMpIHsKICAgICAgICAgICAgIG9yZGVyLnB1c2goMyk7CiAgICAgICAgIH0pOwogICAgICAgICBv
YnNlcnZlcjMub2JzZXJ2ZShkaXYsIHthdHRyaWJ1dGVzOiB0cnVlfSk7CiAgICAgICAgIGRpdi5z
ZXRBdHRyaWJ1dGUoJ2ZvbycsICdiYXonKTsKICAgICB9CiB9KTsKLXZhciBvYnNlcnZlcjIgPSBu
ZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKK3ZhciBvYnNl
cnZlcjIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICBv
cmRlci5wdXNoKDIpOwogfSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRp
b24vY3Jvc3MtZG9jdW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vY3Jvc3Mt
ZG9jdW1lbnQuaHRtbAppbmRleCBmNGVlN2YwY2ZjZDg3NGJlZGJmODhhOWZhZmE3YWJhOWYxODA0
ZmExLi5jODgzZGEzNGY0NDZmY2Q5MmUxMTY2YmFlZDliZTViMTcyYjdiOGQzIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2Nyb3NzLWRvY3VtZW50Lmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9jcm9zcy1kb2N1bWVudC5odG1sCkBAIC0xOCw3ICsxOCw3
IEBAIGZ1bmN0aW9uIHRlc3RCYXNpYygpIHsKIAogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwog
ICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgb2Jz
ZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsK
KyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlv
bnMpIHsKICAgICAgICAgICAgIHdpbmRvdy5tdXRhdGlvbnMgPSBtdXRhdGlvbnM7CiAgICAgICAg
IH0pOwogCkBAIC01Miw3ICs1Miw3IEBAIGZ1bmN0aW9uIHRlc3RTdWJ0cmVlKCkgewogICAgICAg
ICBtdXRhdGlvbnMgPSBudWxsOwogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdkaXYnKTsKICAgICAgICAgc3ViRGl2ID0gZGl2LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2RpdicpKTsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25P
YnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0
YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICAgICAgICAgIHdpbmRvdy5t
dXRhdGlvbnMgPSBtdXRhdGlvbnM7CiAgICAgICAgIH0pOwogCkBAIC04OSw3ICs4OSw3IEBAIGZ1
bmN0aW9uIHJ1bk5leHRUZXN0KCkgewogCiBkZXNjcmlwdGlvbignVGVzdCB0aGF0IE11dGF0aW9u
T2JzZXJ2ZXJzIG1vdmUgY29ycmVjdGx5IGFjcm9zcyBkb2N1bWVudHMnKTsKIAotaWYgKCF3aW5k
b3cuV2ViS2l0TXV0YXRpb25PYnNlcnZlcikKK2lmICghd2luZG93Lk11dGF0aW9uT2JzZXJ2ZXIp
CiAgICAgdGVzdEZhaWxlZCgnVGhpcyB0ZXN0IHJlcXVpcmVzIEVOQUJMRShNVVRBVElPTl9PQlNF
UlZFUlMpJyk7CiBlbHNlCiAgICAgcnVuTmV4dFRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvbXV0YXRpb24vZGF0YWJhc2UtY2FsbGJhY2stZGVsaXZlcnkuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvbXV0YXRpb24vZGF0YWJhc2UtY2FsbGJhY2stZGVsaXZlcnkuaHRtbAppbmRl
eCBjNzlhM2ZhYzI3ZGQ4N2NhOTQ1OWM2MWMxMTJhNmMyOGM0NjZmNjI0Li40MDM4ZDBmZTA2OWU4
M2Y2NWEzMmJiOTA1Y2ZkYzM0OGM5OTllNmVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L211dGF0aW9uL2RhdGFiYXNlLWNhbGxiYWNrLWRlbGl2ZXJ5Lmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9tdXRhdGlvbi9kYXRhYmFzZS1jYWxsYmFjay1kZWxpdmVyeS5odG1sCkBAIC0xMiw3
ICsxMiw3IEBAIGZ1bmN0aW9uIHRlc3REYXRhYmFzZSgpIHsKICAgICBmdW5jdGlvbiBzdGFydCgp
IHsKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKICAgICAgICAgZGl2ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9i
c2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAg
IH0pOwogCkBAIC00MSw3ICs0MSw3IEBAIGZ1bmN0aW9uIHRlc3REYXRhYmFzZSgpIHsKIAogZGVz
Y3JpcHRpb24oJ1Rlc3RpbmcgbXV0YXRpb25zIGFyZSBkZWxpdmVyZWQgZm9sbG93aW5nIERhdGFi
YXNlIHRyYW5zYWN0aW9uIGNhbGxiYWNrcy4nKTsKIAotaWYgKCF3aW5kb3cuV2ViS2l0TXV0YXRp
b25PYnNlcnZlcikgeworaWYgKCF3aW5kb3cuTXV0YXRpb25PYnNlcnZlcikgewogICAgIHRlc3RG
YWlsZWQoJ1RoaXMgdGVzdCByZXF1aXJlcyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKScpOwog
ICAgIGZpbmlzaEpTVGVzdCgpOwogfSBlbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L211dGF0aW9uL2RlbGl2ZXJ5LW9yZGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9u
L2RlbGl2ZXJ5LW9yZGVyLmh0bWwKaW5kZXggNGU1NWMwZDYyYjY1MzQ4ZDllYWEzYzJiNTA2N2Y1
ZmFmYjgyYjRkZC4uNWJjMjk5MWE1YjViZWM4MjJmYWY2YWFkY2VhZmJmNjlhNDQzNWNhMSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9kZWxpdmVyeS1vcmRlci5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vZGVsaXZlcnktb3JkZXIuaHRtbApAQCAtMjMs
NyArMjMsNyBAQCB2YXIgb3JkZXIgPSBbXTsKIHZhciBvYnNlcnZlcnMgPSBbXTsKIAogZnVuY3Rp
b24gc2V0VXBPcmRlcmluZyhudW0pIHsKLSAgICBvYnNlcnZlcnMucHVzaChuZXcgV2ViS2l0TXV0
YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICBvYnNlcnZlcnMucHVzaChu
ZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICAgICAgb3JkZXIu
cHVzaChudW0pOwogICAgIH0pKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0
YXRpb24vZGlzY29ubmVjdC1jYW5jZWwtcGVuZGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L211dGF0aW9uL2Rpc2Nvbm5lY3QtY2FuY2VsLXBlbmRpbmctZXhwZWN0ZWQudHh0Cmlu
ZGV4IDNiNWQ5N2U3NTMyZDY4ZjY2NmViYWU5ZmE1YzBhM2NhZDNmYjFiMTIuLjczNmE3NWUxOTFk
NmI1MWRjZjdhYzc1MGU1NDJkODg4YWM1MjFjNGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvbXV0YXRpb24vZGlzY29ubmVjdC1jYW5jZWwtcGVuZGluZy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9kaXNjb25uZWN0LWNhbmNlbC1wZW5kaW5nLWV4cGVj
dGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKLVRlc3QgdGhhdCBXZWJLaXRNdXRhdGlvbk9ic2VydmVy
LmRpc2Nvbm5lY3QgY2FuY2VscyBwZW5kaW5nIGRlbGl2ZXJ5CitUZXN0IHRoYXQgTXV0YXRpb25P
YnNlcnZlci5kaXNjb25uZWN0IGNhbmNlbHMgcGVuZGluZyBkZWxpdmVyeQogCiBPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24v
ZGlzY29ubmVjdC1jYW5jZWwtcGVuZGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlv
bi9kaXNjb25uZWN0LWNhbmNlbC1wZW5kaW5nLmh0bWwKaW5kZXggZjYyZmQ1MjllMzljNTFhYzdj
NDY4Yzk5YmVhMzcxMzc1MDE1NmFkMS4uYmQ0NzgwOGY0YzI1MzdhM2M0N2Q0NjhhNjkzYzdjNDJk
YTRhYTc5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9kaXNjb25uZWN0
LWNhbmNlbC1wZW5kaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9kaXNj
b25uZWN0LWNhbmNlbC1wZW5kaW5nLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8IURPQ1RZUEUgaHRt
bD4KIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgogPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCdUZXN0IHRoYXQgV2ViS2l0TXV0YXRpb25PYnNlcnZl
ci5kaXNjb25uZWN0IGNhbmNlbHMgcGVuZGluZyBkZWxpdmVyeScpOworZGVzY3JpcHRpb24oJ1Rl
c3QgdGhhdCBNdXRhdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QgY2FuY2VscyBwZW5kaW5nIGRlbGl2
ZXJ5Jyk7CiAKIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIHZhciBtdXRhdGlvbnM7CkBA
IC0xMSw3ICsxMSw3IEBAIGZ1bmN0aW9uIHN0YXJ0KCkgewogICAgIG11dGF0aW9ucyA9IG51bGw7
CiAgICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAKLSAgICBvYnNlcnZl
ciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICBvYnNlcnZl
ciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgbXV0YXRpb25z
ID0gbTsKICAgICB9KTsKIApAQCAtMzYsNyArMzYsNyBAQCBmdW5jdGlvbiBmaW5pc2goKSB7CiAg
ICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKLWlmICghd2luZG93LldlYktpdE11dGF0aW9uT2JzZXJ2
ZXIpCitpZiAoIXdpbmRvdy5NdXRhdGlvbk9ic2VydmVyKQogICAgIHRlc3RGYWlsZWQoJ1RoaXMg
dGVzdCByZXF1aXJlcyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKScpOwogZWxzZQogICAgIHN0
YXJ0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2RvY3VtZW50LWZy
YWdtZW50LWluc2VydGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9kb2N1bWVu
dC1mcmFnbWVudC1pbnNlcnRpb24uaHRtbAppbmRleCBjYWM0NmNmZjQzMjA3YTllMmJmMGQ5ZmE2
YzNjM2RlYzJhZTVmZmU0Li5iNjQ2NmVjZWI0NGQ2NGFmZjhhNmY5YzMwOGYwZDVmNjAyNGY4NmZm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2RvY3VtZW50LWZyYWdtZW50
LWluc2VydGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vZG9jdW1lbnQt
ZnJhZ21lbnQtaW5zZXJ0aW9uLmh0bWwKQEAgLTIwLDcgKzIwLDcgQEAgZnVuY3Rpb24gY3JlYXRl
T2JzZXJ2ZWREaXYoKSB7CiBmdW5jdGlvbiBjYWxsYmFjayhtdXRhdGlvbnMpIHsKICAgICB3aW5k
b3cubXV0YXRpb25zID0gbXV0YXRpb25zOwogfQotdmFyIG9ic2VydmVyID0gbmV3IFdlYktpdE11
dGF0aW9uT2JzZXJ2ZXIoY2FsbGJhY2spOwordmFyIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2Jz
ZXJ2ZXIoY2FsbGJhY2spOwogCiBmdW5jdGlvbiB0ZXN0QXBwZW5kQ2hpbGQoKSB7CiAgICAgZGVi
dWcoJ1Rlc3RpbmcgYXBwZW5kQ2hpbGQnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
bXV0YXRpb24vZW5kLW9mLXRhc2stZGVsaXZlcnkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0
YXRpb24vZW5kLW9mLXRhc2stZGVsaXZlcnkuaHRtbAppbmRleCAyMmQzNjQ3OGM4OTcyYWJhZDll
N2RlNTIwOGYyOTZiMzhkMzhmOTZiLi40Yzc5YTc1NGJlMjQ0YjY0ZWE5NmU2Y2I0NTdhZWMwN2I2
YTg5N2M0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2VuZC1vZi10YXNr
LWRlbGl2ZXJ5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9lbmQtb2YtdGFz
ay1kZWxpdmVyeS5odG1sCkBAIC0xMiw3ICsxMiw3IEBACiAgICAgdmFyIGxpc3QgPSBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yKCdvbCcpOwogICAgIHZhciBwID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cigncCcpOwogICAgIHZhciBvYnNlcnZlclJ1bnMgPSAwOwotICAgIHZhciBvYnNlcnZlciA9IG5l
dyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKCkgeyArK29ic2VydmVyUnVuczsgfSk7
CisgICAgdmFyIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKSB7ICsr
b2JzZXJ2ZXJSdW5zOyB9KTsKICAgICBvYnNlcnZlci5vYnNlcnZlKGxpc3QsIHtjaGlsZExpc3Q6
IHRydWV9KTsKICAgICBsaXN0LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCBmdW5jdGlvbigpIHsK
ICAgICAgICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSBvYnNlcnZlclJ1bnMgPT0gMSA/ICdQ
QVNTRUQnIDogJ0ZBSUxFRCc7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9u
L2ZpbGVzeXN0ZW0tY2FsbGJhY2stZGVsaXZlcnkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0
YXRpb24vZmlsZXN5c3RlbS1jYWxsYmFjay1kZWxpdmVyeS5odG1sCmluZGV4IGVmMWM1NmExNWE4
ZTgyMzA0YzgxZTU3ZjRhY2RjODhjOWRiNzU3ZjcuLmFiNTViODk5NGQzODFmZDU3NmMyMWVlMTZk
ZWMwODg3MzdhOWM2MmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vZmls
ZXN5c3RlbS1jYWxsYmFjay1kZWxpdmVyeS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0
YXRpb24vZmlsZXN5c3RlbS1jYWxsYmFjay1kZWxpdmVyeS5odG1sCkBAIC0xMiw3ICsxMiw3IEBA
IGZ1bmN0aW9uIHRlc3RGaWxlc3lzdGVtKCkgewogICAgIGZ1bmN0aW9uIHN0YXJ0KCkgewogICAg
ICAgICBtdXRhdGlvbnMgPSBudWxsOwogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKTsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZl
cihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIo
ZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAK
QEAgLTU2LDcgKzU2LDcgQEAgZnVuY3Rpb24gdGVzdEZpbGVzeXN0ZW0oKSB7CiAKIGRlc2NyaXB0
aW9uKCdUZXN0IHRoYXQgTXV0YXRpb24gUmVjb3JkcyBhcmUgZGVsaXZlcmVkIGZvbGxvd2luZyBG
aWxlU3lzdGVtIGNhbGxiYWNrcy4nKTsKIAotaWYgKCF3aW5kb3cuV2ViS2l0TXV0YXRpb25PYnNl
cnZlciB8fCAhd2luZG93LndlYmtpdFJlcXVlc3RGaWxlU3lzdGVtKSB7CitpZiAoIXdpbmRvdy5N
dXRhdGlvbk9ic2VydmVyIHx8ICF3aW5kb3cud2Via2l0UmVxdWVzdEZpbGVTeXN0ZW0pIHsKICAg
ICB0ZXN0RmFpbGVkKCdUaGlzIHRlc3QgcmVxdWlyZXMgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVS
UykgYW5kIEVOQUJMRShGSUxFX1NZU1RFTSknKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0gZWxz
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9pbmxpbmUtZXZlbnQtbGlz
dGVuZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vaW5saW5lLWV2ZW50LWxpc3Rl
bmVyLmh0bWwKaW5kZXggMzA5NjhlMTRmYmQ2Nzk4MWRhMDVhZmIwODFkZDg5M2Q3YmJlMDk5My4u
NTdkODZiOTNiYTgyYzM5MmQ5OTQ5ZjRjYmM5YjYwNTQ3MzJiMjQwYiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9pbmxpbmUtZXZlbnQtbGlzdGVuZXIuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2lubGluZS1ldmVudC1saXN0ZW5lci5odG1sCkBAIC0x
MCw3ICsxMCw3IEBACiAKICAgICB2YXIgbGlzdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ29s
Jyk7CiAgICAgdmFyIG9ic2VydmVyUmFuID0gZmFsc2U7Ci0gICAgdmFyIG9ic2VydmVyID0gbmV3
IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKSB7IG9ic2VydmVyUmFuID0gdHJ1ZTsg
fSk7CisgICAgdmFyIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKSB7
IG9ic2VydmVyUmFuID0gdHJ1ZTsgfSk7CiAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShsaXN0LCB7Y2hp
bGRMaXN0OiB0cnVlLCBjaGFyYWN0ZXJEYXRhOiB0cnVlfSk7CiAgICAgbGlzdC5mb2N1cygpOwog
ICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L211dGF0aW9uL211dGF0ZS1kdXJpbmctZGVsaXZlcnkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
bXV0YXRpb24vbXV0YXRlLWR1cmluZy1kZWxpdmVyeS5odG1sCmluZGV4IGY5MzAxYjk3ZTVjZDE4
YTEwNTIyNGNmZGFjNGZlNGY4YTM5MzdiMzYuLmM5NDlmN2U3YjAyZTAyNzhkYWY5ZGJmN2YwNGYz
YmE3ZWVmODM4NmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vbXV0YXRl
LWR1cmluZy1kZWxpdmVyeS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vbXV0
YXRlLWR1cmluZy1kZWxpdmVyeS5odG1sCkBAIC0xNSwxNCArMTUsMTQgQEAgZnVuY3Rpb24gZmlu
aXNoKCkgewogdmFyIG9yZGVyID0gW107CiB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7CiAKLXZhciBvYnNlcnZlcjEgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihm
dW5jdGlvbihtdXRhdGlvbnMpIHsKK3ZhciBvYnNlcnZlcjEgPSBuZXcgTXV0YXRpb25PYnNlcnZl
cihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICBvcmRlci5wdXNoKDEpOwogICAgIGRpdi5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykpOwogfSk7Ci12YXIgb2JzZXJ2
ZXIyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7Cit2
YXIgb2JzZXJ2ZXIyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7
CiAgICAgb3JkZXIucHVzaCgyKTsKIH0pOwotdmFyIG9ic2VydmVyMyA9IG5ldyBXZWJLaXRNdXRh
dGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewordmFyIG9ic2VydmVyMyA9IG5ldyBN
dXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgIG9yZGVyLnB1c2goMyk7
CiB9KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9tdXRhdGlvbi1j
YWxsYmFjay1ub24tZWxlbWVudC1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlv
bi9tdXRhdGlvbi1jYWxsYmFjay1ub24tZWxlbWVudC1jcmFzaC5odG1sCmluZGV4IDc1ZjIyZWY5
NjExNmEzYTUwNzk2YzQ4YTM2ZTNlZDcwZTA4NTBiNmUuLjJlYWEwNDYxYjcxMDY4NWEwNjNiZjcx
YzhjNzhmNDM3MzU5MjZiZjEgMTAwNzU1Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24v
bXV0YXRpb24tY2FsbGJhY2stbm9uLWVsZW1lbnQtY3Jhc2guaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L211dGF0aW9uL211dGF0aW9uLWNhbGxiYWNrLW5vbi1lbGVtZW50LWNyYXNoLmh0bWwK
QEAgLTksNyArOSw3IEBAIGZ1bmN0aW9uIG11dGF0aW9uQ2FsbGJhY2sobXV0YXRpb25zLCBvYnNl
cnZlcikgewogICAgIG11dGF0aW9uc1swXS5hZGRlZE5vZGVzWy0xXTsKIH0KIAotdmFyIG11dGF0
aW9uT2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihtdXRhdGlvbkNhbGxiYWNr
KTsKK3ZhciBtdXRhdGlvbk9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIobXV0YXRpb25D
YWxsYmFjayk7CiBtdXRhdGlvbk9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuYm9keSwge2NoaWxk
TGlzdDogdHJ1ZX0pOwogZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZSgiUEFTUy4gV2ViS2l0IGRpZG4ndCBjcmFzaCIpKTsKIDwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9tdXRhdGlvbi1vYnNlcnZlci1jb25zdHJ1
Y3Rvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL211dGF0aW9uLW9i
c2VydmVyLWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dAppbmRleCAyYmViM2U4NmU3MGUyNDg1YTc3
MjAxODA3NzY0Mjg1OTE3OTI3NDlkLi41NDdmNGJkNDgzZjNmMDE5NWIwYWUwNjc0YzA2OGVhN2Rm
YjU5YzdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL211dGF0aW9uLW9i
c2VydmVyLWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L211
dGF0aW9uL211dGF0aW9uLW9ic2VydmVyLWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dApAQCAtMSwx
MSArMSwxMSBAQAotVGVzdCB0aGUgY29uc3RydWN0b3Igb2YgV2ViS2l0TXV0YXRpb25PYnNlcnZl
cgorVGVzdCB0aGUgY29uc3RydWN0b3Igb2YgTXV0YXRpb25PYnNlcnZlcgogCiBPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyB3aW5kb3cuV2ViS2l0TXV0YXRpb25PYnNlcnZlciBp
cyBub24tbnVsbC4KLVBBU1MgdHlwZW9mIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIucHJvdG90eXBl
Lm9ic2VydmUgaXMgImZ1bmN0aW9uIgotUEFTUyB0eXBlb2YgV2ViS2l0TXV0YXRpb25PYnNlcnZl
ci5wcm90b3R5cGUuZGlzY29ubmVjdCBpcyAiZnVuY3Rpb24iCitQQVNTIHdpbmRvdy5NdXRhdGlv
bk9ic2VydmVyIGlzIG5vbi1udWxsLgorUEFTUyB0eXBlb2YgTXV0YXRpb25PYnNlcnZlci5wcm90
b3R5cGUub2JzZXJ2ZSBpcyAiZnVuY3Rpb24iCitQQVNTIHR5cGVvZiBNdXRhdGlvbk9ic2VydmVy
LnByb3RvdHlwZS5kaXNjb25uZWN0IGlzICJmdW5jdGlvbiIKIFBBU1MgdHlwZW9mIG9ic2VydmVy
Lm9ic2VydmUgaXMgImZ1bmN0aW9uIgogUEFTUyB0eXBlb2Ygb2JzZXJ2ZXIuZGlzY29ubmVjdCBp
cyAiZnVuY3Rpb24iCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL211dGF0aW9uLW9ic2VydmVyLWNvbnN0cnVjdG9y
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL211dGF0aW9uLW9ic2VydmVyLWNvbnN0
cnVjdG9yLmh0bWwKaW5kZXggYWI0MGY3MGVkNzM2OGY1Mzg1YTFmNDlkODVkMzllNGE2MGFlMzdj
ZC4uYjhhOTJiYjNhNmZiMmFhYTFlNDNlNGU0NDUwODUzNDAwMWZjOWJjZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9tdXRhdGlvbi1vYnNlcnZlci1jb25zdHJ1Y3Rvci5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vbXV0YXRpb24tb2JzZXJ2ZXItY29u
c3RydWN0b3IuaHRtbApAQCAtMTEsMTcgKzExLDE3IEBACiA8c2NyaXB0PgogCiBmdW5jdGlvbiBy
dW5UZXN0KCkgewotICAgIHNob3VsZEJlTm9uTnVsbCgnd2luZG93LldlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXInKTsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3R5cGVvZiBXZWJLaXRNdXRhdGlv
bk9ic2VydmVyLnByb3RvdHlwZS5vYnNlcnZlJywgJ2Z1bmN0aW9uJyk7Ci0gICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCd0eXBlb2YgV2ViS2l0TXV0YXRpb25PYnNlcnZlci5wcm90b3R5cGUuZGlz
Y29ubmVjdCcsICdmdW5jdGlvbicpOwotICAgIHdpbmRvdy5vYnNlcnZlciA9IG5ldyBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeyB9KTsKKyAgICBzaG91bGRCZU5v
bk51bGwoJ3dpbmRvdy5NdXRhdGlvbk9ic2VydmVyJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCd0eXBlb2YgTXV0YXRpb25PYnNlcnZlci5wcm90b3R5cGUub2JzZXJ2ZScsICdmdW5jdGlv
bicpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygndHlwZW9mIE11dGF0aW9uT2JzZXJ2ZXIu
cHJvdG90eXBlLmRpc2Nvbm5lY3QnLCAnZnVuY3Rpb24nKTsKKyAgICB3aW5kb3cub2JzZXJ2ZXIg
PSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsgfSk7CiAgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCd0eXBlb2Ygb2JzZXJ2ZXIub2JzZXJ2ZScsICdmdW5jdGlvbicp
OwogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygndHlwZW9mIG9ic2VydmVyLmRpc2Nvbm5lY3Qn
LCAnZnVuY3Rpb24nKTsKIH0KIAotZGVzY3JpcHRpb24oJ1Rlc3QgdGhlIGNvbnN0cnVjdG9yIG9m
IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXInKTsKK2Rlc2NyaXB0aW9uKCdUZXN0IHRoZSBjb25zdHJ1
Y3RvciBvZiBNdXRhdGlvbk9ic2VydmVyJyk7CiAKLWlmICghd2luZG93LldlYktpdE11dGF0aW9u
T2JzZXJ2ZXIpCitpZiAoIXdpbmRvdy5NdXRhdGlvbk9ic2VydmVyKQogICAgIHRlc3RGYWlsZWQo
J1RoaXMgdGVzdCByZXF1aXJlcyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKScpOwogZWxzZQog
ICAgIHJ1blRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2Jz
ZXJ2ZS1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24v
b2JzZXJ2ZS1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCAwN2E2OGMzY2Q5ZjcwNGI4YzUx
ZTE1MWQ0N2RhMTQwZmM0ZjEzZGRjLi5iOTk4Yzk4OTQ3M2Y5YTdiZmFiYjk1NjM5YmI0MDYyNmU4
MGQ3MTliIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtYXR0
cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNl
cnZlLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotVGVzdCBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyLm9ic2VydmUgb24gYXR0cmlidXRlcworVGVzdCBNdXRhdGlvbk9ic2Vy
dmVyLm9ic2VydmUgb24gYXR0cmlidXRlcwogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1hdHRyaWJ1dGVz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtYXR0cmlidXRlcy5odG1s
CmluZGV4IDQyMWVlYWRmMWZmNzE4NjliODNhOTk5MjI4MDc2MGM4MmRmNGEyZmQuLjM2ZWE5MGI1
MTAzYTlmMTI1ZWIzNjAzZDkwMWI3NjFiNDJlYmY3YTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1hdHRyaWJ1dGVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWF0dHJpYnV0ZXMuaHRtbApAQCAtMTgsNyArMTgsNyBAQCBm
dW5jdGlvbiB0ZXN0QmFzaWMoKSB7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpOwogICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCdiYXInLCAnZm9vJyk7CiAKLSAg
ICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7
CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewog
ICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTgyLDcgKzgyLDcg
QEAgZnVuY3Rpb24gdGVzdFdyb25nVHlwZSgpIHsKIAogICAgICAgICBtdXRhdGlvbnMgPSBudWxs
OwogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAg
b2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAg
ICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAg
ICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTExMSw3ICsxMTEsNyBAQCBm
dW5jdGlvbiB0ZXN0TXVsdGlwbGVSZWdpc3RyYXRpb24oKSB7CiAJCWNhbGxzID0gMDsKICAgICAg
ICAgbXV0YXRpb25zID0gbnVsbDsKICAgICAgICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIo
ZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1
bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAJCQljYWxscysrOwogICAg
ICAgICB9KTsKQEAgLTE1MywxMCArMTUzLDEwIEBAIGZ1bmN0aW9uIHRlc3RNdWx0aXBsZU9ic2Vy
dmVycygpIHsKICAgICAgICAgZGVidWcoJ1Rlc3RpbmcgdGhhdCBtdWx0aXBsZSBvYnNlcnZlcnMg
Y2FuIGJlIHJlZ2lzdGVyZWQgdG8gYSBnaXZlbiBub2RlIGFuZCBib3RoIHJlY2VpdmUgbXV0YXRp
b25zLicpOwogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwogICAgICAgICBkaXYgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0
YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0
aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAg
ICAgICAgfSk7Ci0gICAgICAgIG9ic2VydmVyMiA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVy
KGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIo
ZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zMiA9IG07CiAgICAgICAgIH0pOwog
ICAgICAgICBvYnNlcnZlci5vYnNlcnZlKGRpdiwgeyBhdHRyaWJ1dGVzOiB0cnVlIH0pOwpAQCAt
MTg5LDcgKzE4OSw3IEBAIGZ1bmN0aW9uIHRlc3ROYW1lc3BhY2VVUkkoKSB7CiAgICAgICAgIGRl
YnVnKCdUZXN0aW5nIHRoYXQgImF0dHJpYnV0ZU5hbWVzcGFjZSIgdmFsdWUgaXMgZGVsaXZlcmVk
IHByb3Blcmx5LicpOwogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwogICAgICAgICBkaXYgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2Vi
S2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3
IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0g
bTsKICAgICAgICAgfSk7CiAKQEAgLTIyMSw3ICsyMjEsNyBAQCBmdW5jdGlvbiB0ZXN0UHJvcGVy
dHlBY2Nlc3MoKSB7CiAgICAgICAgIGltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycp
OwogICAgICAgICBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOwogCi0gICAgICAgIG9i
c2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAg
ICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAg
ICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBAIC0yNjIsNyArMjYyLDcgQEAgZnVu
Y3Rpb24gdGVzdE9yZGVyaW5nV3J0RE9NU3VidHJlZU1vZGlmaWVkKCkgewogCiAgICAgICAgIHN1
YkRpdiA9IGRpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7CiAK
LSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbiht
KSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkg
ewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTMwNSw3ICsz
MDUsNyBAQCBmdW5jdGlvbiB0ZXN0T2xkVmFsdWUoKSB7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCdiYXInLCAn
Ym9vJyk7CiAgICAgICAgIAotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9i
c2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRh
dGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICAgICAgd2luZG93Lm11
dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAgICAgICAgIG9ic2VydmVyLm9ic2Vy
dmUoZGl2LCB7IGF0dHJpYnV0ZXM6IHRydWUsIGF0dHJpYnV0ZU9sZFZhbHVlOiB0cnVlIH0pOwpA
QCAtMzQ2LDEwICszNDYsMTAgQEAgZnVuY3Rpb24gdGVzdE9sZFZhbHVlQXNSZXF1ZXN0ZWQoKSB7
CiAgICAgICAgIG11dGF0aW9ucyA9IG51bGw7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCdmb28nLCAnYmFyJyk7
Ci0gICAgICAgIG9ic2VydmVyV2l0aE9sZFZhbHVlID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2
ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyV2l0aE9sZFZhbHVlID0g
bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3
aW5kb3cubXV0YXRpb25zV2l0aE9sZFZhbHVlID0gbXV0YXRpb25zOwogICAgICAgICB9KTsKLSAg
ICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRh
dGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlv
bihtdXRhdGlvbnMpIHsKICAgICAgICAgICAgIHdpbmRvdy5tdXRhdGlvbnMgPSBtdXRhdGlvbnM7
CiAgICAgICAgIH0pOwogICAgICAgICBvYnNlcnZlcldpdGhPbGRWYWx1ZS5vYnNlcnZlKGRpdiwg
eyBhdHRyaWJ1dGVzOiB0cnVlLCBhdHRyaWJ1dGVPbGRWYWx1ZTogdHJ1ZSB9KTsKQEAgLTM4Nyw3
ICszODcsNyBAQCBmdW5jdGlvbiB0ZXN0T2xkVmFsdWVVbmlvbk11bHRpcGxlT2JzZXJ2YXRpb25z
KCkgewogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAg
ICAgc3BhbiA9IGRpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykp
OwogICAgICAgICBzcGFuLnNldEF0dHJpYnV0ZSgnZm9vJywgJ2JhcicpOwotICAgICAgICBvYnNl
cnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewor
ICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9u
cykgewogICAgICAgICAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAg
fSk7CiAgICAgICAgIG9ic2VydmVyLm9ic2VydmUoZGl2LCB7IGF0dHJpYnV0ZXM6IHRydWUsIGF0
dHJpYnV0ZU9sZFZhbHVlOiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pOwpAQCAtNDE3LDcgKzQxNyw3
IEBAIGZ1bmN0aW9uIHRlc3RJRExBdHRyaWJ1dGUoKSB7CiAgICAgICAgIGRlYnVnKCdUZXN0aW5n
IHNldHRpbmcgYW4gYXR0cmlidXRlIHZpYSByZWZsZWN0ZWQgSURMIGF0dHJpYnV0ZS4nKTsKICAg
ICAgICAgbXV0YXRpb25zID0gbnVsbDsKICAgICAgICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZGl2Jyk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2
ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9u
T2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRp
b25zID0gbXV0YXRpb25zOwogICAgICAgICB9KTsKICAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShk
aXYsIHsgYXR0cmlidXRlczogdHJ1ZSwgYXR0cmlidXRlT2xkVmFsdWU6IHRydWUgfSk7CkBAIC00
NTQsNyArNDU0LDcgQEAgZnVuY3Rpb24gdGVzdEF0dHJpYnV0ZUZpbHRlcigpIHsKICAgICAgICAg
ZGVidWcoJ1Rlc3RpbmcgdGhhdCBhdHRyaWJ1dGVGaWx0ZXIgd29ya3MgYXMgZXhwZWN0ZWQgYW5k
IG9ic2VydmVzIGNhc2Ugd2l0aCBIVE1MIGVsZW1lbnRzLicpOwogCiAgICAgICAgIG11dGF0aW9u
cyA9IG51bGw7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIo
ZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1
bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBA
IC00OTQsNyArNDk0LDcgQEAgZnVuY3Rpb24gdGVzdEF0dHJpYnV0ZUZpbHRlclN1YnRyZWUoKSB7
CiAgICAgICAgIGRlYnVnKCdUZXN0aW5nIHRoZSBiZWhhdmlvciBvZiBhdHRyaWJ1dGVGaWx0ZXIg
d2hlbiB0aGUgc2FtZSBvYnNlcnZlciBvYnNlcnZlcyBhdCBtdWx0aXBsZSBub2RlcyBpbiBhIHN1
YnRyZWUgd2l0aCBkaWZmZXJlbnQgZmlsdGVyIG9wdGlvbnMuJyk7CiAKICAgICAgICAgbXV0YXRp
b25zID0gbnVsbDsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZl
cihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIo
ZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAK
QEAgLTU2NSw3ICs1NjUsNyBAQCBmdW5jdGlvbiB0ZXN0QXR0cmlidXRlRmlsdGVyTm9uSFRNTEVs
ZW1lbnQoKSB7CiAgICAgICAgIGRlYnVnKCdUZXN0aW5nIHRoYXQgc2V0dGluZyBhbiBhdHRyaWJ1
dGVGaWx0ZXIgZmlsdGVycyBvdXQgbmFtZXNwYWNlZCBhdHRyaWJ1dGVzLicpOwogCiAgICAgICAg
IG11dGF0aW9ucyA9IG51bGw7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9i
c2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAg
IH0pOwogCkBAIC01OTcsNyArNTk3LDcgQEAgZnVuY3Rpb24gdGVzdEF0dHJpYnV0ZUZpbHRlck5v
bkhUTUxEb2N1bWVudCgpIHsKIAogICAgICAgICBzdmdEb2MgPSBkb2N1bWVudC5pbXBsZW1lbnRh
dGlvbi5jcmVhdGVEb2N1bWVudCgnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLCAnc3ZnJywg
J3N2ZycpOwogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwotICAgICAgICBvYnNlcnZlciA9IG5l
dyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIg
PSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICBtdXRhdGlv
bnMgPSBtOwogICAgICAgICB9KTsKIApAQCAtNjQyLDcgKzY0Miw3IEBAIGZ1bmN0aW9uIHRlc3RT
dHlsZUF0dHJpYnV0ZVByb3BlcnR5QWNjZXNzKCkgewogICAgICAgICBkZWJ1ZygnVGVzdGluZyB0
aGF0IG1vZGlmeWluZyBhbiBlbGVtZW50cyBzdHlsZSBwcm9wZXJ0eSBkaXNwYXRjaGVzIE11dGF0
aW9uIFJlY29yZHMuJyk7CiAKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKLSAgICAgICAgb2Jz
ZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAg
IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAg
ICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTY5NCw3ICs2OTQsNyBAQCBmdW5j
dGlvbiB0ZXN0U3R5bGVBdHRyaWJ1dGVQcm9wZXJ0eUFjY2Vzc09sZFZhbHVlKCkgewogICAgICAg
ICBkZWJ1ZygnVGVzdGluZyB0aGF0IG1vZGlmeWluZyBhbiBlbGVtZW50cyBzdHlsZSBwcm9wZXJ0
eSBkaXNwYXRjaGVzIE11dGF0aW9uIFJlY29yZHMgd2l0aCBjb3JyZWN0IG9sZFZhbHVlcy4nKTsK
IAogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJL
aXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcg
TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICBtdXRhdGlvbnMgPSBt
OwogICAgICAgICB9KTsKIApAQCAtNzQ2LDcgKzc0Niw3IEBAIGZ1bmN0aW9uIHRlc3RTdHlsZUF0
dHJpYnV0ZVByb3BlcnR5QWNjZXNzSWdub3JlTm9vcCgpIHsKICAgICAgICAgZGVidWcoJ1Rlc3Rp
bmcgdGhhdCBhIG5vLW9wIHN0eWxlIHByb3BlcnR5IG11dGF0aW9uIGRvZXMgbm90IGNyZWF0ZSBN
dXRhdGlvbiBSZWNvcmRzLicpOwogCiAgICAgICAgIG11dGF0aW9ucyA9IG51bGw7Ci0gICAgICAg
IG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAg
ICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAg
ICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBAIC03NzYsNyArNzc2LDcgQEAg
ZnVuY3Rpb24gdGVzdE11dGF0ZVRocm91Z2hBdHRyTm9kZVZhbHVlKCkgewogICAgICAgICBkZWJ1
ZygnVGVzdCB0aGF0IG11dGF0aW5nIGFuIGF0dHJpYnV0ZSB0aHJvdWdoIGFuIGF0dHIgbm9kZSBk
ZWxpdmVycyBtdXRhdGlvbiByZWNvcmRzJyk7CiAKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsK
LSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbiht
dXRhdGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5j
dGlvbihtdXRhdGlvbnMpIHsKICAgICAgICAgICAgIHdpbmRvdy5tdXRhdGlvbnMgPSBtdXRhdGlv
bnM7CiAgICAgICAgIH0pOwogCkBAIC04MTAsNyArODEwLDcgQEAgZnVuY3Rpb24gdGVzdE11dGF0
ZVRocm91Z2hBdHRyTm9kZUNoaWxkKCkgewogICAgICAgICBkZWJ1ZygnVGVzdCB0aGF0IG11dGF0
aW5nIGFuIGF0dHJpYnV0ZSBieSBhdHRhY2hpbmcgYSBjaGlsZCB0byBhbiBhdHRyIG5vZGUgZGVs
aXZlcnMgbXV0YXRpb24gcmVjb3JkcycpOwogCiAgICAgICAgIG11dGF0aW9ucyA9IG51bGw7Ci0g
ICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0
YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rp
b24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0YXRpb25z
OwogICAgICAgICB9KTsKIApAQCAtODQ0LDcgKzg0NCw3IEBAIGZ1bmN0aW9uIHRlc3RTZXRBbmRS
ZW1vdmVBdHRyaWJ1dGVOb2RlKCkgewogICAgICAgICBkZWJ1ZygnVGVzdCB0aGF0IG11dGF0aW5n
IHZpYSBzZXRBdHRyaWJ1dGVOb2RlIGRlbGl2ZXJzIG11dGF0aW9uIHJlY29yZHMnKTsKIAogICAg
ICAgICBtdXRhdGlvbnMgPSBudWxsOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRh
dGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBvYnNlcnZlciA9IG5l
dyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICAgICAgd2lu
ZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAKQEAgLTg5Myw3ICs4OTMs
NyBAQCBmdW5jdGlvbiB0ZXN0TWl4ZWROb2RlQW5kRWxlbWVudE9wZXJhdGlvbnMoKSB7CiAgICAg
ICAgIGRlYnVnKCdUZXN0IHRoYXQgc2V0QXR0cmlidXRlIG9uIGFuIGF0dHJpYnV0ZSB3aXRoIGFu
IGV4aXN0aW5nIEF0dHIgZGVsaXZlcnMgbXV0YXRpb24gcmVjb3JkcycpOwogCiAgICAgICAgIG11
dGF0aW9ucyA9IG51bGw7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0
aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0
YXRpb25zID0gbXV0YXRpb25zOwogICAgICAgICB9KTsKIApAQCAtOTI5LDcgKzkyOSw3IEBAIGZ1
bmN0aW9uIHRlc3ROYW1lZE5vZGVNYXBPcGVyYXRpb25zKCkgewogICAgICAgICBkZWJ1ZygnVGVz
dCB0aGF0IHNldE5hbWVkSXRlbSBhbmQgcmVtb3ZlTmFtZWRJdGVtIGRlbGl2ZXIgbXV0YXRpb24g
cmVjb3JkcycpOwogCiAgICAgICAgIG11dGF0aW9ucyA9IG51bGw7Ci0gICAgICAgIG9ic2VydmVy
ID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAg
ICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7
CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0YXRpb25zOwogICAgICAgICB9KTsK
IApAQCAtOTk3LDkgKzk5Nyw5IEBAIGZ1bmN0aW9uIHJ1bk5leHRUZXN0KCkgewogICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKIH0KIAotZGVzY3JpcHRpb24oJ1Rlc3QgV2ViS2l0TXV0YXRpb25PYnNl
cnZlci5vYnNlcnZlIG9uIGF0dHJpYnV0ZXMnKTsKK2Rlc2NyaXB0aW9uKCdUZXN0IE11dGF0aW9u
T2JzZXJ2ZXIub2JzZXJ2ZSBvbiBhdHRyaWJ1dGVzJyk7CiAKLWlmICghd2luZG93LldlYktpdE11
dGF0aW9uT2JzZXJ2ZXIpCitpZiAoIXdpbmRvdy5NdXRhdGlvbk9ic2VydmVyKQogICAgIHRlc3RG
YWlsZWQoJ1RoaXMgdGVzdCByZXF1aXJlcyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKScpOwog
ZWxzZQogICAgIHJ1bk5leHRUZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211
dGF0aW9uL29ic2VydmUtY2hhcmFjdGVyZGF0YS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L211dGF0aW9uL29ic2VydmUtY2hhcmFjdGVyZGF0YS1leHBlY3RlZC50eHQKaW5kZXggMWRm
ZjNiNTVkMjc2Y2MxNWE2ODM5YmVkN2Q5N2IzODJjNmY3YWRmYi4uMzFkZDU3NDA1MmMyZmU3NjNl
ODhmMjdmMGEyNTkwMDhmZGU3ZTQwYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRh
dGlvbi9vYnNlcnZlLWNoYXJhY3RlcmRhdGEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1jaGFyYWN0ZXJkYXRhLWV4cGVjdGVkLnR4dApAQCAtMSw0
ICsxLDQgQEAKLVRlc3QgV2ViS2l0TXV0YXRpb25PYnNlcnZlci5vYnNlcnZlIG9uIENoYXJhY3Rl
ckRhdGEgbm9kZXMKK1Rlc3QgTXV0YXRpb25PYnNlcnZlci5vYnNlcnZlIG9uIENoYXJhY3RlckRh
dGEgbm9kZXMKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtY2hhcmFjdGVyZGF0YS5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWNoYXJhY3RlcmRhdGEuaHRtbAppbmRleCAwMWNh
ZWEyMWVhNDMwNmI2ZmNmZjJlNDlmZDBlMzk3MzdhMTI2NDVjLi5kODkwNTRhNzNhODQ0MzFmMGU5
OGQ5NjliMzQyODk2YmY2YjYwNzI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0
aW9uL29ic2VydmUtY2hhcmFjdGVyZGF0YS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0
YXRpb24vb2JzZXJ2ZS1jaGFyYWN0ZXJkYXRhLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAgZnVuY3Rp
b24gdGVzdEJhc2ljKCkgewogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKTsKICAgICAgICAgZGl2LnRleHRDb250ZW50ID0gJ2Zvbyc7CiAgICAgICAgIGNoYXJEYXRh
Tm9kZSA9IGRpdi5maXJzdENoaWxkOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRh
dGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRp
b25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICBtdXRhdGlvbnMgPSBtOwogICAg
ICAgICB9KTsKIApAQCAtODcsNyArODcsNyBAQCBmdW5jdGlvbiB0ZXN0V3JvbmdUeXBlKCkgewog
ICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgZGl2
LnRleHRDb250ZW50ID0gJ2hlbGxvJzsKICAgICAgICAgY2hhckRhdGFOb2RlID0gZGl2LmZpcnN0
Q2hpbGQ7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVu
Y3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0
aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBAIC0x
MTcsMTAgKzExNywxMCBAQCBmdW5jdGlvbiB0ZXN0TXVsdGlwbGVPYnNlcnZlcnMoKSB7CiAgICAg
ICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICBkaXYudGV4
dENvbnRlbnQgPSAnZm9vJzsKICAgICAgICAgY2hhckRhdGFOb2RlID0gZGl2LmZpcnN0Q2hpbGQ7
Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24o
bSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0p
IHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwotICAgICAgICBvYnNl
cnZlcjIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAg
IG9ic2VydmVyMiA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAg
ICAgIG11dGF0aW9uczIgPSBtOwogICAgICAgICB9KTsKICAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2
ZShjaGFyRGF0YU5vZGUsIHtjaGFyYWN0ZXJEYXRhOiB0cnVlfSk7CkBAIC0xNjEsNyArMTYxLDcg
QEAgZnVuY3Rpb24gdGVzdE9yZGVyaW5nV3J0RE9NU3VidHJlZU1vZGlmaWVkKCkgewogICAgICAg
ICBzdWJEaXYudGV4dENvbnRlbnQgPSAnZm9vJzsKICAgICAgICAgY2hhckRhdGFOb2RlID0gc3Vi
RGl2LmZpcnN0Q2hpbGQ7CiAKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25P
YnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2Jz
ZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAg
fSk7CiAKQEAgLTIwMiw3ICsyMDIsNyBAQCBmdW5jdGlvbiB0ZXN0T2xkVmFsdWUoKSB7CiAgICAg
ICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICBkaXYudGV4
dENvbnRlbnQgPSAnZm9vJzsKICAgICAgICAgY2hhckRhdGFOb2RlID0gZGl2LmZpcnN0Q2hpbGQ7
Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24o
bXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVu
Y3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0YXRp
b25zOwogICAgICAgICB9KTsKICAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShjaGFyRGF0YU5vZGUs
IHtjaGFyYWN0ZXJEYXRhOiB0cnVlLCBjaGFyYWN0ZXJEYXRhT2xkVmFsdWU6IHRydWV9KTsKQEAg
LTIzOSwxMCArMjM5LDEwIEBAIGZ1bmN0aW9uIHRlc3RPbGRWYWx1ZUFzUmVxdWVzdGVkKCkgewog
ICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgZGl2
LnRleHRDb250ZW50ID0gJ2Zvbyc7CiAgICAgICAgIGNoYXJEYXRhTm9kZSA9IGRpdi5maXJzdENo
aWxkOwotICAgICAgICBvYnNlcnZlcldpdGhPbGRWYWx1ZSA9IG5ldyBXZWJLaXRNdXRhdGlvbk9i
c2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBvYnNlcnZlcldpdGhPbGRWYWx1
ZSA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICAg
ICAgd2luZG93Lm11dGF0aW9uc1dpdGhPbGRWYWx1ZSA9IG11dGF0aW9uczsKICAgICAgICAgfSk7
Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24o
bXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVu
Y3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0YXRp
b25zOwogICAgICAgICB9KTsKICAgICAgICAgb2JzZXJ2ZXJXaXRoT2xkVmFsdWUub2JzZXJ2ZShj
aGFyRGF0YU5vZGUsIHtjaGFyYWN0ZXJEYXRhOiB0cnVlLCBjaGFyYWN0ZXJEYXRhT2xkVmFsdWU6
IHRydWV9KTsKQEAgLTI3Nyw3ICsyNzcsNyBAQCBmdW5jdGlvbiB0ZXN0T2xkVmFsdWVVbmlvbk11
bHRpcGxlT2JzZXJ2YXRpb25zKCkgewogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKTsKICAgICAgICAgZGl2LnRleHRDb250ZW50ID0gJ2Zvbyc7CiAgICAgICAgIGNo
YXJEYXRhTm9kZSA9IGRpdi5maXJzdENoaWxkOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJL
aXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBvYnNlcnZl
ciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICAg
ICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAgICAgICAgIG9i
c2VydmVyLm9ic2VydmUoZGl2LCB7Y2hhcmFjdGVyRGF0YTogdHJ1ZSwgY2hhcmFjdGVyRGF0YU9s
ZFZhbHVlOiB0cnVlLCBzdWJ0cmVlOiB0cnVlfSk7CkBAIC0zMTYsOSArMzE2LDkgQEAgZnVuY3Rp
b24gcnVuTmV4dFRlc3QoKSB7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCi1kZXNjcmlw
dGlvbignVGVzdCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUgb24gQ2hhcmFjdGVyRGF0
YSBub2RlcycpOworZGVzY3JpcHRpb24oJ1Rlc3QgTXV0YXRpb25PYnNlcnZlci5vYnNlcnZlIG9u
IENoYXJhY3RlckRhdGEgbm9kZXMnKTsKIAotaWYgKCF3aW5kb3cuV2ViS2l0TXV0YXRpb25PYnNl
cnZlcikKK2lmICghd2luZG93Lk11dGF0aW9uT2JzZXJ2ZXIpCiAgICAgdGVzdEZhaWxlZCgnVGhp
cyB0ZXN0IHJlcXVpcmVzIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpJyk7CiBlbHNlCiAgICAg
cnVuTmV4dFRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2Jz
ZXJ2ZS1jaGlsZExpc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9v
YnNlcnZlLWNoaWxkTGlzdC1leHBlY3RlZC50eHQKaW5kZXggZDdiYjI3NjQyZjFkNDZiZWZiYzJk
MDBmYjFhZTU5ZDhlMDc3ZDIwYS4uYzNjMWY2Y2RlNWIyMTBmYzZhMzU0MjA4ZjEwZTYzMzQ1MjU5
ZDhiOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWNoaWxk
TGlzdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZl
LWNoaWxkTGlzdC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1UZXN0IFdlYktpdE11dGF0
aW9uT2JzZXJ2ZXIub2JzZXJ2ZSBvbiBhdHRyaWJ1dGVzLgorVGVzdCBNdXRhdGlvbk9ic2VydmVy
Lm9ic2VydmUgb24gYXR0cmlidXRlcy4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtY2hpbGRMaXN0Lmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtY2hpbGRMaXN0Lmh0bWwKaW5k
ZXggYTNhODRkNDQzODg2NGFlNzJiMjljNjg5OGM0NDBlMDk4ZDI4ZDkxMi4uZGM2MThjNmFmN2Iw
NTI5YWZmYTU4ZjFhZmQwYmQ1NmMwYTQzMWY1MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9tdXRhdGlvbi9vYnNlcnZlLWNoaWxkTGlzdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
bXV0YXRpb24vb2JzZXJ2ZS1jaGlsZExpc3QuaHRtbApAQCAtMjQsNyArMjQsNyBAQCBmdW5jdGlv
biB0ZXN0QmFzaWMoKSB7CiAKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKICAgICAgICAgZGl2
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3
IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9
IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9u
cyA9IG07CiAgICAgICAgIH0pOwogCkBAIC04NCw3ICs4NCw3IEBAIGZ1bmN0aW9uIHRlc3RXcm9u
Z1R5cGUoKSB7CiAKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKICAgICAgICAgZGl2ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktp
dE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBN
dXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07
CiAgICAgICAgIH0pOwogCkBAIC0xMTMsNyArMTEzLDcgQEAgZnVuY3Rpb24gdGVzdE11bHRpcGxl
UmVnaXN0cmF0aW9uKCkgewogICAgICAgICBjYWxscyA9IDA7CiAgICAgICAgIG11dGF0aW9ucyA9
IG51bGw7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAg
ICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsK
KyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAg
ICAgICAgICAgICBtdXRhdGlvbnMgPSBtOwogICAgICAgICAgICAgY2FsbHMrKzsKICAgICAgICAg
fSk7CkBAIC0xNTQsMTAgKzE1NCwxMCBAQCBmdW5jdGlvbiB0ZXN0TXVsdGlwbGVPYnNlcnZlcnMo
KSB7CiAgICAgICAgIGRlYnVnKCdUZXN0aW5nIHRoYXQgbXVsdGlwbGUgb2JzZXJ2ZXJzIGNhbiBi
ZSByZWdpc3RlcmVkIHRvIGEgZ2l2ZW4gbm9kZSBhbmQgYm90aCByZWNlaXZlIG11dGF0aW9ucy4n
KTsKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKICAgICAgICAgZGl2ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9i
c2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAg
IH0pOwotICAgICAgICBvYnNlcnZlcjIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5j
dGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyMiA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0
aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9uczIgPSBtOwogICAgICAgICB9KTsKICAgICAg
ICAgb2JzZXJ2ZXIub2JzZXJ2ZShkaXYsIHsgY2hpbGRMaXN0OiB0cnVlIH0pOwpAQCAtMTkyLDcg
KzE5Miw3IEBAIGZ1bmN0aW9uIHRlc3RJbm5lckhUTUxBbmRJbm5lclRleHQoKSB7CiAgICAgICAg
IGRpdi5pbm5lckhUTUwgPSAnPHNwYW4+Rm9vPC9zcGFuPjxkaXY+QmFyPC9kaXY+JzsKICAgICAg
ICAgcmVtb3ZlZERpdjEgPSBkaXYuZmlyc3RDaGlsZDsKICAgICAgICAgcmVtb3ZlZERpdjIgPSBy
ZW1vdmVkRGl2MS5uZXh0U2libGluZzsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0
YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0
aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAg
ICAgICAgfSk7CiAKQEAgLTI1MCw3ICsyNTAsNyBAQCBmdW5jdGlvbiB0ZXN0UmVwbGFjZUNoaWxk
KCkgewogICAgICAgICBkaXYuaW5uZXJIVE1MID0gJzxzcGFuPkZvbzwvc3Bhbj48ZGl2PkJhcjwv
ZGl2Pic7CiAgICAgICAgIHJlbW92ZWREaXYxID0gZGl2LmZpcnN0Q2hpbGQ7CiAKLSAgICAgICAg
b2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAg
ICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAg
ICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTMxNSw3ICszMTUsNyBAQCBm
dW5jdGlvbiB0ZXN0SW5zZXJ0QmVmb3JlKCkgewogICAgICAgICBhZGRlZERpdjEgPSBmcmFnbWVu
dC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7CiAgICAgICAgIGFk
ZGVkRGl2MiA9IGZyYWdtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpKTsKIAotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1
bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5j
dGlvbihtKSB7CiAgICAgICAgICAgICBtdXRhdGlvbnMgPSBtOwogICAgICAgICB9KTsKIApAQCAt
MzU2LDcgKzM1Niw3IEBAIGZ1bmN0aW9uIHRlc3RBcHBlbmRDaGlsZCgpIHsKICAgICAgICAgYWRk
ZWREaXYxID0gZnJhZ21lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2
JykpOwogICAgICAgICBhZGRlZERpdjIgPSBmcmFnbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKSk7CiAKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0
YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0
aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAg
ICAgICAgfSk7CiAKQEAgLTM4Nyw3ICszODcsNyBAQCBmdW5jdGlvbiB0ZXN0SW5uZXJIVE1MRW1w
dHkoKSB7CiAKICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OwogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJL
aXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBvYnNlcnZl
ciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICAg
ICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAgICAgICAgIG9i
c2VydmVyLm9ic2VydmUoZGl2LCB7Y2hpbGRMaXN0OiB0cnVlfSk7CkBAIC00MTQsOSArNDE0LDkg
QEAgZnVuY3Rpb24gcnVuTmV4dFRlc3QoKSB7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogfQog
Ci1kZXNjcmlwdGlvbignVGVzdCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUgb24gYXR0
cmlidXRlcy4nKTsKK2Rlc2NyaXB0aW9uKCdUZXN0IE11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSBv
biBhdHRyaWJ1dGVzLicpOwogCi1pZiAoIXdpbmRvdy5XZWJLaXRNdXRhdGlvbk9ic2VydmVyKQor
aWYgKCF3aW5kb3cuTXV0YXRpb25PYnNlcnZlcikKICAgICB0ZXN0RmFpbGVkKCdUaGlzIHRlc3Qg
cmVxdWlyZXMgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUyknKTsKIGVsc2UKICAgICBydW5OZXh0
VGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWV4
Y2VwdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZl
LWV4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0CmluZGV4IDlmNmUzN2E5MTA2ZjA2MzgwMGFkZDMzZDdi
ZTBlMzEyZTBkMThiMjUuLjhjOWI0ZGU4MDhlYTFlZDliOTA0MzQ5NmJjNDU5NTk0MmY0MzQ4YjEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1leGNlcHRpb25z
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtZXhj
ZXB0aW9ucy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1UZXN0IHRoYXQgV2ViS2l0TXV0
YXRpb25PYnNlcnZlci5vYnNlcnZlIHRocm93cyBleGNlcHRpb25zIGFwcHJvcHJpYXRlbHkKK1Rl
c3QgdGhhdCBNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUgdGhyb3dzIGV4Y2VwdGlvbnMgYXBwcm9w
cmlhdGVseQogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1leGNlcHRpb25zLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L211dGF0aW9uL29ic2VydmUtZXhjZXB0aW9ucy5odG1sCmluZGV4IGQ0NjU3YjZkZDdj
MmUzMzEyODNlMjg5MjVjZGY5MGM1ZGY0NjIwNTkuLjc2NjE1NDdiMjc5ZmZmY2JjODMyN2Q1NmJh
MTk2ZmViM2ExYjViZWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2Jz
ZXJ2ZS1leGNlcHRpb25zLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNl
cnZlLWV4Y2VwdGlvbnMuaHRtbApAQCAtMTEsNyArMTEsNyBAQAogPHNjcmlwdD4KIAogZnVuY3Rp
b24gcnVuVGVzdCgpIHsKLSAgICB3aW5kb3cub2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25P
YnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsgfSk7CisgICAgd2luZG93Lm9ic2VydmVyID0g
bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7IH0pOwogICAgIHNob3Vs
ZFRocm93KCdvYnNlcnZlci5vYnNlcnZlKCknKTsKICAgICBzaG91bGRUaHJvdygnb2JzZXJ2ZXIu
b2JzZXJ2ZShudWxsKScpOwogICAgIHNob3VsZFRocm93KCdvYnNlcnZlci5vYnNlcnZlKHVuZGVm
aW5lZCknKTsKQEAgLTI2LDkgKzI2LDkgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICBzaG91
bGRUaHJvdygnb2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5ib2R5LCB7Y2hhcmFjdGVyRGF0YTog
dHJ1ZSwgYXR0cmlidXRlRmlsdGVyOiBbImlkIl19KScpOwogfQogCi1kZXNjcmlwdGlvbignVGVz
dCB0aGF0IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSB0aHJvd3MgZXhjZXB0aW9ucyBh
cHByb3ByaWF0ZWx5Jyk7CitkZXNjcmlwdGlvbignVGVzdCB0aGF0IE11dGF0aW9uT2JzZXJ2ZXIu
b2JzZXJ2ZSB0aHJvd3MgZXhjZXB0aW9ucyBhcHByb3ByaWF0ZWx5Jyk7CiAKLWlmICghd2luZG93
LldlYktpdE11dGF0aW9uT2JzZXJ2ZXIpCitpZiAoIXdpbmRvdy5NdXRhdGlvbk9ic2VydmVyKQog
ICAgIHRlc3RGYWlsZWQoJ1RoaXMgdGVzdCByZXF1aXJlcyBFTkFCTEUoTVVUQVRJT05fT0JTRVJW
RVJTKScpOwogZWxzZQogICAgIHJ1blRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvbXV0YXRpb24vb2JzZXJ2ZS1zdWJ0cmVlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvbXV0YXRpb24vb2JzZXJ2ZS1zdWJ0cmVlLWV4cGVjdGVkLnR4dAppbmRleCBiODk0ZGNkYTFi
M2Y2ZDJkMzQ5YmQ3YzRhOWE0Y2QwNjlhNGU2OWVkLi42NTNjN2E0ODIyMWM5M2UxOWQ3NjI4YWE2
Y2Y4Njg5NGYyOTEyMjAwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29i
c2VydmUtc3VidHJlZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlv
bi9vYnNlcnZlLXN1YnRyZWUtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotVGVzdCBXZWJL
aXRNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUgb24gYSBzdWJ0cmVlCitUZXN0IE11dGF0aW9uT2Jz
ZXJ2ZXIub2JzZXJ2ZSBvbiBhIHN1YnRyZWUKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtc3VidHJlZS5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLXN1YnRyZWUuaHRtbAppbmRl
eCAzN2U0MDI4NWUyYjhiNzFkMjIyNmZkMzYxODFkYTRiODUzYTIwNTcyLi45NTUxOTQ3YTRjMzI4
ZjVhODM0ODRjNjRmZTk0NTNjYTAyZDY1NmEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L211dGF0aW9uL29ic2VydmUtc3VidHJlZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0
YXRpb24vb2JzZXJ2ZS1zdWJ0cmVlLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAgZnVuY3Rpb24gdGVz
dEJhc2ljKCkgewogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsK
ICAgICAgICAgc3ViRGl2ID0gZGl2LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2RpdicpKTsKICAgICAgICAgc3ViRGl2LmlubmVySFRNTCA9ICdoZWxsbywgd29ybGQnOwotICAg
ICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0
aW9ucykgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9u
KG11dGF0aW9ucykgewogICAgICAgICAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsK
ICAgICAgICAgfSk7CiAKQEAgLTY2LDEwICs2NiwxMCBAQCBmdW5jdGlvbiB0ZXN0TXVsdGlwbGVP
YnNlcnZlcnMoKSB7CiAgICAgICAgIG11dGF0aW9uczIgPSBudWxsOwogICAgICAgICBkaXYgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgc3ViRGl2ID0gZGl2LmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsKLSAgICAgICAgb2JzZXJ2ZXIg
PSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICAg
ICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsK
ICAgICAgICAgICAgIHdpbmRvdy5tdXRhdGlvbnMgPSBtdXRhdGlvbnM7CiAgICAgICAgIH0pOwot
ICAgICAgICBvYnNlcnZlcjIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbiht
dXRhdGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVu
Y3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zMiA9IG11dGF0
aW9uczsKICAgICAgICAgfSk7CiAKQEAgLTEwOSw3ICsxMDksNyBAQCBmdW5jdGlvbiB0ZXN0TXVs
dGlwbGVPYnNlcnZhdGlvbnMoKSB7CiAgICAgICAgIGNhbGxzID0gMDsKICAgICAgICAgZGl2ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgIHN1YkRpdiA9IGRpdi5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7Ci0gICAgICAgIG9ic2VydmVy
ID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAg
ICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7
CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0YXRpb25zOwogICAgICAgICAgICAg
KytjYWxsczsKICAgICAgICAgfSk7CkBAIC0xNDUsNyArMTQ1LDcgQEAgZnVuY3Rpb24gdGVzdFRy
YW5zaWVudERldGFjaGVkQmFzaWMoKSB7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2RpdicpOwogICAgICAgICBzdWJEaXYgPSBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZGl2JykpOwogICAgICAgICBzdWJEaXYuaW5uZXJIVE1MID0gJ2hlbGxv
LCB3b3JsZCc7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIo
ZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2Jz
ZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25z
ID0gbXV0YXRpb25zOwogICAgICAgICB9KTsKIApAQCAtMjMwLDcgKzIzMCw3IEBAIGZ1bmN0aW9u
IHRlc3RUcmFuc2llbnREZXRhY2hlZERldGFpbGVkKCkgewogICAgICAgICBzdWJEaXYyLmlubmVy
SFRNTCA9ICdoZWxsbywgd29ybGQnOwogICAgICAgICBzdWJEaXYzID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7CiAKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25P
YnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0
YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICAgICAgICAgIHdpbmRvdy5t
dXRhdGlvbnMgPSBtdXRhdGlvbnM7CiAgICAgICAgIH0pOwogCkBAIC0yOTYsOSArMjk2LDkgQEAg
ZnVuY3Rpb24gcnVuTmV4dFRlc3QoKSB7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCi1k
ZXNjcmlwdGlvbignVGVzdCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUgb24gYSBzdWJ0
cmVlJyk7CitkZXNjcmlwdGlvbignVGVzdCBNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUgb24gYSBz
dWJ0cmVlJyk7CiAKLWlmICghd2luZG93LldlYktpdE11dGF0aW9uT2JzZXJ2ZXIpCitpZiAoIXdp
bmRvdy5NdXRhdGlvbk9ic2VydmVyKQogICAgIHRlc3RGYWlsZWQoJ1RoaXMgdGVzdCByZXF1aXJl
cyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKScpOwogZWxzZQogICAgIHJ1bk5leHRUZXN0KCk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL3NoYWRvdy1kb20uaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vc2hhZG93LWRvbS5odG1sCmluZGV4IDY2Yzc5ZWFj
MDBmOTU5NjBhMDQzMWNlMmIyOTUyMmNhMDc1NmJmYWIuLjczMTdkN2E3NTkwOTBhNjUxMzI1MTFj
Y2JmNGY1MTgwYTA0NTVkZTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24v
c2hhZG93LWRvbS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vc2hhZG93LWRv
bS5odG1sCkBAIC0xNCw3ICsxNCw3IEBAIGZ1bmN0aW9uIGRvVGVzdCgpIHsKICAgICB9CiAKICAg
ICB2YXIgc2hhZG93Um9vdCA9IGludGVybmFscy5zaGFkb3dSb290KGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoJ2lucHV0JykpOwotICAgIHZhciBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9i
c2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgIHZhciBvYnNlcnZlciA9IG5ldyBNdXRh
dGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICB3aW5kb3cubXV0YXRp
b25zID0gbXV0YXRpb25zOwogICAgIH0pOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L211dGF0aW9uL3Rha2VSZWNvcmRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0
YXRpb24vdGFrZVJlY29yZHMtZXhwZWN0ZWQudHh0CmluZGV4IGFjNjQ0MjZhYjEzYWUyZTFjOTAz
OGRmYjYzYjc5MTJkM2EwNjVlZjcuLjlmMzMyNjE0ZjQzNmUxYzIxMWY4YTUyZDY3NzA2NzI4YWNh
MTU0ZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vdGFrZVJlY29yZHMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vdGFrZVJlY29yZHMt
ZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotVGVzdGluZyBXZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyLnRha2VSZWNvcmRzCitUZXN0aW5nIE11dGF0aW9uT2JzZXJ2ZXIudGFrZVJlY29yZHMKIAog
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L211dGF0aW9uL3Rha2VSZWNvcmRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL3Rh
a2VSZWNvcmRzLmh0bWwKaW5kZXggMDM5YTMyZmJkOTExODBiYThkNjZjMTdkYjg1NzJjM2U0NTQ0
Y2JjMi4uNjM0MTgwYTU5Y2U1NGRkM2M2NzUyZTllYWNiZjM3ZDA5Y2UyMjAwYiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi90YWtlUmVjb3Jkcy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvbXV0YXRpb24vdGFrZVJlY29yZHMuaHRtbApAQCAtMjMsNyArMjMsNyBAQCBm
dW5jdGlvbiB0ZXN0QmFzaWMoKSB7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpOwogICAgICAgICBzdWJEaXYgPSBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnZGl2JykpOwogICAgICAgICBzdWJEaXYuaW5uZXJIVE1MID0gJ2hlbGxvLCB3
b3JsZCc7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVu
Y3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2
ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zID0g
bXV0YXRpb25zOwogICAgICAgICB9KTsKIApAQCAtNzMsOSArNzMsOSBAQCBmdW5jdGlvbiBydW5O
ZXh0VGVzdCgpIHsKICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKLWRlc2NyaXB0aW9uKCdU
ZXN0aW5nIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIudGFrZVJlY29yZHMnKTsKK2Rlc2NyaXB0aW9u
KCdUZXN0aW5nIE11dGF0aW9uT2JzZXJ2ZXIudGFrZVJlY29yZHMnKTsKIAotaWYgKCF3aW5kb3cu
V2ViS2l0TXV0YXRpb25PYnNlcnZlcikKK2lmICghd2luZG93Lk11dGF0aW9uT2JzZXJ2ZXIpCiAg
ICAgdGVzdEZhaWxlZCgnVGhpcyB0ZXN0IHJlcXVpcmVzIEVOQUJMRShNVVRBVElPTl9PQlNFUlZF
UlMpJyk7CiBlbHNlCiAgICAgcnVuTmV4dFRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvbXV0YXRpb24vdHJhbnNpZW50LWdjLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L211dGF0aW9uL3RyYW5zaWVudC1nYy1jcmFzaC5odG1sCmluZGV4IDZjMTM2NDJkNzY4YTExODI5
YmJmOGFiNTlhMWVmYzEyMDllYWY1MTMuLjZjZTZlYjhjM2FmZWNhNDZhYzI1MjI1ZGIyZDE1YmYw
NjkwMTQ1YjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vdHJhbnNpZW50
LWdjLWNyYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi90cmFuc2llbnQt
Z2MtY3Jhc2guaHRtbApAQCAtNiw3ICs2LDcgQEAgZGVzY3JpcHRpb24oJ0NsZWFyaW5nIHRyYW5z
aWVudCBvYnNlcnZlcnMgYWZ0ZXIgb2JzZXJ2YXRpb24gbm9kZSBpcyBHQ2VkIHNob3VsZAogZnVu
Y3Rpb24gY2FsbGJhY2sobXV0YXRpb25zKSB7CiAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0
aW9uczsKIH0KLXZhciBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGNhbGxi
YWNrKTsKK3ZhciBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGNhbGxiYWNrKTsKIAog
dmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogdmFyIHNwYW4gPSBkaXYu
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1NraXBwZWQKaW5kZXggMjAyNDYzYWVlM2ExZDJjZTkxZThjNzI0YjVhNjdiYmU5NmFjYTRk
NC4uNmM5OTFlMTNhNDdkNWZkN2QxMTcxZDQ1MmEyMDJlZDZjYWJiOTNiMSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL1NraXBwZWQKQEAgLTMzNiw3ICszMzYsNiBAQCBodHRwL3Rlc3RzL3NlY3VyaXR5L2Zp
bGVzeXN0ZW0taWZyYW1lLWZyb20tcmVtb3RlLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4
ZWRDb250ZW50L2ZpbGVzeXN0ZW0tdXJsLWluLWlmcmFtZS5odG1sCiBodHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oeWJpL3NlbmQtZmlsZS1ibG9iLmh0bWwKIGh0dHAvdGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2h5Ymkvc2VuZC1maWxlLWJsb2ItZmFpbC5odG1sCi1mYXN0L211dGF0aW9uL2ZpbGVz
eXN0ZW0tY2FsbGJhY2stZGVsaXZlcnkuaHRtbAogCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00NjIyMwogIyBUaGUgV2ViS2l0IHBsdWdpbiBpbXBsZW1lbnRhdGlv
biBkb2VzIG5vdCBzdXBwb3J0IGlmcmFtZSBzaGltcy4KQEAgLTU4Nyw5ICs1ODYsOSBAQCBtZWRp
YS9XM0MvdmlkZW8vY2FuUGxheVR5cGUvY2FuUGxheVR5cGVfdHdvX2ltcGxpZXNfb25lXzQuaHRt
bAogbWVkaWEvVzNDL3ZpZGVvL2NhblBsYXlUeXBlL2NhblBsYXlUeXBlX3R3b19pbXBsaWVzX29u
ZV81Lmh0bWwKIG1lZGlhL1czQy92aWRlby9jYW5QbGF5VHlwZS9jYW5QbGF5VHlwZV90d29faW1w
bGllc19vbmVfNi5odG1sCiAKLSMgRmFpbHMgYmVjYXVzZSBNdXRhdGlvbk9ic2VydmVycyBhcmUg
bm90IG5vdGlmaWVkIGF0IGVuZC1vZi10YXNrCisjIE11dGF0aW9uT2JzZXJ2ZXJzIGFyZSBub3Qg
ZW5hYmxlZCBkdWUgdG8KICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc4MjkwCi1mYXN0L211dGF0aW9uL2VuZC1vZi10YXNrLWRlbGl2ZXJ5Lmh0bWwKK2Zhc3QvbXV0
YXRpb24KIAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIwMTAK
ICMgTmVlZHMgUGFnZUNsaWVudHM6OnZpYnJhdGlvbkNsaWVudCgpIGltcGxlbWVudGF0aW9uLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCBlODkyMjIxMDJkYjM0ZjU1YWJhZWVlNTk5NTg2
OGY4YzlhNWRmNDk0Li4xYmM0NmY0YTIzOGQxMDYyYzFlOTE0YWJhYWY3NzVkZTNiNWI0ZDhmIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtMTMxMiw3ICsxMzEyLDYgQEAgaHR0cC90ZXN0
cy9pbnNwZWN0b3IvZmlsZXN5c3RlbQogaHR0cC90ZXN0cy9zZWN1cml0eS9maWxlc3lzdGVtLWlm
cmFtZS1mcm9tLXJlbW90ZS5odG1sCiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3Nl
bmQtZmlsZS1ibG9iLmh0bWwKIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1m
aWxlLWJsb2ItZmFpbC5odG1sCi1mYXN0L211dGF0aW9uL2ZpbGVzeXN0ZW0tY2FsbGJhY2stZGVs
aXZlcnkuaHRtbAogCiAjIExheW91dFRlc3RDb250cm9sbGVyOjpub2Rlc0Zyb21SZWN0IGlzIG5v
dCBzdXBwb3J0ZWQuCiBmYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWJhc2ljLmh0bWwKQEAgLTE1ODQs
OSArMTU4Myw5IEBAIHBvaW50ZXItbG9jay8KICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTcyNDM1CiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWFy
cmF5cy5odG1sCiAKLSMgRmFpbHMgYmVjYXVzZSBNdXRhdGlvbk9ic2VydmVycyBhcmUgbm90IG5v
dGlmaWVkIGF0IGVuZC1vZi10YXNrCisjIE11dGF0aW9uT2JzZXJ2ZXJzIGFyZSBub3QgZW5hYmxl
ZCBkdWUgdG8KICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4Mjkw
Ci1mYXN0L211dGF0aW9uL2VuZC1vZi10YXNrLWRlbGl2ZXJ5Lmh0bWwKK2Zhc3QvbXV0YXRpb24K
IAogIyBSZWJhc2VsaW5lIGFmdGVyIGJ1ZyA3MTcwNS4gQWxsIGRpZmZlcmVuY2VzIGFyZSBkdWUg
dG8gdGhlIGZhY3QgdGhhdCB0YWJsZSBjYXB0aW9ucyBub3cKICMgZXhwYW5kIHRvIHRoZSBmdWxs
IHdpZHRoIG9mIHRoZSB0YWJsZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bmNhaXJvL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9Ta2lwcGVkCmlu
ZGV4IGYwNTc4MzEzOWNlY2M1NDY1M2Q3MmYyYjNlMzMwMmJmMzM4MzRjYmYuLmM2MGVjNjc4MTJl
YTFkYWEwZDhlNzIzNDMyYmQwNWIzMGY5NmQ1OTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbmNhaXJvL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fp
cm8vU2tpcHBlZApAQCAtMTgxMCw3ICsxODEwLDYgQEAgaHR0cC90ZXN0cy9pbnNwZWN0b3IvZmls
ZXN5c3RlbQogaHR0cC90ZXN0cy9zZWN1cml0eS9maWxlc3lzdGVtLWlmcmFtZS1mcm9tLXJlbW90
ZS5odG1sCiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3NlbmQtZmlsZS1ibG9iLmh0
bWwKIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1maWxlLWJsb2ItZmFpbC5o
dG1sCi1mYXN0L211dGF0aW9uL2ZpbGVzeXN0ZW0tY2FsbGJhY2stZGVsaXZlcnkuaHRtbAogZmFz
dC9mb3Jtcy9maWxlL2lucHV0LWZpbGUtZW50cmllcy5odG1sCiAKICMgTGF5b3V0VGVzdENvbnRy
b2xsZXI6Om5vZGVzRnJvbVJlY3QgaXMgbm90IHN1cHBvcnRlZC4KQEAgLTIwODUsOSArMjA4NCw5
IEBAIHBvaW50ZXItbG9jay8KICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTcyNDM1CiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWFycmF5cy5odG1s
CiAKLSMgRmFpbHMgYmVjYXVzZSBNdXRhdGlvbk9ic2VydmVycyBhcmUgbm90IG5vdGlmaWVkIGF0
IGVuZC1vZi10YXNrCisjIE11dGF0aW9uT2JzZXJ2ZXJzIGFyZSBub3QgZW5hYmxlZCBkdWUgdG8K
ICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MjkwCi1mYXN0L211
dGF0aW9uL2VuZC1vZi10YXNrLWRlbGl2ZXJ5Lmh0bWwKK2Zhc3QvbXV0YXRpb24KIAogI1ZpYnJh
dGlvbiBBUEkgaXMgbm90IGltcGxlbWVudGVkLgogZmFzdC9kb20vbmF2aWdhdG9yLXZpYnJhdGlv
bi5odG1sCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nIGIvV2ViS2l0TGli
cmFyaWVzL0NoYW5nZUxvZwppbmRleCBkOTE4NzJkMzc2ODZhMmY3YmY3YmM0YzRkOGY2YzlkNzJl
OTlmNTg5Li5jZDIxMjUxYmE2Y2RiYmQ4Yzk4YmNlMWE1MmI3M2U0MDU3NjgwN2QxIDEwMDY0NAot
LS0gYS9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdExpYnJhcmllcy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wNi0yNiAgQWRhbSBLbGVpbiAgPGFkYW1rQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBSZW1vdmUgdmVuZG9yIHByZWZpeCBmcm9tIERPTSBNdXRh
dGlvbk9ic2VydmVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODkyMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHdpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzLnZzcHJvcHM6CisgICAgICAg
ICogd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXNDYWlyby52c3Byb3BzOgorCiAyMDEy
LTA2LTE5ICBNaWtlIFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW50cm9k
dWNlIEVOQUJMRV9DU1BfTkVYVCBjb25maWd1cmF0aW9uIGZsYWcuCmRpZmYgLS1naXQgYS9XZWJL
aXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXMudnNwcm9wcyBiL1dl
YktpdExpYnJhcmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lcy52c3Byb3BzCmlu
ZGV4IGI5MDE0MTA1ZmFiODkyYTc0YTQ3ZGVkOWE1ZTYxNjkzODcyYzFkMTYuLmFiMzE2NTE5YmJm
MjUzOTQ5Mjc4N2FkMDBjNDc0ZTUxMTNmNTQ1OTEgMTAwNjQ0Ci0tLSBhL1dlYktpdExpYnJhcmll
cy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lcy52c3Byb3BzCisrKyBiL1dlYktpdExp
YnJhcmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lcy52c3Byb3BzCkBAIC0yNDgs
NyArMjQ4LDcgQEAKIAkvPgogICA8VXNlck1hY3JvCiAJCU5hbWU9IkVOQUJMRV9NVVRBVElPTl9P
QlNFUlZFUlMiCi0JCVZhbHVlPSJFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTIgorCQlWYWx1ZT0i
IgogCQlQZXJmb3JtRW52aXJvbm1lbnRTZXQ9InRydWUiCiAJLz4KICAgPFVzZXJNYWNybwpkaWZm
IC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVz
Q2Fpcm8udnNwcm9wcyBiL1dlYktpdExpYnJhcmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJl
RGVmaW5lc0NhaXJvLnZzcHJvcHMKaW5kZXggODIyYWUzYzg2MTk5OTk0MjkxOTIwNjM3MjBiZjIz
NjEzNWZiN2ZhMy4uZjEyNWVhZjYyZDU2MmNjMDE3NzI1YjdiZjEzNTU4ZDM3MmEyYjdhMiAxMDA2
NDQKLS0tIGEvV2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVz
Q2Fpcm8udnNwcm9wcworKysgYi9XZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVh
dHVyZURlZmluZXNDYWlyby52c3Byb3BzCkBAIC0yMzMsNyArMjMzLDcgQEAKIAkvPgogICA8VXNl
ck1hY3JvCiAJCU5hbWU9IkVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMiCi0JCVZhbHVlPSJFTkFC
TEVfTVVUQVRJT05fT0JTRVJWRVJTIgorCQlWYWx1ZT0iIgogCQlQZXJmb3JtRW52aXJvbm1lbnRT
ZXQ9InRydWUiCiAJLz4KICAgPFVzZXJNYWNybwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150052</attachid>
            <date>2012-06-28 17:51:54 -0700</date>
            <delta_ts>2012-07-09 15:21:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89231-20120628175154.patch</filename>
            <type>text/plain</type>
            <size>181431</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNDg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
Y2I3MWNjYjZmYzMwZWU3OTdhYmMwZmMyYzBlNzYzYzQyZGZjYzBhLi5lOTAzNmE2NDc2ZTBhNmIx
NTIwMjQ0MTJiNTNiY2Q5YjFkZDI2ZmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxMi0wNi0yNiAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZW1vdmUgdmVuZG9yIHByZWZpeCBmcm9tIERPTSBNdXRhdGlvbk9ic2VydmVy
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkyMzEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZp
Z3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDEyLTA2LTI4ICBNYXJrIExh
bSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGRpbmcgYSBjb21tZW50aW5nIHV0
aWxpdHkgdG8gcmVjb3JkIEJ5dGVjb2RlR2VuZXJhdG9yIGNvbW1lbnRzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YzFjOWY4MjMwMTJmMDk4OGRlZWE1NGE0Zjg4OWU0MDlkODNjYTg5Ny4uYjNmODAyNmQ4ODM5ZmFk
MWU3MGI5MzlkYmY4ODg1YzVjZDczYzc0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMyBAQAor
MjAxMi0wNi0xNSAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZW1vdmUgdmVuZG9yIHByZWZpeCBmcm9tIERPTSBNdXRhdGlvbk9ic2VydmVycworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkyMzEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNdXRhdGlvbk9ic2VydmVycyBo
YXZlIGJlZW4gc3BlY2lmaWVkIGFzIHBhcnQgb2YgRE9NNCBmb3Igc29tZSB0aW1lIG5vdywKKyAg
ICAgICAgYW5kIE1vemlsbGEgaXMgc2hpcHBpbmcgYSBjb21wYXRpYmxlIGltcGxlbWVudGF0aW9u
IHdpdGhvdXQgYSB2ZW5kb3IKKyAgICAgICAgcHJlZml4LiBUaGlzIGNoYW5nZSBleHBvc2VzIHRo
ZSBNdXRhdGlvbk9ic2VydmVyIGNvbnN0cnVjdG9yIG9uIHRoZQorICAgICAgICBXaW5kb3cgb2Jq
ZWN0LiBBbGwgcmVmZXJlbmNlcyB0byB0aGUgb2xkIHByZWZpeGVkIG5hbWUgaGF2ZSBiZWVuCisg
ICAgICAgIHJlbW92ZWQsIHNhdmUgZm9yIGEgYmFja3dhcmRzLWNvbXBhdGliaWxpdHkgcmVmZXJl
bmNlIGluIERPTVdpbmRvdy5pZGwuCisKKyAgICAgICAgU2luY2Ugbm90IGFsbCBwb3J0cyBmdWxs
eSBpbXBsZW1lbnQgdGhlIHNwZWMsIHRoaXMgY2hhbmdlIGFsc28gbmFycm93cworICAgICAgICB0
aGUgcG9ydHMgZm9yIHdoaWNoIEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMgaXMgb24gYnkgZGVm
YXVsdCB0bworICAgICAgICBDaHJvbWl1bSwgRWZsLCBhbmQgR3RrICh0aG9zZSBzdXBwb3J0IGVu
ZC1vZi10YXNrIGRlbGl2ZXJ5IGluCisgICAgICAgIERSVCwgc2VlIGh0dHA6Ly93ZWJraXQub3Jn
L2IvNzgyOTApLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gY2hhbmdlIGluIGZ1bmN0aW9u
YWxpdHkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBDb25maWd1cmF0
aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5j
cHA6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHTlVtYWtlZmls
ZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogVXNlSlNDLmNtYWtl
OgorICAgICAgICAqIFVzZVY4LmNtYWtlOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAg
ICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNCaW5kaW5n
c0FsbEluT25lLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3Rh
dGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNNYWluVGhyZWFkRXhlY1N0YXRlOjpkaWRMZWF2
ZVNjcmlwdENvbnRleHQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFj
a0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU011dGF0aW9uQ2FsbGJhY2s6OmhhbmRs
ZUV2ZW50KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20u
Y3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRNdXRh
dGlvbk9ic2VydmVyQ3VzdG9tLmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNNdXRhdGlvbk9ic2VydmVyQ29uc3RydWN0b3I6OmNvbnN0cnVjdEpTTXV0YXRpb25P
YnNlcnZlcik6CisgICAgICAgIChCb29sZWFuT3B0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkpT
TXV0YXRpb25PYnNlcnZlcjo6b2JzZXJ2ZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhSZWN1
cnNpb25TY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFJlY3Vyc2lvblNjb3BlOjpkaWRM
ZWF2ZVNjcmlwdENvbnRleHQpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0
aW9uQ2FsbGJhY2tDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhNdXRhdGlvbkNhbGxi
YWNrOjpoYW5kbGVFdmVudCk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRp
b25PYnNlcnZlckN1c3RvbS5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6VjhNdXRhdGlvbk9ic2VydmVyOjpjb25zdHJ1
Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4TXV0YXRpb25PYnNlcnZlcjo6b2Jz
ZXJ2ZUNhbGxiYWNrKToKKyAgICAgICAgKiBkb20vQ2hhcmFjdGVyRGF0YS5jcHA6CisgICAgICAg
ICogZG9tL0NoaWxkTGlzdE11dGF0aW9uU2NvcGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNoaWxk
TGlzdE11dGF0aW9uU2NvcGU6OkNoaWxkTGlzdE11dGF0aW9uU2NvcGUpOgorICAgICAgICAqIGRv
bS9ET01BbGxJbk9uZS5jcHA6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6aGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUpOgorICAgICAgICAq
IGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKiBkb20vTXV0YXRpb25DYWxsYmFjay5oOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChNdXRhdGlvbkNhbGxiYWNrKToKKyAgICAgICAgKiBk
b20vTXV0YXRpb25DYWxsYmFjay5pZGw6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXIu
Y3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE11dGF0aW9uT2JzZXJ2
ZXIuY3BwLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9i
c2VydmVyOjpPYnNlcnZlckxlc3NUaGFuOjpvcGVyYXRvcigpKToKKyAgICAgICAgKFdlYkNvcmU6
Ok11dGF0aW9uT2JzZXJ2ZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9i
c2VydmVyOjpNdXRhdGlvbk9ic2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2Jz
ZXJ2ZXI6On5NdXRhdGlvbk9ic2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2Jz
ZXJ2ZXI6OnZhbGlkYXRlT3B0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2Vy
dmVyOjpvYnNlcnZlKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6OnRha2VS
ZWNvcmRzKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6OmRpc2Nvbm5lY3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6b2JzZXJ2YXRpb25TdGFydGVk
KToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6Om9ic2VydmF0aW9uRW5kZWQp
OgorICAgICAgICAoV2ViQ29yZTo6YWN0aXZlTXV0YXRpb25PYnNlcnZlcnMpOgorICAgICAgICAo
V2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6ZW5xdWV1ZU11dGF0aW9uUmVjb3JkKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6OnNldEhhc1RyYW5zaWVudFJlZ2lzdHJhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyOjpkZWxpdmVyKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6OmRlbGl2ZXJBbGxNdXRhdGlvbnMpOgorICAg
ICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVyLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9kb20vV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChNdXRhdGlvbk9ic2VydmVyKToKKyAgICAgICAgKiBkb20vTXV0YXRpb25PYnNlcnZlci5p
ZGw6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TXV0YXRpb25PYnNlcnZl
ci5pZGwuCisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpjcmVhdGVJ
Zk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91
cDo6TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXApOgorICAgICAgICAoV2ViQ29yZTo6TXV0
YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6OmlzT2xkVmFsdWVSZXF1ZXN0ZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6OmVucXVldWVNdXRhdGlv
blJlY29yZCk6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmg6
CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRl
Rm9yQ2hpbGRMaXN0TXV0YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZl
ckludGVyZXN0R3JvdXA6OmNyZWF0ZUZvckNoYXJhY3RlckRhdGFNdXRhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlRm9yQXR0cmli
dXRlc011dGF0aW9uKToKKyAgICAgICAgKE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwKToK
KyAgICAgICAgKiBkb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6TXV0YXRpb25PYnNlcnZl
clJlZ2lzdHJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyUmVnaXN0
cmF0aW9uOjpzaG91bGRSZWNlaXZlTXV0YXRpb25Gcm9tKToKKyAgICAgICAgKiBkb20vTXV0YXRp
b25PYnNlcnZlclJlZ2lzdHJhdGlvbi5oOgorICAgICAgICAoTXV0YXRpb25PYnNlcnZlclJlZ2lz
dHJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9u
Ojppc1N1YnRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJh
dGlvbjo6b2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlclJlZ2lz
dHJhdGlvbjo6ZGVsaXZlcnlPcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2Jz
ZXJ2ZXJSZWdpc3RyYXRpb246Om11dGF0aW9uVHlwZXMpOgorICAgICAgICAqIGRvbS9Ob2RlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmNvbGxlY3RNYXRjaGluZ09ic2VydmVyc0Zvck11
dGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmdldFJlZ2lzdGVyZWRNdXRhdGlvbk9i
c2VydmVyc09mVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpyZWdpc3Rlck11dGF0aW9u
T2JzZXJ2ZXIpOgorICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAgICAgIChOb2RlKToKKyAgICAg
ICAgKiBkb20vTm9kZVJhcmVEYXRhLmg6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRsOgor
CiAyMDEyLTA2LTI4ICBBZHJpZW5uZSBXYWxrZXIgIDxlbm5lQGdvb2dsZS5jb20+CiAKICAgICAg
ICAgW2Nocm9taXVtXSBTcGxpdCBXZWJTY3JvbGxiYXIgaW50byBXZWJQbHVnaW5TY3JvbGxiYXIg
YW5kIFdlYlNjcm9sbGJhcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA1YzhmNWU4MDM4
ZGRjZjhhNmM1MjI0ZWQ3ZWVhN2Y4YzliNTU4MTE1Li4wYWQ5MmIwNmI2YzJiNGVjMTEwNDdhM2E2
NjVhYzMzN2FhNGIyOTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEy
IEBACisyMDEyLTA2LTE1ICBBZGFtIEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJlbW92ZSB2ZW5kb3IgcHJlZml4IGZyb20gRE9NIE11dGF0aW9uT2JzZXJ2ZXJzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTIzMQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3JjL1dlYktpdC5j
cHA6CisKIDIwMTItMDYtMjggIEFkcmllbm5lIFdhbGtlciAgPGVubmVAZ29vZ2xlLmNvbT4KIAog
ICAgICAgICBbY2hyb21pdW1dIFNwbGl0IFdlYlNjcm9sbGJhciBpbnRvIFdlYlBsdWdpblNjcm9s
bGJhciBhbmQgV2ViU2Nyb2xsYmFyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggZDQ2ZDMxZDQ0ZjEwYWU0
ZjU2MGQ1NzQ3YzJmODAzOWI5NDc4YzcyOS4uM2IzZTNmZDg2YTViNzNhYWM5ZTQ3ZjIyOThmMjVl
ZjMwOTVjN2RhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTA2LTE1
ICBBZGFtIEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbW92ZSB2ZW5k
b3IgcHJlZml4IGZyb20gRE9NIE11dGF0aW9uT2JzZXJ2ZXJzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTIzMQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRy
ZWVTdXBwb3J0RWZsLmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6ZGVs
aXZlckFsbE11dGF0aW9uc0lmTmVjZXNzYXJ5KToKKwogMjAxMi0wNi0yNyAgU2hlcmlmZiBCb3Qg
IDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjEyMTM5OC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA3NTA0ZGQ0ZTM2NDJiNzljYzY5
ODZlMjM1NjA1NmU5MmE5ODE1ZTgxLi41YmM5ZDMzYzAyMmQ5NmIzOGY5YTc1MDFkMjYwYzAzMjM1
MWI1MzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDYtMTUgIEFk
YW0gS2xlaW4gIDxhZGFta0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVtb3ZlIHZlbmRvciBw
cmVmaXggZnJvbSBET00gTXV0YXRpb25PYnNlcnZlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5MjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGsuY3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpkZWxpdmVy
QWxsTXV0YXRpb25zSWZOZWNlc3NhcnkpOgorCiAyMDEyLTA2LTI1ICBNYXJrIEhhaG5lbmJlcmcg
IDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgSlNMb2NrIHNob3VsZCBiZSBwZXIt
SlNHbG9iYWxEYXRhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggMzQxZjQ1ZmFiMmMyZWQzNzM4ZmE5Zjg5
NzI1OTNmYWRjMDg3NzY0YS4uYWUzOGRhMDI4ZGIyYjg5ZGM0ODg3OTgxZTU5ZjM2ZTc1NzkyMjdl
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEyLTA2LTI2ICBBZGFtIEts
ZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbW92ZSB2ZW5kb3IgcHJlZml4
IGZyb20gRE9NIE11dGF0aW9uT2JzZXJ2ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04OTIzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWc6CisKIDIwMTItMDYtMjUgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNv
bT4KIAogICAgICAgICBKU0xvY2sgc2hvdWxkIGJlIHBlci1KU0dsb2JhbERhdGEKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpp
bmRleCA3MDliYWYyMWYyZTc0ODI0YjA0ODcxNzQ1YTgzZjJmMmVlY2U0ZjBiLi40ZjZmMjgwNzE2
NWFiOWE3OTYyODRkOWYwNzI3NGIzZjA4NmJhMzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMTItMDYtMjYgIEFkYW0gS2xlaW4gIDxhZGFta0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmVtb3ZlIHZlbmRvciBwcmVmaXggZnJvbSBET00gTXV0YXRpb25PYnNlcnZlcnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5MjMxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxMi0wNi0yOCAgSm9obiBTdWxsaXZhbiAg
PHN1bGxpdmFuQGFwcGxlLmNvbT4KIAogICAgICAgICA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTkwMjE2PgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IGFlMmMz
OTNiMTdjMmIwOWIyYTUyNzkxNGE1M2VjZTkxZGQ3M2ZjNWQuLjQ4MzViNDIzNjQ5NzYzYzJlYjFk
MTJkMWYyZjhhOTJiOTQ1NTA1ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTk5LDcg
Kzk5LDcgQEAgRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MgPSA7CiBFTkFCTEVfTUVURVJfVEFHID0g
RU5BQkxFX01FVEVSX1RBRzsKIEVOQUJMRV9NSFRNTCA9IDsKIEVOQUJMRV9NSUNST0RBVEEgPSA7
Ci1FTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTID0gRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUzsK
K0VOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMgPSA7CiBFTkFCTEVfTk9USUZJQ0FUSU9OUyA9ICQo
RU5BQkxFX05PVElGSUNBVElPTlNfJChSRUFMX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9OT1RJ
RklDQVRJT05TX21hY29zeCA9ICQoRU5BQkxFX05PVElGSUNBVElPTlNfbWFjb3N4XyQoVEFSR0VU
X01BQ19PU19YX1ZFUlNJT05fTUFKT1IpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeF8x
MDcwID0gOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA2ZDNkYTdmOGMyNGI0NjI3YzVmMTIzMzk5
OGRmMzcwZTUxMzQ0M2Y3Li5hMzI3ZWNlMmI4MTMzODE5MzYxN2M4ZDY4MmM0ZTk3MWU5NDRiNzA1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjIyLDYgKzIyMiw3IEBAIFNFVChXZWJDb3JlX0lE
TF9GSUxFUwogICAgIGRvbS9Nb3VzZUV2ZW50LmlkbAogICAgIGRvbS9NdXRhdGlvbkNhbGxiYWNr
LmlkbAogICAgIGRvbS9NdXRhdGlvbkV2ZW50LmlkbAorICAgIGRvbS9NdXRhdGlvbk9ic2VydmVy
LmlkbAogICAgIGRvbS9NdXRhdGlvblJlY29yZC5pZGwKICAgICBkb20vTmFtZWROb2RlTWFwLmlk
bAogICAgIGRvbS9Ob2RlRmlsdGVyLmlkbApAQCAtMjQ1LDcgKzI0Niw2IEBAIFNFVChXZWJDb3Jl
X0lETF9GSUxFUwogICAgIGRvbS9UcmVlV2Fsa2VyLmlkbAogICAgIGRvbS9VSUV2ZW50LmlkbAog
ICAgIGRvbS9XZWJLaXRBbmltYXRpb25FdmVudC5pZGwKLSAgICBkb20vV2ViS2l0TXV0YXRpb25P
YnNlcnZlci5pZGwKICAgICBkb20vV2ViS2l0TmFtZWRGbG93LmlkbAogICAgIGRvbS9XZWJLaXRU
cmFuc2l0aW9uRXZlbnQuaWRsCiAgICAgZG9tL1doZWVsRXZlbnQuaWRsCkBAIC02MTIsNiArNjEy
LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9Nb3VzZUV2ZW50LmNwcAogICAgIGRv
bS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHAKICAgICBkb20vTXV0YXRpb25FdmVudC5jcHAKKyAgICBk
b20vTXV0YXRpb25PYnNlcnZlci5jcHAKICAgICBkb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0
R3JvdXAuY3BwCiAgICAgZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCiAgICAg
ZG9tL011dGF0aW9uUmVjb3JkLmNwcApAQCAtNjY1LDcgKzY2Niw2IEBAIFNFVChXZWJDb3JlX1NP
VVJDRVMKICAgICBkb20vVXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3IuY3BwCiAgICAgZG9tL1Zp
ZXdwb3J0QXJndW1lbnRzLmNwcAogICAgIGRvbS9XZWJLaXRBbmltYXRpb25FdmVudC5jcHAKLSAg
ICBkb20vV2ViS2l0TXV0YXRpb25PYnNlcnZlci5jcHAKICAgICBkb20vV2ViS2l0TmFtZWRGbG93
LmNwcAogICAgIGRvbS9XZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwCiAgICAgZG9tL1doZWVsRXZl
bnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCmluZGV4IGIxYjg0OTY2ZDliNDIxZWQ5NmQyOGYyNGMyYWU2ZjRjZGNi
MDhmMjcuLjYxZDJhZjU2N2UyNTJjN2FiZWVlNmMzZmUyYTBlMzlmYTdiYzE5NjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29u
ZmlnCkBAIC0xMDAsNyArMTAwLDcgQEAgRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MgPSA7CiBFTkFC
TEVfTUVURVJfVEFHID0gRU5BQkxFX01FVEVSX1RBRzsKIEVOQUJMRV9NSFRNTCA9IDsKIEVOQUJM
RV9NSUNST0RBVEEgPSA7Ci1FTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTID0gRU5BQkxFX01VVEFU
SU9OX09CU0VSVkVSUzsKK0VOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMgPSA7CiBFTkFCTEVfTk9U
SUZJQ0FUSU9OUyA9ICQoRU5BQkxFX05PVElGSUNBVElPTlNfJChSRUFMX1BMQVRGT1JNX05BTUUp
KTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9ICQoRU5BQkxFX05PVElGSUNBVElPTlNf
bWFjb3N4XyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IpKTsKIEVOQUJMRV9OT1RJRklD
QVRJT05TX21hY29zeF8xMDcwID0gOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCmluZGV4IDhl
ODEwYjkwZTM2ZjAyM2QyNjgwZDYxOThlZTE5NzUwMzQ2YzIzZjYuLjE2ZjZlMTUyZTMzYzkzNmY3
NzhjODBhNGUxNDBhZmQ2OWMwYWJhMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKQEAg
LTI0NCw2ICsyNDQsNyBAQAogI2luY2x1ZGUgIkpTTW91c2VFdmVudC5jcHAiCiAjaW5jbHVkZSAi
SlNNdXRhdGlvbkNhbGxiYWNrLmNwcCIKICNpbmNsdWRlICJKU011dGF0aW9uRXZlbnQuY3BwIgor
I2luY2x1ZGUgIkpTTXV0YXRpb25PYnNlcnZlci5jcHAiCiAjaW5jbHVkZSAiSlNNdXRhdGlvblJl
Y29yZC5jcHAiCiAjaW5jbHVkZSAiSlNOYW1lZE5vZGVNYXAuY3BwIgogI2luY2x1ZGUgIkpTTmF2
aWdhdG9yLmNwcCIKQEAgLTQ3Nyw3ICs0NzgsNiBAQAogI2luY2x1ZGUgIkpTV2ViS2l0Q1NTVHJh
bnNmb3JtVmFsdWUuY3BwIgogI2luY2x1ZGUgIkpTV2ViS2l0Q1NTTWF0cml4LmNwcCIKICNpbmNs
dWRlICJKU1dlYktpdENTU1JlZ2lvblJ1bGUuY3BwIgotI2luY2x1ZGUgIkpTV2ViS2l0TXV0YXRp
b25PYnNlcnZlci5jcHAiCiAjaW5jbHVkZSAiSlNXZWJLaXROYW1lZEZsb3cuY3BwIgogI2luY2x1
ZGUgIkpTV2ViS2l0UG9pbnQuY3BwIgogI2luY2x1ZGUgIkpTV2ViS2l0VHJhbnNpdGlvbkV2ZW50
LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDAzZjQwMDRmYThiZjFhNWUx
ZjMyYzRjZTk4ZDZmYWUwNDA5YzRhNjcuLjNhZTM0MTJiOWQwMjg2OGQ3YWU1NzkwYzZiYjVmODJj
NjFiNWI0NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
KysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMjI0LDYgKzIyNCw3
IEBAIEJJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2RvbS9Nb3VzZUV2ZW50LmlkbCBc
CiAgICAgJChXZWJDb3JlKS9kb20vTXV0YXRpb25DYWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29y
ZSkvZG9tL011dGF0aW9uRXZlbnQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2RvbS9NdXRhdGlvbk9i
c2VydmVyLmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vTXV0YXRpb25SZWNvcmQuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL2RvbS9OYW1lZE5vZGVNYXAuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9O
b2RlLmlkbCBcCkBAIC0yNDksNyArMjUwLDYgQEAgQklORElOR19JRExTID0gXAogICAgICQoV2Vi
Q29yZSkvZG9tL1RyZWVXYWxrZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9VSUV2ZW50Lmlk
bCBcCiAgICAgJChXZWJDb3JlKS9kb20vV2ViS2l0QW5pbWF0aW9uRXZlbnQuaWRsIFwKLSAgICAk
KFdlYkNvcmUpL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9kb20vV2ViS2l0TmFtZWRGbG93LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vV2ViS2l0VHJh
bnNpdGlvbkV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vV2hlZWxFdmVudC5pZGwgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMzVlYzJlYzE1NTZmNDRmMjZmMTlkMTlk
ZjE3M2JjNzdlNDNmMmM4ZS4uMmJmZjZiMmU2MTFkZjViY2QwODg1N2MxYjYyZjIyZmYyODZiODJh
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC00MDksNiArNDA5LDggQEAgd2Vi
Y29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRp
b25DYWxsYmFjay5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25FdmVudC5j
cHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvbkV2ZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvbk9ic2VydmVyLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU011dGF0aW9uT2JzZXJ2ZXIuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU011dGF0aW9uUmVjb3JkLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0
aW9uUmVjb3JkLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNOYW1lZE5vZGVNYXAuY3Bw
IFwKQEAgLTYyMCw4ICs2MjIsNiBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRDU1NSZWdpb25SdWxlLmggXAogCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAgXAogCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIFwKLQlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTV2ViS2l0TXV0YXRpb25PYnNlcnZlci5jcHAgXAotCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmggXAogCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNXZWJLaXROYW1lZEZsb3cuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
V2ViS2l0TmFtZWRGbG93LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRQb2lu
dC5jcHAgXApAQCAtNzc1LDYgKzc3NSw3IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2Vi
Q29yZSkvZG9tL01vdXNlRXZlbnQuaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9NdXRhdGlvbkNhbGxi
YWNrLmlkbCBcCiAJJChXZWJDb3JlKS9kb20vTXV0YXRpb25FdmVudC5pZGwgXAorCSQoV2ViQ29y
ZSkvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9NdXRhdGlvblJl
Y29yZC5pZGwgXAogCSQoV2ViQ29yZSkvZG9tL05hbWVkTm9kZU1hcC5pZGwgXAogCSQoV2ViQ29y
ZSkvZG9tL05vZGUuaWRsIFwKQEAgLTc5OCw3ICs3OTksNiBAQCBkb21fYmluZGluZ19pZGxzICs9
IFwKIAkkKFdlYkNvcmUpL2RvbS9UcmVlV2Fsa2VyLmlkbCBcCiAJJChXZWJDb3JlKS9kb20vVUlF
dmVudC5pZGwgXAogCSQoV2ViQ29yZSkvZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50LmlkbCBcCi0J
JChXZWJDb3JlKS9kb20vV2ViS2l0TXV0YXRpb25PYnNlcnZlci5pZGwgXAogCSQoV2ViQ29yZSkv
ZG9tL1dlYktpdE5hbWVkRmxvdy5pZGwgXAogCSQoV2ViQ29yZSkvZG9tL1dlYktpdFRyYW5zaXRp
b25FdmVudC5pZGwgXAogCSQoV2ViQ29yZSkvZG9tL1doZWVsRXZlbnQuaWRsIFwKQEAgLTE0NjMs
NiArMTQ2Myw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uaCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCBcCisJU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNOYW1lZE5vZGVNYXBDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU05vZGVDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05v
ZGVDdXN0b20uaCBcCkBAIC0xNTA3LDcgKzE1MDgsNiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlQ3VzdG9t
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRDU1NLZXlmcmFtZXNS
dWxlQ3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRl
cmluZ0NvbnRleHRDdXN0b20uY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dl
YktpdE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1dlYktpdFBvaW50Q3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNXZWJTb2NrZXRDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dvcmtlckNvbnRleHRCYXNlLmNwcCBcCkBAIC0xOTQxLDYgKzE5NDEsOCBAQCB3ZWJjb3JlX3Nv
dXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbkNhbGxiYWNrLmggXAogCVNv
dXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbkV2ZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9t
L011dGF0aW9uRXZlbnQuaCBcCisJU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIu
Y3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuaCBcCiAJU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwIFwKQEAgLTIwNTEsOCAr
MjA1Myw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdw
b3J0QXJndW1lbnRzLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRBbmltYXRpb25FdmVu
dC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRBbmltYXRpb25FdmVudC5oIFwKLQlT
b3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TXV0YXRpb25PYnNlcnZlci5jcHAgXAotCVNvdXJjZS9X
ZWJDb3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2Rv
bS9XZWJLaXROYW1lZEZsb3cuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRG
bG93LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9U
YXJnZXQucHJpCmluZGV4IDdiOTZiNzYyNDMwODk4OGJlNDUwNmJhZjVkZTMwMmFmMjFiZDA0ZGMu
LjdlOTI5MGYyOWFjMjg2NzFkOWQ2Njc1OGQxNWVhNjc2N2MwMjc4MDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpA
QCAtMjAxLDYgKzIwMSw3IEBAIHY4IHsKICAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVz
c2FnZVBvcnRDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2Fn
ZUV2ZW50Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9u
Q2FsbGJhY2tDdXN0b20uY3BwIFwKKyAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRp
b25PYnNlcnZlckN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhOYW1l
ZE5vZGVNYXBDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4TmFtZWRO
b2Rlc0NvbGxlY3Rpb24uY3BwIFwKICAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4Tm9kZUN1
c3RvbS5jcHAgXApAQCAtMjE1LDcgKzIxNiw2IEBAIHY4IHsKICAgICAgICAgYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4U3R5bGVTaGVldEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9jdXN0
b20vVjhTdHlsZVNoZWV0TGlzdEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9jdXN0
b20vVjhXZWJLaXRBbmltYXRpb25DdXN0b20uY3BwIFwKLSAgICAgICAgYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4V2ViS2l0TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5n
cy92OC9jdXN0b20vVjhXZWJLaXRQb2ludENvbnN0cnVjdG9yLmNwcCBcCiAgICAgICAgIGJpbmRp
bmdzL3Y4L2N1c3RvbS9WOFdvcmtlckNvbnRleHRDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4V29ya2VyQ3VzdG9tLmNwcCBcCkBAIC0zMzMsNiArMzMzLDcgQEAgdjgg
ewogICAgICAgICBiaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcCBcCiAgICAgICAg
IGJpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uaCBcCiAgICAgICAgIGJpbmRpbmdzL2pz
L0pTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAgXAorICAgICAgICBiaW5kaW5ncy9qcy9KU011
dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNOYW1lZE5v
ZGVNYXBDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcCBc
CiAgICAgICAgIGJpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAgXApAQCAtMzYw
LDcgKzM2MSw2IEBAIHY4IHsKICAgICAgICAgYmluZGluZ3MvanMvSlNXZWJLaXRBbmltYXRpb25M
aXN0Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTS2V5ZnJhbWVS
dWxlQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTS2V5ZnJhbWVz
UnVsZUN1c3RvbS5jcHAgXAotICAgICAgICBiaW5kaW5ncy9qcy9KU1dlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXJDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludEN1c3Rv
bS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCBc
CiAgICAgICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RVcGxvYWRDdXN0b20uY3BwIFwK
QEAgLTU3NSw2ICs1NzUsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBkb20vTW91c2VFdmVudC5jcHAg
XAogICAgIGRvbS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHAgXAogICAgIGRvbS9NdXRhdGlvbkV2ZW50
LmNwcCBcCisgICAgZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwIFwKICAgICBkb20vTXV0YXRpb25P
YnNlcnZlckludGVyZXN0R3JvdXAuY3BwIFwKICAgICBkb20vTXV0YXRpb25PYnNlcnZlclJlZ2lz
dHJhdGlvbi5jcHAgXAogICAgIGRvbS9NdXRhdGlvblJlY29yZC5jcHAgXApAQCAtNjI5LDcgKzYz
MCw2IEBAIFNPVVJDRVMgKz0gXAogICAgIGRvbS9Vc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvci5j
cHAgXAogICAgIGRvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAgXAogICAgIGRvbS9XZWJLaXRBbmlt
YXRpb25FdmVudC5jcHAgXAotICAgIGRvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmNwcCBcCiAg
ICAgZG9tL1dlYktpdE5hbWVkRmxvdy5jcHAgXAogICAgIGRvbS9XZWJLaXRUcmFuc2l0aW9uRXZl
bnQuY3BwIFwKICAgICBkb20vV2hlZWxFdmVudC5jcHAgXApAQCAtMTc1Nyw2ICsxNzU3LDcgQEAg
SEVBREVSUyArPSBcCiAgICAgZG9tL01vdXNlUmVsYXRlZEV2ZW50LmggXAogICAgIGRvbS9NdXRh
dGlvbkNhbGxiYWNrLmggXAogICAgIGRvbS9NdXRhdGlvbkV2ZW50LmggXAorICAgIGRvbS9NdXRh
dGlvbk9ic2VydmVyLmggXAogICAgIGRvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmgg
XAogICAgIGRvbS9NdXRhdGlvblJlY29yZC5oIFwKICAgICBkb20vTmFtZWROb2RlTWFwLmggXApA
QCAtMTgwNSw3ICsxODA2LDYgQEAgSEVBREVSUyArPSBcCiAgICAgZG9tL1VzZXJHZXN0dXJlSW5k
aWNhdG9yLmggXAogICAgIGRvbS9WaWV3cG9ydEFyZ3VtZW50cy5oIFwKICAgICBkb20vV2ViS2l0
QW5pbWF0aW9uRXZlbnQuaCBcCi0gICAgZG9tL1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCBcCiAg
ICAgZG9tL1dlYktpdE5hbWVkRmxvdy5oIFwKICAgICBkb20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50
LmggXAogICAgIGRvbS9XaGVlbEV2ZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
VXNlSlNDLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvVXNlSlNDLmNtYWtlCmluZGV4IGNlNjkwZWZm
ZjJmM2VjOWI1N2EwYWFiNjgyMGJjN2IyYjljNmQ2NWUuLmE0NDUwMmY5MjgwMDMwN2Q2NzU3Y2U5
OWVhNGNjNzgxZmVhYzczOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1VzZUpTQy5jbWFr
ZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UKQEAgLTExNiw2ICsxMTYsNyBAQCBM
SVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVu
dEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcAogICAg
IGJpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAKKyAgICBiaW5kaW5ncy9q
cy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNOYW1lZE5v
ZGVNYXBDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcAogICAgIGJp
bmRpbmdzL2pzL0pTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAKQEAgLTE0Miw3ICsxNDMsNiBAQCBM
SVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy9qcy9KU1dlYktpdEFuaW1h
dGlvbkxpc3RDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNXZWJLaXRDU1NLZXlmcmFtZVJ1
bGVDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNXZWJLaXRDU1NLZXlmcmFtZXNSdWxlQ3Vz
dG9tLmNwcAotICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0TXV0YXRpb25PYnNlcnZlckN1c3RvbS5j
cHAKICAgICBiaW5kaW5ncy9qcy9KU1dlYktpdFBvaW50Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdz
L2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNYTUxIdHRw
UmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1VzZVY4
LmNtYWtlIGIvU291cmNlL1dlYkNvcmUvVXNlVjguY21ha2UKaW5kZXggNjc3NWU5NTJkNzZmZTYy
MTAyM2RmMDFjMDYwNjdmZWUzY2I5ZGY0Zi4uYzhhMjUzYzM5YjQ5ZGQ5ZmFhNDk5NTFkZWE0N2M0
NjA3NmZmNDI1NCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvVXNlVjguY21ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvVXNlVjguY21ha2UKQEAgLTEzMSw2ICsxMzEsNyBAQCBMSVNUKEFQUEVO
RCBXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlRXZlbnRD
dXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZVBvcnRDdXN0b20uY3Bw
CiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAKKyAg
ICBiaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcAogICAgIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOE5hbWVkTm9kZU1hcEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92
OC9jdXN0b20vVjhOYW1lZE5vZGVzQ29sbGVjdGlvbi5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0
b20vVjhOb2RlQ3VzdG9tLmNwcApAQCAtMTUxLDcgKzE1Miw2IEBAIExJU1QoQVBQRU5EIFdlYkNv
cmVfU09VUkNFUwogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFVpbnQ4QXJyYXlDdXN0b20uY3Bw
CiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNw
cAogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdEFuaW1hdGlvbkN1c3RvbS5jcHAKLSAg
ICBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcAog
ICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdFBvaW50Q29uc3RydWN0b3IuY3BwCiAgICAg
YmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViU29ja2V0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL3Y4
L2N1c3RvbS9WOFdvcmtlckNvbnRleHRDdXN0b20uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggN2Y2
ZTIyZGQ1NDAwZGZhYTBiY2NhMTk5YTg4Zjg5NzllYTMzYWEyMy4uNzg1MDI5YTZhNTc1NGU2Mzhm
MTFiNGM4YzY5NTk1NGFhZTU4NmM0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtOTY2LDYgKzk2Niw3
IEBACiAgICAgICAgICAgICAnZG9tL01vdXNlRXZlbnQuaWRsJywKICAgICAgICAgICAgICdkb20v
TXV0YXRpb25DYWxsYmFjay5pZGwnLAogICAgICAgICAgICAgJ2RvbS9NdXRhdGlvbkV2ZW50Lmlk
bCcsCisgICAgICAgICAgICAnZG9tL011dGF0aW9uT2JzZXJ2ZXIuaWRsJywKICAgICAgICAgICAg
ICdkb20vTXV0YXRpb25SZWNvcmQuaWRsJywKICAgICAgICAgICAgICdkb20vTmFtZWROb2RlTWFw
LmlkbCcsCiAgICAgICAgICAgICAnZG9tL05vZGUuaWRsJywKQEAgLTk5MSw3ICs5OTIsNiBAQAog
ICAgICAgICAgICAgJ2RvbS9UcmVlV2Fsa2VyLmlkbCcsCiAgICAgICAgICAgICAnZG9tL1VJRXZl
bnQuaWRsJywKICAgICAgICAgICAgICdkb20vV2ViS2l0QW5pbWF0aW9uRXZlbnQuaWRsJywKLSAg
ICAgICAgICAgICdkb20vV2ViS2l0TXV0YXRpb25PYnNlcnZlci5pZGwnLAogICAgICAgICAgICAg
J2RvbS9XZWJLaXROYW1lZEZsb3cuaWRsJywKICAgICAgICAgICAgICdkb20vV2ViS2l0VHJhbnNp
dGlvbkV2ZW50LmlkbCcsCiAgICAgICAgICAgICAnZG9tL1doZWVsRXZlbnQuaWRsJywKQEAgLTIw
MTUsNiArMjAxNSw3IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1
c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20u
aCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNw
cCcsCisgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNw
cCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNOYW1lZE5vZGVNYXBDdXN0b20uY3BwJywK
ICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwJywKICAgICAgICAgICAg
ICdiaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwJywKQEAgLTIwNTcsNyArMjA1
OCw2IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXZWJLaXRBbmltYXRpb25MaXN0Q3Vz
dG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXZWJLaXRDU1NLZXlmcmFtZVJ1
bGVDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dlYktpdENTU0tleWZy
YW1lc1J1bGVDdXN0b20uY3BwJywKLSAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dlYktpdE11
dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dl
YktpdFBvaW50Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXZWJTb2Nr
ZXRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRC
YXNlLmNwcCcsCkBAIC0yMzI3LDYgKzIzMjcsNyBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOE1lc3NhZ2VFdmVudEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOE1lc3NhZ2VQb3J0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAnLAorICAgICAgICAgICAg
J2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwJywKICAgICAg
ICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhOYW1lZE5vZGVNYXBDdXN0b20uY3BwJywKICAg
ICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhOYW1lZE5vZGVzQ29sbGVjdGlvbi5jcHAn
LAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5hbWVkTm9kZXNDb2xsZWN0aW9u
LmgnLApAQCAtMjM1Niw3ICsyMzU3LDYgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0
b20vVjhVaW50OENsYW1wZWRBcnJheUN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdEFuaW1hdGlvbkN1c3RvbS5jcHAnLAotICAg
ICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdE11dGF0aW9uT2JzZXJ2ZXJDdXN0
b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRQb2ludENv
bnN0cnVjdG9yLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViU29j
a2V0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4V29ya2Vy
Q29udGV4dEN1c3RvbS5jcHAnLApAQCAtNTE4Myw2ICs1MTgzLDggQEAKICAgICAgICAgICAgICdk
b20vTXV0YXRpb25DYWxsYmFjay5oJywKICAgICAgICAgICAgICdkb20vTXV0YXRpb25FdmVudC5j
cHAnLAogICAgICAgICAgICAgJ2RvbS9NdXRhdGlvbkV2ZW50LmgnLAorICAgICAgICAgICAgJ2Rv
bS9NdXRhdGlvbk9ic2VydmVyLmNwcCcsCisgICAgICAgICAgICAnZG9tL011dGF0aW9uT2JzZXJ2
ZXIuaCcsCiAgICAgICAgICAgICAnZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNw
cCcsCiAgICAgICAgICAgICAnZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmgnLAog
ICAgICAgICAgICAgJ2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNwcCcsCkBAIC01
MjgzLDggKzUyODUsNiBAQAogICAgICAgICAgICAgJ2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAn
LAogICAgICAgICAgICAgJ2RvbS9XZWJLaXRBbmltYXRpb25FdmVudC5jcHAnLAogICAgICAgICAg
ICAgJ2RvbS9XZWJLaXRBbmltYXRpb25FdmVudC5oJywKLSAgICAgICAgICAgICdkb20vV2ViS2l0
TXV0YXRpb25PYnNlcnZlci5jcHAnLAotICAgICAgICAgICAgJ2RvbS9XZWJLaXRNdXRhdGlvbk9i
c2VydmVyLmgnLAogICAgICAgICAgICAgJ2RvbS9XZWJLaXROYW1lZEZsb3cuY3BwJywKICAgICAg
ICAgICAgICdkb20vV2ViS2l0TmFtZWRGbG93LmgnLAogICAgICAgICAgICAgJ2RvbS9XZWJLaXRU
cmFuc2l0aW9uRXZlbnQuY3BwJywKQEAgLTc1NjUsNiArNzU2NSw4IEBACiAgICAgICAgICAgICAn
PChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uQ2FsbGJhY2su
aCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U011dGF0aW9uRXZlbnQuY3BwJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25FdmVudC5oJywKKyAgICAgICAgICAgICc8KFBST0RV
Q1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25PYnNlcnZlci5jcHAnLAor
ICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRh
dGlvbk9ic2VydmVyLmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNNdXRhdGlvblJlY29yZC5jcHAnLAogICAgICAgICAgICAgJzwoUFJPRFVD
VF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvblJlY29yZC5oJywKICAgICAg
ICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTmFtZWROb2Rl
TWFwLmNwcCcsCkBAIC04MTExLDggKzgxMTMsNiBAQAogICAgICAgICAgICAgJzwoUFJPRFVDVF9E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRDU1NSZWdpb25SdWxlLmgnLAogICAg
ICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRD
U1NUcmFuc2Zvcm1WYWx1ZS5jcHAnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oJywKLSAgICAgICAg
ICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0TXV0YXRp
b25PYnNlcnZlci5jcHAnLAotICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgnLAogICAgICAgICAgICAgJzwo
UFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRQb2ludC5jcHAnLAog
ICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJL
aXRQb2ludC5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTV2ViS2l0TmFtZWRGbG93LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGQxMmRiNTY2YzhjMzk1OTZmZDBmMTI1NDhlMDcx
MTU2ODZjMTI3ZTkuLjM1ODZjNmVkOGYxMTZkNTBmNGZlYzg3Njg4NjFlYjE2NjI2MjgzNGUgMTAw
NzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0xMTU5
MCw2ICsxMTU5MCw2MiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRp
dmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2
ZWRTb3VyY2VzXEpTTXV0YXRpb25PYnNlcnZlci5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJ
CQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
KwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9G
aWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGly
KVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNdXRhdGlvbk9ic2VydmVyLmgi
CisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmln
dXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNdXRh
dGlvblJlY29yZC5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtMjMwNjMs
NjIgKzIzMTE5LDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZl
UGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVk
U291cmNlc1xKU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuY3BwIgotCQkJCT4KLQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1
cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0
aW9uCi0JCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0J
CQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKLQkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKLQkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJ
CTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWls
ZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTV2ViS2l0TXV0YXRpb25P
YnNlcnZlci5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRo
PSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3Vy
Y2VzXEpTV2ViS2l0TmFtZWRGbG93LmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9u
CkBAIC01MTY1MSw2ICs1MTY1MSw2MiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cTXV0YXRpb25PYnNlcnZlci5jcHAiCisJCQkJPgorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4z
MiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMy
IgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMy
IgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxNdXRh
dGlvbk9ic2VydmVyLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGRvbVxNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5jcHAiCiAJCQkJPgog
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtNTQzMzksNjIgKzU0Mzk1LDYgQEAKIAkJCQk+CiAJ
CQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFdlYktpdE11dGF0
aW9uT2JzZXJ2ZXIuY3BwIgotCQkJCT4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFt
ZT0iRGVidWd8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0J
CQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJl
bGVhc2V8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJ
CTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVn
X0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJ
CT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0J
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFt
ZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgot
CQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9u
Ci0JCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0J
CQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
LQkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0J
CQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0J
CQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oIgotCQkJCT4K
LQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cV2ViS2l0TmFt
ZWRGbG93LmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCkBAIC02ODIxOCw3ICs2
ODIxOCw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxG
aWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNOYW1lZE5vZGVNYXBDdXN0
b20uY3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTTXV0YXRpb25PYnNl
cnZlckN1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlO
YW1lPSJEZWJ1Z3xXaW4zMiIKQEAgLTY4MjcwLDcgKzY4MjcwLDcgQEAKIAkJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxiaW5kaW5nc1xqc1xKU05vZGVDdXN0b20uY3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJp
bmRpbmdzXGpzXEpTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpAQCAtNjgzMjIsMTEgKzY4MzIy
LDcgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUK
LQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU05vZGVDdXN0b20uaCIKLQkJCQkJ
PgotCQkJCTwvRmlsZT4KLQkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdz
XGpzXEpTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmlu
ZGluZ3NcanNcSlNOb2RlQ3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpAQCAtNjgzNzgsMTEgKzY4Mzc0LDExIEBACiAJ
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJl
bGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmgiCisJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNOb2RlQ3VzdG9tLmgiCiAJCQkJCT4KIAkJ
CQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xK
U05vZGVGaWx0ZXJDdXN0b20uY3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpz
XEpTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0
aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKQEAgLTY4NDM0LDcgKzY4NDMwLDExIEBACiAJ
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJl
bGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNOb2RlSXRlcmF0b3JDdXN0b20uY3BwIgorCQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZUZpbHRlckNvbmRpdGlvbi5oIgor
CQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmlu
ZGluZ3NcanNcSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpAQCAtNjg0ODYsNyArNjg0ODYsNyBA
QAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZUxpc3RDdXN0b20uY3BwIgorCQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZUl0ZXJhdG9yQ3VzdG9tLmNwcCIK
IAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMy
IgpAQCAtNjg1MzgsNyArNjg1MzgsNyBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJ
CTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpT
Tm90aWZpY2F0aW9uQ3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xq
c1xKU05vZGVMaXN0Q3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
IAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpAQCAtNjg1OTAsNyArNjg1OTAsNyBAQAogCQkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAiCisJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNOb3RpZmljYXRpb25DdXN0b20uY3BwIgog
CQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIi
CkBAIC02ODY0MiwxMSArNjg2NDIsNyBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJ
CTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpT
UGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oIgotCQkJCQk+Ci0JCQkJPC9GaWxlPgotCQkJCTxGaWxl
Ci0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b25DdXN0b20uY3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTUGx1Z2lu
RWxlbWVudEZ1bmN0aW9ucy5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJ
CQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKQEAgLTY4Njk4LDcgKzY4Njk0LDExIEBACiAJCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZl
UGF0aD0iLi5cYmluZGluZ3NcanNcSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFja0N1c3Rv
bS5jcHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNQbHVnaW5FbGVtZW50
RnVuY3Rpb25zLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1Byb2Nlc3NpbmdJbnN0cnVjdGlvbkN1c3RvbS5jcHAi
CiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4z
MiIKQEAgLTY4NzUwLDcgKzY4NzUwLDcgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJ
CQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xK
U1NjcmlwdFByb2ZpbGVOb2RlQ3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5k
aW5nc1xqc1xKU1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrQ3VzdG9tLmNwcCIKIAkJCQkJ
PgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpAQCAt
Njg4MDIsNyArNjg4MDIsNyBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJCTwvRmls
ZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU2hhcmVk
V29ya2VyQ3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1Nj
cmlwdFByb2ZpbGVOb2RlQ3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpAQCAtNjg4NTQsNyArNjg4NTQsNyBAQAogCQkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU1FMUmVzdWx0U2V0Um93TGlzdEN1c3RvbS5jcHAi
CisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNTaGFyZWRXb3JrZXJDdXN0b20u
Y3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8
V2luMzIiCkBAIC02ODkwNiw3ICs2ODkwNiw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3Nc
anNcSlNTUUxUcmFuc2FjdGlvbkN1c3RvbS5jcHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmlu
ZGluZ3NcanNcSlNTUUxSZXN1bHRTZXRSb3dMaXN0Q3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpAQCAtNjg5NTgsNyAr
Njg5NTgsNyBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJCTwvRmlsZT4KIAkJCQk8
RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU1FMVHJhbnNhY3Rpb25T
eW5jQ3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1NRTFRy
YW5zYWN0aW9uQ3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJ
CQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpAQCAtNjkwMTAsNyArNjkwMTAsNyBAQAogCQkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGJpbmRpbmdzXGpzXEpTU3RvcmFnZUN1c3RvbS5jcHAiCisJCQkJCVJlbGF0aXZlUGF0
aD0iLi5cYmluZGluZ3NcanNcSlNTUUxUcmFuc2FjdGlvblN5bmNDdXN0b20uY3BwIgogCQkJCQk+
CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02
OTA2MiwxMSArNjkwNjIsNyBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJCTwvRmls
ZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU3RvcmFn
ZUN1c3RvbS5oIgotCQkJCQk+Ci0JCQkJPC9GaWxlPgotCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZl
UGF0aD0iLi5cYmluZGluZ3NcanNcSlNTdHlsZVNoZWV0Q3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1N0b3JhZ2VDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02OTExOCw3
ICs2OTExNCwxMSBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJCTwvRmlsZT4KIAkJ
CQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU3R5bGVTaGVldExp
c3RDdXN0b20uY3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU3RvcmFn
ZUN1c3RvbS5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZl
UGF0aD0iLi5cYmluZGluZ3NcanNcSlNTdHlsZVNoZWV0Q3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpAQCAtNjkxNzAs
NyArNjkxNzAsNyBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJCTwvRmlsZT4KIAkJ
CQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU1ZHRWxlbWVudElu
c3RhbmNlQ3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1N0
eWxlU2hlZXRMaXN0Q3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
IAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpAQCAtNjkyMjIsNyArNjkyMjIsNyBAQAogCQkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU1ZHTGVuZ3RoQ3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1NWR0VsZW1lbnRJbnN0YW5jZUN1c3RvbS5jcHAiCiAJ
CQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIK
QEAgLTY5Mjc0LDcgKzY5Mjc0LDcgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8
L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1NW
R1BhdGhTZWdDdXN0b20uY3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpT
U1ZHTGVuZ3RoQ3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJ
CQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpAQCAtNjkzMjYsNyArNjkzMjYsNyBAQAogCQkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGJpbmRpbmdzXGpzXEpTVGV4dEN1c3RvbS5jcHAiCisJCQkJCVJlbGF0aXZlUGF0aD0i
Li5cYmluZGluZ3NcanNcSlNTVkdQYXRoU2VnQ3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpAQCAtNjkzNzgsNyArNjkz
NzgsNyBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJCTwvRmlsZT4KIAkJCQk8Rmls
ZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTVHJlZVdhbGtlckN1c3RvbS5j
cHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNUZXh0Q3VzdG9tLmNwcCIK
IAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMy
IgpAQCAtNjk0MzAsNyArNjk0MzAsNyBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJ
CTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpT
V2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5n
c1xqc1xKU1RyZWVXYWxrZXJDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02OTQ4Miw3ICs2OTQ4Miw3IEBACiAJ
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJl
bGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNXZWJLaXRBbmltYXRpb25MaXN0Q3VzdG9tLmNw
cCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1dlYktpdEFuaW1hdGlvbkN1
c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJE
ZWJ1Z3xXaW4zMiIKQEAgLTY5NTM0LDcgKzY5NTM0LDcgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5k
aW5nc1xqc1xKU1dlYktpdENTU0tleWZyYW1lUnVsZUN1c3RvbS5jcHAiCisJCQkJCVJlbGF0aXZl
UGF0aD0iLi5cYmluZGluZ3NcanNcSlNXZWJLaXRBbmltYXRpb25MaXN0Q3VzdG9tLmNwcCIKIAkJ
CQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpA
QCAtNjk1ODYsNyArNjk1ODYsNyBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJCTwv
RmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTV2Vi
S2l0Q1NTS2V5ZnJhbWVzUnVsZUN1c3RvbS5jcHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmlu
ZGluZ3NcanNcSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGVDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02OTYzOCw3
ICs2OTYzOCw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJ
CTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNXZWJLaXRDU1NNYXRy
aXhDdXN0b20uY3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTV2ViS2l0
Q1NTS2V5ZnJhbWVzUnVsZUN1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0
aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKQEAgLTY5NjkwLDcgKzY5NjkwLDcgQEAKIAkJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20u
Y3BwIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTV2ViS2l0Q1NTTWF0cml4
Q3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJCQkJCU5hbWU9
IkRlYnVnfFdpbjMyIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDJkZDM1OGM2ODIyYjdjOThkZGRmMzY3YjEwMTY1YzgxOGQyOGQ2
ZjcuLjIyNzEwZjcyZGRmNzJlMDlhYzM1NDQ3NjlmMjgzOTFmNjczNzNhMzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU3NzIs
MTMgKzU3NzIsMTMgQEAKIAkJQzZGMDhGQzkxNDMxMDAwRDAwNjg1ODQ5IC8qIEpTTXV0YXRpb25S
ZWNvcmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QzZGMDhGQzcxNDMxMDAwRDAwNjg1ODQ5IC8qIEpTTXV0YXRpb25SZWNvcmQuY3BwICovOyB9Owog
CQlDNkYwOEZDQTE0MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRhdGlvblJlY29yZC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDhGQzgxNDMxMDAwRDAw
Njg1ODQ5IC8qIEpTTXV0YXRpb25SZWNvcmQuaCAqLzsgfTsKIAkJQzZGMDkwMEExNDMyN0I2MTAw
Njg1ODQ5IC8qIE11dGF0aW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEM2RjA5MDAxMTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbkNh
bGxiYWNrLmggKi87IH07Ci0JCUM2RjA5MDBFMTQzMjdCNjEwMDY4NTg0OSAvKiBXZWJLaXRNdXRh
dGlvbk9ic2VydmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEM2RjA5MDA1MTQzMjdCNjEwMDY4NTg0OSAvKiBXZWJLaXRNdXRhdGlvbk9ic2VydmVy
LmNwcCAqLzsgfTsKLQkJQzZGMDkwMEYxNDMyN0I2MTAwNjg1ODQ5IC8qIFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEM2RjA5MDA2MTQzMjdCNjEwMDY4NTg0OSAvKiBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQzZGMDkwMEUx
NDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uT2JzZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDkwMDUxNDMyN0I2MTAwNjg1ODQ5IC8q
IE11dGF0aW9uT2JzZXJ2ZXIuY3BwICovOyB9OworCQlDNkYwOTAwRjE0MzI3QjYxMDA2ODU4NDkg
LyogTXV0YXRpb25PYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzZGMDkwMDYxNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uT2JzZXJ2ZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDNkYw
OTAyODE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RjA5MDIwMTQzMjdENEYwMDY4
NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2suY3BwICovOyB9OwogCQlDNkYwOTAyOTE0MzI3RDRG
MDA2ODU4NDkgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwOTAyMTE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRh
dGlvbkNhbGxiYWNrLmggKi87IH07Ci0JCUM2RjA5MDJDMTQzMjdENEYwMDY4NTg0OSAvKiBKU1dl
YktpdE11dGF0aW9uT2JzZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQzZGMDkwMjQxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTV2ViS2l0TXV0YXRp
b25PYnNlcnZlci5jcHAgKi87IH07Ci0JCUM2RjA5MDJEMTQzMjdENEYwMDY4NTg0OSAvKiBKU1dl
YktpdE11dGF0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEM2RjA5MDI1MTQzMjdENEYwMDY4NTg0OSAvKiBKU1dlYktpdE11dGF0aW9u
T2JzZXJ2ZXIuaCAqLzsgfTsKLQkJQzZGMDkxN0YxNDNBMkJCOTAwNjg1ODQ5IC8qIEpTV2ViS2l0
TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDNkYwOTE3RTE0M0EyQkI5MDA2ODU4NDkgLyogSlNXZWJLaXRNdXRh
dGlvbk9ic2VydmVyQ3VzdG9tLmNwcCAqLzsgfTsKKwkJQzZGMDkwMkMxNDMyN0Q0RjAwNjg1ODQ5
IC8qIEpTTXV0YXRpb25PYnNlcnZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDNkYwOTAyNDE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbk9i
c2VydmVyLmNwcCAqLzsgfTsKKwkJQzZGMDkwMkQxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRp
b25PYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQzZGMDkwMjUxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlci5oICovOyB9
OworCQlDNkYwOTE3RjE0M0EyQkI5MDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9t
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RjA5
MTdFMTQzQTJCQjkwMDY4NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwICovOyB9
OwogCQlDNkYwOTE4NTE0M0E2QzNCMDA2ODU4NDkgLyogSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9t
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RjA5
MTg0MTQzQTZDM0IwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwICovOyB9
OwogCQlDNkY0MTA0NzEzMEM2RTg5MDAzOTNERTQgLyogRW50cnlCYXNlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RjQxMDQ2MTMwQzZFODkwMDM5
M0RFNCAvKiBFbnRyeUJhc2UuY3BwICovOyB9OwogCQlDQTNCRjY3QzEwRDk5QkFFMDBFNkNFNTMg
LyogU2Nyb2xsQW5pbWF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0EzQkY2N0IxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmNw
cCAqLzsgfTsKQEAgLTEyOTg1LDE0ICsxMjk4NSwxNCBAQAogCQlDNkYwOEZDODE0MzEwMDBEMDA2
ODU4NDkgLyogSlNNdXRhdGlvblJlY29yZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU011dGF0aW9uUmVjb3JkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM2
RjA5MDAxMTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbkNhbGxiYWNrLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE11dGF0aW9uQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQzZGMDkwMDIxNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0aW9uQ2FsbGJh
Y2suaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE11dGF0aW9uQ2FsbGJhY2suaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDNkYwOTAwNTE0MzI3QjYxMDA2ODU4NDkgLyogV2Vi
S2l0TXV0YXRpb25PYnNlcnZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJQzZGMDkwMDYxNDMyN0I2MTAwNjg1ODQ5IC8qIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0TXV0YXRpb25PYnNlcnZl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDNkYwOTAwNzE0MzI3QjYxMDA2ODU4
NDkgLyogV2ViS2l0TXV0YXRpb25PYnNlcnZlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
V2ViS2l0TXV0YXRpb25PYnNlcnZlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUM2RjA5MDA1MTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbk9ic2VydmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE11dGF0aW9uT2JzZXJ2ZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDNkYwOTAwNjE0MzI3QjYxMDA2ODU4NDkgLyogTXV0
YXRpb25PYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNdXRhdGlv
bk9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM2RjA5MDA3MTQzMjdC
NjEwMDY4NTg0OSAvKiBNdXRhdGlvbk9ic2VydmVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBNdXRhdGlvbk9ic2VydmVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzZG
MDkwMjAxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFjay5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU011dGF0aW9uQ2FsbGJhY2suY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNkYwOTAyMTE0MzI3RDRGMDA2ODU4NDkgLyogSlNN
dXRhdGlvbkNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTXV0
YXRpb25DYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDNkYwOTAyNDE0
MzI3RDRGMDA2ODU4NDkgLyogSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViS2l0TXV0YXRpb25PYnNlcnZlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUM2RjA5MDI1MTQzMjdENEYwMDY4NTg0OSAv
KiBKU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUM2RjA5MTdFMTQzQTJCQjkwMDY4NTg0OSAvKiBKU1dlYktpdE11dGF0aW9uT2JzZXJ2
ZXJDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJL
aXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQzZGMDkwMjQxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU011dGF0aW9uT2JzZXJ2ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDNkYwOTAyNTE0MzI3RDRGMDA2ODU4NDkg
LyogSlNNdXRhdGlvbk9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTTXV0YXRpb25PYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDNkYw
OTE3RTE0M0EyQkI5MDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTXV0YXRpb25PYnNlcnZlckN1c3Rv
bS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM2RjA5MTg0MTQzQTZDM0IwMDY4
NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzZGNDEwNDYxMzBDNkU4OTAwMzkzREU0IC8qIEVudHJ5QmFz
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBFbnRyeUJhc2UuY3Bw
OyBwYXRoID0gTW9kdWxlcy9maWxlc3lzdGVtL0VudHJ5QmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUNBM0JGNjdCMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRv
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JvbGxBbmltYXRv
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODY4Miw2ICsxODY4Miw4IEBA
CiAJCQkJRkU4MERBNjIwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvcG9zaXRpb24uaCAqLywKIAkJ
CQlDNkYwOTAyMDE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCAqLywK
IAkJCQlDNkYwOTAyMTE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmggKi8s
CisJCQkJQzZGMDkwMjQxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlci5jcHAg
Ki8sCisJCQkJQzZGMDkwMjUxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlci5o
ICovLAogCQkJCUM2RjA4RkM3MTQzMTAwMEQwMDY4NTg0OSAvKiBKU011dGF0aW9uUmVjb3JkLmNw
cCAqLywKIAkJCQlDNkYwOEZDODE0MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRhdGlvblJlY29yZC5o
ICovLAogCQkJCUJDRDlDMkJDMEMxN0I2OUUwMDVDOTBBMiAvKiBKU05hbWVkTm9kZU1hcC5jcHAg
Ki8sCkBAIC0xODcxNCw4ICsxODcxNiw2IEBACiAJCQkJNzU0MTVENTQxMjlBQjJEMjAwM0FENjY5
IC8qIEpTU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmggKi8sCiAJCQkJNjVERjMxRUYwOUQxQ0M2MDAw
MEJFMzI1IC8qIEpTVGV4dC5jcHAgKi8sCiAJCQkJNjVERjMxRjAwOUQxQ0M2MDAwMEJFMzI1IC8q
IEpTVGV4dC5oICovLAotCQkJCUM2RjA5MDI0MTQzMjdENEYwMDY4NTg0OSAvKiBKU1dlYktpdE11
dGF0aW9uT2JzZXJ2ZXIuY3BwICovLAotCQkJCUM2RjA5MDI1MTQzMjdENEYwMDY4NTg0OSAvKiBK
U1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCAqLywKIAkJCQlENzYxM0FDMjE0NzUzRTU2MDBEQjg2
MDYgLyogSlNXZWJLaXROYW1lZEZsb3cuY3BwICovLAogCQkJCUQ3NjEzQUMzMTQ3NTNFNTYwMERC
ODYwNiAvKiBKU1dlYktpdE5hbWVkRmxvdy5oICovLAogCQkJKTsKQEAgLTIwMTEzLDYgKzIwMTEz
LDcgQEAKIAkJCQlFMUFERUQ0NjBFNzZCOEREMDA0QTFBNUUgLyogSlNNZXNzYWdlUG9ydEN1c3Rv
bS5jcHAgKi8sCiAJCQkJNDFGNTg0QzYxMDQ2NTJDQjAwOUNBQTY0IC8qIEpTTWVzc2FnZVBvcnRD
dXN0b20uaCAqLywKIAkJCQlDNkYwOTE4NDE0M0E2QzNCMDA2ODU4NDkgLyogSlNNdXRhdGlvbkNh
bGxiYWNrQ3VzdG9tLmNwcCAqLywKKwkJCQlDNkYwOTE3RTE0M0EyQkI5MDA2ODU4NDkgLyogSlNN
dXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCAqLywKIAkJCQlCQ0Q5QzI1RjBDMTdBQTY3MDA1Qzkw
QTIgLyogSlNOYW1lZE5vZGVNYXBDdXN0b20uY3BwICovLAogCQkJCUJDRDlDMjYwMEMxN0FBNjcw
MDVDOTBBMiAvKiBKU05vZGVDdXN0b20uY3BwICovLAogCQkJCUJDOTQzOUMyMTE2Q0Y0OTQwMDQ4
Qzc1MCAvKiBKU05vZGVDdXN0b20uaCAqLywKQEAgLTIwMTUyLDcgKzIwMTUzLDYgQEAKIAkJCQkz
MTk0NjIzMTEzMDIyRjY1MDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb25MaXN0Q3VzdG9tLmNw
cCAqLywKIAkJCQlFMUFEMTRDNDEyOTczNTQ5MDBBQ0E5ODkgLyogSlNXZWJLaXRDU1NLZXlmcmFt
ZVJ1bGVDdXN0b20uY3BwICovLAogCQkJCUUxQUQxNEI0MTI5NzM0Q0EwMEFDQTk4OSAvKiBKU1dl
YktpdENTU0tleWZyYW1lc1J1bGVDdXN0b20uY3BwICovLAotCQkJCUM2RjA5MTdFMTQzQTJCQjkw
MDY4NTg0OSAvKiBKU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwICovLAogCQkJCUJD
Mjc1Qjc4MTFDNUQxQzMwMEM5MjA2QyAvKiBKU1dlYktpdFBvaW50Q3VzdG9tLmNwcCAqLywKIAkJ
CQk1MThBMzRDNjEwMjZDOEM5MDAxQjY4OTYgLyogSlNXZWJTb2NrZXRDdXN0b20uY3BwICovLAog
CQkJCUUxODI1OEFCMEVGM0NENzAwMDkzMzI0MiAvKiBKU1dvcmtlckNvbnRleHRDdXN0b20uY3Bw
ICovLApAQCAtMjE0NTIsNiArMjE0NTIsOSBAQAogCQkJCUQ2RTUyOEEyMTQ5QTkyNkQwMEVGRTFG
MyAvKiBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5oICovLAogCQkJCUQ2RTI3NkFEMTQ2
Mzc0NTUwMDFEMjgwQSAvKiBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNwcCAqLywKIAkJ
CQlENkUyNzZBRTE0NjM3NDU1MDAxRDI4MEEgLyogTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlv
bi5oICovLAorCQkJCUM2RjA5MDA1MTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbk9ic2VydmVy
LmNwcCAqLywKKwkJCQlDNkYwOTAwNjE0MzI3QjYxMDA2ODU4NDkgLyogTXV0YXRpb25PYnNlcnZl
ci5oICovLAorCQkJCUM2RjA5MDA3MTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbk9ic2VydmVy
LmlkbCAqLywKIAkJCQlDNkYwOEZCOTE0MzBGRThGMDA2ODU4NDkgLyogTXV0YXRpb25SZWNvcmQu
Y3BwICovLAogCQkJCUM2RjA4RkJBMTQzMEZFOEYwMDY4NTg0OSAvKiBNdXRhdGlvblJlY29yZC5o
ICovLAogCQkJCUM2RjA4RkJCMTQzMEZFOEYwMDY4NTg0OSAvKiBNdXRhdGlvblJlY29yZC5pZGwg
Ki8sCkBAIC0yMTU4Niw5ICsyMTU4OSw2IEBACiAJCQkJMzFDMEZGMUIwRTRDRUI2RTAwN0Q2RkU1
IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCAqLywKIAkJCQkzMUMwRkYxQzBFNENFQjZFMDA3
RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCAqLywKIAkJCQkzMUMwRkYxRDBFNENFQjZF
MDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9uRXZlbnQuaWRsICovLAotCQkJCUM2RjA5MDA1MTQz
MjdCNjEwMDY4NTg0OSAvKiBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmNwcCAqLywKLQkJCQlDNkYw
OTAwNjE0MzI3QjYxMDA2ODU4NDkgLyogV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oICovLAotCQkJ
CUM2RjA5MDA3MTQzMjdCNjEwMDY4NTg0OSAvKiBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmlkbCAq
LywKIAkJCQlENzYxM0E0RTE0NzRGMTNGMDBEQjg2MDYgLyogV2ViS2l0TmFtZWRGbG93LmNwcCAq
LywKIAkJCQlENzYxM0E0RDE0NzRGMTNGMDBEQjg2MDYgLyogV2ViS2l0TmFtZWRGbG93LmggKi8s
CiAJCQkJRDc2MTNBNEExNDc0RUU5NTAwREI4NjA2IC8qIFdlYktpdE5hbWVkRmxvdy5pZGwgKi8s
CkBAIC0yMzcwMiw2ICsyMzcwMiw3IEBACiAJCQkJQTg2NjI5RDEwOURBMkI0ODAwOTYzM0E1IC8q
IEpTTW91c2VFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzZGMDkwMjkxNDMyN0Q0RjAwNjg1
ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVERjMxRkMw
OUQxQ0M2MDAwMEJFMzI1IC8qIEpTTXV0YXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
QzZGMDkwMkQxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQzZGMDhGQ0ExNDMxMDAwRDAwNjg1ODQ5IC8qIEpTTXV0YXRpb25SZWNvcmQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDRDlDMkMxMEMxN0I2OUUwMDVDOTBBMiAvKiBKU05hbWVk
Tm9kZU1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTlEMjQ3RjgwRDc1N0UzNDAwRkRGOTU5IC8q
IEpTTmF2aWdhdG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTIzOTU2LDcgKzIzOTU3LDYgQEAKIAkJ
CQk0OTgzOTE0MDBGMUU3Njc1MDBDMjM3ODIgLyogSlNXZWJLaXRDU1NNYXRyaXguaCBpbiBIZWFk
ZXJzICovLAogCQkJCThBRDBBNTk1MTRDODgzMzYwMDBEODNDNSAvKiBKU1dlYktpdENTU1JlZ2lv
blJ1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNjExRTVCMEUxQzRERTAwMEY2QTU3OSAvKiBK
U1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmggaW4gSGVhZGVycyAqLywKLQkJCQlDNkYwOTAyRDE0
MzI3RDRGMDA2ODU4NDkgLyogSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0OTRCRDc5RTBGNTVDOTRDMDA3NDc4MjggLyogSlNXZWJLaXRQb2ludC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMzFDMEZGNDAwRTRDRUZBQzAwN0Q2RkU1IC8qIEpTV2ViS2l0VHJhbnNp
dGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1REE1RTBGRDEwMkI5NTM4MDAwODhDRjkg
LyogSlNXZWJTb2NrZXQuaCBpbiBIZWFkZXJzICovLApAQCAtMjQwODksNiArMjQwODksNyBAQAog
CQkJCUZEQjE3MDA2MTRBMkJBQjIwMEEyQjVEOSAvKiBNdWx0aUNoYW5uZWxSZXNhbXBsZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUM2RjA5MDBBMTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbkNh
bGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTAzMUI0QTBBNDRFRkM3MDBGOTkyRTAgLyog
TXV0YXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQzZGMDkwMEYxNDMyN0I2MTAwNjg1
ODQ5IC8qIE11dGF0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUQ2RTUyOEE0MTQ5
QTkyNkQwMEVGRTFGMyAvKiBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRDZFMjc2QjAxNDYzNzQ1NTAwMUQyODBBIC8qIE11dGF0aW9uT2JzZXJ2ZXJS
ZWdpc3RyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUM2RjA4RkJEMTQzMEZFOEYwMDY4NTg0
OSAvKiBNdXRhdGlvblJlY29yZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTA0Niw3ICsyNTA0Nyw2
IEBACiAJCQkJMjlDRDYxREUxNDZEMDI4OTAwNjhFODJBIC8qIFdlYktpdENTU1NoYWRlclZhbHVl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzlBREQyMzBDQzQwMzI2MDAwOThDNEMgLyogV2ViS2l0
Q1NTVHJhbnNmb3JtVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTg5ODc4NTY2MTIyQ0EwNjQw
MDNBQUJEQSAvKiBXZWJLaXRGbGFncy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQzZGMDkwMEYxNDMy
N0I2MTAwNjg1ODQ5IC8qIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQ5NEJENzk1MEY1NUM4RUUwMDc0NzgyOCAvKiBXZWJLaXRQb2ludC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMzFDMEZGMjUwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5zaXRpb25FdmVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDRjMzMkYwRjJCOUEyNTAwNEI2Nzk1IC8qIFdlYkxh
eWVyLmggaW4gSGVhZGVycyAqLywKQEAgLTI2OTIxLDYgKzI2OTIxLDggQEAKIAkJCQlDNkYwOTAy
ODE0MzI3RDRGMDA2ODU4NDkgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUM2RjA5MTg1MTQzQTZDM0IwMDY4NTg0OSAvKiBKU011dGF0aW9uQ2FsbGJhY2tDdXN0
b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjVERjMxRkIwOUQxQ0M2MDAwMEJFMzI1IC8qIEpT
TXV0YXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDNkYwOTAyQzE0MzI3RDRGMDA2
ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUM2RjA5
MTdGMTQzQTJCQjkwMDY4NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQzZGMDhGQzkxNDMxMDAwRDAwNjg1ODQ5IC8qIEpTTXV0YXRpb25SZWNv
cmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNEOUMyQzAwQzE3QjY5RTAwNUM5MEEyIC8qIEpT
TmFtZWROb2RlTWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRDlDMjYzMEMxN0FBNjcwMDVD
OTBBMiAvKiBKU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI3MjEy
LDggKzI3MjE0LDYgQEAKIAkJCQk0OTgzOTEzRjBGMUU3Njc1MDBDMjM3ODIgLyogSlNXZWJLaXRD
U1NNYXRyaXguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOEFEMEE1OTQxNEM4ODMzNjAwMEQ4M0M1
IC8qIEpTV2ViS2l0Q1NTUmVnaW9uUnVsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMTYxMUU1
QTBFMUM0REUwMDBGNkE1NzkgLyogSlNXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAgaW4gU291
cmNlcyAqLywKLQkJCQlDNkYwOTAyQzE0MzI3RDRGMDA2ODU4NDkgLyogSlNXZWJLaXRNdXRhdGlv
bk9ic2VydmVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUM2RjA5MTdGMTQzQTJCQjkwMDY4NTg0
OSAvKiBKU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRDc2MTNBQzQxNDc1M0U1NjAwREI4NjA2IC8qIEpTV2ViS2l0TmFtZWRGbG93LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTQ5NEJENzlEMEY1NUM5NEMwMDc0NzgyOCAvKiBKU1dlYktpdFBvaW50
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMjc1Qjc5MTFDNUQxQzMwMEM5MjA2QyAvKiBKU1dl
YktpdFBvaW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjczNDYsNiArMjczNDYsNyBA
QAogCQkJCTkzMzA5REZCMDk5RTY0OTIwMDU2RTU4MSAvKiBNb3ZlU2VsZWN0aW9uQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlGREIxNzAwNTE0QTJCQUIyMDBBMkI1RDkgLyogTXVsdGlD
aGFubmVsUmVzYW1wbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1MDMxQjQ5MEE0NEVGQzcw
MEY5OTJFMCAvKiBNdXRhdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUM2RjA5MDBF
MTQzMjdCNjEwMDY4NTg0OSAvKiBNdXRhdGlvbk9ic2VydmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUQ2RTUyOEEzMTQ5QTkyNkQwMEVGRTFGMyAvKiBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RH
cm91cC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlENkUyNzZBRjE0NjM3NDU1MDAxRDI4MEEgLyog
TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNkYw
OEZCQzE0MzBGRThGMDA2ODU4NDkgLyogTXV0YXRpb25SZWNvcmQuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0yODExMCw3ICsyODExMSw2IEBACiAJCQkJNTAzOEJDMDcxNDcxMUNEQjAwOTVFMEQxIC8q
IFdlYktpdENTU1NoYWRlclZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDOUFERDgwMEND
NDA5MjIwMDA5OEM0QyAvKiBXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxQTE0MTRCNTEzQTBGMDUwMDAxOTk5NkMgLyogV2ViS2l0Rm9udEZhbWlseU5hbWVz
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUM2RjA5MDBFMTQzMjdCNjEwMDY4NTg0OSAvKiBXZWJL
aXRNdXRhdGlvbk9ic2VydmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUQ3NjEzQTUwMTQ3NEYx
M0YwMERCODYwNiAvKiBXZWJLaXROYW1lZEZsb3cuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFD
MEZGMjQwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5zaXRpb25FdmVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwRkNGMzMyRTBGMkI5QTI1MDA0QjY3OTUgLyogV2ViTGF5ZXIubW0gaW4g
U291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmlu
ZGluZ3NBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdz
QWxsSW5PbmUuY3BwCmluZGV4IDY2YjRhN2Y0MzE4NGI0MDE2ZGU3N2Q0YTM4MzRiODk0ZTk2YWJj
MzkuLjhiOTRmNjQ5N2FiYTA2YWVjMWQzZmU4ODAwMDM3ZWFmZWU2MGM2NTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcApAQCAtMTIw
LDYgKzEyMCw3IEBACiAjaW5jbHVkZSAiSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwIgogI2luY2x1
ZGUgIkpTTWVzc2FnZVBvcnRDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTTXV0YXRpb25DYWxsYmFj
a0N1c3RvbS5jcHAiCisjaW5jbHVkZSAiSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCIKICNp
bmNsdWRlICJKU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNOb2RlQ3VzdG9t
LmNwcCIKICNpbmNsdWRlICJKU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwIgpAQCAtMTU4LDcgKzE1
OSw2IEBACiAjaW5jbHVkZSAiSlNXZWJLaXRBbmltYXRpb25MaXN0Q3VzdG9tLmNwcCIKICNpbmNs
dWRlICJKU1dlYktpdENTU0tleWZyYW1lUnVsZUN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNXZWJL
aXRDU1NLZXlmcmFtZXNSdWxlQ3VzdG9tLmNwcCIKLSNpbmNsdWRlICJKU1dlYktpdE11dGF0aW9u
T2JzZXJ2ZXJDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTV2ViS2l0UG9pbnRDdXN0b20uY3BwIgog
I2luY2x1ZGUgIkpTV2ViU29ja2V0Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU1dvcmtlckNvbnRl
eHRCYXNlLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWFp
blRocmVhZEV4ZWNTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01haW5U
aHJlYWRFeGVjU3RhdGUuY3BwCmluZGV4IDAwYmMxNzBkMmIzNTIzNmUxODlkMjMzZTljOTQzYmIy
NDk4NWI5ZDYuLjU1NmNhNWQ4ZDMxMjI1Mjg3ZmMzODUzZTIxODBiYTAyZDA3NjA0ZGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRl
LmNwcApAQCAtMjUsNyArMjUsNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
SlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCi0jaW5jbHVkZSAiV2ViS2l0TXV0YXRpb25PYnNlcnZl
ci5oIgorI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKIAogI2lmIEVOQUJMRShJTkRFWEVE
X0RBVEFCQVNFKQogI2luY2x1ZGUgIklEQlBlbmRpbmdUcmFuc2FjdGlvbk1vbml0b3IuaCIKQEAg
LTQyLDcgKzQyLDcgQEAgdm9pZCBKU01haW5UaHJlYWRFeGVjU3RhdGU6OmRpZExlYXZlU2NyaXB0
Q29udGV4dCgpCiAjZW5kaWYKIAogI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCi0gICAg
V2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6ZGVsaXZlckFsbE11dGF0aW9ucygpOworICAgIE11dGF0
aW9uT2JzZXJ2ZXI6OmRlbGl2ZXJBbGxNdXRhdGlvbnMoKTsKICNlbmRpZgogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2tDdXN0b20u
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9t
LmNwcAppbmRleCBkNGE1NzAxNTk4OWMzYTU1MDVkZGIxMDUwZDUwNTJiZGFhOWZhZjljLi5lM2Rl
N2I3OTQ2YWUxYzZkY2Y5NzUzOGM3YjJhZDM1OTY0ZGQwNDg2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAKQEAg
LTM1LDggKzM1LDggQEAKICNpbmNsdWRlICJKU011dGF0aW9uQ2FsbGJhY2suaCIKIAogI2luY2x1
ZGUgIkpTRE9NV2luZG93QmFzZS5oIgorI2luY2x1ZGUgIkpTTXV0YXRpb25PYnNlcnZlci5oIgog
I2luY2x1ZGUgIkpTTXV0YXRpb25SZWNvcmQuaCIKLSNpbmNsdWRlICJKU1dlYktpdE11dGF0aW9u
T2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVk
ZSA8cnVudGltZS9KU0xvY2suaD4KIApAQCAtNDQsNyArNDQsNyBAQCB1c2luZyBuYW1lc3BhY2Ug
SlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWJvb2wgSlNNdXRhdGlvbkNhbGxiYWNrOjpo
YW5kbGVFdmVudChNdXRhdGlvblJlY29yZEFycmF5KiBtdXRhdGlvbnMsIFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXIqIG9ic2VydmVyKQorYm9vbCBKU011dGF0aW9uQ2FsbGJhY2s6OmhhbmRsZUV2ZW50
KE11dGF0aW9uUmVjb3JkQXJyYXkqIG11dGF0aW9ucywgTXV0YXRpb25PYnNlcnZlciogb2JzZXJ2
ZXIpCiB7CiAgICAgaWYgKCFjYW5JbnZva2VDYWxsYmFjaygpKQogICAgICAgICByZXR1cm4gdHJ1
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25PYnNl
cnZlckN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uT2Jz
ZXJ2ZXJDdXN0b20uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiNTU2MGQ4MGNjOTdjNDMwMWM3ZjUwYWUxNDA4
NDE3ZmUwY2IwYjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJp
YnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQorCisjaW5jbHVkZSAi
SlNNdXRhdGlvbk9ic2VydmVyLmgiCisKKyNpbmNsdWRlICJKU011dGF0aW9uQ2FsbGJhY2suaCIK
KyNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSA8cnVudGltZS9FcnJvci5o
PgorCit1c2luZyBuYW1lc3BhY2UgSlNDOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0VuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNNdXRhdGlvbk9ic2VydmVyQ29uc3RydWN0b3I6OmNv
bnN0cnVjdEpTTXV0YXRpb25PYnNlcnZlcihFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgaWYgKGV4
ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCisgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhl
YywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOworCisgICAgSlNPYmplY3Qq
IG9iamVjdCA9IGV4ZWMtPmFyZ3VtZW50KDApLmdldE9iamVjdCgpOworICAgIGlmICghb2JqZWN0
KSB7CisgICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBUWVBFX01JU01BVENIX0VSUik7Cisg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgfQorCisg
ICAgSlNNdXRhdGlvbk9ic2VydmVyQ29uc3RydWN0b3IqIGpzQ29uc3RydWN0b3IgPSBqc0Nhc3Q8
SlNNdXRhdGlvbk9ic2VydmVyQ29uc3RydWN0b3IqPihleGVjLT5jYWxsZWUoKSk7CisgICAgUmVm
UHRyPE11dGF0aW9uQ2FsbGJhY2s+IGNhbGxiYWNrID0gSlNNdXRhdGlvbkNhbGxiYWNrOjpjcmVh
dGUob2JqZWN0LCBqc0NvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKSk7CisgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShhc09iamVjdCh0b0pTKGV4ZWMsIGpzQ29uc3RydWN0b3ItPmdsb2JhbE9i
amVjdCgpLCBNdXRhdGlvbk9ic2VydmVyOjpjcmVhdGUoY2FsbGJhY2sucmVsZWFzZSgpKSkpKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1VVEFUSU9O
X09CU0VSVkVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2Vi
S2l0TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA0MWZmYWZjMzYwZjNkYTQ5MDEzZTNlNjc1ZTkwMjgxY2RjYzQ5YmIwLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTV2ViS2l0TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSw2MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKE1V
VEFUSU9OX09CU0VSVkVSUykKLQotI2luY2x1ZGUgIkpTV2ViS2l0TXV0YXRpb25PYnNlcnZlci5o
IgotCi0jaW5jbHVkZSAiSlNNdXRhdGlvbkNhbGxiYWNrLmgiCi0jaW5jbHVkZSAiV2ViS2l0TXV0
YXRpb25PYnNlcnZlci5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KLQotdXNpbmcgbmFt
ZXNwYWNlIEpTQzsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIEpTV2ViS2l0TXV0YXRpb25PYnNlcnZlckNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RK
U1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIoRXhlY1N0YXRlKiBleGVjKQotewotICAgIGlmIChleGVj
LT5hcmd1bWVudENvdW50KCkgPCAxKQotICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMs
IGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLQotICAgIEpTT2JqZWN0KiBv
YmplY3QgPSBleGVjLT5hcmd1bWVudCgwKS5nZXRPYmplY3QoKTsKLSAgICBpZiAoIW9iamVjdCkg
ewotICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgVFlQRV9NSVNNQVRDSF9FUlIpOwotICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIH0KLQotICAg
IEpTV2ViS2l0TXV0YXRpb25PYnNlcnZlckNvbnN0cnVjdG9yKiBqc0NvbnN0cnVjdG9yID0ganND
YXN0PEpTV2ViS2l0TXV0YXRpb25PYnNlcnZlckNvbnN0cnVjdG9yKj4oZXhlYy0+Y2FsbGVlKCkp
OwotICAgIFJlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPiBjYWxsYmFjayA9IEpTTXV0YXRpb25DYWxs
YmFjazo6Y3JlYXRlKG9iamVjdCwganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCkpOwotICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNPYmplY3QodG9KUyhleGVjLCBqc0NvbnN0cnVjdG9y
LT5nbG9iYWxPYmplY3QoKSwgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6Y3JlYXRlKGNhbGxiYWNr
LnJlbGVhc2UoKSkpKSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8v
IEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOFJlY3Vyc2lvblNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4UmVjdXJzaW9uU2NvcGUuY3BwCmluZGV4IDkyYmU3MjBiMTRjNjlmMDVmNmVlZjZhOTZj
MjY4MmM0YjNjZmNmNjUuLmM1Y2JjOWMxNTUxNDA3Nzg5MDVlNDIyODBlMWZkYjAyNDAyMDMwODkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UmVjdXJzaW9uU2NvcGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UmVjdXJzaW9uU2NvcGUuY3Bw
CkBAIC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSAiVjhSZWN1cnNpb25TY29wZS5oIgogCiAjaW5j
bHVkZSAiSURCUGVuZGluZ1RyYW5zYWN0aW9uTW9uaXRvci5oIgotI2luY2x1ZGUgIldlYktpdE11
dGF0aW9uT2JzZXJ2ZXIuaCIKKyNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtNDksNyArNDksNyBAQCB2b2lkIFY4UmVjdXJzaW9uU2NvcGU6
OmRpZExlYXZlU2NyaXB0Q29udGV4dCgpCiAKICNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJT
KQogICAgIGlmIChtX2lzRG9jdW1lbnRDb250ZXh0KQotICAgICAgICBXZWJLaXRNdXRhdGlvbk9i
c2VydmVyOjpkZWxpdmVyQWxsTXV0YXRpb25zKCk7CisgICAgICAgIE11dGF0aW9uT2JzZXJ2ZXI6
OmRlbGl2ZXJBbGxNdXRhdGlvbnMoKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uQ2FsbGJhY2tDdXN0
b20uY3BwCmluZGV4IGJmZmJlNzQwMGZkYTJjYTU4ZDJmOWI3NzA4NmY2YzZiYmZhMDUyN2YuLjcx
NGZkYTI5YzlhMWIyMzA1N2ZkNGFmZDIxZDIxNGZlOTVhMmE1Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uQ2FsbGJh
Y2tDdXN0b20uY3BwCkBAIC0zNyw5ICszNyw5IEBACiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgogI2luY2x1ZGUgIlY4Q3VzdG9tVm9p
ZENhbGxiYWNrLmgiCisjaW5jbHVkZSAiVjhNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAi
VjhNdXRhdGlvblJlY29yZC5oIgogI2luY2x1ZGUgIlY4UHJveHkuaCIKLSNpbmNsdWRlICJWOFdl
YktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2lu
Y2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpAQCAtNDcs
NyArNDcsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWJvb2wgVjhNdXRhdGlvbkNhbGxi
YWNrOjpoYW5kbGVFdmVudChNdXRhdGlvblJlY29yZEFycmF5KiBtdXRhdGlvbnMsIFdlYktpdE11
dGF0aW9uT2JzZXJ2ZXIqIG9ic2VydmVyKQorYm9vbCBWOE11dGF0aW9uQ2FsbGJhY2s6OmhhbmRs
ZUV2ZW50KE11dGF0aW9uUmVjb3JkQXJyYXkqIG11dGF0aW9ucywgTXV0YXRpb25PYnNlcnZlciog
b2JzZXJ2ZXIpCiB7CiAgICAgQVNTRVJUKG11dGF0aW9ucyk7CiAgICAgaWYgKCFtdXRhdGlvbnMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlv
bk9ic2VydmVyQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0M2Q2ZTkxZGQ2ZDNiOTg2
NzkxMjc0MTYxZTNkMjc4ZGIzMTY4MTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcApAQCAtMCww
ICsxLDc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VS
VkVSUykKKworI2luY2x1ZGUgIlY4TXV0YXRpb25PYnNlcnZlci5oIgorCisjaW5jbHVkZSAiTXV0
YXRpb25PYnNlcnZlci5oIgorI2luY2x1ZGUgIlY4QmluZGluZy5oIgorI2luY2x1ZGUgIlY4Qmlu
ZGluZ01hY3Jvcy5oIgorI2luY2x1ZGUgIlY4RE9NV3JhcHBlci5oIgorI2luY2x1ZGUgIlY4TXV0
YXRpb25DYWxsYmFjay5oIgorI2luY2x1ZGUgIlY4UHJveHkuaCIKKyNpbmNsdWRlICJWOFV0aWxp
dGllcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBW
OE11dGF0aW9uT2JzZXJ2ZXI6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50
cyYgYXJncykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5NdXRhdGlvbk9ic2VydmVyLkNvbnN0cnVj
dG9yIik7CisKKyAgICBpZiAoIWFyZ3MuSXNDb25zdHJ1Y3RDYWxsKCkpCisgICAgICAgIHJldHVy
biBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiRE9NIG9iamVjdCBjb25zdHJ1Y3RvciBjYW5ub3Qg
YmUgY2FsbGVkIGFzIGEgZnVuY3Rpb24uIiwgYXJncy5HZXRJc29sYXRlKCkpOworCisgICAgaWYg
KENvbnN0cnVjdG9yTW9kZTo6Y3VycmVudCgpID09IENvbnN0cnVjdG9yTW9kZTo6V3JhcEV4aXN0
aW5nT2JqZWN0KQorICAgICAgICByZXR1cm4gYXJncy5Ib2xkZXIoKTsKKworICAgIGlmIChhcmdz
Lkxlbmd0aCgpIDwgMSkKKyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJn
dW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOworCisgICAgdjg6OkxvY2FsPHY4OjpWYWx1
ZT4gYXJnID0gYXJnc1swXTsKKyAgICBpZiAoIWFyZy0+SXNPYmplY3QoKSkKKyAgICAgICAgcmV0
dXJuIHRocm93RXJyb3IoVFlQRV9NSVNNQVRDSF9FUlIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKwor
ICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQgPSBnZXRTY3JpcHRFeGVjdXRpb25D
b250ZXh0KCk7CisgICAgaWYgKCFjb250ZXh0KQorICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhy
b3dFcnJvcihWOFByb3h5OjpSZWZlcmVuY2VFcnJvciwgIk11dGF0aW9uT2JzZXJ2ZXIgY29uc3Ry
dWN0b3IncyBhc3NvY2lhdGVkIGZyYW1lIHVuYXZhaWxhYmxlIiwgYXJncy5HZXRJc29sYXRlKCkp
OworCisgICAgUmVmUHRyPE11dGF0aW9uQ2FsbGJhY2s+IGNhbGxiYWNrID0gVjhNdXRhdGlvbkNh
bGxiYWNrOjpjcmVhdGUoYXJnLCBjb250ZXh0KTsKKyAgICBSZWZQdHI8TXV0YXRpb25PYnNlcnZl
cj4gb2JzZXJ2ZXIgPSBNdXRhdGlvbk9ic2VydmVyOjpjcmVhdGUoY2FsbGJhY2sucmVsZWFzZSgp
KTsKKworICAgIFY4RE9NV3JhcHBlcjo6c2V0RE9NV3JhcHBlcihhcmdzLkhvbGRlcigpLCAmaW5m
bywgb2JzZXJ2ZXIuZ2V0KCkpOworICAgIFY4RE9NV3JhcHBlcjo6c2V0SlNXcmFwcGVyRm9yRE9N
T2JqZWN0KG9ic2VydmVyLnJlbGVhc2UoKSwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD46Ok5l
dyhhcmdzLkhvbGRlcigpKSk7CisgICAgcmV0dXJuIGFyZ3MuSG9sZGVyKCk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRN
dXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOFdlYktpdE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA3NjY3ODU0YjI5NzJiNTJlOGY4ZWY5YWIwYzZkNmJkYjUzM2U3OTQ3Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsNzggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0g
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0g
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lm
IEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCi0KLSNpbmNsdWRlICJWOFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXIuaCIKLQotI2luY2x1ZGUgIlY4QmluZGluZy5oIgotI2luY2x1ZGUgIlY4QmluZGlu
Z01hY3Jvcy5oIgotI2luY2x1ZGUgIlY4RE9NV3JhcHBlci5oIgotI2luY2x1ZGUgIlY4TXV0YXRp
b25DYWxsYmFjay5oIgotI2luY2x1ZGUgIlY4UHJveHkuaCIKLSNpbmNsdWRlICJWOFV0aWxpdGll
cy5oIgotI2luY2x1ZGUgIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIKLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi12ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJLaXRNdXRhdGlvbk9ic2VydmVy
Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCi17Ci0gICAg
SU5DX1NUQVRTKCJET00uV2ViS2l0TXV0YXRpb25PYnNlcnZlci5Db25zdHJ1Y3RvciIpOwotCi0g
ICAgaWYgKCFhcmdzLklzQ29uc3RydWN0Q2FsbCgpKQotICAgICAgICByZXR1cm4gVjhQcm94eTo6
dGhyb3dUeXBlRXJyb3IoIkRPTSBvYmplY3QgY29uc3RydWN0b3IgY2Fubm90IGJlIGNhbGxlZCBh
cyBhIGZ1bmN0aW9uLiIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKLQotICAgIGlmIChDb25zdHJ1Y3Rv
ck1vZGU6OmN1cnJlbnQoKSA9PSBDb25zdHJ1Y3Rvck1vZGU6OldyYXBFeGlzdGluZ09iamVjdCkK
LSAgICAgICAgcmV0dXJuIGFyZ3MuSG9sZGVyKCk7Ci0KLSAgICBpZiAoYXJncy5MZW5ndGgoKSA8
IDEpCi0gICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9y
KGFyZ3MuR2V0SXNvbGF0ZSgpKTsKLQotICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGFyZyA9IGFy
Z3NbMF07Ci0gICAgaWYgKCFhcmctPklzT2JqZWN0KCkpCi0gICAgICAgIHJldHVybiB0aHJvd0Vy
cm9yKFRZUEVfTUlTTUFUQ0hfRVJSLCBhcmdzLkdldElzb2xhdGUoKSk7Ci0KLSAgICBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0gZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwot
ICAgIGlmICghY29udGV4dCkKLSAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93RXJyb3IoVjhQ
cm94eTo6UmVmZXJlbmNlRXJyb3IsICJXZWJLaXRNdXRhdGlvbk9ic2VydmVyIGNvbnN0cnVjdG9y
J3MgYXNzb2NpYXRlZCBmcmFtZSB1bmF2YWlsYWJsZSIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKLQot
ICAgIFJlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPiBjYWxsYmFjayA9IFY4TXV0YXRpb25DYWxsYmFj
azo6Y3JlYXRlKGFyZywgY29udGV4dCk7Ci0gICAgUmVmUHRyPFdlYktpdE11dGF0aW9uT2JzZXJ2
ZXI+IG9ic2VydmVyID0gV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6Y3JlYXRlKGNhbGxiYWNrLnJl
bGVhc2UoKSk7Ci0KLSAgICBWOERPTVdyYXBwZXI6OnNldERPTVdyYXBwZXIoYXJncy5Ib2xkZXIo
KSwgJmluZm8sIG9ic2VydmVyLmdldCgpKTsKLSAgICBWOERPTVdyYXBwZXI6OnNldEpTV3JhcHBl
ckZvckRPTU9iamVjdChvYnNlcnZlci5yZWxlYXNlKCksIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmpl
Y3Q+OjpOZXcoYXJncy5Ib2xkZXIoKSkpOwotICAgIHJldHVybiBhcmdzLkhvbGRlcigpOwotfQot
Ci19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoTVVUQVRJT05fT0JT
RVJWRVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuY3BwCmluZGV4IDc2MTk4ZmJlNWQ4
MDE2ZjE5MGVjODM3NWIwMDU4OTEzY2IzZDdkNzkuLjMzOTQwMzg1MTNkYWU5OTE3MjQ1NTliODEz
ZTNjZGRiZGMzYzNmOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJE
YXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0YS5jcHAKQEAgLTMy
LDcgKzMyLDYgQEAKICNpbmNsdWRlICJOb2RlUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUg
IlJlbmRlclRleHQuaCIKICNpbmNsdWRlICJUZXh0QnJlYWtJdGVyYXRvci5oIgotI2luY2x1ZGUg
IldlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIKIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NoaWxkTGlzdE11dGF0aW9uU2NvcGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmgKaW5kZXggNmRkNTIzNjQw
YjYxZjA2ZjNhNTNiYTU3NWI1Y2FlZDkyMzdjNDA1Zi4uYmNlMjY3NTFjMGY0ODYyZDBjNGE1Mzkw
ZmNjNWMzZmFlZDRjNTAwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NoaWxkTGlz
dE11dGF0aW9uU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRMaXN0TXV0YXRp
b25TY29wZS5oCkBAIC0zNCw4ICszNCw4IEBACiAjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVS
UykKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlci5o
IgogI2luY2x1ZGUgIk5vZGUuaCIKLSNpbmNsdWRlICJXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgi
CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4K
ICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CkBAIC00Niw3ICs0Niw3IEBAIGNsYXNzIENoaWxkTGlz
dE11dGF0aW9uU2NvcGUgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENoaWxkTGlzdE11dGF0
aW9uU2NvcGUpOwogcHVibGljOgogICAgIENoaWxkTGlzdE11dGF0aW9uU2NvcGUoTm9kZSogdGFy
Z2V0KQotICAgICAgICA6IG1fdGFyZ2V0KHRhcmdldC0+ZG9jdW1lbnQoKS0+aGFzTXV0YXRpb25P
YnNlcnZlcnNPZlR5cGUoV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6Q2hpbGRMaXN0KSA/IHRhcmdl
dCA6IDApCisgICAgICAgIDogbV90YXJnZXQodGFyZ2V0LT5kb2N1bWVudCgpLT5oYXNNdXRhdGlv
bk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyOjpDaGlsZExpc3QpID8gdGFyZ2V0IDog
MCkKICAgICB7CiAgICAgICAgIGlmIChtX3RhcmdldCkKICAgICAgICAgICAgIE11dGF0aW9uQWNj
dW11bGF0aW9uUm91dGVyOjppbnN0YW5jZSgpLT5pbmNyZW1lbnRTY29waW5nTGV2ZWwobV90YXJn
ZXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKaW5kZXggZDNkNDkwMmQ0Yzg2YWRkNjVi
NTFmMzQ0ZGEyYjk5MGJiZTNhYjMwZi4uNTkyZDcyOTkyYWM0ZjM0ZjBiM2Y5YjBjMDMzYjI4YWJh
MmU4ODM0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCkBAIC05Miw2ICs5Miw3IEBA
CiAjaW5jbHVkZSAiTW91c2VFdmVudC5jcHAiCiAjaW5jbHVkZSAiTW91c2VSZWxhdGVkRXZlbnQu
Y3BwIgogI2luY2x1ZGUgIk11dGF0aW9uRXZlbnQuY3BwIgorI2luY2x1ZGUgIk11dGF0aW9uT2Jz
ZXJ2ZXIuY3BwIgogI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcCIK
ICNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNwcCIKICNpbmNsdWRlICJN
dXRhdGlvblJlY29yZC5jcHAiCkBAIC0xNDIsNyArMTQzLDYgQEAKICNpbmNsdWRlICJVc2VyVHlw
aW5nR2VzdHVyZUluZGljYXRvci5jcHAiCiAjaW5jbHVkZSAiVmlld3BvcnRBcmd1bWVudHMuY3Bw
IgogI2luY2x1ZGUgIldlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCIKLSNpbmNsdWRlICJXZWJLaXRN
dXRhdGlvbk9ic2VydmVyLmNwcCIKICNpbmNsdWRlICJXZWJLaXROYW1lZEZsb3cuY3BwIgogI2lu
Y2x1ZGUgIldlYktpdFRyYW5zaXRpb25FdmVudC5jcHAiCiAjaW5jbHVkZSAiV2hlZWxFdmVudC5j
cHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGVjY2Y4YTc3NmJiYTU0ZmQwYmNlM2ViMWEwMDMx
YjMxNjllMTkwNzQuLjVmMjhkMDg4MTE1Y2M1MjAxOWFjMzk5Zjk3YmMwMzAzN2ZlMDMyOGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9y
Q291bnRlcnMuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiTGF5b3V0VHlwZXMu
aCIKKyNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiUGFnZVZpc2liaWxp
dHlTdGF0ZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCiAjaW5jbHVkZSAiUXVhbGlm
aWVkTmFtZS5oIgpAQCAtNDcsNyArNDgsNiBAQAogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVk
ZSAiVHJlZVNjb3BlLmgiCiAjaW5jbHVkZSAiVmlld3BvcnRBcmd1bWVudHMuaCIKLSNpbmNsdWRl
ICJXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5j
bHVkZSA8d3RmL0ZpeGVkQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CkBAIC03NzUs
NyArNzc1LDcgQEAgcHVibGljOgogICAgIHZvaWQgYWRkTGlzdGVuZXJUeXBlSWZOZWVkZWQoY29u
c3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUpOwogCiAjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VS
VkVSUykKLSAgICBib29sIGhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSB0eXBlKSBjb25zdAorICAgIGJvb2wgaGFzTXV0YXRpb25P
YnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlcjo6TXV0YXRpb25UeXBlIHR5cGUpIGNvbnN0
CiAgICAgewogICAgICAgICByZXR1cm4gbV9tdXRhdGlvbk9ic2VydmVyVHlwZXMgJiB0eXBlOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBlYmMwYzliNTNkMzViYmMwZGZkNTg5NWU1
MjFkMDA5MmFjMmEzOWY5Li5iNjJjYjgzZTA1Y2M4MmNkODdiNmQ1YzhhNDM3NzhmZWQxZDhkZTg1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC02OCw3ICs2OCw2IEBACiAjaW5jbHVkZSAiVGV4
dC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgIlZvaWRDYWxsYmFjay5o
IgotI2luY2x1ZGUgIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJXZWJLaXRB
bmltYXRpb25MaXN0LmgiCiAjaW5jbHVkZSAiWE1MTlNOYW1lcy5oIgogI2luY2x1ZGUgIlhNTE5h
bWVzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25DYWxsYmFjay5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uQ2FsbGJhY2suaAppbmRleCA4MDczOWM4OGFk
NzhiMTMxNTk5MmQ4ZjY2NmQ5MGIyNDBhZTdlYWQ5Li4xMTkxOTdhYmUzNGIxZGE5MDRkNDIyYmJm
OGUwZjFmNzdlNzc2ZGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25D
YWxsYmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbkNhbGxiYWNrLmgKQEAg
LTQwLDcgKzQwLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTXV0YXRpb25SZWNv
cmQ7Ci1jbGFzcyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOworY2xhc3MgTXV0YXRpb25PYnNlcnZl
cjsKIAogdHlwZWRlZiBWZWN0b3I8UmVmUHRyPE11dGF0aW9uUmVjb3JkPiA+IE11dGF0aW9uUmVj
b3JkQXJyYXk7CiAKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgTXV0YXRpb25DYWxsYmFjayA6IHB1
YmxpYyBSZWZDb3VudGVkPE11dGF0aW9uQ2FsbGJhY2s+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5NdXRhdGlvbkNhbGxiYWNrKCkgeyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlRXZlbnQo
TXV0YXRpb25SZWNvcmRBcnJheSosIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIqKSA9IDA7CisgICAg
dmlydHVhbCBib29sIGhhbmRsZUV2ZW50KE11dGF0aW9uUmVjb3JkQXJyYXkqLCBNdXRhdGlvbk9i
c2VydmVyKikgPSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011
dGF0aW9uQ2FsbGJhY2suaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uQ2FsbGJhY2su
aWRsCmluZGV4IDE2MzgxNzE0YzgwOWVhN2NhNDc4NGM2YjNiMDMxMWI4OTc5ZjgxNzUuLjJhZWNk
OWJlOWU0MWRlNGYzMmU0NmY5ZDA1YjBlYmYyY2U0ODUwZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9NdXRhdGlvbkNhbGxiYWNrLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
TXV0YXRpb25DYWxsYmFjay5pZGwKQEAgLTMzLDYgKzMzLDYgQEAgbW9kdWxlIGNvcmUgewogICAg
ICAgICBDb25kaXRpb25hbD1NVVRBVElPTl9PQlNFUlZFUlMsCiAgICAgICAgIENhbGxiYWNrCiAg
ICAgXSBNdXRhdGlvbkNhbGxiYWNrIHsKLSAgICAgICAgW0N1c3RvbV0gYm9vbGVhbiBoYW5kbGVF
dmVudChpbiBNdXRhdGlvblJlY29yZEFycmF5IG11dGF0aW9ucywgaW4gV2ViS2l0TXV0YXRpb25P
YnNlcnZlciBvYnNlcnZlcik7CisgICAgICAgIFtDdXN0b21dIGJvb2xlYW4gaGFuZGxlRXZlbnQo
aW4gTXV0YXRpb25SZWNvcmRBcnJheSBtdXRhdGlvbnMsIGluIE11dGF0aW9uT2JzZXJ2ZXIgb2Jz
ZXJ2ZXIpOwogICAgIH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRp
b25PYnNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYTQwZDUwN2ZlNzAwM2EwMjRjYWU2NGM4Y2ViZjhmOGIzNWUxZTM1YQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmNwcApA
QCAtMCwwICsxLDIxNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
ICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShNVVRBVElP
Tl9PQlNFUlZFUlMpCisKKyNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyLmgiCisKKyNpbmNsdWRl
ICJEaWN0aW9uYXJ5LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFeGNlcHRp
b25Db2RlLmgiCisjaW5jbHVkZSAiTXV0YXRpb25DYWxsYmFjay5oIgorI2luY2x1ZGUgIk11dGF0
aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uaCIKKyNpbmNsdWRlICJNdXRhdGlvblJlY29yZC5oIgor
I2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRlIDxhbGdvcml0aG0+CisjaW5jbHVkZSA8d3RmL0hh
c2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgdW5zaWduZWQgc19vYnNlcnZl
clByaW9yaXR5ID0gMDsKKworc3RydWN0IE11dGF0aW9uT2JzZXJ2ZXI6Ok9ic2VydmVyTGVzc1Ro
YW4geworICAgIGJvb2wgb3BlcmF0b3IoKShjb25zdCBSZWZQdHI8TXV0YXRpb25PYnNlcnZlcj4m
IGxocywgY29uc3QgUmVmUHRyPE11dGF0aW9uT2JzZXJ2ZXI+JiByaHMpCisgICAgeworICAgICAg
ICByZXR1cm4gbGhzLT5tX3ByaW9yaXR5IDwgcmhzLT5tX3ByaW9yaXR5OworICAgIH0KK307CisK
K1Bhc3NSZWZQdHI8TXV0YXRpb25PYnNlcnZlcj4gTXV0YXRpb25PYnNlcnZlcjo6Y3JlYXRlKFBh
c3NSZWZQdHI8TXV0YXRpb25DYWxsYmFjaz4gY2FsbGJhY2spCit7CisgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IE11dGF0aW9uT2JzZXJ2ZXIoY2Fs
bGJhY2spKTsKK30KKworTXV0YXRpb25PYnNlcnZlcjo6TXV0YXRpb25PYnNlcnZlcihQYXNzUmVm
UHRyPE11dGF0aW9uQ2FsbGJhY2s+IGNhbGxiYWNrKQorICAgIDogbV9jYWxsYmFjayhjYWxsYmFj
aykKKyAgICAsIG1fcHJpb3JpdHkoc19vYnNlcnZlclByaW9yaXR5KyspCit7Cit9CisKK011dGF0
aW9uT2JzZXJ2ZXI6On5NdXRhdGlvbk9ic2VydmVyKCkKK3sKKyAgICBBU1NFUlQobV9yZWdpc3Ry
YXRpb25zLmlzRW1wdHkoKSk7Cit9CisKK2Jvb2wgTXV0YXRpb25PYnNlcnZlcjo6dmFsaWRhdGVP
cHRpb25zKE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIG9wdGlvbnMpCit7CisgICAgcmV0dXJuIChv
cHRpb25zICYgKEF0dHJpYnV0ZXMgfCBDaGFyYWN0ZXJEYXRhIHwgQ2hpbGRMaXN0KSkKKyAgICAg
ICAgJiYgKChvcHRpb25zICYgQXR0cmlidXRlcykgfHwgIShvcHRpb25zICYgQXR0cmlidXRlT2xk
VmFsdWUpKQorICAgICAgICAmJiAoKG9wdGlvbnMgJiBBdHRyaWJ1dGVzKSB8fCAhKG9wdGlvbnMg
JiBBdHRyaWJ1dGVGaWx0ZXIpKQorICAgICAgICAmJiAoKG9wdGlvbnMgJiBDaGFyYWN0ZXJEYXRh
KSB8fCAhKG9wdGlvbnMgJiBDaGFyYWN0ZXJEYXRhT2xkVmFsdWUpKTsKK30KKwordm9pZCBNdXRh
dGlvbk9ic2VydmVyOjpvYnNlcnZlKE5vZGUqIG5vZGUsIGNvbnN0IERpY3Rpb25hcnkmIG9wdGlv
bnNEaWN0aW9uYXJ5LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIW5vZGUpIHsKKyAg
ICAgICAgZWMgPSBOT1RfRk9VTkRfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
c3RhdGljIGNvbnN0IHN0cnVjdCB7CisgICAgICAgIGNvbnN0IGNoYXIqIG5hbWU7CisgICAgICAg
IE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIHZhbHVlOworICAgIH0gYm9vbGVhbk9wdGlvbnNbXSA9
IHsKKyAgICAgICAgeyAiY2hpbGRMaXN0IiwgQ2hpbGRMaXN0IH0sCisgICAgICAgIHsgImF0dHJp
YnV0ZXMiLCBBdHRyaWJ1dGVzIH0sCisgICAgICAgIHsgImNoYXJhY3RlckRhdGEiLCBDaGFyYWN0
ZXJEYXRhIH0sCisgICAgICAgIHsgInN1YnRyZWUiLCBTdWJ0cmVlIH0sCisgICAgICAgIHsgImF0
dHJpYnV0ZU9sZFZhbHVlIiwgQXR0cmlidXRlT2xkVmFsdWUgfSwKKyAgICAgICAgeyAiY2hhcmFj
dGVyRGF0YU9sZFZhbHVlIiwgQ2hhcmFjdGVyRGF0YU9sZFZhbHVlIH0KKyAgICB9OworICAgIE11
dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIG9wdGlvbnMgPSAwOworICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBzaXplb2YoYm9vbGVhbk9wdGlvbnMpIC8gc2l6ZW9mKGJvb2xlYW5PcHRpb25zWzBd
KTsgKytpKSB7CisgICAgICAgIGJvb2wgdmFsdWUgPSBmYWxzZTsKKyAgICAgICAgaWYgKG9wdGlv
bnNEaWN0aW9uYXJ5LmdldChib29sZWFuT3B0aW9uc1tpXS5uYW1lLCB2YWx1ZSkgJiYgdmFsdWUp
CisgICAgICAgICAgICBvcHRpb25zIHw9IGJvb2xlYW5PcHRpb25zW2ldLnZhbHVlOworICAgIH0K
KworICAgIEhhc2hTZXQ8QXRvbWljU3RyaW5nPiBhdHRyaWJ1dGVGaWx0ZXI7CisgICAgaWYgKG9w
dGlvbnNEaWN0aW9uYXJ5LmdldCgiYXR0cmlidXRlRmlsdGVyIiwgYXR0cmlidXRlRmlsdGVyKSkK
KyAgICAgICAgb3B0aW9ucyB8PSBBdHRyaWJ1dGVGaWx0ZXI7CisKKyAgICBpZiAoIXZhbGlkYXRl
T3B0aW9ucyhvcHRpb25zKSkgeworICAgICAgICBlYyA9IFNZTlRBWF9FUlI7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKiByZWdpc3Ry
YXRpb24gPSBub2RlLT5yZWdpc3Rlck11dGF0aW9uT2JzZXJ2ZXIodGhpcyk7CisgICAgcmVnaXN0
cmF0aW9uLT5yZXNldE9ic2VydmF0aW9uKG9wdGlvbnMsIGF0dHJpYnV0ZUZpbHRlcik7CisKKyAg
ICBub2RlLT5kb2N1bWVudCgpLT5hZGRNdXRhdGlvbk9ic2VydmVyVHlwZXMocmVnaXN0cmF0aW9u
LT5tdXRhdGlvblR5cGVzKCkpOworfQorCitWZWN0b3I8UmVmUHRyPE11dGF0aW9uUmVjb3JkPiA+
IE11dGF0aW9uT2JzZXJ2ZXI6OnRha2VSZWNvcmRzKCkKK3sKKyAgICBWZWN0b3I8UmVmUHRyPE11
dGF0aW9uUmVjb3JkPiA+IHJlY29yZHM7CisgICAgcmVjb3Jkcy5zd2FwKG1fcmVjb3Jkcyk7Cisg
ICAgcmV0dXJuIHJlY29yZHM7Cit9CisKK3ZvaWQgTXV0YXRpb25PYnNlcnZlcjo6ZGlzY29ubmVj
dCgpCit7CisgICAgbV9yZWNvcmRzLmNsZWFyKCk7CisgICAgSGFzaFNldDxNdXRhdGlvbk9ic2Vy
dmVyUmVnaXN0cmF0aW9uKj4gcmVnaXN0cmF0aW9ucyhtX3JlZ2lzdHJhdGlvbnMpOworICAgIGZv
ciAoSGFzaFNldDxNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKj46Oml0ZXJhdG9yIGl0ZXIg
PSByZWdpc3RyYXRpb25zLmJlZ2luKCk7IGl0ZXIgIT0gcmVnaXN0cmF0aW9ucy5lbmQoKTsgKytp
dGVyKQorICAgICAgICAoKml0ZXIpLT51bnJlZ2lzdGVyKCk7Cit9CisKK3ZvaWQgTXV0YXRpb25P
YnNlcnZlcjo6b2JzZXJ2YXRpb25TdGFydGVkKE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24q
IHJlZ2lzdHJhdGlvbikKK3sKKyAgICBBU1NFUlQoIW1fcmVnaXN0cmF0aW9ucy5jb250YWlucyhy
ZWdpc3RyYXRpb24pKTsKKyAgICBtX3JlZ2lzdHJhdGlvbnMuYWRkKHJlZ2lzdHJhdGlvbik7Cit9
CisKK3ZvaWQgTXV0YXRpb25PYnNlcnZlcjo6b2JzZXJ2YXRpb25FbmRlZChNdXRhdGlvbk9ic2Vy
dmVyUmVnaXN0cmF0aW9uKiByZWdpc3RyYXRpb24pCit7CisgICAgQVNTRVJUKG1fcmVnaXN0cmF0
aW9ucy5jb250YWlucyhyZWdpc3RyYXRpb24pKTsKKyAgICBtX3JlZ2lzdHJhdGlvbnMucmVtb3Zl
KHJlZ2lzdHJhdGlvbik7Cit9CisKK3R5cGVkZWYgSGFzaFNldDxSZWZQdHI8TXV0YXRpb25PYnNl
cnZlcj4gPiBNdXRhdGlvbk9ic2VydmVyU2V0OworCitzdGF0aWMgTXV0YXRpb25PYnNlcnZlclNl
dCYgYWN0aXZlTXV0YXRpb25PYnNlcnZlcnMoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwo
TXV0YXRpb25PYnNlcnZlclNldCwgYWN0aXZlT2JzZXJ2ZXJzLCAoKSk7CisgICAgcmV0dXJuIGFj
dGl2ZU9ic2VydmVyczsKK30KKwordm9pZCBNdXRhdGlvbk9ic2VydmVyOjplbnF1ZXVlTXV0YXRp
b25SZWNvcmQoUGFzc1JlZlB0cjxNdXRhdGlvblJlY29yZD4gbXV0YXRpb24pCit7CisgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBtX3JlY29yZHMuYXBwZW5kKG11dGF0aW9uKTsKKyAg
ICBhY3RpdmVNdXRhdGlvbk9ic2VydmVycygpLmFkZCh0aGlzKTsKK30KKwordm9pZCBNdXRhdGlv
bk9ic2VydmVyOjpzZXRIYXNUcmFuc2llbnRSZWdpc3RyYXRpb24oKQoreworICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CisgICAgYWN0aXZlTXV0YXRpb25PYnNlcnZlcnMoKS5hZGQodGhpcyk7
Cit9CisKK3ZvaWQgTXV0YXRpb25PYnNlcnZlcjo6ZGVsaXZlcigpCit7CisgICAgLy8gQ2FsbGlu
ZyBjbGVhclRyYW5zaWVudFJlZ2lzdHJhdGlvbnMoKSBjYW4gbW9kaWZ5IG1fcmVnaXN0cmF0aW9u
cywgc28gaXQncyBuZWNlc3NhcnkKKyAgICAvLyB0byBtYWtlIGEgY29weSBvZiB0aGUgdHJhbnNp
ZW50IHJlZ2lzdHJhdGlvbnMgYmVmb3JlIG9wZXJhdGluZyBvbiB0aGVtLgorICAgIFZlY3RvcjxN
dXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKiwgMT4gdHJhbnNpZW50UmVnaXN0cmF0aW9uczsK
KyAgICBmb3IgKEhhc2hTZXQ8TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbio+OjppdGVyYXRv
ciBpdGVyID0gbV9yZWdpc3RyYXRpb25zLmJlZ2luKCk7IGl0ZXIgIT0gbV9yZWdpc3RyYXRpb25z
LmVuZCgpOyArK2l0ZXIpIHsKKyAgICAgICAgaWYgKCgqaXRlciktPmhhc1RyYW5zaWVudFJlZ2lz
dHJhdGlvbnMoKSkKKyAgICAgICAgICAgIHRyYW5zaWVudFJlZ2lzdHJhdGlvbnMuYXBwZW5kKCpp
dGVyKTsKKyAgICB9CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0cmFuc2llbnRSZWdpc3Ry
YXRpb25zLnNpemUoKTsgKytpKQorICAgICAgICB0cmFuc2llbnRSZWdpc3RyYXRpb25zW2ldLT5j
bGVhclRyYW5zaWVudFJlZ2lzdHJhdGlvbnMoKTsKKworICAgIGlmIChtX3JlY29yZHMuaXNFbXB0
eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBWZWN0b3I8UmVmUHRyPE11dGF0aW9uUmVjb3Jk
PiA+IHJlY29yZHM7CisgICAgcmVjb3Jkcy5zd2FwKG1fcmVjb3Jkcyk7CisKKyAgICBtX2NhbGxi
YWNrLT5oYW5kbGVFdmVudCgmcmVjb3JkcywgdGhpcyk7Cit9CisKK3ZvaWQgTXV0YXRpb25PYnNl
cnZlcjo6ZGVsaXZlckFsbE11dGF0aW9ucygpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKKyAgICBzdGF0aWMgYm9vbCBkZWxpdmVyeUluUHJvZ3Jlc3MgPSBmYWxzZTsKKyAgICBpZiAo
ZGVsaXZlcnlJblByb2dyZXNzKQorICAgICAgICByZXR1cm47CisgICAgZGVsaXZlcnlJblByb2dy
ZXNzID0gdHJ1ZTsKKworICAgIHdoaWxlICghYWN0aXZlTXV0YXRpb25PYnNlcnZlcnMoKS5pc0Vt
cHR5KCkpIHsKKyAgICAgICAgVmVjdG9yPFJlZlB0cjxNdXRhdGlvbk9ic2VydmVyPiA+IG9ic2Vy
dmVyczsKKyAgICAgICAgY29weVRvVmVjdG9yKGFjdGl2ZU11dGF0aW9uT2JzZXJ2ZXJzKCksIG9i
c2VydmVycyk7CisgICAgICAgIGFjdGl2ZU11dGF0aW9uT2JzZXJ2ZXJzKCkuY2xlYXIoKTsKKyAg
ICAgICAgc3RkOjpzb3J0KG9ic2VydmVycy5iZWdpbigpLCBvYnNlcnZlcnMuZW5kKCksIE9ic2Vy
dmVyTGVzc1RoYW4oKSk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb2JzZXJ2ZXJz
LnNpemUoKTsgKytpKQorICAgICAgICAgICAgb2JzZXJ2ZXJzW2ldLT5kZWxpdmVyKCk7CisgICAg
fQorCisgICAgZGVsaXZlcnlJblByb2dyZXNzID0gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZmQzNzIwNjk2ZGZjNTNiZjU3
NTQ4MzM1Y2ZiNTFiNDNiMTIwYmJlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL011dGF0aW9uT2JzZXJ2ZXIuaApAQCAtMCwwICsxLDEwOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTXV0YXRpb25P
YnNlcnZlcl9oCisjZGVmaW5lIE11dGF0aW9uT2JzZXJ2ZXJfaAorCisjaWYgRU5BQkxFKE1VVEFU
SU9OX09CU0VSVkVSUykKKworI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3Rm
L0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L0F0b21pY1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZ0hhc2guaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEaWN0aW9uYXJ5OworY2xhc3MgTXV0YXRp
b25DYWxsYmFjazsKK2NsYXNzIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb247CitjbGFzcyBN
dXRhdGlvblJlY29yZDsKK2NsYXNzIE5vZGU7CisKK3R5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7
CisKK3R5cGVkZWYgdW5zaWduZWQgY2hhciBNdXRhdGlvbk9ic2VydmVyT3B0aW9uczsKK3R5cGVk
ZWYgdW5zaWduZWQgY2hhciBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9uczsKKworY2xhc3Mg
TXV0YXRpb25PYnNlcnZlciA6IHB1YmxpYyBSZWZDb3VudGVkPE11dGF0aW9uT2JzZXJ2ZXI+IHsK
K3B1YmxpYzoKKyAgICBlbnVtIE11dGF0aW9uVHlwZSB7CisgICAgICAgIENoaWxkTGlzdCA9IDEg
PDwgMCwKKyAgICAgICAgQXR0cmlidXRlcyA9IDEgPDwgMSwKKyAgICAgICAgQ2hhcmFjdGVyRGF0
YSA9IDEgPDwgMiwKKworICAgICAgICBBbGxNdXRhdGlvblR5cGVzID0gQ2hpbGRMaXN0IHwgQXR0
cmlidXRlcyB8IENoYXJhY3RlckRhdGEKKyAgICB9OworCisgICAgZW51bSBPYnNlcnZhdGlvbkZs
YWdzICB7CisgICAgICAgIFN1YnRyZWUgPSAxIDw8IDMsCisgICAgICAgIEF0dHJpYnV0ZUZpbHRl
ciA9IDEgPDwgNAorICAgIH07CisKKyAgICBlbnVtIERlbGl2ZXJ5RmxhZ3MgeworICAgICAgICBB
dHRyaWJ1dGVPbGRWYWx1ZSA9IDEgPDwgNSwKKyAgICAgICAgQ2hhcmFjdGVyRGF0YU9sZFZhbHVl
ID0gMSA8PCA2LAorICAgIH07CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNdXRhdGlvbk9ic2Vy
dmVyPiBjcmVhdGUoUGFzc1JlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPik7CisgICAgc3RhdGljIHZv
aWQgZGVsaXZlckFsbE11dGF0aW9ucygpOworCisgICAgfk11dGF0aW9uT2JzZXJ2ZXIoKTsKKwor
ICAgIHZvaWQgb2JzZXJ2ZShOb2RlKiwgY29uc3QgRGljdGlvbmFyeSYsIEV4Y2VwdGlvbkNvZGUm
KTsKKyAgICBWZWN0b3I8UmVmUHRyPE11dGF0aW9uUmVjb3JkPiA+IHRha2VSZWNvcmRzKCk7Cisg
ICAgdm9pZCBkaXNjb25uZWN0KCk7CisgICAgdm9pZCBvYnNlcnZhdGlvblN0YXJ0ZWQoTXV0YXRp
b25PYnNlcnZlclJlZ2lzdHJhdGlvbiopOworICAgIHZvaWQgb2JzZXJ2YXRpb25FbmRlZChNdXRh
dGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKik7CisgICAgdm9pZCBlbnF1ZXVlTXV0YXRpb25SZWNv
cmQoUGFzc1JlZlB0cjxNdXRhdGlvblJlY29yZD4pOworICAgIHZvaWQgc2V0SGFzVHJhbnNpZW50
UmVnaXN0cmF0aW9uKCk7CisKK3ByaXZhdGU6CisgICAgc3RydWN0IE9ic2VydmVyTGVzc1RoYW47
CisKKyAgICBNdXRhdGlvbk9ic2VydmVyKFBhc3NSZWZQdHI8TXV0YXRpb25DYWxsYmFjaz4pOwor
ICAgIHZvaWQgZGVsaXZlcigpOworCisgICAgc3RhdGljIGJvb2wgdmFsaWRhdGVPcHRpb25zKE11
dGF0aW9uT2JzZXJ2ZXJPcHRpb25zKTsKKworICAgIFJlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPiBt
X2NhbGxiYWNrOworICAgIFZlY3RvcjxSZWZQdHI8TXV0YXRpb25SZWNvcmQ+ID4gbV9yZWNvcmRz
OworICAgIEhhc2hTZXQ8TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbio+IG1fcmVnaXN0cmF0
aW9uczsKKyAgICB1bnNpZ25lZCBtX3ByaW9yaXR5OworfTsKKworfQorCisjZW5kaWYgLy8gRU5B
QkxFKE1VVEFUSU9OX09CU0VSVkVSUykKKworI2VuZGlmIC8vIE11dGF0aW9uT2JzZXJ2ZXJfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaWRsIGIvU291
cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBhZTk5MmU2
ZGE3NWU1MTU0M2Y3Nzk4YjcxNjA2NTk4ZDE3OWFjMjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5pZGwKQEAgLTAsMCArMSw0MiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBk
aXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVs
ZSBjb3JlIHsKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1NVVRBVElPTl9P
QlNFUlZFUlMsCisgICAgICAgIEN1c3RvbUNvbnN0cnVjdG9yLAorICAgICAgICBDb25zdHJ1Y3Rv
clBhcmFtZXRlcnM9MQorICAgIF0gTXV0YXRpb25PYnNlcnZlciB7CisgICAgICAgIHZvaWQgb2Jz
ZXJ2ZShpbiBOb2RlIHRhcmdldCwgaW4gRGljdGlvbmFyeSBvcHRpb25zKQorICAgICAgICAgICAg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHNlcXVlbmNlPE11dGF0aW9uUmVjb3JkPiB0
YWtlUmVjb3JkcygpOworICAgICAgICB2b2lkIGRpc2Nvbm5lY3QoKTsKKyAgICB9OworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3Vw
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5j
cHAKaW5kZXggZGQwMjg4ZDUxMzkzY2UyZjA3MGFlNzQwOTI0ODY3YWIzODViYjc5Yy4uMjRjMGNi
NTg2NTE3ZTA4YmM3YThiNDA5M2YyMWQzMWUwZGIyZDY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuY3BwCkBAIC00MSwxMCAr
NDEsMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzT3duUHRyPE11dGF0aW9uT2Jz
ZXJ2ZXJJbnRlcmVzdEdyb3VwPiBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRl
SWZOZWVkZWQoTm9kZSogdGFyZ2V0LCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvblR5
cGUgdHlwZSwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgb2xkVmFsdWVGbGFnLCBjb25z
dCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKQorUGFzc093blB0cjxNdXRhdGlvbk9ic2Vy
dmVySW50ZXJlc3RHcm91cD4gTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6OmNyZWF0ZUlm
TmVlZGVkKE5vZGUqIHRhcmdldCwgTXV0YXRpb25PYnNlcnZlcjo6TXV0YXRpb25UeXBlIHR5cGUs
IE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9sZFZhbHVlRmxhZywgY29uc3QgUXVhbGlm
aWVkTmFtZSogYXR0cmlidXRlTmFtZSkKIHsKLSAgICBBU1NFUlQoKHR5cGUgPT0gV2ViS2l0TXV0
YXRpb25PYnNlcnZlcjo6QXR0cmlidXRlcyAmJiBhdHRyaWJ1dGVOYW1lKSB8fCAhYXR0cmlidXRl
TmFtZSk7Ci0gICAgSGFzaE1hcDxXZWJLaXRNdXRhdGlvbk9ic2VydmVyKiwgTXV0YXRpb25SZWNv
cmREZWxpdmVyeU9wdGlvbnM+IG9ic2VydmVyczsKKyAgICBBU1NFUlQoKHR5cGUgPT0gTXV0YXRp
b25PYnNlcnZlcjo6QXR0cmlidXRlcyAmJiBhdHRyaWJ1dGVOYW1lKSB8fCAhYXR0cmlidXRlTmFt
ZSk7CisgICAgSGFzaE1hcDxNdXRhdGlvbk9ic2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVy
eU9wdGlvbnM+IG9ic2VydmVyczsKICAgICB0YXJnZXQtPmdldFJlZ2lzdGVyZWRNdXRhdGlvbk9i
c2VydmVyc09mVHlwZShvYnNlcnZlcnMsIHR5cGUsIGF0dHJpYnV0ZU5hbWUpOwogICAgIGlmIChv
YnNlcnZlcnMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTUyLDcgKzUy
LDcgQEAgUGFzc093blB0cjxNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cD4gTXV0YXRpb25P
YnNlcnZlckludGVyZXN0R3JvdXA6OmNyZWF0ZUkKICAgICByZXR1cm4gYWRvcHRQdHIobmV3IE11
dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwKG9ic2VydmVycywgb2xkVmFsdWVGbGFnKSk7CiB9
CiAKLU11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpNdXRhdGlvbk9ic2VydmVySW50ZXJl
c3RHcm91cChIYXNoTWFwPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERl
bGl2ZXJ5T3B0aW9ucz4mIG9ic2VydmVycywgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMg
b2xkVmFsdWVGbGFnKQorTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6Ok11dGF0aW9uT2Jz
ZXJ2ZXJJbnRlcmVzdEdyb3VwKEhhc2hNYXA8TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVj
b3JkRGVsaXZlcnlPcHRpb25zPiYgb2JzZXJ2ZXJzLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0
aW9ucyBvbGRWYWx1ZUZsYWcpCiAgICAgOiBtX29sZFZhbHVlRmxhZyhvbGRWYWx1ZUZsYWcpCiB7
CiAgICAgQVNTRVJUKCFvYnNlcnZlcnMuaXNFbXB0eSgpKTsKQEAgLTYxLDcgKzYxLDcgQEAgTXV0
YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6Ok11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3Vw
KEhhc2hNYXA8V2ViS2l0TXV0YXQKIAogYm9vbCBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91
cDo6aXNPbGRWYWx1ZVJlcXVlc3RlZCgpCiB7Ci0gICAgZm9yIChIYXNoTWFwPFdlYktpdE11dGF0
aW9uT2JzZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz46Oml0ZXJhdG9yIGl0
ZXIgPSBtX29ic2VydmVycy5iZWdpbigpOyBpdGVyICE9IG1fb2JzZXJ2ZXJzLmVuZCgpOyArK2l0
ZXIpIHsKKyAgICBmb3IgKEhhc2hNYXA8TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVjb3Jk
RGVsaXZlcnlPcHRpb25zPjo6aXRlcmF0b3IgaXRlciA9IG1fb2JzZXJ2ZXJzLmJlZ2luKCk7IGl0
ZXIgIT0gbV9vYnNlcnZlcnMuZW5kKCk7ICsraXRlcikgewogICAgICAgICBpZiAoaGFzT2xkVmFs
dWUoaXRlci0+c2Vjb25kKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KQEAgLTcy
LDggKzcyLDggQEAgdm9pZCBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6ZW5xdWV1ZU11
dGF0aW9uUmVjb3JkKFBhc3NSZWZQdHI8TXV0YXRpb25SZWMKIHsKICAgICBSZWZQdHI8TXV0YXRp
b25SZWNvcmQ+IG11dGF0aW9uID0gcHJwTXV0YXRpb247CiAgICAgUmVmUHRyPE11dGF0aW9uUmVj
b3JkPiBtdXRhdGlvbldpdGhOdWxsT2xkVmFsdWU7Ci0gICAgZm9yIChIYXNoTWFwPFdlYktpdE11
dGF0aW9uT2JzZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz46Oml0ZXJhdG9y
IGl0ZXIgPSBtX29ic2VydmVycy5iZWdpbigpOyBpdGVyICE9IG1fb2JzZXJ2ZXJzLmVuZCgpOyAr
K2l0ZXIpIHsKLSAgICAgICAgV2ViS2l0TXV0YXRpb25PYnNlcnZlciogb2JzZXJ2ZXIgPSBpdGVy
LT5maXJzdDsKKyAgICBmb3IgKEhhc2hNYXA8TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVj
b3JkRGVsaXZlcnlPcHRpb25zPjo6aXRlcmF0b3IgaXRlciA9IG1fb2JzZXJ2ZXJzLmJlZ2luKCk7
IGl0ZXIgIT0gbV9vYnNlcnZlcnMuZW5kKCk7ICsraXRlcikgeworICAgICAgICBNdXRhdGlvbk9i
c2VydmVyKiBvYnNlcnZlciA9IGl0ZXItPmZpcnN0OwogICAgICAgICBpZiAoaGFzT2xkVmFsdWUo
aXRlci0+c2Vjb25kKSkgewogICAgICAgICAgICAgb2JzZXJ2ZXItPmVucXVldWVNdXRhdGlvblJl
Y29yZChtdXRhdGlvbik7CiAgICAgICAgICAgICBjb250aW51ZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmgKaW5kZXggOTMzMzM0YTFi
N2Y5NTczODllNWNiZWRlZTA1YzI2NzdiOTUwMTJkYi4uN2ZkZTMyZWVhOTI4OWM2YTM4MTVmOTJi
NTBkNjA4N2U5ZmNmZjFkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9u
T2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9u
T2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmgKQEAgLTM0LDkgKzM0LDkgQEAKICNpZiBFTkFCTEUoTVVU
QVRJT05fT0JTRVJWRVJTKQogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJNdXRh
dGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIlF1YWxpZmllZE5h
bWUuaCIKLSNpbmNsdWRlICJXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCkBAIC00NiwzOSArNDYs
MzkgQEAgY2xhc3MgTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAgewogcHVibGljOgogICAg
IHN0YXRpYyBQYXNzT3duUHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwPiBjcmVhdGVG
b3JDaGlsZExpc3RNdXRhdGlvbihOb2RlKiB0YXJnZXQpCiAgICAgewotICAgICAgICBpZiAoIXRh
cmdldC0+ZG9jdW1lbnQoKS0+aGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoV2ViS2l0TXV0YXRp
b25PYnNlcnZlcjo6Q2hpbGRMaXN0KSkKKyAgICAgICAgaWYgKCF0YXJnZXQtPmRvY3VtZW50KCkt
Pmhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKE11dGF0aW9uT2JzZXJ2ZXI6OkNoaWxkTGlzdCkp
CiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgICAgICBNdXRhdGlvblJlY29yZERl
bGl2ZXJ5T3B0aW9ucyBvbGRWYWx1ZUZsYWcgPSAwOwotICAgICAgICByZXR1cm4gY3JlYXRlSWZO
ZWVkZWQodGFyZ2V0LCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpDaGlsZExpc3QsIG9sZFZhbHVl
RmxhZyk7CisgICAgICAgIHJldHVybiBjcmVhdGVJZk5lZWRlZCh0YXJnZXQsIE11dGF0aW9uT2Jz
ZXJ2ZXI6OkNoaWxkTGlzdCwgb2xkVmFsdWVGbGFnKTsKICAgICB9CiAKICAgICBzdGF0aWMgUGFz
c093blB0cjxNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cD4gY3JlYXRlRm9yQ2hhcmFjdGVy
RGF0YU11dGF0aW9uKE5vZGUqIHRhcmdldCkKICAgICB7Ci0gICAgICAgIGlmICghdGFyZ2V0LT5k
b2N1bWVudCgpLT5oYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShXZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyOjpDaGFyYWN0ZXJEYXRhKSkKKyAgICAgICAgaWYgKCF0YXJnZXQtPmRvY3VtZW50KCktPmhh
c011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKE11dGF0aW9uT2JzZXJ2ZXI6OkNoYXJhY3RlckRhdGEp
KQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICAgICAgcmV0dXJuIGNyZWF0ZUlm
TmVlZGVkKHRhcmdldCwgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6Q2hhcmFjdGVyRGF0YSwgV2Vi
S2l0TXV0YXRpb25PYnNlcnZlcjo6Q2hhcmFjdGVyRGF0YU9sZFZhbHVlKTsKKyAgICAgICAgcmV0
dXJuIGNyZWF0ZUlmTmVlZGVkKHRhcmdldCwgTXV0YXRpb25PYnNlcnZlcjo6Q2hhcmFjdGVyRGF0
YSwgTXV0YXRpb25PYnNlcnZlcjo6Q2hhcmFjdGVyRGF0YU9sZFZhbHVlKTsKICAgICB9CiAKICAg
ICBzdGF0aWMgUGFzc093blB0cjxNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cD4gY3JlYXRl
Rm9yQXR0cmlidXRlc011dGF0aW9uKE5vZGUqIHRhcmdldCwgY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0cmlidXRlTmFtZSkKICAgICB7Ci0gICAgICAgIGlmICghdGFyZ2V0LT5kb2N1bWVudCgpLT5o
YXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1
dGVzKSkKKyAgICAgICAgaWYgKCF0YXJnZXQtPmRvY3VtZW50KCktPmhhc011dGF0aW9uT2JzZXJ2
ZXJzT2ZUeXBlKE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMpKQogICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKLSAgICAgICAgcmV0dXJuIGNyZWF0ZUlmTmVlZGVkKHRhcmdldCwgV2Vi
S2l0TXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRlcywgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6
QXR0cmlidXRlT2xkVmFsdWUsICZhdHRyaWJ1dGVOYW1lKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0
ZUlmTmVlZGVkKHRhcmdldCwgTXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRlcywgTXV0YXRpb25P
YnNlcnZlcjo6QXR0cmlidXRlT2xkVmFsdWUsICZhdHRyaWJ1dGVOYW1lKTsKICAgICB9CiAKICAg
ICBib29sIGlzT2xkVmFsdWVSZXF1ZXN0ZWQoKTsKICAgICB2b2lkIGVucXVldWVNdXRhdGlvblJl
Y29yZChQYXNzUmVmUHRyPE11dGF0aW9uUmVjb3JkPik7CiAKIHByaXZhdGU6Ci0gICAgc3RhdGlj
IFBhc3NPd25QdHI8TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA+IGNyZWF0ZUlmTmVlZGVk
KE5vZGUqIHRhcmdldCwgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6TXV0YXRpb25UeXBlLCBNdXRh
dGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBvbGRWYWx1ZUZsYWcsIGNvbnN0IFF1YWxpZmllZE5h
bWUqIGF0dHJpYnV0ZU5hbWUgPSAwKTsKLSAgICBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91
cChIYXNoTWFwPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5
T3B0aW9ucz4mIG9ic2VydmVycywgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgb2xkVmFs
dWVGbGFnKTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RH
cm91cD4gY3JlYXRlSWZOZWVkZWQoTm9kZSogdGFyZ2V0LCBNdXRhdGlvbk9ic2VydmVyOjpNdXRh
dGlvblR5cGUsIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9sZFZhbHVlRmxhZywgY29u
c3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSA9IDApOworICAgIE11dGF0aW9uT2JzZXJ2
ZXJJbnRlcmVzdEdyb3VwKEhhc2hNYXA8TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVjb3Jk
RGVsaXZlcnlPcHRpb25zPiYgb2JzZXJ2ZXJzLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9u
cyBvbGRWYWx1ZUZsYWcpOwogCiAgICAgYm9vbCBoYXNPbGRWYWx1ZShNdXRhdGlvblJlY29yZERl
bGl2ZXJ5T3B0aW9ucyBvcHRpb25zKSB7IHJldHVybiBvcHRpb25zICYgbV9vbGRWYWx1ZUZsYWc7
IH0KIAotICAgIEhhc2hNYXA8V2ViS2l0TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVjb3Jk
RGVsaXZlcnlPcHRpb25zPiBtX29ic2VydmVyczsKKyAgICBIYXNoTWFwPE11dGF0aW9uT2JzZXJ2
ZXIqLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4gbV9vYnNlcnZlcnM7CiAgICAgTXV0
YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgbV9vbGRWYWx1ZUZsYWc7CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAKaW5k
ZXggMTkwYjg1YmQ4NTUzYWRhZTRhMGY2Y2UwZjNhOTY4ZmM2YzkyNmM5Ny4uNTg5NWVmNDlmZWFh
NmFjNjMzYzJkOTRjOTY4MzI5Yjk1YTllMzQzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNwcApAQCAtNDAsMTIgKzQwLDEyIEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc093blB0cjxNdXRhdGlvbk9ic2VydmVyUmVn
aXN0cmF0aW9uPiBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjpjcmVhdGUoUGFzc1JlZlB0
cjxXZWJLaXRNdXRhdGlvbk9ic2VydmVyPiBvYnNlcnZlciwgTm9kZSogcmVnaXN0cmF0aW9uTm9k
ZSkKK1Bhc3NPd25QdHI8TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbj4gTXV0YXRpb25PYnNl
cnZlclJlZ2lzdHJhdGlvbjo6Y3JlYXRlKFBhc3NSZWZQdHI8TXV0YXRpb25PYnNlcnZlcj4gb2Jz
ZXJ2ZXIsIE5vZGUqIHJlZ2lzdHJhdGlvbk5vZGUpCiB7CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKG9ic2VydmVyLCByZWdpc3RyYXRpb25Ob2Rl
KSk7CiB9CiAKLU11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb246Ok11dGF0aW9uT2JzZXJ2ZXJS
ZWdpc3RyYXRpb24oUGFzc1JlZlB0cjxXZWJLaXRNdXRhdGlvbk9ic2VydmVyPiBvYnNlcnZlciwg
Tm9kZSogcmVnaXN0cmF0aW9uTm9kZSkKK011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb246Ok11
dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24oUGFzc1JlZlB0cjxNdXRhdGlvbk9ic2VydmVyPiBv
YnNlcnZlciwgTm9kZSogcmVnaXN0cmF0aW9uTm9kZSkKICAgICAgOiBtX29ic2VydmVyKG9ic2Vy
dmVyKQogICAgICAsIG1fcmVnaXN0cmF0aW9uTm9kZShyZWdpc3RyYXRpb25Ob2RlKQogICAgICAs
IG1fb3B0aW9ucygwKQpAQCAtMTA1LDE2ICsxMDUsMTYgQEAgdm9pZCBNdXRhdGlvbk9ic2VydmVy
UmVnaXN0cmF0aW9uOjp1bnJlZ2lzdGVyKCkKICAgICAvLyBUaGUgYWJvdmUgbGluZSB3aWxsIGNh
dXNlIHRoaXMgb2JqZWN0IHRvIGJlIGRlbGV0ZWQsIHNvIGRvbid0IGRvIGFueSBtb3JlIGluIHRo
aXMgZnVuY3Rpb24uCiB9CiAKLWJvb2wgTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6c2hv
dWxkUmVjZWl2ZU11dGF0aW9uRnJvbShOb2RlKiBub2RlLCBXZWJLaXRNdXRhdGlvbk9ic2VydmVy
OjpNdXRhdGlvblR5cGUgdHlwZSwgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSkK
K2Jvb2wgTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6c2hvdWxkUmVjZWl2ZU11dGF0aW9u
RnJvbShOb2RlKiBub2RlLCBNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvblR5cGUgdHlwZSwgY29u
c3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSkKIHsKLSAgICBBU1NFUlQoKHR5cGUgPT0g
V2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRlcyAmJiBhdHRyaWJ1dGVOYW1lKSB8fCAh
YXR0cmlidXRlTmFtZSk7CisgICAgQVNTRVJUKCh0eXBlID09IE11dGF0aW9uT2JzZXJ2ZXI6OkF0
dHJpYnV0ZXMgJiYgYXR0cmlidXRlTmFtZSkgfHwgIWF0dHJpYnV0ZU5hbWUpOwogICAgIGlmICgh
KG1fb3B0aW9ucyAmIHR5cGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAobV9y
ZWdpc3RyYXRpb25Ob2RlICE9IG5vZGUgJiYgIWlzU3VidHJlZSgpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICBpZiAodHlwZSAhPSBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1
dGVzIHx8ICEobV9vcHRpb25zICYgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRlRmls
dGVyKSkKKyAgICBpZiAodHlwZSAhPSBNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVzIHx8ICEo
bV9vcHRpb25zICYgTXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRlRmlsdGVyKSkKICAgICAgICAg
cmV0dXJuIHRydWU7CiAKICAgICBpZiAoIWF0dHJpYnV0ZU5hbWUtPm5hbWVzcGFjZVVSSSgpLmlz
TnVsbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJS
ZWdpc3RyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0
cmF0aW9uLmgKaW5kZXggMjMyZWUyNWQ1YWM4ZWY2NTU0NWE5NDM2NDA4MjY0NWFmNTM4NWI3My4u
ZDQ5MTQ2MjVhOWRmZWQ2NjZkZjRiNzhhOTIxYTU3OGUzYzc3NzU1ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5oCkBAIC0zMyw3ICsz
Myw3IEBACiAKICNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQogCi0jaW5jbHVkZSAiV2Vi
S2l0TXV0YXRpb25PYnNlcnZlci5oIgorI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKICNp
bmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZ0hhc2guaD4KQEAgLTQ1LDcgKzQ1LDcg
QEAgY2xhc3MgUXVhbGlmaWVkTmFtZTsKIGNsYXNzIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRp
b24gewogcHVibGljOgogCi0gICAgc3RhdGljIFBhc3NPd25QdHI8TXV0YXRpb25PYnNlcnZlclJl
Z2lzdHJhdGlvbj4gY3JlYXRlKFBhc3NSZWZQdHI8V2ViS2l0TXV0YXRpb25PYnNlcnZlcj4sIE5v
ZGUqKTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9u
PiBjcmVhdGUoUGFzc1JlZlB0cjxNdXRhdGlvbk9ic2VydmVyPiwgTm9kZSopOwogCiAgICAgfk11
dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24oKTsKIApAQCAtNTUsMTkgKzU1LDE5IEBAIHB1Ymxp
YzoKICAgICBib29sIGhhc1RyYW5zaWVudFJlZ2lzdHJhdGlvbnMoKSB7IHJldHVybiBtX3RyYW5z
aWVudFJlZ2lzdHJhdGlvbk5vZGVzICYmICFtX3RyYW5zaWVudFJlZ2lzdHJhdGlvbk5vZGVzLT5p
c0VtcHR5KCk7IH0KICAgICB2b2lkIHVucmVnaXN0ZXIoKTsKIAotICAgIGJvb2wgc2hvdWxkUmVj
ZWl2ZU11dGF0aW9uRnJvbShOb2RlKiwgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6TXV0YXRpb25U
eXBlLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKTsKLSAgICBib29sIGlubGlu
ZSBpc1N1YnRyZWUoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMgJiBXZWJLaXRNdXRhdGlvbk9i
c2VydmVyOjpTdWJ0cmVlOyB9CisgICAgYm9vbCBzaG91bGRSZWNlaXZlTXV0YXRpb25Gcm9tKE5v
ZGUqLCBNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvblR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUq
IGF0dHJpYnV0ZU5hbWUpOworICAgIGJvb2wgaW5saW5lIGlzU3VidHJlZSgpIGNvbnN0IHsgcmV0
dXJuIG1fb3B0aW9ucyAmIE11dGF0aW9uT2JzZXJ2ZXI6OlN1YnRyZWU7IH0KIAotICAgIFdlYktp
dE11dGF0aW9uT2JzZXJ2ZXIqIG9ic2VydmVyKCkgeyByZXR1cm4gbV9vYnNlcnZlci5nZXQoKTsg
fQotICAgIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIGRlbGl2ZXJ5T3B0aW9ucygpIGNv
bnN0IHsgcmV0dXJuIG1fb3B0aW9ucyAmIChXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1
dGVPbGRWYWx1ZSB8IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OkNoYXJhY3RlckRhdGFPbGRWYWx1
ZSk7IH0KLSAgICBNdXRhdGlvbk9ic2VydmVyT3B0aW9ucyBtdXRhdGlvblR5cGVzKCkgY29uc3Qg
eyByZXR1cm4gbV9vcHRpb25zICYgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6QWxsTXV0YXRpb25U
eXBlczsgfQorICAgIE11dGF0aW9uT2JzZXJ2ZXIqIG9ic2VydmVyKCkgeyByZXR1cm4gbV9vYnNl
cnZlci5nZXQoKTsgfQorICAgIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIGRlbGl2ZXJ5
T3B0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucyAmIChNdXRhdGlvbk9ic2VydmVyOjpB
dHRyaWJ1dGVPbGRWYWx1ZSB8IE11dGF0aW9uT2JzZXJ2ZXI6OkNoYXJhY3RlckRhdGFPbGRWYWx1
ZSk7IH0KKyAgICBNdXRhdGlvbk9ic2VydmVyT3B0aW9ucyBtdXRhdGlvblR5cGVzKCkgY29uc3Qg
eyByZXR1cm4gbV9vcHRpb25zICYgTXV0YXRpb25PYnNlcnZlcjo6QWxsTXV0YXRpb25UeXBlczsg
fQogCiBwcml2YXRlOgotICAgIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24oUGFzc1JlZlB0
cjxXZWJLaXRNdXRhdGlvbk9ic2VydmVyPiwgTm9kZSopOworICAgIE11dGF0aW9uT2JzZXJ2ZXJS
ZWdpc3RyYXRpb24oUGFzc1JlZlB0cjxNdXRhdGlvbk9ic2VydmVyPiwgTm9kZSopOwogCiAgICAg
Y29uc3QgSGFzaFNldDxBdG9taWNTdHJpbmc+JiBjYXNlSW5zZW5zaXRpdmVBdHRyaWJ1dGVGaWx0
ZXIoKTsKIAotICAgIFJlZlB0cjxXZWJLaXRNdXRhdGlvbk9ic2VydmVyPiBtX29ic2VydmVyOwor
ICAgIFJlZlB0cjxNdXRhdGlvbk9ic2VydmVyPiBtX29ic2VydmVyOwogICAgIE5vZGUqIG1fcmVn
aXN0cmF0aW9uTm9kZTsKICAgICBSZWZQdHI8Tm9kZT4gbV9yZWdpc3RyYXRpb25Ob2RlS2VlcEFs
aXZlOwogICAgIHR5cGVkZWYgSGFzaFNldDxSZWZQdHI8Tm9kZT4gPiBOb2RlSGFzaFNldDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmNwcAppbmRleCA3OWVmNmI4MzEwMTg2NmNlZjI3ZjQzNWYzMzJjZWQzNzg3NmQ1YmQy
Li45MzJiOGEwMWYxNDQyYTNlMWE0OTU3ZDRlYjI4OWViMDlmOWRkNWU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
Y3BwCkBAIC0yNDE4LDE2ICsyNDE4LDE2IEBAIEhhc2hTZXQ8TXV0YXRpb25PYnNlcnZlclJlZ2lz
dHJhdGlvbio+KiBOb2RlOjp0cmFuc2llbnRNdXRhdGlvbk9ic2VydmVyUmVnaXN0cnkoCiAgICAg
cmV0dXJuIGhhc1JhcmVEYXRhKCkgPyByYXJlRGF0YSgpLT50cmFuc2llbnRNdXRhdGlvbk9ic2Vy
dmVyUmVnaXN0cnkoKSA6IDA7CiB9CiAKLXZvaWQgTm9kZTo6Y29sbGVjdE1hdGNoaW5nT2JzZXJ2
ZXJzRm9yTXV0YXRpb24oSGFzaE1hcDxXZWJLaXRNdXRhdGlvbk9ic2VydmVyKiwgTXV0YXRpb25S
ZWNvcmREZWxpdmVyeU9wdGlvbnM+JiBvYnNlcnZlcnMsIE5vZGUqIGZyb21Ob2RlLCBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvblR5cGUgdHlwZSwgY29uc3QgUXVhbGlmaWVkTmFtZSog
YXR0cmlidXRlTmFtZSkKK3ZvaWQgTm9kZTo6Y29sbGVjdE1hdGNoaW5nT2JzZXJ2ZXJzRm9yTXV0
YXRpb24oSGFzaE1hcDxNdXRhdGlvbk9ic2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9w
dGlvbnM+JiBvYnNlcnZlcnMsIE5vZGUqIGZyb21Ob2RlLCBNdXRhdGlvbk9ic2VydmVyOjpNdXRh
dGlvblR5cGUgdHlwZSwgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSkKIHsKLSAg
ICBBU1NFUlQoKHR5cGUgPT0gV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRlcyAmJiBh
dHRyaWJ1dGVOYW1lKSB8fCAhYXR0cmlidXRlTmFtZSk7CisgICAgQVNTRVJUKCh0eXBlID09IE11
dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMgJiYgYXR0cmlidXRlTmFtZSkgfHwgIWF0dHJpYnV0
ZU5hbWUpOwogICAgIGlmIChWZWN0b3I8T3duUHRyPE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRp
b24+ID4qIHJlZ2lzdHJ5ID0gZnJvbU5vZGUtPm11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyeSgpKSB7
CiAgICAgICAgIGNvbnN0IHNpemVfdCBzaXplID0gcmVnaXN0cnktPnNpemUoKTsKICAgICAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKICAgICAgICAgICAgIE11dGF0aW9u
T2JzZXJ2ZXJSZWdpc3RyYXRpb24qIHJlZ2lzdHJhdGlvbiA9IHJlZ2lzdHJ5LT5hdChpKS5nZXQo
KTsKICAgICAgICAgICAgIGlmIChyZWdpc3RyYXRpb24tPnNob3VsZFJlY2VpdmVNdXRhdGlvbkZy
b20odGhpcywgdHlwZSwgYXR0cmlidXRlTmFtZSkpIHsKICAgICAgICAgICAgICAgICBNdXRhdGlv
blJlY29yZERlbGl2ZXJ5T3B0aW9ucyBkZWxpdmVyeU9wdGlvbnMgPSByZWdpc3RyYXRpb24tPmRl
bGl2ZXJ5T3B0aW9ucygpOwotICAgICAgICAgICAgICAgIEhhc2hNYXA8V2ViS2l0TXV0YXRpb25P
YnNlcnZlciosIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPjo6QWRkUmVzdWx0IHJlc3Vs
dCA9IG9ic2VydmVycy5hZGQocmVnaXN0cmF0aW9uLT5vYnNlcnZlcigpLCBkZWxpdmVyeU9wdGlv
bnMpOworICAgICAgICAgICAgICAgIEhhc2hNYXA8TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9u
UmVjb3JkRGVsaXZlcnlPcHRpb25zPjo6QWRkUmVzdWx0IHJlc3VsdCA9IG9ic2VydmVycy5hZGQo
cmVnaXN0cmF0aW9uLT5vYnNlcnZlcigpLCBkZWxpdmVyeU9wdGlvbnMpOwogICAgICAgICAgICAg
ICAgIGlmICghcmVzdWx0LmlzTmV3RW50cnkpCiAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5p
dGVyYXRvci0+c2Vjb25kIHw9IGRlbGl2ZXJ5T3B0aW9uczsKIApAQCAtMjQ0MCw3ICsyNDQwLDcg
QEAgdm9pZCBOb2RlOjpjb2xsZWN0TWF0Y2hpbmdPYnNlcnZlcnNGb3JNdXRhdGlvbihIYXNoTWFw
PFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIqLAogICAgICAgICAgICAgTXV0YXRpb25PYnNlcnZlclJl
Z2lzdHJhdGlvbiogcmVnaXN0cmF0aW9uID0gKml0ZXI7CiAgICAgICAgICAgICBpZiAocmVnaXN0
cmF0aW9uLT5zaG91bGRSZWNlaXZlTXV0YXRpb25Gcm9tKHRoaXMsIHR5cGUsIGF0dHJpYnV0ZU5h
bWUpKSB7CiAgICAgICAgICAgICAgICAgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgZGVs
aXZlcnlPcHRpb25zID0gcmVnaXN0cmF0aW9uLT5kZWxpdmVyeU9wdGlvbnMoKTsKLSAgICAgICAg
ICAgICAgICBIYXNoTWFwPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERl
bGl2ZXJ5T3B0aW9ucz46OkFkZFJlc3VsdCByZXN1bHQgPSBvYnNlcnZlcnMuYWRkKHJlZ2lzdHJh
dGlvbi0+b2JzZXJ2ZXIoKSwgZGVsaXZlcnlPcHRpb25zKTsKKyAgICAgICAgICAgICAgICBIYXNo
TWFwPE11dGF0aW9uT2JzZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz46OkFk
ZFJlc3VsdCByZXN1bHQgPSBvYnNlcnZlcnMuYWRkKHJlZ2lzdHJhdGlvbi0+b2JzZXJ2ZXIoKSwg
ZGVsaXZlcnlPcHRpb25zKTsKICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdC5pc05ld0VudHJ5
KQogICAgICAgICAgICAgICAgICAgICByZXN1bHQuaXRlcmF0b3ItPnNlY29uZCB8PSBkZWxpdmVy
eU9wdGlvbnM7CiAgICAgICAgICAgICB9CkBAIC0yNDQ4LDE1ICsyNDQ4LDE1IEBAIHZvaWQgTm9k
ZTo6Y29sbGVjdE1hdGNoaW5nT2JzZXJ2ZXJzRm9yTXV0YXRpb24oSGFzaE1hcDxXZWJLaXRNdXRh
dGlvbk9ic2VydmVyKiwKICAgICB9CiB9CiAKLXZvaWQgTm9kZTo6Z2V0UmVnaXN0ZXJlZE11dGF0
aW9uT2JzZXJ2ZXJzT2ZUeXBlKEhhc2hNYXA8V2ViS2l0TXV0YXRpb25PYnNlcnZlciosIE11dGF0
aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPiYgb2JzZXJ2ZXJzLCBXZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyOjpNdXRhdGlvblR5cGUgdHlwZSwgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFt
ZSkKK3ZvaWQgTm9kZTo6Z2V0UmVnaXN0ZXJlZE11dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKEhhc2hN
YXA8TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPiYgb2Jz
ZXJ2ZXJzLCBNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvblR5cGUgdHlwZSwgY29uc3QgUXVhbGlm
aWVkTmFtZSogYXR0cmlidXRlTmFtZSkKIHsKLSAgICBBU1NFUlQoKHR5cGUgPT0gV2ViS2l0TXV0
YXRpb25PYnNlcnZlcjo6QXR0cmlidXRlcyAmJiBhdHRyaWJ1dGVOYW1lKSB8fCAhYXR0cmlidXRl
TmFtZSk7CisgICAgQVNTRVJUKCh0eXBlID09IE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMg
JiYgYXR0cmlidXRlTmFtZSkgfHwgIWF0dHJpYnV0ZU5hbWUpOwogICAgIGNvbGxlY3RNYXRjaGlu
Z09ic2VydmVyc0Zvck11dGF0aW9uKG9ic2VydmVycywgdGhpcywgdHlwZSwgYXR0cmlidXRlTmFt
ZSk7CiAgICAgZm9yIChOb2RlKiBub2RlID0gcGFyZW50Tm9kZSgpOyBub2RlOyBub2RlID0gbm9k
ZS0+cGFyZW50Tm9kZSgpKQogICAgICAgICBjb2xsZWN0TWF0Y2hpbmdPYnNlcnZlcnNGb3JNdXRh
dGlvbihvYnNlcnZlcnMsIG5vZGUsIHR5cGUsIGF0dHJpYnV0ZU5hbWUpOwogfQogCi1NdXRhdGlv
bk9ic2VydmVyUmVnaXN0cmF0aW9uKiBOb2RlOjpyZWdpc3Rlck11dGF0aW9uT2JzZXJ2ZXIoUGFz
c1JlZlB0cjxXZWJLaXRNdXRhdGlvbk9ic2VydmVyPiBvYnNlcnZlcikKK011dGF0aW9uT2JzZXJ2
ZXJSZWdpc3RyYXRpb24qIE5vZGU6OnJlZ2lzdGVyTXV0YXRpb25PYnNlcnZlcihQYXNzUmVmUHRy
PE11dGF0aW9uT2JzZXJ2ZXI+IG9ic2VydmVyKQogewogICAgIFZlY3RvcjxPd25QdHI8TXV0YXRp
b25PYnNlcnZlclJlZ2lzdHJhdGlvbj4gPiogcmVnaXN0cnkgPSBlbnN1cmVSYXJlRGF0YSgpLT5l
bnN1cmVNdXRhdGlvbk9ic2VydmVyUmVnaXN0cnkoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IHJlZ2lzdHJ5LT5zaXplKCk7ICsraSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggOGM0NzdjMDVkZWFh
YWZmMDdkZDI0MWQ2NDVhZjI1ZWViYjg3ODYyYi4uMzYwNDIxMzNmMmU5ODdmNzAwZTM4NDgzNjUw
MjE5YmNmZjY3NTM3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC0zMCwxMCArMzAsMTAgQEAKICNpbmNsdWRl
ICJLVVJMSGFzaC5oIgogI2luY2x1ZGUgIkxheW91dFR5cGVzLmgiCiAjaW5jbHVkZSAiTWVtb3J5
SW5zdHJ1bWVudGF0aW9uLmgiCisjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlci5oIgogI2luY2x1
ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgi
CiAjaW5jbHVkZSAiVHJlZVNoYXJlZC5oIgotI2luY2x1ZGUgIldlYktpdE11dGF0aW9uT2JzZXJ2
ZXIuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNl
dC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgpAQCAtNjM0LDggKzYzNCw4
IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKLSAg
ICB2b2lkIGdldFJlZ2lzdGVyZWRNdXRhdGlvbk9ic2VydmVyc09mVHlwZShIYXNoTWFwPFdlYktp
dE11dGF0aW9uT2JzZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4mLCBXZWJL
aXRNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvblR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0
dHJpYnV0ZU5hbWUpOwotICAgIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qIHJlZ2lzdGVy
TXV0YXRpb25PYnNlcnZlcihQYXNzUmVmUHRyPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI+KTsKKyAg
ICB2b2lkIGdldFJlZ2lzdGVyZWRNdXRhdGlvbk9ic2VydmVyc09mVHlwZShIYXNoTWFwPE11dGF0
aW9uT2JzZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4mLCBNdXRhdGlvbk9i
c2VydmVyOjpNdXRhdGlvblR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUp
OworICAgIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qIHJlZ2lzdGVyTXV0YXRpb25PYnNl
cnZlcihQYXNzUmVmUHRyPE11dGF0aW9uT2JzZXJ2ZXI+KTsKICAgICB2b2lkIHVucmVnaXN0ZXJN
dXRhdGlvbk9ic2VydmVyKE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qKTsKICAgICB2b2lk
IHJlZ2lzdGVyVHJhbnNpZW50TXV0YXRpb25PYnNlcnZlcihNdXRhdGlvbk9ic2VydmVyUmVnaXN0
cmF0aW9uKik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyVHJhbnNpZW50TXV0YXRpb25PYnNlcnZlcihN
dXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKik7CkBAIC03ODEsNyArNzgxLDcgQEAgcHJpdmF0
ZToKICNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQogICAgIFZlY3RvcjxPd25QdHI8TXV0
YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbj4gPiogbXV0YXRpb25PYnNlcnZlclJlZ2lzdHJ5KCk7
CiAgICAgSGFzaFNldDxNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKj4qIHRyYW5zaWVudE11
dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyeSgpOwotICAgIHZvaWQgY29sbGVjdE1hdGNoaW5nT2JzZXJ2
ZXJzRm9yTXV0YXRpb24oSGFzaE1hcDxXZWJLaXRNdXRhdGlvbk9ic2VydmVyKiwgTXV0YXRpb25S
ZWNvcmREZWxpdmVyeU9wdGlvbnM+JiwgTm9kZSogZnJvbU5vZGUsIFdlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXI6Ok11dGF0aW9uVHlwZSwgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSk7
CisgICAgdm9pZCBjb2xsZWN0TWF0Y2hpbmdPYnNlcnZlcnNGb3JNdXRhdGlvbihIYXNoTWFwPE11
dGF0aW9uT2JzZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4mLCBOb2RlKiBm
cm9tTm9kZSwgTXV0YXRpb25PYnNlcnZlcjo6TXV0YXRpb25UeXBlLCBjb25zdCBRdWFsaWZpZWRO
YW1lKiBhdHRyaWJ1dGVOYW1lKTsKICNlbmRpZgogCiAgICAgbXV0YWJsZSB1aW50MzJfdCBtX25v
ZGVGbGFnczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaAppbmRleCBiN2YzNTllNjAxNTVmNjY1
ZDZmYzcyNmU5ZjliZWQ1NDNkNWQ4NTg2Li4wZGRlMmEyOGJkYWE2MjAwMTM3NDA2YmNkZGE4Y2Vl
MTczNjljMDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCkBAIC0yNSwxMCArMjUsMTAg
QEAKICNpbmNsdWRlICJDaGlsZE5vZGVMaXN0LmgiCiAjaW5jbHVkZSAiRE9NU2V0dGFibGVUb2tl
bkxpc3QuaCIKICNpbmNsdWRlICJEeW5hbWljTm9kZUxpc3QuaCIKKyNpbmNsdWRlICJNdXRhdGlv
bk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5oIgog
I2luY2x1ZGUgIlF1YWxpZmllZE5hbWUuaCIKICNpbmNsdWRlICJUYWdOb2RlTGlzdC5oIgotI2lu
Y2x1ZGUgIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5o
PgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuY3BwCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MGMyNmE1Nzc3MzgyYWZkYTAzNDYwYmY3Zjc5NWI1NjBj
MGJjZmRlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDIxNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
Ci0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKE1VVEFU
SU9OX09CU0VSVkVSUykKLQotI2luY2x1ZGUgIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIKLQot
I2luY2x1ZGUgIkRpY3Rpb25hcnkuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUg
IkV4Y2VwdGlvbkNvZGUuaCIKLSNpbmNsdWRlICJNdXRhdGlvbkNhbGxiYWNrLmgiCi0jaW5jbHVk
ZSAiTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5oIgotI2luY2x1ZGUgIk11dGF0aW9uUmVj
b3JkLmgiCi0jaW5jbHVkZSAiTm9kZS5oIgotI2luY2x1ZGUgPGFsZ29yaXRobT4KLSNpbmNsdWRl
IDx3dGYvSGFzaFNldC5oPgotI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+Ci0jaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXN0YXRpYyB1bnNpZ25lZCBz
X29ic2VydmVyUHJpb3JpdHkgPSAwOwotCi1zdHJ1Y3QgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6
T2JzZXJ2ZXJMZXNzVGhhbiB7Ci0gICAgYm9vbCBvcGVyYXRvcigpKGNvbnN0IFJlZlB0cjxXZWJL
aXRNdXRhdGlvbk9ic2VydmVyPiYgbGhzLCBjb25zdCBSZWZQdHI8V2ViS2l0TXV0YXRpb25PYnNl
cnZlcj4mIHJocykKLSAgICB7Ci0gICAgICAgIHJldHVybiBsaHMtPm1fcHJpb3JpdHkgPCByaHMt
Pm1fcHJpb3JpdHk7Ci0gICAgfQotfTsKLQotUGFzc1JlZlB0cjxXZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyPiBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpjcmVhdGUoUGFzc1JlZlB0cjxNdXRhdGlvbkNh
bGxiYWNrPiBjYWxsYmFjaykKLXsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihjYWxsYmFjaykpOwotfQot
Ci1XZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpXZWJLaXRNdXRhdGlvbk9ic2VydmVyKFBhc3NSZWZQ
dHI8TXV0YXRpb25DYWxsYmFjaz4gY2FsbGJhY2spCi0gICAgOiBtX2NhbGxiYWNrKGNhbGxiYWNr
KQotICAgICwgbV9wcmlvcml0eShzX29ic2VydmVyUHJpb3JpdHkrKykKLXsKLX0KLQotV2ViS2l0
TXV0YXRpb25PYnNlcnZlcjo6fldlYktpdE11dGF0aW9uT2JzZXJ2ZXIoKQotewotICAgIEFTU0VS
VChtX3JlZ2lzdHJhdGlvbnMuaXNFbXB0eSgpKTsKLX0KLQotYm9vbCBXZWJLaXRNdXRhdGlvbk9i
c2VydmVyOjp2YWxpZGF0ZU9wdGlvbnMoTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgb3B0aW9ucykK
LXsKLSAgICByZXR1cm4gKG9wdGlvbnMgJiAoQXR0cmlidXRlcyB8IENoYXJhY3RlckRhdGEgfCBD
aGlsZExpc3QpKQotICAgICAgICAmJiAoKG9wdGlvbnMgJiBBdHRyaWJ1dGVzKSB8fCAhKG9wdGlv
bnMgJiBBdHRyaWJ1dGVPbGRWYWx1ZSkpCi0gICAgICAgICYmICgob3B0aW9ucyAmIEF0dHJpYnV0
ZXMpIHx8ICEob3B0aW9ucyAmIEF0dHJpYnV0ZUZpbHRlcikpCi0gICAgICAgICYmICgob3B0aW9u
cyAmIENoYXJhY3RlckRhdGEpIHx8ICEob3B0aW9ucyAmIENoYXJhY3RlckRhdGFPbGRWYWx1ZSkp
OwotfQotCi12b2lkIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6Om9ic2VydmUoTm9kZSogbm9kZSwg
Y29uc3QgRGljdGlvbmFyeSYgb3B0aW9uc0RpY3Rpb25hcnksIEV4Y2VwdGlvbkNvZGUmIGVjKQot
ewotICAgIGlmICghbm9kZSkgewotICAgICAgICBlYyA9IE5PVF9GT1VORF9FUlI7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0KLSAgICBzdGF0aWMgY29uc3Qgc3RydWN0IHsKLSAgICAgICAgY29u
c3QgY2hhciogbmFtZTsKLSAgICAgICAgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgdmFsdWU7Ci0g
ICAgfSBib29sZWFuT3B0aW9uc1tdID0gewotICAgICAgICB7ICJjaGlsZExpc3QiLCBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyOjpDaGlsZExpc3QgfSwKLSAgICAgICAgeyAiYXR0cmlidXRlcyIsIFdl
YktpdE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMgfSwKLSAgICAgICAgeyAiY2hhcmFjdGVy
RGF0YSIsIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OkNoYXJhY3RlckRhdGEgfSwKLSAgICAgICAg
eyAic3VidHJlZSIsIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OlN1YnRyZWUgfSwKLSAgICAgICAg
eyAiYXR0cmlidXRlT2xkVmFsdWUiLCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVP
bGRWYWx1ZSB9LAotICAgICAgICB7ICJjaGFyYWN0ZXJEYXRhT2xkVmFsdWUiLCBXZWJLaXRNdXRh
dGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhT2xkVmFsdWUgfQotICAgIH07Ci0gICAgTXV0YXRp
b25PYnNlcnZlck9wdGlvbnMgb3B0aW9ucyA9IDA7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IHNpemVvZihib29sZWFuT3B0aW9ucykgLyBzaXplb2YoYm9vbGVhbk9wdGlvbnNbMF0pOyAr
K2kpIHsKLSAgICAgICAgYm9vbCB2YWx1ZSA9IGZhbHNlOwotICAgICAgICBpZiAob3B0aW9uc0Rp
Y3Rpb25hcnkuZ2V0KGJvb2xlYW5PcHRpb25zW2ldLm5hbWUsIHZhbHVlKSAmJiB2YWx1ZSkKLSAg
ICAgICAgICAgIG9wdGlvbnMgfD0gYm9vbGVhbk9wdGlvbnNbaV0udmFsdWU7Ci0gICAgfQotCi0g
ICAgSGFzaFNldDxBdG9taWNTdHJpbmc+IGF0dHJpYnV0ZUZpbHRlcjsKLSAgICBpZiAob3B0aW9u
c0RpY3Rpb25hcnkuZ2V0KCJhdHRyaWJ1dGVGaWx0ZXIiLCBhdHRyaWJ1dGVGaWx0ZXIpKQotICAg
ICAgICBvcHRpb25zIHw9IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZUZpbHRlcjsK
LQotICAgIGlmICghdmFsaWRhdGVPcHRpb25zKG9wdGlvbnMpKSB7Ci0gICAgICAgIGVjID0gU1lO
VEFYX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIE11dGF0aW9uT2JzZXJ2ZXJS
ZWdpc3RyYXRpb24qIHJlZ2lzdHJhdGlvbiA9IG5vZGUtPnJlZ2lzdGVyTXV0YXRpb25PYnNlcnZl
cih0aGlzKTsKLSAgICByZWdpc3RyYXRpb24tPnJlc2V0T2JzZXJ2YXRpb24ob3B0aW9ucywgYXR0
cmlidXRlRmlsdGVyKTsKLQotICAgIG5vZGUtPmRvY3VtZW50KCktPmFkZE11dGF0aW9uT2JzZXJ2
ZXJUeXBlcyhyZWdpc3RyYXRpb24tPm11dGF0aW9uVHlwZXMoKSk7Ci19Ci0KLVZlY3RvcjxSZWZQ
dHI8TXV0YXRpb25SZWNvcmQ+ID4gV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6dGFrZVJlY29yZHMo
KQotewotICAgIFZlY3RvcjxSZWZQdHI8TXV0YXRpb25SZWNvcmQ+ID4gcmVjb3JkczsKLSAgICBy
ZWNvcmRzLnN3YXAobV9yZWNvcmRzKTsKLSAgICByZXR1cm4gcmVjb3JkczsKLX0KLQotdm9pZCBX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpkaXNjb25uZWN0KCkKLXsKLSAgICBtX3JlY29yZHMuY2xl
YXIoKTsKLSAgICBIYXNoU2V0PE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qPiByZWdpc3Ry
YXRpb25zKG1fcmVnaXN0cmF0aW9ucyk7Ci0gICAgZm9yIChIYXNoU2V0PE11dGF0aW9uT2JzZXJ2
ZXJSZWdpc3RyYXRpb24qPjo6aXRlcmF0b3IgaXRlciA9IHJlZ2lzdHJhdGlvbnMuYmVnaW4oKTsg
aXRlciAhPSByZWdpc3RyYXRpb25zLmVuZCgpOyArK2l0ZXIpCi0gICAgICAgICgqaXRlciktPnVu
cmVnaXN0ZXIoKTsKLX0KLQotdm9pZCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpvYnNlcnZhdGlv
blN0YXJ0ZWQoTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbiogcmVnaXN0cmF0aW9uKQotewot
ICAgIEFTU0VSVCghbV9yZWdpc3RyYXRpb25zLmNvbnRhaW5zKHJlZ2lzdHJhdGlvbikpOwotICAg
IG1fcmVnaXN0cmF0aW9ucy5hZGQocmVnaXN0cmF0aW9uKTsKLX0KLQotdm9pZCBXZWJLaXRNdXRh
dGlvbk9ic2VydmVyOjpvYnNlcnZhdGlvbkVuZGVkKE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRp
b24qIHJlZ2lzdHJhdGlvbikKLXsKLSAgICBBU1NFUlQobV9yZWdpc3RyYXRpb25zLmNvbnRhaW5z
KHJlZ2lzdHJhdGlvbikpOwotICAgIG1fcmVnaXN0cmF0aW9ucy5yZW1vdmUocmVnaXN0cmF0aW9u
KTsKLX0KLQotdHlwZWRlZiBIYXNoU2V0PFJlZlB0cjxXZWJLaXRNdXRhdGlvbk9ic2VydmVyPiA+
IE11dGF0aW9uT2JzZXJ2ZXJTZXQ7Ci0KLXN0YXRpYyBNdXRhdGlvbk9ic2VydmVyU2V0JiBhY3Rp
dmVNdXRhdGlvbk9ic2VydmVycygpCi17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChNdXRhdGlv
bk9ic2VydmVyU2V0LCBhY3RpdmVPYnNlcnZlcnMsICgpKTsKLSAgICByZXR1cm4gYWN0aXZlT2Jz
ZXJ2ZXJzOwotfQotCi12b2lkIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OmVucXVldWVNdXRhdGlv
blJlY29yZChQYXNzUmVmUHRyPE11dGF0aW9uUmVjb3JkPiBtdXRhdGlvbikKLXsKLSAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwotICAgIG1fcmVjb3Jkcy5hcHBlbmQobXV0YXRpb24pOwotICAg
IGFjdGl2ZU11dGF0aW9uT2JzZXJ2ZXJzKCkuYWRkKHRoaXMpOwotfQotCi12b2lkIFdlYktpdE11
dGF0aW9uT2JzZXJ2ZXI6OnNldEhhc1RyYW5zaWVudFJlZ2lzdHJhdGlvbigpCi17Ci0gICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBhY3RpdmVNdXRhdGlvbk9ic2VydmVycygpLmFkZCh0
aGlzKTsKLX0KLQotdm9pZCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpkZWxpdmVyKCkKLXsKLSAg
ICAvLyBDYWxsaW5nIGNsZWFyVHJhbnNpZW50UmVnaXN0cmF0aW9ucygpIGNhbiBtb2RpZnkgbV9y
ZWdpc3RyYXRpb25zLCBzbyBpdCdzIG5lY2Vzc2FyeQotICAgIC8vIHRvIG1ha2UgYSBjb3B5IG9m
IHRoZSB0cmFuc2llbnQgcmVnaXN0cmF0aW9ucyBiZWZvcmUgb3BlcmF0aW5nIG9uIHRoZW0uCi0g
ICAgVmVjdG9yPE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qLCAxPiB0cmFuc2llbnRSZWdp
c3RyYXRpb25zOwotICAgIGZvciAoSGFzaFNldDxNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9u
Kj46Oml0ZXJhdG9yIGl0ZXIgPSBtX3JlZ2lzdHJhdGlvbnMuYmVnaW4oKTsgaXRlciAhPSBtX3Jl
Z2lzdHJhdGlvbnMuZW5kKCk7ICsraXRlcikgewotICAgICAgICBpZiAoKCppdGVyKS0+aGFzVHJh
bnNpZW50UmVnaXN0cmF0aW9ucygpKQotICAgICAgICAgICAgdHJhbnNpZW50UmVnaXN0cmF0aW9u
cy5hcHBlbmQoKml0ZXIpOwotICAgIH0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRyYW5z
aWVudFJlZ2lzdHJhdGlvbnMuc2l6ZSgpOyArK2kpCi0gICAgICAgIHRyYW5zaWVudFJlZ2lzdHJh
dGlvbnNbaV0tPmNsZWFyVHJhbnNpZW50UmVnaXN0cmF0aW9ucygpOwotCi0gICAgaWYgKG1fcmVj
b3Jkcy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFZlY3RvcjxSZWZQdHI8TXV0
YXRpb25SZWNvcmQ+ID4gcmVjb3JkczsKLSAgICByZWNvcmRzLnN3YXAobV9yZWNvcmRzKTsKLQot
ICAgIG1fY2FsbGJhY2stPmhhbmRsZUV2ZW50KCZyZWNvcmRzLCB0aGlzKTsKLX0KLQotdm9pZCBX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpkZWxpdmVyQWxsTXV0YXRpb25zKCkKLXsKLSAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwotICAgIHN0YXRpYyBib29sIGRlbGl2ZXJ5SW5Qcm9ncmVzcyA9
IGZhbHNlOwotICAgIGlmIChkZWxpdmVyeUluUHJvZ3Jlc3MpCi0gICAgICAgIHJldHVybjsKLSAg
ICBkZWxpdmVyeUluUHJvZ3Jlc3MgPSB0cnVlOwotCi0gICAgd2hpbGUgKCFhY3RpdmVNdXRhdGlv
bk9ic2VydmVycygpLmlzRW1wdHkoKSkgewotICAgICAgICBWZWN0b3I8UmVmUHRyPFdlYktpdE11
dGF0aW9uT2JzZXJ2ZXI+ID4gb2JzZXJ2ZXJzOwotICAgICAgICBjb3B5VG9WZWN0b3IoYWN0aXZl
TXV0YXRpb25PYnNlcnZlcnMoKSwgb2JzZXJ2ZXJzKTsKLSAgICAgICAgYWN0aXZlTXV0YXRpb25P
YnNlcnZlcnMoKS5jbGVhcigpOwotICAgICAgICBzdGQ6OnNvcnQob2JzZXJ2ZXJzLmJlZ2luKCks
IG9ic2VydmVycy5lbmQoKSwgT2JzZXJ2ZXJMZXNzVGhhbigpKTsKLSAgICAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBvYnNlcnZlcnMuc2l6ZSgpOyArK2kpCi0gICAgICAgICAgICBvYnNlcnZl
cnNbaV0tPmRlbGl2ZXIoKTsKLSAgICB9Ci0KLSAgICBkZWxpdmVyeUluUHJvZ3Jlc3MgPSBmYWxz
ZTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKE1VVEFU
SU9OX09CU0VSVkVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRNdXRh
dGlvbk9ic2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TXV0YXRpb25PYnNlcnZl
ci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZjA5NjQ3MjY2NzE0NTY5OThlNWFi
MTFkOTM4NTY2YzQzMDJjZjg1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgKKysr
IC9kZXYvbnVsbApAQCAtMSwxMDggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
Ci0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV2ViS2l0TXV0YXRpb25PYnNlcnZl
cl9oCi0jZGVmaW5lIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXJfaAotCi0jaWYgRU5BQkxFKE1VVEFU
SU9OX09CU0VSVkVSUykKLQotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3Rm
L0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0
L0F0b21pY1N0cmluZy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZ0hhc2guaD4K
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBEaWN0aW9uYXJ5OwotY2xhc3MgTXV0YXRp
b25DYWxsYmFjazsKLWNsYXNzIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb247Ci1jbGFzcyBN
dXRhdGlvblJlY29yZDsKLWNsYXNzIE5vZGU7Ci0KLXR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7
Ci0KLXR5cGVkZWYgdW5zaWduZWQgY2hhciBNdXRhdGlvbk9ic2VydmVyT3B0aW9uczsKLXR5cGVk
ZWYgdW5zaWduZWQgY2hhciBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9uczsKLQotY2xhc3Mg
V2ViS2l0TXV0YXRpb25PYnNlcnZlciA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXI+IHsKLXB1YmxpYzoKLSAgICBlbnVtIE11dGF0aW9uVHlwZSB7Ci0gICAgICAgIENo
aWxkTGlzdCA9IDEgPDwgMCwKLSAgICAgICAgQXR0cmlidXRlcyA9IDEgPDwgMSwKLSAgICAgICAg
Q2hhcmFjdGVyRGF0YSA9IDEgPDwgMiwKLQotICAgICAgICBBbGxNdXRhdGlvblR5cGVzID0gQ2hp
bGRMaXN0IHwgQXR0cmlidXRlcyB8IENoYXJhY3RlckRhdGEKLSAgICB9OwotCi0gICAgZW51bSBP
YnNlcnZhdGlvbkZsYWdzICB7Ci0gICAgICAgIFN1YnRyZWUgPSAxIDw8IDMsCi0gICAgICAgIEF0
dHJpYnV0ZUZpbHRlciA9IDEgPDwgNAotICAgIH07Ci0KLSAgICBlbnVtIERlbGl2ZXJ5RmxhZ3Mg
ewotICAgICAgICBBdHRyaWJ1dGVPbGRWYWx1ZSA9IDEgPDwgNSwKLSAgICAgICAgQ2hhcmFjdGVy
RGF0YU9sZFZhbHVlID0gMSA8PCA2LAotICAgIH07Ci0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyPiBjcmVhdGUoUGFzc1JlZlB0cjxNdXRhdGlvbkNhbGxiYWNr
Pik7Ci0gICAgc3RhdGljIHZvaWQgZGVsaXZlckFsbE11dGF0aW9ucygpOwotCi0gICAgfldlYktp
dE11dGF0aW9uT2JzZXJ2ZXIoKTsKLQotICAgIHZvaWQgb2JzZXJ2ZShOb2RlKiwgY29uc3QgRGlj
dGlvbmFyeSYsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBWZWN0b3I8UmVmUHRyPE11dGF0aW9uUmVj
b3JkPiA+IHRha2VSZWNvcmRzKCk7Ci0gICAgdm9pZCBkaXNjb25uZWN0KCk7Ci0gICAgdm9pZCBv
YnNlcnZhdGlvblN0YXJ0ZWQoTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbiopOwotICAgIHZv
aWQgb2JzZXJ2YXRpb25FbmRlZChNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKik7Ci0gICAg
dm9pZCBlbnF1ZXVlTXV0YXRpb25SZWNvcmQoUGFzc1JlZlB0cjxNdXRhdGlvblJlY29yZD4pOwot
ICAgIHZvaWQgc2V0SGFzVHJhbnNpZW50UmVnaXN0cmF0aW9uKCk7Ci0KLXByaXZhdGU6Ci0gICAg
c3RydWN0IE9ic2VydmVyTGVzc1RoYW47Ci0KLSAgICBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKFBh
c3NSZWZQdHI8TXV0YXRpb25DYWxsYmFjaz4pOwotICAgIHZvaWQgZGVsaXZlcigpOwotCi0gICAg
c3RhdGljIGJvb2wgdmFsaWRhdGVPcHRpb25zKE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zKTsKLQot
ICAgIFJlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPiBtX2NhbGxiYWNrOwotICAgIFZlY3RvcjxSZWZQ
dHI8TXV0YXRpb25SZWNvcmQ+ID4gbV9yZWNvcmRzOwotICAgIEhhc2hTZXQ8TXV0YXRpb25PYnNl
cnZlclJlZ2lzdHJhdGlvbio+IG1fcmVnaXN0cmF0aW9uczsKLSAgICB1bnNpZ25lZCBtX3ByaW9y
aXR5OwotfTsKLQotfQotCi0jZW5kaWYgLy8gRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKLQot
I2VuZGlmIC8vIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9t
L1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaWRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBjMzM4YmUyOGRlMTk0ODIyY2QxYmJmOGI1NDQxNGVlZDE3MWVkZWZkLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJL
aXRNdXRhdGlvbk9ic2VydmVyLmlkbAorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICog
ZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1tb2R1
bGUgY29yZSB7Ci0gICAgaW50ZXJmYWNlIFsKLSAgICAgICAgQ29uZGl0aW9uYWw9TVVUQVRJT05f
T0JTRVJWRVJTLAotICAgICAgICBDdXN0b21Db25zdHJ1Y3RvciwKLSAgICAgICAgQ29uc3RydWN0
b3JQYXJhbWV0ZXJzPTEKLSAgICBdIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIgewotICAgICAgICB2
b2lkIG9ic2VydmUoaW4gTm9kZSB0YXJnZXQsIGluIERpY3Rpb25hcnkgb3B0aW9ucykKLSAgICAg
ICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBzZXF1ZW5jZTxNdXRhdGlvblJl
Y29yZD4gdGFrZVJlY29yZHMoKTsKLSAgICAgICAgdm9pZCBkaXNjb25uZWN0KCk7Ci0gICAgfTsK
LX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAppbmRleCBiMjA2NTQzYjE1NTg2NzI0ZDlmYjgx
ZTBlYTE5MzYwYjcwMzk0NjA2Li4zNmJhNzAzMDZlMGM4YzMxZGM1YzZiNjUyOWNiNjhlYTEwZmFi
OTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCkBAIC03NzgsNyArNzc4LDggQEAgbW9k
dWxlIHdpbmRvdyB7CiAKICAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1CTE9CXSBET01V
UkxDb25zdHJ1Y3RvciB3ZWJraXRVUkw7CiAKLSAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25h
bD1NVVRBVElPTl9PQlNFUlZFUlNdIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXJDb25zdHJ1Y3RvciBX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyOworICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU1V
VEFUSU9OX09CU0VSVkVSU10gTXV0YXRpb25PYnNlcnZlckNvbnN0cnVjdG9yIE11dGF0aW9uT2Jz
ZXJ2ZXI7CisgICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9TVVUQVRJT05fT0JTRVJWRVJT
XSBNdXRhdGlvbk9ic2VydmVyQ29uc3RydWN0b3IgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjsKIAog
I2VuZGlmIC8vIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViS2l0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYktpdC5jcHAKaW5kZXggNjEwNjU5N2FlOGZiMTVlZGU2MDZiNjFiNzg0MjQ0OThj
OTlkNzQxYS4uMWJiM2I0NGE5M2RmZmM1ZmM4MjZhMWEzYjYwZmIwYzY2YWI3OTUzZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViS2l0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJLaXQuY3BwCkBAIC0zMiwxMyArMzIsMTMgQEAKICNpbmNs
dWRlICJXZWJLaXQuaCIKIAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNdXRhdGlv
bk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVk
RmVhdHVyZXMuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRleHRFbmNvZGlu
Zy5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgogI2luY2x1ZGUgIlY4UmVjdXJzaW9uU2NvcGUu
aCIKLSNpbmNsdWRlICJXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiV2ViTWVk
aWFQbGF5ZXJDbGllbnRJbXBsLmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0LmgiCiAjaW5jbHVkZSAi
V29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmgiCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgd2lsbFByb2Nlc3NUYXNrKCkgeyB9CiAgICAgdmlydHVhbCB2b2lk
IGRpZFByb2Nlc3NUYXNrKCkKICAgICB7Ci0gICAgICAgIFdlYkNvcmU6OldlYktpdE11dGF0aW9u
T2JzZXJ2ZXI6OmRlbGl2ZXJBbGxNdXRhdGlvbnMoKTsKKyAgICAgICAgV2ViQ29yZTo6TXV0YXRp
b25PYnNlcnZlcjo6ZGVsaXZlckFsbE11dGF0aW9ucygpOwogICAgIH0KIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJl
ZVN1cHBvcnRFZmwuY3BwCmluZGV4IGZlMWY3MGRhZTFiODk3NGM4NmMzN2Q3ODZkMmEyZTJiOTZm
NDFkYTAuLjlhMjgxZWNkNDkxNmMzYTI1OTA2YTAwMmY0YWFkOTE0NDBmY2MwYjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0RWZsLmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgPEpTRWxlbWVu
dC5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL09wYXF1ZUpTU3RyaW5nLmg+CiAjaW5jbHVk
ZSA8TWVtb3J5Q2FjaGUuaD4KKyNpbmNsdWRlIDxNdXRhdGlvbk9ic2VydmVyLmg+CiAjaW5jbHVk
ZSA8UGFnZUdyb3VwLmg+CiAjaW5jbHVkZSA8UHJpbnRDb250ZXh0Lmg+CiAjaW5jbHVkZSA8UmVu
ZGVyVHJlZUFzVGV4dC5oPgpAQCAtNTUsNyArNTYsNiBAQAogI2luY2x1ZGUgPFNjcmlwdFZhbHVl
Lmg+CiAjaW5jbHVkZSA8U2V0dGluZ3MuaD4KICNpbmNsdWRlIDxUZXh0SXRlcmF0b3IuaD4KLSNp
bmNsdWRlIDxXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmg+CiAjaW5jbHVkZSA8YmluZGluZ3MvanMv
R0NDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8aGlzdG9yeS9IaXN0b3J5SXRlbS5oPgogI2luY2x1
ZGUgPHdvcmtlcnMvV29ya2VyVGhyZWFkLmg+CkBAIC01OTcsNyArNTk3LDcgQEAgdm9pZCBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRFZmw6OmR1bXBDb25maWd1cmF0aW9uRm9yVmlld3BvcnQoRXZhc19P
YmplY3QqIGV3a1ZpZXcKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpkZWxpdmVyQWxs
TXV0YXRpb25zSWZOZWNlc3NhcnkoKQogewogI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMp
Ci0gICAgV2ViQ29yZTo6V2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6ZGVsaXZlckFsbE11dGF0aW9u
cygpOworICAgIFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6OmRlbGl2ZXJBbGxNdXRhdGlvbnMo
KTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAppbmRleCA5ZWI4NjcxZDZk
ZTFmYmMxZjhjMjMwODgxYzYxODdmNDFkZjkyNzg0Li4xZWE5YmYyMWIwNmVhYzM2YWIyZDJmZGMz
M2UxMDc5YjhmMGRjNTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKQEAgLTUwLDYgKzUw
LDcgQEAKICNpbmNsdWRlICJKU0xvY2suaCIKICNpbmNsdWRlICJKU05vZGVMaXN0LmgiCiAjaW5j
bHVkZSAiSlNWYWx1ZS5oIgorI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRl
ICJOb2RlTGlzdC5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlBsYXRmb3Jt
U3RyaW5nLmgiCkBAIC02NCw3ICs2NSw2IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNs
dWRlICJUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJXZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0
ay5oIgotI2luY2x1ZGUgIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJXb3Jr
ZXJUaHJlYWQuaCIKICNpbmNsdWRlICJ3ZWJraXRnbG9iYWxzcHJpdmF0ZS5oIgogI2luY2x1ZGUg
IndlYmtpdHdlYmZyYW1lLmgiCkBAIC04MzgsNyArODM4LDcgQEAgSlNWYWx1ZVJlZiBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGs6OmNvbXB1dGVkU3R5bGVJbmNsdWRpbmdWaXNpdGVkSW5mbyhKU0Nv
bnRleHQKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpkZWxpdmVyQWxsTXV0YXRpb25z
SWZOZWNlc3NhcnkoKQogewogI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCi0gICAgV2Vi
S2l0TXV0YXRpb25PYnNlcnZlcjo6ZGVsaXZlckFsbE11dGF0aW9ucygpOworICAgIE11dGF0aW9u
T2JzZXJ2ZXI6OmRlbGl2ZXJBbGxNdXRhdGlvbnMoKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29u
ZmlnCmluZGV4IGIxYjg0OTY2ZDliNDIxZWQ5NmQyOGYyNGMyYWU2ZjRjZGNiMDhmMjcuLjYxZDJh
ZjU2N2UyNTJjN2FiZWVlNmMzZmUyYTBlMzlmYTdiYzE5NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBA
IC0xMDAsNyArMTAwLDcgQEAgRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MgPSA7CiBFTkFCTEVfTUVU
RVJfVEFHID0gRU5BQkxFX01FVEVSX1RBRzsKIEVOQUJMRV9NSFRNTCA9IDsKIEVOQUJMRV9NSUNS
T0RBVEEgPSA7Ci1FTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTID0gRU5BQkxFX01VVEFUSU9OX09C
U0VSVkVSUzsKK0VOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMgPSA7CiBFTkFCTEVfTk9USUZJQ0FU
SU9OUyA9ICQoRU5BQkxFX05PVElGSUNBVElPTlNfJChSRUFMX1BMQVRGT1JNX05BTUUpKTsKIEVO
QUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9ICQoRU5BQkxFX05PVElGSUNBVElPTlNfbWFjb3N4
XyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05T
X21hY29zeF8xMDcwID0gOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCBiMWI4NDk2NmQ5YjQyMWVkOTZkMjhmMjRj
MmFlNmY0Y2RjYjA4ZjI3Li42MWQyYWY1NjdlMjUyYzdhYmVlZTZjM2ZlMmEwZTM5ZmE3YmMxOTYy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVm
aW5lcy54Y2NvbmZpZwpAQCAtMTAwLDcgKzEwMCw3IEBAIEVOQUJMRV9NRURJQV9TVEFUSVNUSUNT
ID0gOwogRU5BQkxFX01FVEVSX1RBRyA9IEVOQUJMRV9NRVRFUl9UQUc7CiBFTkFCTEVfTUhUTUwg
PSA7CiBFTkFCTEVfTUlDUk9EQVRBID0gOwotRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUyA9IEVO
QUJMRV9NVVRBVElPTl9PQlNFUlZFUlM7CitFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTID0gOwog
RU5BQkxFX05PVElGSUNBVElPTlMgPSAkKEVOQUJMRV9OT1RJRklDQVRJT05TXyQoUkVBTF9QTEFU
Rk9STV9OQU1FKSk7CiBFTkFCTEVfTk9USUZJQ0FUSU9OU19tYWNvc3ggPSAkKEVOQUJMRV9OT1RJ
RklDQVRJT05TX21hY29zeF8kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7CiBFTkFC
TEVfTk9USUZJQ0FUSU9OU19tYWNvc3hfMTA3MCA9IDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzYjIwOWJjNDNhODgwMDYzNjZmZjVjY2Q3ZmI2
YTYxNTAwYmI3YjU2Li5hMmE2NzUxYjZjZGIxZDk2ZmI4ODRhN2VkNGUyNTUyODFhNjNkYzQ3IDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMTItMDYtMTUgIEFkYW0gS2xlaW4gIDxhZGFta0BjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUmVtb3ZlIHZlbmRvciBwcmVmaXggZnJvbSBET00gTXV0YXRpb25PYnNlcnZlcnMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5MjMxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9ndGsvRXZlbnRTZW5kZXIuY3BwOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cGVy
bC9GZWF0dXJlTGlzdC5wbTogRW5hYmxlIE11dGF0aW9uT2JzZXJ2ZXJzIG9ubHkgZm9yIHBvcnRz
CisgICAgICAgIHRoYXQgcGFzcyBhbGwgZmFzdC9tdXRhdGlvbi8uLi4gdGVzdHMgKGluY2x1ZGlu
ZyBlbmQtb2YtdGFzayBkZWxpdmVyeSkuCisKIDIwMTItMDYtMjggIFJ5b3N1a2UgTml3YSAgPHJu
aXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ2xlYW51cCBIVE1MRm9ybUNvbGxlY3Rpb24KZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9FdmVudFNlbmRlci5jcHAgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9ndGsvRXZlbnRTZW5kZXIuY3BwCmluZGV4IDEwMmJiNjYwZjIwNGI5
OTBiOGRkZjVhMzE0MjU4Y2I5NTliMTIyZmIuLjRjYzJhYjM0YjJmNTA2ZmNiNjQ5MzBiYzlkYzky
ZmM2ZTFlYzU4MzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9FdmVudFNl
bmRlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0V2ZW50U2VuZGVyLmNwcApA
QCAtMzUsNyArMzUsNiBAQAogCiAjaW5jbHVkZSAiRHVtcFJlbmRlclRyZWUuaCIKICNpbmNsdWRl
ICJXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaCIKLSNpbmNsdWRlICJX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSA8R093blB0ckd0ay5oPgogI2luY2x1
ZGUgPEdSZWZQdHJHdGsuaD4KICNpbmNsdWRlIDxHdGtWZXJzaW9uaW5nLmg+CmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0gYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KaW5kZXggNWFhZDA1MDY0Y2I1YzkzMmJiMWMxYTMx
NzgzMmM0OWMxMTk4MjFhNy4uZThiNTA3ZDY0MzE2ODYzMzY1MDliNjdmMzU3MGEzZjg4YzJhYTM0
NCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQpAQCAtMjk1LDcgKzI5
NSw3IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX01JQ1JPREFU
QSIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCRtaWNyb2RhdGFTdXBwb3J0IH0sCiAKICAgICB7
IG9wdGlvbiA9PiAibXV0YXRpb24tb2JzZXJ2ZXJzIiwgZGVzYyA9PiAiVG9nZ2xlIE11dGF0aW9u
IE9ic2VydmVycyBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX01VVEFUSU9OX09C
U0VSVkVSUyIsIGRlZmF1bHQgPT4gMSwgdmFsdWUgPT4gXCRtdXRhdGlvbk9ic2VydmVyc1N1cHBv
cnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUyIsIGRlZmF1
bHQgPT4gKGlzQ2hyb21pdW0oKSB8fCBpc0d0aygpIHx8IGlzRWZsKCkpLCB2YWx1ZSA9PiBcJG11
dGF0aW9uT2JzZXJ2ZXJzU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gIm5ldHNjYXBlLXBs
dWdpbi1hcGkiLCBkZXNjID0+ICJUb2dnbGUgTmV0c2NhcGUgUGx1Z2luIEFQSSBzdXBwb3J0IiwK
ICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkiLCBkZWZhdWx0ID0+
ICFpc0VmbCgpLCB2YWx1ZSA9PiBcJG5ldHNjYXBlUGx1Z2luQVBJU3VwcG9ydCB9LApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDY5N2Q2Y2UyMzdmNmNmMGY0YzAyNDY3MGM0Y2U2ZjkwMDQ2ODYyYjAuLmMwMjc2MjhjZDA2ZTZk
YTEwMTYxMDZlZDAxMTI3ZGY5YWY3OGRlMzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NiBAQAorMjAxMi0w
Ni0xNSAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZW1vdmUg
dmVuZG9yIHByZWZpeCBmcm9tIERPTSBNdXRhdGlvbk9ic2VydmVycworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkyMzEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbGwgdGVzdHMgaGF2ZSBiZWVuIHVwZGF0
ZWQgdG8gcmVmZXJlbmNlIHRoZSB1bnByZWZpeGVkIG5hbWUuCisKKyAgICAgICAgKiBmYXN0L211
dGF0aW9uL2NhbGxiYWNrLWFyZ3VtZW50cy5odG1sOgorICAgICAgICAqIGZhc3QvbXV0YXRpb24v
Y2xlYXItdHJhbnNpZW50LXdpdGhvdXQtZGVsaXZlcnkuaHRtbDoKKyAgICAgICAgKiBmYXN0L211
dGF0aW9uL2NyZWF0ZS1kdXJpbmctZGVsaXZlcnkuaHRtbDoKKyAgICAgICAgKiBmYXN0L211dGF0
aW9uL2Nyb3NzLWRvY3VtZW50Lmh0bWw6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi9kYXRhYmFz
ZS1jYWxsYmFjay1kZWxpdmVyeS5odG1sOgorICAgICAgICAqIGZhc3QvbXV0YXRpb24vZGVsaXZl
cnktb3JkZXIuaHRtbDoKKyAgICAgICAgKiBmYXN0L211dGF0aW9uL2Rpc2Nvbm5lY3QtY2FuY2Vs
LXBlbmRpbmctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvbXV0YXRpb24vZGlzY29ubmVj
dC1jYW5jZWwtcGVuZGluZy5odG1sOgorICAgICAgICAqIGZhc3QvbXV0YXRpb24vZG9jdW1lbnQt
ZnJhZ21lbnQtaW5zZXJ0aW9uLmh0bWw6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi9lbmQtb2Yt
dGFzay1kZWxpdmVyeS5odG1sOgorICAgICAgICAqIGZhc3QvbXV0YXRpb24vZmlsZXN5c3RlbS1j
YWxsYmFjay1kZWxpdmVyeS5odG1sOgorICAgICAgICAqIGZhc3QvbXV0YXRpb24vaW5saW5lLWV2
ZW50LWxpc3RlbmVyLmh0bWw6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi9tdXRhdGUtZHVyaW5n
LWRlbGl2ZXJ5Lmh0bWw6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi9tdXRhdGlvbi1jYWxsYmFj
ay1ub24tZWxlbWVudC1jcmFzaC5odG1sOgorICAgICAgICAqIGZhc3QvbXV0YXRpb24vbXV0YXRp
b24tb2JzZXJ2ZXItY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvbXV0
YXRpb24vbXV0YXRpb24tb2JzZXJ2ZXItY29uc3RydWN0b3IuaHRtbDoKKyAgICAgICAgKiBmYXN0
L211dGF0aW9uL29ic2VydmUtYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFz
dC9tdXRhdGlvbi9vYnNlcnZlLWF0dHJpYnV0ZXMuaHRtbDoKKyAgICAgICAgKiBmYXN0L211dGF0
aW9uL29ic2VydmUtY2hhcmFjdGVyZGF0YS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9t
dXRhdGlvbi9vYnNlcnZlLWNoYXJhY3RlcmRhdGEuaHRtbDoKKyAgICAgICAgKiBmYXN0L211dGF0
aW9uL29ic2VydmUtY2hpbGRMaXN0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L211dGF0
aW9uL29ic2VydmUtY2hpbGRMaXN0Lmh0bWw6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi9vYnNl
cnZlLWV4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvbXV0YXRpb24vb2Jz
ZXJ2ZS1leGNlcHRpb25zLmh0bWw6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi9vYnNlcnZlLXN1
YnRyZWUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvbXV0YXRpb24vb2JzZXJ2ZS1zdWJ0
cmVlLmh0bWw6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi9zaGFkb3ctZG9tLmh0bWw6CisgICAg
ICAgICogZmFzdC9tdXRhdGlvbi90YWtlUmVjb3Jkcy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
ZmFzdC9tdXRhdGlvbi90YWtlUmVjb3Jkcy5odG1sOgorICAgICAgICAqIGZhc3QvbXV0YXRpb24v
dHJhbnNpZW50LWdjLWNyYXNoLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6
IFNraXAgTXV0YXRpb25PYnNlcnZlciB0ZXN0cyBhcyB0aGV5J3JlIG5vdyBkaXNhYmxlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDogZGl0dG8KKyAgICAgICAgKiBwbGF0Zm9ybS93
aW5jYWlyby9Ta2lwcGVkOiBkaXR0bworCiAyMDEyLTA2LTI4ICBBbHBoYSBMYW0gIDxoY2xhbUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBNYXJrIGEgdGVzdCBhcyBmYWlsaW5n
IG9uIExpbnV4IGRlYnVnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2Nh
bGxiYWNrLWFyZ3VtZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9jYWxsYmFj
ay1hcmd1bWVudHMuaHRtbAppbmRleCBmNzhkZGQ5MmQzNWE0OTg0ODI2MGQ2N2M2ZTIxZWVkYWQw
NzFkZDYzLi5mODc2NzJmZWNkN2EzNTNkNDA0ZDk4YmQzMzM4OTNmNTkzNDA2NWNjIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2NhbGxiYWNrLWFyZ3VtZW50cy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vY2FsbGJhY2stYXJndW1lbnRzLmh0bWwKQEAg
LTEyLDcgKzEyLDcgQEAgZnVuY3Rpb24gbXV0YXRpb25DYWxsYmFjayhtdXRhdGlvbnMsIG9ic2Vy
dmVyKSB7CiAgICAgc2hvdWxkQmUoJ2FyZ3VtZW50MicsICdtdXRhdGlvbk9ic2VydmVyJyk7CiAg
ICAgZmluaXNoSlNUZXN0KCk7CiB9Ci12YXIgbXV0YXRpb25PYnNlcnZlciA9IG5ldyBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyKG11dGF0aW9uQ2FsbGJhY2spOwordmFyIG11dGF0aW9uT2JzZXJ2ZXIg
PSBuZXcgTXV0YXRpb25PYnNlcnZlcihtdXRhdGlvbkNhbGxiYWNrKTsKIHZhciBkaXYgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKIG11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZShkaXYs
IHthdHRyaWJ1dGVzOiB0cnVlfSk7CiBkaXYuc2V0QXR0cmlidXRlKCdmb28nLCAnYmFyJyk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2NsZWFyLXRyYW5zaWVudC13aXRo
b3V0LWRlbGl2ZXJ5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2NsZWFyLXRyYW5z
aWVudC13aXRob3V0LWRlbGl2ZXJ5Lmh0bWwKaW5kZXggZTFmZWU4MTcyMGViY2Q3MDllODA5OTlm
NGE5YmUxMjcyY2FhODdlMi4uNDJhNTNlMzhiZDVmNTZlM2MzMjQxYWQzNGNjYjY3YWMxMDQ5NDMx
NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9jbGVhci10cmFuc2llbnQt
d2l0aG91dC1kZWxpdmVyeS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vY2xl
YXItdHJhbnNpZW50LXdpdGhvdXQtZGVsaXZlcnkuaHRtbApAQCAtNyw3ICs3LDcgQEAgdmFyIG11
dGF0aW9uc0RlbGl2ZXJlZCA9IGZhbHNlOwogZnVuY3Rpb24gY2FsbGJhY2sobXV0YXRpb25zKSB7
CiAgICAgbXV0YXRpb25zRGVsaXZlcmVkID0gdHJ1ZTsKIH0KLXZhciBvYnNlcnZlciA9IG5ldyBX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyKGNhbGxiYWNrKTsKK3ZhciBvYnNlcnZlciA9IG5ldyBNdXRh
dGlvbk9ic2VydmVyKGNhbGxiYWNrKTsKIAogdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpOwogdmFyIHNwYW4gPSBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnc3BhbicpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vY3Jl
YXRlLWR1cmluZy1kZWxpdmVyeS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9jcmVh
dGUtZHVyaW5nLWRlbGl2ZXJ5Lmh0bWwKaW5kZXggY2VlZTI0ZTcwODJjZjgxZDVhNWE1NDljNGNk
N2I0ZDJkYjhlMjAyNi4uNGY1ZDA3YzZjMDFkOWRmOGZmNTMxNDU3NzFkMmVjNTM0ODg4YzJhYSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9jcmVhdGUtZHVyaW5nLWRlbGl2
ZXJ5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9jcmVhdGUtZHVyaW5nLWRl
bGl2ZXJ5Lmh0bWwKQEAgLTE3LDE3ICsxNywxNyBAQCB2YXIgb3JkZXIgPSBbXTsKIHZhciBkaXYg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKIAogdmFyIG9ic2VydmVyMzsKLXZhciBv
YnNlcnZlcjEgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMp
IHsKK3ZhciBvYnNlcnZlcjEgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlv
bnMpIHsKICAgICBvcmRlci5wdXNoKDEpOwogICAgIGlmICghb2JzZXJ2ZXIzKSB7Ci0gICAgICAg
IG9ic2VydmVyMyA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9u
cykgeworICAgICAgICBvYnNlcnZlcjMgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbiht
dXRhdGlvbnMpIHsKICAgICAgICAgICAgIG9yZGVyLnB1c2goMyk7CiAgICAgICAgIH0pOwogICAg
ICAgICBvYnNlcnZlcjMub2JzZXJ2ZShkaXYsIHthdHRyaWJ1dGVzOiB0cnVlfSk7CiAgICAgICAg
IGRpdi5zZXRBdHRyaWJ1dGUoJ2ZvbycsICdiYXonKTsKICAgICB9CiB9KTsKLXZhciBvYnNlcnZl
cjIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKK3Zh
ciBvYnNlcnZlcjIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsK
ICAgICBvcmRlci5wdXNoKDIpOwogfSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
bXV0YXRpb24vY3Jvc3MtZG9jdW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24v
Y3Jvc3MtZG9jdW1lbnQuaHRtbAppbmRleCBmNGVlN2YwY2ZjZDg3NGJlZGJmODhhOWZhZmE3YWJh
OWYxODA0ZmExLi5jODgzZGEzNGY0NDZmY2Q5MmUxMTY2YmFlZDliZTViMTcyYjdiOGQzIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2Nyb3NzLWRvY3VtZW50Lmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9jcm9zcy1kb2N1bWVudC5odG1sCkBAIC0xOCw3
ICsxOCw3IEBAIGZ1bmN0aW9uIHRlc3RCYXNpYygpIHsKIAogICAgICAgICBtdXRhdGlvbnMgPSBu
dWxsOwogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAg
ICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlv
bnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbiht
dXRhdGlvbnMpIHsKICAgICAgICAgICAgIHdpbmRvdy5tdXRhdGlvbnMgPSBtdXRhdGlvbnM7CiAg
ICAgICAgIH0pOwogCkBAIC01Miw3ICs1Miw3IEBAIGZ1bmN0aW9uIHRlc3RTdWJ0cmVlKCkgewog
ICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdkaXYnKTsKICAgICAgICAgc3ViRGl2ID0gZGl2LmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0
YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBu
ZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICAgICAgICAgIHdp
bmRvdy5tdXRhdGlvbnMgPSBtdXRhdGlvbnM7CiAgICAgICAgIH0pOwogCkBAIC04OSw3ICs4OSw3
IEBAIGZ1bmN0aW9uIHJ1bk5leHRUZXN0KCkgewogCiBkZXNjcmlwdGlvbignVGVzdCB0aGF0IE11
dGF0aW9uT2JzZXJ2ZXJzIG1vdmUgY29ycmVjdGx5IGFjcm9zcyBkb2N1bWVudHMnKTsKIAotaWYg
KCF3aW5kb3cuV2ViS2l0TXV0YXRpb25PYnNlcnZlcikKK2lmICghd2luZG93Lk11dGF0aW9uT2Jz
ZXJ2ZXIpCiAgICAgdGVzdEZhaWxlZCgnVGhpcyB0ZXN0IHJlcXVpcmVzIEVOQUJMRShNVVRBVElP
Tl9PQlNFUlZFUlMpJyk7CiBlbHNlCiAgICAgcnVuTmV4dFRlc3QoKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vZGF0YWJhc2UtY2FsbGJhY2stZGVsaXZlcnkuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vZGF0YWJhc2UtY2FsbGJhY2stZGVsaXZlcnkuaHRt
bAppbmRleCBjNzlhM2ZhYzI3ZGQ4N2NhOTQ1OWM2MWMxMTJhNmMyOGM0NjZmNjI0Li40MDM4ZDBm
ZTA2OWU4M2Y2NWEzMmJiOTA1Y2ZkYzM0OGM5OTllNmVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L211dGF0aW9uL2RhdGFiYXNlLWNhbGxiYWNrLWRlbGl2ZXJ5Lmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9kYXRhYmFzZS1jYWxsYmFjay1kZWxpdmVyeS5odG1sCkBA
IC0xMiw3ICsxMiw3IEBAIGZ1bmN0aW9uIHRlc3REYXRhYmFzZSgpIHsKICAgICBmdW5jdGlvbiBz
dGFydCgpIHsKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKICAgICAgICAgZGl2ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11
dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRh
dGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAg
ICAgICAgIH0pOwogCkBAIC00MSw3ICs0MSw3IEBAIGZ1bmN0aW9uIHRlc3REYXRhYmFzZSgpIHsK
IAogZGVzY3JpcHRpb24oJ1Rlc3RpbmcgbXV0YXRpb25zIGFyZSBkZWxpdmVyZWQgZm9sbG93aW5n
IERhdGFiYXNlIHRyYW5zYWN0aW9uIGNhbGxiYWNrcy4nKTsKIAotaWYgKCF3aW5kb3cuV2ViS2l0
TXV0YXRpb25PYnNlcnZlcikgeworaWYgKCF3aW5kb3cuTXV0YXRpb25PYnNlcnZlcikgewogICAg
IHRlc3RGYWlsZWQoJ1RoaXMgdGVzdCByZXF1aXJlcyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJT
KScpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfSBlbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L211dGF0aW9uL2RlbGl2ZXJ5LW9yZGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211
dGF0aW9uL2RlbGl2ZXJ5LW9yZGVyLmh0bWwKaW5kZXggNGU1NWMwZDYyYjY1MzQ4ZDllYWEzYzJi
NTA2N2Y1ZmFmYjgyYjRkZC4uNWJjMjk5MWE1YjViZWM4MjJmYWY2YWFkY2VhZmJmNjlhNDQzNWNh
MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9kZWxpdmVyeS1vcmRlci5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vZGVsaXZlcnktb3JkZXIuaHRtbApA
QCAtMjMsNyArMjMsNyBAQCB2YXIgb3JkZXIgPSBbXTsKIHZhciBvYnNlcnZlcnMgPSBbXTsKIAog
ZnVuY3Rpb24gc2V0VXBPcmRlcmluZyhudW0pIHsKLSAgICBvYnNlcnZlcnMucHVzaChuZXcgV2Vi
S2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICBvYnNlcnZlcnMu
cHVzaChuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICAgICAg
b3JkZXIucHVzaChudW0pOwogICAgIH0pKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvbXV0YXRpb24vZGlzY29ubmVjdC1jYW5jZWwtcGVuZGluZy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L211dGF0aW9uL2Rpc2Nvbm5lY3QtY2FuY2VsLXBlbmRpbmctZXhwZWN0ZWQu
dHh0CmluZGV4IDNiNWQ5N2U3NTMyZDY4ZjY2NmViYWU5ZmE1YzBhM2NhZDNmYjFiMTIuLjczNmE3
NWUxOTFkNmI1MWRjZjdhYzc1MGU1NDJkODg4YWM1MjFjNGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvbXV0YXRpb24vZGlzY29ubmVjdC1jYW5jZWwtcGVuZGluZy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9kaXNjb25uZWN0LWNhbmNlbC1wZW5kaW5n
LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKLVRlc3QgdGhhdCBXZWJLaXRNdXRhdGlvbk9i
c2VydmVyLmRpc2Nvbm5lY3QgY2FuY2VscyBwZW5kaW5nIGRlbGl2ZXJ5CitUZXN0IHRoYXQgTXV0
YXRpb25PYnNlcnZlci5kaXNjb25uZWN0IGNhbmNlbHMgcGVuZGluZyBkZWxpdmVyeQogCiBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0
YXRpb24vZGlzY29ubmVjdC1jYW5jZWwtcGVuZGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9t
dXRhdGlvbi9kaXNjb25uZWN0LWNhbmNlbC1wZW5kaW5nLmh0bWwKaW5kZXggZjYyZmQ1MjllMzlj
NTFhYzdjNDY4Yzk5YmVhMzcxMzc1MDE1NmFkMS4uYmQ0NzgwOGY0YzI1MzdhM2M0N2Q0NjhhNjkz
YzdjNDJkYTRhYTc5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9kaXNj
b25uZWN0LWNhbmNlbC1wZW5kaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlv
bi9kaXNjb25uZWN0LWNhbmNlbC1wZW5kaW5nLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8IURPQ1RZ
UEUgaHRtbD4KIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgogPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCdUZXN0IHRoYXQgV2ViS2l0TXV0YXRpb25P
YnNlcnZlci5kaXNjb25uZWN0IGNhbmNlbHMgcGVuZGluZyBkZWxpdmVyeScpOworZGVzY3JpcHRp
b24oJ1Rlc3QgdGhhdCBNdXRhdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QgY2FuY2VscyBwZW5kaW5n
IGRlbGl2ZXJ5Jyk7CiAKIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIHZhciBtdXRhdGlv
bnM7CkBAIC0xMSw3ICsxMSw3IEBAIGZ1bmN0aW9uIHN0YXJ0KCkgewogICAgIG11dGF0aW9ucyA9
IG51bGw7CiAgICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAKLSAgICBv
YnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICBv
YnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgbXV0
YXRpb25zID0gbTsKICAgICB9KTsKIApAQCAtMzYsNyArMzYsNyBAQCBmdW5jdGlvbiBmaW5pc2go
KSB7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKLWlmICghd2luZG93LldlYktpdE11dGF0aW9u
T2JzZXJ2ZXIpCitpZiAoIXdpbmRvdy5NdXRhdGlvbk9ic2VydmVyKQogICAgIHRlc3RGYWlsZWQo
J1RoaXMgdGVzdCByZXF1aXJlcyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKScpOwogZWxzZQog
ICAgIHN0YXJ0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2RvY3Vt
ZW50LWZyYWdtZW50LWluc2VydGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9k
b2N1bWVudC1mcmFnbWVudC1pbnNlcnRpb24uaHRtbAppbmRleCBjYWM0NmNmZjQzMjA3YTllMmJm
MGQ5ZmE2YzNjM2RlYzJhZTVmZmU0Li5iNjQ2NmVjZWI0NGQ2NGFmZjhhNmY5YzMwOGYwZDVmNjAy
NGY4NmZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2RvY3VtZW50LWZy
YWdtZW50LWluc2VydGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vZG9j
dW1lbnQtZnJhZ21lbnQtaW5zZXJ0aW9uLmh0bWwKQEAgLTIwLDcgKzIwLDcgQEAgZnVuY3Rpb24g
Y3JlYXRlT2JzZXJ2ZWREaXYoKSB7CiBmdW5jdGlvbiBjYWxsYmFjayhtdXRhdGlvbnMpIHsKICAg
ICB3aW5kb3cubXV0YXRpb25zID0gbXV0YXRpb25zOwogfQotdmFyIG9ic2VydmVyID0gbmV3IFdl
YktpdE11dGF0aW9uT2JzZXJ2ZXIoY2FsbGJhY2spOwordmFyIG9ic2VydmVyID0gbmV3IE11dGF0
aW9uT2JzZXJ2ZXIoY2FsbGJhY2spOwogCiBmdW5jdGlvbiB0ZXN0QXBwZW5kQ2hpbGQoKSB7CiAg
ICAgZGVidWcoJ1Rlc3RpbmcgYXBwZW5kQ2hpbGQnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvbXV0YXRpb24vZW5kLW9mLXRhc2stZGVsaXZlcnkuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvbXV0YXRpb24vZW5kLW9mLXRhc2stZGVsaXZlcnkuaHRtbAppbmRleCAyMmQzNjQ3OGM4OTcy
YWJhZDllN2RlNTIwOGYyOTZiMzhkMzhmOTZiLi40Yzc5YTc1NGJlMjQ0YjY0ZWE5NmU2Y2I0NTdh
ZWMwN2I2YTg5N2M0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2VuZC1v
Zi10YXNrLWRlbGl2ZXJ5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9lbmQt
b2YtdGFzay1kZWxpdmVyeS5odG1sCkBAIC0xMiw3ICsxMiw3IEBACiAgICAgdmFyIGxpc3QgPSBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCdvbCcpOwogICAgIHZhciBwID0gZG9jdW1lbnQucXVlcnlT
ZWxlY3RvcigncCcpOwogICAgIHZhciBvYnNlcnZlclJ1bnMgPSAwOwotICAgIHZhciBvYnNlcnZl
ciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKCkgeyArK29ic2VydmVyUnVu
czsgfSk7CisgICAgdmFyIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24o
KSB7ICsrb2JzZXJ2ZXJSdW5zOyB9KTsKICAgICBvYnNlcnZlci5vYnNlcnZlKGxpc3QsIHtjaGls
ZExpc3Q6IHRydWV9KTsKICAgICBsaXN0LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCBmdW5jdGlv
bigpIHsKICAgICAgICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSBvYnNlcnZlclJ1bnMgPT0g
MSA/ICdQQVNTRUQnIDogJ0ZBSUxFRCc7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211
dGF0aW9uL2ZpbGVzeXN0ZW0tY2FsbGJhY2stZGVsaXZlcnkuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvbXV0YXRpb24vZmlsZXN5c3RlbS1jYWxsYmFjay1kZWxpdmVyeS5odG1sCmluZGV4IGVmMWM1
NmExNWE4ZTgyMzA0YzgxZTU3ZjRhY2RjODhjOWRiNzU3ZjcuLmFiNTViODk5NGQzODFmZDU3NmMy
MWVlMTZkZWMwODg3MzdhOWM2MmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRp
b24vZmlsZXN5c3RlbS1jYWxsYmFjay1kZWxpdmVyeS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvbXV0YXRpb24vZmlsZXN5c3RlbS1jYWxsYmFjay1kZWxpdmVyeS5odG1sCkBAIC0xMiw3ICsx
Miw3IEBAIGZ1bmN0aW9uIHRlc3RGaWxlc3lzdGVtKCkgewogICAgIGZ1bmN0aW9uIHN0YXJ0KCkg
ewogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25P
YnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2Jz
ZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAg
fSk7CiAKQEAgLTU2LDcgKzU2LDcgQEAgZnVuY3Rpb24gdGVzdEZpbGVzeXN0ZW0oKSB7CiAKIGRl
c2NyaXB0aW9uKCdUZXN0IHRoYXQgTXV0YXRpb24gUmVjb3JkcyBhcmUgZGVsaXZlcmVkIGZvbGxv
d2luZyBGaWxlU3lzdGVtIGNhbGxiYWNrcy4nKTsKIAotaWYgKCF3aW5kb3cuV2ViS2l0TXV0YXRp
b25PYnNlcnZlciB8fCAhd2luZG93LndlYmtpdFJlcXVlc3RGaWxlU3lzdGVtKSB7CitpZiAoIXdp
bmRvdy5NdXRhdGlvbk9ic2VydmVyIHx8ICF3aW5kb3cud2Via2l0UmVxdWVzdEZpbGVTeXN0ZW0p
IHsKICAgICB0ZXN0RmFpbGVkKCdUaGlzIHRlc3QgcmVxdWlyZXMgRU5BQkxFKE1VVEFUSU9OX09C
U0VSVkVSUykgYW5kIEVOQUJMRShGSUxFX1NZU1RFTSknKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsK
IH0gZWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9pbmxpbmUtZXZl
bnQtbGlzdGVuZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vaW5saW5lLWV2ZW50
LWxpc3RlbmVyLmh0bWwKaW5kZXggMzA5NjhlMTRmYmQ2Nzk4MWRhMDVhZmIwODFkZDg5M2Q3YmJl
MDk5My4uNTdkODZiOTNiYTgyYzM5MmQ5OTQ5ZjRjYmM5YjYwNTQ3MzJiMjQwYiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9pbmxpbmUtZXZlbnQtbGlzdGVuZXIuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2lubGluZS1ldmVudC1saXN0ZW5lci5odG1s
CkBAIC0xMCw3ICsxMCw3IEBACiAKICAgICB2YXIgbGlzdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoJ29sJyk7CiAgICAgdmFyIG9ic2VydmVyUmFuID0gZmFsc2U7Ci0gICAgdmFyIG9ic2VydmVy
ID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKSB7IG9ic2VydmVyUmFuID0g
dHJ1ZTsgfSk7CisgICAgdmFyIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rp
b24oKSB7IG9ic2VydmVyUmFuID0gdHJ1ZTsgfSk7CiAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShsaXN0
LCB7Y2hpbGRMaXN0OiB0cnVlLCBjaGFyYWN0ZXJEYXRhOiB0cnVlfSk7CiAgICAgbGlzdC5mb2N1
cygpOwogICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L211dGF0aW9uL211dGF0ZS1kdXJpbmctZGVsaXZlcnkuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvbXV0YXRpb24vbXV0YXRlLWR1cmluZy1kZWxpdmVyeS5odG1sCmluZGV4IGY5MzAxYjk3
ZTVjZDE4YTEwNTIyNGNmZGFjNGZlNGY4YTM5MzdiMzYuLmM5NDlmN2U3YjAyZTAyNzhkYWY5ZGJm
N2YwNGYzYmE3ZWVmODM4NmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24v
bXV0YXRlLWR1cmluZy1kZWxpdmVyeS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRp
b24vbXV0YXRlLWR1cmluZy1kZWxpdmVyeS5odG1sCkBAIC0xNSwxNCArMTUsMTQgQEAgZnVuY3Rp
b24gZmluaXNoKCkgewogdmFyIG9yZGVyID0gW107CiB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7CiAKLXZhciBvYnNlcnZlcjEgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNl
cnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKK3ZhciBvYnNlcnZlcjEgPSBuZXcgTXV0YXRpb25P
YnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICBvcmRlci5wdXNoKDEpOwogICAgIGRp
di5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykpOwogfSk7Ci12YXIg
b2JzZXJ2ZXIyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25z
KSB7Cit2YXIgb2JzZXJ2ZXIyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRp
b25zKSB7CiAgICAgb3JkZXIucHVzaCgyKTsKIH0pOwotdmFyIG9ic2VydmVyMyA9IG5ldyBXZWJL
aXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewordmFyIG9ic2VydmVyMyA9
IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgIG9yZGVyLnB1
c2goMyk7CiB9KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9tdXRh
dGlvbi1jYWxsYmFjay1ub24tZWxlbWVudC1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9t
dXRhdGlvbi9tdXRhdGlvbi1jYWxsYmFjay1ub24tZWxlbWVudC1jcmFzaC5odG1sCmluZGV4IDc1
ZjIyZWY5NjExNmEzYTUwNzk2YzQ4YTM2ZTNlZDcwZTA4NTBiNmUuLjJlYWEwNDYxYjcxMDY4NWEw
NjNiZjcxYzhjNzhmNDM3MzU5MjZiZjEgMTAwNzU1Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0
YXRpb24vbXV0YXRpb24tY2FsbGJhY2stbm9uLWVsZW1lbnQtY3Jhc2guaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L211dGF0aW9uL211dGF0aW9uLWNhbGxiYWNrLW5vbi1lbGVtZW50LWNyYXNo
Lmh0bWwKQEAgLTksNyArOSw3IEBAIGZ1bmN0aW9uIG11dGF0aW9uQ2FsbGJhY2sobXV0YXRpb25z
LCBvYnNlcnZlcikgewogICAgIG11dGF0aW9uc1swXS5hZGRlZE5vZGVzWy0xXTsKIH0KIAotdmFy
IG11dGF0aW9uT2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihtdXRhdGlvbkNh
bGxiYWNrKTsKK3ZhciBtdXRhdGlvbk9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIobXV0
YXRpb25DYWxsYmFjayk7CiBtdXRhdGlvbk9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuYm9keSwg
e2NoaWxkTGlzdDogdHJ1ZX0pOwogZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZSgiUEFTUy4gV2ViS2l0IGRpZG4ndCBjcmFzaCIpKTsKIDwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9tdXRhdGlvbi1vYnNlcnZlci1j
b25zdHJ1Y3Rvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL211dGF0
aW9uLW9ic2VydmVyLWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dAppbmRleCAyYmViM2U4NmU3MGUy
NDg1YTc3MjAxODA3NzY0Mjg1OTE3OTI3NDlkLi41NDdmNGJkNDgzZjNmMDE5NWIwYWUwNjc0YzA2
OGVhN2RmYjU5YzdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL211dGF0
aW9uLW9ic2VydmVyLWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L211dGF0aW9uL211dGF0aW9uLW9ic2VydmVyLWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dApA
QCAtMSwxMSArMSwxMSBAQAotVGVzdCB0aGUgY29uc3RydWN0b3Igb2YgV2ViS2l0TXV0YXRpb25P
YnNlcnZlcgorVGVzdCB0aGUgY29uc3RydWN0b3Igb2YgTXV0YXRpb25PYnNlcnZlcgogCiBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyB3aW5kb3cuV2ViS2l0TXV0YXRpb25PYnNl
cnZlciBpcyBub24tbnVsbC4KLVBBU1MgdHlwZW9mIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIucHJv
dG90eXBlLm9ic2VydmUgaXMgImZ1bmN0aW9uIgotUEFTUyB0eXBlb2YgV2ViS2l0TXV0YXRpb25P
YnNlcnZlci5wcm90b3R5cGUuZGlzY29ubmVjdCBpcyAiZnVuY3Rpb24iCitQQVNTIHdpbmRvdy5N
dXRhdGlvbk9ic2VydmVyIGlzIG5vbi1udWxsLgorUEFTUyB0eXBlb2YgTXV0YXRpb25PYnNlcnZl
ci5wcm90b3R5cGUub2JzZXJ2ZSBpcyAiZnVuY3Rpb24iCitQQVNTIHR5cGVvZiBNdXRhdGlvbk9i
c2VydmVyLnByb3RvdHlwZS5kaXNjb25uZWN0IGlzICJmdW5jdGlvbiIKIFBBU1MgdHlwZW9mIG9i
c2VydmVyLm9ic2VydmUgaXMgImZ1bmN0aW9uIgogUEFTUyB0eXBlb2Ygb2JzZXJ2ZXIuZGlzY29u
bmVjdCBpcyAiZnVuY3Rpb24iCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL211dGF0aW9uLW9ic2VydmVyLWNvbnN0
cnVjdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL211dGF0aW9uLW9ic2VydmVy
LWNvbnN0cnVjdG9yLmh0bWwKaW5kZXggYWI0MGY3MGVkNzM2OGY1Mzg1YTFmNDlkODVkMzllNGE2
MGFlMzdjZC4uYjhhOTJiYjNhNmZiMmFhYTFlNDNlNGU0NDUwODUzNDAwMWZjOWJjZSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9tdXRhdGlvbi1vYnNlcnZlci1jb25zdHJ1
Y3Rvci5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vbXV0YXRpb24tb2JzZXJ2
ZXItY29uc3RydWN0b3IuaHRtbApAQCAtMTEsMTcgKzExLDE3IEBACiA8c2NyaXB0PgogCiBmdW5j
dGlvbiBydW5UZXN0KCkgewotICAgIHNob3VsZEJlTm9uTnVsbCgnd2luZG93LldlYktpdE11dGF0
aW9uT2JzZXJ2ZXInKTsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3R5cGVvZiBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyLnByb3RvdHlwZS5vYnNlcnZlJywgJ2Z1bmN0aW9uJyk7Ci0gICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCd0eXBlb2YgV2ViS2l0TXV0YXRpb25PYnNlcnZlci5wcm90b3R5
cGUuZGlzY29ubmVjdCcsICdmdW5jdGlvbicpOwotICAgIHdpbmRvdy5vYnNlcnZlciA9IG5ldyBX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeyB9KTsKKyAgICBzaG91
bGRCZU5vbk51bGwoJ3dpbmRvdy5NdXRhdGlvbk9ic2VydmVyJyk7CisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCd0eXBlb2YgTXV0YXRpb25PYnNlcnZlci5wcm90b3R5cGUub2JzZXJ2ZScsICdm
dW5jdGlvbicpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygndHlwZW9mIE11dGF0aW9uT2Jz
ZXJ2ZXIucHJvdG90eXBlLmRpc2Nvbm5lY3QnLCAnZnVuY3Rpb24nKTsKKyAgICB3aW5kb3cub2Jz
ZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsgfSk7CiAg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0eXBlb2Ygb2JzZXJ2ZXIub2JzZXJ2ZScsICdmdW5j
dGlvbicpOwogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygndHlwZW9mIG9ic2VydmVyLmRpc2Nv
bm5lY3QnLCAnZnVuY3Rpb24nKTsKIH0KIAotZGVzY3JpcHRpb24oJ1Rlc3QgdGhlIGNvbnN0cnVj
dG9yIG9mIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXInKTsKK2Rlc2NyaXB0aW9uKCdUZXN0IHRoZSBj
b25zdHJ1Y3RvciBvZiBNdXRhdGlvbk9ic2VydmVyJyk7CiAKLWlmICghd2luZG93LldlYktpdE11
dGF0aW9uT2JzZXJ2ZXIpCitpZiAoIXdpbmRvdy5NdXRhdGlvbk9ic2VydmVyKQogICAgIHRlc3RG
YWlsZWQoJ1RoaXMgdGVzdCByZXF1aXJlcyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKScpOwog
ZWxzZQogICAgIHJ1blRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRp
b24vb2JzZXJ2ZS1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0
YXRpb24vb2JzZXJ2ZS1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCAwN2E2OGMzY2Q5Zjcw
NGI4YzUxZTE1MWQ0N2RhMTQwZmM0ZjEzZGRjLi5iOTk4Yzk4OTQ3M2Y5YTdiZmFiYjk1NjM5YmI0
MDYyNmU4MGQ3MTliIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2Vy
dmUtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlv
bi9vYnNlcnZlLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotVGVzdCBX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUgb24gYXR0cmlidXRlcworVGVzdCBNdXRhdGlv
bk9ic2VydmVyLm9ic2VydmUgb24gYXR0cmlidXRlcwogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1hdHRy
aWJ1dGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtYXR0cmlidXRl
cy5odG1sCmluZGV4IDQyMWVlYWRmMWZmNzE4NjliODNhOTk5MjI4MDc2MGM4MmRmNGEyZmQuLjM2
ZWE5MGI1MTAzYTlmMTI1ZWIzNjAzZDkwMWI3NjFiNDJlYmY3YTcgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1hdHRyaWJ1dGVzLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWF0dHJpYnV0ZXMuaHRtbApAQCAtMTgsNyArMTgs
NyBAQCBmdW5jdGlvbiB0ZXN0QmFzaWMoKSB7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCdiYXInLCAnZm9vJyk7
CiAKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlv
bihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24o
bSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTgyLDcg
KzgyLDcgQEAgZnVuY3Rpb24gdGVzdFdyb25nVHlwZSgpIHsKIAogICAgICAgICBtdXRhdGlvbnMg
PSBudWxsOwogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAg
ICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7
CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewog
ICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTExMSw3ICsxMTEs
NyBAQCBmdW5jdGlvbiB0ZXN0TXVsdGlwbGVSZWdpc3RyYXRpb24oKSB7CiAJCWNhbGxzID0gMDsK
ICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKICAgICAgICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2Vy
dmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAJCQljYWxscysr
OwogICAgICAgICB9KTsKQEAgLTE1MywxMCArMTUzLDEwIEBAIGZ1bmN0aW9uIHRlc3RNdWx0aXBs
ZU9ic2VydmVycygpIHsKICAgICAgICAgZGVidWcoJ1Rlc3RpbmcgdGhhdCBtdWx0aXBsZSBvYnNl
cnZlcnMgY2FuIGJlIHJlZ2lzdGVyZWQgdG8gYSBnaXZlbiBub2RlIGFuZCBib3RoIHJlY2VpdmUg
bXV0YXRpb25zLicpOwogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwogICAgICAgICBkaXYgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2Vi
S2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3
IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0g
bTsKICAgICAgICAgfSk7Ci0gICAgICAgIG9ic2VydmVyMiA9IG5ldyBXZWJLaXRNdXRhdGlvbk9i
c2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIyID0gbmV3IE11dGF0aW9uT2Jz
ZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zMiA9IG07CiAgICAgICAg
IH0pOwogICAgICAgICBvYnNlcnZlci5vYnNlcnZlKGRpdiwgeyBhdHRyaWJ1dGVzOiB0cnVlIH0p
OwpAQCAtMTg5LDcgKzE4OSw3IEBAIGZ1bmN0aW9uIHRlc3ROYW1lc3BhY2VVUkkoKSB7CiAgICAg
ICAgIGRlYnVnKCdUZXN0aW5nIHRoYXQgImF0dHJpYnV0ZU5hbWVzcGFjZSIgdmFsdWUgaXMgZGVs
aXZlcmVkIHByb3Blcmx5LicpOwogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwogICAgICAgICBk
aXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgb2JzZXJ2ZXIgPSBu
ZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVy
ID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRp
b25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTIyMSw3ICsyMjEsNyBAQCBmdW5jdGlvbiB0ZXN0
UHJvcGVydHlBY2Nlc3MoKSB7CiAgICAgICAgIGltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2ltZycpOwogICAgICAgICBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOwogCi0gICAg
ICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewor
ICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAg
ICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBAIC0yNjIsNyArMjYyLDcg
QEAgZnVuY3Rpb24gdGVzdE9yZGVyaW5nV3J0RE9NU3VidHJlZU1vZGlmaWVkKCkgewogCiAgICAg
ICAgIHN1YkRpdiA9IGRpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KSk7CiAKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5j
dGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rp
b24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTMw
NSw3ICszMDUsNyBAQCBmdW5jdGlvbiB0ZXN0T2xkVmFsdWUoKSB7CiAgICAgICAgIGRpdiA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCdi
YXInLCAnYm9vJyk7CiAgICAgICAgIAotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRh
dGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBvYnNlcnZlciA9IG5l
dyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICAgICAgd2lu
ZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAgICAgICAgIG9ic2VydmVy
Lm9ic2VydmUoZGl2LCB7IGF0dHJpYnV0ZXM6IHRydWUsIGF0dHJpYnV0ZU9sZFZhbHVlOiB0cnVl
IH0pOwpAQCAtMzQ2LDEwICszNDYsMTAgQEAgZnVuY3Rpb24gdGVzdE9sZFZhbHVlQXNSZXF1ZXN0
ZWQoKSB7CiAgICAgICAgIG11dGF0aW9ucyA9IG51bGw7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCdmb28nLCAn
YmFyJyk7Ci0gICAgICAgIG9ic2VydmVyV2l0aE9sZFZhbHVlID0gbmV3IFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyV2l0aE9sZFZh
bHVlID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAg
ICAgICB3aW5kb3cubXV0YXRpb25zV2l0aE9sZFZhbHVlID0gbXV0YXRpb25zOwogICAgICAgICB9
KTsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlv
bihtdXRhdGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihm
dW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICAgICAgICAgIHdpbmRvdy5tdXRhdGlvbnMgPSBtdXRh
dGlvbnM7CiAgICAgICAgIH0pOwogICAgICAgICBvYnNlcnZlcldpdGhPbGRWYWx1ZS5vYnNlcnZl
KGRpdiwgeyBhdHRyaWJ1dGVzOiB0cnVlLCBhdHRyaWJ1dGVPbGRWYWx1ZTogdHJ1ZSB9KTsKQEAg
LTM4Nyw3ICszODcsNyBAQCBmdW5jdGlvbiB0ZXN0T2xkVmFsdWVVbmlvbk11bHRpcGxlT2JzZXJ2
YXRpb25zKCkgewogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsK
ICAgICAgICAgc3BhbiA9IGRpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdz
cGFuJykpOwogICAgICAgICBzcGFuLnNldEF0dHJpYnV0ZSgnZm9vJywgJ2JhcicpOwotICAgICAg
ICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9u
cykgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11
dGF0aW9ucykgewogICAgICAgICAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAg
ICAgICAgfSk7CiAgICAgICAgIG9ic2VydmVyLm9ic2VydmUoZGl2LCB7IGF0dHJpYnV0ZXM6IHRy
dWUsIGF0dHJpYnV0ZU9sZFZhbHVlOiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pOwpAQCAtNDE3LDcg
KzQxNyw3IEBAIGZ1bmN0aW9uIHRlc3RJRExBdHRyaWJ1dGUoKSB7CiAgICAgICAgIGRlYnVnKCdU
ZXN0aW5nIHNldHRpbmcgYW4gYXR0cmlidXRlIHZpYSByZWZsZWN0ZWQgSURMIGF0dHJpYnV0ZS4n
KTsKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKICAgICAgICAgZGl2ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11
dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cu
bXV0YXRpb25zID0gbXV0YXRpb25zOwogICAgICAgICB9KTsKICAgICAgICAgb2JzZXJ2ZXIub2Jz
ZXJ2ZShkaXYsIHsgYXR0cmlidXRlczogdHJ1ZSwgYXR0cmlidXRlT2xkVmFsdWU6IHRydWUgfSk7
CkBAIC00NTQsNyArNDU0LDcgQEAgZnVuY3Rpb24gdGVzdEF0dHJpYnV0ZUZpbHRlcigpIHsKICAg
ICAgICAgZGVidWcoJ1Rlc3RpbmcgdGhhdCBhdHRyaWJ1dGVGaWx0ZXIgd29ya3MgYXMgZXhwZWN0
ZWQgYW5kIG9ic2VydmVzIGNhc2Ugd2l0aCBIVE1MIGVsZW1lbnRzLicpOwogCiAgICAgICAgIG11
dGF0aW9ucyA9IG51bGw7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2Vy
dmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0p
OwogCkBAIC00OTQsNyArNDk0LDcgQEAgZnVuY3Rpb24gdGVzdEF0dHJpYnV0ZUZpbHRlclN1YnRy
ZWUoKSB7CiAgICAgICAgIGRlYnVnKCdUZXN0aW5nIHRoZSBiZWhhdmlvciBvZiBhdHRyaWJ1dGVG
aWx0ZXIgd2hlbiB0aGUgc2FtZSBvYnNlcnZlciBvYnNlcnZlcyBhdCBtdWx0aXBsZSBub2RlcyBp
biBhIHN1YnRyZWUgd2l0aCBkaWZmZXJlbnQgZmlsdGVyIG9wdGlvbnMuJyk7CiAKICAgICAgICAg
bXV0YXRpb25zID0gbnVsbDsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25P
YnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2Jz
ZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAg
fSk7CiAKQEAgLTU2NSw3ICs1NjUsNyBAQCBmdW5jdGlvbiB0ZXN0QXR0cmlidXRlRmlsdGVyTm9u
SFRNTEVsZW1lbnQoKSB7CiAgICAgICAgIGRlYnVnKCdUZXN0aW5nIHRoYXQgc2V0dGluZyBhbiBh
dHRyaWJ1dGVGaWx0ZXIgZmlsdGVycyBvdXQgbmFtZXNwYWNlZCBhdHRyaWJ1dGVzLicpOwogCiAg
ICAgICAgIG11dGF0aW9ucyA9IG51bGw7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11
dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRh
dGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAg
ICAgICAgIH0pOwogCkBAIC01OTcsNyArNTk3LDcgQEAgZnVuY3Rpb24gdGVzdEF0dHJpYnV0ZUZp
bHRlck5vbkhUTUxEb2N1bWVudCgpIHsKIAogICAgICAgICBzdmdEb2MgPSBkb2N1bWVudC5pbXBs
ZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudCgnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLCAn
c3ZnJywgJ3N2ZycpOwogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwotICAgICAgICBvYnNlcnZl
ciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2Jz
ZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICBt
dXRhdGlvbnMgPSBtOwogICAgICAgICB9KTsKIApAQCAtNjQyLDcgKzY0Miw3IEBAIGZ1bmN0aW9u
IHRlc3RTdHlsZUF0dHJpYnV0ZVByb3BlcnR5QWNjZXNzKCkgewogICAgICAgICBkZWJ1ZygnVGVz
dGluZyB0aGF0IG1vZGlmeWluZyBhbiBlbGVtZW50cyBzdHlsZSBwcm9wZXJ0eSBkaXNwYXRjaGVz
IE11dGF0aW9uIFJlY29yZHMuJyk7CiAKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKLSAgICAg
ICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7Cisg
ICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAg
ICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTY5NCw3ICs2OTQsNyBA
QCBmdW5jdGlvbiB0ZXN0U3R5bGVBdHRyaWJ1dGVQcm9wZXJ0eUFjY2Vzc09sZFZhbHVlKCkgewog
ICAgICAgICBkZWJ1ZygnVGVzdGluZyB0aGF0IG1vZGlmeWluZyBhbiBlbGVtZW50cyBzdHlsZSBw
cm9wZXJ0eSBkaXNwYXRjaGVzIE11dGF0aW9uIFJlY29yZHMgd2l0aCBjb3JyZWN0IG9sZFZhbHVl
cy4nKTsKIAogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwotICAgICAgICBvYnNlcnZlciA9IG5l
dyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIg
PSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICBtdXRhdGlv
bnMgPSBtOwogICAgICAgICB9KTsKIApAQCAtNzQ2LDcgKzc0Niw3IEBAIGZ1bmN0aW9uIHRlc3RT
dHlsZUF0dHJpYnV0ZVByb3BlcnR5QWNjZXNzSWdub3JlTm9vcCgpIHsKICAgICAgICAgZGVidWco
J1Rlc3RpbmcgdGhhdCBhIG5vLW9wIHN0eWxlIHByb3BlcnR5IG11dGF0aW9uIGRvZXMgbm90IGNy
ZWF0ZSBNdXRhdGlvbiBSZWNvcmRzLicpOwogCiAgICAgICAgIG11dGF0aW9ucyA9IG51bGw7Ci0g
ICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkg
eworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsK
ICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBAIC03NzYsNyArNzc2
LDcgQEAgZnVuY3Rpb24gdGVzdE11dGF0ZVRocm91Z2hBdHRyTm9kZVZhbHVlKCkgewogICAgICAg
ICBkZWJ1ZygnVGVzdCB0aGF0IG11dGF0aW5nIGFuIGF0dHJpYnV0ZSB0aHJvdWdoIGFuIGF0dHIg
bm9kZSBkZWxpdmVycyBtdXRhdGlvbiByZWNvcmRzJyk7CiAKICAgICAgICAgbXV0YXRpb25zID0g
bnVsbDsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5j
dGlvbihtdXRhdGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZl
cihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICAgICAgICAgIHdpbmRvdy5tdXRhdGlvbnMgPSBt
dXRhdGlvbnM7CiAgICAgICAgIH0pOwogCkBAIC04MTAsNyArODEwLDcgQEAgZnVuY3Rpb24gdGVz
dE11dGF0ZVRocm91Z2hBdHRyTm9kZUNoaWxkKCkgewogICAgICAgICBkZWJ1ZygnVGVzdCB0aGF0
IG11dGF0aW5nIGFuIGF0dHJpYnV0ZSBieSBhdHRhY2hpbmcgYSBjaGlsZCB0byBhbiBhdHRyIG5v
ZGUgZGVsaXZlcnMgbXV0YXRpb24gcmVjb3JkcycpOwogCiAgICAgICAgIG11dGF0aW9ucyA9IG51
bGw7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rp
b24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIo
ZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0
YXRpb25zOwogICAgICAgICB9KTsKIApAQCAtODQ0LDcgKzg0NCw3IEBAIGZ1bmN0aW9uIHRlc3RT
ZXRBbmRSZW1vdmVBdHRyaWJ1dGVOb2RlKCkgewogICAgICAgICBkZWJ1ZygnVGVzdCB0aGF0IG11
dGF0aW5nIHZpYSBzZXRBdHRyaWJ1dGVOb2RlIGRlbGl2ZXJzIG11dGF0aW9uIHJlY29yZHMnKTsK
IAogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJL
aXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBvYnNlcnZl
ciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICAg
ICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAKQEAgLTg5Myw3
ICs4OTMsNyBAQCBmdW5jdGlvbiB0ZXN0TWl4ZWROb2RlQW5kRWxlbWVudE9wZXJhdGlvbnMoKSB7
CiAgICAgICAgIGRlYnVnKCdUZXN0IHRoYXQgc2V0QXR0cmlidXRlIG9uIGFuIGF0dHJpYnV0ZSB3
aXRoIGFuIGV4aXN0aW5nIEF0dHIgZGVsaXZlcnMgbXV0YXRpb24gcmVjb3JkcycpOwogCiAgICAg
ICAgIG11dGF0aW9ucyA9IG51bGw7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0
aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3
IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5k
b3cubXV0YXRpb25zID0gbXV0YXRpb25zOwogICAgICAgICB9KTsKIApAQCAtOTI5LDcgKzkyOSw3
IEBAIGZ1bmN0aW9uIHRlc3ROYW1lZE5vZGVNYXBPcGVyYXRpb25zKCkgewogICAgICAgICBkZWJ1
ZygnVGVzdCB0aGF0IHNldE5hbWVkSXRlbSBhbmQgcmVtb3ZlTmFtZWRJdGVtIGRlbGl2ZXIgbXV0
YXRpb24gcmVjb3JkcycpOwogCiAgICAgICAgIG11dGF0aW9ucyA9IG51bGw7Ci0gICAgICAgIG9i
c2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7
CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRp
b25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0YXRpb25zOwogICAgICAg
ICB9KTsKIApAQCAtOTk3LDkgKzk5Nyw5IEBAIGZ1bmN0aW9uIHJ1bk5leHRUZXN0KCkgewogICAg
ICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAotZGVzY3JpcHRpb24oJ1Rlc3QgV2ViS2l0TXV0YXRp
b25PYnNlcnZlci5vYnNlcnZlIG9uIGF0dHJpYnV0ZXMnKTsKK2Rlc2NyaXB0aW9uKCdUZXN0IE11
dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSBvbiBhdHRyaWJ1dGVzJyk7CiAKLWlmICghd2luZG93Lldl
YktpdE11dGF0aW9uT2JzZXJ2ZXIpCitpZiAoIXdpbmRvdy5NdXRhdGlvbk9ic2VydmVyKQogICAg
IHRlc3RGYWlsZWQoJ1RoaXMgdGVzdCByZXF1aXJlcyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJT
KScpOwogZWxzZQogICAgIHJ1bk5leHRUZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L211dGF0aW9uL29ic2VydmUtY2hhcmFjdGVyZGF0YS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtY2hhcmFjdGVyZGF0YS1leHBlY3RlZC50eHQKaW5k
ZXggMWRmZjNiNTVkMjc2Y2MxNWE2ODM5YmVkN2Q5N2IzODJjNmY3YWRmYi4uMzFkZDU3NDA1MmMy
ZmU3NjNlODhmMjdmMGEyNTkwMDhmZGU3ZTQwYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9tdXRhdGlvbi9vYnNlcnZlLWNoYXJhY3RlcmRhdGEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1jaGFyYWN0ZXJkYXRhLWV4cGVjdGVkLnR4dApA
QCAtMSw0ICsxLDQgQEAKLVRlc3QgV2ViS2l0TXV0YXRpb25PYnNlcnZlci5vYnNlcnZlIG9uIENo
YXJhY3RlckRhdGEgbm9kZXMKK1Rlc3QgTXV0YXRpb25PYnNlcnZlci5vYnNlcnZlIG9uIENoYXJh
Y3RlckRhdGEgbm9kZXMKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtY2hhcmFjdGVyZGF0YS5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWNoYXJhY3RlcmRhdGEuaHRtbAppbmRl
eCAwMWNhZWEyMWVhNDMwNmI2ZmNmZjJlNDlmZDBlMzk3MzdhMTI2NDVjLi5kODkwNTRhNzNhODQ0
MzFmMGU5OGQ5NjliMzQyODk2YmY2YjYwNzI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L211dGF0aW9uL29ic2VydmUtY2hhcmFjdGVyZGF0YS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvbXV0YXRpb24vb2JzZXJ2ZS1jaGFyYWN0ZXJkYXRhLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAg
ZnVuY3Rpb24gdGVzdEJhc2ljKCkgewogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKTsKICAgICAgICAgZGl2LnRleHRDb250ZW50ID0gJ2Zvbyc7CiAgICAgICAgIGNo
YXJEYXRhTm9kZSA9IGRpdi5maXJzdENoaWxkOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJL
aXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcg
TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICBtdXRhdGlvbnMgPSBt
OwogICAgICAgICB9KTsKIApAQCAtODcsNyArODcsNyBAQCBmdW5jdGlvbiB0ZXN0V3JvbmdUeXBl
KCkgewogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAg
ICAgZGl2LnRleHRDb250ZW50ID0gJ2hlbGxvJzsKICAgICAgICAgY2hhckRhdGFOb2RlID0gZGl2
LmZpcnN0Q2hpbGQ7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2
ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVy
KGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwog
CkBAIC0xMTcsMTAgKzExNywxMCBAQCBmdW5jdGlvbiB0ZXN0TXVsdGlwbGVPYnNlcnZlcnMoKSB7
CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICBk
aXYudGV4dENvbnRlbnQgPSAnZm9vJzsKICAgICAgICAgY2hhckRhdGFOb2RlID0gZGl2LmZpcnN0
Q2hpbGQ7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVu
Y3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0
aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwotICAgICAg
ICBvYnNlcnZlcjIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7Cisg
ICAgICAgIG9ic2VydmVyMiA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAg
ICAgICAgICAgIG11dGF0aW9uczIgPSBtOwogICAgICAgICB9KTsKICAgICAgICAgb2JzZXJ2ZXIu
b2JzZXJ2ZShjaGFyRGF0YU5vZGUsIHtjaGFyYWN0ZXJEYXRhOiB0cnVlfSk7CkBAIC0xNjEsNyAr
MTYxLDcgQEAgZnVuY3Rpb24gdGVzdE9yZGVyaW5nV3J0RE9NU3VidHJlZU1vZGlmaWVkKCkgewog
ICAgICAgICBzdWJEaXYudGV4dENvbnRlbnQgPSAnZm9vJzsKICAgICAgICAgY2hhckRhdGFOb2Rl
ID0gc3ViRGl2LmZpcnN0Q2hpbGQ7CiAKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0
YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0
aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAg
ICAgICAgfSk7CiAKQEAgLTIwMiw3ICsyMDIsNyBAQCBmdW5jdGlvbiB0ZXN0T2xkVmFsdWUoKSB7
CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICBk
aXYudGV4dENvbnRlbnQgPSAnZm9vJzsKICAgICAgICAgY2hhckRhdGFOb2RlID0gZGl2LmZpcnN0
Q2hpbGQ7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVu
Y3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2
ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zID0g
bXV0YXRpb25zOwogICAgICAgICB9KTsKICAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShjaGFyRGF0
YU5vZGUsIHtjaGFyYWN0ZXJEYXRhOiB0cnVlLCBjaGFyYWN0ZXJEYXRhT2xkVmFsdWU6IHRydWV9
KTsKQEAgLTIzOSwxMCArMjM5LDEwIEBAIGZ1bmN0aW9uIHRlc3RPbGRWYWx1ZUFzUmVxdWVzdGVk
KCkgewogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAg
ICAgZGl2LnRleHRDb250ZW50ID0gJ2Zvbyc7CiAgICAgICAgIGNoYXJEYXRhTm9kZSA9IGRpdi5m
aXJzdENoaWxkOwotICAgICAgICBvYnNlcnZlcldpdGhPbGRWYWx1ZSA9IG5ldyBXZWJLaXRNdXRh
dGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBvYnNlcnZlcldpdGhP
bGRWYWx1ZSA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAg
ICAgICAgICAgd2luZG93Lm11dGF0aW9uc1dpdGhPbGRWYWx1ZSA9IG11dGF0aW9uczsKICAgICAg
ICAgfSk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVu
Y3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2
ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zID0g
bXV0YXRpb25zOwogICAgICAgICB9KTsKICAgICAgICAgb2JzZXJ2ZXJXaXRoT2xkVmFsdWUub2Jz
ZXJ2ZShjaGFyRGF0YU5vZGUsIHtjaGFyYWN0ZXJEYXRhOiB0cnVlLCBjaGFyYWN0ZXJEYXRhT2xk
VmFsdWU6IHRydWV9KTsKQEAgLTI3Nyw3ICsyNzcsNyBAQCBmdW5jdGlvbiB0ZXN0T2xkVmFsdWVV
bmlvbk11bHRpcGxlT2JzZXJ2YXRpb25zKCkgewogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgZGl2LnRleHRDb250ZW50ID0gJ2Zvbyc7CiAgICAg
ICAgIGNoYXJEYXRhTm9kZSA9IGRpdi5maXJzdENoaWxkOwotICAgICAgICBvYnNlcnZlciA9IG5l
dyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBv
YnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAg
ICAgICAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAgICAg
ICAgIG9ic2VydmVyLm9ic2VydmUoZGl2LCB7Y2hhcmFjdGVyRGF0YTogdHJ1ZSwgY2hhcmFjdGVy
RGF0YU9sZFZhbHVlOiB0cnVlLCBzdWJ0cmVlOiB0cnVlfSk7CkBAIC0zMTYsOSArMzE2LDkgQEAg
ZnVuY3Rpb24gcnVuTmV4dFRlc3QoKSB7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCi1k
ZXNjcmlwdGlvbignVGVzdCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUgb24gQ2hhcmFj
dGVyRGF0YSBub2RlcycpOworZGVzY3JpcHRpb24oJ1Rlc3QgTXV0YXRpb25PYnNlcnZlci5vYnNl
cnZlIG9uIENoYXJhY3RlckRhdGEgbm9kZXMnKTsKIAotaWYgKCF3aW5kb3cuV2ViS2l0TXV0YXRp
b25PYnNlcnZlcikKK2lmICghd2luZG93Lk11dGF0aW9uT2JzZXJ2ZXIpCiAgICAgdGVzdEZhaWxl
ZCgnVGhpcyB0ZXN0IHJlcXVpcmVzIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpJyk7CiBlbHNl
CiAgICAgcnVuTmV4dFRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRp
b24vb2JzZXJ2ZS1jaGlsZExpc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRh
dGlvbi9vYnNlcnZlLWNoaWxkTGlzdC1leHBlY3RlZC50eHQKaW5kZXggZDdiYjI3NjQyZjFkNDZi
ZWZiYzJkMDBmYjFhZTU5ZDhlMDc3ZDIwYS4uYzNjMWY2Y2RlNWIyMTBmYzZhMzU0MjA4ZjEwZTYz
MzQ1MjU5ZDhiOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZl
LWNoaWxkTGlzdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9v
YnNlcnZlLWNoaWxkTGlzdC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1UZXN0IFdlYktp
dE11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSBvbiBhdHRyaWJ1dGVzLgorVGVzdCBNdXRhdGlvbk9i
c2VydmVyLm9ic2VydmUgb24gYXR0cmlidXRlcy4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtY2hpbGRM
aXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtY2hpbGRMaXN0Lmh0
bWwKaW5kZXggYTNhODRkNDQzODg2NGFlNzJiMjljNjg5OGM0NDBlMDk4ZDI4ZDkxMi4uZGM2MThj
NmFmN2IwNTI5YWZmYTU4ZjFhZmQwYmQ1NmMwYTQzMWY1MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWNoaWxkTGlzdC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1jaGlsZExpc3QuaHRtbApAQCAtMjQsNyArMjQsNyBAQCBm
dW5jdGlvbiB0ZXN0QmFzaWMoKSB7CiAKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKICAgICAg
ICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIG9ic2VydmVy
ID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNl
cnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11
dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBAIC04NCw3ICs4NCw3IEBAIGZ1bmN0aW9uIHRl
c3RXcm9uZ1R5cGUoKSB7CiAKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKICAgICAgICAgZGl2
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3
IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9
IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9u
cyA9IG07CiAgICAgICAgIH0pOwogCkBAIC0xMTMsNyArMTEzLDcgQEAgZnVuY3Rpb24gdGVzdE11
bHRpcGxlUmVnaXN0cmF0aW9uKCkgewogICAgICAgICBjYWxscyA9IDA7CiAgICAgICAgIG11dGF0
aW9ucyA9IG51bGw7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9u
KG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbiht
KSB7CiAgICAgICAgICAgICBtdXRhdGlvbnMgPSBtOwogICAgICAgICAgICAgY2FsbHMrKzsKICAg
ICAgICAgfSk7CkBAIC0xNTQsMTAgKzE1NCwxMCBAQCBmdW5jdGlvbiB0ZXN0TXVsdGlwbGVPYnNl
cnZlcnMoKSB7CiAgICAgICAgIGRlYnVnKCdUZXN0aW5nIHRoYXQgbXVsdGlwbGUgb2JzZXJ2ZXJz
IGNhbiBiZSByZWdpc3RlcmVkIHRvIGEgZ2l2ZW4gbm9kZSBhbmQgYm90aCByZWNlaXZlIG11dGF0
aW9ucy4nKTsKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKICAgICAgICAgZGl2ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11
dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRh
dGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAg
ICAgICAgIH0pOwotICAgICAgICBvYnNlcnZlcjIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZl
cihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyMiA9IG5ldyBNdXRhdGlvbk9ic2VydmVy
KGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9uczIgPSBtOwogICAgICAgICB9KTsK
ICAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShkaXYsIHsgY2hpbGRMaXN0OiB0cnVlIH0pOwpAQCAt
MTkyLDcgKzE5Miw3IEBAIGZ1bmN0aW9uIHRlc3RJbm5lckhUTUxBbmRJbm5lclRleHQoKSB7CiAg
ICAgICAgIGRpdi5pbm5lckhUTUwgPSAnPHNwYW4+Rm9vPC9zcGFuPjxkaXY+QmFyPC9kaXY+JzsK
ICAgICAgICAgcmVtb3ZlZERpdjEgPSBkaXYuZmlyc3RDaGlsZDsKICAgICAgICAgcmVtb3ZlZERp
djIgPSByZW1vdmVkRGl2MS5uZXh0U2libGluZzsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2Vi
S2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3
IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0g
bTsKICAgICAgICAgfSk7CiAKQEAgLTI1MCw3ICsyNTAsNyBAQCBmdW5jdGlvbiB0ZXN0UmVwbGFj
ZUNoaWxkKCkgewogICAgICAgICBkaXYuaW5uZXJIVE1MID0gJzxzcGFuPkZvbzwvc3Bhbj48ZGl2
PkJhcjwvZGl2Pic7CiAgICAgICAgIHJlbW92ZWREaXYxID0gZGl2LmZpcnN0Q2hpbGQ7CiAKLSAg
ICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7
CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewog
ICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTMxNSw3ICszMTUs
NyBAQCBmdW5jdGlvbiB0ZXN0SW5zZXJ0QmVmb3JlKCkgewogICAgICAgICBhZGRlZERpdjEgPSBm
cmFnbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7CiAgICAg
ICAgIGFkZGVkRGl2MiA9IGZyYWdtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpKTsKIAotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZl
cihmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICBtdXRhdGlvbnMgPSBtOwogICAgICAgICB9KTsK
IApAQCAtMzU2LDcgKzM1Niw3IEBAIGZ1bmN0aW9uIHRlc3RBcHBlbmRDaGlsZCgpIHsKICAgICAg
ICAgYWRkZWREaXYxID0gZnJhZ21lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2JykpOwogICAgICAgICBhZGRlZERpdjIgPSBmcmFnbWVudC5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7CiAKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2Vi
S2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3
IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0g
bTsKICAgICAgICAgfSk7CiAKQEAgLTM4Nyw3ICszODcsNyBAQCBmdW5jdGlvbiB0ZXN0SW5uZXJI
VE1MRW1wdHkoKSB7CiAKICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2RpdicpOwogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwotICAgICAgICBvYnNlcnZlciA9IG5l
dyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBv
YnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAg
ICAgICAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAgICAg
ICAgIG9ic2VydmVyLm9ic2VydmUoZGl2LCB7Y2hpbGRMaXN0OiB0cnVlfSk7CkBAIC00MTQsOSAr
NDE0LDkgQEAgZnVuY3Rpb24gcnVuTmV4dFRlc3QoKSB7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgp
OwogfQogCi1kZXNjcmlwdGlvbignVGVzdCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUg
b24gYXR0cmlidXRlcy4nKTsKK2Rlc2NyaXB0aW9uKCdUZXN0IE11dGF0aW9uT2JzZXJ2ZXIub2Jz
ZXJ2ZSBvbiBhdHRyaWJ1dGVzLicpOwogCi1pZiAoIXdpbmRvdy5XZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyKQoraWYgKCF3aW5kb3cuTXV0YXRpb25PYnNlcnZlcikKICAgICB0ZXN0RmFpbGVkKCdUaGlz
IHRlc3QgcmVxdWlyZXMgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUyknKTsKIGVsc2UKICAgICBy
dW5OZXh0VGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNl
cnZlLWV4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9v
YnNlcnZlLWV4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0CmluZGV4IGFkNjI1ZDFmZDMxNTFmNzMwNmVh
OGQ0Mjg0MDExYTJiYWE2YjI3YzkuLmRjNTNjYjJhZmQ4M2MyZGNkMWQ5MzVkZGU5M2FjNmYxOTdi
OTZkM2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1leGNl
cHRpb25zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2Vy
dmUtZXhjZXB0aW9ucy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1UZXN0IHRoYXQgV2Vi
S2l0TXV0YXRpb25PYnNlcnZlci5vYnNlcnZlIHRocm93cyBleGNlcHRpb25zIGFwcHJvcHJpYXRl
bHkKK1Rlc3QgdGhhdCBNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUgdGhyb3dzIGV4Y2VwdGlvbnMg
YXBwcm9wcmlhdGVseQogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1leGNlcHRpb25zLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtZXhjZXB0aW9ucy5odG1sCmluZGV4IGQ0NjU3
YjZkZDdjMmUzMzEyODNlMjg5MjVjZGY5MGM1ZGY0NjIwNTkuLjc2NjE1NDdiMjc5ZmZmY2JjODMy
N2Q1NmJhMTk2ZmViM2ExYjViZWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRp
b24vb2JzZXJ2ZS1leGNlcHRpb25zLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlv
bi9vYnNlcnZlLWV4Y2VwdGlvbnMuaHRtbApAQCAtMTEsNyArMTEsNyBAQAogPHNjcmlwdD4KIAog
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICB3aW5kb3cub2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0
YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsgfSk7CisgICAgd2luZG93Lm9ic2Vy
dmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7IH0pOwogICAg
IHNob3VsZFRocm93KCdvYnNlcnZlci5vYnNlcnZlKCknKTsKICAgICBzaG91bGRUaHJvdygnb2Jz
ZXJ2ZXIub2JzZXJ2ZShudWxsKScpOwogICAgIHNob3VsZFRocm93KCdvYnNlcnZlci5vYnNlcnZl
KHVuZGVmaW5lZCknKTsKQEAgLTI2LDkgKzI2LDkgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAg
ICBzaG91bGRUaHJvdygnb2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5ib2R5LCB7Y2hhcmFjdGVy
RGF0YTogdHJ1ZSwgYXR0cmlidXRlRmlsdGVyOiBbImlkIl19KScpOwogfQogCi1kZXNjcmlwdGlv
bignVGVzdCB0aGF0IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSB0aHJvd3MgZXhjZXB0
aW9ucyBhcHByb3ByaWF0ZWx5Jyk7CitkZXNjcmlwdGlvbignVGVzdCB0aGF0IE11dGF0aW9uT2Jz
ZXJ2ZXIub2JzZXJ2ZSB0aHJvd3MgZXhjZXB0aW9ucyBhcHByb3ByaWF0ZWx5Jyk7CiAKLWlmICgh
d2luZG93LldlYktpdE11dGF0aW9uT2JzZXJ2ZXIpCitpZiAoIXdpbmRvdy5NdXRhdGlvbk9ic2Vy
dmVyKQogICAgIHRlc3RGYWlsZWQoJ1RoaXMgdGVzdCByZXF1aXJlcyBFTkFCTEUoTVVUQVRJT05f
T0JTRVJWRVJTKScpOwogZWxzZQogICAgIHJ1blRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1zdWJ0cmVlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1zdWJ0cmVlLWV4cGVjdGVkLnR4dAppbmRleCBiODk0
ZGNkYTFiM2Y2ZDJkMzQ5YmQ3YzRhOWE0Y2QwNjlhNGU2OWVkLi42NTNjN2E0ODIyMWM5M2UxOWQ3
NjI4YWE2Y2Y4Njg5NGYyOTEyMjAwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0
aW9uL29ic2VydmUtc3VidHJlZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9t
dXRhdGlvbi9vYnNlcnZlLXN1YnRyZWUtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotVGVz
dCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUgb24gYSBzdWJ0cmVlCitUZXN0IE11dGF0
aW9uT2JzZXJ2ZXIub2JzZXJ2ZSBvbiBhIHN1YnRyZWUKIAogT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtc3Vi
dHJlZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLXN1YnRyZWUuaHRt
bAppbmRleCAzN2U0MDI4NWUyYjhiNzFkMjIyNmZkMzYxODFkYTRiODUzYTIwNTcyLi45NTUxOTQ3
YTRjMzI4ZjVhODM0ODRjNjRmZTk0NTNjYTAyZDY1NmEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L211dGF0aW9uL29ic2VydmUtc3VidHJlZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvbXV0YXRpb24vb2JzZXJ2ZS1zdWJ0cmVlLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAgZnVuY3Rp
b24gdGVzdEJhc2ljKCkgewogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKTsKICAgICAgICAgc3ViRGl2ID0gZGl2LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2RpdicpKTsKICAgICAgICAgc3ViRGl2LmlubmVySFRNTCA9ICdoZWxsbywgd29ybGQn
OwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9u
KG11dGF0aW9ucykgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1
bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0
aW9uczsKICAgICAgICAgfSk7CiAKQEAgLTY2LDEwICs2NiwxMCBAQCBmdW5jdGlvbiB0ZXN0TXVs
dGlwbGVPYnNlcnZlcnMoKSB7CiAgICAgICAgIG11dGF0aW9uczIgPSBudWxsOwogICAgICAgICBk
aXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgc3ViRGl2ID0gZGl2
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsKLSAgICAgICAgb2Jz
ZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsK
KyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlv
bnMpIHsKICAgICAgICAgICAgIHdpbmRvdy5tdXRhdGlvbnMgPSBtdXRhdGlvbnM7CiAgICAgICAg
IH0pOwotICAgICAgICBvYnNlcnZlcjIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5j
dGlvbihtdXRhdGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIyID0gbmV3IE11dGF0aW9uT2JzZXJ2
ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zMiA9
IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAKQEAgLTEwOSw3ICsxMDksNyBAQCBmdW5jdGlvbiB0
ZXN0TXVsdGlwbGVPYnNlcnZhdGlvbnMoKSB7CiAgICAgICAgIGNhbGxzID0gMDsKICAgICAgICAg
ZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgIHN1YkRpdiA9IGRp
di5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7Ci0gICAgICAgIG9i
c2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7
CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRp
b25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0YXRpb25zOwogICAgICAg
ICAgICAgKytjYWxsczsKICAgICAgICAgfSk7CkBAIC0xNDUsNyArMTQ1LDcgQEAgZnVuY3Rpb24g
dGVzdFRyYW5zaWVudERldGFjaGVkQmFzaWMoKSB7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICBzdWJEaXYgPSBkaXYuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpOwogICAgICAgICBzdWJEaXYuaW5uZXJIVE1MID0g
J2hlbGxvLCB3b3JsZCc7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0
aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0
YXRpb25zID0gbXV0YXRpb25zOwogICAgICAgICB9KTsKIApAQCAtMjMwLDcgKzIzMCw3IEBAIGZ1
bmN0aW9uIHRlc3RUcmFuc2llbnREZXRhY2hlZERldGFpbGVkKCkgewogICAgICAgICBzdWJEaXYy
LmlubmVySFRNTCA9ICdoZWxsbywgd29ybGQnOwogICAgICAgICBzdWJEaXYzID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0
YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBu
ZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICAgICAgICAgIHdp
bmRvdy5tdXRhdGlvbnMgPSBtdXRhdGlvbnM7CiAgICAgICAgIH0pOwogCkBAIC0yOTYsOSArMjk2
LDkgQEAgZnVuY3Rpb24gcnVuTmV4dFRlc3QoKSB7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwog
fQogCi1kZXNjcmlwdGlvbignVGVzdCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUgb24g
YSBzdWJ0cmVlJyk7CitkZXNjcmlwdGlvbignVGVzdCBNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUg
b24gYSBzdWJ0cmVlJyk7CiAKLWlmICghd2luZG93LldlYktpdE11dGF0aW9uT2JzZXJ2ZXIpCitp
ZiAoIXdpbmRvdy5NdXRhdGlvbk9ic2VydmVyKQogICAgIHRlc3RGYWlsZWQoJ1RoaXMgdGVzdCBy
ZXF1aXJlcyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKScpOwogZWxzZQogICAgIHJ1bk5leHRU
ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL3NoYWRvdy1kb20u
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vc2hhZG93LWRvbS5odG1sCmluZGV4IDY2
Yzc5ZWFjMDBmOTU5NjBhMDQzMWNlMmIyOTUyMmNhMDc1NmJmYWIuLjczMTdkN2E3NTkwOTBhNjUx
MzI1MTFjY2JmNGY1MTgwYTA0NTVkZTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0
YXRpb24vc2hhZG93LWRvbS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vc2hh
ZG93LWRvbS5odG1sCkBAIC0xNCw3ICsxNCw3IEBAIGZ1bmN0aW9uIGRvVGVzdCgpIHsKICAgICB9
CiAKICAgICB2YXIgc2hhZG93Um9vdCA9IGludGVybmFscy5zaGFkb3dSb290KGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoJ2lucHV0JykpOwotICAgIHZhciBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRh
dGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgIHZhciBvYnNlcnZlciA9IG5l
dyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICB3aW5kb3cu
bXV0YXRpb25zID0gbXV0YXRpb25zOwogICAgIH0pOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L211dGF0aW9uL3Rha2VSZWNvcmRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvbXV0YXRpb24vdGFrZVJlY29yZHMtZXhwZWN0ZWQudHh0CmluZGV4IGFjNjQ0MjZhYjEzYWUy
ZTFjOTAzOGRmYjYzYjc5MTJkM2EwNjVlZjcuLjlmMzMyNjE0ZjQzNmUxYzIxMWY4YTUyZDY3NzA2
NzI4YWNhMTU0ZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vdGFrZVJl
Y29yZHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vdGFrZVJl
Y29yZHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotVGVzdGluZyBXZWJLaXRNdXRhdGlv
bk9ic2VydmVyLnRha2VSZWNvcmRzCitUZXN0aW5nIE11dGF0aW9uT2JzZXJ2ZXIudGFrZVJlY29y
ZHMKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L211dGF0aW9uL3Rha2VSZWNvcmRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0
aW9uL3Rha2VSZWNvcmRzLmh0bWwKaW5kZXggMDM5YTMyZmJkOTExODBiYThkNjZjMTdkYjg1NzJj
M2U0NTQ0Y2JjMi4uNjM0MTgwYTU5Y2U1NGRkM2M2NzUyZTllYWNiZjM3ZDA5Y2UyMjAwYiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi90YWtlUmVjb3Jkcy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vdGFrZVJlY29yZHMuaHRtbApAQCAtMjMsNyArMjMs
NyBAQCBmdW5jdGlvbiB0ZXN0QmFzaWMoKSB7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICBzdWJEaXYgPSBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2JykpOwogICAgICAgICBzdWJEaXYuaW5uZXJIVE1MID0gJ2hl
bGxvLCB3b3JsZCc7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2
ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9u
T2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRp
b25zID0gbXV0YXRpb25zOwogICAgICAgICB9KTsKIApAQCAtNzMsOSArNzMsOSBAQCBmdW5jdGlv
biBydW5OZXh0VGVzdCgpIHsKICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKLWRlc2NyaXB0
aW9uKCdUZXN0aW5nIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIudGFrZVJlY29yZHMnKTsKK2Rlc2Ny
aXB0aW9uKCdUZXN0aW5nIE11dGF0aW9uT2JzZXJ2ZXIudGFrZVJlY29yZHMnKTsKIAotaWYgKCF3
aW5kb3cuV2ViS2l0TXV0YXRpb25PYnNlcnZlcikKK2lmICghd2luZG93Lk11dGF0aW9uT2JzZXJ2
ZXIpCiAgICAgdGVzdEZhaWxlZCgnVGhpcyB0ZXN0IHJlcXVpcmVzIEVOQUJMRShNVVRBVElPTl9P
QlNFUlZFUlMpJyk7CiBlbHNlCiAgICAgcnVuTmV4dFRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvbXV0YXRpb24vdHJhbnNpZW50LWdjLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L211dGF0aW9uL3RyYW5zaWVudC1nYy1jcmFzaC5odG1sCmluZGV4IDZjMTM2NDJkNzY4
YTExODI5YmJmOGFiNTlhMWVmYzEyMDllYWY1MTMuLjZjZTZlYjhjM2FmZWNhNDZhYzI1MjI1ZGIy
ZDE1YmYwNjkwMTQ1YjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vdHJh
bnNpZW50LWdjLWNyYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi90cmFu
c2llbnQtZ2MtY3Jhc2guaHRtbApAQCAtNiw3ICs2LDcgQEAgZGVzY3JpcHRpb24oJ0NsZWFyaW5n
IHRyYW5zaWVudCBvYnNlcnZlcnMgYWZ0ZXIgb2JzZXJ2YXRpb24gbm9kZSBpcyBHQ2VkIHNob3Vs
ZAogZnVuY3Rpb24gY2FsbGJhY2sobXV0YXRpb25zKSB7CiAgICAgd2luZG93Lm11dGF0aW9ucyA9
IG11dGF0aW9uczsKIH0KLXZhciBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVy
KGNhbGxiYWNrKTsKK3ZhciBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGNhbGxiYWNr
KTsKIAogdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogdmFyIHNwYW4g
PSBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL1NraXBwZWQKaW5kZXggYzg3MDkxNWRiM2IwMTE0NGIyNDQxMWE0YTIyODE1YmM3
NDJiMWE3Ny4uNDQ1YzI1OWM3ZjY3YzcyZjk0MDU5YzJiNTdjMmZiODVlZDNiZWYyYyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL1NraXBwZWQKQEAgLTMzNiw3ICszMzYsNiBAQCBodHRwL3Rlc3RzL3NlY3Vy
aXR5L2ZpbGVzeXN0ZW0taWZyYW1lLWZyb20tcmVtb3RlLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJp
dHkvbWl4ZWRDb250ZW50L2ZpbGVzeXN0ZW0tdXJsLWluLWlmcmFtZS5odG1sCiBodHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oeWJpL3NlbmQtZmlsZS1ibG9iLmh0bWwKIGh0dHAvdGVzdHMvd2Vi
c29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1maWxlLWJsb2ItZmFpbC5odG1sCi1mYXN0L211dGF0aW9u
L2ZpbGVzeXN0ZW0tY2FsbGJhY2stZGVsaXZlcnkuaHRtbAogCiAjIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjIyMwogIyBUaGUgV2ViS2l0IHBsdWdpbiBpbXBsZW1l
bnRhdGlvbiBkb2VzIG5vdCBzdXBwb3J0IGlmcmFtZSBzaGltcy4KQEAgLTU4NCw5ICs1ODMsOSBA
QCBtZWRpYS9XM0MvdmlkZW8vY2FuUGxheVR5cGUvY2FuUGxheVR5cGVfdHdvX2ltcGxpZXNfb25l
XzQuaHRtbAogbWVkaWEvVzNDL3ZpZGVvL2NhblBsYXlUeXBlL2NhblBsYXlUeXBlX3R3b19pbXBs
aWVzX29uZV81Lmh0bWwKIG1lZGlhL1czQy92aWRlby9jYW5QbGF5VHlwZS9jYW5QbGF5VHlwZV90
d29faW1wbGllc19vbmVfNi5odG1sCiAKLSMgRmFpbHMgYmVjYXVzZSBNdXRhdGlvbk9ic2VydmVy
cyBhcmUgbm90IG5vdGlmaWVkIGF0IGVuZC1vZi10YXNrCisjIE11dGF0aW9uT2JzZXJ2ZXJzIGFy
ZSBub3QgZW5hYmxlZCBkdWUgdG8KICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc4MjkwCi1mYXN0L211dGF0aW9uL2VuZC1vZi10YXNrLWRlbGl2ZXJ5Lmh0bWwKK2Zh
c3QvbXV0YXRpb24KIAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzIwMTAKICMgTmVlZHMgUGFnZUNsaWVudHM6OnZpYnJhdGlvbkNsaWVudCgpIGltcGxlbWVudGF0
aW9uLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCBlODkyMjIxMDJkYjM0ZjU1YWJhZWVl
NTk5NTg2OGY4YzlhNWRmNDk0Li4xYmM0NmY0YTIzOGQxMDYyYzFlOTE0YWJhYWY3NzVkZTNiNWI0
ZDhmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtMTMxMiw3ICsxMzEyLDYgQEAgaHR0
cC90ZXN0cy9pbnNwZWN0b3IvZmlsZXN5c3RlbQogaHR0cC90ZXN0cy9zZWN1cml0eS9maWxlc3lz
dGVtLWlmcmFtZS1mcm9tLXJlbW90ZS5odG1sCiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
eWJpL3NlbmQtZmlsZS1ibG9iLmh0bWwKIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
c2VuZC1maWxlLWJsb2ItZmFpbC5odG1sCi1mYXN0L211dGF0aW9uL2ZpbGVzeXN0ZW0tY2FsbGJh
Y2stZGVsaXZlcnkuaHRtbAogCiAjIExheW91dFRlc3RDb250cm9sbGVyOjpub2Rlc0Zyb21SZWN0
IGlzIG5vdCBzdXBwb3J0ZWQuCiBmYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWJhc2ljLmh0bWwKQEAg
LTE1ODQsOSArMTU4Myw5IEBAIHBvaW50ZXItbG9jay8KICMgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTcyNDM1CiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNz
YWdlLWFycmF5cy5odG1sCiAKLSMgRmFpbHMgYmVjYXVzZSBNdXRhdGlvbk9ic2VydmVycyBhcmUg
bm90IG5vdGlmaWVkIGF0IGVuZC1vZi10YXNrCisjIE11dGF0aW9uT2JzZXJ2ZXJzIGFyZSBub3Qg
ZW5hYmxlZCBkdWUgdG8KICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc4MjkwCi1mYXN0L211dGF0aW9uL2VuZC1vZi10YXNrLWRlbGl2ZXJ5Lmh0bWwKK2Zhc3QvbXV0
YXRpb24KIAogIyBSZWJhc2VsaW5lIGFmdGVyIGJ1ZyA3MTcwNS4gQWxsIGRpZmZlcmVuY2VzIGFy
ZSBkdWUgdG8gdGhlIGZhY3QgdGhhdCB0YWJsZSBjYXB0aW9ucyBub3cKICMgZXhwYW5kIHRvIHRo
ZSBmdWxsIHdpZHRoIG9mIHRoZSB0YWJsZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dpbmNhaXJvL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9Ta2lw
cGVkCmluZGV4IGYwNTc4MzEzOWNlY2M1NDY1M2Q3MmYyYjNlMzMwMmJmMzM4MzRjYmYuLmM2MGVj
Njc4MTJlYTFkYWEwZDhlNzIzNDMyYmQwNWIzMGY5NmQ1OTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbmNhaXJvL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luY2Fpcm8vU2tpcHBlZApAQCAtMTgxMCw3ICsxODEwLDYgQEAgaHR0cC90ZXN0cy9pbnNwZWN0
b3IvZmlsZXN5c3RlbQogaHR0cC90ZXN0cy9zZWN1cml0eS9maWxlc3lzdGVtLWlmcmFtZS1mcm9t
LXJlbW90ZS5odG1sCiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3NlbmQtZmlsZS1i
bG9iLmh0bWwKIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1maWxlLWJsb2It
ZmFpbC5odG1sCi1mYXN0L211dGF0aW9uL2ZpbGVzeXN0ZW0tY2FsbGJhY2stZGVsaXZlcnkuaHRt
bAogZmFzdC9mb3Jtcy9maWxlL2lucHV0LWZpbGUtZW50cmllcy5odG1sCiAKICMgTGF5b3V0VGVz
dENvbnRyb2xsZXI6Om5vZGVzRnJvbVJlY3QgaXMgbm90IHN1cHBvcnRlZC4KQEAgLTIwODUsOSAr
MjA4NCw5IEBAIHBvaW50ZXItbG9jay8KICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTcyNDM1CiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWFycmF5
cy5odG1sCiAKLSMgRmFpbHMgYmVjYXVzZSBNdXRhdGlvbk9ic2VydmVycyBhcmUgbm90IG5vdGlm
aWVkIGF0IGVuZC1vZi10YXNrCisjIE11dGF0aW9uT2JzZXJ2ZXJzIGFyZSBub3QgZW5hYmxlZCBk
dWUgdG8KICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MjkwCi1m
YXN0L211dGF0aW9uL2VuZC1vZi10YXNrLWRlbGl2ZXJ5Lmh0bWwKK2Zhc3QvbXV0YXRpb24KIAog
I1ZpYnJhdGlvbiBBUEkgaXMgbm90IGltcGxlbWVudGVkLgogZmFzdC9kb20vbmF2aWdhdG9yLXZp
YnJhdGlvbi5odG1sCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nIGIvV2Vi
S2l0TGlicmFyaWVzL0NoYW5nZUxvZwppbmRleCAyYTQwYjFlYjJlZjA3ZDNjMzE5MzI1OTE3M2Jh
ODRhYjgyODhjNDMxLi40MGFhY2QzOGQ2ZTkyNjk1OWQ1ZDFmMGYwNWY1OWJmZWVhZDlmZDJjIDEw
MDY0NAotLS0gYS9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdExpYnJhcmll
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wNi0yNiAgQWRhbSBLbGVpbiAgPGFk
YW1rQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZW1vdmUgdmVuZG9yIHByZWZpeCBmcm9tIERP
TSBNdXRhdGlvbk9ic2VydmVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODkyMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHdpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzLnZzcHJvcHM6Cisg
ICAgICAgICogd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXNDYWlyby52c3Byb3BzOgor
CiAyMDEyLTA2LTI4ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1Ad2Via2l0Lm9yZz4KIAogICAg
ICAgICBbV2luQ2Fpcm9dIFVucmV2aWV3ZWQgYnVpbGQgY29ycmVjdGlvbi4gIEFkZCB0d28gbWlz
c2luZyBtYWNybwpkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3Bz
L0ZlYXR1cmVEZWZpbmVzLnZzcHJvcHMgYi9XZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJv
cHMvRmVhdHVyZURlZmluZXMudnNwcm9wcwppbmRleCBiOTAxNDEwNWZhYjg5MmE3NGE0N2RlZDlh
NWU2MTY5Mzg3MmMxZDE2Li5hYjMxNjUxOWJiZjI1Mzk0OTI3ODdhZDAwYzQ3NGU1MTEzZjU0NTkx
IDEwMDY0NAotLS0gYS9XZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURl
ZmluZXMudnNwcm9wcworKysgYi9XZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVh
dHVyZURlZmluZXMudnNwcm9wcwpAQCAtMjQ4LDcgKzI0OCw3IEBACiAJLz4KICAgPFVzZXJNYWNy
bwogCQlOYW1lPSJFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTIgotCQlWYWx1ZT0iRU5BQkxFX01V
VEFUSU9OX09CU0VSVkVSUyIKKwkJVmFsdWU9IiIKIAkJUGVyZm9ybUVudmlyb25tZW50U2V0PSJ0
cnVlIgogCS8+CiAgIDxVc2VyTWFjcm8KZGlmZiAtLWdpdCBhL1dlYktpdExpYnJhcmllcy93aW4v
dG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lc0NhaXJvLnZzcHJvcHMgYi9XZWJLaXRMaWJyYXJp
ZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXNDYWlyby52c3Byb3BzCmluZGV4IDdl
YTgyYTVlNzQ5NWQ3YWNiMGMxOTZhNTUxNjUyYzcxMmQ0Y2FjMzEuLjAwNTA5YjNhMWRhMmJjMmVm
OWQ1MTk2ZGQ2NTRlMTY1NjIwMmNlMzYgMTAwNjQ0Ci0tLSBhL1dlYktpdExpYnJhcmllcy93aW4v
dG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lc0NhaXJvLnZzcHJvcHMKKysrIGIvV2ViS2l0TGli
cmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzQ2Fpcm8udnNwcm9wcwpAQCAt
MjQ4LDcgKzI0OCw3IEBACiAJLz4KICAgPFVzZXJNYWNybwogCQlOYW1lPSJFTkFCTEVfTVVUQVRJ
T05fT0JTRVJWRVJTIgotCQlWYWx1ZT0iRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUyIKKwkJVmFs
dWU9IiIKIAkJUGVyZm9ybUVudmlyb25tZW50U2V0PSJ0cnVlIgogCS8+CiAgIDxVc2VyTWFjcm8K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151331</attachid>
            <date>2012-07-09 15:21:33 -0700</date>
            <delta_ts>2013-01-08 14:42:05 -0800</delta_ts>
            <desc>Patch slimmed down</desc>
            <filename>bug-89231-20120709152132.patch</filename>
            <type>text/plain</type>
            <size>57875</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
MjY3MWQyZjFlNTkzMzRmN2FlZmE2YmQzYzk4MzdmMjAwYjYwNWQwLi4xZDlhYWRkNzQxMTA5YTIx
MzgxMDYwY2M1NjFhOTYxMGZmNTk1ZjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxMi0wNy0wOSAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZW1vdmUgdmVuZG9yIHByZWZpeCBmcm9tIERPTSBNdXRhdGlvbk9ic2VydmVy
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkyMzEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZp
Z3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDEyLTA3LTA5ICBTaGVyaWZm
IEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMTIyMTA3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGVkY2Y5NTY4MDllMjgyYmQ4NjA1
MzZiOWQwZTJiYjlkNGFlNzA0N2MuLmQ2OTk0NDJkNzNiNGU4YTMzM2RiNWM0ZGNkYmZmZjIxZDcw
NjhiODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyOCBAQAogMjAxMi0wNy0wOSAgQWRhbSBLbGVp
biAgPGFkYW1rQGNocm9taXVtLm9yZz4KIAorICAgICAgICBSZW1vdmUgdmVuZG9yIHByZWZpeCBm
cm9tIERPTSBNdXRhdGlvbk9ic2VydmVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODkyMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBNdXRhdGlvbk9ic2VydmVycyBoYXZlIGJlZW4gc3BlY2lmaWVkIGFz
IHBhcnQgb2YgRE9NNCBmb3Igc29tZSB0aW1lIG5vdywKKyAgICAgICAgYW5kIE1vemlsbGEgaXMg
c2hpcHBpbmcgYSBjb21wYXRpYmxlIGltcGxlbWVudGF0aW9uIHdpdGhvdXQgYSB2ZW5kb3IKKyAg
ICAgICAgcHJlZml4LiBUaGlzIGNoYW5nZSBleHBvc2VzIHRoZSBNdXRhdGlvbk9ic2VydmVyIGNv
bnN0cnVjdG9yIG9uIHRoZQorICAgICAgICBXaW5kb3cgb2JqZWN0LiBBbGwgcmVmZXJlbmNlcyB0
byB0aGUgb2xkIHByZWZpeGVkIG5hbWUgaGF2ZSBiZWVuCisgICAgICAgIHJlbW92ZWQsIHNhdmUg
Zm9yIGEgYmFja3dhcmRzLWNvbXBhdGliaWxpdHkgcmVmZXJlbmNlIGluIERPTVdpbmRvdy5pZGwu
CisKKyAgICAgICAgU2luY2Ugbm90IGFsbCBwb3J0cyBmdWxseSBpbXBsZW1lbnQgdGhlIHNwZWMs
IHRoaXMgY2hhbmdlIGFsc28gbmFycm93cworICAgICAgICB0aGUgcG9ydHMgZm9yIHdoaWNoIEVO
QUJMRV9NVVRBVElPTl9PQlNFUlZFUlMgaXMgb24gYnkgZGVmYXVsdCB0bworICAgICAgICBDaHJv
bWl1bSwgRWZsLCBhbmQgR3RrICh0aG9zZSBzdXBwb3J0IGVuZC1vZi10YXNrIGRlbGl2ZXJ5IGlu
CisgICAgICAgIERSVCwgc2VlIGh0dHA6Ly93ZWJraXQub3JnL2IvNzgyOTApLgorCisgICAgICAg
ICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgICogcGFn
ZS9ET01XaW5kb3cuaWRsOiBFeHBvc2UgIk11dGF0aW9uT2JzZXJ2ZXIiIGFzIGEgbmFtZSBmb3IK
KyAgICAgICAgTXV0YXRpb25PYnNlcnZlckNvbnN0cnVjdG9yLCBsZWF2aW5nICJXZWJLaXRNdXRh
dGlvbk9ic2VydmVyIgorICAgICAgICBpbiBwbGFjZSB0ZW1wb3JhcmlseSBmb3IgY29tcGF0Lgor
CisyMDEyLTA3LTA5ICBBZGFtIEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCiAgICAgICAg
IFJlbmFtZSBXZWJDb3JlOjpXZWJLaXRNdXRhdGlvbk9ic2VydmVyIHRvIFdlYkNvcmU6Ok11dGF0
aW9uT2JzZXJ2ZXIKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTkwODEwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA1MzYwZjUyYmVlZmJiYWIyZTQ2OGIzY2E4
Njg1OWQ2MTIxZWFkMmM1Li5lNWY4MWM4OTVkNWY3ZmFmYmZjODhjYzk3YjU3MTAyMWIyZTY5OTNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTItMDctMDkgIEFkYW0gS2xl
aW4gIDxhZGFta0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVtb3ZlIHZlbmRvciBwcmVmaXgg
ZnJvbSBET00gTXV0YXRpb25PYnNlcnZlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg5MjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZzoKKwogMjAxMi0wNy0wOSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEyMjEwNy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpp
bmRleCBkMDRiZWQzZTQyY2I3YWE4MmUwNTgyYjUyMmUzOGY0NjIyYzJlYTA2Li4wZmM5NmRiNDky
YjUwZDBmZTdmMGFiOGFmNThiOTIxNWZlMmI3ZDJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMTItMDctMDkgIEFkYW0gS2xlaW4gIDxhZGFta0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmVtb3ZlIHZlbmRvciBwcmVmaXggZnJvbSBET00gTXV0YXRpb25PYnNlcnZlcnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5MjMxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxMi0wNy0wOSAgQ2hyaXN0b3BoZSBEdW1l
eiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgogCiAgICAgICAgIFtXSzJdIEFkZCBtaXNz
aW5nIEJhdHRlcnkgU3RhdHVzIEFQSSBpbnRlZ3JhdGlvbiB0byBXZWJDb250ZXh0IGFuZCBXZWJQ
YWdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVh
dHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggYTVhMzRhNDdjMmRjMzhiNTkzZWM3NjJh
YTdjYTNhNGU3M2M1NTU0Mi4uNzY4ZTRhMDZkZDhiMzgyNTEwNzAzN2Y0Y2U3NzhkN2U2ZThlM2Rj
ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0
aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtOTgsNyArOTgsNyBAQCBFTkFCTEVfTUVE
SUFfU1RBVElTVElDUyA9IDsKIEVOQUJMRV9NRVRFUl9UQUcgPSBFTkFCTEVfTUVURVJfVEFHOwog
RU5BQkxFX01IVE1MID0gOwogRU5BQkxFX01JQ1JPREFUQSA9IDsKLUVOQUJMRV9NVVRBVElPTl9P
QlNFUlZFUlMgPSBFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTOworRU5BQkxFX01VVEFUSU9OX09C
U0VSVkVSUyA9IDsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9O
U18kKFJFQUxfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX05PVElGSUNBVElPTlNfbWFjb3N4ID0g
JChFTkFCTEVfTk9USUZJQ0FUSU9OU19tYWNvc3hfJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9N
QUpPUikpOwogRU5BQkxFX05PVElGSUNBVElPTlNfbWFjb3N4XzEwNzAgPSA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBi
L1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmlu
ZGV4IDY1ZjNkNzJmMmUxYzY0NWE4ZWY3NDY4MmRhOGMyMjM2MzU4YTU0MzIuLmVkNmUxMjRlOTc1
YTU0M2Q3MzZlYTA0ZDc4MmYyMDhjOTY3NDhiYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC05OSw3ICs5OSw3
IEBAIEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTID0gOwogRU5BQkxFX01FVEVSX1RBRyA9IEVOQUJM
RV9NRVRFUl9UQUc7CiBFTkFCTEVfTUhUTUwgPSA7CiBFTkFCTEVfTUlDUk9EQVRBID0gOwotRU5B
QkxFX01VVEFUSU9OX09CU0VSVkVSUyA9IEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlM7CitFTkFC
TEVfTVVUQVRJT05fT0JTRVJWRVJTID0gOwogRU5BQkxFX05PVElGSUNBVElPTlMgPSAkKEVOQUJM
RV9OT1RJRklDQVRJT05TXyQoUkVBTF9QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfTk9USUZJQ0FU
SU9OU19tYWNvc3ggPSAkKEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeF8kKFRBUkdFVF9NQUNf
T1NfWF9WRVJTSU9OX01BSk9SKSk7CiBFTkFCTEVfTk9USUZJQ0FUSU9OU19tYWNvc3hfMTA3MCA9
IDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAppbmRleCAwZjY4YmFmYzY5MDZlN2YzY2YyYzhi
OTE2M2RlM2E2NGU2Y2I4YTM0Li4zNmJhNzAzMDZlMGM4YzMxZGM1YzZiNjUyOWNiNjhlYTEwZmFi
OTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCkBAIC03NzgsNiArNzc4LDcgQEAgbW9k
dWxlIHdpbmRvdyB7CiAKICAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1CTE9CXSBET01V
UkxDb25zdHJ1Y3RvciB3ZWJraXRVUkw7CiAKKyAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25h
bD1NVVRBVElPTl9PQlNFUlZFUlNdIE11dGF0aW9uT2JzZXJ2ZXJDb25zdHJ1Y3RvciBNdXRhdGlv
bk9ic2VydmVyOwogICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU1VVEFUSU9OX09CU0VS
VkVSU10gTXV0YXRpb25PYnNlcnZlckNvbnN0cnVjdG9yIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI7
CiAKICNlbmRpZiAvLyBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBi
L1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
CmluZGV4IDY1ZjNkNzJmMmUxYzY0NWE4ZWY3NDY4MmRhOGMyMjM2MzU4YTU0MzIuLmVkNmUxMjRl
OTc1YTU0M2Q3MzZlYTA0ZDc4MmYyMDhjOTY3NDhiYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC05
OSw3ICs5OSw3IEBAIEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTID0gOwogRU5BQkxFX01FVEVSX1RB
RyA9IEVOQUJMRV9NRVRFUl9UQUc7CiBFTkFCTEVfTUhUTUwgPSA7CiBFTkFCTEVfTUlDUk9EQVRB
ID0gOwotRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUyA9IEVOQUJMRV9NVVRBVElPTl9PQlNFUlZF
UlM7CitFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTID0gOwogRU5BQkxFX05PVElGSUNBVElPTlMg
PSAkKEVOQUJMRV9OT1RJRklDQVRJT05TXyQoUkVBTF9QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVf
Tk9USUZJQ0FUSU9OU19tYWNvc3ggPSAkKEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeF8kKFRB
UkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7CiBFTkFCTEVfTk9USUZJQ0FUSU9OU19tYWNv
c3hfMTA3MCA9IDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0Zl
YXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVh
dHVyZURlZmluZXMueGNjb25maWcKaW5kZXggNjVmM2Q3MmYyZTFjNjQ1YThlZjc0NjgyZGE4YzIy
MzYzNThhNTQzMi4uZWQ2ZTEyNGU5NzVhNTQzZDczNmVhMDRkNzgyZjIwOGM5Njc0OGJhMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWcKKysrIGIvU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWcKQEAgLTk5LDcgKzk5LDcgQEAgRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MgPSA7CiBF
TkFCTEVfTUVURVJfVEFHID0gRU5BQkxFX01FVEVSX1RBRzsKIEVOQUJMRV9NSFRNTCA9IDsKIEVO
QUJMRV9NSUNST0RBVEEgPSA7Ci1FTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTID0gRU5BQkxFX01V
VEFUSU9OX09CU0VSVkVSUzsKK0VOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMgPSA7CiBFTkFCTEVf
Tk9USUZJQ0FUSU9OUyA9ICQoRU5BQkxFX05PVElGSUNBVElPTlNfJChSRUFMX1BMQVRGT1JNX05B
TUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9ICQoRU5BQkxFX05PVElGSUNBVElP
TlNfbWFjb3N4XyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IpKTsKIEVOQUJMRV9OT1RJ
RklDQVRJT05TX21hY29zeF8xMDcwID0gOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIv
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IGQ5ZTkwZmE2OTk5YjM4OGMzMTllMzc3YTFmNzkwN2NiZTY4
NzYxMTEuLmMyYjU5MjE5NDU3ZDNhOGYyN2RlMDk0OWVkYTU4NmVmMzVjYTlkMDcgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNSBA
QAogMjAxMi0wNy0wOSAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KIAorICAgICAg
ICBSZW1vdmUgdmVuZG9yIHByZWZpeCBmcm9tIERPTSBNdXRhdGlvbk9ic2VydmVycworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkyMzEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cGVybC9GZWF0dXJlTGlzdC5wbTogRW5hYmxlIE11dGF0aW9uT2JzZXJ2ZXJzIG9ubHkgZm9yIHBv
cnRzCisgICAgICAgIHRoYXQgcGFzcyBhbGwgZmFzdC9tdXRhdGlvbi8uLi4gdGVzdHMgKGluY2x1
ZGluZyBlbmQtb2YtdGFzayBkZWxpdmVyeSkuCisKKzIwMTItMDctMDkgIEFkYW0gS2xlaW4gIDxh
ZGFta0BjaHJvbWl1bS5vcmc+CisKICAgICAgICAgUmVuYW1lIFdlYkNvcmU6OldlYktpdE11dGF0
aW9uT2JzZXJ2ZXIgdG8gV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcgogICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA4MTAKIApkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRwZXJsL0ZlYXR1cmVMaXN0LnBtCmluZGV4IDQwN2ZiYjk2Y2MzZGE1NzdjOWQwY2ZiY2IyZDA1
NjQxYjBkMzA5MDcuLjE2OTM5NGVmNzMwNzA0OGJiMDhlOTU5NzlkZjhjZDA2OGZmNTZmZGYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KQEAgLTI5Miw3ICsyOTIsNyBA
QCBteSBAZmVhdHVyZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9NSUNST0RBVEEiLCBk
ZWZhdWx0ID0+IChpc0VmbCgpIHx8IGlzQmxhY2tCZXJyeSgpKSwgdmFsdWUgPT4gXCRtaWNyb2Rh
dGFTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAibXV0YXRpb24tb2JzZXJ2ZXJzIiwgZGVz
YyA9PiAiVG9nZ2xlIE11dGF0aW9uIE9ic2VydmVycyBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9
PiAiRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUyIsIGRlZmF1bHQgPT4gMSwgdmFsdWUgPT4gXCRt
dXRhdGlvbk9ic2VydmVyc1N1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX01VVEFU
SU9OX09CU0VSVkVSUyIsIGRlZmF1bHQgPT4gKGlzQ2hyb21pdW0oKSB8fCBpc0d0aygpIHx8IGlz
RWZsKCkpLCB2YWx1ZSA9PiBcJG11dGF0aW9uT2JzZXJ2ZXJzU3VwcG9ydCB9LAogCiAgICAgeyBv
cHRpb24gPT4gIm5ldHNjYXBlLXBsdWdpbi1hcGkiLCBkZXNjID0+ICJUb2dnbGUgTmV0c2NhcGUg
UGx1Z2luIEFQSSBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX05FVFNDQVBFX1BM
VUdJTl9BUEkiLCBkZWZhdWx0ID0+ICFpc0VmbCgpLCB2YWx1ZSA9PiBcJG5ldHNjYXBlUGx1Z2lu
QVBJU3VwcG9ydCB9LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDc4YmMwMmI0ZGU2MjM0YjYwZWU1ODJiZDc0MDcxMmMxMzhl
N2Q5ODAuLjk0ZDE2N2IxMDlhOTc3ZjA0MTliNjJjNWZjZDFkNzUxZGFjMDU4MTUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw0NiBAQAorMjAxMi0wNy0wOSAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZW1vdmUgdmVuZG9yIHByZWZpeCBmcm9tIERPTSBNdXRhdGlvbk9ic2Vy
dmVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODky
MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbGwg
dGVzdHMgaGF2ZSBiZWVuIHVwZGF0ZWQgdG8gcmVmZXJlbmNlIHRoZSB1bnByZWZpeGVkIG5hbWUu
CisKKyAgICAgICAgKiBmYXN0L211dGF0aW9uL2NhbGxiYWNrLWFyZ3VtZW50cy5odG1sOgorICAg
ICAgICAqIGZhc3QvbXV0YXRpb24vY2xlYXItdHJhbnNpZW50LXdpdGhvdXQtZGVsaXZlcnkuaHRt
bDoKKyAgICAgICAgKiBmYXN0L211dGF0aW9uL2NyZWF0ZS1kdXJpbmctZGVsaXZlcnkuaHRtbDoK
KyAgICAgICAgKiBmYXN0L211dGF0aW9uL2Nyb3NzLWRvY3VtZW50Lmh0bWw6CisgICAgICAgICog
ZmFzdC9tdXRhdGlvbi9kYXRhYmFzZS1jYWxsYmFjay1kZWxpdmVyeS5odG1sOgorICAgICAgICAq
IGZhc3QvbXV0YXRpb24vZGVsaXZlcnktb3JkZXIuaHRtbDoKKyAgICAgICAgKiBmYXN0L211dGF0
aW9uL2Rpc2Nvbm5lY3QtY2FuY2VsLXBlbmRpbmctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZh
c3QvbXV0YXRpb24vZGlzY29ubmVjdC1jYW5jZWwtcGVuZGluZy5odG1sOgorICAgICAgICAqIGZh
c3QvbXV0YXRpb24vZG9jdW1lbnQtZnJhZ21lbnQtaW5zZXJ0aW9uLmh0bWw6CisgICAgICAgICog
ZmFzdC9tdXRhdGlvbi9lbmQtb2YtdGFzay1kZWxpdmVyeS5odG1sOgorICAgICAgICAqIGZhc3Qv
bXV0YXRpb24vZmlsZXN5c3RlbS1jYWxsYmFjay1kZWxpdmVyeS5odG1sOgorICAgICAgICAqIGZh
c3QvbXV0YXRpb24vaW5saW5lLWV2ZW50LWxpc3RlbmVyLmh0bWw6CisgICAgICAgICogZmFzdC9t
dXRhdGlvbi9tdXRhdGUtZHVyaW5nLWRlbGl2ZXJ5Lmh0bWw6CisgICAgICAgICogZmFzdC9tdXRh
dGlvbi9tdXRhdGlvbi1jYWxsYmFjay1ub24tZWxlbWVudC1jcmFzaC5odG1sOgorICAgICAgICAq
IGZhc3QvbXV0YXRpb24vbXV0YXRpb24tb2JzZXJ2ZXItY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGZhc3QvbXV0YXRpb24vbXV0YXRpb24tb2JzZXJ2ZXItY29uc3RydWN0b3Iu
aHRtbDoKKyAgICAgICAgKiBmYXN0L211dGF0aW9uL29ic2VydmUtYXR0cmlidXRlcy1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWF0dHJpYnV0ZXMuaHRtbDoK
KyAgICAgICAgKiBmYXN0L211dGF0aW9uL29ic2VydmUtY2hhcmFjdGVyZGF0YS1leHBlY3RlZC50
eHQ6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWNoYXJhY3RlcmRhdGEuaHRtbDoK
KyAgICAgICAgKiBmYXN0L211dGF0aW9uL29ic2VydmUtY2hpbGRMaXN0LWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBmYXN0L211dGF0aW9uL29ic2VydmUtY2hpbGRMaXN0Lmh0bWw6CisgICAgICAg
ICogZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWV4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvbXV0YXRpb24vb2JzZXJ2ZS1leGNlcHRpb25zLmh0bWw6CisgICAgICAgICogZmFz
dC9tdXRhdGlvbi9vYnNlcnZlLXN1YnRyZWUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
bXV0YXRpb24vb2JzZXJ2ZS1zdWJ0cmVlLmh0bWw6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi9z
aGFkb3ctZG9tLmh0bWw6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi90YWtlUmVjb3Jkcy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogZmFzdC9tdXRhdGlvbi90YWtlUmVjb3Jkcy5odG1sOgorICAg
ICAgICAqIGZhc3QvbXV0YXRpb24vdHJhbnNpZW50LWdjLWNyYXNoLmh0bWw6CisgICAgICAgICog
cGxhdGZvcm0vbWFjL1NraXBwZWQ6IFNraXAgTXV0YXRpb25PYnNlcnZlciB0ZXN0cyBhcyB0aGV5
J3JlIG5vdyBkaXNhYmxlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDogZGl0dG8K
KyAgICAgICAgKiBwbGF0Zm9ybS93aW5jYWlyby9Ta2lwcGVkOiBkaXR0bworCiAyMDEyLTA3LTA5
ICBWaW5jZW50IFNjaGVpYiAgPHNjaGVpYkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVmYWN0
b3IgY29tbW9uIFBvaW50ZXIgTG9jayB0ZXN0IGNvZGUgdG8gYSBoYXJuZXNzLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9jYWxsYmFjay1hcmd1bWVudHMuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vY2FsbGJhY2stYXJndW1lbnRzLmh0bWwKaW5kZXggZjc4
ZGRkOTJkMzVhNDk4NDgyNjBkNjdjNmUyMWVlZGFkMDcxZGQ2My4uZjg3NjcyZmVjZDdhMzUzZDQw
NGQ5OGJkMzMzODkzZjU5MzQwNjVjYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRh
dGlvbi9jYWxsYmFjay1hcmd1bWVudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0
aW9uL2NhbGxiYWNrLWFyZ3VtZW50cy5odG1sCkBAIC0xMiw3ICsxMiw3IEBAIGZ1bmN0aW9uIG11
dGF0aW9uQ2FsbGJhY2sobXV0YXRpb25zLCBvYnNlcnZlcikgewogICAgIHNob3VsZEJlKCdhcmd1
bWVudDInLCAnbXV0YXRpb25PYnNlcnZlcicpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQotdmFy
IG11dGF0aW9uT2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihtdXRhdGlvbkNh
bGxiYWNrKTsKK3ZhciBtdXRhdGlvbk9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIobXV0
YXRpb25DYWxsYmFjayk7CiB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7
CiBtdXRhdGlvbk9ic2VydmVyLm9ic2VydmUoZGl2LCB7YXR0cmlidXRlczogdHJ1ZX0pOwogZGl2
LnNldEF0dHJpYnV0ZSgnZm9vJywgJ2JhcicpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9tdXRhdGlvbi9jbGVhci10cmFuc2llbnQtd2l0aG91dC1kZWxpdmVyeS5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9tdXRhdGlvbi9jbGVhci10cmFuc2llbnQtd2l0aG91dC1kZWxpdmVyeS5odG1s
CmluZGV4IGUxZmVlODE3MjBlYmNkNzA5ZTgwOTk5ZjRhOWJlMTI3MmNhYTg3ZTIuLjQyYTUzZTM4
YmQ1ZjU2ZTNjMzI0MWFkMzRjY2I2N2FjMTA0OTQzMTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvbXV0YXRpb24vY2xlYXItdHJhbnNpZW50LXdpdGhvdXQtZGVsaXZlcnkuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2NsZWFyLXRyYW5zaWVudC13aXRob3V0LWRlbGl2
ZXJ5Lmh0bWwKQEAgLTcsNyArNyw3IEBAIHZhciBtdXRhdGlvbnNEZWxpdmVyZWQgPSBmYWxzZTsK
IGZ1bmN0aW9uIGNhbGxiYWNrKG11dGF0aW9ucykgewogICAgIG11dGF0aW9uc0RlbGl2ZXJlZCA9
IHRydWU7CiB9Ci12YXIgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihjYWxs
YmFjayk7Cit2YXIgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihjYWxsYmFjayk7CiAK
IHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKIHZhciBzcGFuID0gZGl2
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKSk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2NyZWF0ZS1kdXJpbmctZGVsaXZlcnkuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vY3JlYXRlLWR1cmluZy1kZWxpdmVyeS5odG1sCmlu
ZGV4IGNlZWUyNGU3MDgyY2Y4MWQ1YTVhNTQ5YzRjZDdiNGQyZGI4ZTIwMjYuLjRmNWQwN2M2YzAx
ZDlkZjhmZjUzMTQ1NzcxZDJlYzUzNDg4OGMyYWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvbXV0YXRpb24vY3JlYXRlLWR1cmluZy1kZWxpdmVyeS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvbXV0YXRpb24vY3JlYXRlLWR1cmluZy1kZWxpdmVyeS5odG1sCkBAIC0xNywxNyArMTcs
MTcgQEAgdmFyIG9yZGVyID0gW107CiB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
ZGl2Jyk7CiAKIHZhciBvYnNlcnZlcjM7Ci12YXIgb2JzZXJ2ZXIxID0gbmV3IFdlYktpdE11dGF0
aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7Cit2YXIgb2JzZXJ2ZXIxID0gbmV3IE11
dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgb3JkZXIucHVzaCgxKTsK
ICAgICBpZiAoIW9ic2VydmVyMykgewotICAgICAgICBvYnNlcnZlcjMgPSBuZXcgV2ViS2l0TXV0
YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIzID0g
bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICBv
cmRlci5wdXNoKDMpOwogICAgICAgICB9KTsKICAgICAgICAgb2JzZXJ2ZXIzLm9ic2VydmUoZGl2
LCB7YXR0cmlidXRlczogdHJ1ZX0pOwogICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCdmb28nLCAn
YmF6Jyk7CiAgICAgfQogfSk7Ci12YXIgb2JzZXJ2ZXIyID0gbmV3IFdlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7Cit2YXIgb2JzZXJ2ZXIyID0gbmV3IE11dGF0aW9u
T2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgb3JkZXIucHVzaCgyKTsKIH0pOwog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2Nyb3NzLWRvY3VtZW50Lmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2Nyb3NzLWRvY3VtZW50Lmh0bWwKaW5kZXgg
ZjRlZTdmMGNmY2Q4NzRiZWRiZjg4YTlmYWZhN2FiYTlmMTgwNGZhMS4uYzg4M2RhMzRmNDQ2ZmNk
OTJlMTE2NmJhZWQ5YmU1YjE3MmI3YjhkMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9t
dXRhdGlvbi9jcm9zcy1kb2N1bWVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRp
b24vY3Jvc3MtZG9jdW1lbnQuaHRtbApAQCAtMTgsNyArMTgsNyBAQCBmdW5jdGlvbiB0ZXN0QmFz
aWMoKSB7CiAKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKICAgICAgICAgZGl2ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11
dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0g
bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3
aW5kb3cubXV0YXRpb25zID0gbXV0YXRpb25zOwogICAgICAgICB9KTsKIApAQCAtNTIsNyArNTIs
NyBAQCBmdW5jdGlvbiB0ZXN0U3VidHJlZSgpIHsKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsK
ICAgICAgICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgIHN1
YkRpdiA9IGRpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7Ci0g
ICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0
YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rp
b24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0YXRpb25z
OwogICAgICAgICB9KTsKIApAQCAtODksNyArODksNyBAQCBmdW5jdGlvbiBydW5OZXh0VGVzdCgp
IHsKIAogZGVzY3JpcHRpb24oJ1Rlc3QgdGhhdCBNdXRhdGlvbk9ic2VydmVycyBtb3ZlIGNvcnJl
Y3RseSBhY3Jvc3MgZG9jdW1lbnRzJyk7CiAKLWlmICghd2luZG93LldlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXIpCitpZiAoIXdpbmRvdy5NdXRhdGlvbk9ic2VydmVyKQogICAgIHRlc3RGYWlsZWQoJ1Ro
aXMgdGVzdCByZXF1aXJlcyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKScpOwogZWxzZQogICAg
IHJ1bk5leHRUZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2Rh
dGFiYXNlLWNhbGxiYWNrLWRlbGl2ZXJ5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9u
L2RhdGFiYXNlLWNhbGxiYWNrLWRlbGl2ZXJ5Lmh0bWwKaW5kZXggYzc5YTNmYWMyN2RkODdjYTk0
NTljNjFjMTEyYTZjMjhjNDY2ZjYyNC4uNDAzOGQwZmUwNjllODNmNjVhMzJiYjkwNWNmZGMzNDhj
OTk5ZTZlZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9kYXRhYmFzZS1j
YWxsYmFjay1kZWxpdmVyeS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vZGF0
YWJhc2UtY2FsbGJhY2stZGVsaXZlcnkuaHRtbApAQCAtMTIsNyArMTIsNyBAQCBmdW5jdGlvbiB0
ZXN0RGF0YWJhc2UoKSB7CiAgICAgZnVuY3Rpb24gc3RhcnQoKSB7CiAgICAgICAgIG11dGF0aW9u
cyA9IG51bGw7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwot
ICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0p
IHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7
CiAgICAgICAgICAgICBtdXRhdGlvbnMgPSBtOwogICAgICAgICB9KTsKIApAQCAtNDEsNyArNDEs
NyBAQCBmdW5jdGlvbiB0ZXN0RGF0YWJhc2UoKSB7CiAKIGRlc2NyaXB0aW9uKCdUZXN0aW5nIG11
dGF0aW9ucyBhcmUgZGVsaXZlcmVkIGZvbGxvd2luZyBEYXRhYmFzZSB0cmFuc2FjdGlvbiBjYWxs
YmFja3MuJyk7CiAKLWlmICghd2luZG93LldlYktpdE11dGF0aW9uT2JzZXJ2ZXIpIHsKK2lmICgh
d2luZG93Lk11dGF0aW9uT2JzZXJ2ZXIpIHsKICAgICB0ZXN0RmFpbGVkKCdUaGlzIHRlc3QgcmVx
dWlyZXMgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUyknKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsK
IH0gZWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9kZWxpdmVyeS1v
cmRlci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9kZWxpdmVyeS1vcmRlci5odG1s
CmluZGV4IDRlNTVjMGQ2MmI2NTM0OGQ5ZWFhM2MyYjUwNjdmNWZhZmI4MmI0ZGQuLjViYzI5OTFh
NWI1YmVjODIyZmFmNmFhZGNlYWZiZjY5YTQ0MzVjYTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvbXV0YXRpb24vZGVsaXZlcnktb3JkZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L211dGF0aW9uL2RlbGl2ZXJ5LW9yZGVyLmh0bWwKQEAgLTIzLDcgKzIzLDcgQEAgdmFyIG9yZGVy
ID0gW107CiB2YXIgb2JzZXJ2ZXJzID0gW107CiAKIGZ1bmN0aW9uIHNldFVwT3JkZXJpbmcobnVt
KSB7Ci0gICAgb2JzZXJ2ZXJzLnB1c2gobmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rp
b24obXV0YXRpb25zKSB7CisgICAgb2JzZXJ2ZXJzLnB1c2gobmV3IE11dGF0aW9uT2JzZXJ2ZXIo
ZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgIG9yZGVyLnB1c2gobnVtKTsKICAgICB9KSk7
CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2Rpc2Nvbm5lY3QtY2Fu
Y2VsLXBlbmRpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9kaXNj
b25uZWN0LWNhbmNlbC1wZW5kaW5nLWV4cGVjdGVkLnR4dAppbmRleCAzYjVkOTdlNzUzMmQ2OGY2
NjZlYmFlOWZhNWMwYTNjYWQzZmIxYjEyLi43MzZhNzVlMTkxZDZiNTFkY2Y3YWM3NTBlNTQyZDg4
OGFjNTIxYzRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2Rpc2Nvbm5l
Y3QtY2FuY2VsLXBlbmRpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0
YXRpb24vZGlzY29ubmVjdC1jYW5jZWwtcGVuZGluZy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0
IEBACi1UZXN0IHRoYXQgV2ViS2l0TXV0YXRpb25PYnNlcnZlci5kaXNjb25uZWN0IGNhbmNlbHMg
cGVuZGluZyBkZWxpdmVyeQorVGVzdCB0aGF0IE11dGF0aW9uT2JzZXJ2ZXIuZGlzY29ubmVjdCBj
YW5jZWxzIHBlbmRpbmcgZGVsaXZlcnkKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2Rpc2Nvbm5lY3QtY2FuY2VsLXBl
bmRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vZGlzY29ubmVjdC1jYW5jZWwt
cGVuZGluZy5odG1sCmluZGV4IGY2MmZkNTI5ZTM5YzUxYWM3YzQ2OGM5OWJlYTM3MTM3NTAxNTZh
ZDEuLmJkNDc4MDhmNGMyNTM3YTNjNDdkNDY4YTY5M2M3YzQyZGE0YWE3OTEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vZGlzY29ubmVjdC1jYW5jZWwtcGVuZGluZy5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vZGlzY29ubmVjdC1jYW5jZWwtcGVuZGlu
Zy5odG1sCkBAIC0xLDcgKzEsNyBAQAogPCFET0NUWVBFIGh0bWw+CiA8c2NyaXB0IHNyYz0iLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1kZXNjcmlw
dGlvbignVGVzdCB0aGF0IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIuZGlzY29ubmVjdCBjYW5jZWxz
IHBlbmRpbmcgZGVsaXZlcnknKTsKK2Rlc2NyaXB0aW9uKCdUZXN0IHRoYXQgTXV0YXRpb25PYnNl
cnZlci5kaXNjb25uZWN0IGNhbmNlbHMgcGVuZGluZyBkZWxpdmVyeScpOwogCiB3aW5kb3cuanNU
ZXN0SXNBc3luYyA9IHRydWU7CiB2YXIgbXV0YXRpb25zOwpAQCAtMTEsNyArMTEsNyBAQCBmdW5j
dGlvbiBzdGFydCgpIHsKICAgICBtdXRhdGlvbnMgPSBudWxsOwogICAgIGRpdiA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogCi0gICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRp
b25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNl
cnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgfSk7CiAKQEAg
LTM2LDcgKzM2LDcgQEAgZnVuY3Rpb24gZmluaXNoKCkgewogICAgIGZpbmlzaEpTVGVzdCgpOwog
fQogCi1pZiAoIXdpbmRvdy5XZWJLaXRNdXRhdGlvbk9ic2VydmVyKQoraWYgKCF3aW5kb3cuTXV0
YXRpb25PYnNlcnZlcikKICAgICB0ZXN0RmFpbGVkKCdUaGlzIHRlc3QgcmVxdWlyZXMgRU5BQkxF
KE1VVEFUSU9OX09CU0VSVkVSUyknKTsKIGVsc2UKICAgICBzdGFydCgpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9kb2N1bWVudC1mcmFnbWVudC1pbnNlcnRpb24uaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vZG9jdW1lbnQtZnJhZ21lbnQtaW5zZXJ0aW9u
Lmh0bWwKaW5kZXggY2FjNDZjZmY0MzIwN2E5ZTJiZjBkOWZhNmMzYzNkZWMyYWU1ZmZlNC4uYjY0
NjZlY2ViNDRkNjRhZmY4YTZmOWMzMDhmMGQ1ZjYwMjRmODZmZiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9tdXRhdGlvbi9kb2N1bWVudC1mcmFnbWVudC1pbnNlcnRpb24uaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2RvY3VtZW50LWZyYWdtZW50LWluc2VydGlvbi5o
dG1sCkBAIC0yMCw3ICsyMCw3IEBAIGZ1bmN0aW9uIGNyZWF0ZU9ic2VydmVkRGl2KCkgewogZnVu
Y3Rpb24gY2FsbGJhY2sobXV0YXRpb25zKSB7CiAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0
aW9uczsKIH0KLXZhciBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGNhbGxi
YWNrKTsKK3ZhciBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGNhbGxiYWNrKTsKIAog
ZnVuY3Rpb24gdGVzdEFwcGVuZENoaWxkKCkgewogICAgIGRlYnVnKCdUZXN0aW5nIGFwcGVuZENo
aWxkJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2VuZC1vZi10YXNr
LWRlbGl2ZXJ5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2VuZC1vZi10YXNrLWRl
bGl2ZXJ5Lmh0bWwKaW5kZXggMjJkMzY0NzhjODk3MmFiYWQ5ZTdkZTUyMDhmMjk2YjM4ZDM4Zjk2
Yi4uNGM3OWE3NTRiZTI0NGI2NGVhOTZlNmNiNDU3YWVjMDdiNmE4OTdjNCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9lbmQtb2YtdGFzay1kZWxpdmVyeS5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vZW5kLW9mLXRhc2stZGVsaXZlcnkuaHRtbApAQCAt
MTIsNyArMTIsNyBAQAogICAgIHZhciBsaXN0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcignb2wn
KTsKICAgICB2YXIgcCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3AnKTsKICAgICB2YXIgb2Jz
ZXJ2ZXJSdW5zID0gMDsKLSAgICB2YXIgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNl
cnZlcihmdW5jdGlvbigpIHsgKytvYnNlcnZlclJ1bnM7IH0pOworICAgIHZhciBvYnNlcnZlciA9
IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKCkgeyArK29ic2VydmVyUnVuczsgfSk7CiAg
ICAgb2JzZXJ2ZXIub2JzZXJ2ZShsaXN0LCB7Y2hpbGRMaXN0OiB0cnVlfSk7CiAgICAgbGlzdC5h
ZGRFdmVudExpc3RlbmVyKCdibHVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgIGRvY3VtZW50LmJv
ZHkuaW5uZXJIVE1MID0gb2JzZXJ2ZXJSdW5zID09IDEgPyAnUEFTU0VEJyA6ICdGQUlMRUQnOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9maWxlc3lzdGVtLWNhbGxiYWNr
LWRlbGl2ZXJ5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2ZpbGVzeXN0ZW0tY2Fs
bGJhY2stZGVsaXZlcnkuaHRtbAppbmRleCBlZjFjNTZhMTVhOGU4MjMwNGM4MWU1N2Y0YWNkYzg4
YzlkYjc1N2Y3Li5hYjU1Yjg5OTRkMzgxZmQ1NzZjMjFlZTE2ZGVjMDg4NzM3YTljNjJjIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2ZpbGVzeXN0ZW0tY2FsbGJhY2stZGVs
aXZlcnkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2ZpbGVzeXN0ZW0tY2Fs
bGJhY2stZGVsaXZlcnkuaHRtbApAQCAtMTIsNyArMTIsNyBAQCBmdW5jdGlvbiB0ZXN0RmlsZXN5
c3RlbSgpIHsKICAgICBmdW5jdGlvbiBzdGFydCgpIHsKICAgICAgICAgbXV0YXRpb25zID0gbnVs
bDsKICAgICAgICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAg
IG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAg
ICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAg
ICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBAIC01Niw3ICs1Niw3IEBAIGZ1
bmN0aW9uIHRlc3RGaWxlc3lzdGVtKCkgewogCiBkZXNjcmlwdGlvbignVGVzdCB0aGF0IE11dGF0
aW9uIFJlY29yZHMgYXJlIGRlbGl2ZXJlZCBmb2xsb3dpbmcgRmlsZVN5c3RlbSBjYWxsYmFja3Mu
Jyk7CiAKLWlmICghd2luZG93LldlYktpdE11dGF0aW9uT2JzZXJ2ZXIgfHwgIXdpbmRvdy53ZWJr
aXRSZXF1ZXN0RmlsZVN5c3RlbSkgeworaWYgKCF3aW5kb3cuTXV0YXRpb25PYnNlcnZlciB8fCAh
d2luZG93LndlYmtpdFJlcXVlc3RGaWxlU3lzdGVtKSB7CiAgICAgdGVzdEZhaWxlZCgnVGhpcyB0
ZXN0IHJlcXVpcmVzIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpIGFuZCBFTkFCTEUoRklMRV9T
WVNURU0pJyk7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9IGVsc2UKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvbXV0YXRpb24vaW5saW5lLWV2ZW50LWxpc3RlbmVyLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L211dGF0aW9uL2lubGluZS1ldmVudC1saXN0ZW5lci5odG1sCmluZGV4IDMwOTY4
ZTE0ZmJkNjc5ODFkYTA1YWZiMDgxZGQ4OTNkN2JiZTA5OTMuLjU3ZDg2YjkzYmE4MmMzOTJkOTk0
OWY0Y2JjOWI2MDU0NzMyYjI0MGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRp
b24vaW5saW5lLWV2ZW50LWxpc3RlbmVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRh
dGlvbi9pbmxpbmUtZXZlbnQtbGlzdGVuZXIuaHRtbApAQCAtMTAsNyArMTAsNyBAQAogCiAgICAg
dmFyIGxpc3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdvbCcpOwogICAgIHZhciBvYnNlcnZl
clJhbiA9IGZhbHNlOwotICAgIHZhciBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyKGZ1bmN0aW9uKCkgeyBvYnNlcnZlclJhbiA9IHRydWU7IH0pOworICAgIHZhciBvYnNlcnZl
ciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKCkgeyBvYnNlcnZlclJhbiA9IHRydWU7
IH0pOwogICAgIG9ic2VydmVyLm9ic2VydmUobGlzdCwge2NoaWxkTGlzdDogdHJ1ZSwgY2hhcmFj
dGVyRGF0YTogdHJ1ZX0pOwogICAgIGxpc3QuZm9jdXMoKTsKICAgICBpZiAod2luZG93LmV2ZW50
U2VuZGVyKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9tdXRhdGUtZHVy
aW5nLWRlbGl2ZXJ5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL211dGF0ZS1kdXJp
bmctZGVsaXZlcnkuaHRtbAppbmRleCBmOTMwMWI5N2U1Y2QxOGExMDUyMjRjZmRhYzRmZTRmOGEz
OTM3YjM2Li5jOTQ5ZjdlN2IwMmUwMjc4ZGFmOWRiZjdmMDRmM2JhN2VlZjgzODZmIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL211dGF0ZS1kdXJpbmctZGVsaXZlcnkuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL211dGF0ZS1kdXJpbmctZGVsaXZlcnku
aHRtbApAQCAtMTUsMTQgKzE1LDE0IEBAIGZ1bmN0aW9uIGZpbmlzaCgpIHsKIHZhciBvcmRlciA9
IFtdOwogdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogCi12YXIgb2Jz
ZXJ2ZXIxID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7
Cit2YXIgb2JzZXJ2ZXIxID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25z
KSB7CiAgICAgb3JkZXIucHVzaCgxKTsKICAgICBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnc3BhbicpKTsKIH0pOwotdmFyIG9ic2VydmVyMiA9IG5ldyBXZWJLaXRNdXRh
dGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewordmFyIG9ic2VydmVyMiA9IG5ldyBN
dXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgIG9yZGVyLnB1c2goMik7
CiB9KTsKLXZhciBvYnNlcnZlcjMgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlv
bihtdXRhdGlvbnMpIHsKK3ZhciBvYnNlcnZlcjMgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5j
dGlvbihtdXRhdGlvbnMpIHsKICAgICBvcmRlci5wdXNoKDMpOwogfSk7CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vbXV0YXRpb24tY2FsbGJhY2stbm9uLWVsZW1lbnQt
Y3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vbXV0YXRpb24tY2FsbGJhY2st
bm9uLWVsZW1lbnQtY3Jhc2guaHRtbAppbmRleCA3NWYyMmVmOTYxMTZhM2E1MDc5NmM0OGEzNmUz
ZWQ3MGUwODUwYjZlLi4yZWFhMDQ2MWI3MTA2ODVhMDYzYmY3MWM4Yzc4ZjQzNzM1OTI2YmYxIDEw
MDc1NQotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL211dGF0aW9uLWNhbGxiYWNrLW5v
bi1lbGVtZW50LWNyYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9tdXRh
dGlvbi1jYWxsYmFjay1ub24tZWxlbWVudC1jcmFzaC5odG1sCkBAIC05LDcgKzksNyBAQCBmdW5j
dGlvbiBtdXRhdGlvbkNhbGxiYWNrKG11dGF0aW9ucywgb2JzZXJ2ZXIpIHsKICAgICBtdXRhdGlv
bnNbMF0uYWRkZWROb2Rlc1stMV07CiB9CiAKLXZhciBtdXRhdGlvbk9ic2VydmVyID0gbmV3IFdl
YktpdE11dGF0aW9uT2JzZXJ2ZXIobXV0YXRpb25DYWxsYmFjayk7Cit2YXIgbXV0YXRpb25PYnNl
cnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKG11dGF0aW9uQ2FsbGJhY2spOwogbXV0YXRpb25P
YnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHtjaGlsZExpc3Q6IHRydWV9KTsKIGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlBBU1MuIFdlYktp
dCBkaWRuJ3QgY3Jhc2giKSk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvbXV0YXRpb24vbXV0YXRpb24tb2JzZXJ2ZXItY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9tdXRhdGlvbi1vYnNlcnZlci1jb25zdHJ1Y3Rvci1l
eHBlY3RlZC50eHQKaW5kZXggMmJlYjNlODZlNzBlMjQ4NWE3NzIwMTgwNzc2NDI4NTkxNzkyNzQ5
ZC4uNTQ3ZjRiZDQ4M2YzZjAxOTViMGFlMDY3NGMwNjhlYTdkZmI1OWM3ZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9tdXRhdGlvbi1vYnNlcnZlci1jb25zdHJ1Y3Rvci1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9tdXRhdGlvbi1vYnNl
cnZlci1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQKQEAgLTEsMTEgKzEsMTEgQEAKLVRlc3QgdGhl
IGNvbnN0cnVjdG9yIG9mIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIKK1Rlc3QgdGhlIGNvbnN0cnVj
dG9yIG9mIE11dGF0aW9uT2JzZXJ2ZXIKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAK
LVBBU1Mgd2luZG93LldlYktpdE11dGF0aW9uT2JzZXJ2ZXIgaXMgbm9uLW51bGwuCi1QQVNTIHR5
cGVvZiBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLnByb3RvdHlwZS5vYnNlcnZlIGlzICJmdW5jdGlv
biIKLVBBU1MgdHlwZW9mIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIucHJvdG90eXBlLmRpc2Nvbm5l
Y3QgaXMgImZ1bmN0aW9uIgorUEFTUyB3aW5kb3cuTXV0YXRpb25PYnNlcnZlciBpcyBub24tbnVs
bC4KK1BBU1MgdHlwZW9mIE11dGF0aW9uT2JzZXJ2ZXIucHJvdG90eXBlLm9ic2VydmUgaXMgImZ1
bmN0aW9uIgorUEFTUyB0eXBlb2YgTXV0YXRpb25PYnNlcnZlci5wcm90b3R5cGUuZGlzY29ubmVj
dCBpcyAiZnVuY3Rpb24iCiBQQVNTIHR5cGVvZiBvYnNlcnZlci5vYnNlcnZlIGlzICJmdW5jdGlv
biIKIFBBU1MgdHlwZW9mIG9ic2VydmVyLmRpc2Nvbm5lY3QgaXMgImZ1bmN0aW9uIgogUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9t
dXRhdGlvbi9tdXRhdGlvbi1vYnNlcnZlci1jb25zdHJ1Y3Rvci5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9tdXRhdGlvbi9tdXRhdGlvbi1vYnNlcnZlci1jb25zdHJ1Y3Rvci5odG1sCmluZGV4IGFi
NDBmNzBlZDczNjhmNTM4NWExZjQ5ZDg1ZDM5ZTRhNjBhZTM3Y2QuLmI4YTkyYmIzYTZmYjJhYWEx
ZTQzZTRlNDQ1MDg1MzQwMDFmYzliY2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0
YXRpb24vbXV0YXRpb24tb2JzZXJ2ZXItY29uc3RydWN0b3IuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L211dGF0aW9uL211dGF0aW9uLW9ic2VydmVyLWNvbnN0cnVjdG9yLmh0bWwKQEAgLTEx
LDE3ICsxMSwxNyBAQAogPHNjcmlwdD4KIAogZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICBzaG91
bGRCZU5vbk51bGwoJ3dpbmRvdy5XZWJLaXRNdXRhdGlvbk9ic2VydmVyJyk7Ci0gICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCd0eXBlb2YgV2ViS2l0TXV0YXRpb25PYnNlcnZlci5wcm90b3R5cGUu
b2JzZXJ2ZScsICdmdW5jdGlvbicpOwotICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygndHlwZW9m
IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIucHJvdG90eXBlLmRpc2Nvbm5lY3QnLCAnZnVuY3Rpb24n
KTsKLSAgICB3aW5kb3cub2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5j
dGlvbihtdXRhdGlvbnMpIHsgfSk7CisgICAgc2hvdWxkQmVOb25OdWxsKCd3aW5kb3cuTXV0YXRp
b25PYnNlcnZlcicpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygndHlwZW9mIE11dGF0aW9u
T2JzZXJ2ZXIucHJvdG90eXBlLm9ic2VydmUnLCAnZnVuY3Rpb24nKTsKKyAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ3R5cGVvZiBNdXRhdGlvbk9ic2VydmVyLnByb3RvdHlwZS5kaXNjb25uZWN0
JywgJ2Z1bmN0aW9uJyk7CisgICAgd2luZG93Lm9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2
ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7IH0pOwogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygn
dHlwZW9mIG9ic2VydmVyLm9ic2VydmUnLCAnZnVuY3Rpb24nKTsKICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ3R5cGVvZiBvYnNlcnZlci5kaXNjb25uZWN0JywgJ2Z1bmN0aW9uJyk7CiB9CiAK
LWRlc2NyaXB0aW9uKCdUZXN0IHRoZSBjb25zdHJ1Y3RvciBvZiBXZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyJyk7CitkZXNjcmlwdGlvbignVGVzdCB0aGUgY29uc3RydWN0b3Igb2YgTXV0YXRpb25PYnNl
cnZlcicpOwogCi1pZiAoIXdpbmRvdy5XZWJLaXRNdXRhdGlvbk9ic2VydmVyKQoraWYgKCF3aW5k
b3cuTXV0YXRpb25PYnNlcnZlcikKICAgICB0ZXN0RmFpbGVkKCdUaGlzIHRlc3QgcmVxdWlyZXMg
RU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUyknKTsKIGVsc2UKICAgICBydW5UZXN0KCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtYXR0cmlidXRlcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtYXR0cmlidXRlcy1l
eHBlY3RlZC50eHQKaW5kZXggMDdhNjhjM2NkOWY3MDRiOGM1MWUxNTFkNDdkYTE0MGZjNGYxM2Rk
Yy4uYjk5OGM5ODk0NzNmOWE3YmZhYmI5NTYzOWJiNDA2MjZlODBkNzE5YiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1hdHRyaWJ1dGVzLWV4cGVj
dGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKLVRlc3QgV2ViS2l0TXV0YXRpb25PYnNlcnZlci5vYnNl
cnZlIG9uIGF0dHJpYnV0ZXMKK1Rlc3QgTXV0YXRpb25PYnNlcnZlci5vYnNlcnZlIG9uIGF0dHJp
YnV0ZXMKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtYXR0cmlidXRlcy5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWF0dHJpYnV0ZXMuaHRtbAppbmRleCA0MjFlZWFkZjFmZjcx
ODY5YjgzYTk5OTIyODA3NjBjODJkZjRhMmZkLi4zNmVhOTBiNTEwM2E5ZjEyNWViMzYwM2Q5MDFi
NzYxYjQyZWJmN2E3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2Vy
dmUtYXR0cmlidXRlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2
ZS1hdHRyaWJ1dGVzLmh0bWwKQEAgLTE4LDcgKzE4LDcgQEAgZnVuY3Rpb24gdGVzdEJhc2ljKCkg
ewogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAg
ZGl2LnNldEF0dHJpYnV0ZSgnYmFyJywgJ2ZvbycpOwogCi0gICAgICAgIG9ic2VydmVyID0gbmV3
IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9
IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9u
cyA9IG07CiAgICAgICAgIH0pOwogCkBAIC04Miw3ICs4Miw3IEBAIGZ1bmN0aW9uIHRlc3RXcm9u
Z1R5cGUoKSB7CiAKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKICAgICAgICAgZGl2ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktp
dE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBN
dXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07
CiAgICAgICAgIH0pOwogCkBAIC0xMTEsNyArMTExLDcgQEAgZnVuY3Rpb24gdGVzdE11bHRpcGxl
UmVnaXN0cmF0aW9uKCkgewogCQljYWxscyA9IDA7CiAgICAgICAgIG11dGF0aW9ucyA9IG51bGw7
CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgICAgICBv
YnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAg
ICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAg
ICAgICBtdXRhdGlvbnMgPSBtOwogCQkJY2FsbHMrKzsKICAgICAgICAgfSk7CkBAIC0xNTMsMTAg
KzE1MywxMCBAQCBmdW5jdGlvbiB0ZXN0TXVsdGlwbGVPYnNlcnZlcnMoKSB7CiAgICAgICAgIGRl
YnVnKCdUZXN0aW5nIHRoYXQgbXVsdGlwbGUgb2JzZXJ2ZXJzIGNhbiBiZSByZWdpc3RlcmVkIHRv
IGEgZ2l2ZW4gbm9kZSBhbmQgYm90aCByZWNlaXZlIG11dGF0aW9ucy4nKTsKICAgICAgICAgbXV0
YXRpb25zID0gbnVsbDsKICAgICAgICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2
Jyk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rp
b24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9u
KG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwotICAgICAgICBv
YnNlcnZlcjIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAg
ICAgIG9ic2VydmVyMiA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAg
ICAgICAgIG11dGF0aW9uczIgPSBtOwogICAgICAgICB9KTsKICAgICAgICAgb2JzZXJ2ZXIub2Jz
ZXJ2ZShkaXYsIHsgYXR0cmlidXRlczogdHJ1ZSB9KTsKQEAgLTE4OSw3ICsxODksNyBAQCBmdW5j
dGlvbiB0ZXN0TmFtZXNwYWNlVVJJKCkgewogICAgICAgICBkZWJ1ZygnVGVzdGluZyB0aGF0ICJh
dHRyaWJ1dGVOYW1lc3BhY2UiIHZhbHVlIGlzIGRlbGl2ZXJlZCBwcm9wZXJseS4nKTsKICAgICAg
ICAgbXV0YXRpb25zID0gbnVsbDsKICAgICAgICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIo
ZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1
bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBA
IC0yMjEsNyArMjIxLDcgQEAgZnVuY3Rpb24gdGVzdFByb3BlcnR5QWNjZXNzKCkgewogICAgICAg
ICBpbWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKTsKICAgICAgICAgYSA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTsKIAotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0
YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICBtdXRhdGlvbnMgPSBtOwog
ICAgICAgICB9KTsKIApAQCAtMjYyLDcgKzI2Miw3IEBAIGZ1bmN0aW9uIHRlc3RPcmRlcmluZ1dy
dERPTVN1YnRyZWVNb2RpZmllZCgpIHsKIAogICAgICAgICBzdWJEaXYgPSBkaXYuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpOwogCi0gICAgICAgIG9ic2VydmVyID0g
bmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZl
ciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0
aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBAIC0zMDUsNyArMzA1LDcgQEAgZnVuY3Rpb24gdGVz
dE9sZFZhbHVlKCkgewogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKICAgICAgICAgZGl2LnNldEF0dHJpYnV0ZSgnYmFyJywgJ2JvbycpOwogICAgICAgICAKLSAg
ICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRh
dGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlv
bihtdXRhdGlvbnMpIHsKICAgICAgICAgICAgIHdpbmRvdy5tdXRhdGlvbnMgPSBtdXRhdGlvbnM7
CiAgICAgICAgIH0pOwogICAgICAgICBvYnNlcnZlci5vYnNlcnZlKGRpdiwgeyBhdHRyaWJ1dGVz
OiB0cnVlLCBhdHRyaWJ1dGVPbGRWYWx1ZTogdHJ1ZSB9KTsKQEAgLTM0NiwxMCArMzQ2LDEwIEBA
IGZ1bmN0aW9uIHRlc3RPbGRWYWx1ZUFzUmVxdWVzdGVkKCkgewogICAgICAgICBtdXRhdGlvbnMg
PSBudWxsOwogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAg
ICAgICAgZGl2LnNldEF0dHJpYnV0ZSgnZm9vJywgJ2JhcicpOwotICAgICAgICBvYnNlcnZlcldp
dGhPbGRWYWx1ZSA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9u
cykgeworICAgICAgICBvYnNlcnZlcldpdGhPbGRWYWx1ZSA9IG5ldyBNdXRhdGlvbk9ic2VydmVy
KGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICAgICAgd2luZG93Lm11dGF0aW9uc1dpdGhP
bGRWYWx1ZSA9IG11dGF0aW9uczsKICAgICAgICAgfSk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3
IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9i
c2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAg
ICAgICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0YXRpb25zOwogICAgICAgICB9KTsKICAgICAg
ICAgb2JzZXJ2ZXJXaXRoT2xkVmFsdWUub2JzZXJ2ZShkaXYsIHsgYXR0cmlidXRlczogdHJ1ZSwg
YXR0cmlidXRlT2xkVmFsdWU6IHRydWUgfSk7CkBAIC0zODcsNyArMzg3LDcgQEAgZnVuY3Rpb24g
dGVzdE9sZFZhbHVlVW5pb25NdWx0aXBsZU9ic2VydmF0aW9ucygpIHsKICAgICAgICAgZGl2ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgIHNwYW4gPSBkaXYuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpKTsKICAgICAgICAgc3Bhbi5zZXRB
dHRyaWJ1dGUoJ2ZvbycsICdiYXInKTsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0
YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBu
ZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICAgICAgICAgIHdp
bmRvdy5tdXRhdGlvbnMgPSBtdXRhdGlvbnM7CiAgICAgICAgIH0pOwogICAgICAgICBvYnNlcnZl
ci5vYnNlcnZlKGRpdiwgeyBhdHRyaWJ1dGVzOiB0cnVlLCBhdHRyaWJ1dGVPbGRWYWx1ZTogdHJ1
ZSwgc3VidHJlZTogdHJ1ZSB9KTsKQEAgLTQxNyw3ICs0MTcsNyBAQCBmdW5jdGlvbiB0ZXN0SURM
QXR0cmlidXRlKCkgewogICAgICAgICBkZWJ1ZygnVGVzdGluZyBzZXR0aW5nIGFuIGF0dHJpYnV0
ZSB2aWEgcmVmbGVjdGVkIElETCBhdHRyaWJ1dGUuJyk7CiAgICAgICAgIG11dGF0aW9ucyA9IG51
bGw7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgICAg
ICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9u
cykgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11
dGF0aW9ucykgewogICAgICAgICAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAg
ICAgICAgfSk7CiAgICAgICAgIG9ic2VydmVyLm9ic2VydmUoZGl2LCB7IGF0dHJpYnV0ZXM6IHRy
dWUsIGF0dHJpYnV0ZU9sZFZhbHVlOiB0cnVlIH0pOwpAQCAtNDU0LDcgKzQ1NCw3IEBAIGZ1bmN0
aW9uIHRlc3RBdHRyaWJ1dGVGaWx0ZXIoKSB7CiAgICAgICAgIGRlYnVnKCdUZXN0aW5nIHRoYXQg
YXR0cmlidXRlRmlsdGVyIHdvcmtzIGFzIGV4cGVjdGVkIGFuZCBvYnNlcnZlcyBjYXNlIHdpdGgg
SFRNTCBlbGVtZW50cy4nKTsKIAogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwotICAgICAgICBv
YnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAg
ICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAg
ICAgICBtdXRhdGlvbnMgPSBtOwogICAgICAgICB9KTsKIApAQCAtNDk0LDcgKzQ5NCw3IEBAIGZ1
bmN0aW9uIHRlc3RBdHRyaWJ1dGVGaWx0ZXJTdWJ0cmVlKCkgewogICAgICAgICBkZWJ1ZygnVGVz
dGluZyB0aGUgYmVoYXZpb3Igb2YgYXR0cmlidXRlRmlsdGVyIHdoZW4gdGhlIHNhbWUgb2JzZXJ2
ZXIgb2JzZXJ2ZXMgYXQgbXVsdGlwbGUgbm9kZXMgaW4gYSBzdWJ0cmVlIHdpdGggZGlmZmVyZW50
IGZpbHRlciBvcHRpb25zLicpOwogCiAgICAgICAgIG11dGF0aW9ucyA9IG51bGw7Ci0gICAgICAg
IG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAg
ICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAg
ICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBAIC01NjUsNyArNTY1LDcgQEAg
ZnVuY3Rpb24gdGVzdEF0dHJpYnV0ZUZpbHRlck5vbkhUTUxFbGVtZW50KCkgewogICAgICAgICBk
ZWJ1ZygnVGVzdGluZyB0aGF0IHNldHRpbmcgYW4gYXR0cmlidXRlRmlsdGVyIGZpbHRlcnMgb3V0
IG5hbWVzcGFjZWQgYXR0cmlidXRlcy4nKTsKIAogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwot
ICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0p
IHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7
CiAgICAgICAgICAgICBtdXRhdGlvbnMgPSBtOwogICAgICAgICB9KTsKIApAQCAtNTk3LDcgKzU5
Nyw3IEBAIGZ1bmN0aW9uIHRlc3RBdHRyaWJ1dGVGaWx0ZXJOb25IVE1MRG9jdW1lbnQoKSB7CiAK
ICAgICAgICAgc3ZnRG9jID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQo
J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywgJ3N2ZycsICdzdmcnKTsKICAgICAgICAgbXV0
YXRpb25zID0gbnVsbDsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNl
cnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2
ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7
CiAKQEAgLTY0Miw3ICs2NDIsNyBAQCBmdW5jdGlvbiB0ZXN0U3R5bGVBdHRyaWJ1dGVQcm9wZXJ0
eUFjY2VzcygpIHsKICAgICAgICAgZGVidWcoJ1Rlc3RpbmcgdGhhdCBtb2RpZnlpbmcgYW4gZWxl
bWVudHMgc3R5bGUgcHJvcGVydHkgZGlzcGF0Y2hlcyBNdXRhdGlvbiBSZWNvcmRzLicpOwogCiAg
ICAgICAgIG11dGF0aW9ucyA9IG51bGw7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11
dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRh
dGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAg
ICAgICAgIH0pOwogCkBAIC02OTQsNyArNjk0LDcgQEAgZnVuY3Rpb24gdGVzdFN0eWxlQXR0cmli
dXRlUHJvcGVydHlBY2Nlc3NPbGRWYWx1ZSgpIHsKICAgICAgICAgZGVidWcoJ1Rlc3RpbmcgdGhh
dCBtb2RpZnlpbmcgYW4gZWxlbWVudHMgc3R5bGUgcHJvcGVydHkgZGlzcGF0Y2hlcyBNdXRhdGlv
biBSZWNvcmRzIHdpdGggY29ycmVjdCBvbGRWYWx1ZXMuJyk7CiAKICAgICAgICAgbXV0YXRpb25z
ID0gbnVsbDsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihm
dW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVu
Y3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAg
LTc0Niw3ICs3NDYsNyBAQCBmdW5jdGlvbiB0ZXN0U3R5bGVBdHRyaWJ1dGVQcm9wZXJ0eUFjY2Vz
c0lnbm9yZU5vb3AoKSB7CiAgICAgICAgIGRlYnVnKCdUZXN0aW5nIHRoYXQgYSBuby1vcCBzdHls
ZSBwcm9wZXJ0eSBtdXRhdGlvbiBkb2VzIG5vdCBjcmVhdGUgTXV0YXRpb24gUmVjb3Jkcy4nKTsK
IAogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJL
aXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcg
TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICBtdXRhdGlvbnMgPSBt
OwogICAgICAgICB9KTsKIApAQCAtNzc2LDcgKzc3Niw3IEBAIGZ1bmN0aW9uIHRlc3RNdXRhdGVU
aHJvdWdoQXR0ck5vZGVWYWx1ZSgpIHsKICAgICAgICAgZGVidWcoJ1Rlc3QgdGhhdCBtdXRhdGlu
ZyBhbiBhdHRyaWJ1dGUgdGhyb3VnaCBhbiBhdHRyIG5vZGUgZGVsaXZlcnMgbXV0YXRpb24gcmVj
b3JkcycpOwogCiAgICAgICAgIG11dGF0aW9ucyA9IG51bGw7Ci0gICAgICAgIG9ic2VydmVyID0g
bmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAg
IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAg
ICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0YXRpb25zOwogICAgICAgICB9KTsKIApA
QCAtODEwLDcgKzgxMCw3IEBAIGZ1bmN0aW9uIHRlc3RNdXRhdGVUaHJvdWdoQXR0ck5vZGVDaGls
ZCgpIHsKICAgICAgICAgZGVidWcoJ1Rlc3QgdGhhdCBtdXRhdGluZyBhbiBhdHRyaWJ1dGUgYnkg
YXR0YWNoaW5nIGEgY2hpbGQgdG8gYW4gYXR0ciBub2RlIGRlbGl2ZXJzIG11dGF0aW9uIHJlY29y
ZHMnKTsKIAogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwotICAgICAgICBvYnNlcnZlciA9IG5l
dyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBv
YnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAg
ICAgICAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAKQEAg
LTg0NCw3ICs4NDQsNyBAQCBmdW5jdGlvbiB0ZXN0U2V0QW5kUmVtb3ZlQXR0cmlidXRlTm9kZSgp
IHsKICAgICAgICAgZGVidWcoJ1Rlc3QgdGhhdCBtdXRhdGluZyB2aWEgc2V0QXR0cmlidXRlTm9k
ZSBkZWxpdmVycyBtdXRhdGlvbiByZWNvcmRzJyk7CiAKICAgICAgICAgbXV0YXRpb25zID0gbnVs
bDsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlv
bihtdXRhdGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihm
dW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICAgICAgICAgIHdpbmRvdy5tdXRhdGlvbnMgPSBtdXRh
dGlvbnM7CiAgICAgICAgIH0pOwogCkBAIC04OTMsNyArODkzLDcgQEAgZnVuY3Rpb24gdGVzdE1p
eGVkTm9kZUFuZEVsZW1lbnRPcGVyYXRpb25zKCkgewogICAgICAgICBkZWJ1ZygnVGVzdCB0aGF0
IHNldEF0dHJpYnV0ZSBvbiBhbiBhdHRyaWJ1dGUgd2l0aCBhbiBleGlzdGluZyBBdHRyIGRlbGl2
ZXJzIG11dGF0aW9uIHJlY29yZHMnKTsKIAogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwotICAg
ICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0
aW9ucykgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9u
KG11dGF0aW9ucykgewogICAgICAgICAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsK
ICAgICAgICAgfSk7CiAKQEAgLTkyOSw3ICs5MjksNyBAQCBmdW5jdGlvbiB0ZXN0TmFtZWROb2Rl
TWFwT3BlcmF0aW9ucygpIHsKICAgICAgICAgZGVidWcoJ1Rlc3QgdGhhdCBzZXROYW1lZEl0ZW0g
YW5kIHJlbW92ZU5hbWVkSXRlbSBkZWxpdmVyIG11dGF0aW9uIHJlY29yZHMnKTsKIAogICAgICAg
ICBtdXRhdGlvbnMgPSBudWxsOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlv
bk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBN
dXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICAgICAgd2luZG93
Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAKQEAgLTk5Nyw5ICs5OTcsOSBA
QCBmdW5jdGlvbiBydW5OZXh0VGVzdCgpIHsKICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAK
LWRlc2NyaXB0aW9uKCdUZXN0IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSBvbiBhdHRy
aWJ1dGVzJyk7CitkZXNjcmlwdGlvbignVGVzdCBNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUgb24g
YXR0cmlidXRlcycpOwogCi1pZiAoIXdpbmRvdy5XZWJLaXRNdXRhdGlvbk9ic2VydmVyKQoraWYg
KCF3aW5kb3cuTXV0YXRpb25PYnNlcnZlcikKICAgICB0ZXN0RmFpbGVkKCdUaGlzIHRlc3QgcmVx
dWlyZXMgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUyknKTsKIGVsc2UKICAgICBydW5OZXh0VGVz
dCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWNoYXJh
Y3RlcmRhdGEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZl
LWNoYXJhY3RlcmRhdGEtZXhwZWN0ZWQudHh0CmluZGV4IDFkZmYzYjU1ZDI3NmNjMTVhNjgzOWJl
ZDdkOTdiMzgyYzZmN2FkZmIuLjMxZGQ1NzQwNTJjMmZlNzYzZTg4ZjI3ZjBhMjU5MDA4ZmRlN2U0
MGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1jaGFyYWN0
ZXJkYXRhLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2Vy
dmUtY2hhcmFjdGVyZGF0YS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1UZXN0IFdlYktp
dE11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSBvbiBDaGFyYWN0ZXJEYXRhIG5vZGVzCitUZXN0IE11
dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSBvbiBDaGFyYWN0ZXJEYXRhIG5vZGVzCiAKIE9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlv
bi9vYnNlcnZlLWNoYXJhY3RlcmRhdGEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24v
b2JzZXJ2ZS1jaGFyYWN0ZXJkYXRhLmh0bWwKaW5kZXggMDFjYWVhMjFlYTQzMDZiNmZjZmYyZTQ5
ZmQwZTM5NzM3YTEyNjQ1Yy4uZDg5MDU0YTczYTg0NDMxZjBlOThkOTY5YjM0Mjg5NmJmNmI2MDcy
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWNoYXJhY3Rl
cmRhdGEuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtY2hhcmFj
dGVyZGF0YS5odG1sCkBAIC0yNyw3ICsyNyw3IEBAIGZ1bmN0aW9uIHRlc3RCYXNpYygpIHsKICAg
ICAgICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgIGRpdi50
ZXh0Q29udGVudCA9ICdmb28nOwogICAgICAgICBjaGFyRGF0YU5vZGUgPSBkaXYuZmlyc3RDaGls
ZDsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlv
bihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24o
bSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTg3LDcg
Kzg3LDcgQEAgZnVuY3Rpb24gdGVzdFdyb25nVHlwZSgpIHsKICAgICAgICAgZGl2ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgIGRpdi50ZXh0Q29udGVudCA9ICdoZWxs
byc7CiAgICAgICAgIGNoYXJEYXRhTm9kZSA9IGRpdi5maXJzdENoaWxkOwotICAgICAgICBvYnNl
cnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAg
b2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAgICAg
ICBtdXRhdGlvbnMgPSBtOwogICAgICAgICB9KTsKIApAQCAtMTE3LDEwICsxMTcsMTAgQEAgZnVu
Y3Rpb24gdGVzdE11bHRpcGxlT2JzZXJ2ZXJzKCkgewogICAgICAgICBkaXYgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgZGl2LnRleHRDb250ZW50ID0gJ2Zvbyc7CiAg
ICAgICAgIGNoYXJEYXRhTm9kZSA9IGRpdi5maXJzdENoaWxkOwotICAgICAgICBvYnNlcnZlciA9
IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2
ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICBtdXRh
dGlvbnMgPSBtOwogICAgICAgICB9KTsKLSAgICAgICAgb2JzZXJ2ZXIyID0gbmV3IFdlYktpdE11
dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlcjIgPSBuZXcgTXV0
YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICBtdXRhdGlvbnMyID0gbTsK
ICAgICAgICAgfSk7CiAgICAgICAgIG9ic2VydmVyLm9ic2VydmUoY2hhckRhdGFOb2RlLCB7Y2hh
cmFjdGVyRGF0YTogdHJ1ZX0pOwpAQCAtMTYxLDcgKzE2MSw3IEBAIGZ1bmN0aW9uIHRlc3RPcmRl
cmluZ1dydERPTVN1YnRyZWVNb2RpZmllZCgpIHsKICAgICAgICAgc3ViRGl2LnRleHRDb250ZW50
ID0gJ2Zvbyc7CiAgICAgICAgIGNoYXJEYXRhTm9kZSA9IHN1YkRpdi5maXJzdENoaWxkOwogCi0g
ICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkg
eworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsK
ICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBAIC0yMDIsNyArMjAy
LDcgQEAgZnVuY3Rpb24gdGVzdE9sZFZhbHVlKCkgewogICAgICAgICBkaXYgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgZGl2LnRleHRDb250ZW50ID0gJ2Zvbyc7CiAg
ICAgICAgIGNoYXJEYXRhTm9kZSA9IGRpdi5maXJzdENoaWxkOwotICAgICAgICBvYnNlcnZlciA9
IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAg
ICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewog
ICAgICAgICAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAg
ICAgICAgIG9ic2VydmVyLm9ic2VydmUoY2hhckRhdGFOb2RlLCB7Y2hhcmFjdGVyRGF0YTogdHJ1
ZSwgY2hhcmFjdGVyRGF0YU9sZFZhbHVlOiB0cnVlfSk7CkBAIC0yMzksMTAgKzIzOSwxMCBAQCBm
dW5jdGlvbiB0ZXN0T2xkVmFsdWVBc1JlcXVlc3RlZCgpIHsKICAgICAgICAgZGl2ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgIGRpdi50ZXh0Q29udGVudCA9ICdmb28n
OwogICAgICAgICBjaGFyRGF0YU5vZGUgPSBkaXYuZmlyc3RDaGlsZDsKLSAgICAgICAgb2JzZXJ2
ZXJXaXRoT2xkVmFsdWUgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRh
dGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2ZXJXaXRoT2xkVmFsdWUgPSBuZXcgTXV0YXRpb25PYnNl
cnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICAgICAgICAgIHdpbmRvdy5tdXRhdGlvbnNX
aXRoT2xkVmFsdWUgPSBtdXRhdGlvbnM7CiAgICAgICAgIH0pOwotICAgICAgICBvYnNlcnZlciA9
IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAg
ICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewog
ICAgICAgICAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAg
ICAgICAgIG9ic2VydmVyV2l0aE9sZFZhbHVlLm9ic2VydmUoY2hhckRhdGFOb2RlLCB7Y2hhcmFj
dGVyRGF0YTogdHJ1ZSwgY2hhcmFjdGVyRGF0YU9sZFZhbHVlOiB0cnVlfSk7CkBAIC0yNzcsNyAr
Mjc3LDcgQEAgZnVuY3Rpb24gdGVzdE9sZFZhbHVlVW5pb25NdWx0aXBsZU9ic2VydmF0aW9ucygp
IHsKICAgICAgICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAg
IGRpdi50ZXh0Q29udGVudCA9ICdmb28nOwogICAgICAgICBjaGFyRGF0YU5vZGUgPSBkaXYuZmly
c3RDaGlsZDsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihm
dW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNl
cnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICAgICAgICAgIHdpbmRvdy5tdXRhdGlvbnMg
PSBtdXRhdGlvbnM7CiAgICAgICAgIH0pOwogICAgICAgICBvYnNlcnZlci5vYnNlcnZlKGRpdiwg
e2NoYXJhY3RlckRhdGE6IHRydWUsIGNoYXJhY3RlckRhdGFPbGRWYWx1ZTogdHJ1ZSwgc3VidHJl
ZTogdHJ1ZX0pOwpAQCAtMzE2LDkgKzMxNiw5IEBAIGZ1bmN0aW9uIHJ1bk5leHRUZXN0KCkgewog
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAotZGVzY3JpcHRpb24oJ1Rlc3QgV2ViS2l0TXV0
YXRpb25PYnNlcnZlci5vYnNlcnZlIG9uIENoYXJhY3RlckRhdGEgbm9kZXMnKTsKK2Rlc2NyaXB0
aW9uKCdUZXN0IE11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSBvbiBDaGFyYWN0ZXJEYXRhIG5vZGVz
Jyk7CiAKLWlmICghd2luZG93LldlYktpdE11dGF0aW9uT2JzZXJ2ZXIpCitpZiAoIXdpbmRvdy5N
dXRhdGlvbk9ic2VydmVyKQogICAgIHRlc3RGYWlsZWQoJ1RoaXMgdGVzdCByZXF1aXJlcyBFTkFC
TEUoTVVUQVRJT05fT0JTRVJWRVJTKScpOwogZWxzZQogICAgIHJ1bk5leHRUZXN0KCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtY2hpbGRMaXN0LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1jaGlsZExpc3QtZXhw
ZWN0ZWQudHh0CmluZGV4IGQ3YmIyNzY0MmYxZDQ2YmVmYmMyZDAwZmIxYWU1OWQ4ZTA3N2QyMGEu
LmMzYzFmNmNkZTViMjEwZmM2YTM1NDIwOGYxMGU2MzM0NTI1OWQ4YjkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1jaGlsZExpc3QtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1jaGlsZExpc3QtZXhwZWN0ZWQu
dHh0CkBAIC0xLDQgKzEsNCBAQAotVGVzdCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUg
b24gYXR0cmlidXRlcy4KK1Rlc3QgTXV0YXRpb25PYnNlcnZlci5vYnNlcnZlIG9uIGF0dHJpYnV0
ZXMuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWNoaWxkTGlzdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9tdXRhdGlvbi9vYnNlcnZlLWNoaWxkTGlzdC5odG1sCmluZGV4IGEzYTg0ZDQ0Mzg4NjRhZTcy
YjI5YzY4OThjNDQwZTA5OGQyOGQ5MTIuLmRjNjE4YzZhZjdiMDUyOWFmZmE1OGYxYWZkMGJkNTZj
MGE0MzFmNTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1j
aGlsZExpc3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtY2hp
bGRMaXN0Lmh0bWwKQEAgLTI0LDcgKzI0LDcgQEAgZnVuY3Rpb24gdGVzdEJhc2ljKCkgewogCiAg
ICAgICAgIG11dGF0aW9ucyA9IG51bGw7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2RpdicpOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZl
cihmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICBtdXRhdGlvbnMgPSBtOwogICAgICAgICB9KTsK
IApAQCAtODQsNyArODQsNyBAQCBmdW5jdGlvbiB0ZXN0V3JvbmdUeXBlKCkgewogCiAgICAgICAg
IG11dGF0aW9ucyA9IG51bGw7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2RpdicpOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1
bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5j
dGlvbihtKSB7CiAgICAgICAgICAgICBtdXRhdGlvbnMgPSBtOwogICAgICAgICB9KTsKIApAQCAt
MTEzLDcgKzExMyw3IEBAIGZ1bmN0aW9uIHRlc3RNdWx0aXBsZVJlZ2lzdHJhdGlvbigpIHsKICAg
ICAgICAgY2FsbHMgPSAwOwogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwogICAgICAgICBkaXYg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcg
V2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0g
bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25z
ID0gbTsKICAgICAgICAgICAgIGNhbGxzKys7CiAgICAgICAgIH0pOwpAQCAtMTU0LDEwICsxNTQs
MTAgQEAgZnVuY3Rpb24gdGVzdE11bHRpcGxlT2JzZXJ2ZXJzKCkgewogICAgICAgICBkZWJ1Zygn
VGVzdGluZyB0aGF0IG11bHRpcGxlIG9ic2VydmVycyBjYW4gYmUgcmVnaXN0ZXJlZCB0byBhIGdp
dmVuIG5vZGUgYW5kIGJvdGggcmVjZWl2ZSBtdXRhdGlvbnMuJyk7CiAgICAgICAgIG11dGF0aW9u
cyA9IG51bGw7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwot
ICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0p
IHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7
CiAgICAgICAgICAgICBtdXRhdGlvbnMgPSBtOwogICAgICAgICB9KTsKLSAgICAgICAgb2JzZXJ2
ZXIyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBv
YnNlcnZlcjIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAgICAg
ICBtdXRhdGlvbnMyID0gbTsKICAgICAgICAgfSk7CiAgICAgICAgIG9ic2VydmVyLm9ic2VydmUo
ZGl2LCB7IGNoaWxkTGlzdDogdHJ1ZSB9KTsKQEAgLTE5Miw3ICsxOTIsNyBAQCBmdW5jdGlvbiB0
ZXN0SW5uZXJIVE1MQW5kSW5uZXJUZXh0KCkgewogICAgICAgICBkaXYuaW5uZXJIVE1MID0gJzxz
cGFuPkZvbzwvc3Bhbj48ZGl2PkJhcjwvZGl2Pic7CiAgICAgICAgIHJlbW92ZWREaXYxID0gZGl2
LmZpcnN0Q2hpbGQ7CiAgICAgICAgIHJlbW92ZWREaXYyID0gcmVtb3ZlZERpdjEubmV4dFNpYmxp
bmc7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rp
b24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9u
KG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBAIC0yNTAs
NyArMjUwLDcgQEAgZnVuY3Rpb24gdGVzdFJlcGxhY2VDaGlsZCgpIHsKICAgICAgICAgZGl2Lmlu
bmVySFRNTCA9ICc8c3Bhbj5Gb288L3NwYW4+PGRpdj5CYXI8L2Rpdj4nOwogICAgICAgICByZW1v
dmVkRGl2MSA9IGRpdi5maXJzdENoaWxkOwogCi0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktp
dE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBN
dXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07
CiAgICAgICAgIH0pOwogCkBAIC0zMTUsNyArMzE1LDcgQEAgZnVuY3Rpb24gdGVzdEluc2VydEJl
Zm9yZSgpIHsKICAgICAgICAgYWRkZWREaXYxID0gZnJhZ21lbnQuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2JykpOwogICAgICAgICBhZGRlZERpdjIgPSBmcmFnbWVudC5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7CiAKLSAgICAgICAgb2Jz
ZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAg
IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAg
ICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTM1Niw3ICszNTYsNyBAQCBmdW5j
dGlvbiB0ZXN0QXBwZW5kQ2hpbGQoKSB7CiAgICAgICAgIGFkZGVkRGl2MSA9IGZyYWdtZW50LmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsKICAgICAgICAgYWRkZWRE
aXYyID0gZnJhZ21lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jykp
OwogCi0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rp
b24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9u
KG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBAIC0zODcs
NyArMzg3LDcgQEAgZnVuY3Rpb24gdGVzdElubmVySFRNTEVtcHR5KCkgewogCiAgICAgICAgIHZh
ciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgbXV0YXRpb25z
ID0gbnVsbDsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihm
dW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNl
cnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICAgICAgICAgIHdpbmRvdy5tdXRhdGlvbnMg
PSBtdXRhdGlvbnM7CiAgICAgICAgIH0pOwogICAgICAgICBvYnNlcnZlci5vYnNlcnZlKGRpdiwg
e2NoaWxkTGlzdDogdHJ1ZX0pOwpAQCAtNDE0LDkgKzQxNCw5IEBAIGZ1bmN0aW9uIHJ1bk5leHRU
ZXN0KCkgewogICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAotZGVzY3JpcHRpb24oJ1Rlc3Qg
V2ViS2l0TXV0YXRpb25PYnNlcnZlci5vYnNlcnZlIG9uIGF0dHJpYnV0ZXMuJyk7CitkZXNjcmlw
dGlvbignVGVzdCBNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUgb24gYXR0cmlidXRlcy4nKTsKIAot
aWYgKCF3aW5kb3cuV2ViS2l0TXV0YXRpb25PYnNlcnZlcikKK2lmICghd2luZG93Lk11dGF0aW9u
T2JzZXJ2ZXIpCiAgICAgdGVzdEZhaWxlZCgnVGhpcyB0ZXN0IHJlcXVpcmVzIEVOQUJMRShNVVRB
VElPTl9PQlNFUlZFUlMpJyk7CiBlbHNlCiAgICAgcnVuTmV4dFRlc3QoKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1leGNlcHRpb25zLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1leGNlcHRpb25zLWV4cGVjdGVk
LnR4dAppbmRleCBhZDYyNWQxZmQzMTUxZjczMDZlYThkNDI4NDAxMWEyYmFhNmIyN2M5Li5kYzUz
Y2IyYWZkODNjMmRjZDFkOTM1ZGRlOTNhYzZmMTk3Yjk2ZDNiIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtZXhjZXB0aW9ucy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLWV4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0
CkBAIC0xLDQgKzEsNCBAQAotVGVzdCB0aGF0IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2
ZSB0aHJvd3MgZXhjZXB0aW9ucyBhcHByb3ByaWF0ZWx5CitUZXN0IHRoYXQgTXV0YXRpb25PYnNl
cnZlci5vYnNlcnZlIHRocm93cyBleGNlcHRpb25zIGFwcHJvcHJpYXRlbHkKIAogT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9u
L29ic2VydmUtZXhjZXB0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNl
cnZlLWV4Y2VwdGlvbnMuaHRtbAppbmRleCBkNDY1N2I2ZGQ3YzJlMzMxMjgzZTI4OTI1Y2RmOTBj
NWRmNDYyMDU5Li43NjYxNTQ3YjI3OWZmZmNiYzgzMjdkNTZiYTE5NmZlYjNhMWI1YmViIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtZXhjZXB0aW9ucy5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1leGNlcHRpb25zLmh0bWwK
QEAgLTExLDcgKzExLDcgQEAKIDxzY3JpcHQ+CiAKIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAg
d2luZG93Lm9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0
YXRpb25zKSB7IH0pOworICAgIHdpbmRvdy5vYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVy
KGZ1bmN0aW9uKG11dGF0aW9ucykgeyB9KTsKICAgICBzaG91bGRUaHJvdygnb2JzZXJ2ZXIub2Jz
ZXJ2ZSgpJyk7CiAgICAgc2hvdWxkVGhyb3coJ29ic2VydmVyLm9ic2VydmUobnVsbCknKTsKICAg
ICBzaG91bGRUaHJvdygnb2JzZXJ2ZXIub2JzZXJ2ZSh1bmRlZmluZWQpJyk7CkBAIC0yNiw5ICsy
Niw5IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgc2hvdWxkVGhyb3coJ29ic2VydmVyLm9i
c2VydmUoZG9jdW1lbnQuYm9keSwge2NoYXJhY3RlckRhdGE6IHRydWUsIGF0dHJpYnV0ZUZpbHRl
cjogWyJpZCJdfSknKTsKIH0KIAotZGVzY3JpcHRpb24oJ1Rlc3QgdGhhdCBXZWJLaXRNdXRhdGlv
bk9ic2VydmVyLm9ic2VydmUgdGhyb3dzIGV4Y2VwdGlvbnMgYXBwcm9wcmlhdGVseScpOworZGVz
Y3JpcHRpb24oJ1Rlc3QgdGhhdCBNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUgdGhyb3dzIGV4Y2Vw
dGlvbnMgYXBwcm9wcmlhdGVseScpOwogCi1pZiAoIXdpbmRvdy5XZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyKQoraWYgKCF3aW5kb3cuTXV0YXRpb25PYnNlcnZlcikKICAgICB0ZXN0RmFpbGVkKCdUaGlz
IHRlc3QgcmVxdWlyZXMgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUyknKTsKIGVsc2UKICAgICBy
dW5UZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUt
c3VidHJlZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUt
c3VidHJlZS1leHBlY3RlZC50eHQKaW5kZXggYjg5NGRjZGExYjNmNmQyZDM0OWJkN2M0YTlhNGNk
MDY5YTRlNjllZC4uNjUzYzdhNDgyMjFjOTNlMTlkNzYyOGFhNmNmODY4OTRmMjkxMjIwMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLXN1YnRyZWUtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vb2JzZXJ2ZS1zdWJ0cmVlLWV4
cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKLVRlc3QgV2ViS2l0TXV0YXRpb25PYnNlcnZlci5v
YnNlcnZlIG9uIGEgc3VidHJlZQorVGVzdCBNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUgb24gYSBz
dWJ0cmVlCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLXN1YnRyZWUuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvbXV0YXRpb24vb2JzZXJ2ZS1zdWJ0cmVlLmh0bWwKaW5kZXggMzdlNDAyODVlMmI4YjcxZDIy
MjZmZDM2MTgxZGE0Yjg1M2EyMDU3Mi4uOTU1MTk0N2E0YzMyOGY1YTgzNDg0YzY0ZmU5NDUzY2Ew
MmQ2NTZhMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9vYnNlcnZlLXN1
YnRyZWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL29ic2VydmUtc3VidHJl
ZS5odG1sCkBAIC0yNyw3ICsyNyw3IEBAIGZ1bmN0aW9uIHRlc3RCYXNpYygpIHsKICAgICAgICAg
ZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgIHN1YkRpdiA9IGRp
di5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7CiAgICAgICAgIHN1
YkRpdi5pbm5lckhUTUwgPSAnaGVsbG8sIHdvcmxkJzsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcg
V2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICAgICAgb2Jz
ZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICAg
ICAgICAgIHdpbmRvdy5tdXRhdGlvbnMgPSBtdXRhdGlvbnM7CiAgICAgICAgIH0pOwogCkBAIC02
NiwxMCArNjYsMTAgQEAgZnVuY3Rpb24gdGVzdE11bHRpcGxlT2JzZXJ2ZXJzKCkgewogICAgICAg
ICBtdXRhdGlvbnMyID0gbnVsbDsKICAgICAgICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7CiAgICAgICAgIHN1YkRpdiA9IGRpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKSk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11
dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cu
bXV0YXRpb25zID0gbXV0YXRpb25zOwogICAgICAgICB9KTsKLSAgICAgICAgb2JzZXJ2ZXIyID0g
bmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAg
IG9ic2VydmVyMiA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewog
ICAgICAgICAgICAgd2luZG93Lm11dGF0aW9uczIgPSBtdXRhdGlvbnM7CiAgICAgICAgIH0pOwog
CkBAIC0xMDksNyArMTA5LDcgQEAgZnVuY3Rpb24gdGVzdE11bHRpcGxlT2JzZXJ2YXRpb25zKCkg
ewogICAgICAgICBjYWxscyA9IDA7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpOwogICAgICAgICBzdWJEaXYgPSBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnZGl2JykpOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlv
bk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBN
dXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICAgICAgd2luZG93
Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgICAgICsrY2FsbHM7CiAgICAgICAgIH0p
OwpAQCAtMTQ1LDcgKzE0NSw3IEBAIGZ1bmN0aW9uIHRlc3RUcmFuc2llbnREZXRhY2hlZEJhc2lj
KCkgewogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAg
ICAgc3ViRGl2ID0gZGl2LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
KTsKICAgICAgICAgc3ViRGl2LmlubmVySFRNTCA9ICdoZWxsbywgd29ybGQnOwotICAgICAgICBv
YnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykg
eworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0
aW9ucykgewogICAgICAgICAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAg
ICAgfSk7CiAKQEAgLTIzMCw3ICsyMzAsNyBAQCBmdW5jdGlvbiB0ZXN0VHJhbnNpZW50RGV0YWNo
ZWREZXRhaWxlZCgpIHsKICAgICAgICAgc3ViRGl2Mi5pbm5lckhUTUwgPSAnaGVsbG8sIHdvcmxk
JzsKICAgICAgICAgc3ViRGl2MyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogCi0g
ICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0
YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rp
b24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0YXRpb25z
OwogICAgICAgICB9KTsKIApAQCAtMjk2LDkgKzI5Niw5IEBAIGZ1bmN0aW9uIHJ1bk5leHRUZXN0
KCkgewogICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAotZGVzY3JpcHRpb24oJ1Rlc3QgV2Vi
S2l0TXV0YXRpb25PYnNlcnZlci5vYnNlcnZlIG9uIGEgc3VidHJlZScpOworZGVzY3JpcHRpb24o
J1Rlc3QgTXV0YXRpb25PYnNlcnZlci5vYnNlcnZlIG9uIGEgc3VidHJlZScpOwogCi1pZiAoIXdp
bmRvdy5XZWJLaXRNdXRhdGlvbk9ic2VydmVyKQoraWYgKCF3aW5kb3cuTXV0YXRpb25PYnNlcnZl
cikKICAgICB0ZXN0RmFpbGVkKCdUaGlzIHRlc3QgcmVxdWlyZXMgRU5BQkxFKE1VVEFUSU9OX09C
U0VSVkVSUyknKTsKIGVsc2UKICAgICBydW5OZXh0VGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9tdXRhdGlvbi9zaGFkb3ctZG9tLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211
dGF0aW9uL3NoYWRvdy1kb20uaHRtbAppbmRleCA2NmM3OWVhYzAwZjk1OTYwYTA0MzFjZTJiMjk1
MjJjYTA3NTZiZmFiLi43MzE3ZDdhNzU5MDkwYTY1MTMyNTExY2NiZjRmNTE4MGEwNDU1ZGUyIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL3NoYWRvdy1kb20uaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL3NoYWRvdy1kb20uaHRtbApAQCAtMTQsNyArMTQs
NyBAQCBmdW5jdGlvbiBkb1Rlc3QoKSB7CiAgICAgfQogCiAgICAgdmFyIHNoYWRvd1Jvb3QgPSBp
bnRlcm5hbHMuc2hhZG93Um9vdChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpKTsKLSAg
ICB2YXIgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRh
dGlvbnMpIHsKKyAgICB2YXIgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlv
bihtdXRhdGlvbnMpIHsKICAgICAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAg
ICB9KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi90YWtlUmVjb3Jk
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL3Rha2VSZWNvcmRzLWV4
cGVjdGVkLnR4dAppbmRleCBhYzY0NDI2YWIxM2FlMmUxYzkwMzhkZmI2M2I3OTEyZDNhMDY1ZWY3
Li45ZjMzMjYxNGY0MzZlMWMyMTFmOGE1MmQ2NzcwNjcyOGFjYTE1NGQzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL3Rha2VSZWNvcmRzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL3Rha2VSZWNvcmRzLWV4cGVjdGVkLnR4dApAQCAtMSw0
ICsxLDQgQEAKLVRlc3RpbmcgV2ViS2l0TXV0YXRpb25PYnNlcnZlci50YWtlUmVjb3JkcworVGVz
dGluZyBNdXRhdGlvbk9ic2VydmVyLnRha2VSZWNvcmRzCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi90YWtlUmVjb3Jk
cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi90YWtlUmVjb3Jkcy5odG1sCmluZGV4
IDAzOWEzMmZiZDkxMTgwYmE4ZDY2YzE3ZGI4NTcyYzNlNDU0NGNiYzIuLjYzNDE4MGE1OWNlNTRk
ZDNjNjc1MmU5ZWFjYmYzN2QwOWNlMjIwMGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
bXV0YXRpb24vdGFrZVJlY29yZHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9u
L3Rha2VSZWNvcmRzLmh0bWwKQEAgLTIzLDcgKzIzLDcgQEAgZnVuY3Rpb24gdGVzdEJhc2ljKCkg
ewogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAg
c3ViRGl2ID0gZGl2LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsK
ICAgICAgICAgc3ViRGl2LmlubmVySFRNTCA9ICdoZWxsbywgd29ybGQnOwotICAgICAgICBvYnNl
cnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewor
ICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9u
cykgewogICAgICAgICAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAg
fSk7CiAKQEAgLTczLDkgKzczLDkgQEAgZnVuY3Rpb24gcnVuTmV4dFRlc3QoKSB7CiAgICAgICAg
IGZpbmlzaEpTVGVzdCgpOwogfQogCi1kZXNjcmlwdGlvbignVGVzdGluZyBXZWJLaXRNdXRhdGlv
bk9ic2VydmVyLnRha2VSZWNvcmRzJyk7CitkZXNjcmlwdGlvbignVGVzdGluZyBNdXRhdGlvbk9i
c2VydmVyLnRha2VSZWNvcmRzJyk7CiAKLWlmICghd2luZG93LldlYktpdE11dGF0aW9uT2JzZXJ2
ZXIpCitpZiAoIXdpbmRvdy5NdXRhdGlvbk9ic2VydmVyKQogICAgIHRlc3RGYWlsZWQoJ1RoaXMg
dGVzdCByZXF1aXJlcyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKScpOwogZWxzZQogICAgIHJ1
bk5leHRUZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL3RyYW5z
aWVudC1nYy1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi90cmFuc2llbnQt
Z2MtY3Jhc2guaHRtbAppbmRleCA2YzEzNjQyZDc2OGExMTgyOWJiZjhhYjU5YTFlZmMxMjA5ZWFm
NTEzLi42Y2U2ZWI4YzNhZmVjYTQ2YWMyNTIyNWRiMmQxNWJmMDY5MDE0NWI2IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL3RyYW5zaWVudC1nYy1jcmFzaC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vdHJhbnNpZW50LWdjLWNyYXNoLmh0bWwKQEAgLTYs
NyArNiw3IEBAIGRlc2NyaXB0aW9uKCdDbGVhcmluZyB0cmFuc2llbnQgb2JzZXJ2ZXJzIGFmdGVy
IG9ic2VydmF0aW9uIG5vZGUgaXMgR0NlZCBzaG91bGQKIGZ1bmN0aW9uIGNhbGxiYWNrKG11dGF0
aW9ucykgewogICAgIHdpbmRvdy5tdXRhdGlvbnMgPSBtdXRhdGlvbnM7CiB9Ci12YXIgb2JzZXJ2
ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihjYWxsYmFjayk7Cit2YXIgb2JzZXJ2ZXIg
PSBuZXcgTXV0YXRpb25PYnNlcnZlcihjYWxsYmFjayk7CiAKIHZhciBkaXYgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKTsKIHZhciBzcGFuID0gZGl2LmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCmluZGV4IDBj
ZDBlM2U1ZDBiOTBmOTUyZDI2YWM3OGZmM2NmZDRmYmEwMWFmZGQuLmNhZGUyMTAyZjBjNTE2ZmI0
YTAyZjY2OWZmMjU0NTVkNWY0ZjRmZGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCkBAIC0z
NDAsNyArMzQwLDYgQEAgaHR0cC90ZXN0cy9zZWN1cml0eS9maWxlc3lzdGVtLWlmcmFtZS1mcm9t
LXJlbW90ZS5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9maWxlc3lzdGVt
LXVybC1pbi1pZnJhbWUuaHRtbAogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zZW5k
LWZpbGUtYmxvYi5odG1sCiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3NlbmQtZmls
ZS1ibG9iLWZhaWwuaHRtbAotZmFzdC9tdXRhdGlvbi9maWxlc3lzdGVtLWNhbGxiYWNrLWRlbGl2
ZXJ5Lmh0bWwKIAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDYy
MjMKICMgVGhlIFdlYktpdCBwbHVnaW4gaW1wbGVtZW50YXRpb24gZG9lcyBub3Qgc3VwcG9ydCBp
ZnJhbWUgc2hpbXMuCkBAIC01ODgsOSArNTg3LDkgQEAgbWVkaWEvVzNDL3ZpZGVvL2NhblBsYXlU
eXBlL2NhblBsYXlUeXBlX3R3b19pbXBsaWVzX29uZV80Lmh0bWwKIG1lZGlhL1czQy92aWRlby9j
YW5QbGF5VHlwZS9jYW5QbGF5VHlwZV90d29faW1wbGllc19vbmVfNS5odG1sCiBtZWRpYS9XM0Mv
dmlkZW8vY2FuUGxheVR5cGUvY2FuUGxheVR5cGVfdHdvX2ltcGxpZXNfb25lXzYuaHRtbAogCi0j
IEZhaWxzIGJlY2F1c2UgTXV0YXRpb25PYnNlcnZlcnMgYXJlIG5vdCBub3RpZmllZCBhdCBlbmQt
b2YtdGFzaworIyBNdXRhdGlvbk9ic2VydmVycyBhcmUgbm90IGVuYWJsZWQgZHVlIHRvCiAjIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODI5MAotZmFzdC9tdXRhdGlv
bi9lbmQtb2YtdGFzay1kZWxpdmVyeS5odG1sCitmYXN0L211dGF0aW9uCiAKICMgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyMDEwCiAjIE5lZWRzIFBhZ2VDbGllbnRz
Ojp2aWJyYXRpb25DbGllbnQoKSBpbXBsZW1lbnRhdGlvbi4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBw
ZWQKaW5kZXggYjRhYmQwY2Q3YjlhYTkwMjRjYTgwY2EzNGRmNjIzODc2MzJkYmUzYi4uYTA0NjZm
NGEwYTBlZDkwOWUxN2YwMGNmNThiZGZiODVhNDY3ZjBmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Nr
aXBwZWQKQEAgLTEzMDUsNyArMTMwNSw2IEBAIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2ZpbGVzeXN0
ZW0KIGh0dHAvdGVzdHMvc2VjdXJpdHkvZmlsZXN5c3RlbS1pZnJhbWUtZnJvbS1yZW1vdGUuaHRt
bAogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zZW5kLWZpbGUtYmxvYi5odG1sCiBo
dHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3NlbmQtZmlsZS1ibG9iLWZhaWwuaHRtbAot
ZmFzdC9tdXRhdGlvbi9maWxlc3lzdGVtLWNhbGxiYWNrLWRlbGl2ZXJ5Lmh0bWwKIAogIyBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6bm9kZXNGcm9tUmVjdCBpcyBub3Qgc3VwcG9ydGVkLgogZmFzdC9k
b20vbm9kZXNGcm9tUmVjdC1iYXNpYy5odG1sCkBAIC0xNTc3LDkgKzE1NzYsOSBAQCBwb2ludGVy
LWxvY2svCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjQzNQog
ZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1hcnJheXMuaHRtbAogCi0jIEZhaWxz
IGJlY2F1c2UgTXV0YXRpb25PYnNlcnZlcnMgYXJlIG5vdCBub3RpZmllZCBhdCBlbmQtb2YtdGFz
aworIyBNdXRhdGlvbk9ic2VydmVycyBhcmUgbm90IGVuYWJsZWQgZHVlIHRvCiAjIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODI5MAotZmFzdC9tdXRhdGlvbi9lbmQt
b2YtdGFzay1kZWxpdmVyeS5odG1sCitmYXN0L211dGF0aW9uCiAKICMgUmViYXNlbGluZSBhZnRl
ciBidWcgNzE3MDUuIEFsbCBkaWZmZXJlbmNlcyBhcmUgZHVlIHRvIHRoZSBmYWN0IHRoYXQgdGFi
bGUgY2FwdGlvbnMgbm93CiAjIGV4cGFuZCB0byB0aGUgZnVsbCB3aWR0aCBvZiB0aGUgdGFibGUu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9Ta2lwcGVkIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vU2tpcHBlZAppbmRleCBlOGZhNzdkZTEyM2U5NTFj
ZGI0NTliZWM3NTNiMWJiNjI4OTFiOWY5Li5iZThkM2E5Nzg0ZWZhYjJhZWQwY2NhYjY4ZTQzMWQ0
OTk1MDExZjIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9Ta2lw
cGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1NraXBwZWQKQEAgLTE4MTMs
NyArMTgxMyw2IEBAIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2ZpbGVzeXN0ZW0KIGh0dHAvdGVzdHMv
c2VjdXJpdHkvZmlsZXN5c3RlbS1pZnJhbWUtZnJvbS1yZW1vdGUuaHRtbAogaHR0cC90ZXN0cy93
ZWJzb2NrZXQvdGVzdHMvaHliaS9zZW5kLWZpbGUtYmxvYi5odG1sCiBodHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oeWJpL3NlbmQtZmlsZS1ibG9iLWZhaWwuaHRtbAotZmFzdC9tdXRhdGlvbi9m
aWxlc3lzdGVtLWNhbGxiYWNrLWRlbGl2ZXJ5Lmh0bWwKIGZhc3QvZm9ybXMvZmlsZS9pbnB1dC1m
aWxlLWVudHJpZXMuaHRtbAogCiAjIExheW91dFRlc3RDb250cm9sbGVyOjpub2Rlc0Zyb21SZWN0
IGlzIG5vdCBzdXBwb3J0ZWQuCkBAIC0yMDg4LDkgKzIwODcsOSBAQCBwb2ludGVyLWxvY2svCiAj
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjQzNQogZmFzdC9kb20v
V2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1hcnJheXMuaHRtbAogCi0jIEZhaWxzIGJlY2F1c2Ug
TXV0YXRpb25PYnNlcnZlcnMgYXJlIG5vdCBub3RpZmllZCBhdCBlbmQtb2YtdGFzaworIyBNdXRh
dGlvbk9ic2VydmVycyBhcmUgbm90IGVuYWJsZWQgZHVlIHRvCiAjIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODI5MAotZmFzdC9tdXRhdGlvbi9lbmQtb2YtdGFzay1k
ZWxpdmVyeS5odG1sCitmYXN0L211dGF0aW9uCiAKICNWaWJyYXRpb24gQVBJIGlzIG5vdCBpbXBs
ZW1lbnRlZC4KIGZhc3QvZG9tL25hdmlnYXRvci12aWJyYXRpb24uaHRtbApkaWZmIC0tZ2l0IGEv
V2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZyBiL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKaW5k
ZXggNWIzMTQzZWFmOTY1ODUzYmJkNDNmNjNkNWJmMDU4YzVhZTI2OTE5OC4uNmNjYTQwYTE2N2Qz
OWQxOTRiNjRlNzQ0MGNmYzlhYTkyZDU4OTg0ZSAxMDA2NDQKLS0tIGEvV2ViS2l0TGlicmFyaWVz
L0NoYW5nZUxvZworKysgYi9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTItMDctMDkgIEFkYW0gS2xlaW4gIDxhZGFta0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmVtb3ZlIHZlbmRvciBwcmVmaXggZnJvbSBET00gTXV0YXRpb25PYnNlcnZlcnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5MjMxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3aW4vdG9vbHMvdnNw
cm9wcy9GZWF0dXJlRGVmaW5lcy52c3Byb3BzOgorICAgICAgICAqIHdpbi90b29scy92c3Byb3Bz
L0ZlYXR1cmVEZWZpbmVzQ2Fpcm8udnNwcm9wczoKKwogMjAxMi0wNy0wNCAgSm9obiBNZWxsb3Ig
IDxqb2hubWVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFRleHQgQXV0b3NpemluZzogQWRkIGNv
bXBpbGUgZmxhZyBhbmQgcnVudGltZSBzZXR0aW5nCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJp
ZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXMudnNwcm9wcyBiL1dlYktpdExpYnJh
cmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lcy52c3Byb3BzCmluZGV4IDBmYWM1
ZTI3ZmM5OTRlN2YzNmNiYzdmNThhZDUzOGQ3Y2YzNzMyOWYuLjk1OGRkNTFhYTAzNjFjMzUyNzE5
OTQ3NjFlNWRlNDk5N2Q4NTVkNDAgMTAwNjQ0Ci0tLSBhL1dlYktpdExpYnJhcmllcy93aW4vdG9v
bHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lcy52c3Byb3BzCisrKyBiL1dlYktpdExpYnJhcmllcy93
aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lcy52c3Byb3BzCkBAIC0yNDMsNyArMjQzLDcg
QEAKIAkvPgogICA8VXNlck1hY3JvCiAJCU5hbWU9IkVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMi
Ci0JCVZhbHVlPSJFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTIgorCQlWYWx1ZT0iIgogCQlQZXJm
b3JtRW52aXJvbm1lbnRTZXQ9InRydWUiCiAJLz4KICAgPFVzZXJNYWNybwpkaWZmIC0tZ2l0IGEv
V2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzQ2Fpcm8udnNw
cm9wcyBiL1dlYktpdExpYnJhcmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lc0Nh
aXJvLnZzcHJvcHMKaW5kZXggYWMwNjJkYmYwYjk0M2E1ZDQ2Yjk1OGRlNTNmNDk3YWEwYTU0ZmIy
My4uN2NkMTdjNWE4YzVlNGVkYzA5ZTkyOTEzMDQzNDdhZjBiZjA5NWMzZiAxMDA2NDQKLS0tIGEv
V2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzQ2Fpcm8udnNw
cm9wcworKysgYi9XZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmlu
ZXNDYWlyby52c3Byb3BzCkBAIC0yNDMsNyArMjQzLDcgQEAKIAkvPgogICA8VXNlck1hY3JvCiAJ
CU5hbWU9IkVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMiCi0JCVZhbHVlPSJFTkFCTEVfTVVUQVRJ
T05fT0JTRVJWRVJTIgorCQlWYWx1ZT0iIgogCQlQZXJmb3JtRW52aXJvbm1lbnRTZXQ9InRydWUi
CiAJLz4KICAgPFVzZXJNYWNybwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>