<?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>176182</bug_id>
          
          <creation_ts>2017-08-31 13:57:30 -0700</creation_ts>
          <short_desc>[Fetch API] Add support for consuming a Request ReadableStream body</short_desc>
          <delta_ts>2017-09-27 12:55:58 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1344122</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-31 13:57:30 -0700</bug_when>
    <thetext>It should be possible to get data from it and consume it according Request getters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344123</commentid>
    <comment_count>1</comment_count>
      <attachid>319519</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-31 14:01:33 -0700</bug_when>
    <thetext>Created attachment 319519
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344302</commentid>
    <comment_count>2</comment_count>
      <attachid>319572</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-31 21:12:49 -0700</bug_when>
    <thetext>Created attachment 319572
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344305</commentid>
    <comment_count>3</comment_count>
      <attachid>319574</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-31 21:50:14 -0700</bug_when>
    <thetext>Created attachment 319574
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344308</commentid>
    <comment_count>4</comment_count>
      <attachid>319575</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-31 22:05:58 -0700</bug_when>
    <thetext>Created attachment 319575
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344406</commentid>
    <comment_count>5</comment_count>
      <attachid>319597</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-09-01 08:51:46 -0700</bug_when>
    <thetext>Created attachment 319597
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344447</commentid>
    <comment_count>6</comment_count>
      <attachid>319611</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-09-01 10:28:15 -0700</bug_when>
    <thetext>Created attachment 319611
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344495</commentid>
    <comment_count>7</comment_count>
      <attachid>319625</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-09-01 11:41:00 -0700</bug_when>
    <thetext>Created attachment 319625
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344585</commentid>
    <comment_count>8</comment_count>
      <attachid>319625</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-09-01 14:45:51 -0700</bug_when>
    <thetext>Comment on attachment 319625
Patch

Let&apos;s add a test with an ArrayBuffer of size 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344589</commentid>
    <comment_count>9</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-09-01 14:50:00 -0700</bug_when>
    <thetext>We should also add a test for sending a request to a server that sends a 401 response then we need to send the request again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344612</commentid>
    <comment_count>10</comment_count>
      <attachid>319653</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-09-01 15:21:56 -0700</bug_when>
    <thetext>Created attachment 319653
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344613</commentid>
    <comment_count>11</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-09-01 15:23:47 -0700</bug_when>
    <thetext>Thanks for the review.

(In reply to Alex Christensen from comment #8)
&gt; Comment on attachment 319625 [details]
&gt; Patch
&gt; 
&gt; Let&apos;s add a test with an ArrayBuffer of size 0.

Done

(In reply to Alex Christensen from comment #9)
&gt; We should also add a test for sending a request to a server that sends a 401
&gt; response then we need to send the request again.

Currently, uploading a stream with a request is still forbidden.
A follow-up patch will allow this in which case we might want to add these kinds of test, especially when upload will be done in full streaming mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344631</commentid>
    <comment_count>12</comment_count>
      <attachid>319653</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-01 15:53:26 -0700</bug_when>
    <thetext>Comment on attachment 319653
Patch for landing

Clearing flags on attachment: 319653

Committed r221504: &lt;http://trac.webkit.org/changeset/221504&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344632</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-01 15:53:28 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353742</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-27 12:55:58 -0700</bug_when>
    <thetext>&lt;rdar://problem/34694295&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319519</attachid>
            <date>2017-08-31 14:01:33 -0700</date>
            <delta_ts>2017-08-31 21:10:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176182-20170831140131.patch</filename>
            <type>text/plain</type>
            <size>40222</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNDE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjMzNTA4OWI5ZDU5YTNk
OWEyYTAxYmY4MjIwYmU0OGNhMWQ2Zjg2Ny4uZjUwNGYyZjI5NmMwMTc1MDU1OGNiMTcwYTg5M2Q1
ZmZjNDk4ZDNlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE3LTA4LTMxICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBbRmV0Y2ggQVBJXSBBZGQg
c3VwcG9ydCBmb3IgY29uc3VtaW5nIGEgUmVxdWVzdCBSZWFkYWJsZVN0cmVhbSBib2R5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYxODIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0czogaHR0cC93
cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZW1wdHkuaHRtbAorICAgICAgICAgICAgICAgaHR0cC93
cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZXJyb3IuaHRtbAorCisgICAgICAgIEFkZGluZyBhIFJl
YWRhYmxlU3RyZWFtU2luayB3aGljaCBhbGxvd3MgdG8gcGlwZSBhbGwgUmVhZGFibGVTdHJlYW0g
ZGF0YSBiYWNrIHRvIEMrKyBjb2RlLgorICAgICAgICBUaGlzIHNpbmsgb25seSB0YWtlcyBCdWZm
ZXJTb3VyY2UgYXMgdGhlIG9ubHkgdXNlciBpcyBGZXRjaCB3aGljaCBoYXMgdGhpcyByZXN0cmlj
dGlvbi4KKyAgICAgICAgVGhpcyBzaW5rIGlzIHRpZWQgdG8gdGhlIHJlYWRhYmxlU3RyZWFtUGlw
ZVRvIGJ1aWx0aW4gaW50ZXJuYWwgZnVuY3Rpb24gdGhhdCByZWFkcyBhbGwgZGF0YSBmcm9tIHRo
ZSBSZWFkYWJsZVN0cmVhbQorICAgICAgICBhbmQgc2VuZCBpdCB0byB0aGUgc2luay4KKworICAg
ICAgICBBZGRpbmcgYSBSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luayBzcGVjaWFsaXph
dGlvbiB0byBnZXQgdGhlIGRhdGEgYXMgYSBTaGFyZWRCdWZmZXIuCisKKyAgICAgICAgVXNlIHRo
YXQgY2xhc3MgaW4gRmV0Y2hCb2R5Q29uc3VtZXIgdG8gZ2V0IHRoZSBkYXRhIGJhY2sgZnJvbSB0
aGUgUmVhZGFibGVTdHJlYW0gYW5kIHRyYW5zZm9ybSBpdCBhY2NvcmRpbmcKKyAgICAgICAgdGhl
IGRlc2lyZWQgYm9keSB0eXBlICh0ZXh0LCBKU09OLCBBcnJheUJ1ZmZlcikuCisKKyAgICAgICAg
KiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAg
ICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZldGNo
Qm9keTo6Y29uc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6OmxvYWRpbmdTdWNj
ZWVkZWQpOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6cmVzb2x2ZVdpdGhUeXBlQW5kRGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpGZXRjaEJvZHlDb25zdW1lcjo6Y2xlYW4pOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hC
b2R5Q29uc3VtZXI6OnJlc29sdmVXaXRoRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJv
ZHlDb25zdW1lcjo6cmVzb2x2ZSk6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlD
b25zdW1lci5oOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGZXRjaFJlc3BvbnNlOjpmaW5pc2hDb25zdW1pbmdTdHJlYW0pOgor
ICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUludGVybmFscy5qczoKKyAg
ICAgICAgKHJlYWRhYmxlU3RyZWFtUGlwZVRvKToKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMv
UmVhZGFibGVTdHJlYW1TaW5rLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJs
ZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luazo6UmVhZGFibGVTdHJlYW1Ub1NoYXJlZEJ1ZmZlclNp
bmspOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW1Ub1NoYXJlZEJ1ZmZlclNpbms6
OnBpcGVGcm9tKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlU3RyZWFtVG9TaGFyZWRCdWZm
ZXJTaW5rOjplbnF1ZXVlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlU3RyZWFtVG9TaGFy
ZWRCdWZmZXJTaW5rOjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZVN0cmVhbVRv
U2hhcmVkQnVmZmVyU2luazo6ZXJyb3IpOgorICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFk
YWJsZVN0cmVhbVNpbmsuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtU2luay5pZGw6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZVN0cmVhbTo6cGlwZVRvKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5oOgorCiAyMDE3LTA4LTMwICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgUmVxdWVzdCBi
b2R5IHN0cmVhbSBjbG9uaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGMyMGY5MDZjNGUwY2Y5
YjM5MTU0Y2MwMDUyMGU0NzdiYjExZmMzYmMuLmViNzVlYTEzYTQ1MWY3YWVjZWY3ZjgzMDEzYWRh
NzNiZDA5N2UyNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0zMjUsNiArMzI1LDcgQEAgc2V0
KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW1CWU9CUmVxdWVzdC5pZGwKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1E
ZWZhdWx0Q29udHJvbGxlci5pZGwKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1E
ZWZhdWx0UmVhZGVyLmlkbAorICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNpbmsu
aWRsCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmlkbAogICAgIE1v
ZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0cmVhbS5pZGwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKaW5kZXggNmU3NDc3Nzk4MGViYzRhYjNlM2Q3NTJlZGVhM2ZhNTc3YmFkMzdjYy4uYTU3
MTM2YWQ1ZDEwN2YwN2Q2ZTUxNjFmOTUwMjE3NTUzMDdkNGM4OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlCkBAIC0yNzYsNiArMjc2LDcgQEAgSlNfQklORElOR19JRExTID0gXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtQllPQlJlcXVlc3QuaWRs
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbURlZmF1bHRD
b250cm9sbGVyLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW1EZWZhdWx0UmVhZGVyLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMv
UmVhZGFibGVTdHJlYW1TaW5rLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMv
UmVhZGFibGVTdHJlYW1Tb3VyY2UuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3RyZWFt
cy9Xcml0YWJsZVN0cmVhbS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9B
bmFseXNlck5vZGUuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0
Y2gvRmV0Y2hCb2R5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5
LmNwcAppbmRleCBhYjJiYzYyOGQ4MDVlOWUyM2I5YTM1OTJjYzA3ZWZkZjFkNTRjNTZkLi5mZjcx
MjhlODQ5MDQ3Nzc4ZDBkMjY2YWFjYjg2YmE1OWRhNThjMDE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuY3BwCkBAIC0xMzgsNyArMTM4LDcgQEAgdm9pZCBGZXRj
aEJvZHk6OmNvbnN1bWUoRmV0Y2hCb2R5T3duZXImIG93bmVyLCBSZWY8RGVmZXJyZWRQcm9taXNl
PiYmIHByb21pc2UpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX2NvbnN1bWVyLnJl
c29sdmUoV1RGTW92ZShwcm9taXNlKSk7CisgICAgbV9jb25zdW1lci5yZXNvbHZlKFdURk1vdmUo
cHJvbWlzZSksIG1fcmVhZGFibGVTdHJlYW0uZ2V0KCkpOwogfQogCiAjaWYgRU5BQkxFKFNUUkVB
TVNfQVBJKQpAQCAtMjExLDcgKzIxMSw3IEBAIHZvaWQgRmV0Y2hCb2R5Ojpsb2FkaW5nRmFpbGVk
KCkKIHZvaWQgRmV0Y2hCb2R5Ojpsb2FkaW5nU3VjY2VlZGVkKCkKIHsKICAgICBpZiAobV9jb25z
dW1lUHJvbWlzZSkKLSAgICAgICAgbV9jb25zdW1lci5yZXNvbHZlKG1fY29uc3VtZVByb21pc2Uu
cmVsZWFzZU5vbk51bGwoKSk7CisgICAgICAgIG1fY29uc3VtZXIucmVzb2x2ZShtX2NvbnN1bWVQ
cm9taXNlLnJlbGVhc2VOb25OdWxsKCksIG1fcmVhZGFibGVTdHJlYW0uZ2V0KCkpOwogfQogCiBS
ZWZQdHI8Rm9ybURhdGE+IEZldGNoQm9keTo6Ym9keUFzRm9ybURhdGEoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
ZXRjaC9GZXRjaEJvZHlDb25zdW1lci5jcHAKaW5kZXggYzNlMGEyNDkxYzg0ZWE5ZDJjNGRhYjM3
MDU2NTdiMzg5NmM3Y2U2MC4uNjNjMWNmZDY0MjlhMjkyZWU3MWMxYTc5ZGJlM2UwZDJlM2U4ZjZh
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25z
dW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25z
dW1lci5jcHAKQEAgLTU2LDI5ICs1Niw1OSBAQCBzdGF0aWMgU3RyaW5nIHRleHRGcm9tVVRGOChj
b25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgcmV0dXJuIGRl
Y29kZXItPmRlY29kZUFuZEZsdXNoKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEp
LCBsZW5ndGgpOwogfQogCi12b2lkIEZldGNoQm9keUNvbnN1bWVyOjpyZXNvbHZlV2l0aERhdGEo
UmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRh
LCB1bnNpZ25lZCBsZW5ndGgpCitzdGF0aWMgdm9pZCByZXNvbHZlV2l0aFR5cGVBbmREYXRhKFJl
ZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSwgRmV0Y2hCb2R5Q29uc3VtZXI6OlR5cGUgdHlw
ZSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwg
dW5zaWduZWQgbGVuZ3RoKQogewotICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAgY2FzZSBUeXBl
OjpBcnJheUJ1ZmZlcjoKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEZldGNoQm9keUNv
bnN1bWVyOjpUeXBlOjpBcnJheUJ1ZmZlcjoKICAgICAgICAgZnVsZmlsbFByb21pc2VXaXRoQXJy
YXlCdWZmZXIoV1RGTW92ZShwcm9taXNlKSwgZGF0YSwgbGVuZ3RoKTsKICAgICAgICAgcmV0dXJu
OwotICAgIGNhc2UgVHlwZTo6QmxvYjoKLSAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZVdpdGhOZXds
eUNyZWF0ZWQ8SURMSW50ZXJmYWNlPEJsb2I+PihibG9iRnJvbURhdGEoZGF0YSwgbGVuZ3RoLCBt
X2NvbnRlbnRUeXBlKS5nZXQoKSk7CisgICAgY2FzZSBGZXRjaEJvZHlDb25zdW1lcjo6VHlwZTo6
QmxvYjoKKyAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZVdpdGhOZXdseUNyZWF0ZWQ8SURMSW50ZXJm
YWNlPEJsb2I+PihibG9iRnJvbURhdGEoZGF0YSwgbGVuZ3RoLCBjb250ZW50VHlwZSkuZ2V0KCkp
OwogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBUeXBlOjpKU09OOgorICAgIGNhc2UgRmV0Y2hC
b2R5Q29uc3VtZXI6OlR5cGU6OkpTT046CiAgICAgICAgIGZ1bGZpbGxQcm9taXNlV2l0aEpTT04o
V1RGTW92ZShwcm9taXNlKSwgdGV4dEZyb21VVEY4KGRhdGEsIGxlbmd0aCkpOwogICAgICAgICBy
ZXR1cm47Ci0gICAgY2FzZSBUeXBlOjpUZXh0OgorICAgIGNhc2UgRmV0Y2hCb2R5Q29uc3VtZXI6
OlR5cGU6OlRleHQ6CiAgICAgICAgIHByb21pc2UtPnJlc29sdmU8SURMRE9NU3RyaW5nPih0ZXh0
RnJvbVVURjgoZGF0YSwgbGVuZ3RoKSk7CiAgICAgICAgIHJldHVybjsKLSAgICBjYXNlIFR5cGU6
Ok5vbmU6CisgICAgY2FzZSBGZXRjaEJvZHlDb25zdW1lcjo6VHlwZTo6Tm9uZToKICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiB9CiAKLXZvaWQg
RmV0Y2hCb2R5Q29uc3VtZXI6OnJlc29sdmUoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNl
KQordm9pZCBGZXRjaEJvZHlDb25zdW1lcjo6Y2xlYW4oKQoreworICAgIG1fYnVmZmVyID0gbnVs
bHB0cjsKKyAgICBpZiAobV9zaW5rKSB7CisgICAgICAgIG1fc2luay0+Y2xlYXJDYWxsYmFjaygp
OworICAgICAgICByZXR1cm47CisgICAgfQorfQorCit2b2lkIEZldGNoQm9keUNvbnN1bWVyOjpy
ZXNvbHZlV2l0aERhdGEoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlLCBjb25zdCB1bnNp
Z25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgcmVzb2x2ZVdpdGhUeXBl
QW5kRGF0YShXVEZNb3ZlKHByb21pc2UpLCBtX3R5cGUsIG1fY29udGVudFR5cGUsIGRhdGEsIGxl
bmd0aCk7Cit9CisKK3ZvaWQgRmV0Y2hCb2R5Q29uc3VtZXI6OnJlc29sdmUoUmVmPERlZmVycmVk
UHJvbWlzZT4mJiBwcm9taXNlLCBSZWFkYWJsZVN0cmVhbSogc3RyZWFtKQogeworICAgIGlmIChz
dHJlYW0pIHsKKyAgICAgICAgQVNTRVJUKCFtX3NpbmspOworICAgICAgICBtX3NpbmsgPSBSZWFk
YWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luazo6Y3JlYXRlKFtwcm9taXNlID0gV1RGTW92ZShw
cm9taXNlKSwgdHlwZSA9IG1fdHlwZSwgY29udGVudFR5cGUgPSBtX2NvbnRlbnRUeXBlXShFeGNl
cHRpb25PcjxSZWZQdHI8U2hhcmVkQnVmZmVyPj4mJiByZXN1bHQpIG11dGFibGUgeworICAgICAg
ICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgeworICAgICAgICAgICAgICAgIHByb21p
c2UtPnJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGF1dG8qIGRhdGEgPSByZXN1bHQu
cmV0dXJuVmFsdWUoKSAmJiByZXN1bHQucmV0dXJuVmFsdWUoKS0+ZGF0YSgpID8gcmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCB1bnNpZ25lZCBjaGFyKj4ocmVzdWx0LnJldHVyblZhbHVlKCktPmRhdGEo
KSkgOiBudWxscHRyOworICAgICAgICAgICAgYXV0byBzaXplID0gZGF0YSA/IHJlc3VsdC5yZXR1
cm5WYWx1ZSgpLT5zaXplKCkgOiAwOworICAgICAgICAgICAgcmVzb2x2ZVdpdGhUeXBlQW5kRGF0
YShXVEZNb3ZlKHByb21pc2UpLCB0eXBlLCBjb250ZW50VHlwZSwgZGF0YSwgc2l6ZSk7CisgICAg
ICAgIH0pOworICAgICAgICBtX3NpbmstPnBpcGVGcm9tKCpzdHJlYW0pOworICAgICAgICByZXR1
cm47CisgICAgfQorCiAgICAgQVNTRVJUKG1fdHlwZSAhPSBUeXBlOjpOb25lKTsKICAgICBzd2l0
Y2ggKG1fdHlwZSkgewogICAgIGNhc2UgVHlwZTo6QXJyYXlCdWZmZXI6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmgKaW5kZXggNTFiNzU3M2Vm
ZDA1NDRlN2I4M2M4YjM5NGMzYjdlMzI0MTE0NDVkMS4uZDE3NzYwZGI5MTQ0MzJmZjAwMzU4NTBi
ZTg5MTlmOThiZTgxMmE5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRj
aC9GZXRjaEJvZHlDb25zdW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gv
RmV0Y2hCb2R5Q29uc3VtZXIuaApAQCAtMjksMTEgKzI5LDEzIEBACiAjcHJhZ21hIG9uY2UKIAog
I2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiUmVhZGFibGVTdHJl
YW1TaW5rLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgQmxvYjsKK2NsYXNzIFJlYWRhYmxlU3RyZWFtOwogCiBjbGFzcyBGZXRjaEJv
ZHlDb25zdW1lciB7CiBwdWJsaWM6CkBAIC01NSw5ICs1Nyw5IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldENvbnRlbnRUeXBlKGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpIHsgbV9jb250ZW50VHlw
ZSA9IGNvbnRlbnRUeXBlOyB9CiAgICAgdm9pZCBzZXRUeXBlKFR5cGUgdHlwZSkgeyBtX3R5cGUg
PSB0eXBlOyB9CiAKLSAgICB2b2lkIGNsZWFuKCkgeyBtX2J1ZmZlciA9IG51bGxwdHI7IH0KKyAg
ICB2b2lkIGNsZWFuKCk7CiAKLSAgICB2b2lkIHJlc29sdmUoUmVmPERlZmVycmVkUHJvbWlzZT4m
Jik7CisgICAgdm9pZCByZXNvbHZlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYsIFJlYWRhYmxlU3Ry
ZWFtKik7CiAgICAgdm9pZCByZXNvbHZlV2l0aERhdGEoUmVmPERlZmVycmVkUHJvbWlzZT4mJiwg
Y29uc3QgdW5zaWduZWQgY2hhciosIHVuc2lnbmVkKTsKIAogICAgIGJvb2wgaGFzRGF0YSgpIGNv
bnN0IHsgcmV0dXJuICEhbV9idWZmZXI7IH0KQEAgLTY2LDYgKzY4LDcgQEAgcHJpdmF0ZToKICAg
ICBUeXBlIG1fdHlwZTsKICAgICBTdHJpbmcgbV9jb250ZW50VHlwZTsKICAgICBSZWZQdHI8U2hh
cmVkQnVmZmVyPiBtX2J1ZmZlcjsKKyAgICBSZWZQdHI8UmVhZGFibGVTdHJlYW1Ub1NoYXJlZEJ1
ZmZlclNpbms+IG1fc2luazsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwCmluZGV4IGMxOTNjZTNl
MTc2ZDcxYTZjYTIxN2Q1ZDUwMmE4OTM2MjcxZDEyNzkuLmNjZTdhODcwMWM0ZjE2YzA4YzkzNWFm
MzA2MzA2YjkyMDQ3OWUxZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0
Y2gvRmV0Y2hSZXNwb25zZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9G
ZXRjaFJlc3BvbnNlLmNwcApAQCAtMzE3LDcgKzMxNyw3IEBAIHZvaWQgRmV0Y2hSZXNwb25zZTo6
Y29uc3VtZUNodW5rKFJlZjxKU0M6OlVpbnQ4QXJyYXk+JiYgY2h1bmspCiAKIHZvaWQgRmV0Y2hS
ZXNwb25zZTo6ZmluaXNoQ29uc3VtaW5nU3RyZWFtKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJv
bWlzZSkKIHsKLSAgICBtX2NvbnN1bWVyLnJlc29sdmUoV1RGTW92ZShwcm9taXNlKSk7CisgICAg
bV9jb25zdW1lci5yZXNvbHZlKFdURk1vdmUocHJvbWlzZSksIG51bGxwdHIpOwogfQogCiB2b2lk
IEZldGNoUmVzcG9uc2U6OmNvbnN1bWVCb2R5QXNTdHJlYW0oKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzCmlu
ZGV4IGY0ZTVkYWY3YjIxM2Q0MGVlYmU4YTQ5ZGNiMzZkNzQ5YjY3YWUzNzIuLjU0Mjc3ZjNhZTA0
ZGFmYmQxNTIxZjlhNjIzZjVhMDcwMzE5NjY3ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUludGVybmFscy5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1JbnRlcm5hbHMuanMKQEAgLTEw
Niw2ICsxMDYsMzMgQEAgZnVuY3Rpb24gcmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlckVy
cm9yKGNvbnRyb2xsZXIsIGVycm9yKQogICAgIEByZWFkYWJsZVN0cmVhbUVycm9yKHN0cmVhbSwg
ZXJyb3IpOwogfQogCitmdW5jdGlvbiByZWFkYWJsZVN0cmVhbVBpcGVUbyhzdHJlYW0sIHNpbmsp
Cit7CisgICAgInVzZSBzdHJpY3QiOworICAgIEBhc3NlcnQoQGlzUmVhZGFibGVTdHJlYW0oc3Ry
ZWFtKSk7CisKKyAgICBjb25zdCByZWFkZXIgPSBuZXcgQFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJl
YWRlcihzdHJlYW0pOworCisgICAgcmVhZGVyLkBjbG9zZWRQcm9taXNlQ2FwYWJpbGl0eS5AcHJv
bWlzZS5AdGhlbigoKSA9PiB7IH0sIChlKSA9PiB7IHNpbmsuZXJyb3IoZSk7IH0pOworCisgICAg
ZnVuY3Rpb24gZG9QaXBlKCkgeworICAgICAgICBAcmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVy
UmVhZChyZWFkZXIpLkB0aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgaWYgKHJl
c3VsdC5kb25lKSB7CisgICAgICAgICAgICAgICAgc2luay5jbG9zZSgpOworICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAg
ICAgICAgc2luay5lbnF1ZXVlKHJlc3VsdC52YWx1ZSk7CisgICAgICAgICAgICB9IGNhdGNoIChl
KSB7CisgICAgICAgICAgICAgICAgc2luay5lcnJvcigiUmVhZGFibGVTdHJlYW0gY2h1bmsgZW5x
dWV1ZWluZyBpbiB0aGUgc2luayBmYWlsZWQiKTsKKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBkb1BpcGUoKTsKKyAgICAgICAgfSk7CisgICAgfQor
ICAgIGRvUGlwZSgpOworfQorCiBmdW5jdGlvbiByZWFkYWJsZVN0cmVhbVRlZShzdHJlYW0sIHNo
b3VsZENsb25lKQogewogICAgICJ1c2Ugc3RyaWN0IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNpbmsuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjgw
OGE1OTQ1ZjFlMTQxMWZmMDhmNGMzNWVkYzczN2Q2ZTc0OTY1YgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNpbmsuY3BwCkBA
IC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJSZWFkYWJsZVN0cmVhbVNpbmsuaCIKKworI2luY2x1ZGUgIkJ1ZmZlclNvdXJjZS5oIgor
I2luY2x1ZGUgIkRPTUV4Y2VwdGlvbi5oIgorI2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFtLmgiCisj
aW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCisKKyNpZiBFTkFCTEUoU1RSRUFNU19BUEkpCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworUmVhZGFibGVTdHJlYW1Ub1NoYXJlZEJ1ZmZlclNpbms6OlJl
YWRhYmxlU3RyZWFtVG9TaGFyZWRCdWZmZXJTaW5rKENhbGxiYWNrJiYgY2FsbGJhY2spCisgICAg
OiBtX2NhbGxiYWNrIHsgV1RGTW92ZShjYWxsYmFjaykgfQoreworfQorCit2b2lkIFJlYWRhYmxl
U3RyZWFtVG9TaGFyZWRCdWZmZXJTaW5rOjpwaXBlRnJvbShSZWFkYWJsZVN0cmVhbSYgc3RyZWFt
KQoreworICAgIHN0cmVhbS5waXBlVG8oKnRoaXMpOworfQorCit2b2lkIFJlYWRhYmxlU3RyZWFt
VG9TaGFyZWRCdWZmZXJTaW5rOjplbnF1ZXVlKGNvbnN0IEJ1ZmZlclNvdXJjZSYgYnVmZmVyKQor
eworICAgIGZwcmludGYoc3RkZXJyLCAiUmVhZGFibGVTdHJlYW1Ub1NoYXJlZEJ1ZmZlclNpbms6
OmVucXVldWVcbiIpOworICAgIGlmICghbV9kYXRhKSB7CisgICAgICAgIG1fZGF0YSA9IFNoYXJl
ZEJ1ZmZlcjo6Y3JlYXRlKGJ1ZmZlci5kYXRhKCksIGJ1ZmZlci5sZW5ndGgoKSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgbV9kYXRhLT5hcHBlbmQocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oYnVmZmVyLmRhdGEoKSksIGJ1ZmZlci5sZW5ndGgoKSk7Cit9CisKK3ZvaWQgUmVh
ZGFibGVTdHJlYW1Ub1NoYXJlZEJ1ZmZlclNpbms6OmNsb3NlKCkKK3sKKyAgICBmcHJpbnRmKHN0
ZGVyciwgIlJlYWRhYmxlU3RyZWFtVG9TaGFyZWRCdWZmZXJTaW5rOjpjbG9zZVxuIik7CisgICAg
aWYgKGF1dG8gY2FsbGJhY2sgPSBXVEZNb3ZlKG1fY2FsbGJhY2spKQorICAgICAgICBjYWxsYmFj
ayhXVEZNb3ZlKG1fZGF0YSkpOworfQorCit2b2lkIFJlYWRhYmxlU3RyZWFtVG9TaGFyZWRCdWZm
ZXJTaW5rOjplcnJvcihTdHJpbmcmJiBtZXNzYWdlKQoreworICAgIGZwcmludGYoc3RkZXJyLCAi
UmVhZGFibGVTdHJlYW1Ub1NoYXJlZEJ1ZmZlclNpbms6OmVycm9yXG4iKTsKKyAgICBpZiAoYXV0
byBjYWxsYmFjayA9IFdURk1vdmUobV9jYWxsYmFjaykpCisgICAgICAgIGNhbGxiYWNrKEV4Y2Vw
dGlvbiB7IFR5cGVFcnJvciwgV1RGTW92ZShtZXNzYWdlKSB9KTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNUUkVBTVNfQVBJKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjYxYzJhYWJlZjJkNTY2MDMxOGViYjc5MDVkMWZhZWE5NTg3MmJmNTkKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1TaW5r
LmgKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoU1RSRUFNU19BUEkpCisKKyNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgorI2luY2x1ZGUg
PHd0Zi9GdW5jdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgQnVmZmVyU291cmNlOworY2xhc3MgUmVhZGFibGVTdHJlYW07
CitjbGFzcyBTaGFyZWRCdWZmZXI7CisKK2NsYXNzIFJlYWRhYmxlU3RyZWFtU2luayA6IHB1Ymxp
YyBSZWZDb3VudGVkPFJlYWRhYmxlU3RyZWFtU2luaz4geworcHVibGljOgorICAgIHZpcnR1YWwg
flJlYWRhYmxlU3RyZWFtU2luaygpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgdm9pZCBlbnF1
ZXVlKGNvbnN0IEJ1ZmZlclNvdXJjZSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGVycm9yKFN0cmluZyYmKSA9IDA7Cit9OworCitjbGFzcyBS
ZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luayBmaW5hbCA6IHB1YmxpYyBSZWFkYWJsZVN0
cmVhbVNpbmsgeworcHVibGljOgorICAgIHVzaW5nIENhbGxiYWNrID0gV1RGOjpGdW5jdGlvbjx2
b2lkKEV4Y2VwdGlvbk9yPFJlZlB0cjxTaGFyZWRCdWZmZXI+PiYmKT47CisgICAgc3RhdGljIFJl
ZjxSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luaz4gY3JlYXRlKENhbGxiYWNrJiYgY2Fs
bGJhY2spIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVhZGFibGVTdHJlYW1Ub1NoYXJlZEJ1ZmZl
clNpbmsoV1RGTW92ZShjYWxsYmFjaykpKTsgfQorICAgIHZvaWQgcGlwZUZyb20oUmVhZGFibGVT
dHJlYW0mKTsKKyAgICB2b2lkIGNsZWFyQ2FsbGJhY2soKSB7IG1fY2FsbGJhY2sgPSB7IH07IH0K
KworcHJpdmF0ZToKKyAgICBSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luayhDYWxsYmFj
ayYmKTsKKworICAgIHZvaWQgZW5xdWV1ZShjb25zdCBCdWZmZXJTb3VyY2UmKSBmaW5hbDsKKyAg
ICB2b2lkIGNsb3NlKCkgZmluYWw7CisgICAgdm9pZCBlcnJvcihTdHJpbmcmJikgZmluYWw7CisK
KyAgICBDYWxsYmFjayBtX2NhbGxiYWNrOworICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IG1fZGF0
YTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShTVFJF
QU1TX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFk
YWJsZVN0cmVhbVNpbmsuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtU2luay5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzk5OTk0NDBjNWU0MmY0MmNlMTM2Yzk1Njc0
NjI0MTdjOTJiYWJhMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNpbmsuaWRsCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisqIENv
cHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworCitbCisgICAgTm9JbnRlcmZh
Y2VPYmplY3QsCisgICAgQ29uZGl0aW9uYWw9U1RSRUFNU19BUEksCisgICAgU2tpcFZUYWJsZVZh
bGlkYXRpb24KK10gaW50ZXJmYWNlIFJlYWRhYmxlU3RyZWFtU2luayB7CisgICAgdm9pZCBlbnF1
ZXVlKEJ1ZmZlclNvdXJjZSBjaHVuayk7CisgICAgdm9pZCBjbG9zZSgpOworICAgIHZvaWQgZXJy
b3IoRE9NU3RyaW5nIG1lc3NhZ2UpOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlZjJlMzU0YjVjMzRhNjk5YzNmYTJmNzcz
MmRkZWI5NjBiODE4NzI2Li43ZjY4MmQ4Y2VkY2Y3ODA2YzEyZTUzYjU2MzJmMmRmYWQ3M2M1NWEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xNjczLDYgKzE2NzMsNyBAQAogCQk0MTIzMDgxQjEzOEM0Mjk3MDBCQ0NGQ0EgLyog
V2ViQ29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5M0YxOUIxQTA4MjQ1RTVBMDAxRTlBQkMgLyogV2ViQ29yZS5mcmFtZXdvcmsg
Ki87IH07CiAJCTQxMjMwOTEzMTM4QzQyRkYwMEJDQ0ZDQSAvKiBKYXZhU2NyaXB0Q29yZS5mcmFt
ZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
ODIxNjI5OTAyOUY0RkI1MDEwMDAxMzEgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrICovOyB9
OwogCQk0MTI3RDUzNzBGOEFBQjFEMDBFNDI0RjUgLyogU2NyaXB0U3RhdGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEyN0Q1MzYwRjhBQUIxRDAw
RTQyNEY1IC8qIFNjcmlwdFN0YXRlLmNwcCAqLzsgfTsKKwkJNDEyOUM5OEExRjU4N0ZFQjAwOUQ3
NDAzIC8qIFJlYWRhYmxlU3RyZWFtU2luay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MTI5Qzk4NzFGNTg2NjJEMDA5RDc0MDMgLyogUmVhZGFibGVT
dHJlYW1TaW5rLmNwcCAqLzsgfTsKIAkJNDEyOURGODUxQkI1QjgwNzAwMzIyQTE2IC8qIEpTUmVh
ZGFibGVTdHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMjlERjgzMUJCNUI3RjcwMDMyMkExNiAvKiBKU1Jl
YWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5jcHAgKi87IH07CiAJCTQxMjlERjg2MUJC
NUI4MEMwMDMyMkExNiAvKiBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEyOURGODQxQkI1
QjdGNzAwMzIyQTE2IC8qIEpTUmVhZGFibGVTdHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDEzMDE1RDkx
QzdCNTcxNDAwMDkxQzZFIC8qIEZldGNoUmVzcG9uc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzMDE1RDUxQzdCNTcwNDAwMDkxQzZFIC8qIEZl
dGNoUmVzcG9uc2UuY3BwICovOyB9OwpAQCAtMzM5NCw3ICszMzk1LDkgQEAKIAkJN0VFNjg0NzEx
MkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlUmVzcG9uc2VDRk5ldC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RUU2ODQ1RTEyRDI2RTM4MDBFNzk0
MTUgLyogUmVzb3VyY2VSZXNwb25zZUNGTmV0LmNwcCAqLzsgfTsKIAkJN0VFNjg0NzUxMkQyNkU3
MDAwRTc5NDE1IC8qIFJlc291cmNlTG9hZGVyQ0ZOZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0VFNjg0NzQxMkQyNkU3MDAwRTc5NDE1IC8qIFJl
c291cmNlTG9hZGVyQ0ZOZXQuY3BwICovOyB9OwogCQk3RjRDOTZEQzFBRDQ0ODM1MDAzNjVBNTAg
LyogSlNGZXRjaEJvZHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0Y0Qzk2RDgxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hCb2R5LmNwcCAqLzsg
fTsKKwkJN0Y0Qzk2REMxQUQ0NDgzNTAwMzY1QTUxIC8qIEpTUmVhZGFibGVTdHJlYW1TaW5rLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdGNEM5NkQ4
MUFENDQ4MzUwMDM2NUE1MSAvKiBKU1JlYWRhYmxlU3RyZWFtU2luay5jcHAgKi87IH07CiAJCTdG
NEM5NkREMUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoQm9keS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0Y0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8q
IEpTRmV0Y2hCb2R5LmggKi87IH07CisJCTdGNEM5NkREMUFENDQ4MzUwMDM2NUE1MSAvKiBKU1Jl
YWRhYmxlU3RyZWFtU2luay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0Y0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUxIC8qIEpTUmVhZGFibGVTdHJlYW1TaW5r
LmggKi87IH07CiAJCTgxMDJDNTg4MTMyNUJCMTEwMERERTY3QSAvKiBTdHJpbmdDYWxsYmFjay5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MTAyQzU4
NzEzMjVCQjExMDBEREU2N0EgLyogU3RyaW5nQ2FsbGJhY2suY3BwICovOyB9OwogCQk4MUFDNTk5
OTEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFBQzU5OTcxMzE2MzZFNjAwMDlBN0UwIC8q
IERhdGFUcmFuc2Zlckl0ZW0uaCAqLzsgfTsKIAkJODFBQzU5OUExMzE2MzZFNjAwMDlBN0UwIC8q
IERhdGFUcmFuc2Zlckl0ZW1MaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4MUFDNTk5ODEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRl
bUxpc3QuaCAqLzsgfTsKQEAgLTkzNzksNiArOTM4Miw5IEBACiAJCTQxMTg5RUY3MUFEODIzMjgw
MEI5M0Y2NCAvKiBSZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBSZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDExODlFRjcxQUQ4MjMyODAwQjk1NjcyIC8qIFJlYWRhYmxlU3Ry
ZWFtQllPQlJlcXVlc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFt
QllPQlJlcXVlc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTI3RDUzNjBG
OEFBQjFEMDBFNDI0RjUgLyogU2NyaXB0U3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU2NyaXB0U3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0MTI5Qzk4MDFGNTg2MUM3MDA5RDc0MDMgLyogUmVhZGFibGVTdHJlYW1TaW5rLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtU2luay5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTI5Qzk4MTFGNTg2MUM3MDA5RDc0MDMgLyogUmVh
ZGFibGVTdHJlYW1TaW5rLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZWFkYWJsZVN0cmVh
bVNpbmsuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTI5Qzk4NzFGNTg2NjJE
MDA5RDc0MDMgLyogUmVhZGFibGVTdHJlYW1TaW5rLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtU2luay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQxMjlERjgzMUJCNUI3RjcwMDMyMkExNiAvKiBKU1JlYWRhYmxlU3RyZWFt
UHJpdmF0ZUNvbnN0cnVjdG9ycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxMjlERjg0MUJCNUI3RjcwMDMyMkExNiAvKiBKU1JlYWRhYmxl
U3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTMwMTVENTFDN0I1NzA0MDAwOTFDNkUgLyogRmV0Y2hSZXNwb25z
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGZXRjaFJlc3BvbnNl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExNTU3LDcgKzExNTYzLDkgQEAK
IAkJN0VFNjg0NUUxMkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlUmVzcG9uc2VDRk5ldC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXNvdXJjZVJlc3BvbnNlQ0ZO
ZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RUU2ODQ3NDEyRDI2RTcwMDBF
Nzk0MTUgLyogUmVzb3VyY2VMb2FkZXJDRk5ldC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSZXNvdXJjZUxvYWRlckNGTmV0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0Y0Qzk2RDgxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hCb2R5LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRmV0Y2hCb2R5LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0Y0Qzk2RDgxQUQ0NDgzNTAwMzY1QTUxIC8qIEpT
UmVhZGFibGVTdHJlYW1TaW5rLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTUmVhZGFibGVTdHJlYW1TaW5rLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJN0Y0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hCb2R5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRmV0Y2hCb2R5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTdGNEM5NkQ5MUFENDQ4MzUwMDM2NUE1MSAvKiBKU1JlYWRhYmxlU3RyZWFtU2lu
ay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1JlYWRhYmxlU3RyZWFtU2lu
ay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MTAyQzU4NzEzMjVCQjExMDBEREU2
N0EgLyogU3RyaW5nQ2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gU3RyaW5nQ2FsbGJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
MUFDNTk5NzEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRhVHJhbnNmZXJJdGVtLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTgxQUM1OTk4MTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJ
dGVtTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRhVHJhbnNmZXJJ
dGVtTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc5ODcsNiArMTc5OTUs
OSBAQAogCQkJCTQxOUZBRkFEMUFCQUJDRDUwMDVCODI4QiAvKiBSZWFkYWJsZVN0cmVhbURlZmF1
bHRSZWFkZXIuaWRsICovLAogCQkJCTk5MDhCMEYyMUJDQUNGOTEwMEVEMEY2NSAvKiBSZWFkYWJs
ZVN0cmVhbURlZmF1bHRSZWFkZXIuanMgKi8sCiAJCQkJOTkwOEIwRjExQkNBQ0Y5MTAwRUQwRjY1
IC8qIFJlYWRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzICovLAorCQkJCTQxMjlDOTg3MUY1ODY2MkQw
MDlENzQwMyAvKiBSZWFkYWJsZVN0cmVhbVNpbmsuY3BwICovLAorCQkJCTQxMjlDOTgwMUY1ODYx
QzcwMDlENzQwMyAvKiBSZWFkYWJsZVN0cmVhbVNpbmsuaCAqLywKKwkJCQk0MTI5Qzk4MTFGNTg2
MUM3MDA5RDc0MDMgLyogUmVhZGFibGVTdHJlYW1TaW5rLmlkbCAqLywKIAkJCQk0MThDMzk1QjFD
OEYwQTYxMDA1MUM4QTMgLyogUmVhZGFibGVTdHJlYW1Tb3VyY2UuaCAqLywKIAkJCQk0MThDMzk1
QzFDOEYwQTYxMDA1MUM4QTMgLyogUmVhZGFibGVTdHJlYW1Tb3VyY2UuaWRsICovLAogCQkJCTk5
MDhCMEYxMUJDQUNGOTEwMEVEMEY1NSAvKiBTdHJlYW1JbnRlcm5hbHMuanMgKi8sCkBAIC0xODEw
Miw3ICsxODExMyw5IEBACiAJCQkJOEU0Qzk2RDgxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hS
ZXNwb25zZS5jcHAgKi8sCiAJCQkJOEU0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hS
ZXNwb25zZS5oICovLAogCQkJCTdFNEM5NkQ4MUFENDQ4MzUwMDM2NUE1MSAvKiBKU1JlYWRhYmxl
U3RyZWFtU291cmNlLmNwcCAqLywKKwkJCQk3RjRDOTZEODFBRDQ0ODM1MDAzNjVBNTEgLyogSlNS
ZWFkYWJsZVN0cmVhbVNpbmsuY3BwICovLAogCQkJCTdFNEM5NkQ5MUFENDQ4MzUwMDM2NUE1MSAv
KiBKU1JlYWRhYmxlU3RyZWFtU291cmNlLmggKi8sCisJCQkJN0Y0Qzk2RDkxQUQ0NDgzNTAwMzY1
QTUxIC8qIEpTUmVhZGFibGVTdHJlYW1TaW5rLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IEZldGNo
QVBJOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI4NTMyLDYgKzI4NTQ1LDcgQEAK
IAkJCQk3QzRDOTZERjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRS
ZWFkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMjlERjg2MUJCNUI4MEMwMDMyMkExNiAvKiBK
U1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
N0U0Qzk2REQxQUQ0NDgzNTAwMzY1QTUxIC8qIEpTUmVhZGFibGVTdHJlYW1Tb3VyY2UuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTdGNEM5NkREMUFENDQ4MzUwMDM2NUE1MSAvKiBKU1JlYWRhYmxlU3Ry
ZWFtU2luay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDk5OEFFQ0UxM0Y5RDZDOTAwOTBCMUFBIC8q
IEpTUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTU3
RTIzMzcxMURDRDQ2OEYwMEYyOEQwMSAvKiBKU1JzYUhhc2hlZEltcG9ydFBhcmFtcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTc2OEU0MzQxREI3NTI0NTAwRDBBNEY3IC8qIEpTUnNhSGFzaGVkS2V5
R2VuUGFyYW1zLmggaW4gSGVhZGVycyAqLywKQEAgLTMxODM3LDcgKzMxODUxLDYgQEAKIAkJCQlB
ODcxREUyNTBBMTUyQUM4MDBCMTJBNjggLyogSFRNTEhlYWRFbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE4RUE3Q0FFMEExOTJCOUMwMEE4RUY1RiAvKiBIVE1MSGVhZGluZ0VsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThFQTdDQjMwQTE5MkI5QzAwQThFRjVGIC8qIEhUTUxI
UkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRTQxRkE5QjkxRjU3NThGRjAwMzM4NThB
IC8qIFJlbmRlclRyZWVVcGRhdGVyTXVsdGlDb2x1bW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTg3MURFMjYwQTE1MkFDODAwQjEyQTY4IC8qIEhUTUxIdG1sRWxlbWVudC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBODcxREUyNDBBMTUyQUM4MDBCMTJBNjggLyogSFRNTElGcmFtZUVsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThFQTdEMzEwQTE5Mzg1NTAwQThFRjVGIC8qIEhUTUxJ
bWFnZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMjU1OCw2ICszMjU3MSw3IEBACiAJ
CQkJN0M0Qzk2REUxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVh
ZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxMjlERjg1MUJCNUI4MDcwMDMyMkExNiAvKiBK
U1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk3RTRDOTZEQzFBRDQ0ODM1MDAzNjVBNTEgLyogSlNSZWFkYWJsZVN0cmVhbVNvdXJjZS5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQk3RjRDOTZEQzFBRDQ0ODM1MDAzNjVBNTEgLyogSlNSZWFkYWJs
ZVN0cmVhbVNpbmsuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE4QzM5NjAxQzhGMEFBRTAwNTFD
OEEzIC8qIEpTUmVhZGFibGVTdHJlYW1Tb3VyY2VDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNDk5OEFFQ0QxM0Y5RDZDOTAwOTBCMUFBIC8qIEpTUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2Fs
bGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTdFMjMzNzMxRENENDZCNjAwRjI4RDAxIC8q
IEpTUnNhSGFzaGVkSW1wb3J0UGFyYW1zLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzMwNjksNiAr
MzMwODMsNyBAQAogCQkJCTA3OEUwOTAxMTdEMTRDRUUwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbVJl
Z2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OEUwOTAyMTdEMTRDRUUwMDQyMEFBMSAv
KiBNZWRpYVN0cmVhbVRyYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OEUwOTAzMTdEMTRD
RUUwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbVRyYWNrRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJNDEyOUM5OEExRjU4N0ZFQjAwOUQ3NDAzIC8qIFJlYWRhYmxlU3RyZWFtU2luay5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwN0ZGREU2ODE4MUFFRDQyMDA3MkQ0MDkgLyogTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q2NDFFQkYxODE5QjM2MDAwRUU0
QzQxIC8qIE1lZGlhVGltZUFWRm91bmRhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDYw
QzBDNjE5M0U4N0M3MDAzQzY1NkIgLyogTWVkaWFUaW1lUVRLaXQubW0gaW4gU291cmNlcyAqLywK
QEAgLTMzNDQ0LDYgKzMzNDU5LDcgQEAKIAkJCQlFNDgyODQwODFGNDQ1OTRDMDA4NjNBQzMgLyog
UmVuZGVyVHJlZVVwZGF0ZXJGaXJzdExldHRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDhF
MzMzMTFGNDc0MzcwMDBCQUIwRUYgLyogUmVuZGVyVHJlZVVwZGF0ZXJHZW5lcmF0ZWRDb250ZW50
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0OEUzMzJEMUY0NzAzODAwMEJBQjBFRiAvKiBSZW5k
ZXJUcmVlVXBkYXRlckxpc3RJdGVtLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUU0MUZBOUI5MUY1
NzU4RkYwMDMzODU4QSAvKiBSZW5kZXJUcmVlVXBkYXRlck11bHRpQ29sdW1uLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUU0NDYxNDUxMENENjhBMzUwMEZBREE3NSAvKiBSZW5kZXJWaWRlby5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQ0VBNDg2NzA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVyVmll
dy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCRTIwNTA3RDE4QTQ1OEJGMDA4MDY0N0UgLyogUmVu
ZGVyVlRUQ3VlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvUmVhZGFibGVTdHJlYW0uY3BwCmluZGV4IDcyMjc0MGY3ZmE0YWIwMjFkOWRmMTEzMTMyMjVl
YmU3MDM2ZDQzZWQuLmNmNDg2OTc2NDk5YjI4ZTNjY2RjYzI1Yzg3NzNhMTU1Y2JlOWU5ZDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5jcHAKQEAgLTI3
LDYgKzI3LDcgQEAKICNpbmNsdWRlICJSZWFkYWJsZVN0cmVhbS5oIgogCiAjaW5jbHVkZSAiSlNE
T01Db252ZXJ0U2VxdWVuY2VzLmgiCisjaW5jbHVkZSAiSlNSZWFkYWJsZVN0cmVhbVNpbmsuaCIK
ICNpbmNsdWRlICJKU1JlYWRhYmxlU3RyZWFtU291cmNlLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpT
Q2xpZW50RGF0YS5oIgogCkBAIC01NCw2ICs1NSwyNCBAQCBSZWY8UmVhZGFibGVTdHJlYW0+IFJl
YWRhYmxlU3RyZWFtOjpjcmVhdGUoSlNDOjpFeGVjU3RhdGUmIGV4ZWNTdGF0ZSwgUmVmUHRyPFJl
YQogICAgIHJldHVybiBjcmVhdGUoZ2xvYmFsT2JqZWN0LCAqbmV3UmVhZGFibGVTdHJlYW0pOwog
fQogCit2b2lkIFJlYWRhYmxlU3RyZWFtOjpwaXBlVG8oUmVhZGFibGVTdHJlYW1TaW5rJiBzaW5r
KQoreworICAgIGF1dG8mIHN0YXRlID0gKm1fZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7Cisg
ICAgSlNWTUNsaWVudERhdGEqIGNsaWVudERhdGEgPSBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0
YSo+KHN0YXRlLnZtKCkuY2xpZW50RGF0YSk7CisgICAgY29uc3QgSWRlbnRpZmllciYgcHJpdmF0
ZU5hbWUgPSBjbGllbnREYXRhLT5idWlsdGluRnVuY3Rpb25zKCkucmVhZGFibGVTdHJlYW1JbnRl
cm5hbHNCdWlsdGlucygpLnJlYWRhYmxlU3RyZWFtUGlwZVRvUHJpdmF0ZU5hbWUoKTsKKworICAg
IGF1dG8gcmVhZGFibGVTdHJlYW1QaXBlVG8gPSBtX2dsb2JhbE9iamVjdC0+Z2V0KCZzdGF0ZSwg
cHJpdmF0ZU5hbWUpOworICAgIEFTU0VSVChyZWFkYWJsZVN0cmVhbVBpcGVUby5pc0Z1bmN0aW9u
KCkpOworCisgICAgQ2FsbERhdGEgY2FsbERhdGE7CisgICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBn
ZXRDYWxsRGF0YShyZWFkYWJsZVN0cmVhbVBpcGVUbywgY2FsbERhdGEpOworICAgIEFTU0VSVChj
YWxsVHlwZSAhPSBKU0M6OkNhbGxUeXBlOjpOb25lKTsKKyAgICBNYXJrZWRBcmd1bWVudEJ1ZmZl
ciBhcmd1bWVudHM7CisgICAgYXJndW1lbnRzLmFwcGVuZChyZWFkYWJsZVN0cmVhbSgpKTsKKyAg
ICBhcmd1bWVudHMuYXBwZW5kKHRvSlMoJnN0YXRlLCBtX2dsb2JhbE9iamVjdC5nZXQoKSwgc2lu
aykpOworICAgIEpTQzo6Y2FsbCgmc3RhdGUsIHJlYWRhYmxlU3RyZWFtUGlwZVRvLCBjYWxsVHlw
ZSwgY2FsbERhdGEsIEpTQzo6anNVbmRlZmluZWQoKSwgYXJndW1lbnRzKTsKK30KKwogc3RkOjpw
YWlyPFJlZjxSZWFkYWJsZVN0cmVhbT4sIFJlZjxSZWFkYWJsZVN0cmVhbT4+IFJlYWRhYmxlU3Ry
ZWFtOjp0ZWUoKQogewogICAgIGF1dG8mIHN0YXRlID0gKm1fZ2xvYmFsT2JqZWN0LT5nbG9iYWxF
eGVjKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0
cmVhbS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW0uaAppbmRl
eCBhMGMyNmE0MzU3NjhiMmQxMGFmNDEwNmU2MTdmNTdjYjMwYTMwYzk1Li5hZTViMGQ1ZmFhOTAy
NzJjODc3MTY3MTQ5OTJlM2RjMzRjNjZmNDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1JlYWRhYmxlU3RyZWFtLmgKQEAgLTMyLDYgKzMyLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitjbGFzcyBSZWFkYWJsZVN0cmVhbVNpbms7CiBjbGFzcyBSZWFkYWJsZVN0cmVhbVNv
dXJjZTsKIAogY2xhc3MgUmVhZGFibGVTdHJlYW0gZmluYWwgOiBwdWJsaWMgRE9NR3VhcmRlZDxK
U1JlYWRhYmxlU3RyZWFtPiB7CkBAIC00Miw2ICs0Myw4IEBAIHB1YmxpYzoKIAogICAgIHN0ZDo6
cGFpcjxSZWY8UmVhZGFibGVTdHJlYW0+LCBSZWY8UmVhZGFibGVTdHJlYW0+PiB0ZWUoKTsKIAor
ICAgIHZvaWQgcGlwZVRvKFJlYWRhYmxlU3RyZWFtU2luayYpOworCiAgICAgSlNSZWFkYWJsZVN0
cmVhbSogcmVhZGFibGVTdHJlYW0oKSB7IHJldHVybiBndWFyZGVkKCk7IH0KIAogcHJvdGVjdGVk
OgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDQyMmJjOGY5NWM3YWE3ZDVkYTUzMTEyNTIzYzBhNWU4NTU2MzVhM2UuLjg4NDE1
MDlhM2FkNTM3ZjcxNzViN2VkZmI4N2E3OTcyNWQwZWUwM2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBA
QAorMjAxNy0wOC0zMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAg
ICAgW0ZldGNoIEFQSV0gQWRkIHN1cHBvcnQgZm9yIGNvbnN1bWluZyBhIFJlcXVlc3QgUmVhZGFi
bGVTdHJlYW0gYm9keQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTc2MTgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBodHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1kaXN0dXJiZWQtMS1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZGlzdHVyYmVk
LTItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFt
LWRpc3R1cmJlZC0zLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3dwdC9mZXRjaC9yZXF1
ZXN0LXN0cmVhbS1lbXB0eS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0
L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWVtcHR5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
d3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWVycm9yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZXJyb3IuaHRtbDogQWRkZWQuCisK
IDIwMTctMDgtMzAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBSZXF1ZXN0IGJvZHkgc3RyZWFtIGNsb25pbmcKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWRpc3R1cmJlZC0xLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWRp
c3R1cmJlZC0xLWV4cGVjdGVkLnR4dAppbmRleCBiODU0NmJlYTFkNzgwYWIyMjQzMWFjYzhiZjJl
OGUzNzJmMmIyMzZjLi5hN2Y3YjI0MmUxYjVmYjc0YjgzYTM2MDU2Y2EzNjg0MmQ1M2YxOTM2IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1kaXN0
dXJiZWQtMS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVx
dWVzdC1zdHJlYW0tZGlzdHVyYmVkLTEtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAogCiBQ
QVNTIEdldHRpbmcgYmxvYiBhZnRlciBnZXR0aW5nIHRoZSBSZXF1ZXN0IGJvZHkgLSBub3QgZGlz
dHVyYmVkLCBub3QgbG9ja2VkIAotRkFJTCBHZXR0aW5nIHRleHQgYWZ0ZXIgZ2V0dGluZyB0aGUg
UmVxdWVzdCBib2R5IC0gbm90IGRpc3R1cmJlZCwgbm90IGxvY2tlZCBhc3NlcnRfdHJ1ZTogZXhw
ZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgR2V0dGluZyBqc29uIGFmdGVyIGdldHRpbmcgdGhl
IFJlcXVlc3QgYm9keSAtIG5vdCBkaXN0dXJiZWQsIG5vdCBsb2NrZWQgcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiU3ludGF4RXJyb3I6IFRoZSBz
dHJpbmcgZGlkIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgcGF0dGVybi4iCi1GQUlMIEdldHRpbmcg
YXJyYXlCdWZmZXIgYWZ0ZXIgZ2V0dGluZyB0aGUgUmVxdWVzdCBib2R5IC0gbm90IGRpc3R1cmJl
ZCwgbm90IGxvY2tlZCBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1Mg
R2V0dGluZyB0ZXh0IGFmdGVyIGdldHRpbmcgdGhlIFJlcXVlc3QgYm9keSAtIG5vdCBkaXN0dXJi
ZWQsIG5vdCBsb2NrZWQgCitQQVNTIEdldHRpbmcganNvbiBhZnRlciBnZXR0aW5nIHRoZSBSZXF1
ZXN0IGJvZHkgLSBub3QgZGlzdHVyYmVkLCBub3QgbG9ja2VkIAorUEFTUyBHZXR0aW5nIGFycmF5
QnVmZmVyIGFmdGVyIGdldHRpbmcgdGhlIFJlcXVlc3QgYm9keSAtIG5vdCBkaXN0dXJiZWQsIG5v
dCBsb2NrZWQgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVl
c3Qtc3RyZWFtLWRpc3R1cmJlZC0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0
L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWRpc3R1cmJlZC0yLWV4cGVjdGVkLnR4dAppbmRleCBmMmI5
YjJlNWZjZTkzNTZkMTUzNjJiMmExZWFhNjUxMDhiMDY2MzY3Li5kZWNiZmQ0Yzk4MWQwYTdjMjQz
NjEwMTMxZjBiZDllZDBkN2EyNjYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9m
ZXRjaC9yZXF1ZXN0LXN0cmVhbS1kaXN0dXJiZWQtMi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZGlzdHVyYmVkLTItZXhwZWN0ZWQu
dHh0CkBAIC0xLDYgKzEsNiBAQAogCi1GQUlMIEdldHRpbmcgYmxvYiBhZnRlciBnZXR0aW5nIGEg
bG9ja2VkIFJlcXVlc3QgYm9keSBhc3NlcnRfdW5yZWFjaGVkOiBTaG91bGQgaGF2ZSByZWplY3Rl
ZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQotRkFJTCBHZXR0aW5nIHRleHQg
YWZ0ZXIgZ2V0dGluZyBhIGxvY2tlZCBSZXF1ZXN0IGJvZHkgYXNzZXJ0X3VucmVhY2hlZDogU2hv
dWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKLUZB
SUwgR2V0dGluZyBqc29uIGFmdGVyIGdldHRpbmcgYSBsb2NrZWQgUmVxdWVzdCBib2R5IGFzc2Vy
dF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0
ICJTeW50YXhFcnJvcjogVGhlIHN0cmluZyBkaWQgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBwYXR0
ZXJuLiIgKCJTeW50YXhFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVF
cnJvciIpCi1GQUlMIEdldHRpbmcgYXJyYXlCdWZmZXIgYWZ0ZXIgZ2V0dGluZyBhIGxvY2tlZCBS
ZXF1ZXN0IGJvZHkgYXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVm
aW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKK1BBU1MgR2V0dGluZyBibG9iIGFmdGVyIGdl
dHRpbmcgYSBsb2NrZWQgUmVxdWVzdCBib2R5IAorUEFTUyBHZXR0aW5nIHRleHQgYWZ0ZXIgZ2V0
dGluZyBhIGxvY2tlZCBSZXF1ZXN0IGJvZHkgCitQQVNTIEdldHRpbmcganNvbiBhZnRlciBnZXR0
aW5nIGEgbG9ja2VkIFJlcXVlc3QgYm9keSAKK1BBU1MgR2V0dGluZyBhcnJheUJ1ZmZlciBhZnRl
ciBnZXR0aW5nIGEgbG9ja2VkIFJlcXVlc3QgYm9keSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZGlzdHVyYmVkLTMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZGlzdHVyYmVkLTMt
ZXhwZWN0ZWQudHh0CmluZGV4IGI5M2UzYTZmZWFkMTNhOGZhYmNiNDcxN2Y0NDhlNDcwZjNlOWRm
OTQuLjUyZWQ2MzBlNGI1ZmNhNmMxN2M1MTNhM2I5NGY4ZDYzMWQxZTI1MTQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWRpc3R1cmJlZC0zLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVh
bS1kaXN0dXJiZWQtMy1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw2IEBACiAKLUZBSUwgR2V0dGlu
ZyBibG9iIGFmdGVyIHJlYWRpbmcgdGhlIFJlcXVlc3QgYm9keSBhc3NlcnRfdW5yZWFjaGVkOiBT
aG91bGQgaGF2ZSByZWplY3RlZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQot
RkFJTCBHZXR0aW5nIHRleHQgYWZ0ZXIgcmVhZGluZyB0aGUgUmVxdWVzdCBib2R5IGFzc2VydF91
bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNo
YWJsZSBjb2RlCi1GQUlMIEdldHRpbmcganNvbiBhZnRlciByZWFkaW5nIHRoZSBSZXF1ZXN0IGJv
ZHkgYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJl
dyBvYmplY3QgIlN5bnRheEVycm9yOiBUaGUgc3RyaW5nIGRpZCBub3QgbWF0Y2ggdGhlIGV4cGVj
dGVkIHBhdHRlcm4uIiAoIlN5bnRheEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3Ii
ICgiVHlwZUVycm9yIikKLUZBSUwgR2V0dGluZyBhcnJheUJ1ZmZlciBhZnRlciByZWFkaW5nIHRo
ZSBSZXF1ZXN0IGJvZHkgYXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVu
ZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKK1BBU1MgR2V0dGluZyBibG9iIGFmdGVy
IHJlYWRpbmcgdGhlIFJlcXVlc3QgYm9keSAKK1BBU1MgR2V0dGluZyB0ZXh0IGFmdGVyIHJlYWRp
bmcgdGhlIFJlcXVlc3QgYm9keSAKK1BBU1MgR2V0dGluZyBqc29uIGFmdGVyIHJlYWRpbmcgdGhl
IFJlcXVlc3QgYm9keSAKK1BBU1MgR2V0dGluZyBhcnJheUJ1ZmZlciBhZnRlciByZWFkaW5nIHRo
ZSBSZXF1ZXN0IGJvZHkgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNo
L3JlcXVlc3Qtc3RyZWFtLWVtcHR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0
L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWVtcHR5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOGIx
ZWNhMzE2M2UzNmJiODMwZTUzZGY1NWQ0MDdmNjAzNzU1ZDljCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZW1wdHktZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNiBAQAorCitQQVNTIEVtcHR5IHN0cmVhbSBib2R5IGFzIHRleHQgCitQ
QVNTIEVtcHR5IHN0cmVhbSBib2R5IGFzIGFycmF5QnVmZmVyIAorUEFTUyBFbXB0eSBzdHJlYW0g
Ym9keSBhcyBKU09OIAorUEFTUyBFbXB0eSBzdHJlYW0gYm9keSBhcyBibG9iIAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1lbXB0eS5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZW1wdHkuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yMDJmOTg0NDU3MmE5NWMyZDE3M2U4YzIwNDA4MGZmMWU5MTA2ODE5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0t
ZW1wdHkuaHRtbApAQCAtMCwwICsxLDUwIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICA8
aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPkNvbnN1bWluZyBS
ZXF1ZXN0IGJvZHkgd2l0aCBub24gQnVmZmVyU291cmNlIFJlYWRhYmxlU3RyZWFtIGNodW5rczwv
dGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0PgorZnVuY3Rpb24gY3Jl
YXRlUmVxdWVzdFdpdGhFbXB0eVJlYWRhYmxlU3RyZWFtKCkKK3sKKyAgICB2YXIgc3RyZWFtID0g
bmV3IFJlYWRhYmxlU3RyZWFtKHtzdGFydDogY29udHJvbGxlciA9PiB7CisgICAgICAgIGNvbnRy
b2xsZXIuY2xvc2UoKTsKKyAgICB9fSk7CisgICAgcmV0dXJuIG5ldyBSZXF1ZXN0KCIiLCB7Ym9k
eTogc3RyZWFtLCBtZXRob2Q6ICJQT1NUIn0pOworfQorCitwcm9taXNlX3Rlc3QodGVzdCA9PiB7
CisgICAgcmV0dXJuIGNyZWF0ZVJlcXVlc3RXaXRoRW1wdHlSZWFkYWJsZVN0cmVhbSgpLnRleHQo
KS50aGVuKHRleHQgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHRleHQsICIiKTsKKyAgICB9
KTsKK30sICJFbXB0eSBzdHJlYW0gYm9keSBhcyB0ZXh0Iik7CisKK3Byb21pc2VfdGVzdCh0ZXN0
ID0+IHsKKyAgICByZXR1cm4gY3JlYXRlUmVxdWVzdFdpdGhFbXB0eVJlYWRhYmxlU3RyZWFtKCku
YXJyYXlCdWZmZXIoKS50aGVuKGJ1ZmZlciA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoYnVm
ZmVyLmJ5dGVMZW5ndGgsIDAsICJSZXNvbHZlZCB2YWx1ZSBzaG91bGQgYmUgZW1wdHkiKTsKKyAg
ICB9KTsKK30sICJFbXB0eSBzdHJlYW0gYm9keSBhcyBhcnJheUJ1ZmZlciIpOworCitwcm9taXNl
X3Rlc3QodGVzdCA9PiB7CisgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0ZXN0LCAiU3ludGF4
RXJyb3IiLCBjcmVhdGVSZXF1ZXN0V2l0aEVtcHR5UmVhZGFibGVTdHJlYW0oKS5qc29uKCkpOwor
fSwgIkVtcHR5IHN0cmVhbSBib2R5IGFzIEpTT04iKTsKKworcHJvbWlzZV90ZXN0KHRlc3QgPT4g
eworICAgIHJldHVybiBjcmVhdGVSZXF1ZXN0V2l0aEVtcHR5UmVhZGFibGVTdHJlYW0oKS5ibG9i
KCkudGhlbihmdW5jdGlvbihib2R5QXNCbG9iKSB7CisgICAgICAgIHZhciBwcm9taXNlID0gbmV3
IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICB2YXIgcmVh
ZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKKyAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9
PiB7IHJlc29sdmUocmVhZGVyLnJlc3VsdCkgfTsKKyAgICAgICAgICAgIHJlYWRlci5vbmVycm9y
ID0gKCkgPT4geyByZWplY3QoIkJsb2IncyByZWFkZXIgZmFpbGVkIik7IH07CisgICAgICAgICAg
ICByZWFkZXIucmVhZEFzVGV4dChib2R5QXNCbG9iKTsKKyAgICAgICAgfSk7CisgICAgICAgIHJl
dHVybiBwcm9taXNlLnRoZW4oZnVuY3Rpb24oYm9keSkgeworICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhib2R5LCAiIiwgIlJlc29sdmVkIHZhbHVlIHNob3VsZCBiZSBlbXB0eSIpOworICAgICAg
ICB9KTsKKyAgfSk7Cit9LCAiRW1wdHkgc3RyZWFtIGJvZHkgYXMgYmxvYiIpOworICAgIDwvc2Ny
aXB0PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dw
dC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1lcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1lcnJvci1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzU0ZmI0OWUyZDBlMzY1MGM5NjEyMDc1MTZhY2U5NzQxOGQ5MjM4NAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWVycm9yLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBSZXF1ZXN0IGJvZHkgc2hvdWxkIG9u
bHkgY29udGFpbiBCdWZmZXJTb3VyY2UgY2h1bmtzIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1lcnJvci5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZXJyb3IuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMTll
NDhkYWE4MmVhMjEwZmMwM2M1ZjEzYjA2MjYzNzllMWM4ZTBmCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZXJyb3IuaHRtbApAQCAt
MCwwICsxLDIxIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPkNvbnN1bWluZyBSZXF1ZXN0IGJvZHkgd2l0
aCBub24gQnVmZmVyU291cmNlIFJlYWRhYmxlU3RyZWFtIGNodW5rczwvdGl0bGU+CisgICAgPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgPC9o
ZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0PgorcHJvbWlzZV90ZXN0KHRlc3QgPT4geworICAg
IHZhciBzdHJlYW0gPSBuZXcgUmVhZGFibGVTdHJlYW0oe3N0YXJ0OiBjb250cm9sbGVyID0+IHsK
KyAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKCJUaGlzIGlzIG5vdCBhIGJ1ZmZlciIpOworICAg
ICAgICBjb250cm9sbGVyLmNsb3NlKCk7CisgICAgfX0pOworICAgIHZhciByZXF1ZXN0ID0gbmV3
IFJlcXVlc3QoIiIsIHtib2R5OiBzdHJlYW0sIG1ldGhvZDogIlBPU1QifSk7CisgICAgcmV0dXJu
IHByb21pc2VfcmVqZWN0cyh0ZXN0LCBuZXcgVHlwZUVycm9yLCByZXF1ZXN0LnRleHQoKSk7Cit9
LCAiUmVxdWVzdCBib2R5IHNob3VsZCBvbmx5IGNvbnRhaW4gQnVmZmVyU291cmNlIGNodW5rcyIp
OworICAgIDwvc2NyaXB0PgorICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319572</attachid>
            <date>2017-08-31 21:12:49 -0700</date>
            <delta_ts>2017-08-31 21:50:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176182-20170831211248.patch</filename>
            <type>text/plain</type>
            <size>42055</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNDQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGY4ODYwNTcwMTkwZWE5
ZWM1MzIxYTVhZDIyMDU0NDA4Mzk2MGNjYi4uMDIxZTY0ZGMxZDFmMTU1YjYwMWM2M2Q0NGNlYzQx
ZmJiOGE4MWI2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE3LTA4LTMxICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBbRmV0Y2ggQVBJXSBBZGQg
c3VwcG9ydCBmb3IgY29uc3VtaW5nIGEgUmVxdWVzdCBSZWFkYWJsZVN0cmVhbSBib2R5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYxODIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0czogaHR0cC93
cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZW1wdHkuaHRtbAorICAgICAgICAgICAgICAgaHR0cC93
cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZXJyb3IuaHRtbAorCisgICAgICAgIEFkZGluZyBhIFJl
YWRhYmxlU3RyZWFtU2luayB3aGljaCBhbGxvd3MgdG8gcGlwZSBhbGwgUmVhZGFibGVTdHJlYW0g
ZGF0YSBiYWNrIHRvIEMrKyBjb2RlLgorICAgICAgICBUaGlzIHNpbmsgb25seSB0YWtlcyBCdWZm
ZXJTb3VyY2UgYXMgdGhlIG9ubHkgdXNlciBpcyBGZXRjaCB3aGljaCBoYXMgdGhpcyByZXN0cmlj
dGlvbi4KKyAgICAgICAgVGhpcyBzaW5rIGlzIHRpZWQgdG8gdGhlIHJlYWRhYmxlU3RyZWFtUGlw
ZVRvIGJ1aWx0aW4gaW50ZXJuYWwgZnVuY3Rpb24gdGhhdCByZWFkcyBhbGwgZGF0YSBmcm9tIHRo
ZSBSZWFkYWJsZVN0cmVhbQorICAgICAgICBhbmQgc2VuZCBpdCB0byB0aGUgc2luay4KKworICAg
ICAgICBBZGRpbmcgYSBSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luayBzcGVjaWFsaXph
dGlvbiB0byBnZXQgdGhlIGRhdGEgYXMgYSBTaGFyZWRCdWZmZXIuCisKKyAgICAgICAgVXNlIHRo
YXQgY2xhc3MgaW4gRmV0Y2hCb2R5Q29uc3VtZXIgdG8gZ2V0IHRoZSBkYXRhIGJhY2sgZnJvbSB0
aGUgUmVhZGFibGVTdHJlYW0gYW5kIHRyYW5zZm9ybSBpdCBhY2NvcmRpbmcKKyAgICAgICAgdGhl
IGRlc2lyZWQgYm9keSB0eXBlICh0ZXh0LCBKU09OLCBBcnJheUJ1ZmZlcikuCisKKyAgICAgICAg
KiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAg
ICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZldGNo
Qm9keTo6Y29uc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6OmxvYWRpbmdTdWNj
ZWVkZWQpOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6cmVzb2x2ZVdpdGhUeXBlQW5kRGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpGZXRjaEJvZHlDb25zdW1lcjo6Y2xlYW4pOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hC
b2R5Q29uc3VtZXI6OnJlc29sdmVXaXRoRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJv
ZHlDb25zdW1lcjo6cmVzb2x2ZSk6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlD
b25zdW1lci5oOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGZXRjaFJlc3BvbnNlOjpmaW5pc2hDb25zdW1pbmdTdHJlYW0pOgor
ICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUludGVybmFscy5qczoKKyAg
ICAgICAgKHJlYWRhYmxlU3RyZWFtUGlwZVRvKToKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMv
UmVhZGFibGVTdHJlYW1TaW5rLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJs
ZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luazo6UmVhZGFibGVTdHJlYW1Ub1NoYXJlZEJ1ZmZlclNp
bmspOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW1Ub1NoYXJlZEJ1ZmZlclNpbms6
OnBpcGVGcm9tKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlU3RyZWFtVG9TaGFyZWRCdWZm
ZXJTaW5rOjplbnF1ZXVlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlU3RyZWFtVG9TaGFy
ZWRCdWZmZXJTaW5rOjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZVN0cmVhbVRv
U2hhcmVkQnVmZmVyU2luazo6ZXJyb3IpOgorICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFk
YWJsZVN0cmVhbVNpbmsuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtU2luay5pZGw6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZVN0cmVhbTo6cGlwZVRvKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5oOgorCiAyMDE3LTA4LTMxICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgZ2V0RmlsZU1ldGFkYXRhKCkgZG9lcyBub3Qg
d29yayBhcyBleHBlY3RlZCBmb3Igc3ltYm9saWMgbGlua3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5k
ZXggYzIwZjkwNmM0ZTBjZjliMzkxNTRjYzAwNTIwZTQ3N2JiMTFmYzNiYy4uZWI3NWVhMTNhNDUx
ZjdhZWNlZjdmODMwMTNhZGE3M2JkMDk3ZTI0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTMy
NSw2ICszMjUsNyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIE1vZHVsZXMv
c3RyZWFtcy9SZWFkYWJsZVN0cmVhbUJZT0JSZXF1ZXN0LmlkbAogICAgIE1vZHVsZXMvc3RyZWFt
cy9SZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmlkbAogICAgIE1vZHVsZXMvc3RyZWFt
cy9SZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuaWRsCisgICAgTW9kdWxlcy9zdHJlYW1zL1Jl
YWRhYmxlU3RyZWFtU2luay5pZGwKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1T
b3VyY2UuaWRsCiAgICAgTW9kdWxlcy9zdHJlYW1zL1dyaXRhYmxlU3RyZWFtLmlkbAogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA2ZTc0Nzc3OTgwZWJjNGFiM2UzZDc1MmVkZWEz
ZmE1NzdiYWQzN2NjLi5hNTcxMzZhZDVkMTA3ZjA3ZDZlNTE2MWY5NTAyMTc1NTMwN2Q0Yzg4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTI3Niw2ICsyNzYsNyBAQCBKU19CSU5E
SU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJl
YW1CWU9CUmVxdWVzdC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
c3RyZWFtcy9SZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuaWRsIFwKKyAgICAkKFdlYkNvcmUp
L01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNpbmsuaWRsIFwKICAgICAkKFdlYkNvcmUp
L01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZS5pZGwgXAogICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy9zdHJlYW1zL1dyaXRhYmxlU3RyZWFtLmlkbCBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL3dlYmF1ZGlvL0FuYWx5c2VyTm9kZS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9mZXRjaC9GZXRjaEJvZHkuY3BwCmluZGV4IDQzM2U5NGI1ZTdmYjM2ODU5YTdlMzJhZWI5MDk1
ZjVkZjYxMGQwMTAuLjM0MDQ5NjcxNDU1MWZjNTk1YTZjOGI4YmVlMmFhNzZjMDU4NTJjMDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5jcHAKQEAgLTEzOCw3ICsx
MzgsNyBAQCB2b2lkIEZldGNoQm9keTo6Y29uc3VtZShGZXRjaEJvZHlPd25lciYgb3duZXIsIFJl
ZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIG1fY29uc3VtZXIucmVzb2x2ZShXVEZNb3ZlKHByb21pc2UpKTsKKyAgICBtX2NvbnN1bWVy
LnJlc29sdmUoV1RGTW92ZShwcm9taXNlKSwgbV9yZWFkYWJsZVN0cmVhbS5nZXQoKSk7CiB9CiAK
ICNpZiBFTkFCTEUoU1RSRUFNU19BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIuY3BwCmluZGV4IDlkMDE4NDhjZTRhNzY2MjRjZmZjY2U4
MGNkODdkZTExNzA1MThiYTIuLmI5ZWUxZTEzNmI1NGM1OGIzN2ZlM2U5OWIxYWRiNmM4MzU1MTVi
ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29u
c3VtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29u
c3VtZXIuY3BwCkBAIC01NiwyOSArNTYsNjAgQEAgc3RhdGljIFN0cmluZyB0ZXh0RnJvbVVURjgo
Y29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKQogICAgIHJldHVybiBk
ZWNvZGVyLT5kZWNvZGVBbmRGbHVzaChyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihkYXRh
KSwgbGVuZ3RoKTsKIH0KIAotdm9pZCBGZXRjaEJvZHlDb25zdW1lcjo6cmVzb2x2ZVdpdGhEYXRh
KFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSwgY29uc3QgdW5zaWduZWQgY2hhciogZGF0
YSwgdW5zaWduZWQgbGVuZ3RoKQorc3RhdGljIHZvaWQgcmVzb2x2ZVdpdGhUeXBlQW5kRGF0YShS
ZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UsIEZldGNoQm9keUNvbnN1bWVyOjpUeXBlIHR5
cGUsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUsIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEs
IHVuc2lnbmVkIGxlbmd0aCkKIHsKLSAgICBzd2l0Y2ggKG1fdHlwZSkgewotICAgIGNhc2UgVHlw
ZTo6QXJyYXlCdWZmZXI6CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBGZXRjaEJvZHlD
b25zdW1lcjo6VHlwZTo6QXJyYXlCdWZmZXI6CiAgICAgICAgIGZ1bGZpbGxQcm9taXNlV2l0aEFy
cmF5QnVmZmVyKFdURk1vdmUocHJvbWlzZSksIGRhdGEsIGxlbmd0aCk7CiAgICAgICAgIHJldHVy
bjsKLSAgICBjYXNlIFR5cGU6OkJsb2I6Ci0gICAgICAgIHByb21pc2UtPnJlc29sdmVXaXRoTmV3
bHlDcmVhdGVkPElETEludGVyZmFjZTxCbG9iPj4oYmxvYkZyb21EYXRhKGRhdGEsIGxlbmd0aCwg
bV9jb250ZW50VHlwZSkuZ2V0KCkpOworICAgIGNhc2UgRmV0Y2hCb2R5Q29uc3VtZXI6OlR5cGU6
OkJsb2I6CisgICAgICAgIHByb21pc2UtPnJlc29sdmVXaXRoTmV3bHlDcmVhdGVkPElETEludGVy
ZmFjZTxCbG9iPj4oYmxvYkZyb21EYXRhKGRhdGEsIGxlbmd0aCwgY29udGVudFR5cGUpLmdldCgp
KTsKICAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgVHlwZTo6SlNPTjoKKyAgICBjYXNlIEZldGNo
Qm9keUNvbnN1bWVyOjpUeXBlOjpKU09OOgogICAgICAgICBmdWxmaWxsUHJvbWlzZVdpdGhKU09O
KFdURk1vdmUocHJvbWlzZSksIHRleHRGcm9tVVRGOChkYXRhLCBsZW5ndGgpKTsKICAgICAgICAg
cmV0dXJuOwotICAgIGNhc2UgVHlwZTo6VGV4dDoKKyAgICBjYXNlIEZldGNoQm9keUNvbnN1bWVy
OjpUeXBlOjpUZXh0OgogICAgICAgICBwcm9taXNlLT5yZXNvbHZlPElETERPTVN0cmluZz4odGV4
dEZyb21VVEY4KGRhdGEsIGxlbmd0aCkpOwogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBUeXBl
OjpOb25lOgorICAgIGNhc2UgRmV0Y2hCb2R5Q29uc3VtZXI6OlR5cGU6Ok5vbmU6CiAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogfQogCi12b2lk
IEZldGNoQm9keUNvbnN1bWVyOjpyZXNvbHZlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlz
ZSkKK3ZvaWQgRmV0Y2hCb2R5Q29uc3VtZXI6OmNsZWFuKCkKK3sKKyAgICBtX2J1ZmZlciA9IG51
bGxwdHI7CisgICAgbV9jb25zdW1lUHJvbWlzZSA9IG51bGxwdHI7CisgICAgaWYgKG1fc2luaykg
eworICAgICAgICBtX3NpbmstPmNsZWFyQ2FsbGJhY2soKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KK30KKwordm9pZCBGZXRjaEJvZHlDb25zdW1lcjo6cmVzb2x2ZVdpdGhEYXRhKFJlZjxEZWZl
cnJlZFByb21pc2U+JiYgcHJvbWlzZSwgY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWdu
ZWQgbGVuZ3RoKQoreworICAgIHJlc29sdmVXaXRoVHlwZUFuZERhdGEoV1RGTW92ZShwcm9taXNl
KSwgbV90eXBlLCBtX2NvbnRlbnRUeXBlLCBkYXRhLCBsZW5ndGgpOworfQorCit2b2lkIEZldGNo
Qm9keUNvbnN1bWVyOjpyZXNvbHZlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSwgUmVh
ZGFibGVTdHJlYW0qIHN0cmVhbSkKIHsKKyAgICBpZiAoc3RyZWFtKSB7CisgICAgICAgIEFTU0VS
VCghbV9zaW5rKTsKKyAgICAgICAgbV9zaW5rID0gUmVhZGFibGVTdHJlYW1Ub1NoYXJlZEJ1ZmZl
clNpbms6OmNyZWF0ZShbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIHR5cGUgPSBtX3R5cGUs
IGNvbnRlbnRUeXBlID0gbV9jb250ZW50VHlwZV0oRXhjZXB0aW9uT3I8UmVmUHRyPFNoYXJlZEJ1
ZmZlcj4+JiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhj
ZXB0aW9uKCkpIHsKKyAgICAgICAgICAgICAgICBwcm9taXNlLT5yZWplY3QocmVzdWx0LnJlbGVh
c2VFeGNlcHRpb24oKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBhdXRvKiBkYXRhID0gcmVzdWx0LnJldHVyblZhbHVlKCkgJiYgcmVzdWx0
LnJldHVyblZhbHVlKCktPmRhdGEoKSA/IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdW5zaWduZWQg
Y2hhcio+KHJlc3VsdC5yZXR1cm5WYWx1ZSgpLT5kYXRhKCkpIDogbnVsbHB0cjsKKyAgICAgICAg
ICAgIGF1dG8gc2l6ZSA9IGRhdGEgPyByZXN1bHQucmV0dXJuVmFsdWUoKS0+c2l6ZSgpIDogMDsK
KyAgICAgICAgICAgIHJlc29sdmVXaXRoVHlwZUFuZERhdGEoV1RGTW92ZShwcm9taXNlKSwgdHlw
ZSwgY29udGVudFR5cGUsIGRhdGEsIHNpemUpOworICAgICAgICB9KTsKKyAgICAgICAgbV9zaW5r
LT5waXBlRnJvbSgqc3RyZWFtKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIEFTU0VS
VChtX3R5cGUgIT0gVHlwZTo6Tm9uZSk7CiAgICAgc3dpdGNoIChtX3R5cGUpIHsKICAgICBjYXNl
IFR5cGU6OkFycmF5QnVmZmVyOgpAQCAtOTksMTggKzEzMCwyMiBAQCB2b2lkIEZldGNoQm9keUNv
bnN1bWVyOjpyZXNvbHZlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKICAgICB9CiB9
CiAKLXZvaWQgRmV0Y2hCb2R5Q29uc3VtZXI6OmFwcGVuZChjb25zdCBjaGFyKiBkYXRhLCB1bnNp
Z25lZCBsZW5ndGgpCit2b2lkIEZldGNoQm9keUNvbnN1bWVyOjphcHBlbmQoY29uc3QgY2hhciog
ZGF0YSwgdW5zaWduZWQgc2l6ZSkKIHsKKyAgICBpZiAobV9zb3VyY2UpIHsKKyAgICAgICAgbV9z
b3VyY2UtPmVucXVldWUoQXJyYXlCdWZmZXI6OnRyeUNyZWF0ZShkYXRhLCBzaXplKSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CiAgICAgaWYgKCFtX2J1ZmZlcikgewotICAgICAgICBtX2J1ZmZl
ciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEsIGxlbmd0aCk7CisgICAgICAgIG1fYnVmZmVy
ID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YSwgc2l6ZSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9Ci0gICAgbV9idWZmZXItPmFwcGVuZChkYXRhLCBsZW5ndGgpOworICAgIG1fYnVmZmVyLT5h
cHBlbmQoZGF0YSwgc2l6ZSk7CiB9CiAKLXZvaWQgRmV0Y2hCb2R5Q29uc3VtZXI6OmFwcGVuZChj
b25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCit2b2lkIEZldGNoQm9k
eUNvbnN1bWVyOjphcHBlbmQoY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgc2l6
ZSkKIHsKLSAgICBhcHBlbmQocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YSksIGxl
bmd0aCk7CisgICAgYXBwZW5kKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEpLCBz
aXplKTsKIH0KIAogUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gRmV0Y2hCb2R5Q29uc3VtZXI6OnRha2VE
YXRhKCkKQEAgLTE1NCwyNCArMTg5LDM1IEBAIHZvaWQgRmV0Y2hCb2R5Q29uc3VtZXI6OnNldENv
bnN1bWVQcm9taXNlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKICAgICBtX2NvbnN1
bWVQcm9taXNlID0gV1RGTW92ZShwcm9taXNlKTsKIH0KIAordm9pZCBGZXRjaEJvZHlDb25zdW1l
cjo6c2V0U291cmNlKFJlZjxGZXRjaEJvZHlTb3VyY2U+JiYgc291cmNlKQoreworICAgIG1fc291
cmNlID0gV1RGTW92ZShzb3VyY2UpOworICAgIGlmIChtX2J1ZmZlcikgeworICAgICAgICBtX3Nv
dXJjZS0+ZW5xdWV1ZShtX2J1ZmZlci0+dHJ5Q3JlYXRlQXJyYXlCdWZmZXIoKSk7CisgICAgICAg
IG1fYnVmZmVyID0gbnVsbHB0cjsKKyAgICB9Cit9CisKIHZvaWQgRmV0Y2hCb2R5Q29uc3VtZXI6
OmxvYWRpbmdGYWlsZWQoKQogewogICAgIGlmIChtX2NvbnN1bWVQcm9taXNlKSB7CiAgICAgICAg
IG1fY29uc3VtZVByb21pc2UtPnJlamVjdCgpOwogICAgICAgICBtX2NvbnN1bWVQcm9taXNlID0g
bnVsbHB0cjsKICAgICB9CisgICAgaWYgKG1fc291cmNlKSB7CisgICAgICAgIG1fc291cmNlLT5l
cnJvcihBU0NJSUxpdGVyYWwoIkxvYWRpbmcgZmFpbGVkIikpOworICAgICAgICBtX3NvdXJjZSA9
IG51bGxwdHI7CisgICAgfQogfQogCiB2b2lkIEZldGNoQm9keUNvbnN1bWVyOjpsb2FkaW5nU3Vj
Y2VlZGVkKCkKIHsKICAgICBpZiAobV9jb25zdW1lUHJvbWlzZSkKLSAgICAgICAgcmVzb2x2ZSht
X2NvbnN1bWVQcm9taXNlLnJlbGVhc2VOb25OdWxsKCkpOwotfQotCi12b2lkIEZldGNoQm9keUNv
bnN1bWVyOjpjbGVhbigpCi17Ci0gICAgbV9idWZmZXIgPSBudWxscHRyOwotICAgIG1fY29uc3Vt
ZVByb21pc2UgPSBudWxscHRyOworICAgICAgICByZXNvbHZlKG1fY29uc3VtZVByb21pc2UucmVs
ZWFzZU5vbk51bGwoKSwgbnVsbHB0cik7CisgICAgaWYgKG1fc291cmNlKSB7CisgICAgICAgIG1f
c291cmNlLT5jbG9zZSgpOworICAgICAgICBtX3NvdXJjZSA9IG51bGxwdHI7CisgICAgfQogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zl
dGNoL0ZldGNoQm9keUNvbnN1bWVyLmgKaW5kZXggMWI2NmEzZDk4ZWQ1N2ZkMDk2MTIyZWM3YzQ4
NWZmYzM4OWQyMTUzOC4uZGZkOGZiMWNiZjRmY2JlZDc2NjNlOTgzNjlkMGM1ZWEyNGZjOWYxOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1l
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIu
aApAQCAtMjgsMTIgKzI4LDE2IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiRmV0Y2hC
b2R5U291cmNlLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRl
ICJSZWFkYWJsZVN0cmVhbVNpbmsuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBCbG9iOworY2xhc3MgRmV0Y2hCb2R5U291cmNlOwor
Y2xhc3MgUmVhZGFibGVTdHJlYW07CiAKIGNsYXNzIEZldGNoQm9keUNvbnN1bWVyIHsKIHB1Ymxp
YzoKQEAgLTU3LDcgKzYxLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBjbGVhbigpOwogCi0gICAg
dm9pZCByZXNvbHZlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOworICAgIHZvaWQgcmVzb2x2ZShS
ZWY8RGVmZXJyZWRQcm9taXNlPiYmLCBSZWFkYWJsZVN0cmVhbSopOwogICAgIHZvaWQgcmVzb2x2
ZVdpdGhEYXRhKFJlZjxEZWZlcnJlZFByb21pc2U+JiYsIGNvbnN0IHVuc2lnbmVkIGNoYXIqLCB1
bnNpZ25lZCk7CiAKICAgICBib29sIGhhc0RhdGEoKSBjb25zdCB7IHJldHVybiAhIW1fYnVmZmVy
OyB9CkBAIC02NiwxMiArNzAsMTUgQEAgcHVibGljOgogICAgIHZvaWQgbG9hZGluZ1N1Y2NlZWRl
ZCgpOwogCiAgICAgdm9pZCBzZXRDb25zdW1lUHJvbWlzZShSZWY8RGVmZXJyZWRQcm9taXNlPiYm
KTsKKyAgICB2b2lkIHNldFNvdXJjZShSZWY8RmV0Y2hCb2R5U291cmNlPiYmKTsKIAogcHJpdmF0
ZToKICAgICBUeXBlIG1fdHlwZTsKICAgICBTdHJpbmcgbV9jb250ZW50VHlwZTsKICAgICBSZWZQ
dHI8U2hhcmVkQnVmZmVyPiBtX2J1ZmZlcjsKICAgICBSZWZQdHI8RGVmZXJyZWRQcm9taXNlPiBt
X2NvbnN1bWVQcm9taXNlOworICAgIFJlZlB0cjxSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVy
U2luaz4gbV9zaW5rOworICAgIFJlZlB0cjxGZXRjaEJvZHlTb3VyY2U+IG1fc291cmNlOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0
Y2gvRmV0Y2hSZXNwb25zZS5jcHAKaW5kZXggYzE5M2NlM2UxNzZkNzFhNmNhMjE3ZDVkNTAyYTg5
MzYyNzFkMTI3OS4uNTBiOWIwYWEzNjllN2MzM2RiZjY1ZDIzZWM4ZjA1MTNhODk2Y2VhNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwCkBAIC0z
MDUsMTkgKzMwNSwxOSBAQCB2b2lkIEZldGNoUmVzcG9uc2U6OnN0YXJ0Q29uc3VtaW5nU3RyZWFt
KHVuc2lnbmVkIHR5cGUpCiB7CiAgICAgbV9pc0Rpc3R1cmJlZCA9IHRydWU7CiAgICAgYXV0byBj
b25zdW1lclR5cGUgPSBzdGF0aWNfY2FzdDxGZXRjaEJvZHlDb25zdW1lcjo6VHlwZT4odHlwZSk7
Ci0gICAgbV9jb25zdW1lci5zZXRUeXBlKGNvbnN1bWVyVHlwZSk7CisgICAgYm9keSgpLmNvbnN1
bWVyKCkuc2V0VHlwZShjb25zdW1lclR5cGUpOwogICAgIGlmIChjb25zdW1lclR5cGUgPT0gRmV0
Y2hCb2R5Q29uc3VtZXI6OlR5cGU6OkJsb2IpCi0gICAgICAgIG1fY29uc3VtZXIuc2V0Q29udGVu
dFR5cGUoQmxvYjo6bm9ybWFsaXplZENvbnRlbnRUeXBlKGV4dHJhY3RNSU1FVHlwZUZyb21NZWRp
YVR5cGUobV9jb250ZW50VHlwZSkpKTsKKyAgICAgICAgYm9keSgpLmNvbnN1bWVyKCkuc2V0Q29u
dGVudFR5cGUoQmxvYjo6bm9ybWFsaXplZENvbnRlbnRUeXBlKGV4dHJhY3RNSU1FVHlwZUZyb21N
ZWRpYVR5cGUobV9jb250ZW50VHlwZSkpKTsKIH0KIAogdm9pZCBGZXRjaFJlc3BvbnNlOjpjb25z
dW1lQ2h1bmsoUmVmPEpTQzo6VWludDhBcnJheT4mJiBjaHVuaykKIHsKLSAgICBtX2NvbnN1bWVy
LmFwcGVuZChjaHVuay0+ZGF0YSgpLCBjaHVuay0+Ynl0ZUxlbmd0aCgpKTsKKyAgICBib2R5KCku
Y29uc3VtZXIoKS5hcHBlbmQoY2h1bmstPmRhdGEoKSwgY2h1bmstPmJ5dGVMZW5ndGgoKSk7CiB9
CiAKIHZvaWQgRmV0Y2hSZXNwb25zZTo6ZmluaXNoQ29uc3VtaW5nU3RyZWFtKFJlZjxEZWZlcnJl
ZFByb21pc2U+JiYgcHJvbWlzZSkKIHsKLSAgICBtX2NvbnN1bWVyLnJlc29sdmUoV1RGTW92ZShw
cm9taXNlKSk7CisgICAgYm9keSgpLmNvbnN1bWVyKCkucmVzb2x2ZShXVEZNb3ZlKHByb21pc2Up
LCBudWxscHRyKTsKIH0KIAogdm9pZCBGZXRjaFJlc3BvbnNlOjpjb25zdW1lQm9keUFzU3RyZWFt
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25z
ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmgKaW5kZXgg
ZGM5ZjExZWQ4NDc2MTMyNGI3MThiMGNlZjAyN2NlNDA0MWRhZmY4YS4uZGRmNmQ0MmExNmEyM2Y0
N2NjYzQwMzQwZTllN2FiYjY4OTVkYzMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
ZXRjaC9GZXRjaFJlc3BvbnNlLmgKQEAgLTE0OSw4ICsxNDksNiBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV9zaG91bGRFeHBvc2VCb2R5IHsgdHJ1ZSB9OwogICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhh
dCBmbGFnIG9uY2Ugd2UgaGF2ZSBmdWxsIHN1cHBvcnQgaW4gRE9NIFJlYWRhYmxlU3RyZWFtLgog
ICAgIGJvb2wgbV9pc1JlYWRhYmxlU3RyZWFtIHsgZmFsc2UgfTsKLQotICAgIEZldGNoQm9keUNv
bnN1bWVyIG1fY29uc3VtZXIgeyBGZXRjaEJvZHlDb25zdW1lcjo6VHlwZTo6QXJyYXlCdWZmZXIg
IH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1JbnRlcm5hbHMuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1JbnRlcm5hbHMuanMKaW5kZXgg
ZjRlNWRhZjdiMjEzZDQwZWViZThhNDlkY2IzNmQ3NDliNjdhZTM3Mi4uNTQyNzdmM2FlMDRkYWZi
ZDE1MjFmOWE2MjNmNWEwNzAzMTk2NjdmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUludGVybmFscy5qcwpAQCAtMTA2LDYg
KzEwNiwzMyBAQCBmdW5jdGlvbiByZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyRXJyb3Io
Y29udHJvbGxlciwgZXJyb3IpCiAgICAgQHJlYWRhYmxlU3RyZWFtRXJyb3Ioc3RyZWFtLCBlcnJv
cik7CiB9CiAKK2Z1bmN0aW9uIHJlYWRhYmxlU3RyZWFtUGlwZVRvKHN0cmVhbSwgc2luaykKK3sK
KyAgICAidXNlIHN0cmljdCI7CisgICAgQGFzc2VydChAaXNSZWFkYWJsZVN0cmVhbShzdHJlYW0p
KTsKKworICAgIGNvbnN0IHJlYWRlciA9IG5ldyBAUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVy
KHN0cmVhbSk7CisKKyAgICByZWFkZXIuQGNsb3NlZFByb21pc2VDYXBhYmlsaXR5LkBwcm9taXNl
LkB0aGVuKCgpID0+IHsgfSwgKGUpID0+IHsgc2luay5lcnJvcihlKTsgfSk7CisKKyAgICBmdW5j
dGlvbiBkb1BpcGUoKSB7CisgICAgICAgIEByZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXJSZWFk
KHJlYWRlcikuQHRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICBpZiAocmVzdWx0
LmRvbmUpIHsKKyAgICAgICAgICAgICAgICBzaW5rLmNsb3NlKCk7CisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAg
ICBzaW5rLmVucXVldWUocmVzdWx0LnZhbHVlKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsK
KyAgICAgICAgICAgICAgICBzaW5rLmVycm9yKCJSZWFkYWJsZVN0cmVhbSBjaHVuayBlbnF1ZXVl
aW5nIGluIHRoZSBzaW5rIGZhaWxlZCIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIGRvUGlwZSgpOworICAgICAgICB9KTsKKyAgICB9CisgICAg
ZG9QaXBlKCk7Cit9CisKIGZ1bmN0aW9uIHJlYWRhYmxlU3RyZWFtVGVlKHN0cmVhbSwgc2hvdWxk
Q2xvbmUpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1TaW5rLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYTBlZGUz
YzNjY2ViODMzODRjNjY4ZDNkNDhhMmI4YjgyODJmODcxCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5jcHAKQEAgLTAs
MCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlJlYWRhYmxlU3RyZWFtU2luay5oIgorCisjaW5jbHVkZSAiQnVmZmVyU291cmNlLmgiCisjaW5j
bHVkZSAiRE9NRXhjZXB0aW9uLmgiCisjaW5jbHVkZSAiUmVhZGFibGVTdHJlYW0uaCIKKyNpbmNs
dWRlICJTaGFyZWRCdWZmZXIuaCIKKworI2lmIEVOQUJMRShTVFJFQU1TX0FQSSkKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luazo6UmVhZGFi
bGVTdHJlYW1Ub1NoYXJlZEJ1ZmZlclNpbmsoQ2FsbGJhY2smJiBjYWxsYmFjaykKKyAgICA6IG1f
Y2FsbGJhY2sgeyBXVEZNb3ZlKGNhbGxiYWNrKSB9Cit7Cit9CisKK3ZvaWQgUmVhZGFibGVTdHJl
YW1Ub1NoYXJlZEJ1ZmZlclNpbms6OnBpcGVGcm9tKFJlYWRhYmxlU3RyZWFtJiBzdHJlYW0pCit7
CisgICAgc3RyZWFtLnBpcGVUbygqdGhpcyk7Cit9CisKK3ZvaWQgUmVhZGFibGVTdHJlYW1Ub1No
YXJlZEJ1ZmZlclNpbms6OmVucXVldWUoY29uc3QgQnVmZmVyU291cmNlJiBidWZmZXIpCit7Cisg
ICAgaWYgKCFtX2RhdGEpIHsKKyAgICAgICAgbV9kYXRhID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUo
YnVmZmVyLmRhdGEoKSwgYnVmZmVyLmxlbmd0aCgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICBtX2RhdGEtPmFwcGVuZChyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihidWZmZXIu
ZGF0YSgpKSwgYnVmZmVyLmxlbmd0aCgpKTsKK30KKwordm9pZCBSZWFkYWJsZVN0cmVhbVRvU2hh
cmVkQnVmZmVyU2luazo6Y2xvc2UoKQoreworICAgIGlmIChhdXRvIGNhbGxiYWNrID0gV1RGTW92
ZShtX2NhbGxiYWNrKSkKKyAgICAgICAgY2FsbGJhY2soV1RGTW92ZShtX2RhdGEpKTsKK30KKwor
dm9pZCBSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luazo6ZXJyb3IoU3RyaW5nJiYgbWVz
c2FnZSkKK3sKKyAgICBpZiAoYXV0byBjYWxsYmFjayA9IFdURk1vdmUobV9jYWxsYmFjaykpCisg
ICAgICAgIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgV1RGTW92ZShtZXNzYWdlKSB9
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNUUkVB
TVNfQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtU2luay5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxl
U3RyZWFtU2luay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYxYzJhYWJlZjJkNTY2MDMxOGViYjc5MDVkMWZhZWE5
NTg3MmJmNTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVh
bXMvUmVhZGFibGVTdHJlYW1TaW5rLmgKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1RSRUFNU19BUEkpCisKKyNpbmNsdWRlICJFeGNl
cHRpb25Pci5oIgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQnVmZmVyU291cmNlOwor
Y2xhc3MgUmVhZGFibGVTdHJlYW07CitjbGFzcyBTaGFyZWRCdWZmZXI7CisKK2NsYXNzIFJlYWRh
YmxlU3RyZWFtU2luayA6IHB1YmxpYyBSZWZDb3VudGVkPFJlYWRhYmxlU3RyZWFtU2luaz4gewor
cHVibGljOgorICAgIHZpcnR1YWwgflJlYWRhYmxlU3RyZWFtU2luaygpID0gZGVmYXVsdDsKKwor
ICAgIHZpcnR1YWwgdm9pZCBlbnF1ZXVlKGNvbnN0IEJ1ZmZlclNvdXJjZSYpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgY2xvc2UoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGVycm9yKFN0cmluZyYm
KSA9IDA7Cit9OworCitjbGFzcyBSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luayBmaW5h
bCA6IHB1YmxpYyBSZWFkYWJsZVN0cmVhbVNpbmsgeworcHVibGljOgorICAgIHVzaW5nIENhbGxi
YWNrID0gV1RGOjpGdW5jdGlvbjx2b2lkKEV4Y2VwdGlvbk9yPFJlZlB0cjxTaGFyZWRCdWZmZXI+
PiYmKT47CisgICAgc3RhdGljIFJlZjxSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luaz4g
Y3JlYXRlKENhbGxiYWNrJiYgY2FsbGJhY2spIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVhZGFi
bGVTdHJlYW1Ub1NoYXJlZEJ1ZmZlclNpbmsoV1RGTW92ZShjYWxsYmFjaykpKTsgfQorICAgIHZv
aWQgcGlwZUZyb20oUmVhZGFibGVTdHJlYW0mKTsKKyAgICB2b2lkIGNsZWFyQ2FsbGJhY2soKSB7
IG1fY2FsbGJhY2sgPSB7IH07IH0KKworcHJpdmF0ZToKKyAgICBSZWFkYWJsZVN0cmVhbVRvU2hh
cmVkQnVmZmVyU2luayhDYWxsYmFjayYmKTsKKworICAgIHZvaWQgZW5xdWV1ZShjb25zdCBCdWZm
ZXJTb3VyY2UmKSBmaW5hbDsKKyAgICB2b2lkIGNsb3NlKCkgZmluYWw7CisgICAgdm9pZCBlcnJv
cihTdHJpbmcmJikgZmluYWw7CisKKyAgICBDYWxsYmFjayBtX2NhbGxiYWNrOworICAgIFJlZlB0
cjxTaGFyZWRCdWZmZXI+IG1fZGF0YTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShTVFJFQU1TX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNpbmsuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYThlNTMy
N2U3ZTg3NmZmNzI2OTNlZjY4M2Y4ODczMjM0OWI3M2ZmMQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNpbmsuaWRsCkBAIC0w
LDAgKzEsMzQgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8K
KworCitbCisgICAgTm9JbnRlcmZhY2VPYmplY3QsCisgICAgQ29uZGl0aW9uYWw9U1RSRUFNU19B
UEksCitdIGludGVyZmFjZSBSZWFkYWJsZVN0cmVhbVNpbmsgeworICAgIHZvaWQgZW5xdWV1ZShC
dWZmZXJTb3VyY2UgY2h1bmspOworICAgIHZvaWQgY2xvc2UoKTsKKyAgICB2b2lkIGVycm9yKERP
TVN0cmluZyBtZXNzYWdlKTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzY2MzM4YjQ3MThmNzhhMDdhYWRmNmM4YjA3MDA0
ZTU0OTVmNWFiOS4uNDcyNjU1NDQ4NDI5MTFmNGNkYWIxODM1MDllMjJkZDRhMGMxZDBmZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTY3Myw2ICsxNjczLDcgQEAKIAkJNDEyMzA4MUIxMzhDNDI5NzAwQkNDRkNBIC8qIFdlYkNv
cmUuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNGMTlCMUEwODI0NUU1QTAwMUU5QUJDIC8qIFdlYkNvcmUuZnJhbWV3b3JrICovOyB9
OwogCQk0MTIzMDkxMzEzOEM0MkZGMDBCQ0NGQ0EgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3Jr
IGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjgyMTYy
OTkwMjlGNEZCNTAxMDAwMTMxIC8qIEphdmFTY3JpcHRDb3JlLmZyYW1ld29yayAqLzsgfTsKIAkJ
NDEyN0Q1MzcwRjhBQUIxRDAwRTQyNEY1IC8qIFNjcmlwdFN0YXRlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMjdENTM2MEY4QUFCMUQwMEU0MjRG
NSAvKiBTY3JpcHRTdGF0ZS5jcHAgKi87IH07CisJCTQxMjlDOThBMUY1ODdGRUIwMDlENzQwMyAv
KiBSZWFkYWJsZVN0cmVhbVNpbmsuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDEyOUM5ODcxRjU4NjYyRDAwOUQ3NDAzIC8qIFJlYWRhYmxlU3RyZWFt
U2luay5jcHAgKi87IH07CiAJCTQxMjlERjg1MUJCNUI4MDcwMDMyMkExNiAvKiBKU1JlYWRhYmxl
U3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MTI5REY4MzFCQjVCN0Y3MDAzMjJBMTYgLyogSlNSZWFkYWJs
ZVN0cmVhbVByaXZhdGVDb25zdHJ1Y3RvcnMuY3BwICovOyB9OwogCQk0MTI5REY4NjFCQjVCODBD
MDAzMjJBMTYgLyogSlNSZWFkYWJsZVN0cmVhbVByaXZhdGVDb25zdHJ1Y3RvcnMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMjlERjg0MUJCNUI3Rjcw
MDMyMkExNiAvKiBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxMzAxNUQ5MUM3QjU3
MTQwMDA5MUM2RSAvKiBGZXRjaFJlc3BvbnNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMzAxNUQ1MUM3QjU3MDQwMDA5MUM2RSAvKiBGZXRjaFJl
c3BvbnNlLmNwcCAqLzsgfTsKQEAgLTMzOTQsNyArMzM5NSw5IEBACiAJCTdFRTY4NDcxMTJEMjZF
MzgwMEU3OTQxNSAvKiBSZXNvdXJjZVJlc3BvbnNlQ0ZOZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0VFNjg0NUUxMkQyNkUzODAwRTc5NDE1IC8q
IFJlc291cmNlUmVzcG9uc2VDRk5ldC5jcHAgKi87IH07CiAJCTdFRTY4NDc1MTJEMjZFNzAwMEU3
OTQxNSAvKiBSZXNvdXJjZUxvYWRlckNGTmV0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFRTY4NDc0MTJEMjZFNzAwMEU3OTQxNSAvKiBSZXNvdXJj
ZUxvYWRlckNGTmV0LmNwcCAqLzsgfTsKIAkJN0Y0Qzk2REMxQUQ0NDgzNTAwMzY1QTUwIC8qIEpT
RmV0Y2hCb2R5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdGNEM5NkQ4MUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoQm9keS5jcHAgKi87IH07CisJ
CTdGNEM5NkRDMUFENDQ4MzUwMDM2NUE1MSAvKiBKU1JlYWRhYmxlU3RyZWFtU2luay5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RjRDOTZEODFBRDQ0
ODM1MDAzNjVBNTEgLyogSlNSZWFkYWJsZVN0cmVhbVNpbmsuY3BwICovOyB9OwogCQk3RjRDOTZE
RDFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaEJvZHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdGNEM5NkQ5MUFENDQ4MzUwMDM2NUE1MCAvKiBKU0Zl
dGNoQm9keS5oICovOyB9OworCQk3RjRDOTZERDFBRDQ0ODM1MDAzNjVBNTEgLyogSlNSZWFkYWJs
ZVN0cmVhbVNpbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdGNEM5NkQ5MUFENDQ4MzUwMDM2NUE1MSAvKiBKU1JlYWRhYmxlU3RyZWFtU2luay5oICov
OyB9OwogCQk4MTAyQzU4ODEzMjVCQjExMDBEREU2N0EgLyogU3RyaW5nQ2FsbGJhY2suY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODEwMkM1ODcxMzI1
QkIxMTAwRERFNjdBIC8qIFN0cmluZ0NhbGxiYWNrLmNwcCAqLzsgfTsKIAkJODFBQzU5OTkxMzE2
MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQUM1OTk3MTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRh
VHJhbnNmZXJJdGVtLmggKi87IH07CiAJCTgxQUM1OTlBMTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRh
VHJhbnNmZXJJdGVtTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODFBQzU5OTgxMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW1MaXN0
LmggKi87IH07CkBAIC05Mzc5LDYgKzkzODIsOSBAQAogCQk0MTE4OUVGNzFBRDgyMzI4MDBCOTNG
NjQgLyogUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlci5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQxMTg5RUY3MUFEODIzMjgwMEI5NTY3MiAvKiBSZWFkYWJsZVN0cmVhbUJZ
T0JSZXF1ZXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZWFkYWJsZVN0cmVhbUJZT0JS
ZXF1ZXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEyN0Q1MzYwRjhBQUIx
RDAwRTQyNEY1IC8qIFNjcmlwdFN0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFNjcmlwdFN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDEyOUM5ODAxRjU4NjFDNzAwOUQ3NDAzIC8qIFJlYWRhYmxlU3RyZWFtU2luay5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFkYWJsZVN0cmVhbVNpbmsuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEyOUM5ODExRjU4NjFDNzAwOUQ3NDAzIC8qIFJlYWRhYmxl
U3RyZWFtU2luay5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVhZGFibGVTdHJlYW1TaW5r
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEyOUM5ODcxRjU4NjYyRDAwOUQ3
NDAzIC8qIFJlYWRhYmxlU3RyZWFtU2luay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSZWFkYWJsZVN0cmVhbVNpbmsuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MTI5REY4MzFCQjVCN0Y3MDAzMjJBMTYgLyogSlNSZWFkYWJsZVN0cmVhbVByaXZh
dGVDb25zdHJ1Y3RvcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNSZWFkYWJsZVN0cmVhbVByaXZhdGVDb25zdHJ1Y3RvcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MTI5REY4NDFCQjVCN0Y3MDAzMjJBMTYgLyogSlNSZWFkYWJsZVN0cmVh
bVByaXZhdGVDb25zdHJ1Y3RvcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNSZWFkYWJsZVN0cmVhbVByaXZhdGVDb25zdHJ1Y3RvcnMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDEzMDE1RDUxQzdCNTcwNDAwMDkxQzZFIC8qIEZldGNoUmVzcG9uc2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmV0Y2hSZXNwb25zZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTU1Nyw3ICsxMTU2Myw5IEBACiAJCTdF
RTY4NDVFMTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZVJlc3BvbnNlQ0ZOZXQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVzb3VyY2VSZXNwb25zZUNGTmV0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0VFNjg0NzQxMkQyNkU3MDAwRTc5NDE1
IC8qIFJlc291cmNlTG9hZGVyQ0ZOZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVzb3VyY2VMb2FkZXJDRk5ldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTdGNEM5NkQ4MUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoQm9keS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ZldGNoQm9keS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTdGNEM5NkQ4MUFENDQ4MzUwMDM2NUE1MSAvKiBKU1JlYWRh
YmxlU3RyZWFtU2luay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U1JlYWRhYmxlU3RyZWFtU2luay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdG
NEM5NkQ5MUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoQm9keS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU0ZldGNoQm9keS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk3RjRDOTZEOTFBRDQ0ODM1MDAzNjVBNTEgLyogSlNSZWFkYWJsZVN0cmVhbVNpbmsuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNSZWFkYWJsZVN0cmVhbVNpbmsuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODEwMkM1ODcxMzI1QkIxMTAwRERFNjdBIC8q
IFN0cmluZ0NhbGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFN0cmluZ0NhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODFBQzU5
OTcxMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW0uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRGF0YVRyYW5zZmVySXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4MUFDNTk5ODEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbUxp
c3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YVRyYW5zZmVySXRlbUxp
c3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3OTg3LDYgKzE3OTk1LDkgQEAK
IAkJCQk0MTlGQUZBRDFBQkFCQ0Q1MDA1QjgyOEIgLyogUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVh
ZGVyLmlkbCAqLywKIAkJCQk5OTA4QjBGMjFCQ0FDRjkxMDBFRDBGNjUgLyogUmVhZGFibGVTdHJl
YW1EZWZhdWx0UmVhZGVyLmpzICovLAogCQkJCTk5MDhCMEYxMUJDQUNGOTEwMEVEMEY2NSAvKiBS
ZWFkYWJsZVN0cmVhbUludGVybmFscy5qcyAqLywKKwkJCQk0MTI5Qzk4NzFGNTg2NjJEMDA5RDc0
MDMgLyogUmVhZGFibGVTdHJlYW1TaW5rLmNwcCAqLywKKwkJCQk0MTI5Qzk4MDFGNTg2MUM3MDA5
RDc0MDMgLyogUmVhZGFibGVTdHJlYW1TaW5rLmggKi8sCisJCQkJNDEyOUM5ODExRjU4NjFDNzAw
OUQ3NDAzIC8qIFJlYWRhYmxlU3RyZWFtU2luay5pZGwgKi8sCiAJCQkJNDE4QzM5NUIxQzhGMEE2
MTAwNTFDOEEzIC8qIFJlYWRhYmxlU3RyZWFtU291cmNlLmggKi8sCiAJCQkJNDE4QzM5NUMxQzhG
MEE2MTAwNTFDOEEzIC8qIFJlYWRhYmxlU3RyZWFtU291cmNlLmlkbCAqLywKIAkJCQk5OTA4QjBG
MTFCQ0FDRjkxMDBFRDBGNTUgLyogU3RyZWFtSW50ZXJuYWxzLmpzICovLApAQCAtMTgxMDEsNiAr
MTgxMTIsOCBAQAogCQkJCTdDRTE5MTZBMUYyQUI3MDYwMDI3MkY3OCAvKiBKU0ZldGNoUmVxdWVz
dFJlZGlyZWN0LmggKi8sCiAJCQkJOEU0Qzk2RDgxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hS
ZXNwb25zZS5jcHAgKi8sCiAJCQkJOEU0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hS
ZXNwb25zZS5oICovLAorCQkJCTdGNEM5NkQ4MUFENDQ4MzUwMDM2NUE1MSAvKiBKU1JlYWRhYmxl
U3RyZWFtU2luay5jcHAgKi8sCisJCQkJN0Y0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUxIC8qIEpTUmVh
ZGFibGVTdHJlYW1TaW5rLmggKi8sCiAJCQkJN0U0Qzk2RDgxQUQ0NDgzNTAwMzY1QTUxIC8qIEpT
UmVhZGFibGVTdHJlYW1Tb3VyY2UuY3BwICovLAogCQkJCTdFNEM5NkQ5MUFENDQ4MzUwMDM2NUE1
MSAvKiBKU1JlYWRhYmxlU3RyZWFtU291cmNlLmggKi8sCiAJCQkpOwpAQCAtMjg1MzEsNiArMjg1
NDQsNyBAQAogCQkJCTZDNEM5NkRGMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFt
RGVmYXVsdENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDNEM5NkRGMUFENDQ4MzUw
MDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDEyOURGODYxQkI1QjgwQzAwMzIyQTE2IC8qIEpTUmVhZGFibGVTdHJlYW1Qcml2YXRl
Q29uc3RydWN0b3JzLmggaW4gSGVhZGVycyAqLywKKwkJCQk3RjRDOTZERDFBRDQ0ODM1MDAzNjVB
NTEgLyogSlNSZWFkYWJsZVN0cmVhbVNpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTdFNEM5NkRE
MUFENDQ4MzUwMDM2NUE1MSAvKiBKU1JlYWRhYmxlU3RyZWFtU291cmNlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0OTk4QUVDRTEzRjlENkM5MDA5MEIxQUEgLyogSlNSZXF1ZXN0QW5pbWF0aW9uRnJh
bWVDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdFMjMzNzExRENENDY4RjAwRjI4RDAx
IC8qIEpTUnNhSGFzaGVkSW1wb3J0UGFyYW1zLmggaW4gSGVhZGVycyAqLywKQEAgLTMyNTU2LDYg
KzMyNTcwLDcgQEAKIAkJCQk2QzRDOTZERTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0
cmVhbURlZmF1bHRDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDNEM5NkRFMUFE
NDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk0MTI5REY4NTFCQjVCODA3MDAzMjJBMTYgLyogSlNSZWFkYWJsZVN0cmVh
bVByaXZhdGVDb25zdHJ1Y3RvcnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJN0Y0Qzk2REMxQUQ0
NDgzNTAwMzY1QTUxIC8qIEpTUmVhZGFibGVTdHJlYW1TaW5rLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTdFNEM5NkRDMUFENDQ4MzUwMDM2NUE1MSAvKiBKU1JlYWRhYmxlU3RyZWFtU291cmNlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTQxOEMzOTYwMUM4RjBBQUUwMDUxQzhBMyAvKiBKU1JlYWRh
YmxlU3RyZWFtU291cmNlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5OThBRUNEMTNG
OUQ2QzkwMDkwQjFBQSAvKiBKU1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmNwcCBpbiBT
b3VyY2VzICovLApAQCAtMzMzMTcsNiArMzMzMzIsNyBAQAogCQkJCTZFODRFOUUwMTc2NjhCRUUw
MDgxNUI2OCAvKiBSYXN0ZXJTaGFwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MUI0NTlFRjFG
NTVFQkQxMDAwMEY2RkQgLyogUmVhZGFibGVTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDE4QzM5NjExQzhGMEFCMTAwNTFDOEEzIC8qIFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xs
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDEyOUM5OEExRjU4N0ZFQjAwOUQ3NDAzIC8qIFJl
YWRhYmxlU3RyZWFtU2luay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMxNjAzQjEyQjAyNjc2
MDBDMUEzNTkgLyogUmVhbHRpbWVBbmFseXNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTEw
M0FBRTFFMzk3OTEwMDA3NjlGMDMgLyogUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTVDREQ4MzNFMUU0MzI0REMwMDYyMUU5MiAvKiBSZWFsdGltZUlu
Y29taW5nVmlkZW9Tb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5jcHAKaW5kZXggNzIyNzQwZjdmYTRhYjAyMWQ5ZGYx
MTMxMzIyNWViZTcwMzZkNDNlZC4uY2Y0ODY5NzY0OTliMjhlM2NjZGNjMjVjODc3M2ExNTVjYmU5
ZTlkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJl
YW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtLmNw
cApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFtLmgiCiAKICNpbmNs
dWRlICJKU0RPTUNvbnZlcnRTZXF1ZW5jZXMuaCIKKyNpbmNsdWRlICJKU1JlYWRhYmxlU3RyZWFt
U2luay5oIgogI2luY2x1ZGUgIkpTUmVhZGFibGVTdHJlYW1Tb3VyY2UuaCIKICNpbmNsdWRlICJX
ZWJDb3JlSlNDbGllbnREYXRhLmgiCiAKQEAgLTU0LDYgKzU1LDI0IEBAIFJlZjxSZWFkYWJsZVN0
cmVhbT4gUmVhZGFibGVTdHJlYW06OmNyZWF0ZShKU0M6OkV4ZWNTdGF0ZSYgZXhlY1N0YXRlLCBS
ZWZQdHI8UmVhCiAgICAgcmV0dXJuIGNyZWF0ZShnbG9iYWxPYmplY3QsICpuZXdSZWFkYWJsZVN0
cmVhbSk7CiB9CiAKK3ZvaWQgUmVhZGFibGVTdHJlYW06OnBpcGVUbyhSZWFkYWJsZVN0cmVhbVNp
bmsmIHNpbmspCit7CisgICAgYXV0byYgc3RhdGUgPSAqbV9nbG9iYWxPYmplY3QtPmdsb2JhbEV4
ZWMoKTsKKyAgICBKU1ZNQ2xpZW50RGF0YSogY2xpZW50RGF0YSA9IHN0YXRpY19jYXN0PEpTVk1D
bGllbnREYXRhKj4oc3RhdGUudm0oKS5jbGllbnREYXRhKTsKKyAgICBjb25zdCBJZGVudGlmaWVy
JiBwcml2YXRlTmFtZSA9IGNsaWVudERhdGEtPmJ1aWx0aW5GdW5jdGlvbnMoKS5yZWFkYWJsZVN0
cmVhbUludGVybmFsc0J1aWx0aW5zKCkucmVhZGFibGVTdHJlYW1QaXBlVG9Qcml2YXRlTmFtZSgp
OworCisgICAgYXV0byByZWFkYWJsZVN0cmVhbVBpcGVUbyA9IG1fZ2xvYmFsT2JqZWN0LT5nZXQo
JnN0YXRlLCBwcml2YXRlTmFtZSk7CisgICAgQVNTRVJUKHJlYWRhYmxlU3RyZWFtUGlwZVRvLmlz
RnVuY3Rpb24oKSk7CisKKyAgICBDYWxsRGF0YSBjYWxsRGF0YTsKKyAgICBDYWxsVHlwZSBjYWxs
VHlwZSA9IGdldENhbGxEYXRhKHJlYWRhYmxlU3RyZWFtUGlwZVRvLCBjYWxsRGF0YSk7CisgICAg
QVNTRVJUKGNhbGxUeXBlICE9IEpTQzo6Q2FsbFR5cGU6Ok5vbmUpOworICAgIE1hcmtlZEFyZ3Vt
ZW50QnVmZmVyIGFyZ3VtZW50czsKKyAgICBhcmd1bWVudHMuYXBwZW5kKHJlYWRhYmxlU3RyZWFt
KCkpOworICAgIGFyZ3VtZW50cy5hcHBlbmQodG9KUygmc3RhdGUsIG1fZ2xvYmFsT2JqZWN0Lmdl
dCgpLCBzaW5rKSk7CisgICAgSlNDOjpjYWxsKCZzdGF0ZSwgcmVhZGFibGVTdHJlYW1QaXBlVG8s
IGNhbGxUeXBlLCBjYWxsRGF0YSwgSlNDOjpqc1VuZGVmaW5lZCgpLCBhcmd1bWVudHMpOworfQor
CiBzdGQ6OnBhaXI8UmVmPFJlYWRhYmxlU3RyZWFtPiwgUmVmPFJlYWRhYmxlU3RyZWFtPj4gUmVh
ZGFibGVTdHJlYW06OnRlZSgpCiB7CiAgICAgYXV0byYgc3RhdGUgPSAqbV9nbG9iYWxPYmplY3Qt
Pmdsb2JhbEV4ZWMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Jl
YWRhYmxlU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVh
bS5oCmluZGV4IGEwYzI2YTQzNTc2OGIyZDEwYWY0MTA2ZTYxN2Y1N2NiMzBhMzBjOTUuLmFlNWIw
ZDVmYWE5MDI3MmM4NzcxNjcxNDk5MmUzZGMzNGM2NmY0OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW0uaApAQCAtMzIsNiArMzIsNyBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKK2NsYXNzIFJlYWRhYmxlU3RyZWFtU2luazsKIGNsYXNzIFJlYWRhYmxl
U3RyZWFtU291cmNlOwogCiBjbGFzcyBSZWFkYWJsZVN0cmVhbSBmaW5hbCA6IHB1YmxpYyBET01H
dWFyZGVkPEpTUmVhZGFibGVTdHJlYW0+IHsKQEAgLTQyLDYgKzQzLDggQEAgcHVibGljOgogCiAg
ICAgc3RkOjpwYWlyPFJlZjxSZWFkYWJsZVN0cmVhbT4sIFJlZjxSZWFkYWJsZVN0cmVhbT4+IHRl
ZSgpOwogCisgICAgdm9pZCBwaXBlVG8oUmVhZGFibGVTdHJlYW1TaW5rJik7CisKICAgICBKU1Jl
YWRhYmxlU3RyZWFtKiByZWFkYWJsZVN0cmVhbSgpIHsgcmV0dXJuIGd1YXJkZWQoKTsgfQogCiBw
cm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggNzBjYjdlZDNlZGVhNmM4ZmJiZGE5NWQ0ZmZkZDQ3NGJmZDk2MzVi
Yi4uNTkwNWYxODczMDY4ZDg1NmJhMzQzOTQ0NWRiN2RkOTc5Mjk0MDMxOCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSw1
ICsxLDIwIEBACiAyMDE3LTA4LTMxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
IAorICAgICAgICBbRmV0Y2ggQVBJXSBBZGQgc3VwcG9ydCBmb3IgY29uc3VtaW5nIGEgUmVxdWVz
dCBSZWFkYWJsZVN0cmVhbSBib2R5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzYxODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGh0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWRpc3R1cmJlZC0x
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1k
aXN0dXJiZWQtMi1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC93cHQvZmV0Y2gvcmVxdWVz
dC1zdHJlYW0tZGlzdHVyYmVkLTMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvd3B0L2Zl
dGNoL3JlcXVlc3Qtc3RyZWFtLWVtcHR5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZW1wdHkuaHRtbDogQWRkZWQuCisgICAgICAg
ICogaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZXJyb3ItZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1lcnJvci5odG1sOiBB
ZGRlZC4KKworMjAxNy0wOC0zMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisK
ICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIFJlcXVlc3QgYm9keSBzdHJlYW0gY2xvbmluZwogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MTQ4CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWRpc3R1
cmJlZC0xLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qt
c3RyZWFtLWRpc3R1cmJlZC0xLWV4cGVjdGVkLnR4dAppbmRleCBiODU0NmJlYTFkNzgwYWIyMjQz
MWFjYzhiZjJlOGUzNzJmMmIyMzZjLi5hN2Y3YjI0MmUxYjVmYjc0YjgzYTM2MDU2Y2EzNjg0MmQ1
M2YxOTM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0
cmVhbS1kaXN0dXJiZWQtMS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQv
ZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZGlzdHVyYmVkLTEtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEs
NiBAQAogCiBQQVNTIEdldHRpbmcgYmxvYiBhZnRlciBnZXR0aW5nIHRoZSBSZXF1ZXN0IGJvZHkg
LSBub3QgZGlzdHVyYmVkLCBub3QgbG9ja2VkIAotRkFJTCBHZXR0aW5nIHRleHQgYWZ0ZXIgZ2V0
dGluZyB0aGUgUmVxdWVzdCBib2R5IC0gbm90IGRpc3R1cmJlZCwgbm90IGxvY2tlZCBhc3NlcnRf
dHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgR2V0dGluZyBqc29uIGFmdGVyIGdl
dHRpbmcgdGhlIFJlcXVlc3QgYm9keSAtIG5vdCBkaXN0dXJiZWQsIG5vdCBsb2NrZWQgcHJvbWlz
ZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiU3ludGF4RXJy
b3I6IFRoZSBzdHJpbmcgZGlkIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgcGF0dGVybi4iCi1GQUlM
IEdldHRpbmcgYXJyYXlCdWZmZXIgYWZ0ZXIgZ2V0dGluZyB0aGUgUmVxdWVzdCBib2R5IC0gbm90
IGRpc3R1cmJlZCwgbm90IGxvY2tlZCBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKK1BBU1MgR2V0dGluZyB0ZXh0IGFmdGVyIGdldHRpbmcgdGhlIFJlcXVlc3QgYm9keSAtIG5v
dCBkaXN0dXJiZWQsIG5vdCBsb2NrZWQgCitQQVNTIEdldHRpbmcganNvbiBhZnRlciBnZXR0aW5n
IHRoZSBSZXF1ZXN0IGJvZHkgLSBub3QgZGlzdHVyYmVkLCBub3QgbG9ja2VkIAorUEFTUyBHZXR0
aW5nIGFycmF5QnVmZmVyIGFmdGVyIGdldHRpbmcgdGhlIFJlcXVlc3QgYm9keSAtIG5vdCBkaXN0
dXJiZWQsIG5vdCBsb2NrZWQgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Zl
dGNoL3JlcXVlc3Qtc3RyZWFtLWRpc3R1cmJlZC0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWRpc3R1cmJlZC0yLWV4cGVjdGVkLnR4dApp
bmRleCBmMmI5YjJlNWZjZTkzNTZkMTUzNjJiMmExZWFhNjUxMDhiMDY2MzY3Li5kZWNiZmQ0Yzk4
MWQwYTdjMjQzNjEwMTMxZjBiZDllZDBkN2EyNjYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1kaXN0dXJiZWQtMi1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZGlzdHVyYmVkLTIt
ZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAogCi1GQUlMIEdldHRpbmcgYmxvYiBhZnRlciBn
ZXR0aW5nIGEgbG9ja2VkIFJlcXVlc3QgYm9keSBhc3NlcnRfdW5yZWFjaGVkOiBTaG91bGQgaGF2
ZSByZWplY3RlZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQotRkFJTCBHZXR0
aW5nIHRleHQgYWZ0ZXIgZ2V0dGluZyBhIGxvY2tlZCBSZXF1ZXN0IGJvZHkgYXNzZXJ0X3VucmVh
Y2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxl
IGNvZGUKLUZBSUwgR2V0dGluZyBqc29uIGFmdGVyIGdldHRpbmcgYSBsb2NrZWQgUmVxdWVzdCBi
b2R5IGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhy
ZXcgb2JqZWN0ICJTeW50YXhFcnJvcjogVGhlIHN0cmluZyBkaWQgbm90IG1hdGNoIHRoZSBleHBl
Y3RlZCBwYXR0ZXJuLiIgKCJTeW50YXhFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9y
IiAoIlR5cGVFcnJvciIpCi1GQUlMIEdldHRpbmcgYXJyYXlCdWZmZXIgYWZ0ZXIgZ2V0dGluZyBh
IGxvY2tlZCBSZXF1ZXN0IGJvZHkgYXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0
ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKK1BBU1MgR2V0dGluZyBibG9i
IGFmdGVyIGdldHRpbmcgYSBsb2NrZWQgUmVxdWVzdCBib2R5IAorUEFTUyBHZXR0aW5nIHRleHQg
YWZ0ZXIgZ2V0dGluZyBhIGxvY2tlZCBSZXF1ZXN0IGJvZHkgCitQQVNTIEdldHRpbmcganNvbiBh
ZnRlciBnZXR0aW5nIGEgbG9ja2VkIFJlcXVlc3QgYm9keSAKK1BBU1MgR2V0dGluZyBhcnJheUJ1
ZmZlciBhZnRlciBnZXR0aW5nIGEgbG9ja2VkIFJlcXVlc3QgYm9keSAKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZGlzdHVyYmVkLTMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZGlz
dHVyYmVkLTMtZXhwZWN0ZWQudHh0CmluZGV4IGI5M2UzYTZmZWFkMTNhOGZhYmNiNDcxN2Y0NDhl
NDcwZjNlOWRmOTQuLjUyZWQ2MzBlNGI1ZmNhNmMxN2M1MTNhM2I5NGY4ZDYzMWQxZTI1MTQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWRpc3R1
cmJlZC0zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1
ZXN0LXN0cmVhbS1kaXN0dXJiZWQtMy1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw2IEBACiAKLUZB
SUwgR2V0dGluZyBibG9iIGFmdGVyIHJlYWRpbmcgdGhlIFJlcXVlc3QgYm9keSBhc3NlcnRfdW5y
ZWFjaGVkOiBTaG91bGQgaGF2ZSByZWplY3RlZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFi
bGUgY29kZQotRkFJTCBHZXR0aW5nIHRleHQgYWZ0ZXIgcmVhZGluZyB0aGUgUmVxdWVzdCBib2R5
IGFzc2VydF91bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hl
ZCB1bnJlYWNoYWJsZSBjb2RlCi1GQUlMIEdldHRpbmcganNvbiBhZnRlciByZWFkaW5nIHRoZSBS
ZXF1ZXN0IGJvZHkgYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cg
ZSB9IiB0aHJldyBvYmplY3QgIlN5bnRheEVycm9yOiBUaGUgc3RyaW5nIGRpZCBub3QgbWF0Y2gg
dGhlIGV4cGVjdGVkIHBhdHRlcm4uIiAoIlN5bnRheEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJU
eXBlRXJyb3IiICgiVHlwZUVycm9yIikKLUZBSUwgR2V0dGluZyBhcnJheUJ1ZmZlciBhZnRlciBy
ZWFkaW5nIHRoZSBSZXF1ZXN0IGJvZHkgYXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVq
ZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKK1BBU1MgR2V0dGluZyBi
bG9iIGFmdGVyIHJlYWRpbmcgdGhlIFJlcXVlc3QgYm9keSAKK1BBU1MgR2V0dGluZyB0ZXh0IGFm
dGVyIHJlYWRpbmcgdGhlIFJlcXVlc3QgYm9keSAKK1BBU1MgR2V0dGluZyBqc29uIGFmdGVyIHJl
YWRpbmcgdGhlIFJlcXVlc3QgYm9keSAKK1BBU1MgR2V0dGluZyBhcnJheUJ1ZmZlciBhZnRlciBy
ZWFkaW5nIHRoZSBSZXF1ZXN0IGJvZHkgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
d3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWVtcHR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWVtcHR5LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lOGIxZWNhMzE2M2UzNmJiODMwZTUzZGY1NWQ0MDdmNjAzNzU1ZDljCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZW1wdHkt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorCitQQVNTIEVtcHR5IHN0cmVhbSBib2R5IGFz
IHRleHQgCitQQVNTIEVtcHR5IHN0cmVhbSBib2R5IGFzIGFycmF5QnVmZmVyIAorUEFTUyBFbXB0
eSBzdHJlYW0gYm9keSBhcyBKU09OIAorUEFTUyBFbXB0eSBzdHJlYW0gYm9keSBhcyBibG9iIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1l
bXB0eS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZW1w
dHkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yMDJmOTg0NDU3MmE5NWMyZDE3M2U4YzIwNDA4MGZmMWU5MTA2
ODE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVz
dC1zdHJlYW0tZW1wdHkuaHRtbApAQCAtMCwwICsxLDUwIEBACis8IWRvY3R5cGUgaHRtbD4KKzxo
dG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPkNv
bnN1bWluZyBSZXF1ZXN0IGJvZHkgd2l0aCBub24gQnVmZmVyU291cmNlIFJlYWRhYmxlU3RyZWFt
IGNodW5rczwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0PgorZnVu
Y3Rpb24gY3JlYXRlUmVxdWVzdFdpdGhFbXB0eVJlYWRhYmxlU3RyZWFtKCkKK3sKKyAgICB2YXIg
c3RyZWFtID0gbmV3IFJlYWRhYmxlU3RyZWFtKHtzdGFydDogY29udHJvbGxlciA9PiB7CisgICAg
ICAgIGNvbnRyb2xsZXIuY2xvc2UoKTsKKyAgICB9fSk7CisgICAgcmV0dXJuIG5ldyBSZXF1ZXN0
KCIiLCB7Ym9keTogc3RyZWFtLCBtZXRob2Q6ICJQT1NUIn0pOworfQorCitwcm9taXNlX3Rlc3Qo
dGVzdCA9PiB7CisgICAgcmV0dXJuIGNyZWF0ZVJlcXVlc3RXaXRoRW1wdHlSZWFkYWJsZVN0cmVh
bSgpLnRleHQoKS50aGVuKHRleHQgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHRleHQsICIi
KTsKKyAgICB9KTsKK30sICJFbXB0eSBzdHJlYW0gYm9keSBhcyB0ZXh0Iik7CisKK3Byb21pc2Vf
dGVzdCh0ZXN0ID0+IHsKKyAgICByZXR1cm4gY3JlYXRlUmVxdWVzdFdpdGhFbXB0eVJlYWRhYmxl
U3RyZWFtKCkuYXJyYXlCdWZmZXIoKS50aGVuKGJ1ZmZlciA9PiB7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoYnVmZmVyLmJ5dGVMZW5ndGgsIDAsICJSZXNvbHZlZCB2YWx1ZSBzaG91bGQgYmUgZW1w
dHkiKTsKKyAgICB9KTsKK30sICJFbXB0eSBzdHJlYW0gYm9keSBhcyBhcnJheUJ1ZmZlciIpOwor
Citwcm9taXNlX3Rlc3QodGVzdCA9PiB7CisgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0ZXN0
LCAiU3ludGF4RXJyb3IiLCBjcmVhdGVSZXF1ZXN0V2l0aEVtcHR5UmVhZGFibGVTdHJlYW0oKS5q
c29uKCkpOworfSwgIkVtcHR5IHN0cmVhbSBib2R5IGFzIEpTT04iKTsKKworcHJvbWlzZV90ZXN0
KHRlc3QgPT4geworICAgIHJldHVybiBjcmVhdGVSZXF1ZXN0V2l0aEVtcHR5UmVhZGFibGVTdHJl
YW0oKS5ibG9iKCkudGhlbihmdW5jdGlvbihib2R5QXNCbG9iKSB7CisgICAgICAgIHZhciBwcm9t
aXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAg
ICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKKyAgICAgICAgICAgIHJlYWRlci5vbmxv
YWQgPSAoKSA9PiB7IHJlc29sdmUocmVhZGVyLnJlc3VsdCkgfTsKKyAgICAgICAgICAgIHJlYWRl
ci5vbmVycm9yID0gKCkgPT4geyByZWplY3QoIkJsb2IncyByZWFkZXIgZmFpbGVkIik7IH07Cisg
ICAgICAgICAgICByZWFkZXIucmVhZEFzVGV4dChib2R5QXNCbG9iKTsKKyAgICAgICAgfSk7Cisg
ICAgICAgIHJldHVybiBwcm9taXNlLnRoZW4oZnVuY3Rpb24oYm9keSkgeworICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhib2R5LCAiIiwgIlJlc29sdmVkIHZhbHVlIHNob3VsZCBiZSBlbXB0eSIp
OworICAgICAgICB9KTsKKyAgfSk7Cit9LCAiRW1wdHkgc3RyZWFtIGJvZHkgYXMgYmxvYiIpOwor
ICAgIDwvc2NyaXB0PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1lcnJvci1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1lcnJvci1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYzU0ZmI0OWUyZDBlMzY1MGM5NjEyMDc1MTZhY2U5NzQxOGQ5MjM4NAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFt
LWVycm9yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBSZXF1ZXN0IGJvZHkg
c2hvdWxkIG9ubHkgY29udGFpbiBCdWZmZXJTb3VyY2UgY2h1bmtzIAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1lcnJvci5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZXJyb3IuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lMTllNDhkYWE4MmVhMjEwZmMwM2M1ZjEzYjA2MjYzNzllMWM4ZTBmCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZXJyb3Iu
aHRtbApAQCAtMCwwICsxLDIxIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4K
KyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPkNvbnN1bWluZyBSZXF1ZXN0
IGJvZHkgd2l0aCBub24gQnVmZmVyU291cmNlIFJlYWRhYmxlU3RyZWFtIGNodW5rczwvdGl0bGU+
CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0PgorcHJvbWlzZV90ZXN0KHRlc3Qg
PT4geworICAgIHZhciBzdHJlYW0gPSBuZXcgUmVhZGFibGVTdHJlYW0oe3N0YXJ0OiBjb250cm9s
bGVyID0+IHsKKyAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKCJUaGlzIGlzIG5vdCBhIGJ1ZmZl
ciIpOworICAgICAgICBjb250cm9sbGVyLmNsb3NlKCk7CisgICAgfX0pOworICAgIHZhciByZXF1
ZXN0ID0gbmV3IFJlcXVlc3QoIiIsIHtib2R5OiBzdHJlYW0sIG1ldGhvZDogIlBPU1QifSk7Cisg
ICAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0ZXN0LCBuZXcgVHlwZUVycm9yLCByZXF1ZXN0LnRl
eHQoKSk7Cit9LCAiUmVxdWVzdCBib2R5IHNob3VsZCBvbmx5IGNvbnRhaW4gQnVmZmVyU291cmNl
IGNodW5rcyIpOworICAgIDwvc2NyaXB0PgorICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319574</attachid>
            <date>2017-08-31 21:50:14 -0700</date>
            <delta_ts>2017-08-31 22:05:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176182-20170831215014.patch</filename>
            <type>text/plain</type>
            <size>42081</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNDQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGY4ODYwNTcwMTkwZWE5
ZWM1MzIxYTVhZDIyMDU0NDA4Mzk2MGNjYi4uMDIxZTY0ZGMxZDFmMTU1YjYwMWM2M2Q0NGNlYzQx
ZmJiOGE4MWI2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE3LTA4LTMxICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBbRmV0Y2ggQVBJXSBBZGQg
c3VwcG9ydCBmb3IgY29uc3VtaW5nIGEgUmVxdWVzdCBSZWFkYWJsZVN0cmVhbSBib2R5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYxODIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0czogaHR0cC93
cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZW1wdHkuaHRtbAorICAgICAgICAgICAgICAgaHR0cC93
cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZXJyb3IuaHRtbAorCisgICAgICAgIEFkZGluZyBhIFJl
YWRhYmxlU3RyZWFtU2luayB3aGljaCBhbGxvd3MgdG8gcGlwZSBhbGwgUmVhZGFibGVTdHJlYW0g
ZGF0YSBiYWNrIHRvIEMrKyBjb2RlLgorICAgICAgICBUaGlzIHNpbmsgb25seSB0YWtlcyBCdWZm
ZXJTb3VyY2UgYXMgdGhlIG9ubHkgdXNlciBpcyBGZXRjaCB3aGljaCBoYXMgdGhpcyByZXN0cmlj
dGlvbi4KKyAgICAgICAgVGhpcyBzaW5rIGlzIHRpZWQgdG8gdGhlIHJlYWRhYmxlU3RyZWFtUGlw
ZVRvIGJ1aWx0aW4gaW50ZXJuYWwgZnVuY3Rpb24gdGhhdCByZWFkcyBhbGwgZGF0YSBmcm9tIHRo
ZSBSZWFkYWJsZVN0cmVhbQorICAgICAgICBhbmQgc2VuZCBpdCB0byB0aGUgc2luay4KKworICAg
ICAgICBBZGRpbmcgYSBSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luayBzcGVjaWFsaXph
dGlvbiB0byBnZXQgdGhlIGRhdGEgYXMgYSBTaGFyZWRCdWZmZXIuCisKKyAgICAgICAgVXNlIHRo
YXQgY2xhc3MgaW4gRmV0Y2hCb2R5Q29uc3VtZXIgdG8gZ2V0IHRoZSBkYXRhIGJhY2sgZnJvbSB0
aGUgUmVhZGFibGVTdHJlYW0gYW5kIHRyYW5zZm9ybSBpdCBhY2NvcmRpbmcKKyAgICAgICAgdGhl
IGRlc2lyZWQgYm9keSB0eXBlICh0ZXh0LCBKU09OLCBBcnJheUJ1ZmZlcikuCisKKyAgICAgICAg
KiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAg
ICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZldGNo
Qm9keTo6Y29uc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6OmxvYWRpbmdTdWNj
ZWVkZWQpOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6cmVzb2x2ZVdpdGhUeXBlQW5kRGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpGZXRjaEJvZHlDb25zdW1lcjo6Y2xlYW4pOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hC
b2R5Q29uc3VtZXI6OnJlc29sdmVXaXRoRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJv
ZHlDb25zdW1lcjo6cmVzb2x2ZSk6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlD
b25zdW1lci5oOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGZXRjaFJlc3BvbnNlOjpmaW5pc2hDb25zdW1pbmdTdHJlYW0pOgor
ICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUludGVybmFscy5qczoKKyAg
ICAgICAgKHJlYWRhYmxlU3RyZWFtUGlwZVRvKToKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMv
UmVhZGFibGVTdHJlYW1TaW5rLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJs
ZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luazo6UmVhZGFibGVTdHJlYW1Ub1NoYXJlZEJ1ZmZlclNp
bmspOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW1Ub1NoYXJlZEJ1ZmZlclNpbms6
OnBpcGVGcm9tKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlU3RyZWFtVG9TaGFyZWRCdWZm
ZXJTaW5rOjplbnF1ZXVlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlU3RyZWFtVG9TaGFy
ZWRCdWZmZXJTaW5rOjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZVN0cmVhbVRv
U2hhcmVkQnVmZmVyU2luazo6ZXJyb3IpOgorICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFk
YWJsZVN0cmVhbVNpbmsuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtU2luay5pZGw6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZVN0cmVhbTo6cGlwZVRvKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5oOgorCiAyMDE3LTA4LTMxICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgZ2V0RmlsZU1ldGFkYXRhKCkgZG9lcyBub3Qg
d29yayBhcyBleHBlY3RlZCBmb3Igc3ltYm9saWMgbGlua3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5k
ZXggYzIwZjkwNmM0ZTBjZjliMzkxNTRjYzAwNTIwZTQ3N2JiMTFmYzNiYy4uZWI3NWVhMTNhNDUx
ZjdhZWNlZjdmODMwMTNhZGE3M2JkMDk3ZTI0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTMy
NSw2ICszMjUsNyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIE1vZHVsZXMv
c3RyZWFtcy9SZWFkYWJsZVN0cmVhbUJZT0JSZXF1ZXN0LmlkbAogICAgIE1vZHVsZXMvc3RyZWFt
cy9SZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmlkbAogICAgIE1vZHVsZXMvc3RyZWFt
cy9SZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuaWRsCisgICAgTW9kdWxlcy9zdHJlYW1zL1Jl
YWRhYmxlU3RyZWFtU2luay5pZGwKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1T
b3VyY2UuaWRsCiAgICAgTW9kdWxlcy9zdHJlYW1zL1dyaXRhYmxlU3RyZWFtLmlkbAogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA2ZTc0Nzc3OTgwZWJjNGFiM2UzZDc1MmVkZWEz
ZmE1NzdiYWQzN2NjLi5hNTcxMzZhZDVkMTA3ZjA3ZDZlNTE2MWY5NTAyMTc1NTMwN2Q0Yzg4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTI3Niw2ICsyNzYsNyBAQCBKU19CSU5E
SU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJl
YW1CWU9CUmVxdWVzdC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
c3RyZWFtcy9SZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuaWRsIFwKKyAgICAkKFdlYkNvcmUp
L01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNpbmsuaWRsIFwKICAgICAkKFdlYkNvcmUp
L01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZS5pZGwgXAogICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy9zdHJlYW1zL1dyaXRhYmxlU3RyZWFtLmlkbCBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL3dlYmF1ZGlvL0FuYWx5c2VyTm9kZS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9mZXRjaC9GZXRjaEJvZHkuY3BwCmluZGV4IDQzM2U5NGI1ZTdmYjM2ODU5YTdlMzJhZWI5MDk1
ZjVkZjYxMGQwMTAuLjM0MDQ5NjcxNDU1MWZjNTk1YTZjOGI4YmVlMmFhNzZjMDU4NTJjMDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5jcHAKQEAgLTEzOCw3ICsx
MzgsNyBAQCB2b2lkIEZldGNoQm9keTo6Y29uc3VtZShGZXRjaEJvZHlPd25lciYgb3duZXIsIFJl
ZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIG1fY29uc3VtZXIucmVzb2x2ZShXVEZNb3ZlKHByb21pc2UpKTsKKyAgICBtX2NvbnN1bWVy
LnJlc29sdmUoV1RGTW92ZShwcm9taXNlKSwgbV9yZWFkYWJsZVN0cmVhbS5nZXQoKSk7CiB9CiAK
ICNpZiBFTkFCTEUoU1RSRUFNU19BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIuY3BwCmluZGV4IDlkMDE4NDhjZTRhNzY2MjRjZmZjY2U4
MGNkODdkZTExNzA1MThiYTIuLmI5ZWUxZTEzNmI1NGM1OGIzN2ZlM2U5OWIxYWRiNmM4MzU1MTVi
ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29u
c3VtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29u
c3VtZXIuY3BwCkBAIC01NiwyOSArNTYsNjAgQEAgc3RhdGljIFN0cmluZyB0ZXh0RnJvbVVURjgo
Y29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKQogICAgIHJldHVybiBk
ZWNvZGVyLT5kZWNvZGVBbmRGbHVzaChyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihkYXRh
KSwgbGVuZ3RoKTsKIH0KIAotdm9pZCBGZXRjaEJvZHlDb25zdW1lcjo6cmVzb2x2ZVdpdGhEYXRh
KFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSwgY29uc3QgdW5zaWduZWQgY2hhciogZGF0
YSwgdW5zaWduZWQgbGVuZ3RoKQorc3RhdGljIHZvaWQgcmVzb2x2ZVdpdGhUeXBlQW5kRGF0YShS
ZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UsIEZldGNoQm9keUNvbnN1bWVyOjpUeXBlIHR5
cGUsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUsIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEs
IHVuc2lnbmVkIGxlbmd0aCkKIHsKLSAgICBzd2l0Y2ggKG1fdHlwZSkgewotICAgIGNhc2UgVHlw
ZTo6QXJyYXlCdWZmZXI6CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBGZXRjaEJvZHlD
b25zdW1lcjo6VHlwZTo6QXJyYXlCdWZmZXI6CiAgICAgICAgIGZ1bGZpbGxQcm9taXNlV2l0aEFy
cmF5QnVmZmVyKFdURk1vdmUocHJvbWlzZSksIGRhdGEsIGxlbmd0aCk7CiAgICAgICAgIHJldHVy
bjsKLSAgICBjYXNlIFR5cGU6OkJsb2I6Ci0gICAgICAgIHByb21pc2UtPnJlc29sdmVXaXRoTmV3
bHlDcmVhdGVkPElETEludGVyZmFjZTxCbG9iPj4oYmxvYkZyb21EYXRhKGRhdGEsIGxlbmd0aCwg
bV9jb250ZW50VHlwZSkuZ2V0KCkpOworICAgIGNhc2UgRmV0Y2hCb2R5Q29uc3VtZXI6OlR5cGU6
OkJsb2I6CisgICAgICAgIHByb21pc2UtPnJlc29sdmVXaXRoTmV3bHlDcmVhdGVkPElETEludGVy
ZmFjZTxCbG9iPj4oYmxvYkZyb21EYXRhKGRhdGEsIGxlbmd0aCwgY29udGVudFR5cGUpLmdldCgp
KTsKICAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgVHlwZTo6SlNPTjoKKyAgICBjYXNlIEZldGNo
Qm9keUNvbnN1bWVyOjpUeXBlOjpKU09OOgogICAgICAgICBmdWxmaWxsUHJvbWlzZVdpdGhKU09O
KFdURk1vdmUocHJvbWlzZSksIHRleHRGcm9tVVRGOChkYXRhLCBsZW5ndGgpKTsKICAgICAgICAg
cmV0dXJuOwotICAgIGNhc2UgVHlwZTo6VGV4dDoKKyAgICBjYXNlIEZldGNoQm9keUNvbnN1bWVy
OjpUeXBlOjpUZXh0OgogICAgICAgICBwcm9taXNlLT5yZXNvbHZlPElETERPTVN0cmluZz4odGV4
dEZyb21VVEY4KGRhdGEsIGxlbmd0aCkpOwogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBUeXBl
OjpOb25lOgorICAgIGNhc2UgRmV0Y2hCb2R5Q29uc3VtZXI6OlR5cGU6Ok5vbmU6CiAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogfQogCi12b2lk
IEZldGNoQm9keUNvbnN1bWVyOjpyZXNvbHZlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlz
ZSkKK3ZvaWQgRmV0Y2hCb2R5Q29uc3VtZXI6OmNsZWFuKCkKK3sKKyAgICBtX2J1ZmZlciA9IG51
bGxwdHI7CisgICAgbV9jb25zdW1lUHJvbWlzZSA9IG51bGxwdHI7CisgICAgaWYgKG1fc2luaykg
eworICAgICAgICBtX3NpbmstPmNsZWFyQ2FsbGJhY2soKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KK30KKwordm9pZCBGZXRjaEJvZHlDb25zdW1lcjo6cmVzb2x2ZVdpdGhEYXRhKFJlZjxEZWZl
cnJlZFByb21pc2U+JiYgcHJvbWlzZSwgY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWdu
ZWQgbGVuZ3RoKQoreworICAgIHJlc29sdmVXaXRoVHlwZUFuZERhdGEoV1RGTW92ZShwcm9taXNl
KSwgbV90eXBlLCBtX2NvbnRlbnRUeXBlLCBkYXRhLCBsZW5ndGgpOworfQorCit2b2lkIEZldGNo
Qm9keUNvbnN1bWVyOjpyZXNvbHZlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSwgUmVh
ZGFibGVTdHJlYW0qIHN0cmVhbSkKIHsKKyAgICBpZiAoc3RyZWFtKSB7CisgICAgICAgIEFTU0VS
VCghbV9zaW5rKTsKKyAgICAgICAgbV9zaW5rID0gUmVhZGFibGVTdHJlYW1Ub1NoYXJlZEJ1ZmZl
clNpbms6OmNyZWF0ZShbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIHR5cGUgPSBtX3R5cGUs
IGNvbnRlbnRUeXBlID0gbV9jb250ZW50VHlwZV0oRXhjZXB0aW9uT3I8UmVmUHRyPFNoYXJlZEJ1
ZmZlcj4+JiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhj
ZXB0aW9uKCkpIHsKKyAgICAgICAgICAgICAgICBwcm9taXNlLT5yZWplY3QocmVzdWx0LnJlbGVh
c2VFeGNlcHRpb24oKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBhdXRvKiBkYXRhID0gcmVzdWx0LnJldHVyblZhbHVlKCkgJiYgcmVzdWx0
LnJldHVyblZhbHVlKCktPmRhdGEoKSA/IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdW5zaWduZWQg
Y2hhcio+KHJlc3VsdC5yZXR1cm5WYWx1ZSgpLT5kYXRhKCkpIDogbnVsbHB0cjsKKyAgICAgICAg
ICAgIGF1dG8gc2l6ZSA9IGRhdGEgPyByZXN1bHQucmV0dXJuVmFsdWUoKS0+c2l6ZSgpIDogMDsK
KyAgICAgICAgICAgIHJlc29sdmVXaXRoVHlwZUFuZERhdGEoV1RGTW92ZShwcm9taXNlKSwgdHlw
ZSwgY29udGVudFR5cGUsIGRhdGEsIHNpemUpOworICAgICAgICB9KTsKKyAgICAgICAgbV9zaW5r
LT5waXBlRnJvbSgqc3RyZWFtKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIEFTU0VS
VChtX3R5cGUgIT0gVHlwZTo6Tm9uZSk7CiAgICAgc3dpdGNoIChtX3R5cGUpIHsKICAgICBjYXNl
IFR5cGU6OkFycmF5QnVmZmVyOgpAQCAtOTksMTggKzEzMCwyMiBAQCB2b2lkIEZldGNoQm9keUNv
bnN1bWVyOjpyZXNvbHZlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKICAgICB9CiB9
CiAKLXZvaWQgRmV0Y2hCb2R5Q29uc3VtZXI6OmFwcGVuZChjb25zdCBjaGFyKiBkYXRhLCB1bnNp
Z25lZCBsZW5ndGgpCit2b2lkIEZldGNoQm9keUNvbnN1bWVyOjphcHBlbmQoY29uc3QgY2hhciog
ZGF0YSwgdW5zaWduZWQgc2l6ZSkKIHsKKyAgICBpZiAobV9zb3VyY2UpIHsKKyAgICAgICAgbV9z
b3VyY2UtPmVucXVldWUoQXJyYXlCdWZmZXI6OnRyeUNyZWF0ZShkYXRhLCBzaXplKSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CiAgICAgaWYgKCFtX2J1ZmZlcikgewotICAgICAgICBtX2J1ZmZl
ciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEsIGxlbmd0aCk7CisgICAgICAgIG1fYnVmZmVy
ID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YSwgc2l6ZSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9Ci0gICAgbV9idWZmZXItPmFwcGVuZChkYXRhLCBsZW5ndGgpOworICAgIG1fYnVmZmVyLT5h
cHBlbmQoZGF0YSwgc2l6ZSk7CiB9CiAKLXZvaWQgRmV0Y2hCb2R5Q29uc3VtZXI6OmFwcGVuZChj
b25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCit2b2lkIEZldGNoQm9k
eUNvbnN1bWVyOjphcHBlbmQoY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgc2l6
ZSkKIHsKLSAgICBhcHBlbmQocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YSksIGxl
bmd0aCk7CisgICAgYXBwZW5kKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEpLCBz
aXplKTsKIH0KIAogUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gRmV0Y2hCb2R5Q29uc3VtZXI6OnRha2VE
YXRhKCkKQEAgLTE1NCwyNCArMTg5LDM1IEBAIHZvaWQgRmV0Y2hCb2R5Q29uc3VtZXI6OnNldENv
bnN1bWVQcm9taXNlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKICAgICBtX2NvbnN1
bWVQcm9taXNlID0gV1RGTW92ZShwcm9taXNlKTsKIH0KIAordm9pZCBGZXRjaEJvZHlDb25zdW1l
cjo6c2V0U291cmNlKFJlZjxGZXRjaEJvZHlTb3VyY2U+JiYgc291cmNlKQoreworICAgIG1fc291
cmNlID0gV1RGTW92ZShzb3VyY2UpOworICAgIGlmIChtX2J1ZmZlcikgeworICAgICAgICBtX3Nv
dXJjZS0+ZW5xdWV1ZShtX2J1ZmZlci0+dHJ5Q3JlYXRlQXJyYXlCdWZmZXIoKSk7CisgICAgICAg
IG1fYnVmZmVyID0gbnVsbHB0cjsKKyAgICB9Cit9CisKIHZvaWQgRmV0Y2hCb2R5Q29uc3VtZXI6
OmxvYWRpbmdGYWlsZWQoKQogewogICAgIGlmIChtX2NvbnN1bWVQcm9taXNlKSB7CiAgICAgICAg
IG1fY29uc3VtZVByb21pc2UtPnJlamVjdCgpOwogICAgICAgICBtX2NvbnN1bWVQcm9taXNlID0g
bnVsbHB0cjsKICAgICB9CisgICAgaWYgKG1fc291cmNlKSB7CisgICAgICAgIG1fc291cmNlLT5l
cnJvcihBU0NJSUxpdGVyYWwoIkxvYWRpbmcgZmFpbGVkIikpOworICAgICAgICBtX3NvdXJjZSA9
IG51bGxwdHI7CisgICAgfQogfQogCiB2b2lkIEZldGNoQm9keUNvbnN1bWVyOjpsb2FkaW5nU3Vj
Y2VlZGVkKCkKIHsKICAgICBpZiAobV9jb25zdW1lUHJvbWlzZSkKLSAgICAgICAgcmVzb2x2ZSht
X2NvbnN1bWVQcm9taXNlLnJlbGVhc2VOb25OdWxsKCkpOwotfQotCi12b2lkIEZldGNoQm9keUNv
bnN1bWVyOjpjbGVhbigpCi17Ci0gICAgbV9idWZmZXIgPSBudWxscHRyOwotICAgIG1fY29uc3Vt
ZVByb21pc2UgPSBudWxscHRyOworICAgICAgICByZXNvbHZlKG1fY29uc3VtZVByb21pc2UucmVs
ZWFzZU5vbk51bGwoKSwgbnVsbHB0cik7CisgICAgaWYgKG1fc291cmNlKSB7CisgICAgICAgIG1f
c291cmNlLT5jbG9zZSgpOworICAgICAgICBtX3NvdXJjZSA9IG51bGxwdHI7CisgICAgfQogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zl
dGNoL0ZldGNoQm9keUNvbnN1bWVyLmgKaW5kZXggMWI2NmEzZDk4ZWQ1N2ZkMDk2MTIyZWM3YzQ4
NWZmYzM4OWQyMTUzOC4uZGZkOGZiMWNiZjRmY2JlZDc2NjNlOTgzNjlkMGM1ZWEyNGZjOWYxOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1l
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIu
aApAQCAtMjgsMTIgKzI4LDE2IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiRmV0Y2hC
b2R5U291cmNlLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRl
ICJSZWFkYWJsZVN0cmVhbVNpbmsuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBCbG9iOworY2xhc3MgRmV0Y2hCb2R5U291cmNlOwor
Y2xhc3MgUmVhZGFibGVTdHJlYW07CiAKIGNsYXNzIEZldGNoQm9keUNvbnN1bWVyIHsKIHB1Ymxp
YzoKQEAgLTU3LDcgKzYxLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBjbGVhbigpOwogCi0gICAg
dm9pZCByZXNvbHZlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOworICAgIHZvaWQgcmVzb2x2ZShS
ZWY8RGVmZXJyZWRQcm9taXNlPiYmLCBSZWFkYWJsZVN0cmVhbSopOwogICAgIHZvaWQgcmVzb2x2
ZVdpdGhEYXRhKFJlZjxEZWZlcnJlZFByb21pc2U+JiYsIGNvbnN0IHVuc2lnbmVkIGNoYXIqLCB1
bnNpZ25lZCk7CiAKICAgICBib29sIGhhc0RhdGEoKSBjb25zdCB7IHJldHVybiAhIW1fYnVmZmVy
OyB9CkBAIC02NiwxMiArNzAsMTUgQEAgcHVibGljOgogICAgIHZvaWQgbG9hZGluZ1N1Y2NlZWRl
ZCgpOwogCiAgICAgdm9pZCBzZXRDb25zdW1lUHJvbWlzZShSZWY8RGVmZXJyZWRQcm9taXNlPiYm
KTsKKyAgICB2b2lkIHNldFNvdXJjZShSZWY8RmV0Y2hCb2R5U291cmNlPiYmKTsKIAogcHJpdmF0
ZToKICAgICBUeXBlIG1fdHlwZTsKICAgICBTdHJpbmcgbV9jb250ZW50VHlwZTsKICAgICBSZWZQ
dHI8U2hhcmVkQnVmZmVyPiBtX2J1ZmZlcjsKICAgICBSZWZQdHI8RGVmZXJyZWRQcm9taXNlPiBt
X2NvbnN1bWVQcm9taXNlOworICAgIFJlZlB0cjxSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVy
U2luaz4gbV9zaW5rOworICAgIFJlZlB0cjxGZXRjaEJvZHlTb3VyY2U+IG1fc291cmNlOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0
Y2gvRmV0Y2hSZXNwb25zZS5jcHAKaW5kZXggYzE5M2NlM2UxNzZkNzFhNmNhMjE3ZDVkNTAyYTg5
MzYyNzFkMTI3OS4uNTBiOWIwYWEzNjllN2MzM2RiZjY1ZDIzZWM4ZjA1MTNhODk2Y2VhNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwCkBAIC0z
MDUsMTkgKzMwNSwxOSBAQCB2b2lkIEZldGNoUmVzcG9uc2U6OnN0YXJ0Q29uc3VtaW5nU3RyZWFt
KHVuc2lnbmVkIHR5cGUpCiB7CiAgICAgbV9pc0Rpc3R1cmJlZCA9IHRydWU7CiAgICAgYXV0byBj
b25zdW1lclR5cGUgPSBzdGF0aWNfY2FzdDxGZXRjaEJvZHlDb25zdW1lcjo6VHlwZT4odHlwZSk7
Ci0gICAgbV9jb25zdW1lci5zZXRUeXBlKGNvbnN1bWVyVHlwZSk7CisgICAgYm9keSgpLmNvbnN1
bWVyKCkuc2V0VHlwZShjb25zdW1lclR5cGUpOwogICAgIGlmIChjb25zdW1lclR5cGUgPT0gRmV0
Y2hCb2R5Q29uc3VtZXI6OlR5cGU6OkJsb2IpCi0gICAgICAgIG1fY29uc3VtZXIuc2V0Q29udGVu
dFR5cGUoQmxvYjo6bm9ybWFsaXplZENvbnRlbnRUeXBlKGV4dHJhY3RNSU1FVHlwZUZyb21NZWRp
YVR5cGUobV9jb250ZW50VHlwZSkpKTsKKyAgICAgICAgYm9keSgpLmNvbnN1bWVyKCkuc2V0Q29u
dGVudFR5cGUoQmxvYjo6bm9ybWFsaXplZENvbnRlbnRUeXBlKGV4dHJhY3RNSU1FVHlwZUZyb21N
ZWRpYVR5cGUobV9jb250ZW50VHlwZSkpKTsKIH0KIAogdm9pZCBGZXRjaFJlc3BvbnNlOjpjb25z
dW1lQ2h1bmsoUmVmPEpTQzo6VWludDhBcnJheT4mJiBjaHVuaykKIHsKLSAgICBtX2NvbnN1bWVy
LmFwcGVuZChjaHVuay0+ZGF0YSgpLCBjaHVuay0+Ynl0ZUxlbmd0aCgpKTsKKyAgICBib2R5KCku
Y29uc3VtZXIoKS5hcHBlbmQoY2h1bmstPmRhdGEoKSwgY2h1bmstPmJ5dGVMZW5ndGgoKSk7CiB9
CiAKIHZvaWQgRmV0Y2hSZXNwb25zZTo6ZmluaXNoQ29uc3VtaW5nU3RyZWFtKFJlZjxEZWZlcnJl
ZFByb21pc2U+JiYgcHJvbWlzZSkKIHsKLSAgICBtX2NvbnN1bWVyLnJlc29sdmUoV1RGTW92ZShw
cm9taXNlKSk7CisgICAgYm9keSgpLmNvbnN1bWVyKCkucmVzb2x2ZShXVEZNb3ZlKHByb21pc2Up
LCBudWxscHRyKTsKIH0KIAogdm9pZCBGZXRjaFJlc3BvbnNlOjpjb25zdW1lQm9keUFzU3RyZWFt
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25z
ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmgKaW5kZXgg
ZGM5ZjExZWQ4NDc2MTMyNGI3MThiMGNlZjAyN2NlNDA0MWRhZmY4YS4uZGRmNmQ0MmExNmEyM2Y0
N2NjYzQwMzQwZTllN2FiYjY4OTVkYzMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
ZXRjaC9GZXRjaFJlc3BvbnNlLmgKQEAgLTE0OSw4ICsxNDksNiBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV9zaG91bGRFeHBvc2VCb2R5IHsgdHJ1ZSB9OwogICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhh
dCBmbGFnIG9uY2Ugd2UgaGF2ZSBmdWxsIHN1cHBvcnQgaW4gRE9NIFJlYWRhYmxlU3RyZWFtLgog
ICAgIGJvb2wgbV9pc1JlYWRhYmxlU3RyZWFtIHsgZmFsc2UgfTsKLQotICAgIEZldGNoQm9keUNv
bnN1bWVyIG1fY29uc3VtZXIgeyBGZXRjaEJvZHlDb25zdW1lcjo6VHlwZTo6QXJyYXlCdWZmZXIg
IH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1JbnRlcm5hbHMuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1JbnRlcm5hbHMuanMKaW5kZXgg
ZjRlNWRhZjdiMjEzZDQwZWViZThhNDlkY2IzNmQ3NDliNjdhZTM3Mi4uNTQyNzdmM2FlMDRkYWZi
ZDE1MjFmOWE2MjNmNWEwNzAzMTk2NjdmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUludGVybmFscy5qcwpAQCAtMTA2LDYg
KzEwNiwzMyBAQCBmdW5jdGlvbiByZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyRXJyb3Io
Y29udHJvbGxlciwgZXJyb3IpCiAgICAgQHJlYWRhYmxlU3RyZWFtRXJyb3Ioc3RyZWFtLCBlcnJv
cik7CiB9CiAKK2Z1bmN0aW9uIHJlYWRhYmxlU3RyZWFtUGlwZVRvKHN0cmVhbSwgc2luaykKK3sK
KyAgICAidXNlIHN0cmljdCI7CisgICAgQGFzc2VydChAaXNSZWFkYWJsZVN0cmVhbShzdHJlYW0p
KTsKKworICAgIGNvbnN0IHJlYWRlciA9IG5ldyBAUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVy
KHN0cmVhbSk7CisKKyAgICByZWFkZXIuQGNsb3NlZFByb21pc2VDYXBhYmlsaXR5LkBwcm9taXNl
LkB0aGVuKCgpID0+IHsgfSwgKGUpID0+IHsgc2luay5lcnJvcihlKTsgfSk7CisKKyAgICBmdW5j
dGlvbiBkb1BpcGUoKSB7CisgICAgICAgIEByZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXJSZWFk
KHJlYWRlcikuQHRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICBpZiAocmVzdWx0
LmRvbmUpIHsKKyAgICAgICAgICAgICAgICBzaW5rLmNsb3NlKCk7CisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAg
ICBzaW5rLmVucXVldWUocmVzdWx0LnZhbHVlKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsK
KyAgICAgICAgICAgICAgICBzaW5rLmVycm9yKCJSZWFkYWJsZVN0cmVhbSBjaHVuayBlbnF1ZXVl
aW5nIGluIHRoZSBzaW5rIGZhaWxlZCIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIGRvUGlwZSgpOworICAgICAgICB9KTsKKyAgICB9CisgICAg
ZG9QaXBlKCk7Cit9CisKIGZ1bmN0aW9uIHJlYWRhYmxlU3RyZWFtVGVlKHN0cmVhbSwgc2hvdWxk
Q2xvbmUpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1TaW5rLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYTBlZGUz
YzNjY2ViODMzODRjNjY4ZDNkNDhhMmI4YjgyODJmODcxCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5jcHAKQEAgLTAs
MCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlJlYWRhYmxlU3RyZWFtU2luay5oIgorCisjaW5jbHVkZSAiQnVmZmVyU291cmNlLmgiCisjaW5j
bHVkZSAiRE9NRXhjZXB0aW9uLmgiCisjaW5jbHVkZSAiUmVhZGFibGVTdHJlYW0uaCIKKyNpbmNs
dWRlICJTaGFyZWRCdWZmZXIuaCIKKworI2lmIEVOQUJMRShTVFJFQU1TX0FQSSkKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luazo6UmVhZGFi
bGVTdHJlYW1Ub1NoYXJlZEJ1ZmZlclNpbmsoQ2FsbGJhY2smJiBjYWxsYmFjaykKKyAgICA6IG1f
Y2FsbGJhY2sgeyBXVEZNb3ZlKGNhbGxiYWNrKSB9Cit7Cit9CisKK3ZvaWQgUmVhZGFibGVTdHJl
YW1Ub1NoYXJlZEJ1ZmZlclNpbms6OnBpcGVGcm9tKFJlYWRhYmxlU3RyZWFtJiBzdHJlYW0pCit7
CisgICAgc3RyZWFtLnBpcGVUbygqdGhpcyk7Cit9CisKK3ZvaWQgUmVhZGFibGVTdHJlYW1Ub1No
YXJlZEJ1ZmZlclNpbms6OmVucXVldWUoY29uc3QgQnVmZmVyU291cmNlJiBidWZmZXIpCit7Cisg
ICAgaWYgKCFtX2RhdGEpIHsKKyAgICAgICAgbV9kYXRhID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUo
YnVmZmVyLmRhdGEoKSwgYnVmZmVyLmxlbmd0aCgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICBtX2RhdGEtPmFwcGVuZChyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihidWZmZXIu
ZGF0YSgpKSwgYnVmZmVyLmxlbmd0aCgpKTsKK30KKwordm9pZCBSZWFkYWJsZVN0cmVhbVRvU2hh
cmVkQnVmZmVyU2luazo6Y2xvc2UoKQoreworICAgIGlmIChhdXRvIGNhbGxiYWNrID0gV1RGTW92
ZShtX2NhbGxiYWNrKSkKKyAgICAgICAgY2FsbGJhY2soV1RGTW92ZShtX2RhdGEpKTsKK30KKwor
dm9pZCBSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luazo6ZXJyb3IoU3RyaW5nJiYgbWVz
c2FnZSkKK3sKKyAgICBpZiAoYXV0byBjYWxsYmFjayA9IFdURk1vdmUobV9jYWxsYmFjaykpCisg
ICAgICAgIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgV1RGTW92ZShtZXNzYWdlKSB9
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNUUkVB
TVNfQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtU2luay5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxl
U3RyZWFtU2luay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYxYzJhYWJlZjJkNTY2MDMxOGViYjc5MDVkMWZhZWE5
NTg3MmJmNTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVh
bXMvUmVhZGFibGVTdHJlYW1TaW5rLmgKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1RSRUFNU19BUEkpCisKKyNpbmNsdWRlICJFeGNl
cHRpb25Pci5oIgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQnVmZmVyU291cmNlOwor
Y2xhc3MgUmVhZGFibGVTdHJlYW07CitjbGFzcyBTaGFyZWRCdWZmZXI7CisKK2NsYXNzIFJlYWRh
YmxlU3RyZWFtU2luayA6IHB1YmxpYyBSZWZDb3VudGVkPFJlYWRhYmxlU3RyZWFtU2luaz4gewor
cHVibGljOgorICAgIHZpcnR1YWwgflJlYWRhYmxlU3RyZWFtU2luaygpID0gZGVmYXVsdDsKKwor
ICAgIHZpcnR1YWwgdm9pZCBlbnF1ZXVlKGNvbnN0IEJ1ZmZlclNvdXJjZSYpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgY2xvc2UoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGVycm9yKFN0cmluZyYm
KSA9IDA7Cit9OworCitjbGFzcyBSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luayBmaW5h
bCA6IHB1YmxpYyBSZWFkYWJsZVN0cmVhbVNpbmsgeworcHVibGljOgorICAgIHVzaW5nIENhbGxi
YWNrID0gV1RGOjpGdW5jdGlvbjx2b2lkKEV4Y2VwdGlvbk9yPFJlZlB0cjxTaGFyZWRCdWZmZXI+
PiYmKT47CisgICAgc3RhdGljIFJlZjxSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luaz4g
Y3JlYXRlKENhbGxiYWNrJiYgY2FsbGJhY2spIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVhZGFi
bGVTdHJlYW1Ub1NoYXJlZEJ1ZmZlclNpbmsoV1RGTW92ZShjYWxsYmFjaykpKTsgfQorICAgIHZv
aWQgcGlwZUZyb20oUmVhZGFibGVTdHJlYW0mKTsKKyAgICB2b2lkIGNsZWFyQ2FsbGJhY2soKSB7
IG1fY2FsbGJhY2sgPSB7IH07IH0KKworcHJpdmF0ZToKKyAgICBSZWFkYWJsZVN0cmVhbVRvU2hh
cmVkQnVmZmVyU2luayhDYWxsYmFjayYmKTsKKworICAgIHZvaWQgZW5xdWV1ZShjb25zdCBCdWZm
ZXJTb3VyY2UmKSBmaW5hbDsKKyAgICB2b2lkIGNsb3NlKCkgZmluYWw7CisgICAgdm9pZCBlcnJv
cihTdHJpbmcmJikgZmluYWw7CisKKyAgICBDYWxsYmFjayBtX2NhbGxiYWNrOworICAgIFJlZlB0
cjxTaGFyZWRCdWZmZXI+IG1fZGF0YTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShTVFJFQU1TX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNpbmsuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzk5OTk0
NDBjNWU0MmY0MmNlMTM2Yzk1Njc0NjI0MTdjOTJiYWJhMgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNpbmsuaWRsCkBAIC0w
LDAgKzEsMzUgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8K
KworCitbCisgICAgTm9JbnRlcmZhY2VPYmplY3QsCisgICAgQ29uZGl0aW9uYWw9U1RSRUFNU19B
UEksCisgICAgU2tpcFZUYWJsZVZhbGlkYXRpb24KK10gaW50ZXJmYWNlIFJlYWRhYmxlU3RyZWFt
U2luayB7CisgICAgdm9pZCBlbnF1ZXVlKEJ1ZmZlclNvdXJjZSBjaHVuayk7CisgICAgdm9pZCBj
bG9zZSgpOworICAgIHZvaWQgZXJyb3IoRE9NU3RyaW5nIG1lc3NhZ2UpOworfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3NjYz
MzhiNDcxOGY3OGEwN2FhZGY2YzhiMDcwMDRlNTQ5NWY1YWI5Li40NzI2NTU0NDg0MjkxMWY0Y2Rh
YjE4MzUwOWUyMmRkNGEwYzFkMGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNjczLDYgKzE2NzMsNyBAQAogCQk0MTIzMDgx
QjEzOEM0Mjk3MDBCQ0NGQ0EgLyogV2ViQ29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0YxOUIxQTA4MjQ1RTVBMDAxRTlBQkMg
LyogV2ViQ29yZS5mcmFtZXdvcmsgKi87IH07CiAJCTQxMjMwOTEzMTM4QzQyRkYwMEJDQ0ZDQSAv
KiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGODIxNjI5OTAyOUY0RkI1MDEwMDAxMzEgLyogSmF2YVNjcmlw
dENvcmUuZnJhbWV3b3JrICovOyB9OwogCQk0MTI3RDUzNzBGOEFBQjFEMDBFNDI0RjUgLyogU2Ny
aXB0U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDEyN0Q1MzYwRjhBQUIxRDAwRTQyNEY1IC8qIFNjcmlwdFN0YXRlLmNwcCAqLzsgfTsKKwkJ
NDEyOUM5OEExRjU4N0ZFQjAwOUQ3NDAzIC8qIFJlYWRhYmxlU3RyZWFtU2luay5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTI5Qzk4NzFGNTg2NjJE
MDA5RDc0MDMgLyogUmVhZGFibGVTdHJlYW1TaW5rLmNwcCAqLzsgfTsKIAkJNDEyOURGODUxQkI1
QjgwNzAwMzIyQTE2IC8qIEpTUmVhZGFibGVTdHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMjlERjgzMUJC
NUI3RjcwMDMyMkExNiAvKiBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5jcHAg
Ki87IH07CiAJCTQxMjlERjg2MUJCNUI4MEMwMDMyMkExNiAvKiBKU1JlYWRhYmxlU3RyZWFtUHJp
dmF0ZUNvbnN0cnVjdG9ycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDEyOURGODQxQkI1QjdGNzAwMzIyQTE2IC8qIEpTUmVhZGFibGVTdHJlYW1Qcml2
YXRlQ29uc3RydWN0b3JzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNDEzMDE1RDkxQzdCNTcxNDAwMDkxQzZFIC8qIEZldGNoUmVzcG9uc2UuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzMDE1RDUx
QzdCNTcwNDAwMDkxQzZFIC8qIEZldGNoUmVzcG9uc2UuY3BwICovOyB9OwpAQCAtMzM5NCw3ICsz
Mzk1LDkgQEAKIAkJN0VFNjg0NzExMkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlUmVzcG9uc2VD
Rk5ldC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
RUU2ODQ1RTEyRDI2RTM4MDBFNzk0MTUgLyogUmVzb3VyY2VSZXNwb25zZUNGTmV0LmNwcCAqLzsg
fTsKIAkJN0VFNjg0NzUxMkQyNkU3MDAwRTc5NDE1IC8qIFJlc291cmNlTG9hZGVyQ0ZOZXQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0VFNjg0NzQx
MkQyNkU3MDAwRTc5NDE1IC8qIFJlc291cmNlTG9hZGVyQ0ZOZXQuY3BwICovOyB9OwogCQk3RjRD
OTZEQzFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaEJvZHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0Y0Qzk2RDgxQUQ0NDgzNTAwMzY1QTUwIC8q
IEpTRmV0Y2hCb2R5LmNwcCAqLzsgfTsKKwkJN0Y0Qzk2REMxQUQ0NDgzNTAwMzY1QTUxIC8qIEpT
UmVhZGFibGVTdHJlYW1TaW5rLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdGNEM5NkQ4MUFENDQ4MzUwMDM2NUE1MSAvKiBKU1JlYWRhYmxlU3RyZWFt
U2luay5jcHAgKi87IH07CiAJCTdGNEM5NkREMUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoQm9k
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0Y0Qzk2
RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hCb2R5LmggKi87IH07CisJCTdGNEM5NkREMUFE
NDQ4MzUwMDM2NUE1MSAvKiBKU1JlYWRhYmxlU3RyZWFtU2luay5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0Y0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUxIC8q
IEpTUmVhZGFibGVTdHJlYW1TaW5rLmggKi87IH07CiAJCTgxMDJDNTg4MTMyNUJCMTEwMERERTY3
QSAvKiBTdHJpbmdDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4MTAyQzU4NzEzMjVCQjExMDBEREU2N0EgLyogU3RyaW5nQ2FsbGJhY2su
Y3BwICovOyB9OwogCQk4MUFDNTk5OTEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRl
bS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFBQzU5
OTcxMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW0uaCAqLzsgfTsKIAkJODFBQzU5
OUExMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW1MaXN0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUFDNTk5ODEzMTYzNkU2MDAwOUE3
RTAgLyogRGF0YVRyYW5zZmVySXRlbUxpc3QuaCAqLzsgfTsKQEAgLTkzNzksNiArOTM4Miw5IEBA
CiAJCTQxMTg5RUY3MUFEODIzMjgwMEI5M0Y2NCAvKiBSZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9s
bGVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9s
bGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExODlFRjcxQUQ4MjMyODAw
Qjk1NjcyIC8qIFJlYWRhYmxlU3RyZWFtQllPQlJlcXVlc3QuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFJlYWRhYmxlU3RyZWFtQllPQlJlcXVlc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MTI3RDUzNjBGOEFBQjFEMDBFNDI0RjUgLyogU2NyaXB0U3RhdGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0U3RhdGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTI5Qzk4MDFGNTg2MUM3MDA5RDc0MDMgLyogUmVh
ZGFibGVTdHJlYW1TaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWRh
YmxlU3RyZWFtU2luay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTI5Qzk4MTFG
NTg2MUM3MDA5RDc0MDMgLyogUmVhZGFibGVTdHJlYW1TaW5rLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBSZWFkYWJsZVN0cmVhbVNpbmsuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0MTI5Qzk4NzFGNTg2NjJEMDA5RDc0MDMgLyogUmVhZGFibGVTdHJlYW1TaW5rLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtU2luay5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMjlERjgzMUJCNUI3RjcwMDMyMkEx
NiAvKiBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVj
dG9ycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMjlERjg0MUJCNUI3Rjcw
MDMyMkExNiAvKiBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVj
dG9ycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTMwMTVENTFDN0I1NzA0MDAw
OTFDNkUgLyogRmV0Y2hSZXNwb25zZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBGZXRjaFJlc3BvbnNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTExNTU3LDcgKzExNTYzLDkgQEAKIAkJN0VFNjg0NUUxMkQyNkUzODAwRTc5NDE1IC8qIFJlc291
cmNlUmVzcG9uc2VDRk5ldC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSZXNvdXJjZVJlc3BvbnNlQ0ZOZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3RUU2ODQ3NDEyRDI2RTcwMDBFNzk0MTUgLyogUmVzb3VyY2VMb2FkZXJDRk5ldC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXNvdXJjZUxvYWRlckNGTmV0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0Y0Qzk2RDgxQUQ0NDgzNTAwMzY1QTUw
IC8qIEpTRmV0Y2hCb2R5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTRmV0Y2hCb2R5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0Y0Qzk2RDgx
QUQ0NDgzNTAwMzY1QTUxIC8qIEpTUmVhZGFibGVTdHJlYW1TaW5rLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUmVhZGFibGVTdHJlYW1TaW5rLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0Y0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0
Y2hCb2R5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRmV0Y2hCb2R5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdGNEM5NkQ5MUFENDQ4MzUwMDM2NUE1MSAv
KiBKU1JlYWRhYmxlU3RyZWFtU2luay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU1JlYWRhYmxlU3RyZWFtU2luay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
MTAyQzU4NzEzMjVCQjExMDBEREU2N0EgLyogU3RyaW5nQ2FsbGJhY2suY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RyaW5nQ2FsbGJhY2suY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4MUFDNTk5NzEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5z
ZmVySXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRhVHJhbnNmZXJJ
dGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgxQUM1OTk4MTMxNjM2RTYwMDA5
QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEYXRhVHJhbnNmZXJJdGVtTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTc5ODcsNiArMTc5OTUsOSBAQAogCQkJCTQxOUZBRkFEMUFCQUJDRDUwMDVCODI4QiAv
KiBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuaWRsICovLAogCQkJCTk5MDhCMEYyMUJDQUNG
OTEwMEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuanMgKi8sCiAJCQkJOTkw
OEIwRjExQkNBQ0Y5MTAwRUQwRjY1IC8qIFJlYWRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzICovLAor
CQkJCTQxMjlDOTg3MUY1ODY2MkQwMDlENzQwMyAvKiBSZWFkYWJsZVN0cmVhbVNpbmsuY3BwICov
LAorCQkJCTQxMjlDOTgwMUY1ODYxQzcwMDlENzQwMyAvKiBSZWFkYWJsZVN0cmVhbVNpbmsuaCAq
LywKKwkJCQk0MTI5Qzk4MTFGNTg2MUM3MDA5RDc0MDMgLyogUmVhZGFibGVTdHJlYW1TaW5rLmlk
bCAqLywKIAkJCQk0MThDMzk1QjFDOEYwQTYxMDA1MUM4QTMgLyogUmVhZGFibGVTdHJlYW1Tb3Vy
Y2UuaCAqLywKIAkJCQk0MThDMzk1QzFDOEYwQTYxMDA1MUM4QTMgLyogUmVhZGFibGVTdHJlYW1T
b3VyY2UuaWRsICovLAogCQkJCTk5MDhCMEYxMUJDQUNGOTEwMEVEMEY1NSAvKiBTdHJlYW1JbnRl
cm5hbHMuanMgKi8sCkBAIC0xODEwMSw2ICsxODExMiw4IEBACiAJCQkJN0NFMTkxNkExRjJBQjcw
NjAwMjcyRjc4IC8qIEpTRmV0Y2hSZXF1ZXN0UmVkaXJlY3QuaCAqLywKIAkJCQk4RTRDOTZEODFB
RDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJlc3BvbnNlLmNwcCAqLywKIAkJCQk4RTRDOTZEOTFB
RDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJlc3BvbnNlLmggKi8sCisJCQkJN0Y0Qzk2RDgxQUQ0
NDgzNTAwMzY1QTUxIC8qIEpTUmVhZGFibGVTdHJlYW1TaW5rLmNwcCAqLywKKwkJCQk3RjRDOTZE
OTFBRDQ0ODM1MDAzNjVBNTEgLyogSlNSZWFkYWJsZVN0cmVhbVNpbmsuaCAqLywKIAkJCQk3RTRD
OTZEODFBRDQ0ODM1MDAzNjVBNTEgLyogSlNSZWFkYWJsZVN0cmVhbVNvdXJjZS5jcHAgKi8sCiAJ
CQkJN0U0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUxIC8qIEpTUmVhZGFibGVTdHJlYW1Tb3VyY2UuaCAq
LywKIAkJCSk7CkBAIC0yODUzMSw2ICsyODU0NCw3IEBACiAJCQkJNkM0Qzk2REYxQUQ0NDgzNTAw
MzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJN0M0Qzk2REYxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1EZWZh
dWx0UmVhZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTI5REY4NjFCQjVCODBDMDAzMjJBMTYg
LyogSlNSZWFkYWJsZVN0cmVhbVByaXZhdGVDb25zdHJ1Y3RvcnMuaCBpbiBIZWFkZXJzICovLAor
CQkJCTdGNEM5NkREMUFENDQ4MzUwMDM2NUE1MSAvKiBKU1JlYWRhYmxlU3RyZWFtU2luay5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJN0U0Qzk2REQxQUQ0NDgzNTAwMzY1QTUxIC8qIEpTUmVhZGFibGVT
dHJlYW1Tb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5OThBRUNFMTNGOUQ2QzkwMDkwQjFB
QSAvKiBKU1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1N0UyMzM3MTFEQ0Q0NjhGMDBGMjhEMDEgLyogSlNSc2FIYXNoZWRJbXBvcnRQYXJhbXMuaCBp
biBIZWFkZXJzICovLApAQCAtMzI1NTYsNiArMzI1NzAsNyBAQAogCQkJCTZDNEM5NkRFMUFENDQ4
MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0M0Qzk2REUxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJl
YW1EZWZhdWx0UmVhZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxMjlERjg1MUJCNUI4MDcw
MDMyMkExNiAvKiBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQk3RjRDOTZEQzFBRDQ0ODM1MDAzNjVBNTEgLyogSlNSZWFkYWJsZVN0cmVh
bVNpbmsuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0U0Qzk2REMxQUQ0NDgzNTAwMzY1QTUxIC8q
IEpTUmVhZGFibGVTdHJlYW1Tb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE4QzM5NjAx
QzhGMEFBRTAwNTFDOEEzIC8qIEpTUmVhZGFibGVTdHJlYW1Tb3VyY2VDdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDk5OEFFQ0QxM0Y5RDZDOTAwOTBCMUFBIC8qIEpTUmVxdWVzdEFuaW1h
dGlvbkZyYW1lQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMzMxNyw2ICszMzMzMiw3
IEBACiAJCQkJNkU4NEU5RTAxNzY2OEJFRTAwODE1QjY4IC8qIFJhc3RlclNoYXBlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTQxQjQ1OUVGMUY1NUVCRDEwMDAwRjZGRCAvKiBSZWFkYWJsZVN0cmVh
bS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MThDMzk2MTFDOEYwQUIxMDA1MUM4QTMgLyogUmVh
ZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0MTI5
Qzk4QTFGNTg3RkVCMDA5RDc0MDMgLyogUmVhZGFibGVTdHJlYW1TaW5rLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUZEMzE2MDNCMTJCMDI2NzYwMEMxQTM1OSAvKiBSZWFsdGltZUFuYWx5c2VyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTQxMTAzQUFFMUUzOTc5MTAwMDc2OUYwMyAvKiBSZWFsdGlt
ZUluY29taW5nQXVkaW9Tb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDgzM0UxRTQz
MjREQzAwNjIxRTkyIC8qIFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHAgaW4gU291cmNl
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3Ry
ZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtLmNwcApp
bmRleCA3MjI3NDBmN2ZhNGFiMDIxZDlkZjExMzEzMjI1ZWJlNzAzNmQ0M2VkLi5jZjQ4Njk3NjQ5
OWIyOGUzY2NkY2MyNWM4NzczYTE1NWNiZTllOWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvUmVhZGFibGVTdHJlYW0uY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAi
UmVhZGFibGVTdHJlYW0uaCIKIAogI2luY2x1ZGUgIkpTRE9NQ29udmVydFNlcXVlbmNlcy5oIgor
I2luY2x1ZGUgIkpTUmVhZGFibGVTdHJlYW1TaW5rLmgiCiAjaW5jbHVkZSAiSlNSZWFkYWJsZVN0
cmVhbVNvdXJjZS5oIgogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIKIApAQCAtNTQs
NiArNTUsMjQgQEAgUmVmPFJlYWRhYmxlU3RyZWFtPiBSZWFkYWJsZVN0cmVhbTo6Y3JlYXRlKEpT
Qzo6RXhlY1N0YXRlJiBleGVjU3RhdGUsIFJlZlB0cjxSZWEKICAgICByZXR1cm4gY3JlYXRlKGds
b2JhbE9iamVjdCwgKm5ld1JlYWRhYmxlU3RyZWFtKTsKIH0KIAordm9pZCBSZWFkYWJsZVN0cmVh
bTo6cGlwZVRvKFJlYWRhYmxlU3RyZWFtU2luayYgc2luaykKK3sKKyAgICBhdXRvJiBzdGF0ZSA9
ICptX2dsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOworICAgIEpTVk1DbGllbnREYXRhKiBjbGll
bnREYXRhID0gc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPihzdGF0ZS52bSgpLmNsaWVudERh
dGEpOworICAgIGNvbnN0IElkZW50aWZpZXImIHByaXZhdGVOYW1lID0gY2xpZW50RGF0YS0+YnVp
bHRpbkZ1bmN0aW9ucygpLnJlYWRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMoKS5yZWFkYWJs
ZVN0cmVhbVBpcGVUb1ByaXZhdGVOYW1lKCk7CisKKyAgICBhdXRvIHJlYWRhYmxlU3RyZWFtUGlw
ZVRvID0gbV9nbG9iYWxPYmplY3QtPmdldCgmc3RhdGUsIHByaXZhdGVOYW1lKTsKKyAgICBBU1NF
UlQocmVhZGFibGVTdHJlYW1QaXBlVG8uaXNGdW5jdGlvbigpKTsKKworICAgIENhbGxEYXRhIGNh
bGxEYXRhOworICAgIENhbGxUeXBlIGNhbGxUeXBlID0gZ2V0Q2FsbERhdGEocmVhZGFibGVTdHJl
YW1QaXBlVG8sIGNhbGxEYXRhKTsKKyAgICBBU1NFUlQoY2FsbFR5cGUgIT0gSlNDOjpDYWxsVHlw
ZTo6Tm9uZSk7CisgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJndW1lbnRzOworICAgIGFyZ3Vt
ZW50cy5hcHBlbmQocmVhZGFibGVTdHJlYW0oKSk7CisgICAgYXJndW1lbnRzLmFwcGVuZCh0b0pT
KCZzdGF0ZSwgbV9nbG9iYWxPYmplY3QuZ2V0KCksIHNpbmspKTsKKyAgICBKU0M6OmNhbGwoJnN0
YXRlLCByZWFkYWJsZVN0cmVhbVBpcGVUbywgY2FsbFR5cGUsIGNhbGxEYXRhLCBKU0M6OmpzVW5k
ZWZpbmVkKCksIGFyZ3VtZW50cyk7Cit9CisKIHN0ZDo6cGFpcjxSZWY8UmVhZGFibGVTdHJlYW0+
LCBSZWY8UmVhZGFibGVTdHJlYW0+PiBSZWFkYWJsZVN0cmVhbTo6dGVlKCkKIHsKICAgICBhdXRv
JiBzdGF0ZSA9ICptX2dsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW0uaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtLmgKaW5kZXggYTBjMjZhNDM1NzY4YjJkMTBhZjQx
MDZlNjE3ZjU3Y2IzMGEzMGM5NS4uYWU1YjBkNWZhYTkwMjcyYzg3NzE2NzE0OTkyZTNkYzM0YzY2
ZjQ4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJl
YW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5oCkBA
IC0zMiw2ICszMiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgUmVhZGFibGVT
dHJlYW1TaW5rOwogY2xhc3MgUmVhZGFibGVTdHJlYW1Tb3VyY2U7CiAKIGNsYXNzIFJlYWRhYmxl
U3RyZWFtIGZpbmFsIDogcHVibGljIERPTUd1YXJkZWQ8SlNSZWFkYWJsZVN0cmVhbT4gewpAQCAt
NDIsNiArNDMsOCBAQCBwdWJsaWM6CiAKICAgICBzdGQ6OnBhaXI8UmVmPFJlYWRhYmxlU3RyZWFt
PiwgUmVmPFJlYWRhYmxlU3RyZWFtPj4gdGVlKCk7CiAKKyAgICB2b2lkIHBpcGVUbyhSZWFkYWJs
ZVN0cmVhbVNpbmsmKTsKKwogICAgIEpTUmVhZGFibGVTdHJlYW0qIHJlYWRhYmxlU3RyZWFtKCkg
eyByZXR1cm4gZ3VhcmRlZCgpOyB9CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3MGNiN2VkM2VkZWE2
YzhmYmJkYTk1ZDRmZmRkNDc0YmZkOTYzNWJiLi41OTA1ZjE4NzMwNjhkODU2YmEzNDM5NDQ1ZGI3
ZGQ5NzkyOTQwMzE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjAgQEAKIDIwMTctMDgtMzEgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCisgICAgICAgIFtGZXRjaCBBUEldIEFkZCBzdXBw
b3J0IGZvciBjb25zdW1pbmcgYSBSZXF1ZXN0IFJlYWRhYmxlU3RyZWFtIGJvZHkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjE4MgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC93cHQvZmV0Y2gv
cmVxdWVzdC1zdHJlYW0tZGlzdHVyYmVkLTEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAv
d3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWRpc3R1cmJlZC0yLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBodHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1kaXN0dXJiZWQtMy1leHBlY3RlZC50
eHQ6CisgICAgICAgICogaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZW1wdHktZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1l
bXB0eS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVh
bS1lcnJvci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L2ZldGNoL3Jl
cXVlc3Qtc3RyZWFtLWVycm9yLmh0bWw6IEFkZGVkLgorCisyMDE3LTA4LTMxICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKwogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgUmVxdWVz
dCBib2R5IHN0cmVhbSBjbG9uaW5nCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzYxNDgKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQv
ZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZGlzdHVyYmVkLTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZGlzdHVyYmVkLTEtZXhwZWN0ZWQudHh0
CmluZGV4IGI4NTQ2YmVhMWQ3ODBhYjIyNDMxYWNjOGJmMmU4ZTM3MmYyYjIzNmMuLmE3ZjdiMjQy
ZTFiNWZiNzRiODNhMzYwNTZjYTM2ODQyZDUzZjE5MzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWRpc3R1cmJlZC0xLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1kaXN0dXJiZWQt
MS1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw2IEBACiAKIFBBU1MgR2V0dGluZyBibG9iIGFmdGVy
IGdldHRpbmcgdGhlIFJlcXVlc3QgYm9keSAtIG5vdCBkaXN0dXJiZWQsIG5vdCBsb2NrZWQgCi1G
QUlMIEdldHRpbmcgdGV4dCBhZnRlciBnZXR0aW5nIHRoZSBSZXF1ZXN0IGJvZHkgLSBub3QgZGlz
dHVyYmVkLCBub3QgbG9ja2VkIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQot
RkFJTCBHZXR0aW5nIGpzb24gYWZ0ZXIgZ2V0dGluZyB0aGUgUmVxdWVzdCBib2R5IC0gbm90IGRp
c3R1cmJlZCwgbm90IGxvY2tlZCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0
aCB2YWx1ZTogb2JqZWN0ICJTeW50YXhFcnJvcjogVGhlIHN0cmluZyBkaWQgbm90IG1hdGNoIHRo
ZSBleHBlY3RlZCBwYXR0ZXJuLiIKLUZBSUwgR2V0dGluZyBhcnJheUJ1ZmZlciBhZnRlciBnZXR0
aW5nIHRoZSBSZXF1ZXN0IGJvZHkgLSBub3QgZGlzdHVyYmVkLCBub3QgbG9ja2VkIGFzc2VydF90
cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBHZXR0aW5nIHRleHQgYWZ0ZXIgZ2V0
dGluZyB0aGUgUmVxdWVzdCBib2R5IC0gbm90IGRpc3R1cmJlZCwgbm90IGxvY2tlZCAKK1BBU1Mg
R2V0dGluZyBqc29uIGFmdGVyIGdldHRpbmcgdGhlIFJlcXVlc3QgYm9keSAtIG5vdCBkaXN0dXJi
ZWQsIG5vdCBsb2NrZWQgCitQQVNTIEdldHRpbmcgYXJyYXlCdWZmZXIgYWZ0ZXIgZ2V0dGluZyB0
aGUgUmVxdWVzdCBib2R5IC0gbm90IGRpc3R1cmJlZCwgbm90IGxvY2tlZCAKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZGlzdHVyYmVkLTIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0t
ZGlzdHVyYmVkLTItZXhwZWN0ZWQudHh0CmluZGV4IGYyYjliMmU1ZmNlOTM1NmQxNTM2MmIyYTFl
YWE2NTEwOGIwNjYzNjcuLmRlY2JmZDRjOTgxZDBhN2MyNDM2MTAxMzFmMGJkOWVkMGQ3YTI2NjMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWRp
c3R1cmJlZC0yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9y
ZXF1ZXN0LXN0cmVhbS1kaXN0dXJiZWQtMi1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw2IEBACiAK
LUZBSUwgR2V0dGluZyBibG9iIGFmdGVyIGdldHRpbmcgYSBsb2NrZWQgUmVxdWVzdCBib2R5IGFz
c2VydF91bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1
bnJlYWNoYWJsZSBjb2RlCi1GQUlMIEdldHRpbmcgdGV4dCBhZnRlciBnZXR0aW5nIGEgbG9ja2Vk
IFJlcXVlc3QgYm9keSBhc3NlcnRfdW5yZWFjaGVkOiBTaG91bGQgaGF2ZSByZWplY3RlZDogdW5k
ZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQotRkFJTCBHZXR0aW5nIGpzb24gYWZ0ZXIg
Z2V0dGluZyBhIGxvY2tlZCBSZXF1ZXN0IGJvZHkgYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gImZ1
bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlN5bnRheEVycm9yOiBUaGUgc3Ry
aW5nIGRpZCBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIHBhdHRlcm4uIiAoIlN5bnRheEVycm9yIikg
ZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKLUZBSUwgR2V0dGluZyBh
cnJheUJ1ZmZlciBhZnRlciBnZXR0aW5nIGEgbG9ja2VkIFJlcXVlc3QgYm9keSBhc3NlcnRfdW5y
ZWFjaGVkOiBTaG91bGQgaGF2ZSByZWplY3RlZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFi
bGUgY29kZQorUEFTUyBHZXR0aW5nIGJsb2IgYWZ0ZXIgZ2V0dGluZyBhIGxvY2tlZCBSZXF1ZXN0
IGJvZHkgCitQQVNTIEdldHRpbmcgdGV4dCBhZnRlciBnZXR0aW5nIGEgbG9ja2VkIFJlcXVlc3Qg
Ym9keSAKK1BBU1MgR2V0dGluZyBqc29uIGFmdGVyIGdldHRpbmcgYSBsb2NrZWQgUmVxdWVzdCBi
b2R5IAorUEFTUyBHZXR0aW5nIGFycmF5QnVmZmVyIGFmdGVyIGdldHRpbmcgYSBsb2NrZWQgUmVx
dWVzdCBib2R5IAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1
ZXN0LXN0cmVhbS1kaXN0dXJiZWQtMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dw
dC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1kaXN0dXJiZWQtMy1leHBlY3RlZC50eHQKaW5kZXggYjkz
ZTNhNmZlYWQxM2E4ZmFiY2I0NzE3ZjQ0OGU0NzBmM2U5ZGY5NC4uNTJlZDYzMGU0YjVmY2E2YzE3
YzUxM2EzYjk0ZjhkNjMxZDFlMjUxNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQv
ZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZGlzdHVyYmVkLTMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWRpc3R1cmJlZC0zLWV4cGVjdGVk
LnR4dApAQCAtMSw2ICsxLDYgQEAKIAotRkFJTCBHZXR0aW5nIGJsb2IgYWZ0ZXIgcmVhZGluZyB0
aGUgUmVxdWVzdCBib2R5IGFzc2VydF91bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1
bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCi1GQUlMIEdldHRpbmcgdGV4dCBhZnRl
ciByZWFkaW5nIHRoZSBSZXF1ZXN0IGJvZHkgYXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUg
cmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKLUZBSUwgR2V0dGlu
ZyBqc29uIGFmdGVyIHJlYWRpbmcgdGhlIFJlcXVlc3QgYm9keSBhc3NlcnRfdGhyb3dzOiBmdW5j
dGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiU3ludGF4RXJyb3I6
IFRoZSBzdHJpbmcgZGlkIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgcGF0dGVybi4iICgiU3ludGF4
RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQotRkFJTCBH
ZXR0aW5nIGFycmF5QnVmZmVyIGFmdGVyIHJlYWRpbmcgdGhlIFJlcXVlc3QgYm9keSBhc3NlcnRf
dW5yZWFjaGVkOiBTaG91bGQgaGF2ZSByZWplY3RlZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFj
aGFibGUgY29kZQorUEFTUyBHZXR0aW5nIGJsb2IgYWZ0ZXIgcmVhZGluZyB0aGUgUmVxdWVzdCBi
b2R5IAorUEFTUyBHZXR0aW5nIHRleHQgYWZ0ZXIgcmVhZGluZyB0aGUgUmVxdWVzdCBib2R5IAor
UEFTUyBHZXR0aW5nIGpzb24gYWZ0ZXIgcmVhZGluZyB0aGUgUmVxdWVzdCBib2R5IAorUEFTUyBH
ZXR0aW5nIGFycmF5QnVmZmVyIGFmdGVyIHJlYWRpbmcgdGhlIFJlcXVlc3QgYm9keSAKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZW1wdHkt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0t
ZW1wdHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4YjFlY2EzMTYzZTM2YmI4MzBlNTNkZjU1
ZDQwN2Y2MDM3NTVkOWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9m
ZXRjaC9yZXF1ZXN0LXN0cmVhbS1lbXB0eS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisK
K1BBU1MgRW1wdHkgc3RyZWFtIGJvZHkgYXMgdGV4dCAKK1BBU1MgRW1wdHkgc3RyZWFtIGJvZHkg
YXMgYXJyYXlCdWZmZXIgCitQQVNTIEVtcHR5IHN0cmVhbSBib2R5IGFzIEpTT04gCitQQVNTIEVt
cHR5IHN0cmVhbSBib2R5IGFzIGJsb2IgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
d3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWVtcHR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dw
dC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1lbXB0eS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwMmY5ODQ0NTcy
YTk1YzJkMTczZThjMjA0MDgwZmYxZTkxMDY4MTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1lbXB0eS5odG1sCkBAIC0wLDAgKzEs
NTAgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+Q29uc3VtaW5nIFJlcXVlc3QgYm9keSB3aXRoIG5vbiBC
dWZmZXJTb3VyY2UgUmVhZGFibGVTdHJlYW0gY2h1bmtzPC90aXRsZT4KKyAgICA8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+Cisg
IDxib2R5PgorICAgIDxzY3JpcHQ+CitmdW5jdGlvbiBjcmVhdGVSZXF1ZXN0V2l0aEVtcHR5UmVh
ZGFibGVTdHJlYW0oKQoreworICAgIHZhciBzdHJlYW0gPSBuZXcgUmVhZGFibGVTdHJlYW0oe3N0
YXJ0OiBjb250cm9sbGVyID0+IHsKKyAgICAgICAgY29udHJvbGxlci5jbG9zZSgpOworICAgIH19
KTsKKyAgICByZXR1cm4gbmV3IFJlcXVlc3QoIiIsIHtib2R5OiBzdHJlYW0sIG1ldGhvZDogIlBP
U1QifSk7Cit9CisKK3Byb21pc2VfdGVzdCh0ZXN0ID0+IHsKKyAgICByZXR1cm4gY3JlYXRlUmVx
dWVzdFdpdGhFbXB0eVJlYWRhYmxlU3RyZWFtKCkudGV4dCgpLnRoZW4odGV4dCA9PiB7CisgICAg
ICAgIGFzc2VydF9lcXVhbHModGV4dCwgIiIpOworICAgIH0pOworfSwgIkVtcHR5IHN0cmVhbSBi
b2R5IGFzIHRleHQiKTsKKworcHJvbWlzZV90ZXN0KHRlc3QgPT4geworICAgIHJldHVybiBjcmVh
dGVSZXF1ZXN0V2l0aEVtcHR5UmVhZGFibGVTdHJlYW0oKS5hcnJheUJ1ZmZlcigpLnRoZW4oYnVm
ZmVyID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhidWZmZXIuYnl0ZUxlbmd0aCwgMCwgIlJl
c29sdmVkIHZhbHVlIHNob3VsZCBiZSBlbXB0eSIpOworICAgIH0pOworfSwgIkVtcHR5IHN0cmVh
bSBib2R5IGFzIGFycmF5QnVmZmVyIik7CisKK3Byb21pc2VfdGVzdCh0ZXN0ID0+IHsKKyAgICBy
ZXR1cm4gcHJvbWlzZV9yZWplY3RzKHRlc3QsICJTeW50YXhFcnJvciIsIGNyZWF0ZVJlcXVlc3RX
aXRoRW1wdHlSZWFkYWJsZVN0cmVhbSgpLmpzb24oKSk7Cit9LCAiRW1wdHkgc3RyZWFtIGJvZHkg
YXMgSlNPTiIpOworCitwcm9taXNlX3Rlc3QodGVzdCA9PiB7CisgICAgcmV0dXJuIGNyZWF0ZVJl
cXVlc3RXaXRoRW1wdHlSZWFkYWJsZVN0cmVhbSgpLmJsb2IoKS50aGVuKGZ1bmN0aW9uKGJvZHlB
c0Jsb2IpIHsKKyAgICAgICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNv
bHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigp
OworICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHsgcmVzb2x2ZShyZWFkZXIucmVz
dWx0KSB9OworICAgICAgICAgICAgcmVhZGVyLm9uZXJyb3IgPSAoKSA9PiB7IHJlamVjdCgiQmxv
YidzIHJlYWRlciBmYWlsZWQiKTsgfTsKKyAgICAgICAgICAgIHJlYWRlci5yZWFkQXNUZXh0KGJv
ZHlBc0Jsb2IpOworICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJuIHByb21pc2UudGhlbihmdW5j
dGlvbihib2R5KSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJvZHksICIiLCAiUmVzb2x2
ZWQgdmFsdWUgc2hvdWxkIGJlIGVtcHR5Iik7CisgICAgICAgIH0pOworICB9KTsKK30sICJFbXB0
eSBzdHJlYW0gYm9keSBhcyBibG9iIik7CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFt
LWVycm9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qt
c3RyZWFtLWVycm9yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNTRmYjQ5ZTJkMGUzNjUwYzk2
MTIwNzUxNmFjZTk3NDE4ZDkyMzg0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZXJyb3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MyBAQAorCitQQVNTIFJlcXVlc3QgYm9keSBzaG91bGQgb25seSBjb250YWluIEJ1ZmZlclNvdXJj
ZSBjaHVua3MgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVl
c3Qtc3RyZWFtLWVycm9yLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0
LXN0cmVhbS1lcnJvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxOWU0OGRhYTgyZWEyMTBmYzAzYzVmMTNi
MDYyNjM3OWUxYzhlMGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9m
ZXRjaC9yZXF1ZXN0LXN0cmVhbS1lcnJvci5odG1sCkBAIC0wLDAgKzEsMjEgQEAKKzwhZG9jdHlw
ZSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAg
ICA8dGl0bGU+Q29uc3VtaW5nIFJlcXVlc3QgYm9keSB3aXRoIG5vbiBCdWZmZXJTb3VyY2UgUmVh
ZGFibGVTdHJlYW0gY2h1bmtzPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxz
Y3JpcHQ+Citwcm9taXNlX3Rlc3QodGVzdCA9PiB7CisgICAgdmFyIHN0cmVhbSA9IG5ldyBSZWFk
YWJsZVN0cmVhbSh7c3RhcnQ6IGNvbnRyb2xsZXIgPT4geworICAgICAgICBjb250cm9sbGVyLmVu
cXVldWUoIlRoaXMgaXMgbm90IGEgYnVmZmVyIik7CisgICAgICAgIGNvbnRyb2xsZXIuY2xvc2Uo
KTsKKyAgICB9fSk7CisgICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwge2JvZHk6IHN0
cmVhbSwgbWV0aG9kOiAiUE9TVCJ9KTsKKyAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHRlc3Qs
IG5ldyBUeXBlRXJyb3IsIHJlcXVlc3QudGV4dCgpKTsKK30sICJSZXF1ZXN0IGJvZHkgc2hvdWxk
IG9ubHkgY29udGFpbiBCdWZmZXJTb3VyY2UgY2h1bmtzIik7CisgICAgPC9zY3JpcHQ+CisgIDwv
Ym9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319575</attachid>
            <date>2017-08-31 22:05:58 -0700</date>
            <delta_ts>2017-09-01 08:51:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176182-20170831220557.patch</filename>
            <type>text/plain</type>
            <size>42398</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNDQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGY4ODYwNTcwMTkwZWE5
ZWM1MzIxYTVhZDIyMDU0NDA4Mzk2MGNjYi4uMDIxZTY0ZGMxZDFmMTU1YjYwMWM2M2Q0NGNlYzQx
ZmJiOGE4MWI2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE3LTA4LTMxICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBbRmV0Y2ggQVBJXSBBZGQg
c3VwcG9ydCBmb3IgY29uc3VtaW5nIGEgUmVxdWVzdCBSZWFkYWJsZVN0cmVhbSBib2R5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYxODIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0czogaHR0cC93
cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZW1wdHkuaHRtbAorICAgICAgICAgICAgICAgaHR0cC93
cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZXJyb3IuaHRtbAorCisgICAgICAgIEFkZGluZyBhIFJl
YWRhYmxlU3RyZWFtU2luayB3aGljaCBhbGxvd3MgdG8gcGlwZSBhbGwgUmVhZGFibGVTdHJlYW0g
ZGF0YSBiYWNrIHRvIEMrKyBjb2RlLgorICAgICAgICBUaGlzIHNpbmsgb25seSB0YWtlcyBCdWZm
ZXJTb3VyY2UgYXMgdGhlIG9ubHkgdXNlciBpcyBGZXRjaCB3aGljaCBoYXMgdGhpcyByZXN0cmlj
dGlvbi4KKyAgICAgICAgVGhpcyBzaW5rIGlzIHRpZWQgdG8gdGhlIHJlYWRhYmxlU3RyZWFtUGlw
ZVRvIGJ1aWx0aW4gaW50ZXJuYWwgZnVuY3Rpb24gdGhhdCByZWFkcyBhbGwgZGF0YSBmcm9tIHRo
ZSBSZWFkYWJsZVN0cmVhbQorICAgICAgICBhbmQgc2VuZCBpdCB0byB0aGUgc2luay4KKworICAg
ICAgICBBZGRpbmcgYSBSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luayBzcGVjaWFsaXph
dGlvbiB0byBnZXQgdGhlIGRhdGEgYXMgYSBTaGFyZWRCdWZmZXIuCisKKyAgICAgICAgVXNlIHRo
YXQgY2xhc3MgaW4gRmV0Y2hCb2R5Q29uc3VtZXIgdG8gZ2V0IHRoZSBkYXRhIGJhY2sgZnJvbSB0
aGUgUmVhZGFibGVTdHJlYW0gYW5kIHRyYW5zZm9ybSBpdCBhY2NvcmRpbmcKKyAgICAgICAgdGhl
IGRlc2lyZWQgYm9keSB0eXBlICh0ZXh0LCBKU09OLCBBcnJheUJ1ZmZlcikuCisKKyAgICAgICAg
KiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAg
ICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZldGNo
Qm9keTo6Y29uc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6OmxvYWRpbmdTdWNj
ZWVkZWQpOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6cmVzb2x2ZVdpdGhUeXBlQW5kRGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpGZXRjaEJvZHlDb25zdW1lcjo6Y2xlYW4pOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hC
b2R5Q29uc3VtZXI6OnJlc29sdmVXaXRoRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJv
ZHlDb25zdW1lcjo6cmVzb2x2ZSk6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlD
b25zdW1lci5oOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGZXRjaFJlc3BvbnNlOjpmaW5pc2hDb25zdW1pbmdTdHJlYW0pOgor
ICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUludGVybmFscy5qczoKKyAg
ICAgICAgKHJlYWRhYmxlU3RyZWFtUGlwZVRvKToKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMv
UmVhZGFibGVTdHJlYW1TaW5rLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJs
ZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luazo6UmVhZGFibGVTdHJlYW1Ub1NoYXJlZEJ1ZmZlclNp
bmspOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW1Ub1NoYXJlZEJ1ZmZlclNpbms6
OnBpcGVGcm9tKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlU3RyZWFtVG9TaGFyZWRCdWZm
ZXJTaW5rOjplbnF1ZXVlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlU3RyZWFtVG9TaGFy
ZWRCdWZmZXJTaW5rOjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZVN0cmVhbVRv
U2hhcmVkQnVmZmVyU2luazo6ZXJyb3IpOgorICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFk
YWJsZVN0cmVhbVNpbmsuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtU2luay5pZGw6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZVN0cmVhbTo6cGlwZVRvKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5oOgorCiAyMDE3LTA4LTMxICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgZ2V0RmlsZU1ldGFkYXRhKCkgZG9lcyBub3Qg
d29yayBhcyBleHBlY3RlZCBmb3Igc3ltYm9saWMgbGlua3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5k
ZXggYzIwZjkwNmM0ZTBjZjliMzkxNTRjYzAwNTIwZTQ3N2JiMTFmYzNiYy4uMmI2YWY1YjQ3MzYw
ZjIzMmQzZTJhN2VjMTExODU4NTg0Y2FkNmM3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTMy
NSw2ICszMjUsNyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIE1vZHVsZXMv
c3RyZWFtcy9SZWFkYWJsZVN0cmVhbUJZT0JSZXF1ZXN0LmlkbAogICAgIE1vZHVsZXMvc3RyZWFt
cy9SZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmlkbAogICAgIE1vZHVsZXMvc3RyZWFt
cy9SZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuaWRsCisgICAgTW9kdWxlcy9zdHJlYW1zL1Jl
YWRhYmxlU3RyZWFtU2luay5pZGwKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1T
b3VyY2UuaWRsCiAgICAgTW9kdWxlcy9zdHJlYW1zL1dyaXRhYmxlU3RyZWFtLmlkbAogCkBAIC0x
MDY5LDYgKzEwNzAsOCBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgTW9kdWxlcy9zcGVlY2gv
U3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmNwcAogICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5
bnRoZXNpc1ZvaWNlLmNwcAogCisgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2lu
ay5jcHAKKwogICAgIE1vZHVsZXMvd2ViYXVkaW8vQW5hbHlzZXJOb2RlLmNwcAogICAgIE1vZHVs
ZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3BwCiAgICAgTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0Jhc2ljSW5zcGVjdG9yTm9kZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmlu
ZGV4IDZlNzQ3Nzc5ODBlYmM0YWIzZTNkNzUyZWRlYTNmYTU3N2JhZDM3Y2MuLmE1NzEzNmFkNWQx
MDdmMDdkNmU1MTYxZjk1MDIxNzU1MzA3ZDRjODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQpAQCAtMjc2LDYgKzI3Niw3IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNv
cmUpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUJZT0JSZXF1ZXN0LmlkbCBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxl
ci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtRGVm
YXVsdFJlYWRlci5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxl
U3RyZWFtU2luay5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxl
U3RyZWFtU291cmNlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvV3JpdGFi
bGVTdHJlYW0uaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQW5hbHlzZXJO
b2RlLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNo
Qm9keS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5jcHAKaW5k
ZXggNDMzZTk0YjVlN2ZiMzY4NTlhN2UzMmFlYjkwOTVmNWRmNjEwZDAxMC4uMzQwNDk2NzE0NTUx
ZmM1OTVhNmM4YjhiZWUyYWE3NmMwNTg1MmMwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmV0Y2gvRmV0Y2hCb2R5LmNwcApAQCAtMTM4LDcgKzEzOCw3IEBAIHZvaWQgRmV0Y2hCb2R5Ojpj
b25zdW1lKEZldGNoQm9keU93bmVyJiBvd25lciwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9t
aXNlKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9jb25zdW1lci5yZXNvbHZlKFdU
Rk1vdmUocHJvbWlzZSkpOworICAgIG1fY29uc3VtZXIucmVzb2x2ZShXVEZNb3ZlKHByb21pc2Up
LCBtX3JlYWRhYmxlU3RyZWFtLmdldCgpKTsKIH0KIAogI2lmIEVOQUJMRShTVFJFQU1TX0FQSSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3Vt
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5j
cHAKaW5kZXggOWQwMTg0OGNlNGE3NjYyNGNmZmNjZTgwY2Q4N2RlMTE3MDUxOGJhMi4uYjllZTFl
MTM2YjU0YzU4YjM3ZmUzZTk5YjFhZGI2YzgzNTUxNWI4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5jcHAKQEAgLTU2LDI5ICs1Niw2
MCBAQCBzdGF0aWMgU3RyaW5nIHRleHRGcm9tVVRGOChjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRh
LCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgcmV0dXJuIGRlY29kZXItPmRlY29kZUFuZEZsdXNoKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEpLCBsZW5ndGgpOwogfQogCi12b2lkIEZl
dGNoQm9keUNvbnN1bWVyOjpyZXNvbHZlV2l0aERhdGEoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBw
cm9taXNlLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCitzdGF0
aWMgdm9pZCByZXNvbHZlV2l0aFR5cGVBbmREYXRhKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJv
bWlzZSwgRmV0Y2hCb2R5Q29uc3VtZXI6OlR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBjb250ZW50
VHlwZSwgY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKQogewotICAg
IHN3aXRjaCAobV90eXBlKSB7Ci0gICAgY2FzZSBUeXBlOjpBcnJheUJ1ZmZlcjoKKyAgICBzd2l0
Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEZldGNoQm9keUNvbnN1bWVyOjpUeXBlOjpBcnJheUJ1ZmZl
cjoKICAgICAgICAgZnVsZmlsbFByb21pc2VXaXRoQXJyYXlCdWZmZXIoV1RGTW92ZShwcm9taXNl
KSwgZGF0YSwgbGVuZ3RoKTsKICAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgVHlwZTo6QmxvYjoK
LSAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZVdpdGhOZXdseUNyZWF0ZWQ8SURMSW50ZXJmYWNlPEJs
b2I+PihibG9iRnJvbURhdGEoZGF0YSwgbGVuZ3RoLCBtX2NvbnRlbnRUeXBlKS5nZXQoKSk7Cisg
ICAgY2FzZSBGZXRjaEJvZHlDb25zdW1lcjo6VHlwZTo6QmxvYjoKKyAgICAgICAgcHJvbWlzZS0+
cmVzb2x2ZVdpdGhOZXdseUNyZWF0ZWQ8SURMSW50ZXJmYWNlPEJsb2I+PihibG9iRnJvbURhdGEo
ZGF0YSwgbGVuZ3RoLCBjb250ZW50VHlwZSkuZ2V0KCkpOwogICAgICAgICByZXR1cm47Ci0gICAg
Y2FzZSBUeXBlOjpKU09OOgorICAgIGNhc2UgRmV0Y2hCb2R5Q29uc3VtZXI6OlR5cGU6OkpTT046
CiAgICAgICAgIGZ1bGZpbGxQcm9taXNlV2l0aEpTT04oV1RGTW92ZShwcm9taXNlKSwgdGV4dEZy
b21VVEY4KGRhdGEsIGxlbmd0aCkpOwogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBUeXBlOjpU
ZXh0OgorICAgIGNhc2UgRmV0Y2hCb2R5Q29uc3VtZXI6OlR5cGU6OlRleHQ6CiAgICAgICAgIHBy
b21pc2UtPnJlc29sdmU8SURMRE9NU3RyaW5nPih0ZXh0RnJvbVVURjgoZGF0YSwgbGVuZ3RoKSk7
CiAgICAgICAgIHJldHVybjsKLSAgICBjYXNlIFR5cGU6Ok5vbmU6CisgICAgY2FzZSBGZXRjaEJv
ZHlDb25zdW1lcjo6VHlwZTo6Tm9uZToKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiB9CiAKLXZvaWQgRmV0Y2hCb2R5Q29uc3VtZXI6OnJlc29s
dmUoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQordm9pZCBGZXRjaEJvZHlDb25zdW1l
cjo6Y2xlYW4oKQoreworICAgIG1fYnVmZmVyID0gbnVsbHB0cjsKKyAgICBtX2NvbnN1bWVQcm9t
aXNlID0gbnVsbHB0cjsKKyAgICBpZiAobV9zaW5rKSB7CisgICAgICAgIG1fc2luay0+Y2xlYXJD
YWxsYmFjaygpOworICAgICAgICByZXR1cm47CisgICAgfQorfQorCit2b2lkIEZldGNoQm9keUNv
bnN1bWVyOjpyZXNvbHZlV2l0aERhdGEoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlLCBj
b25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgcmVzb2x2
ZVdpdGhUeXBlQW5kRGF0YShXVEZNb3ZlKHByb21pc2UpLCBtX3R5cGUsIG1fY29udGVudFR5cGUs
IGRhdGEsIGxlbmd0aCk7Cit9CisKK3ZvaWQgRmV0Y2hCb2R5Q29uc3VtZXI6OnJlc29sdmUoUmVm
PERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlLCBSZWFkYWJsZVN0cmVhbSogc3RyZWFtKQogewor
ICAgIGlmIChzdHJlYW0pIHsKKyAgICAgICAgQVNTRVJUKCFtX3NpbmspOworICAgICAgICBtX3Np
bmsgPSBSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luazo6Y3JlYXRlKFtwcm9taXNlID0g
V1RGTW92ZShwcm9taXNlKSwgdHlwZSA9IG1fdHlwZSwgY29udGVudFR5cGUgPSBtX2NvbnRlbnRU
eXBlXShFeGNlcHRpb25PcjxSZWZQdHI8U2hhcmVkQnVmZmVyPj4mJiByZXN1bHQpIG11dGFibGUg
eworICAgICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgeworICAgICAgICAgICAg
ICAgIHByb21pc2UtPnJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKKyAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGF1dG8qIGRhdGEg
PSByZXN1bHQucmV0dXJuVmFsdWUoKSAmJiByZXN1bHQucmV0dXJuVmFsdWUoKS0+ZGF0YSgpID8g
cmVpbnRlcnByZXRfY2FzdDxjb25zdCB1bnNpZ25lZCBjaGFyKj4ocmVzdWx0LnJldHVyblZhbHVl
KCktPmRhdGEoKSkgOiBudWxscHRyOworICAgICAgICAgICAgYXV0byBzaXplID0gZGF0YSA/IHJl
c3VsdC5yZXR1cm5WYWx1ZSgpLT5zaXplKCkgOiAwOworICAgICAgICAgICAgcmVzb2x2ZVdpdGhU
eXBlQW5kRGF0YShXVEZNb3ZlKHByb21pc2UpLCB0eXBlLCBjb250ZW50VHlwZSwgZGF0YSwgc2l6
ZSk7CisgICAgICAgIH0pOworICAgICAgICBtX3NpbmstPnBpcGVGcm9tKCpzdHJlYW0pOworICAg
ICAgICByZXR1cm47CisgICAgfQorCiAgICAgQVNTRVJUKG1fdHlwZSAhPSBUeXBlOjpOb25lKTsK
ICAgICBzd2l0Y2ggKG1fdHlwZSkgewogICAgIGNhc2UgVHlwZTo6QXJyYXlCdWZmZXI6CkBAIC05
OSwxOCArMTMwLDIyIEBAIHZvaWQgRmV0Y2hCb2R5Q29uc3VtZXI6OnJlc29sdmUoUmVmPERlZmVy
cmVkUHJvbWlzZT4mJiBwcm9taXNlKQogICAgIH0KIH0KIAotdm9pZCBGZXRjaEJvZHlDb25zdW1l
cjo6YXBwZW5kKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKK3ZvaWQgRmV0Y2hC
b2R5Q29uc3VtZXI6OmFwcGVuZChjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBzaXplKQogewor
ICAgIGlmIChtX3NvdXJjZSkgeworICAgICAgICBtX3NvdXJjZS0+ZW5xdWV1ZShBcnJheUJ1ZmZl
cjo6dHJ5Q3JlYXRlKGRhdGEsIHNpemUpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KICAgICBp
ZiAoIW1fYnVmZmVyKSB7Ci0gICAgICAgIG1fYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUo
ZGF0YSwgbGVuZ3RoKTsKKyAgICAgICAgbV9idWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShk
YXRhLCBzaXplKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBtX2J1ZmZlci0+YXBwZW5k
KGRhdGEsIGxlbmd0aCk7CisgICAgbV9idWZmZXItPmFwcGVuZChkYXRhLCBzaXplKTsKIH0KIAot
dm9pZCBGZXRjaEJvZHlDb25zdW1lcjo6YXBwZW5kKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEs
IHVuc2lnbmVkIGxlbmd0aCkKK3ZvaWQgRmV0Y2hCb2R5Q29uc3VtZXI6OmFwcGVuZChjb25zdCB1
bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBzaXplKQogewotICAgIGFwcGVuZChyZWludGVy
cHJldF9jYXN0PGNvbnN0IGNoYXIqPihkYXRhKSwgbGVuZ3RoKTsKKyAgICBhcHBlbmQocmVpbnRl
cnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YSksIHNpemUpOwogfQogCiBSZWZQdHI8U2hhcmVk
QnVmZmVyPiBGZXRjaEJvZHlDb25zdW1lcjo6dGFrZURhdGEoKQpAQCAtMTU0LDI0ICsxODksMzUg
QEAgdm9pZCBGZXRjaEJvZHlDb25zdW1lcjo6c2V0Q29uc3VtZVByb21pc2UoUmVmPERlZmVycmVk
UHJvbWlzZT4mJiBwcm9taXNlKQogICAgIG1fY29uc3VtZVByb21pc2UgPSBXVEZNb3ZlKHByb21p
c2UpOwogfQogCit2b2lkIEZldGNoQm9keUNvbnN1bWVyOjpzZXRTb3VyY2UoUmVmPEZldGNoQm9k
eVNvdXJjZT4mJiBzb3VyY2UpCit7CisgICAgbV9zb3VyY2UgPSBXVEZNb3ZlKHNvdXJjZSk7Cisg
ICAgaWYgKG1fYnVmZmVyKSB7CisgICAgICAgIG1fc291cmNlLT5lbnF1ZXVlKG1fYnVmZmVyLT50
cnlDcmVhdGVBcnJheUJ1ZmZlcigpKTsKKyAgICAgICAgbV9idWZmZXIgPSBudWxscHRyOworICAg
IH0KK30KKwogdm9pZCBGZXRjaEJvZHlDb25zdW1lcjo6bG9hZGluZ0ZhaWxlZCgpCiB7CiAgICAg
aWYgKG1fY29uc3VtZVByb21pc2UpIHsKICAgICAgICAgbV9jb25zdW1lUHJvbWlzZS0+cmVqZWN0
KCk7CiAgICAgICAgIG1fY29uc3VtZVByb21pc2UgPSBudWxscHRyOwogICAgIH0KKyAgICBpZiAo
bV9zb3VyY2UpIHsKKyAgICAgICAgbV9zb3VyY2UtPmVycm9yKEFTQ0lJTGl0ZXJhbCgiTG9hZGlu
ZyBmYWlsZWQiKSk7CisgICAgICAgIG1fc291cmNlID0gbnVsbHB0cjsKKyAgICB9CiB9CiAKIHZv
aWQgRmV0Y2hCb2R5Q29uc3VtZXI6OmxvYWRpbmdTdWNjZWVkZWQoKQogewogICAgIGlmIChtX2Nv
bnN1bWVQcm9taXNlKQotICAgICAgICByZXNvbHZlKG1fY29uc3VtZVByb21pc2UucmVsZWFzZU5v
bk51bGwoKSk7Ci19Ci0KLXZvaWQgRmV0Y2hCb2R5Q29uc3VtZXI6OmNsZWFuKCkKLXsKLSAgICBt
X2J1ZmZlciA9IG51bGxwdHI7Ci0gICAgbV9jb25zdW1lUHJvbWlzZSA9IG51bGxwdHI7CisgICAg
ICAgIHJlc29sdmUobV9jb25zdW1lUHJvbWlzZS5yZWxlYXNlTm9uTnVsbCgpLCBudWxscHRyKTsK
KyAgICBpZiAobV9zb3VyY2UpIHsKKyAgICAgICAgbV9zb3VyY2UtPmNsb3NlKCk7CisgICAgICAg
IG1fc291cmNlID0gbnVsbHB0cjsKKyAgICB9CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3Vt
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIuaApp
bmRleCAxYjY2YTNkOThlZDU3ZmQwOTYxMjJlYzdjNDg1ZmZjMzg5ZDIxNTM4Li5kZmQ4ZmIxY2Jm
NGZjYmVkNzY2M2U5ODM2OWQwYzVlYTI0ZmM5ZjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5oCkBAIC0yOCwxMiArMjgsMTYgQEAKIAog
I3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJGZXRjaEJvZHlTb3VyY2UuaCIKICNpbmNsdWRlICJK
U0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFtU2luay5oIgog
I2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IEJsb2I7CitjbGFzcyBGZXRjaEJvZHlTb3VyY2U7CitjbGFzcyBSZWFkYWJsZVN0cmVhbTsKIAog
Y2xhc3MgRmV0Y2hCb2R5Q29uc3VtZXIgewogcHVibGljOgpAQCAtNTcsNyArNjEsNyBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIGNsZWFuKCk7CiAKLSAgICB2b2lkIHJlc29sdmUoUmVmPERlZmVycmVk
UHJvbWlzZT4mJik7CisgICAgdm9pZCByZXNvbHZlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYsIFJl
YWRhYmxlU3RyZWFtKik7CiAgICAgdm9pZCByZXNvbHZlV2l0aERhdGEoUmVmPERlZmVycmVkUHJv
bWlzZT4mJiwgY29uc3QgdW5zaWduZWQgY2hhciosIHVuc2lnbmVkKTsKIAogICAgIGJvb2wgaGFz
RGF0YSgpIGNvbnN0IHsgcmV0dXJuICEhbV9idWZmZXI7IH0KQEAgLTY2LDEyICs3MCwxNSBAQCBw
dWJsaWM6CiAgICAgdm9pZCBsb2FkaW5nU3VjY2VlZGVkKCk7CiAKICAgICB2b2lkIHNldENvbnN1
bWVQcm9taXNlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOworICAgIHZvaWQgc2V0U291cmNlKFJl
ZjxGZXRjaEJvZHlTb3VyY2U+JiYpOwogCiBwcml2YXRlOgogICAgIFR5cGUgbV90eXBlOwogICAg
IFN0cmluZyBtX2NvbnRlbnRUeXBlOwogICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IG1fYnVmZmVy
OwogICAgIFJlZlB0cjxEZWZlcnJlZFByb21pc2U+IG1fY29uc3VtZVByb21pc2U7CisgICAgUmVm
UHRyPFJlYWRhYmxlU3RyZWFtVG9TaGFyZWRCdWZmZXJTaW5rPiBtX3Npbms7CisgICAgUmVmUHRy
PEZldGNoQm9keVNvdXJjZT4gbV9zb3VyY2U7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmNwcAppbmRl
eCBjMTkzY2UzZTE3NmQ3MWE2Y2EyMTdkNWQ1MDJhODkzNjI3MWQxMjc5Li41MGI5YjBhYTM2OWU3
YzMzZGJmNjVkMjNlYzhmMDUxM2E4OTZjZWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHAKQEAgLTMwNSwxOSArMzA1LDE5IEBAIHZvaWQgRmV0
Y2hSZXNwb25zZTo6c3RhcnRDb25zdW1pbmdTdHJlYW0odW5zaWduZWQgdHlwZSkKIHsKICAgICBt
X2lzRGlzdHVyYmVkID0gdHJ1ZTsKICAgICBhdXRvIGNvbnN1bWVyVHlwZSA9IHN0YXRpY19jYXN0
PEZldGNoQm9keUNvbnN1bWVyOjpUeXBlPih0eXBlKTsKLSAgICBtX2NvbnN1bWVyLnNldFR5cGUo
Y29uc3VtZXJUeXBlKTsKKyAgICBib2R5KCkuY29uc3VtZXIoKS5zZXRUeXBlKGNvbnN1bWVyVHlw
ZSk7CiAgICAgaWYgKGNvbnN1bWVyVHlwZSA9PSBGZXRjaEJvZHlDb25zdW1lcjo6VHlwZTo6Qmxv
YikKLSAgICAgICAgbV9jb25zdW1lci5zZXRDb250ZW50VHlwZShCbG9iOjpub3JtYWxpemVkQ29u
dGVudFR5cGUoZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShtX2NvbnRlbnRUeXBlKSkpOwor
ICAgICAgICBib2R5KCkuY29uc3VtZXIoKS5zZXRDb250ZW50VHlwZShCbG9iOjpub3JtYWxpemVk
Q29udGVudFR5cGUoZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShtX2NvbnRlbnRUeXBlKSkp
OwogfQogCiB2b2lkIEZldGNoUmVzcG9uc2U6OmNvbnN1bWVDaHVuayhSZWY8SlNDOjpVaW50OEFy
cmF5PiYmIGNodW5rKQogewotICAgIG1fY29uc3VtZXIuYXBwZW5kKGNodW5rLT5kYXRhKCksIGNo
dW5rLT5ieXRlTGVuZ3RoKCkpOworICAgIGJvZHkoKS5jb25zdW1lcigpLmFwcGVuZChjaHVuay0+
ZGF0YSgpLCBjaHVuay0+Ynl0ZUxlbmd0aCgpKTsKIH0KIAogdm9pZCBGZXRjaFJlc3BvbnNlOjpm
aW5pc2hDb25zdW1pbmdTdHJlYW0oUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewot
ICAgIG1fY29uc3VtZXIucmVzb2x2ZShXVEZNb3ZlKHByb21pc2UpKTsKKyAgICBib2R5KCkuY29u
c3VtZXIoKS5yZXNvbHZlKFdURk1vdmUocHJvbWlzZSksIG51bGxwdHIpOwogfQogCiB2b2lkIEZl
dGNoUmVzcG9uc2U6OmNvbnN1bWVCb2R5QXNTdHJlYW0oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuaAppbmRleCBkYzlmMTFlZDg0NzYxMzI0YjcxOGIwY2Vm
MDI3Y2U0MDQxZGFmZjhhLi5kZGY2ZDQyYTE2YTIzZjQ3Y2NjNDAzNDBlOWU3YWJiNjg5NWRjMzJk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuaApAQCAt
MTQ5LDggKzE0OSw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZEV4cG9zZUJvZHkgeyB0
cnVlIH07CiAgICAgLy8gRklYTUU6IFJlbW92ZSB0aGF0IGZsYWcgb25jZSB3ZSBoYXZlIGZ1bGwg
c3VwcG9ydCBpbiBET00gUmVhZGFibGVTdHJlYW0uCiAgICAgYm9vbCBtX2lzUmVhZGFibGVTdHJl
YW0geyBmYWxzZSB9OwotCi0gICAgRmV0Y2hCb2R5Q29uc3VtZXIgbV9jb25zdW1lciB7IEZldGNo
Qm9keUNvbnN1bWVyOjpUeXBlOjpBcnJheUJ1ZmZlciAgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFk
YWJsZVN0cmVhbUludGVybmFscy5qcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9S
ZWFkYWJsZVN0cmVhbUludGVybmFscy5qcwppbmRleCBmNGU1ZGFmN2IyMTNkNDBlZWJlOGE0OWRj
YjM2ZDc0OWI2N2FlMzcyLi41NDI3N2YzYWUwNGRhZmJkMTUyMWY5YTYyM2Y1YTA3MDMxOTY2N2Zm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJl
YW1JbnRlcm5hbHMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtSW50ZXJuYWxzLmpzCkBAIC0xMDYsNiArMTA2LDMzIEBAIGZ1bmN0aW9uIHJlYWRh
YmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXJFcnJvcihjb250cm9sbGVyLCBlcnJvcikKICAgICBA
cmVhZGFibGVTdHJlYW1FcnJvcihzdHJlYW0sIGVycm9yKTsKIH0KIAorZnVuY3Rpb24gcmVhZGFi
bGVTdHJlYW1QaXBlVG8oc3RyZWFtLCBzaW5rKQoreworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBA
YXNzZXJ0KEBpc1JlYWRhYmxlU3RyZWFtKHN0cmVhbSkpOworCisgICAgY29uc3QgcmVhZGVyID0g
bmV3IEBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIoc3RyZWFtKTsKKworICAgIHJlYWRlci5A
Y2xvc2VkUHJvbWlzZUNhcGFiaWxpdHkuQHByb21pc2UuQHRoZW4oKCkgPT4geyB9LCAoZSkgPT4g
eyBzaW5rLmVycm9yKGUpOyB9KTsKKworICAgIGZ1bmN0aW9uIGRvUGlwZSgpIHsKKyAgICAgICAg
QHJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlclJlYWQocmVhZGVyKS5AdGhlbihmdW5jdGlvbihy
ZXN1bHQpIHsKKyAgICAgICAgICAgIGlmIChyZXN1bHQuZG9uZSkgeworICAgICAgICAgICAgICAg
IHNpbmsuY2xvc2UoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHNpbmsuZW5xdWV1ZShyZXN1bHQudmFs
dWUpOworICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgICAgIHNpbmsuZXJy
b3IoIlJlYWRhYmxlU3RyZWFtIGNodW5rIGVucXVldWVpbmcgaW4gdGhlIHNpbmsgZmFpbGVkIik7
CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZG9Q
aXBlKCk7CisgICAgICAgIH0pOworICAgIH0KKyAgICBkb1BpcGUoKTsKK30KKwogZnVuY3Rpb24g
cmVhZGFibGVTdHJlYW1UZWUoc3RyZWFtLCBzaG91bGRDbG9uZSkKIHsKICAgICAidXNlIHN0cmlj
dCI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW1TaW5rLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0
cmVhbVNpbmsuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhMGVkZTNjM2NjZWI4MzM4NGM2NjhkM2Q0OGEyYjhi
ODI4MmY4NzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVh
bXMvUmVhZGFibGVTdHJlYW1TaW5rLmNwcApAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVhZGFibGVTdHJlYW1TaW5rLmgiCisK
KyNpbmNsdWRlICJCdWZmZXJTb3VyY2UuaCIKKyNpbmNsdWRlICJET01FeGNlcHRpb24uaCIKKyNp
bmNsdWRlICJSZWFkYWJsZVN0cmVhbS5oIgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorCisj
aWYgRU5BQkxFKFNUUkVBTVNfQVBJKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlYWRhYmxl
U3RyZWFtVG9TaGFyZWRCdWZmZXJTaW5rOjpSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2lu
ayhDYWxsYmFjayYmIGNhbGxiYWNrKQorICAgIDogbV9jYWxsYmFjayB7IFdURk1vdmUoY2FsbGJh
Y2spIH0KK3sKK30KKwordm9pZCBSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luazo6cGlw
ZUZyb20oUmVhZGFibGVTdHJlYW0mIHN0cmVhbSkKK3sKKyAgICBzdHJlYW0ucGlwZVRvKCp0aGlz
KTsKK30KKwordm9pZCBSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luazo6ZW5xdWV1ZShj
b25zdCBCdWZmZXJTb3VyY2UmIGJ1ZmZlcikKK3sKKyAgICBpZiAoIW1fZGF0YSkgeworICAgICAg
ICBtX2RhdGEgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShidWZmZXIuZGF0YSgpLCBidWZmZXIubGVu
Z3RoKCkpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1fZGF0YS0+YXBwZW5kKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGJ1ZmZlci5kYXRhKCkpLCBidWZmZXIubGVuZ3RoKCkp
OworfQorCit2b2lkIFJlYWRhYmxlU3RyZWFtVG9TaGFyZWRCdWZmZXJTaW5rOjpjbG9zZSgpCit7
CisgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBXVEZNb3ZlKG1fY2FsbGJhY2spKQorICAgICAgICBj
YWxsYmFjayhXVEZNb3ZlKG1fZGF0YSkpOworfQorCit2b2lkIFJlYWRhYmxlU3RyZWFtVG9TaGFy
ZWRCdWZmZXJTaW5rOjplcnJvcihTdHJpbmcmJiBtZXNzYWdlKQoreworICAgIGlmIChhdXRvIGNh
bGxiYWNrID0gV1RGTW92ZShtX2NhbGxiYWNrKSkKKyAgICAgICAgY2FsbGJhY2soRXhjZXB0aW9u
IHsgVHlwZUVycm9yLCBXVEZNb3ZlKG1lc3NhZ2UpIH0pOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoU1RSRUFNU19BUEkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1TaW5rLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1TaW5rLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjFjMmFhYmVmMmQ1NjYwMzE4ZWJiNzkwNWQxZmFlYTk1ODcyYmY1OQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNpbmsuaApA
QCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShTVFJFQU1TX0FQSSkKKworI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCisjaW5jbHVkZSA8d3Rm
L0Z1bmN0aW9uLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBCdWZmZXJTb3VyY2U7CitjbGFzcyBSZWFkYWJsZVN0cmVhbTsKK2Ns
YXNzIFNoYXJlZEJ1ZmZlcjsKKworY2xhc3MgUmVhZGFibGVTdHJlYW1TaW5rIDogcHVibGljIFJl
ZkNvdW50ZWQ8UmVhZGFibGVTdHJlYW1TaW5rPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+UmVh
ZGFibGVTdHJlYW1TaW5rKCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCB2b2lkIGVucXVldWUo
Y29uc3QgQnVmZmVyU291cmNlJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZXJyb3IoU3RyaW5nJiYpID0gMDsKK307CisKK2NsYXNzIFJlYWRh
YmxlU3RyZWFtVG9TaGFyZWRCdWZmZXJTaW5rIGZpbmFsIDogcHVibGljIFJlYWRhYmxlU3RyZWFt
U2luayB7CitwdWJsaWM6CisgICAgdXNpbmcgQ2FsbGJhY2sgPSBXVEY6OkZ1bmN0aW9uPHZvaWQo
RXhjZXB0aW9uT3I8UmVmUHRyPFNoYXJlZEJ1ZmZlcj4+JiYpPjsKKyAgICBzdGF0aWMgUmVmPFJl
YWRhYmxlU3RyZWFtVG9TaGFyZWRCdWZmZXJTaW5rPiBjcmVhdGUoQ2FsbGJhY2smJiBjYWxsYmFj
aykgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2lu
ayhXVEZNb3ZlKGNhbGxiYWNrKSkpOyB9CisgICAgdm9pZCBwaXBlRnJvbShSZWFkYWJsZVN0cmVh
bSYpOworICAgIHZvaWQgY2xlYXJDYWxsYmFjaygpIHsgbV9jYWxsYmFjayA9IHsgfTsgfQorCitw
cml2YXRlOgorICAgIFJlYWRhYmxlU3RyZWFtVG9TaGFyZWRCdWZmZXJTaW5rKENhbGxiYWNrJiYp
OworCisgICAgdm9pZCBlbnF1ZXVlKGNvbnN0IEJ1ZmZlclNvdXJjZSYpIGZpbmFsOworICAgIHZv
aWQgY2xvc2UoKSBmaW5hbDsKKyAgICB2b2lkIGVycm9yKFN0cmluZyYmKSBmaW5hbDsKKworICAg
IENhbGxiYWNrIG1fY2FsbGJhY2s7CisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbV9kYXRhOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNUUkVBTVNf
QVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxl
U3RyZWFtU2luay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW1TaW5rLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OTk5OTQ0MGM1ZTQyZjQyY2UxMzZjOTU2NzQ2MjQx
N2M5MmJhYmEyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJl
YW1zL1JlYWRhYmxlU3RyZWFtU2luay5pZGwKQEAgLTAsMCArMSwzNSBAQAorLyoKKyogQ29weXJp
Z2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisKK1sKKyAgICBOb0ludGVyZmFjZU9i
amVjdCwKKyAgICBDb25kaXRpb25hbD1TVFJFQU1TX0FQSSwKKyAgICBTa2lwVlRhYmxlVmFsaWRh
dGlvbgorXSBpbnRlcmZhY2UgUmVhZGFibGVTdHJlYW1TaW5rIHsKKyAgICB2b2lkIGVucXVldWUo
QnVmZmVyU291cmNlIGNodW5rKTsKKyAgICB2b2lkIGNsb3NlKCk7CisgICAgdm9pZCBlcnJvcihE
T01TdHJpbmcgbWVzc2FnZSk7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDc2NjMzOGI0NzE4Zjc4YTA3YWFkZjZjOGIwNzAw
NGU1NDk1ZjVhYjkuLjQ3MjY1NTQ0ODQyOTExZjRjZGFiMTgzNTA5ZTIyZGQ0YTBjMWQwZmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTE2NzMsNiArMTY3Myw3IEBACiAJCTQxMjMwODFCMTM4QzQyOTcwMEJDQ0ZDQSAvKiBXZWJD
b3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzRjE5QjFBMDgyNDVFNUEwMDFFOUFCQyAvKiBXZWJDb3JlLmZyYW1ld29yayAqLzsg
fTsKIAkJNDEyMzA5MTMxMzhDNDJGRjAwQkNDRkNBIC8qIEphdmFTY3JpcHRDb3JlLmZyYW1ld29y
ayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY4MjE2
Mjk5MDI5RjRGQjUwMTAwMDEzMSAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgKi87IH07CiAJ
CTQxMjdENTM3MEY4QUFCMUQwMEU0MjRGNSAvKiBTY3JpcHRTdGF0ZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTI3RDUzNjBGOEFBQjFEMDBFNDI0
RjUgLyogU2NyaXB0U3RhdGUuY3BwICovOyB9OworCQk0MTI5Qzk4QTFGNTg3RkVCMDA5RDc0MDMg
LyogUmVhZGFibGVTdHJlYW1TaW5rLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxMjlDOTg3MUY1ODY2MkQwMDlENzQwMyAvKiBSZWFkYWJsZVN0cmVh
bVNpbmsuY3BwICovOyB9OwogCQk0MTI5REY4NTFCQjVCODA3MDAzMjJBMTYgLyogSlNSZWFkYWJs
ZVN0cmVhbVByaXZhdGVDb25zdHJ1Y3RvcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDEyOURGODMxQkI1QjdGNzAwMzIyQTE2IC8qIEpTUmVhZGFi
bGVTdHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmNwcCAqLzsgfTsKIAkJNDEyOURGODYxQkI1Qjgw
QzAwMzIyQTE2IC8qIEpTUmVhZGFibGVTdHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTI5REY4NDFCQjVCN0Y3
MDAzMjJBMTYgLyogSlNSZWFkYWJsZVN0cmVhbVByaXZhdGVDb25zdHJ1Y3RvcnMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTMwMTVEOTFDN0I1
NzE0MDAwOTFDNkUgLyogRmV0Y2hSZXNwb25zZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTMwMTVENTFDN0I1NzA0MDAwOTFDNkUgLyogRmV0Y2hS
ZXNwb25zZS5jcHAgKi87IH07CkBAIC0zMzk0LDcgKzMzOTUsOSBAQAogCQk3RUU2ODQ3MTEyRDI2
RTM4MDBFNzk0MTUgLyogUmVzb3VyY2VSZXNwb25zZUNGTmV0LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFRTY4NDVFMTJEMjZFMzgwMEU3OTQxNSAv
KiBSZXNvdXJjZVJlc3BvbnNlQ0ZOZXQuY3BwICovOyB9OwogCQk3RUU2ODQ3NTEyRDI2RTcwMDBF
Nzk0MTUgLyogUmVzb3VyY2VMb2FkZXJDRk5ldC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RUU2ODQ3NDEyRDI2RTcwMDBFNzk0MTUgLyogUmVzb3Vy
Y2VMb2FkZXJDRk5ldC5jcHAgKi87IH07CiAJCTdGNEM5NkRDMUFENDQ4MzUwMDM2NUE1MCAvKiBK
U0ZldGNoQm9keS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3RjRDOTZEODFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaEJvZHkuY3BwICovOyB9Owor
CQk3RjRDOTZEQzFBRDQ0ODM1MDAzNjVBNTEgLyogSlNSZWFkYWJsZVN0cmVhbVNpbmsuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0Y0Qzk2RDgxQUQ0
NDgzNTAwMzY1QTUxIC8qIEpTUmVhZGFibGVTdHJlYW1TaW5rLmNwcCAqLzsgfTsKIAkJN0Y0Qzk2
REQxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hCb2R5LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RjRDOTZEOTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNG
ZXRjaEJvZHkuaCAqLzsgfTsKKwkJN0Y0Qzk2REQxQUQ0NDgzNTAwMzY1QTUxIC8qIEpTUmVhZGFi
bGVTdHJlYW1TaW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3RjRDOTZEOTFBRDQ0ODM1MDAzNjVBNTEgLyogSlNSZWFkYWJsZVN0cmVhbVNpbmsuaCAq
LzsgfTsKIAkJODEwMkM1ODgxMzI1QkIxMTAwRERFNjdBIC8qIFN0cmluZ0NhbGxiYWNrLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxMDJDNTg3MTMy
NUJCMTEwMERERTY3QSAvKiBTdHJpbmdDYWxsYmFjay5jcHAgKi87IH07CiAJCTgxQUM1OTk5MTMx
NjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUFDNTk5NzEzMTYzNkU2MDAwOUE3RTAgLyogRGF0
YVRyYW5zZmVySXRlbS5oICovOyB9OwogCQk4MUFDNTk5QTEzMTYzNkU2MDAwOUE3RTAgLyogRGF0
YVRyYW5zZmVySXRlbUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDgxQUM1OTk4MTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtTGlz
dC5oICovOyB9OwpAQCAtOTM3OSw2ICs5MzgyLDkgQEAKIAkJNDExODlFRjcxQUQ4MjMyODAwQjkz
RjY0IC8qIFJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MTE4OUVGNzFBRDgyMzI4MDBCOTU2NzIgLyogUmVhZGFibGVTdHJlYW1C
WU9CUmVxdWVzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVhZGFibGVTdHJlYW1CWU9C
UmVxdWVzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMjdENTM2MEY4QUFC
MUQwMEU0MjRGNSAvKiBTY3JpcHRTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTY3JpcHRTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTQxMjlDOTgwMUY1ODYxQzcwMDlENzQwMyAvKiBSZWFkYWJsZVN0cmVhbVNpbmsuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhZGFibGVTdHJlYW1TaW5rLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMjlDOTgxMUY1ODYxQzcwMDlENzQwMyAvKiBSZWFkYWJs
ZVN0cmVhbVNpbmsuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtU2lu
ay5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMjlDOTg3MUY1ODY2MkQwMDlE
NzQwMyAvKiBSZWFkYWJsZVN0cmVhbVNpbmsuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmVhZGFibGVTdHJlYW1TaW5rLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDEyOURGODMxQkI1QjdGNzAwMzIyQTE2IC8qIEpTUmVhZGFibGVTdHJlYW1Qcml2
YXRlQ29uc3RydWN0b3JzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTUmVhZGFibGVTdHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDEyOURGODQxQkI1QjdGNzAwMzIyQTE2IC8qIEpTUmVhZGFibGVTdHJl
YW1Qcml2YXRlQ29uc3RydWN0b3JzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTUmVhZGFibGVTdHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQxMzAxNUQ1MUM3QjU3MDQwMDA5MUM2RSAvKiBGZXRjaFJlc3BvbnNlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZldGNoUmVzcG9uc2UuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE1NTcsNyArMTE1NjMsOSBAQAogCQk3
RUU2ODQ1RTEyRDI2RTM4MDBFNzk0MTUgLyogUmVzb3VyY2VSZXNwb25zZUNGTmV0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlc291cmNlUmVzcG9uc2VDRk5ldC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFRTY4NDc0MTJEMjZFNzAwMEU3OTQx
NSAvKiBSZXNvdXJjZUxvYWRlckNGTmV0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFJlc291cmNlTG9hZGVyQ0ZOZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3RjRDOTZEODFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaEJvZHkuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNGZXRjaEJvZHkuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk3RjRDOTZEODFBRDQ0ODM1MDAzNjVBNTEgLyogSlNSZWFk
YWJsZVN0cmVhbVNpbmsuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNSZWFkYWJsZVN0cmVhbVNpbmsuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
RjRDOTZEOTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaEJvZHkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNGZXRjaEJvZHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJN0Y0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUxIC8qIEpTUmVhZGFibGVTdHJlYW1TaW5rLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUmVhZGFibGVTdHJlYW1TaW5rLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgxMDJDNTg3MTMyNUJCMTEwMERERTY3QSAv
KiBTdHJpbmdDYWxsYmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTdHJpbmdDYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgxQUM1
OTk3MTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IERhdGFUcmFuc2Zlckl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODFBQzU5OTgxMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW1M
aXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGFUcmFuc2Zlckl0ZW1M
aXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzk4Nyw2ICsxNzk5NSw5IEBA
CiAJCQkJNDE5RkFGQUQxQUJBQkNENTAwNUI4MjhCIC8qIFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJl
YWRlci5pZGwgKi8sCiAJCQkJOTkwOEIwRjIxQkNBQ0Y5MTAwRUQwRjY1IC8qIFJlYWRhYmxlU3Ry
ZWFtRGVmYXVsdFJlYWRlci5qcyAqLywKIAkJCQk5OTA4QjBGMTFCQ0FDRjkxMDBFRDBGNjUgLyog
UmVhZGFibGVTdHJlYW1JbnRlcm5hbHMuanMgKi8sCisJCQkJNDEyOUM5ODcxRjU4NjYyRDAwOUQ3
NDAzIC8qIFJlYWRhYmxlU3RyZWFtU2luay5jcHAgKi8sCisJCQkJNDEyOUM5ODAxRjU4NjFDNzAw
OUQ3NDAzIC8qIFJlYWRhYmxlU3RyZWFtU2luay5oICovLAorCQkJCTQxMjlDOTgxMUY1ODYxQzcw
MDlENzQwMyAvKiBSZWFkYWJsZVN0cmVhbVNpbmsuaWRsICovLAogCQkJCTQxOEMzOTVCMUM4RjBB
NjEwMDUxQzhBMyAvKiBSZWFkYWJsZVN0cmVhbVNvdXJjZS5oICovLAogCQkJCTQxOEMzOTVDMUM4
RjBBNjEwMDUxQzhBMyAvKiBSZWFkYWJsZVN0cmVhbVNvdXJjZS5pZGwgKi8sCiAJCQkJOTkwOEIw
RjExQkNBQ0Y5MTAwRUQwRjU1IC8qIFN0cmVhbUludGVybmFscy5qcyAqLywKQEAgLTE4MTAxLDYg
KzE4MTEyLDggQEAKIAkJCQk3Q0UxOTE2QTFGMkFCNzA2MDAyNzJGNzggLyogSlNGZXRjaFJlcXVl
c3RSZWRpcmVjdC5oICovLAogCQkJCThFNEM5NkQ4MUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNo
UmVzcG9uc2UuY3BwICovLAogCQkJCThFNEM5NkQ5MUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNo
UmVzcG9uc2UuaCAqLywKKwkJCQk3RjRDOTZEODFBRDQ0ODM1MDAzNjVBNTEgLyogSlNSZWFkYWJs
ZVN0cmVhbVNpbmsuY3BwICovLAorCQkJCTdGNEM5NkQ5MUFENDQ4MzUwMDM2NUE1MSAvKiBKU1Jl
YWRhYmxlU3RyZWFtU2luay5oICovLAogCQkJCTdFNEM5NkQ4MUFENDQ4MzUwMDM2NUE1MSAvKiBK
U1JlYWRhYmxlU3RyZWFtU291cmNlLmNwcCAqLywKIAkJCQk3RTRDOTZEOTFBRDQ0ODM1MDAzNjVB
NTEgLyogSlNSZWFkYWJsZVN0cmVhbVNvdXJjZS5oICovLAogCQkJKTsKQEAgLTI4NTMxLDYgKzI4
NTQ0LDcgQEAKIAkJCQk2QzRDOTZERjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVh
bURlZmF1bHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzRDOTZERjFBRDQ0ODM1
MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQxMjlERjg2MUJCNUI4MEMwMDMyMkExNiAvKiBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0
ZUNvbnN0cnVjdG9ycy5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0Y0Qzk2REQxQUQ0NDgzNTAwMzY1
QTUxIC8qIEpTUmVhZGFibGVTdHJlYW1TaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQk3RTRDOTZE
RDFBRDQ0ODM1MDAzNjVBNTEgLyogSlNSZWFkYWJsZVN0cmVhbVNvdXJjZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDk5OEFFQ0UxM0Y5RDZDOTAwOTBCMUFBIC8qIEpTUmVxdWVzdEFuaW1hdGlvbkZy
YW1lQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTU3RTIzMzcxMURDRDQ2OEYwMEYyOEQw
MSAvKiBKU1JzYUhhc2hlZEltcG9ydFBhcmFtcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjU1Niw2
ICszMjU3MCw3IEBACiAJCQkJNkM0Qzk2REUxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVT
dHJlYW1EZWZhdWx0Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzRDOTZERTFB
RDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDEyOURGODUxQkI1QjgwNzAwMzIyQTE2IC8qIEpTUmVhZGFibGVTdHJl
YW1Qcml2YXRlQ29uc3RydWN0b3JzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTdGNEM5NkRDMUFE
NDQ4MzUwMDM2NUE1MSAvKiBKU1JlYWRhYmxlU3RyZWFtU2luay5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk3RTRDOTZEQzFBRDQ0ODM1MDAzNjVBNTEgLyogSlNSZWFkYWJsZVN0cmVhbVNvdXJjZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk0MThDMzk2MDFDOEYwQUFFMDA1MUM4QTMgLyogSlNSZWFk
YWJsZVN0cmVhbVNvdXJjZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OTk4QUVDRDEz
RjlENkM5MDA5MEIxQUEgLyogSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTMzMzE3LDYgKzMzMzMyLDcgQEAKIAkJCQk2RTg0RTlFMDE3NjY4QkVF
MDA4MTVCNjggLyogUmFzdGVyU2hhcGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFCNDU5RUYx
RjU1RUJEMTAwMDBGNkZEIC8qIFJlYWRhYmxlU3RyZWFtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTQxOEMzOTYxMUM4RjBBQjEwMDUxQzhBMyAvKiBSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9s
bGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQxMjlDOThBMUY1ODdGRUIwMDlENzQwMyAvKiBS
ZWFkYWJsZVN0cmVhbVNpbmsuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTYwM0IxMkIwMjY3
NjAwQzFBMzU5IC8qIFJlYWx0aW1lQW5hbHlzZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEx
MDNBQUUxRTM5NzkxMDAwNzY5RjAzIC8qIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk1Q0REODMzRTFFNDMyNERDMDA2MjFFOTIgLyogUmVhbHRpbWVJ
bmNvbWluZ1ZpZGVvU291cmNlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW0uY3BwCmluZGV4IDcyMjc0MGY3ZmE0YWIwMjFkOWRm
MTEzMTMyMjVlYmU3MDM2ZDQzZWQuLmNmNDg2OTc2NDk5YjI4ZTNjY2RjYzI1Yzg3NzNhMTU1Y2Jl
OWU5ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3Ry
ZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5j
cHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJSZWFkYWJsZVN0cmVhbS5oIgogCiAjaW5j
bHVkZSAiSlNET01Db252ZXJ0U2VxdWVuY2VzLmgiCisjaW5jbHVkZSAiSlNSZWFkYWJsZVN0cmVh
bVNpbmsuaCIKICNpbmNsdWRlICJKU1JlYWRhYmxlU3RyZWFtU291cmNlLmgiCiAjaW5jbHVkZSAi
V2ViQ29yZUpTQ2xpZW50RGF0YS5oIgogCkBAIC01NCw2ICs1NSwyNCBAQCBSZWY8UmVhZGFibGVT
dHJlYW0+IFJlYWRhYmxlU3RyZWFtOjpjcmVhdGUoSlNDOjpFeGVjU3RhdGUmIGV4ZWNTdGF0ZSwg
UmVmUHRyPFJlYQogICAgIHJldHVybiBjcmVhdGUoZ2xvYmFsT2JqZWN0LCAqbmV3UmVhZGFibGVT
dHJlYW0pOwogfQogCit2b2lkIFJlYWRhYmxlU3RyZWFtOjpwaXBlVG8oUmVhZGFibGVTdHJlYW1T
aW5rJiBzaW5rKQoreworICAgIGF1dG8mIHN0YXRlID0gKm1fZ2xvYmFsT2JqZWN0LT5nbG9iYWxF
eGVjKCk7CisgICAgSlNWTUNsaWVudERhdGEqIGNsaWVudERhdGEgPSBzdGF0aWNfY2FzdDxKU1ZN
Q2xpZW50RGF0YSo+KHN0YXRlLnZtKCkuY2xpZW50RGF0YSk7CisgICAgY29uc3QgSWRlbnRpZmll
ciYgcHJpdmF0ZU5hbWUgPSBjbGllbnREYXRhLT5idWlsdGluRnVuY3Rpb25zKCkucmVhZGFibGVT
dHJlYW1JbnRlcm5hbHNCdWlsdGlucygpLnJlYWRhYmxlU3RyZWFtUGlwZVRvUHJpdmF0ZU5hbWUo
KTsKKworICAgIGF1dG8gcmVhZGFibGVTdHJlYW1QaXBlVG8gPSBtX2dsb2JhbE9iamVjdC0+Z2V0
KCZzdGF0ZSwgcHJpdmF0ZU5hbWUpOworICAgIEFTU0VSVChyZWFkYWJsZVN0cmVhbVBpcGVUby5p
c0Z1bmN0aW9uKCkpOworCisgICAgQ2FsbERhdGEgY2FsbERhdGE7CisgICAgQ2FsbFR5cGUgY2Fs
bFR5cGUgPSBnZXRDYWxsRGF0YShyZWFkYWJsZVN0cmVhbVBpcGVUbywgY2FsbERhdGEpOworICAg
IEFTU0VSVChjYWxsVHlwZSAhPSBKU0M6OkNhbGxUeXBlOjpOb25lKTsKKyAgICBNYXJrZWRBcmd1
bWVudEJ1ZmZlciBhcmd1bWVudHM7CisgICAgYXJndW1lbnRzLmFwcGVuZChyZWFkYWJsZVN0cmVh
bSgpKTsKKyAgICBhcmd1bWVudHMuYXBwZW5kKHRvSlMoJnN0YXRlLCBtX2dsb2JhbE9iamVjdC5n
ZXQoKSwgc2luaykpOworICAgIEpTQzo6Y2FsbCgmc3RhdGUsIHJlYWRhYmxlU3RyZWFtUGlwZVRv
LCBjYWxsVHlwZSwgY2FsbERhdGEsIEpTQzo6anNVbmRlZmluZWQoKSwgYXJndW1lbnRzKTsKK30K
Kwogc3RkOjpwYWlyPFJlZjxSZWFkYWJsZVN0cmVhbT4sIFJlZjxSZWFkYWJsZVN0cmVhbT4+IFJl
YWRhYmxlU3RyZWFtOjp0ZWUoKQogewogICAgIGF1dG8mIHN0YXRlID0gKm1fZ2xvYmFsT2JqZWN0
LT5nbG9iYWxFeGVjKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9S
ZWFkYWJsZVN0cmVhbS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJl
YW0uaAppbmRleCBhMGMyNmE0MzU3NjhiMmQxMGFmNDEwNmU2MTdmNTdjYjMwYTMwYzk1Li5hZTVi
MGQ1ZmFhOTAyNzJjODc3MTY3MTQ5OTJlM2RjMzRjNjZmNDhhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtLmgKQEAgLTMyLDYgKzMyLDcgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitjbGFzcyBSZWFkYWJsZVN0cmVhbVNpbms7CiBjbGFzcyBSZWFkYWJs
ZVN0cmVhbVNvdXJjZTsKIAogY2xhc3MgUmVhZGFibGVTdHJlYW0gZmluYWwgOiBwdWJsaWMgRE9N
R3VhcmRlZDxKU1JlYWRhYmxlU3RyZWFtPiB7CkBAIC00Miw2ICs0Myw4IEBAIHB1YmxpYzoKIAog
ICAgIHN0ZDo6cGFpcjxSZWY8UmVhZGFibGVTdHJlYW0+LCBSZWY8UmVhZGFibGVTdHJlYW0+PiB0
ZWUoKTsKIAorICAgIHZvaWQgcGlwZVRvKFJlYWRhYmxlU3RyZWFtU2luayYpOworCiAgICAgSlNS
ZWFkYWJsZVN0cmVhbSogcmVhZGFibGVTdHJlYW0oKSB7IHJldHVybiBndWFyZGVkKCk7IH0KIAog
cHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDcwY2I3ZWQzZWRlYTZjOGZiYmRhOTVkNGZmZGQ0NzRiZmQ5NjM1
YmIuLjU5MDVmMTg3MzA2OGQ4NTZiYTM0Mzk0NDVkYjdkZDk3OTI5NDAzMTggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwyMCBAQAogMjAxNy0wOC0zMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CiAKKyAgICAgICAgW0ZldGNoIEFQSV0gQWRkIHN1cHBvcnQgZm9yIGNvbnN1bWluZyBhIFJlcXVl
c3QgUmVhZGFibGVTdHJlYW0gYm9keQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTc2MTgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBodHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1kaXN0dXJiZWQt
MS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0t
ZGlzdHVyYmVkLTItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvd3B0L2ZldGNoL3JlcXVl
c3Qtc3RyZWFtLWRpc3R1cmJlZC0zLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3dwdC9m
ZXRjaC9yZXF1ZXN0LXN0cmVhbS1lbXB0eS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWVtcHR5Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWVycm9yLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZXJyb3IuaHRtbDog
QWRkZWQuCisKKzIwMTctMDgtMzEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgor
CiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBSZXF1ZXN0IGJvZHkgc3RyZWFtIGNsb25pbmcKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjE0OAogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1kaXN0
dXJiZWQtMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0
LXN0cmVhbS1kaXN0dXJiZWQtMS1leHBlY3RlZC50eHQKaW5kZXggYjg1NDZiZWExZDc4MGFiMjI0
MzFhY2M4YmYyZThlMzcyZjJiMjM2Yy4uYTdmN2IyNDJlMWI1ZmI3NGI4M2EzNjA1NmNhMzY4NDJk
NTNmMTkzNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1z
dHJlYW0tZGlzdHVyYmVkLTEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0
L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWRpc3R1cmJlZC0xLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsx
LDYgQEAKIAogUEFTUyBHZXR0aW5nIGJsb2IgYWZ0ZXIgZ2V0dGluZyB0aGUgUmVxdWVzdCBib2R5
IC0gbm90IGRpc3R1cmJlZCwgbm90IGxvY2tlZCAKLUZBSUwgR2V0dGluZyB0ZXh0IGFmdGVyIGdl
dHRpbmcgdGhlIFJlcXVlc3QgYm9keSAtIG5vdCBkaXN0dXJiZWQsIG5vdCBsb2NrZWQgYXNzZXJ0
X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIEdldHRpbmcganNvbiBhZnRlciBn
ZXR0aW5nIHRoZSBSZXF1ZXN0IGJvZHkgLSBub3QgZGlzdHVyYmVkLCBub3QgbG9ja2VkIHByb21p
c2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlN5bnRheEVy
cm9yOiBUaGUgc3RyaW5nIGRpZCBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIHBhdHRlcm4uIgotRkFJ
TCBHZXR0aW5nIGFycmF5QnVmZmVyIGFmdGVyIGdldHRpbmcgdGhlIFJlcXVlc3QgYm9keSAtIG5v
dCBkaXN0dXJiZWQsIG5vdCBsb2NrZWQgYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCitQQVNTIEdldHRpbmcgdGV4dCBhZnRlciBnZXR0aW5nIHRoZSBSZXF1ZXN0IGJvZHkgLSBu
b3QgZGlzdHVyYmVkLCBub3QgbG9ja2VkIAorUEFTUyBHZXR0aW5nIGpzb24gYWZ0ZXIgZ2V0dGlu
ZyB0aGUgUmVxdWVzdCBib2R5IC0gbm90IGRpc3R1cmJlZCwgbm90IGxvY2tlZCAKK1BBU1MgR2V0
dGluZyBhcnJheUJ1ZmZlciBhZnRlciBnZXR0aW5nIHRoZSBSZXF1ZXN0IGJvZHkgLSBub3QgZGlz
dHVyYmVkLCBub3QgbG9ja2VkIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9m
ZXRjaC9yZXF1ZXN0LXN0cmVhbS1kaXN0dXJiZWQtMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1kaXN0dXJiZWQtMi1leHBlY3RlZC50eHQK
aW5kZXggZjJiOWIyZTVmY2U5MzU2ZDE1MzYyYjJhMWVhYTY1MTA4YjA2NjM2Ny4uZGVjYmZkNGM5
ODFkMGE3YzI0MzYxMDEzMWYwYmQ5ZWQwZDdhMjY2MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZGlzdHVyYmVkLTItZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWRpc3R1cmJlZC0y
LWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDYgQEAKIAotRkFJTCBHZXR0aW5nIGJsb2IgYWZ0ZXIg
Z2V0dGluZyBhIGxvY2tlZCBSZXF1ZXN0IGJvZHkgYXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhh
dmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKLUZBSUwgR2V0
dGluZyB0ZXh0IGFmdGVyIGdldHRpbmcgYSBsb2NrZWQgUmVxdWVzdCBib2R5IGFzc2VydF91bnJl
YWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNoYWJs
ZSBjb2RlCi1GQUlMIEdldHRpbmcganNvbiBhZnRlciBnZXR0aW5nIGEgbG9ja2VkIFJlcXVlc3Qg
Ym9keSBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRo
cmV3IG9iamVjdCAiU3ludGF4RXJyb3I6IFRoZSBzdHJpbmcgZGlkIG5vdCBtYXRjaCB0aGUgZXhw
ZWN0ZWQgcGF0dGVybi4iICgiU3ludGF4RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJv
ciIgKCJUeXBlRXJyb3IiKQotRkFJTCBHZXR0aW5nIGFycmF5QnVmZmVyIGFmdGVyIGdldHRpbmcg
YSBsb2NrZWQgUmVxdWVzdCBib2R5IGFzc2VydF91bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVj
dGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCitQQVNTIEdldHRpbmcgYmxv
YiBhZnRlciBnZXR0aW5nIGEgbG9ja2VkIFJlcXVlc3QgYm9keSAKK1BBU1MgR2V0dGluZyB0ZXh0
IGFmdGVyIGdldHRpbmcgYSBsb2NrZWQgUmVxdWVzdCBib2R5IAorUEFTUyBHZXR0aW5nIGpzb24g
YWZ0ZXIgZ2V0dGluZyBhIGxvY2tlZCBSZXF1ZXN0IGJvZHkgCitQQVNTIEdldHRpbmcgYXJyYXlC
dWZmZXIgYWZ0ZXIgZ2V0dGluZyBhIGxvY2tlZCBSZXF1ZXN0IGJvZHkgCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWRpc3R1cmJlZC0zLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWRp
c3R1cmJlZC0zLWV4cGVjdGVkLnR4dAppbmRleCBiOTNlM2E2ZmVhZDEzYThmYWJjYjQ3MTdmNDQ4
ZTQ3MGYzZTlkZjk0Li41MmVkNjMwZTRiNWZjYTZjMTdjNTEzYTNiOTRmOGQ2MzFkMWUyNTE0IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1kaXN0
dXJiZWQtMy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVx
dWVzdC1zdHJlYW0tZGlzdHVyYmVkLTMtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAogCi1G
QUlMIEdldHRpbmcgYmxvYiBhZnRlciByZWFkaW5nIHRoZSBSZXF1ZXN0IGJvZHkgYXNzZXJ0X3Vu
cmVhY2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hh
YmxlIGNvZGUKLUZBSUwgR2V0dGluZyB0ZXh0IGFmdGVyIHJlYWRpbmcgdGhlIFJlcXVlc3QgYm9k
eSBhc3NlcnRfdW5yZWFjaGVkOiBTaG91bGQgaGF2ZSByZWplY3RlZDogdW5kZWZpbmVkIFJlYWNo
ZWQgdW5yZWFjaGFibGUgY29kZQotRkFJTCBHZXR0aW5nIGpzb24gYWZ0ZXIgcmVhZGluZyB0aGUg
UmVxdWVzdCBib2R5IGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93
IGUgfSIgdGhyZXcgb2JqZWN0ICJTeW50YXhFcnJvcjogVGhlIHN0cmluZyBkaWQgbm90IG1hdGNo
IHRoZSBleHBlY3RlZCBwYXR0ZXJuLiIgKCJTeW50YXhFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAi
VHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCi1GQUlMIEdldHRpbmcgYXJyYXlCdWZmZXIgYWZ0ZXIg
cmVhZGluZyB0aGUgUmVxdWVzdCBib2R5IGFzc2VydF91bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJl
amVjdGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCitQQVNTIEdldHRpbmcg
YmxvYiBhZnRlciByZWFkaW5nIHRoZSBSZXF1ZXN0IGJvZHkgCitQQVNTIEdldHRpbmcgdGV4dCBh
ZnRlciByZWFkaW5nIHRoZSBSZXF1ZXN0IGJvZHkgCitQQVNTIEdldHRpbmcganNvbiBhZnRlciBy
ZWFkaW5nIHRoZSBSZXF1ZXN0IGJvZHkgCitQQVNTIEdldHRpbmcgYXJyYXlCdWZmZXIgYWZ0ZXIg
cmVhZGluZyB0aGUgUmVxdWVzdCBib2R5IAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1lbXB0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1lbXB0eS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZThiMWVjYTMxNjNlMzZiYjgzMGU1M2RmNTVkNDA3ZjYwMzc1NWQ5YwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWVtcHR5
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKworUEFTUyBFbXB0eSBzdHJlYW0gYm9keSBh
cyB0ZXh0IAorUEFTUyBFbXB0eSBzdHJlYW0gYm9keSBhcyBhcnJheUJ1ZmZlciAKK1BBU1MgRW1w
dHkgc3RyZWFtIGJvZHkgYXMgSlNPTiAKK1BBU1MgRW1wdHkgc3RyZWFtIGJvZHkgYXMgYmxvYiAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0t
ZW1wdHkuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWVt
cHR5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjAyZjk4NDQ1NzJhOTVjMmQxNzNlOGMyMDQwODBmZjFlOTEw
NjgxOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVl
c3Qtc3RyZWFtLWVtcHR5Lmh0bWwKQEAgLTAsMCArMSw1MCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8
aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAgIDx0aXRsZT5D
b25zdW1pbmcgUmVxdWVzdCBib2R5IHdpdGggbm9uIEJ1ZmZlclNvdXJjZSBSZWFkYWJsZVN0cmVh
bSBjaHVua3M8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNjcmlwdD4KK2Z1
bmN0aW9uIGNyZWF0ZVJlcXVlc3RXaXRoRW1wdHlSZWFkYWJsZVN0cmVhbSgpCit7CisgICAgdmFy
IHN0cmVhbSA9IG5ldyBSZWFkYWJsZVN0cmVhbSh7c3RhcnQ6IGNvbnRyb2xsZXIgPT4geworICAg
ICAgICBjb250cm9sbGVyLmNsb3NlKCk7CisgICAgfX0pOworICAgIHJldHVybiBuZXcgUmVxdWVz
dCgiIiwge2JvZHk6IHN0cmVhbSwgbWV0aG9kOiAiUE9TVCJ9KTsKK30KKworcHJvbWlzZV90ZXN0
KHRlc3QgPT4geworICAgIHJldHVybiBjcmVhdGVSZXF1ZXN0V2l0aEVtcHR5UmVhZGFibGVTdHJl
YW0oKS50ZXh0KCkudGhlbih0ZXh0ID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh0ZXh0LCAi
Iik7CisgICAgfSk7Cit9LCAiRW1wdHkgc3RyZWFtIGJvZHkgYXMgdGV4dCIpOworCitwcm9taXNl
X3Rlc3QodGVzdCA9PiB7CisgICAgcmV0dXJuIGNyZWF0ZVJlcXVlc3RXaXRoRW1wdHlSZWFkYWJs
ZVN0cmVhbSgpLmFycmF5QnVmZmVyKCkudGhlbihidWZmZXIgPT4geworICAgICAgICBhc3NlcnRf
ZXF1YWxzKGJ1ZmZlci5ieXRlTGVuZ3RoLCAwLCAiUmVzb2x2ZWQgdmFsdWUgc2hvdWxkIGJlIGVt
cHR5Iik7CisgICAgfSk7Cit9LCAiRW1wdHkgc3RyZWFtIGJvZHkgYXMgYXJyYXlCdWZmZXIiKTsK
KworcHJvbWlzZV90ZXN0KHRlc3QgPT4geworICAgIHJldHVybiBwcm9taXNlX3JlamVjdHModGVz
dCwgIlN5bnRheEVycm9yIiwgY3JlYXRlUmVxdWVzdFdpdGhFbXB0eVJlYWRhYmxlU3RyZWFtKCku
anNvbigpKTsKK30sICJFbXB0eSBzdHJlYW0gYm9keSBhcyBKU09OIik7CisKK3Byb21pc2VfdGVz
dCh0ZXN0ID0+IHsKKyAgICByZXR1cm4gY3JlYXRlUmVxdWVzdFdpdGhFbXB0eVJlYWRhYmxlU3Ry
ZWFtKCkuYmxvYigpLnRoZW4oZnVuY3Rpb24oYm9keUFzQmxvYikgeworICAgICAgICB2YXIgcHJv
bWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAg
ICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7CisgICAgICAgICAgICByZWFkZXIub25s
b2FkID0gKCkgPT4geyByZXNvbHZlKHJlYWRlci5yZXN1bHQpIH07CisgICAgICAgICAgICByZWFk
ZXIub25lcnJvciA9ICgpID0+IHsgcmVqZWN0KCJCbG9iJ3MgcmVhZGVyIGZhaWxlZCIpOyB9Owor
ICAgICAgICAgICAgcmVhZGVyLnJlYWRBc1RleHQoYm9keUFzQmxvYik7CisgICAgICAgIH0pOwor
ICAgICAgICByZXR1cm4gcHJvbWlzZS50aGVuKGZ1bmN0aW9uKGJvZHkpIHsKKyAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoYm9keSwgIiIsICJSZXNvbHZlZCB2YWx1ZSBzaG91bGQgYmUgZW1wdHki
KTsKKyAgICAgICAgfSk7CisgIH0pOworfSwgIkVtcHR5IHN0cmVhbSBib2R5IGFzIGJsb2IiKTsK
KyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZXJyb3ItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZXJyb3ItZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmM1NGZiNDllMmQwZTM2NTBjOTYxMjA3NTE2YWNlOTc0MThkOTIzODQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVh
bS1lcnJvci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgUmVxdWVzdCBib2R5
IHNob3VsZCBvbmx5IGNvbnRhaW4gQnVmZmVyU291cmNlIGNodW5rcyAKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZXJyb3IuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWVycm9yLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZTE5ZTQ4ZGFhODJlYTIxMGZjMDNjNWYxM2IwNjI2Mzc5ZTFjOGUwZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWVycm9y
Lmh0bWwKQEAgLTAsMCArMSwyMSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+
CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAgIDx0aXRsZT5Db25zdW1pbmcgUmVxdWVz
dCBib2R5IHdpdGggbm9uIEJ1ZmZlclNvdXJjZSBSZWFkYWJsZVN0cmVhbSBjaHVua3M8L3RpdGxl
PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNjcmlwdD4KK3Byb21pc2VfdGVzdCh0ZXN0
ID0+IHsKKyAgICB2YXIgc3RyZWFtID0gbmV3IFJlYWRhYmxlU3RyZWFtKHtzdGFydDogY29udHJv
bGxlciA9PiB7CisgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZSgiVGhpcyBpcyBub3QgYSBidWZm
ZXIiKTsKKyAgICAgICAgY29udHJvbGxlci5jbG9zZSgpOworICAgIH19KTsKKyAgICB2YXIgcmVx
dWVzdCA9IG5ldyBSZXF1ZXN0KCIiLCB7Ym9keTogc3RyZWFtLCBtZXRob2Q6ICJQT1NUIn0pOwor
ICAgIHJldHVybiBwcm9taXNlX3JlamVjdHModGVzdCwgbmV3IFR5cGVFcnJvciwgcmVxdWVzdC50
ZXh0KCkpOworfSwgIlJlcXVlc3QgYm9keSBzaG91bGQgb25seSBjb250YWluIEJ1ZmZlclNvdXJj
ZSBjaHVua3MiKTsKKyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319597</attachid>
            <date>2017-09-01 08:51:46 -0700</date>
            <delta_ts>2017-09-01 10:28:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176182-20170901085145.patch</filename>
            <type>text/plain</type>
            <size>43140</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNDQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGY4ODYwNTcwMTkwZWE5
ZWM1MzIxYTVhZDIyMDU0NDA4Mzk2MGNjYi4uMDIxZTY0ZGMxZDFmMTU1YjYwMWM2M2Q0NGNlYzQx
ZmJiOGE4MWI2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE3LTA4LTMxICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBbRmV0Y2ggQVBJXSBBZGQg
c3VwcG9ydCBmb3IgY29uc3VtaW5nIGEgUmVxdWVzdCBSZWFkYWJsZVN0cmVhbSBib2R5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYxODIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0czogaHR0cC93
cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZW1wdHkuaHRtbAorICAgICAgICAgICAgICAgaHR0cC93
cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZXJyb3IuaHRtbAorCisgICAgICAgIEFkZGluZyBhIFJl
YWRhYmxlU3RyZWFtU2luayB3aGljaCBhbGxvd3MgdG8gcGlwZSBhbGwgUmVhZGFibGVTdHJlYW0g
ZGF0YSBiYWNrIHRvIEMrKyBjb2RlLgorICAgICAgICBUaGlzIHNpbmsgb25seSB0YWtlcyBCdWZm
ZXJTb3VyY2UgYXMgdGhlIG9ubHkgdXNlciBpcyBGZXRjaCB3aGljaCBoYXMgdGhpcyByZXN0cmlj
dGlvbi4KKyAgICAgICAgVGhpcyBzaW5rIGlzIHRpZWQgdG8gdGhlIHJlYWRhYmxlU3RyZWFtUGlw
ZVRvIGJ1aWx0aW4gaW50ZXJuYWwgZnVuY3Rpb24gdGhhdCByZWFkcyBhbGwgZGF0YSBmcm9tIHRo
ZSBSZWFkYWJsZVN0cmVhbQorICAgICAgICBhbmQgc2VuZCBpdCB0byB0aGUgc2luay4KKworICAg
ICAgICBBZGRpbmcgYSBSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luayBzcGVjaWFsaXph
dGlvbiB0byBnZXQgdGhlIGRhdGEgYXMgYSBTaGFyZWRCdWZmZXIuCisKKyAgICAgICAgVXNlIHRo
YXQgY2xhc3MgaW4gRmV0Y2hCb2R5Q29uc3VtZXIgdG8gZ2V0IHRoZSBkYXRhIGJhY2sgZnJvbSB0
aGUgUmVhZGFibGVTdHJlYW0gYW5kIHRyYW5zZm9ybSBpdCBhY2NvcmRpbmcKKyAgICAgICAgdGhl
IGRlc2lyZWQgYm9keSB0eXBlICh0ZXh0LCBKU09OLCBBcnJheUJ1ZmZlcikuCisKKyAgICAgICAg
KiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAg
ICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZldGNo
Qm9keTo6Y29uc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6OmxvYWRpbmdTdWNj
ZWVkZWQpOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6cmVzb2x2ZVdpdGhUeXBlQW5kRGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpGZXRjaEJvZHlDb25zdW1lcjo6Y2xlYW4pOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hC
b2R5Q29uc3VtZXI6OnJlc29sdmVXaXRoRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJv
ZHlDb25zdW1lcjo6cmVzb2x2ZSk6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlD
b25zdW1lci5oOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGZXRjaFJlc3BvbnNlOjpmaW5pc2hDb25zdW1pbmdTdHJlYW0pOgor
ICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUludGVybmFscy5qczoKKyAg
ICAgICAgKHJlYWRhYmxlU3RyZWFtUGlwZVRvKToKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMv
UmVhZGFibGVTdHJlYW1TaW5rLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJs
ZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luazo6UmVhZGFibGVTdHJlYW1Ub1NoYXJlZEJ1ZmZlclNp
bmspOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW1Ub1NoYXJlZEJ1ZmZlclNpbms6
OnBpcGVGcm9tKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlU3RyZWFtVG9TaGFyZWRCdWZm
ZXJTaW5rOjplbnF1ZXVlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlU3RyZWFtVG9TaGFy
ZWRCdWZmZXJTaW5rOjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZVN0cmVhbVRv
U2hhcmVkQnVmZmVyU2luazo6ZXJyb3IpOgorICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFk
YWJsZVN0cmVhbVNpbmsuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtU2luay5pZGw6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZVN0cmVhbTo6cGlwZVRvKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5oOgorCiAyMDE3LTA4LTMxICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgZ2V0RmlsZU1ldGFkYXRhKCkgZG9lcyBub3Qg
d29yayBhcyBleHBlY3RlZCBmb3Igc3ltYm9saWMgbGlua3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5k
ZXggYzIwZjkwNmM0ZTBjZjliMzkxNTRjYzAwNTIwZTQ3N2JiMTFmYzNiYy4uMmI2YWY1YjQ3MzYw
ZjIzMmQzZTJhN2VjMTExODU4NTg0Y2FkNmM3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTMy
NSw2ICszMjUsNyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIE1vZHVsZXMv
c3RyZWFtcy9SZWFkYWJsZVN0cmVhbUJZT0JSZXF1ZXN0LmlkbAogICAgIE1vZHVsZXMvc3RyZWFt
cy9SZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmlkbAogICAgIE1vZHVsZXMvc3RyZWFt
cy9SZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuaWRsCisgICAgTW9kdWxlcy9zdHJlYW1zL1Jl
YWRhYmxlU3RyZWFtU2luay5pZGwKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1T
b3VyY2UuaWRsCiAgICAgTW9kdWxlcy9zdHJlYW1zL1dyaXRhYmxlU3RyZWFtLmlkbAogCkBAIC0x
MDY5LDYgKzEwNzAsOCBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgTW9kdWxlcy9zcGVlY2gv
U3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmNwcAogICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5
bnRoZXNpc1ZvaWNlLmNwcAogCisgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2lu
ay5jcHAKKwogICAgIE1vZHVsZXMvd2ViYXVkaW8vQW5hbHlzZXJOb2RlLmNwcAogICAgIE1vZHVs
ZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3BwCiAgICAgTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0Jhc2ljSW5zcGVjdG9yTm9kZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmlu
ZGV4IDZlNzQ3Nzc5ODBlYmM0YWIzZTNkNzUyZWRlYTNmYTU3N2JhZDM3Y2MuLmE1NzEzNmFkNWQx
MDdmMDdkNmU1MTYxZjk1MDIxNzU1MzA3ZDRjODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQpAQCAtMjc2LDYgKzI3Niw3IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNv
cmUpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUJZT0JSZXF1ZXN0LmlkbCBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxl
ci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtRGVm
YXVsdFJlYWRlci5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxl
U3RyZWFtU2luay5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxl
U3RyZWFtU291cmNlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvV3JpdGFi
bGVTdHJlYW0uaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQW5hbHlzZXJO
b2RlLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNo
Qm9keS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5jcHAKaW5k
ZXggNDMzZTk0YjVlN2ZiMzY4NTlhN2UzMmFlYjkwOTVmNWRmNjEwZDAxMC4uMzQwNDk2NzE0NTUx
ZmM1OTVhNmM4YjhiZWUyYWE3NmMwNTg1MmMwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmV0Y2gvRmV0Y2hCb2R5LmNwcApAQCAtMTM4LDcgKzEzOCw3IEBAIHZvaWQgRmV0Y2hCb2R5Ojpj
b25zdW1lKEZldGNoQm9keU93bmVyJiBvd25lciwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9t
aXNlKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9jb25zdW1lci5yZXNvbHZlKFdU
Rk1vdmUocHJvbWlzZSkpOworICAgIG1fY29uc3VtZXIucmVzb2x2ZShXVEZNb3ZlKHByb21pc2Up
LCBtX3JlYWRhYmxlU3RyZWFtLmdldCgpKTsKIH0KIAogI2lmIEVOQUJMRShTVFJFQU1TX0FQSSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3Vt
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5j
cHAKaW5kZXggOWQwMTg0OGNlNGE3NjYyNGNmZmNjZTgwY2Q4N2RlMTE3MDUxOGJhMi4uYjllZTFl
MTM2YjU0YzU4YjM3ZmUzZTk5YjFhZGI2YzgzNTUxNWI4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5jcHAKQEAgLTU2LDI5ICs1Niw2
MCBAQCBzdGF0aWMgU3RyaW5nIHRleHRGcm9tVVRGOChjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRh
LCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgcmV0dXJuIGRlY29kZXItPmRlY29kZUFuZEZsdXNoKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEpLCBsZW5ndGgpOwogfQogCi12b2lkIEZl
dGNoQm9keUNvbnN1bWVyOjpyZXNvbHZlV2l0aERhdGEoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBw
cm9taXNlLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCitzdGF0
aWMgdm9pZCByZXNvbHZlV2l0aFR5cGVBbmREYXRhKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJv
bWlzZSwgRmV0Y2hCb2R5Q29uc3VtZXI6OlR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBjb250ZW50
VHlwZSwgY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKQogewotICAg
IHN3aXRjaCAobV90eXBlKSB7Ci0gICAgY2FzZSBUeXBlOjpBcnJheUJ1ZmZlcjoKKyAgICBzd2l0
Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEZldGNoQm9keUNvbnN1bWVyOjpUeXBlOjpBcnJheUJ1ZmZl
cjoKICAgICAgICAgZnVsZmlsbFByb21pc2VXaXRoQXJyYXlCdWZmZXIoV1RGTW92ZShwcm9taXNl
KSwgZGF0YSwgbGVuZ3RoKTsKICAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgVHlwZTo6QmxvYjoK
LSAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZVdpdGhOZXdseUNyZWF0ZWQ8SURMSW50ZXJmYWNlPEJs
b2I+PihibG9iRnJvbURhdGEoZGF0YSwgbGVuZ3RoLCBtX2NvbnRlbnRUeXBlKS5nZXQoKSk7Cisg
ICAgY2FzZSBGZXRjaEJvZHlDb25zdW1lcjo6VHlwZTo6QmxvYjoKKyAgICAgICAgcHJvbWlzZS0+
cmVzb2x2ZVdpdGhOZXdseUNyZWF0ZWQ8SURMSW50ZXJmYWNlPEJsb2I+PihibG9iRnJvbURhdGEo
ZGF0YSwgbGVuZ3RoLCBjb250ZW50VHlwZSkuZ2V0KCkpOwogICAgICAgICByZXR1cm47Ci0gICAg
Y2FzZSBUeXBlOjpKU09OOgorICAgIGNhc2UgRmV0Y2hCb2R5Q29uc3VtZXI6OlR5cGU6OkpTT046
CiAgICAgICAgIGZ1bGZpbGxQcm9taXNlV2l0aEpTT04oV1RGTW92ZShwcm9taXNlKSwgdGV4dEZy
b21VVEY4KGRhdGEsIGxlbmd0aCkpOwogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBUeXBlOjpU
ZXh0OgorICAgIGNhc2UgRmV0Y2hCb2R5Q29uc3VtZXI6OlR5cGU6OlRleHQ6CiAgICAgICAgIHBy
b21pc2UtPnJlc29sdmU8SURMRE9NU3RyaW5nPih0ZXh0RnJvbVVURjgoZGF0YSwgbGVuZ3RoKSk7
CiAgICAgICAgIHJldHVybjsKLSAgICBjYXNlIFR5cGU6Ok5vbmU6CisgICAgY2FzZSBGZXRjaEJv
ZHlDb25zdW1lcjo6VHlwZTo6Tm9uZToKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiB9CiAKLXZvaWQgRmV0Y2hCb2R5Q29uc3VtZXI6OnJlc29s
dmUoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQordm9pZCBGZXRjaEJvZHlDb25zdW1l
cjo6Y2xlYW4oKQoreworICAgIG1fYnVmZmVyID0gbnVsbHB0cjsKKyAgICBtX2NvbnN1bWVQcm9t
aXNlID0gbnVsbHB0cjsKKyAgICBpZiAobV9zaW5rKSB7CisgICAgICAgIG1fc2luay0+Y2xlYXJD
YWxsYmFjaygpOworICAgICAgICByZXR1cm47CisgICAgfQorfQorCit2b2lkIEZldGNoQm9keUNv
bnN1bWVyOjpyZXNvbHZlV2l0aERhdGEoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlLCBj
b25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgcmVzb2x2
ZVdpdGhUeXBlQW5kRGF0YShXVEZNb3ZlKHByb21pc2UpLCBtX3R5cGUsIG1fY29udGVudFR5cGUs
IGRhdGEsIGxlbmd0aCk7Cit9CisKK3ZvaWQgRmV0Y2hCb2R5Q29uc3VtZXI6OnJlc29sdmUoUmVm
PERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlLCBSZWFkYWJsZVN0cmVhbSogc3RyZWFtKQogewor
ICAgIGlmIChzdHJlYW0pIHsKKyAgICAgICAgQVNTRVJUKCFtX3NpbmspOworICAgICAgICBtX3Np
bmsgPSBSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luazo6Y3JlYXRlKFtwcm9taXNlID0g
V1RGTW92ZShwcm9taXNlKSwgdHlwZSA9IG1fdHlwZSwgY29udGVudFR5cGUgPSBtX2NvbnRlbnRU
eXBlXShFeGNlcHRpb25PcjxSZWZQdHI8U2hhcmVkQnVmZmVyPj4mJiByZXN1bHQpIG11dGFibGUg
eworICAgICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgeworICAgICAgICAgICAg
ICAgIHByb21pc2UtPnJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKKyAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGF1dG8qIGRhdGEg
PSByZXN1bHQucmV0dXJuVmFsdWUoKSAmJiByZXN1bHQucmV0dXJuVmFsdWUoKS0+ZGF0YSgpID8g
cmVpbnRlcnByZXRfY2FzdDxjb25zdCB1bnNpZ25lZCBjaGFyKj4ocmVzdWx0LnJldHVyblZhbHVl
KCktPmRhdGEoKSkgOiBudWxscHRyOworICAgICAgICAgICAgYXV0byBzaXplID0gZGF0YSA/IHJl
c3VsdC5yZXR1cm5WYWx1ZSgpLT5zaXplKCkgOiAwOworICAgICAgICAgICAgcmVzb2x2ZVdpdGhU
eXBlQW5kRGF0YShXVEZNb3ZlKHByb21pc2UpLCB0eXBlLCBjb250ZW50VHlwZSwgZGF0YSwgc2l6
ZSk7CisgICAgICAgIH0pOworICAgICAgICBtX3NpbmstPnBpcGVGcm9tKCpzdHJlYW0pOworICAg
ICAgICByZXR1cm47CisgICAgfQorCiAgICAgQVNTRVJUKG1fdHlwZSAhPSBUeXBlOjpOb25lKTsK
ICAgICBzd2l0Y2ggKG1fdHlwZSkgewogICAgIGNhc2UgVHlwZTo6QXJyYXlCdWZmZXI6CkBAIC05
OSwxOCArMTMwLDIyIEBAIHZvaWQgRmV0Y2hCb2R5Q29uc3VtZXI6OnJlc29sdmUoUmVmPERlZmVy
cmVkUHJvbWlzZT4mJiBwcm9taXNlKQogICAgIH0KIH0KIAotdm9pZCBGZXRjaEJvZHlDb25zdW1l
cjo6YXBwZW5kKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKK3ZvaWQgRmV0Y2hC
b2R5Q29uc3VtZXI6OmFwcGVuZChjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBzaXplKQogewor
ICAgIGlmIChtX3NvdXJjZSkgeworICAgICAgICBtX3NvdXJjZS0+ZW5xdWV1ZShBcnJheUJ1ZmZl
cjo6dHJ5Q3JlYXRlKGRhdGEsIHNpemUpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KICAgICBp
ZiAoIW1fYnVmZmVyKSB7Ci0gICAgICAgIG1fYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUo
ZGF0YSwgbGVuZ3RoKTsKKyAgICAgICAgbV9idWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShk
YXRhLCBzaXplKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBtX2J1ZmZlci0+YXBwZW5k
KGRhdGEsIGxlbmd0aCk7CisgICAgbV9idWZmZXItPmFwcGVuZChkYXRhLCBzaXplKTsKIH0KIAot
dm9pZCBGZXRjaEJvZHlDb25zdW1lcjo6YXBwZW5kKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEs
IHVuc2lnbmVkIGxlbmd0aCkKK3ZvaWQgRmV0Y2hCb2R5Q29uc3VtZXI6OmFwcGVuZChjb25zdCB1
bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBzaXplKQogewotICAgIGFwcGVuZChyZWludGVy
cHJldF9jYXN0PGNvbnN0IGNoYXIqPihkYXRhKSwgbGVuZ3RoKTsKKyAgICBhcHBlbmQocmVpbnRl
cnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YSksIHNpemUpOwogfQogCiBSZWZQdHI8U2hhcmVk
QnVmZmVyPiBGZXRjaEJvZHlDb25zdW1lcjo6dGFrZURhdGEoKQpAQCAtMTU0LDI0ICsxODksMzUg
QEAgdm9pZCBGZXRjaEJvZHlDb25zdW1lcjo6c2V0Q29uc3VtZVByb21pc2UoUmVmPERlZmVycmVk
UHJvbWlzZT4mJiBwcm9taXNlKQogICAgIG1fY29uc3VtZVByb21pc2UgPSBXVEZNb3ZlKHByb21p
c2UpOwogfQogCit2b2lkIEZldGNoQm9keUNvbnN1bWVyOjpzZXRTb3VyY2UoUmVmPEZldGNoQm9k
eVNvdXJjZT4mJiBzb3VyY2UpCit7CisgICAgbV9zb3VyY2UgPSBXVEZNb3ZlKHNvdXJjZSk7Cisg
ICAgaWYgKG1fYnVmZmVyKSB7CisgICAgICAgIG1fc291cmNlLT5lbnF1ZXVlKG1fYnVmZmVyLT50
cnlDcmVhdGVBcnJheUJ1ZmZlcigpKTsKKyAgICAgICAgbV9idWZmZXIgPSBudWxscHRyOworICAg
IH0KK30KKwogdm9pZCBGZXRjaEJvZHlDb25zdW1lcjo6bG9hZGluZ0ZhaWxlZCgpCiB7CiAgICAg
aWYgKG1fY29uc3VtZVByb21pc2UpIHsKICAgICAgICAgbV9jb25zdW1lUHJvbWlzZS0+cmVqZWN0
KCk7CiAgICAgICAgIG1fY29uc3VtZVByb21pc2UgPSBudWxscHRyOwogICAgIH0KKyAgICBpZiAo
bV9zb3VyY2UpIHsKKyAgICAgICAgbV9zb3VyY2UtPmVycm9yKEFTQ0lJTGl0ZXJhbCgiTG9hZGlu
ZyBmYWlsZWQiKSk7CisgICAgICAgIG1fc291cmNlID0gbnVsbHB0cjsKKyAgICB9CiB9CiAKIHZv
aWQgRmV0Y2hCb2R5Q29uc3VtZXI6OmxvYWRpbmdTdWNjZWVkZWQoKQogewogICAgIGlmIChtX2Nv
bnN1bWVQcm9taXNlKQotICAgICAgICByZXNvbHZlKG1fY29uc3VtZVByb21pc2UucmVsZWFzZU5v
bk51bGwoKSk7Ci19Ci0KLXZvaWQgRmV0Y2hCb2R5Q29uc3VtZXI6OmNsZWFuKCkKLXsKLSAgICBt
X2J1ZmZlciA9IG51bGxwdHI7Ci0gICAgbV9jb25zdW1lUHJvbWlzZSA9IG51bGxwdHI7CisgICAg
ICAgIHJlc29sdmUobV9jb25zdW1lUHJvbWlzZS5yZWxlYXNlTm9uTnVsbCgpLCBudWxscHRyKTsK
KyAgICBpZiAobV9zb3VyY2UpIHsKKyAgICAgICAgbV9zb3VyY2UtPmNsb3NlKCk7CisgICAgICAg
IG1fc291cmNlID0gbnVsbHB0cjsKKyAgICB9CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3Vt
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIuaApp
bmRleCAxYjY2YTNkOThlZDU3ZmQwOTYxMjJlYzdjNDg1ZmZjMzg5ZDIxNTM4Li5kZmQ4ZmIxY2Jm
NGZjYmVkNzY2M2U5ODM2OWQwYzVlYTI0ZmM5ZjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5oCkBAIC0yOCwxMiArMjgsMTYgQEAKIAog
I3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJGZXRjaEJvZHlTb3VyY2UuaCIKICNpbmNsdWRlICJK
U0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFtU2luay5oIgog
I2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IEJsb2I7CitjbGFzcyBGZXRjaEJvZHlTb3VyY2U7CitjbGFzcyBSZWFkYWJsZVN0cmVhbTsKIAog
Y2xhc3MgRmV0Y2hCb2R5Q29uc3VtZXIgewogcHVibGljOgpAQCAtNTcsNyArNjEsNyBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIGNsZWFuKCk7CiAKLSAgICB2b2lkIHJlc29sdmUoUmVmPERlZmVycmVk
UHJvbWlzZT4mJik7CisgICAgdm9pZCByZXNvbHZlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYsIFJl
YWRhYmxlU3RyZWFtKik7CiAgICAgdm9pZCByZXNvbHZlV2l0aERhdGEoUmVmPERlZmVycmVkUHJv
bWlzZT4mJiwgY29uc3QgdW5zaWduZWQgY2hhciosIHVuc2lnbmVkKTsKIAogICAgIGJvb2wgaGFz
RGF0YSgpIGNvbnN0IHsgcmV0dXJuICEhbV9idWZmZXI7IH0KQEAgLTY2LDEyICs3MCwxNSBAQCBw
dWJsaWM6CiAgICAgdm9pZCBsb2FkaW5nU3VjY2VlZGVkKCk7CiAKICAgICB2b2lkIHNldENvbnN1
bWVQcm9taXNlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOworICAgIHZvaWQgc2V0U291cmNlKFJl
ZjxGZXRjaEJvZHlTb3VyY2U+JiYpOwogCiBwcml2YXRlOgogICAgIFR5cGUgbV90eXBlOwogICAg
IFN0cmluZyBtX2NvbnRlbnRUeXBlOwogICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IG1fYnVmZmVy
OwogICAgIFJlZlB0cjxEZWZlcnJlZFByb21pc2U+IG1fY29uc3VtZVByb21pc2U7CisgICAgUmVm
UHRyPFJlYWRhYmxlU3RyZWFtVG9TaGFyZWRCdWZmZXJTaW5rPiBtX3Npbms7CisgICAgUmVmUHRy
PEZldGNoQm9keVNvdXJjZT4gbV9zb3VyY2U7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmNwcAppbmRl
eCBjMTkzY2UzZTE3NmQ3MWE2Y2EyMTdkNWQ1MDJhODkzNjI3MWQxMjc5Li41MGI5YjBhYTM2OWU3
YzMzZGJmNjVkMjNlYzhmMDUxM2E4OTZjZWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHAKQEAgLTMwNSwxOSArMzA1LDE5IEBAIHZvaWQgRmV0
Y2hSZXNwb25zZTo6c3RhcnRDb25zdW1pbmdTdHJlYW0odW5zaWduZWQgdHlwZSkKIHsKICAgICBt
X2lzRGlzdHVyYmVkID0gdHJ1ZTsKICAgICBhdXRvIGNvbnN1bWVyVHlwZSA9IHN0YXRpY19jYXN0
PEZldGNoQm9keUNvbnN1bWVyOjpUeXBlPih0eXBlKTsKLSAgICBtX2NvbnN1bWVyLnNldFR5cGUo
Y29uc3VtZXJUeXBlKTsKKyAgICBib2R5KCkuY29uc3VtZXIoKS5zZXRUeXBlKGNvbnN1bWVyVHlw
ZSk7CiAgICAgaWYgKGNvbnN1bWVyVHlwZSA9PSBGZXRjaEJvZHlDb25zdW1lcjo6VHlwZTo6Qmxv
YikKLSAgICAgICAgbV9jb25zdW1lci5zZXRDb250ZW50VHlwZShCbG9iOjpub3JtYWxpemVkQ29u
dGVudFR5cGUoZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShtX2NvbnRlbnRUeXBlKSkpOwor
ICAgICAgICBib2R5KCkuY29uc3VtZXIoKS5zZXRDb250ZW50VHlwZShCbG9iOjpub3JtYWxpemVk
Q29udGVudFR5cGUoZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShtX2NvbnRlbnRUeXBlKSkp
OwogfQogCiB2b2lkIEZldGNoUmVzcG9uc2U6OmNvbnN1bWVDaHVuayhSZWY8SlNDOjpVaW50OEFy
cmF5PiYmIGNodW5rKQogewotICAgIG1fY29uc3VtZXIuYXBwZW5kKGNodW5rLT5kYXRhKCksIGNo
dW5rLT5ieXRlTGVuZ3RoKCkpOworICAgIGJvZHkoKS5jb25zdW1lcigpLmFwcGVuZChjaHVuay0+
ZGF0YSgpLCBjaHVuay0+Ynl0ZUxlbmd0aCgpKTsKIH0KIAogdm9pZCBGZXRjaFJlc3BvbnNlOjpm
aW5pc2hDb25zdW1pbmdTdHJlYW0oUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewot
ICAgIG1fY29uc3VtZXIucmVzb2x2ZShXVEZNb3ZlKHByb21pc2UpKTsKKyAgICBib2R5KCkuY29u
c3VtZXIoKS5yZXNvbHZlKFdURk1vdmUocHJvbWlzZSksIG51bGxwdHIpOwogfQogCiB2b2lkIEZl
dGNoUmVzcG9uc2U6OmNvbnN1bWVCb2R5QXNTdHJlYW0oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuaAppbmRleCBkYzlmMTFlZDg0NzYxMzI0YjcxOGIwY2Vm
MDI3Y2U0MDQxZGFmZjhhLi5kZGY2ZDQyYTE2YTIzZjQ3Y2NjNDAzNDBlOWU3YWJiNjg5NWRjMzJk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuaApAQCAt
MTQ5LDggKzE0OSw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZEV4cG9zZUJvZHkgeyB0
cnVlIH07CiAgICAgLy8gRklYTUU6IFJlbW92ZSB0aGF0IGZsYWcgb25jZSB3ZSBoYXZlIGZ1bGwg
c3VwcG9ydCBpbiBET00gUmVhZGFibGVTdHJlYW0uCiAgICAgYm9vbCBtX2lzUmVhZGFibGVTdHJl
YW0geyBmYWxzZSB9OwotCi0gICAgRmV0Y2hCb2R5Q29uc3VtZXIgbV9jb25zdW1lciB7IEZldGNo
Qm9keUNvbnN1bWVyOjpUeXBlOjpBcnJheUJ1ZmZlciAgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFk
YWJsZVN0cmVhbUludGVybmFscy5qcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9S
ZWFkYWJsZVN0cmVhbUludGVybmFscy5qcwppbmRleCBmNGU1ZGFmN2IyMTNkNDBlZWJlOGE0OWRj
YjM2ZDc0OWI2N2FlMzcyLi41NDI3N2YzYWUwNGRhZmJkMTUyMWY5YTYyM2Y1YTA3MDMxOTY2N2Zm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJl
YW1JbnRlcm5hbHMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtSW50ZXJuYWxzLmpzCkBAIC0xMDYsNiArMTA2LDMzIEBAIGZ1bmN0aW9uIHJlYWRh
YmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXJFcnJvcihjb250cm9sbGVyLCBlcnJvcikKICAgICBA
cmVhZGFibGVTdHJlYW1FcnJvcihzdHJlYW0sIGVycm9yKTsKIH0KIAorZnVuY3Rpb24gcmVhZGFi
bGVTdHJlYW1QaXBlVG8oc3RyZWFtLCBzaW5rKQoreworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBA
YXNzZXJ0KEBpc1JlYWRhYmxlU3RyZWFtKHN0cmVhbSkpOworCisgICAgY29uc3QgcmVhZGVyID0g
bmV3IEBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIoc3RyZWFtKTsKKworICAgIHJlYWRlci5A
Y2xvc2VkUHJvbWlzZUNhcGFiaWxpdHkuQHByb21pc2UuQHRoZW4oKCkgPT4geyB9LCAoZSkgPT4g
eyBzaW5rLmVycm9yKGUpOyB9KTsKKworICAgIGZ1bmN0aW9uIGRvUGlwZSgpIHsKKyAgICAgICAg
QHJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlclJlYWQocmVhZGVyKS5AdGhlbihmdW5jdGlvbihy
ZXN1bHQpIHsKKyAgICAgICAgICAgIGlmIChyZXN1bHQuZG9uZSkgeworICAgICAgICAgICAgICAg
IHNpbmsuY2xvc2UoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHNpbmsuZW5xdWV1ZShyZXN1bHQudmFs
dWUpOworICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgICAgIHNpbmsuZXJy
b3IoIlJlYWRhYmxlU3RyZWFtIGNodW5rIGVucXVldWVpbmcgaW4gdGhlIHNpbmsgZmFpbGVkIik7
CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZG9Q
aXBlKCk7CisgICAgICAgIH0pOworICAgIH0KKyAgICBkb1BpcGUoKTsKK30KKwogZnVuY3Rpb24g
cmVhZGFibGVTdHJlYW1UZWUoc3RyZWFtLCBzaG91bGRDbG9uZSkKIHsKICAgICAidXNlIHN0cmlj
dCI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW1TaW5rLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0
cmVhbVNpbmsuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhMGVkZTNjM2NjZWI4MzM4NGM2NjhkM2Q0OGEyYjhi
ODI4MmY4NzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVh
bXMvUmVhZGFibGVTdHJlYW1TaW5rLmNwcApAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVhZGFibGVTdHJlYW1TaW5rLmgiCisK
KyNpbmNsdWRlICJCdWZmZXJTb3VyY2UuaCIKKyNpbmNsdWRlICJET01FeGNlcHRpb24uaCIKKyNp
bmNsdWRlICJSZWFkYWJsZVN0cmVhbS5oIgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorCisj
aWYgRU5BQkxFKFNUUkVBTVNfQVBJKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlYWRhYmxl
U3RyZWFtVG9TaGFyZWRCdWZmZXJTaW5rOjpSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2lu
ayhDYWxsYmFjayYmIGNhbGxiYWNrKQorICAgIDogbV9jYWxsYmFjayB7IFdURk1vdmUoY2FsbGJh
Y2spIH0KK3sKK30KKwordm9pZCBSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luazo6cGlw
ZUZyb20oUmVhZGFibGVTdHJlYW0mIHN0cmVhbSkKK3sKKyAgICBzdHJlYW0ucGlwZVRvKCp0aGlz
KTsKK30KKwordm9pZCBSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luazo6ZW5xdWV1ZShj
b25zdCBCdWZmZXJTb3VyY2UmIGJ1ZmZlcikKK3sKKyAgICBpZiAoIW1fZGF0YSkgeworICAgICAg
ICBtX2RhdGEgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShidWZmZXIuZGF0YSgpLCBidWZmZXIubGVu
Z3RoKCkpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1fZGF0YS0+YXBwZW5kKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGJ1ZmZlci5kYXRhKCkpLCBidWZmZXIubGVuZ3RoKCkp
OworfQorCit2b2lkIFJlYWRhYmxlU3RyZWFtVG9TaGFyZWRCdWZmZXJTaW5rOjpjbG9zZSgpCit7
CisgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBXVEZNb3ZlKG1fY2FsbGJhY2spKQorICAgICAgICBj
YWxsYmFjayhXVEZNb3ZlKG1fZGF0YSkpOworfQorCit2b2lkIFJlYWRhYmxlU3RyZWFtVG9TaGFy
ZWRCdWZmZXJTaW5rOjplcnJvcihTdHJpbmcmJiBtZXNzYWdlKQoreworICAgIGlmIChhdXRvIGNh
bGxiYWNrID0gV1RGTW92ZShtX2NhbGxiYWNrKSkKKyAgICAgICAgY2FsbGJhY2soRXhjZXB0aW9u
IHsgVHlwZUVycm9yLCBXVEZNb3ZlKG1lc3NhZ2UpIH0pOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoU1RSRUFNU19BUEkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1TaW5rLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1TaW5rLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjFjMmFhYmVmMmQ1NjYwMzE4ZWJiNzkwNWQxZmFlYTk1ODcyYmY1OQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNpbmsuaApA
QCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShTVFJFQU1TX0FQSSkKKworI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCisjaW5jbHVkZSA8d3Rm
L0Z1bmN0aW9uLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBCdWZmZXJTb3VyY2U7CitjbGFzcyBSZWFkYWJsZVN0cmVhbTsKK2Ns
YXNzIFNoYXJlZEJ1ZmZlcjsKKworY2xhc3MgUmVhZGFibGVTdHJlYW1TaW5rIDogcHVibGljIFJl
ZkNvdW50ZWQ8UmVhZGFibGVTdHJlYW1TaW5rPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+UmVh
ZGFibGVTdHJlYW1TaW5rKCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCB2b2lkIGVucXVldWUo
Y29uc3QgQnVmZmVyU291cmNlJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZXJyb3IoU3RyaW5nJiYpID0gMDsKK307CisKK2NsYXNzIFJlYWRh
YmxlU3RyZWFtVG9TaGFyZWRCdWZmZXJTaW5rIGZpbmFsIDogcHVibGljIFJlYWRhYmxlU3RyZWFt
U2luayB7CitwdWJsaWM6CisgICAgdXNpbmcgQ2FsbGJhY2sgPSBXVEY6OkZ1bmN0aW9uPHZvaWQo
RXhjZXB0aW9uT3I8UmVmUHRyPFNoYXJlZEJ1ZmZlcj4+JiYpPjsKKyAgICBzdGF0aWMgUmVmPFJl
YWRhYmxlU3RyZWFtVG9TaGFyZWRCdWZmZXJTaW5rPiBjcmVhdGUoQ2FsbGJhY2smJiBjYWxsYmFj
aykgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2lu
ayhXVEZNb3ZlKGNhbGxiYWNrKSkpOyB9CisgICAgdm9pZCBwaXBlRnJvbShSZWFkYWJsZVN0cmVh
bSYpOworICAgIHZvaWQgY2xlYXJDYWxsYmFjaygpIHsgbV9jYWxsYmFjayA9IHsgfTsgfQorCitw
cml2YXRlOgorICAgIFJlYWRhYmxlU3RyZWFtVG9TaGFyZWRCdWZmZXJTaW5rKENhbGxiYWNrJiYp
OworCisgICAgdm9pZCBlbnF1ZXVlKGNvbnN0IEJ1ZmZlclNvdXJjZSYpIGZpbmFsOworICAgIHZv
aWQgY2xvc2UoKSBmaW5hbDsKKyAgICB2b2lkIGVycm9yKFN0cmluZyYmKSBmaW5hbDsKKworICAg
IENhbGxiYWNrIG1fY2FsbGJhY2s7CisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbV9kYXRhOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNUUkVBTVNf
QVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxl
U3RyZWFtU2luay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW1TaW5rLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OTk5OTQ0MGM1ZTQyZjQyY2UxMzZjOTU2NzQ2MjQx
N2M5MmJhYmEyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJl
YW1zL1JlYWRhYmxlU3RyZWFtU2luay5pZGwKQEAgLTAsMCArMSwzNSBAQAorLyoKKyogQ29weXJp
Z2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisKK1sKKyAgICBOb0ludGVyZmFjZU9i
amVjdCwKKyAgICBDb25kaXRpb25hbD1TVFJFQU1TX0FQSSwKKyAgICBTa2lwVlRhYmxlVmFsaWRh
dGlvbgorXSBpbnRlcmZhY2UgUmVhZGFibGVTdHJlYW1TaW5rIHsKKyAgICB2b2lkIGVucXVldWUo
QnVmZmVyU291cmNlIGNodW5rKTsKKyAgICB2b2lkIGNsb3NlKCk7CisgICAgdm9pZCBlcnJvcihE
T01TdHJpbmcgbWVzc2FnZSk7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDc2NjMzOGI0NzE4Zjc4YTA3YWFkZjZjOGIwNzAw
NGU1NDk1ZjVhYjkuLjdiYWU3Zjc0N2U4NzA1NzkxYmZiODBjNWEwNTUyNmJmZjY1MWE3NjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTE2NzMsNiArMTY3Myw4IEBACiAJCTQxMjMwODFCMTM4QzQyOTcwMEJDQ0ZDQSAvKiBXZWJD
b3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzRjE5QjFBMDgyNDVFNUEwMDFFOUFCQyAvKiBXZWJDb3JlLmZyYW1ld29yayAqLzsg
fTsKIAkJNDEyMzA5MTMxMzhDNDJGRjAwQkNDRkNBIC8qIEphdmFTY3JpcHRDb3JlLmZyYW1ld29y
ayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY4MjE2
Mjk5MDI5RjRGQjUwMTAwMDEzMSAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgKi87IH07CiAJ
CTQxMjdENTM3MEY4QUFCMUQwMEU0MjRGNSAvKiBTY3JpcHRTdGF0ZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTI3RDUzNjBGOEFBQjFEMDBFNDI0
RjUgLyogU2NyaXB0U3RhdGUuY3BwICovOyB9OworCQk0MTI5Qzk4QTFGNTg3RkVCMDA5RDc0MDMg
LyogUmVhZGFibGVTdHJlYW1TaW5rLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxMjlDOTg3MUY1ODY2MkQwMDlENzQwMyAvKiBSZWFkYWJsZVN0cmVh
bVNpbmsuY3BwICovOyB9OworCQk0MTI5Qzk5NzFGNTlCOTYzMDA5RDc0MDMgLyogRmV0Y2hCb2R5
U291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MTMwMTVENjFDN0I1NzA0MDAwOTFDNkYgLyogRmV0Y2hCb2R5U291cmNlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDEyOURGODUxQkI1QjgwNzAw
MzIyQTE2IC8qIEpTUmVhZGFibGVTdHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMjlERjgzMUJCNUI3Rjcw
MDMyMkExNiAvKiBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5jcHAgKi87IH07
CiAJCTQxMjlERjg2MUJCNUI4MEMwMDMyMkExNiAvKiBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNv
bnN0cnVjdG9ycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDEyOURGODQxQkI1QjdGNzAwMzIyQTE2IC8qIEpTUmVhZGFibGVTdHJlYW1Qcml2YXRlQ29u
c3RydWN0b3JzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNDEzMDE1RDkxQzdCNTcxNDAwMDkxQzZFIC8qIEZldGNoUmVzcG9uc2UuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzMDE1RDUxQzdCNTcw
NDAwMDkxQzZFIC8qIEZldGNoUmVzcG9uc2UuY3BwICovOyB9OwpAQCAtMzM5NCw3ICszMzk2LDkg
QEAKIAkJN0VFNjg0NzExMkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlUmVzcG9uc2VDRk5ldC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RUU2ODQ1
RTEyRDI2RTM4MDBFNzk0MTUgLyogUmVzb3VyY2VSZXNwb25zZUNGTmV0LmNwcCAqLzsgfTsKIAkJ
N0VFNjg0NzUxMkQyNkU3MDAwRTc5NDE1IC8qIFJlc291cmNlTG9hZGVyQ0ZOZXQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0VFNjg0NzQxMkQyNkU3
MDAwRTc5NDE1IC8qIFJlc291cmNlTG9hZGVyQ0ZOZXQuY3BwICovOyB9OwogCQk3RjRDOTZEQzFB
RDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaEJvZHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0Y0Qzk2RDgxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0
Y2hCb2R5LmNwcCAqLzsgfTsKKwkJN0Y0Qzk2REMxQUQ0NDgzNTAwMzY1QTUxIC8qIEpTUmVhZGFi
bGVTdHJlYW1TaW5rLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdGNEM5NkQ4MUFENDQ4MzUwMDM2NUE1MSAvKiBKU1JlYWRhYmxlU3RyZWFtU2luay5j
cHAgKi87IH07CiAJCTdGNEM5NkREMUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoQm9keS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0Y0Qzk2RDkxQUQ0
NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hCb2R5LmggKi87IH07CisJCTdGNEM5NkREMUFENDQ4MzUw
MDM2NUE1MSAvKiBKU1JlYWRhYmxlU3RyZWFtU2luay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0Y0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUxIC8qIEpTUmVh
ZGFibGVTdHJlYW1TaW5rLmggKi87IH07CiAJCTgxMDJDNTg4MTMyNUJCMTEwMERERTY3QSAvKiBT
dHJpbmdDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4MTAyQzU4NzEzMjVCQjExMDBEREU2N0EgLyogU3RyaW5nQ2FsbGJhY2suY3BwICov
OyB9OwogCQk4MUFDNTk5OTEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFBQzU5OTcxMzE2
MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW0uaCAqLzsgfTsKIAkJODFBQzU5OUExMzE2
MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW1MaXN0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUFDNTk5ODEzMTYzNkU2MDAwOUE3RTAgLyog
RGF0YVRyYW5zZmVySXRlbUxpc3QuaCAqLzsgfTsKQEAgLTkzNzksNiArOTM4Myw5IEBACiAJCTQx
MTg5RUY3MUFEODIzMjgwMEI5M0Y2NCAvKiBSZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExODlFRjcxQUQ4MjMyODAwQjk1Njcy
IC8qIFJlYWRhYmxlU3RyZWFtQllPQlJlcXVlc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFJlYWRhYmxlU3RyZWFtQllPQlJlcXVlc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MTI3RDUzNjBGOEFBQjFEMDBFNDI0RjUgLyogU2NyaXB0U3RhdGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0U3RhdGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0MTI5Qzk4MDFGNTg2MUM3MDA5RDc0MDMgLyogUmVhZGFibGVT
dHJlYW1TaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWRhYmxlU3Ry
ZWFtU2luay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTI5Qzk4MTFGNTg2MUM3
MDA5RDc0MDMgLyogUmVhZGFibGVTdHJlYW1TaW5rLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBSZWFkYWJsZVN0cmVhbVNpbmsuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
MTI5Qzk4NzFGNTg2NjJEMDA5RDc0MDMgLyogUmVhZGFibGVTdHJlYW1TaW5rLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtU2luay5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMjlERjgzMUJCNUI3RjcwMDMyMkExNiAvKiBK
U1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMjlERjg0MUJCNUI3RjcwMDMyMkEx
NiAvKiBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTMwMTVENTFDN0I1NzA0MDAwOTFDNkUg
LyogRmV0Y2hSZXNwb25zZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBGZXRjaFJlc3BvbnNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExNTU3
LDcgKzExNTY0LDkgQEAKIAkJN0VFNjg0NUUxMkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlUmVz
cG9uc2VDRk5ldC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXNv
dXJjZVJlc3BvbnNlQ0ZOZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RUU2
ODQ3NDEyRDI2RTcwMDBFNzk0MTUgLyogUmVzb3VyY2VMb2FkZXJDRk5ldC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXNvdXJjZUxvYWRlckNGTmV0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0Y0Qzk2RDgxQUQ0NDgzNTAwMzY1QTUwIC8qIEpT
RmV0Y2hCb2R5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRmV0
Y2hCb2R5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0Y0Qzk2RDgxQUQ0NDgz
NTAwMzY1QTUxIC8qIEpTUmVhZGFibGVTdHJlYW1TaW5rLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTUmVhZGFibGVTdHJlYW1TaW5rLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0Y0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hCb2R5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRmV0Y2hCb2R5Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdGNEM5NkQ5MUFENDQ4MzUwMDM2NUE1MSAvKiBKU1Jl
YWRhYmxlU3RyZWFtU2luay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1Jl
YWRhYmxlU3RyZWFtU2luay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MTAyQzU4
NzEzMjVCQjExMDBEREU2N0EgLyogU3RyaW5nQ2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU3RyaW5nQ2FsbGJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk4MUFDNTk5NzEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRl
bS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRhVHJhbnNmZXJJdGVtLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgxQUM1OTk4MTMxNjM2RTYwMDA5QTdFMCAv
KiBEYXRhVHJhbnNmZXJJdGVtTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEYXRhVHJhbnNmZXJJdGVtTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTc5ODcsNiArMTc5OTYsOSBAQAogCQkJCTQxOUZBRkFEMUFCQUJDRDUwMDVCODI4QiAvKiBSZWFk
YWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuaWRsICovLAogCQkJCTk5MDhCMEYyMUJDQUNGOTEwMEVE
MEY2NSAvKiBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuanMgKi8sCiAJCQkJOTkwOEIwRjEx
QkNBQ0Y5MTAwRUQwRjY1IC8qIFJlYWRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzICovLAorCQkJCTQx
MjlDOTg3MUY1ODY2MkQwMDlENzQwMyAvKiBSZWFkYWJsZVN0cmVhbVNpbmsuY3BwICovLAorCQkJ
CTQxMjlDOTgwMUY1ODYxQzcwMDlENzQwMyAvKiBSZWFkYWJsZVN0cmVhbVNpbmsuaCAqLywKKwkJ
CQk0MTI5Qzk4MTFGNTg2MUM3MDA5RDc0MDMgLyogUmVhZGFibGVTdHJlYW1TaW5rLmlkbCAqLywK
IAkJCQk0MThDMzk1QjFDOEYwQTYxMDA1MUM4QTMgLyogUmVhZGFibGVTdHJlYW1Tb3VyY2UuaCAq
LywKIAkJCQk0MThDMzk1QzFDOEYwQTYxMDA1MUM4QTMgLyogUmVhZGFibGVTdHJlYW1Tb3VyY2Uu
aWRsICovLAogCQkJCTk5MDhCMEYxMUJDQUNGOTEwMEVEMEY1NSAvKiBTdHJlYW1JbnRlcm5hbHMu
anMgKi8sCkBAIC0xODEwMSw2ICsxODExMyw4IEBACiAJCQkJN0NFMTkxNkExRjJBQjcwNjAwMjcy
Rjc4IC8qIEpTRmV0Y2hSZXF1ZXN0UmVkaXJlY3QuaCAqLywKIAkJCQk4RTRDOTZEODFBRDQ0ODM1
MDAzNjVBNTAgLyogSlNGZXRjaFJlc3BvbnNlLmNwcCAqLywKIAkJCQk4RTRDOTZEOTFBRDQ0ODM1
MDAzNjVBNTAgLyogSlNGZXRjaFJlc3BvbnNlLmggKi8sCisJCQkJN0Y0Qzk2RDgxQUQ0NDgzNTAw
MzY1QTUxIC8qIEpTUmVhZGFibGVTdHJlYW1TaW5rLmNwcCAqLywKKwkJCQk3RjRDOTZEOTFBRDQ0
ODM1MDAzNjVBNTEgLyogSlNSZWFkYWJsZVN0cmVhbVNpbmsuaCAqLywKIAkJCQk3RTRDOTZEODFB
RDQ0ODM1MDAzNjVBNTEgLyogSlNSZWFkYWJsZVN0cmVhbVNvdXJjZS5jcHAgKi8sCiAJCQkJN0U0
Qzk2RDkxQUQ0NDgzNTAwMzY1QTUxIC8qIEpTUmVhZGFibGVTdHJlYW1Tb3VyY2UuaCAqLywKIAkJ
CSk7CkBAIC0yODUzMSw2ICsyODU0NSw3IEBACiAJCQkJNkM0Qzk2REYxQUQ0NDgzNTAwMzY1QTUw
IC8qIEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJN0M0Qzk2REYxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVh
ZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTI5REY4NjFCQjVCODBDMDAzMjJBMTYgLyogSlNS
ZWFkYWJsZVN0cmVhbVByaXZhdGVDb25zdHJ1Y3RvcnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTdG
NEM5NkREMUFENDQ4MzUwMDM2NUE1MSAvKiBKU1JlYWRhYmxlU3RyZWFtU2luay5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJN0U0Qzk2REQxQUQ0NDgzNTAwMzY1QTUxIC8qIEpTUmVhZGFibGVTdHJlYW1T
b3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5OThBRUNFMTNGOUQ2QzkwMDkwQjFBQSAvKiBK
U1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0Uy
MzM3MTFEQ0Q0NjhGMDBGMjhEMDEgLyogSlNSc2FIYXNoZWRJbXBvcnRQYXJhbXMuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjg5ODQsNiArMjg5OTksNyBAQAogCQkJCTA3N0I2NDEzMUI5NEYxMkUwMDNF
OUFENSAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jay5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRTQ0NjEzRTQwQ0Q2ODFBMjAwRkFEQTc1IC8qIE1lZGlhUGxheWVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQlDRDUyMDlFNDFCMEJEODM4MDA3NzE4NEUgLyogTWVkaWFQbGF5ZXJFbnVtcy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNDEyOUM5OTcxRjU5Qjk2MzAwOUQ3NDAzIC8qIEZldGNoQm9keVNv
dXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc2RjBEMEUxMkI4MTkyNzAwQzI2QUE0IC8qIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJREY5QUZE
NzIxM0ZDMzFEODAwMTVGRUI3IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
aCBpbiBIZWFkZXJzICovLAogCQkJCUNEQzhCNUEzMTgwNDYzNDcwMDE2RTY4NSAvKiBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBpbiBIZWFkZXJzICovLApAQCAtMzI1NTYs
NiArMzI1NzIsNyBAQAogCQkJCTZDNEM5NkRFMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxl
U3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M0Qzk2REUx
QUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTQxMjlERjg1MUJCNUI4MDcwMDMyMkExNiAvKiBKU1JlYWRhYmxlU3Ry
ZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3RjRDOTZEQzFB
RDQ0ODM1MDAzNjVBNTEgLyogSlNSZWFkYWJsZVN0cmVhbVNpbmsuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJN0U0Qzk2REMxQUQ0NDgzNTAwMzY1QTUxIC8qIEpTUmVhZGFibGVTdHJlYW1Tb3VyY2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE4QzM5NjAxQzhGMEFBRTAwNTFDOEEzIC8qIEpTUmVh
ZGFibGVTdHJlYW1Tb3VyY2VDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDk5OEFFQ0Qx
M0Y5RDZDOTAwOTBCMUFBIC8qIEpTUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC0zMzMxNyw2ICszMzMzNCw3IEBACiAJCQkJNkU4NEU5RTAxNzY2OEJF
RTAwODE1QjY4IC8qIFJhc3RlclNoYXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxQjQ1OUVG
MUY1NUVCRDEwMDAwRjZGRCAvKiBSZWFkYWJsZVN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk0MThDMzk2MTFDOEYwQUIxMDA1MUM4QTMgLyogUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJv
bGxlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0MTI5Qzk4QTFGNTg3RkVCMDA5RDc0MDMgLyog
UmVhZGFibGVTdHJlYW1TaW5rLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEMzE2MDNCMTJCMDI2
NzYwMEMxQTM1OSAvKiBSZWFsdGltZUFuYWx5c2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQx
MTAzQUFFMUUzOTc5MTAwMDc2OUYwMyAvKiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDgzM0UxRTQzMjREQzAwNjIxRTkyIC8qIFJlYWx0aW1l
SW5jb21pbmdWaWRlb1NvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtLmNwcAppbmRleCA3MjI3NDBmN2ZhNGFiMDIxZDlk
ZjExMzEzMjI1ZWJlNzAzNmQ0M2VkLi5jZjQ4Njk3NjQ5OWIyOGUzY2NkY2MyNWM4NzczYTE1NWNi
ZTllOWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0
cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW0u
Y3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiUmVhZGFibGVTdHJlYW0uaCIKIAogI2lu
Y2x1ZGUgIkpTRE9NQ29udmVydFNlcXVlbmNlcy5oIgorI2luY2x1ZGUgIkpTUmVhZGFibGVTdHJl
YW1TaW5rLmgiCiAjaW5jbHVkZSAiSlNSZWFkYWJsZVN0cmVhbVNvdXJjZS5oIgogI2luY2x1ZGUg
IldlYkNvcmVKU0NsaWVudERhdGEuaCIKIApAQCAtNTQsNiArNTUsMjQgQEAgUmVmPFJlYWRhYmxl
U3RyZWFtPiBSZWFkYWJsZVN0cmVhbTo6Y3JlYXRlKEpTQzo6RXhlY1N0YXRlJiBleGVjU3RhdGUs
IFJlZlB0cjxSZWEKICAgICByZXR1cm4gY3JlYXRlKGdsb2JhbE9iamVjdCwgKm5ld1JlYWRhYmxl
U3RyZWFtKTsKIH0KIAordm9pZCBSZWFkYWJsZVN0cmVhbTo6cGlwZVRvKFJlYWRhYmxlU3RyZWFt
U2luayYgc2luaykKK3sKKyAgICBhdXRvJiBzdGF0ZSA9ICptX2dsb2JhbE9iamVjdC0+Z2xvYmFs
RXhlYygpOworICAgIEpTVk1DbGllbnREYXRhKiBjbGllbnREYXRhID0gc3RhdGljX2Nhc3Q8SlNW
TUNsaWVudERhdGEqPihzdGF0ZS52bSgpLmNsaWVudERhdGEpOworICAgIGNvbnN0IElkZW50aWZp
ZXImIHByaXZhdGVOYW1lID0gY2xpZW50RGF0YS0+YnVpbHRpbkZ1bmN0aW9ucygpLnJlYWRhYmxl
U3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMoKS5yZWFkYWJsZVN0cmVhbVBpcGVUb1ByaXZhdGVOYW1l
KCk7CisKKyAgICBhdXRvIHJlYWRhYmxlU3RyZWFtUGlwZVRvID0gbV9nbG9iYWxPYmplY3QtPmdl
dCgmc3RhdGUsIHByaXZhdGVOYW1lKTsKKyAgICBBU1NFUlQocmVhZGFibGVTdHJlYW1QaXBlVG8u
aXNGdW5jdGlvbigpKTsKKworICAgIENhbGxEYXRhIGNhbGxEYXRhOworICAgIENhbGxUeXBlIGNh
bGxUeXBlID0gZ2V0Q2FsbERhdGEocmVhZGFibGVTdHJlYW1QaXBlVG8sIGNhbGxEYXRhKTsKKyAg
ICBBU1NFUlQoY2FsbFR5cGUgIT0gSlNDOjpDYWxsVHlwZTo6Tm9uZSk7CisgICAgTWFya2VkQXJn
dW1lbnRCdWZmZXIgYXJndW1lbnRzOworICAgIGFyZ3VtZW50cy5hcHBlbmQocmVhZGFibGVTdHJl
YW0oKSk7CisgICAgYXJndW1lbnRzLmFwcGVuZCh0b0pTKCZzdGF0ZSwgbV9nbG9iYWxPYmplY3Qu
Z2V0KCksIHNpbmspKTsKKyAgICBKU0M6OmNhbGwoJnN0YXRlLCByZWFkYWJsZVN0cmVhbVBpcGVU
bywgY2FsbFR5cGUsIGNhbGxEYXRhLCBKU0M6OmpzVW5kZWZpbmVkKCksIGFyZ3VtZW50cyk7Cit9
CisKIHN0ZDo6cGFpcjxSZWY8UmVhZGFibGVTdHJlYW0+LCBSZWY8UmVhZGFibGVTdHJlYW0+PiBS
ZWFkYWJsZVN0cmVhbTo6dGVlKCkKIHsKICAgICBhdXRvJiBzdGF0ZSA9ICptX2dsb2JhbE9iamVj
dC0+Z2xvYmFsRXhlYygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
UmVhZGFibGVTdHJlYW0uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3Ry
ZWFtLmgKaW5kZXggYTBjMjZhNDM1NzY4YjJkMTBhZjQxMDZlNjE3ZjU3Y2IzMGEzMGM5NS4uYWU1
YjBkNWZhYTkwMjcyYzg3NzE2NzE0OTkyZTNkYzM0YzY2ZjQ4YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5oCkBAIC0zMiw2ICszMiw3IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgUmVhZGFibGVTdHJlYW1TaW5rOwogY2xhc3MgUmVhZGFi
bGVTdHJlYW1Tb3VyY2U7CiAKIGNsYXNzIFJlYWRhYmxlU3RyZWFtIGZpbmFsIDogcHVibGljIERP
TUd1YXJkZWQ8SlNSZWFkYWJsZVN0cmVhbT4gewpAQCAtNDIsNiArNDMsOCBAQCBwdWJsaWM6CiAK
ICAgICBzdGQ6OnBhaXI8UmVmPFJlYWRhYmxlU3RyZWFtPiwgUmVmPFJlYWRhYmxlU3RyZWFtPj4g
dGVlKCk7CiAKKyAgICB2b2lkIHBpcGVUbyhSZWFkYWJsZVN0cmVhbVNpbmsmKTsKKwogICAgIEpT
UmVhZGFibGVTdHJlYW0qIHJlYWRhYmxlU3RyZWFtKCkgeyByZXR1cm4gZ3VhcmRlZCgpOyB9CiAK
IHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCA3MGNiN2VkM2VkZWE2YzhmYmJkYTk1ZDRmZmRkNDc0YmZkOTYz
NWJiLi41OTA1ZjE4NzMwNjhkODU2YmEzNDM5NDQ1ZGI3ZGQ5NzkyOTQwMzE4IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDUgKzEsMjAgQEAKIDIwMTctMDgtMzEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgogCisgICAgICAgIFtGZXRjaCBBUEldIEFkZCBzdXBwb3J0IGZvciBjb25zdW1pbmcgYSBSZXF1
ZXN0IFJlYWRhYmxlU3RyZWFtIGJvZHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3NjE4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZGlzdHVyYmVk
LTEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFt
LWRpc3R1cmJlZC0yLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3dwdC9mZXRjaC9yZXF1
ZXN0LXN0cmVhbS1kaXN0dXJiZWQtMy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC93cHQv
ZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZW1wdHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1lbXB0eS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1lcnJvci1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWVycm9yLmh0bWw6
IEFkZGVkLgorCisyMDE3LTA4LTMxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
KwogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgUmVxdWVzdCBib2R5IHN0cmVhbSBjbG9uaW5nCiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYxNDgKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZGlz
dHVyYmVkLTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVz
dC1zdHJlYW0tZGlzdHVyYmVkLTEtZXhwZWN0ZWQudHh0CmluZGV4IGI4NTQ2YmVhMWQ3ODBhYjIy
NDMxYWNjOGJmMmU4ZTM3MmYyYjIzNmMuLmE3ZjdiMjQyZTFiNWZiNzRiODNhMzYwNTZjYTM2ODQy
ZDUzZjE5MzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qt
c3RyZWFtLWRpc3R1cmJlZC0xLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dw
dC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1kaXN0dXJiZWQtMS1leHBlY3RlZC50eHQKQEAgLTEsNiAr
MSw2IEBACiAKIFBBU1MgR2V0dGluZyBibG9iIGFmdGVyIGdldHRpbmcgdGhlIFJlcXVlc3QgYm9k
eSAtIG5vdCBkaXN0dXJiZWQsIG5vdCBsb2NrZWQgCi1GQUlMIEdldHRpbmcgdGV4dCBhZnRlciBn
ZXR0aW5nIHRoZSBSZXF1ZXN0IGJvZHkgLSBub3QgZGlzdHVyYmVkLCBub3QgbG9ja2VkIGFzc2Vy
dF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBHZXR0aW5nIGpzb24gYWZ0ZXIg
Z2V0dGluZyB0aGUgUmVxdWVzdCBib2R5IC0gbm90IGRpc3R1cmJlZCwgbm90IGxvY2tlZCBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJTeW50YXhF
cnJvcjogVGhlIHN0cmluZyBkaWQgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBwYXR0ZXJuLiIKLUZB
SUwgR2V0dGluZyBhcnJheUJ1ZmZlciBhZnRlciBnZXR0aW5nIHRoZSBSZXF1ZXN0IGJvZHkgLSBu
b3QgZGlzdHVyYmVkLCBub3QgbG9ja2VkIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBm
YWxzZQorUEFTUyBHZXR0aW5nIHRleHQgYWZ0ZXIgZ2V0dGluZyB0aGUgUmVxdWVzdCBib2R5IC0g
bm90IGRpc3R1cmJlZCwgbm90IGxvY2tlZCAKK1BBU1MgR2V0dGluZyBqc29uIGFmdGVyIGdldHRp
bmcgdGhlIFJlcXVlc3QgYm9keSAtIG5vdCBkaXN0dXJiZWQsIG5vdCBsb2NrZWQgCitQQVNTIEdl
dHRpbmcgYXJyYXlCdWZmZXIgYWZ0ZXIgZ2V0dGluZyB0aGUgUmVxdWVzdCBib2R5IC0gbm90IGRp
c3R1cmJlZCwgbm90IGxvY2tlZCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQv
ZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZGlzdHVyYmVkLTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZGlzdHVyYmVkLTItZXhwZWN0ZWQudHh0
CmluZGV4IGYyYjliMmU1ZmNlOTM1NmQxNTM2MmIyYTFlYWE2NTEwOGIwNjYzNjcuLmRlY2JmZDRj
OTgxZDBhN2MyNDM2MTAxMzFmMGJkOWVkMGQ3YTI2NjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWRpc3R1cmJlZC0yLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1kaXN0dXJiZWQt
Mi1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw2IEBACiAKLUZBSUwgR2V0dGluZyBibG9iIGFmdGVy
IGdldHRpbmcgYSBsb2NrZWQgUmVxdWVzdCBib2R5IGFzc2VydF91bnJlYWNoZWQ6IFNob3VsZCBo
YXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCi1GQUlMIEdl
dHRpbmcgdGV4dCBhZnRlciBnZXR0aW5nIGEgbG9ja2VkIFJlcXVlc3QgYm9keSBhc3NlcnRfdW5y
ZWFjaGVkOiBTaG91bGQgaGF2ZSByZWplY3RlZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFi
bGUgY29kZQotRkFJTCBHZXR0aW5nIGpzb24gYWZ0ZXIgZ2V0dGluZyBhIGxvY2tlZCBSZXF1ZXN0
IGJvZHkgYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0
aHJldyBvYmplY3QgIlN5bnRheEVycm9yOiBUaGUgc3RyaW5nIGRpZCBub3QgbWF0Y2ggdGhlIGV4
cGVjdGVkIHBhdHRlcm4uIiAoIlN5bnRheEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJy
b3IiICgiVHlwZUVycm9yIikKLUZBSUwgR2V0dGluZyBhcnJheUJ1ZmZlciBhZnRlciBnZXR0aW5n
IGEgbG9ja2VkIFJlcXVlc3QgYm9keSBhc3NlcnRfdW5yZWFjaGVkOiBTaG91bGQgaGF2ZSByZWpl
Y3RlZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQorUEFTUyBHZXR0aW5nIGJs
b2IgYWZ0ZXIgZ2V0dGluZyBhIGxvY2tlZCBSZXF1ZXN0IGJvZHkgCitQQVNTIEdldHRpbmcgdGV4
dCBhZnRlciBnZXR0aW5nIGEgbG9ja2VkIFJlcXVlc3QgYm9keSAKK1BBU1MgR2V0dGluZyBqc29u
IGFmdGVyIGdldHRpbmcgYSBsb2NrZWQgUmVxdWVzdCBib2R5IAorUEFTUyBHZXR0aW5nIGFycmF5
QnVmZmVyIGFmdGVyIGdldHRpbmcgYSBsb2NrZWQgUmVxdWVzdCBib2R5IAogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1kaXN0dXJiZWQtMy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1k
aXN0dXJiZWQtMy1leHBlY3RlZC50eHQKaW5kZXggYjkzZTNhNmZlYWQxM2E4ZmFiY2I0NzE3ZjQ0
OGU0NzBmM2U5ZGY5NC4uNTJlZDYzMGU0YjVmY2E2YzE3YzUxM2EzYjk0ZjhkNjMxZDFlMjUxNCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZGlz
dHVyYmVkLTMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3Jl
cXVlc3Qtc3RyZWFtLWRpc3R1cmJlZC0zLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDYgQEAKIAot
RkFJTCBHZXR0aW5nIGJsb2IgYWZ0ZXIgcmVhZGluZyB0aGUgUmVxdWVzdCBib2R5IGFzc2VydF91
bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNo
YWJsZSBjb2RlCi1GQUlMIEdldHRpbmcgdGV4dCBhZnRlciByZWFkaW5nIHRoZSBSZXF1ZXN0IGJv
ZHkgYXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFj
aGVkIHVucmVhY2hhYmxlIGNvZGUKLUZBSUwgR2V0dGluZyBqc29uIGFmdGVyIHJlYWRpbmcgdGhl
IFJlcXVlc3QgYm9keSBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJv
dyBlIH0iIHRocmV3IG9iamVjdCAiU3ludGF4RXJyb3I6IFRoZSBzdHJpbmcgZGlkIG5vdCBtYXRj
aCB0aGUgZXhwZWN0ZWQgcGF0dGVybi4iICgiU3ludGF4RXJyb3IiKSBleHBlY3RlZCBvYmplY3Qg
IlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQotRkFJTCBHZXR0aW5nIGFycmF5QnVmZmVyIGFmdGVy
IHJlYWRpbmcgdGhlIFJlcXVlc3QgYm9keSBhc3NlcnRfdW5yZWFjaGVkOiBTaG91bGQgaGF2ZSBy
ZWplY3RlZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQorUEFTUyBHZXR0aW5n
IGJsb2IgYWZ0ZXIgcmVhZGluZyB0aGUgUmVxdWVzdCBib2R5IAorUEFTUyBHZXR0aW5nIHRleHQg
YWZ0ZXIgcmVhZGluZyB0aGUgUmVxdWVzdCBib2R5IAorUEFTUyBHZXR0aW5nIGpzb24gYWZ0ZXIg
cmVhZGluZyB0aGUgUmVxdWVzdCBib2R5IAorUEFTUyBHZXR0aW5nIGFycmF5QnVmZmVyIGFmdGVy
IHJlYWRpbmcgdGhlIFJlcXVlc3QgYm9keSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZW1wdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZW1wdHktZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmU4YjFlY2EzMTYzZTM2YmI4MzBlNTNkZjU1ZDQwN2Y2MDM3NTVkOWMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1lbXB0
eS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisKK1BBU1MgRW1wdHkgc3RyZWFtIGJvZHkg
YXMgdGV4dCAKK1BBU1MgRW1wdHkgc3RyZWFtIGJvZHkgYXMgYXJyYXlCdWZmZXIgCitQQVNTIEVt
cHR5IHN0cmVhbSBib2R5IGFzIEpTT04gCitQQVNTIEVtcHR5IHN0cmVhbSBib2R5IGFzIGJsb2Ig
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFt
LWVtcHR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1l
bXB0eS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwMmY5ODQ0NTcyYTk1YzJkMTczZThjMjA0MDgwZmYxZTkx
MDY4MTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1
ZXN0LXN0cmVhbS1lbXB0eS5odG1sCkBAIC0wLDAgKzEsNTAgQEAKKzwhZG9jdHlwZSBodG1sPgor
PGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+
Q29uc3VtaW5nIFJlcXVlc3QgYm9keSB3aXRoIG5vbiBCdWZmZXJTb3VyY2UgUmVhZGFibGVTdHJl
YW0gY2h1bmtzPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxzY3JpcHQ+Citm
dW5jdGlvbiBjcmVhdGVSZXF1ZXN0V2l0aEVtcHR5UmVhZGFibGVTdHJlYW0oKQoreworICAgIHZh
ciBzdHJlYW0gPSBuZXcgUmVhZGFibGVTdHJlYW0oe3N0YXJ0OiBjb250cm9sbGVyID0+IHsKKyAg
ICAgICAgY29udHJvbGxlci5jbG9zZSgpOworICAgIH19KTsKKyAgICByZXR1cm4gbmV3IFJlcXVl
c3QoIiIsIHtib2R5OiBzdHJlYW0sIG1ldGhvZDogIlBPU1QifSk7Cit9CisKK3Byb21pc2VfdGVz
dCh0ZXN0ID0+IHsKKyAgICByZXR1cm4gY3JlYXRlUmVxdWVzdFdpdGhFbXB0eVJlYWRhYmxlU3Ry
ZWFtKCkudGV4dCgpLnRoZW4odGV4dCA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHModGV4dCwg
IiIpOworICAgIH0pOworfSwgIkVtcHR5IHN0cmVhbSBib2R5IGFzIHRleHQiKTsKKworcHJvbWlz
ZV90ZXN0KHRlc3QgPT4geworICAgIHJldHVybiBjcmVhdGVSZXF1ZXN0V2l0aEVtcHR5UmVhZGFi
bGVTdHJlYW0oKS5hcnJheUJ1ZmZlcigpLnRoZW4oYnVmZmVyID0+IHsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhidWZmZXIuYnl0ZUxlbmd0aCwgMCwgIlJlc29sdmVkIHZhbHVlIHNob3VsZCBiZSBl
bXB0eSIpOworICAgIH0pOworfSwgIkVtcHR5IHN0cmVhbSBib2R5IGFzIGFycmF5QnVmZmVyIik7
CisKK3Byb21pc2VfdGVzdCh0ZXN0ID0+IHsKKyAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHRl
c3QsICJTeW50YXhFcnJvciIsIGNyZWF0ZVJlcXVlc3RXaXRoRW1wdHlSZWFkYWJsZVN0cmVhbSgp
Lmpzb24oKSk7Cit9LCAiRW1wdHkgc3RyZWFtIGJvZHkgYXMgSlNPTiIpOworCitwcm9taXNlX3Rl
c3QodGVzdCA9PiB7CisgICAgcmV0dXJuIGNyZWF0ZVJlcXVlc3RXaXRoRW1wdHlSZWFkYWJsZVN0
cmVhbSgpLmJsb2IoKS50aGVuKGZ1bmN0aW9uKGJvZHlBc0Jsb2IpIHsKKyAgICAgICAgdmFyIHBy
b21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAg
ICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOworICAgICAgICAgICAgcmVhZGVyLm9u
bG9hZCA9ICgpID0+IHsgcmVzb2x2ZShyZWFkZXIucmVzdWx0KSB9OworICAgICAgICAgICAgcmVh
ZGVyLm9uZXJyb3IgPSAoKSA9PiB7IHJlamVjdCgiQmxvYidzIHJlYWRlciBmYWlsZWQiKTsgfTsK
KyAgICAgICAgICAgIHJlYWRlci5yZWFkQXNUZXh0KGJvZHlBc0Jsb2IpOworICAgICAgICB9KTsK
KyAgICAgICAgcmV0dXJuIHByb21pc2UudGhlbihmdW5jdGlvbihib2R5KSB7CisgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGJvZHksICIiLCAiUmVzb2x2ZWQgdmFsdWUgc2hvdWxkIGJlIGVtcHR5
Iik7CisgICAgICAgIH0pOworICB9KTsKK30sICJFbXB0eSBzdHJlYW0gYm9keSBhcyBibG9iIik7
CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWVycm9yLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWVycm9yLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jNTRmYjQ5ZTJkMGUzNjUwYzk2MTIwNzUxNmFjZTk3NDE4ZDkyMzg0Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJl
YW0tZXJyb3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFJlcXVlc3QgYm9k
eSBzaG91bGQgb25seSBjb250YWluIEJ1ZmZlclNvdXJjZSBjaHVua3MgCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWVycm9yLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1lcnJvci5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmUxOWU0OGRhYTgyZWEyMTBmYzAzYzVmMTNiMDYyNjM3OWUxYzhlMGYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1lcnJv
ci5odG1sCkBAIC0wLDAgKzEsMjEgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgIDxoZWFk
PgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+Q29uc3VtaW5nIFJlcXVl
c3QgYm9keSB3aXRoIG5vbiBCdWZmZXJTb3VyY2UgUmVhZGFibGVTdHJlYW0gY2h1bmtzPC90aXRs
ZT4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxzY3JpcHQ+Citwcm9taXNlX3Rlc3QodGVz
dCA9PiB7CisgICAgdmFyIHN0cmVhbSA9IG5ldyBSZWFkYWJsZVN0cmVhbSh7c3RhcnQ6IGNvbnRy
b2xsZXIgPT4geworICAgICAgICBjb250cm9sbGVyLmVucXVldWUoIlRoaXMgaXMgbm90IGEgYnVm
ZmVyIik7CisgICAgICAgIGNvbnRyb2xsZXIuY2xvc2UoKTsKKyAgICB9fSk7CisgICAgdmFyIHJl
cXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwge2JvZHk6IHN0cmVhbSwgbWV0aG9kOiAiUE9TVCJ9KTsK
KyAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHRlc3QsIG5ldyBUeXBlRXJyb3IsIHJlcXVlc3Qu
dGV4dCgpKTsKK30sICJSZXF1ZXN0IGJvZHkgc2hvdWxkIG9ubHkgY29udGFpbiBCdWZmZXJTb3Vy
Y2UgY2h1bmtzIik7CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319611</attachid>
            <date>2017-09-01 10:28:15 -0700</date>
            <delta_ts>2017-09-01 11:28:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176182-20170901102815.patch</filename>
            <type>text/plain</type>
            <size>46407</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDAzZjFmZGIwYmUyMGRl
OTZkNjA3YWRiMDg5MjM0OTAwNGU0NzA1My4uMzZhMDJhYmZkMGJiZjgyMGQxZjAyYzMyNTY2OGEw
MDk1Mjk3NmMxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE3LTA5LTAxICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBbRmV0Y2ggQVBJXSBBZGQg
c3VwcG9ydCBmb3IgY29uc3VtaW5nIGEgUmVxdWVzdCBSZWFkYWJsZVN0cmVhbSBib2R5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYxODIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0czogaHR0cC93
cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZW1wdHkuaHRtbAorICAgICAgICAgICAgICAgaHR0cC93
cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZXJyb3IuaHRtbAorCisgICAgICAgIEFkZGluZyBhIFJl
YWRhYmxlU3RyZWFtU2luayB3aGljaCBhbGxvd3MgdG8gcGlwZSBhbGwgUmVhZGFibGVTdHJlYW0g
ZGF0YSBiYWNrIHRvIEMrKyBjb2RlLgorICAgICAgICBUaGlzIHNpbmsgb25seSB0YWtlcyBCdWZm
ZXJTb3VyY2UgYXMgdGhlIG9ubHkgdXNlciBpcyBGZXRjaCB3aGljaCBoYXMgdGhpcyByZXN0cmlj
dGlvbi4KKyAgICAgICAgVGhpcyBzaW5rIGlzIHRpZWQgdG8gdGhlIHJlYWRhYmxlU3RyZWFtUGlw
ZVRvIGJ1aWx0aW4gaW50ZXJuYWwgZnVuY3Rpb24gdGhhdCByZWFkcyBhbGwgZGF0YSBmcm9tIHRo
ZSBSZWFkYWJsZVN0cmVhbQorICAgICAgICBhbmQgc2VuZCBpdCB0byB0aGUgc2luay4KKworICAg
ICAgICBBZGRpbmcgYSBSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luayBzcGVjaWFsaXph
dGlvbiB0byBnZXQgdGhlIGRhdGEgYXMgYSBTaGFyZWRCdWZmZXIuCisKKyAgICAgICAgVXNlIHRo
YXQgY2xhc3MgaW4gRmV0Y2hCb2R5Q29uc3VtZXIgdG8gZ2V0IHRoZSBkYXRhIGJhY2sgZnJvbSB0
aGUgUmVhZGFibGVTdHJlYW0gYW5kIHRyYW5zZm9ybSBpdCBhY2NvcmRpbmcKKyAgICAgICAgdGhl
IGRlc2lyZWQgYm9keSB0eXBlICh0ZXh0LCBKU09OLCBBcnJheUJ1ZmZlcikuCisKKyAgICAgICAg
KiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAg
ICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZldGNo
Qm9keTo6Y29uc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6OmxvYWRpbmdTdWNj
ZWVkZWQpOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6cmVzb2x2ZVdpdGhUeXBlQW5kRGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpGZXRjaEJvZHlDb25zdW1lcjo6Y2xlYW4pOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hC
b2R5Q29uc3VtZXI6OnJlc29sdmVXaXRoRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJv
ZHlDb25zdW1lcjo6cmVzb2x2ZSk6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlD
b25zdW1lci5oOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGZXRjaFJlc3BvbnNlOjpmaW5pc2hDb25zdW1pbmdTdHJlYW0pOgor
ICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUludGVybmFscy5qczoKKyAg
ICAgICAgKHJlYWRhYmxlU3RyZWFtUGlwZVRvKToKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMv
UmVhZGFibGVTdHJlYW1TaW5rLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJs
ZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luazo6UmVhZGFibGVTdHJlYW1Ub1NoYXJlZEJ1ZmZlclNp
bmspOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW1Ub1NoYXJlZEJ1ZmZlclNpbms6
OnBpcGVGcm9tKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlU3RyZWFtVG9TaGFyZWRCdWZm
ZXJTaW5rOjplbnF1ZXVlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlU3RyZWFtVG9TaGFy
ZWRCdWZmZXJTaW5rOjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZVN0cmVhbVRv
U2hhcmVkQnVmZmVyU2luazo6ZXJyb3IpOgorICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFk
YWJsZVN0cmVhbVNpbmsuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtU2luay5pZGw6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZVN0cmVhbTo6cGlwZVRvKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5oOgorCiAyMDE3LTA5LTAxICBQZXIgQXJuZSBWb2xs
YW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXSBDb21waWxlIGVycm9yLCAn
Q2FjaGUnIGlzIG5vdCBkZWNsYXJlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZDI0Nzg2M2I1
Y2MyMmM0YmUyNzFhZWZkMmRhN2FkMjQzOTMxNzk3ZS4uNThiNGY5YjQ3MDQzNDUwOTM1OGY3YmQ4
OGJlMjY2YWQzYmY2YTRmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTMyNSw2ICszMjUsNyBA
QCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFk
YWJsZVN0cmVhbUJZT0JSZXF1ZXN0LmlkbAogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0
cmVhbURlZmF1bHRDb250cm9sbGVyLmlkbAogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0
cmVhbURlZmF1bHRSZWFkZXIuaWRsCisgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFt
U2luay5pZGwKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3VyY2UuaWRsCiAg
ICAgTW9kdWxlcy9zdHJlYW1zL1dyaXRhYmxlU3RyZWFtLmlkbAogCkBAIC0xMDcwLDYgKzEwNzEs
OCBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhl
c2lzVXR0ZXJhbmNlLmNwcAogICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc1ZvaWNl
LmNwcAogCisgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5jcHAKKwogICAg
IE1vZHVsZXMvd2ViYXVkaW8vQW5hbHlzZXJOb2RlLmNwcAogICAgIE1vZHVsZXMvd2ViYXVkaW8v
QXN5bmNBdWRpb0RlY29kZXIuY3BwCiAgICAgTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Jhc2ljSW5z
cGVjdG9yTm9kZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDcyMjRmZGVk
NWUxMGU2NTAzMTcxMjg5MjQwZjJhYjUyMmRkMzk4MjkuLjg4OGQzNWI1ZjM0MzIwNjhhMjQyYWMw
NTNlZjQ3YzcyYTYzNjVkNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMjc2
LDYgKzI3Niw3IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
c3RyZWFtcy9SZWFkYWJsZVN0cmVhbUJZT0JSZXF1ZXN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5pZGwgXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5p
ZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNl
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvV3JpdGFibGVTdHJlYW0uaWRs
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQW5hbHlzZXJOb2RlLmlkbCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5jcHAKaW5kZXggNDMzZTk0YjVl
N2ZiMzY4NTlhN2UzMmFlYjkwOTVmNWRmNjEwZDAxMC4uMzQwNDk2NzE0NTUxZmM1OTVhNmM4Yjhi
ZWUyYWE3NmMwNTg1MmMwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRj
aC9GZXRjaEJvZHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hC
b2R5LmNwcApAQCAtMTM4LDcgKzEzOCw3IEBAIHZvaWQgRmV0Y2hCb2R5Ojpjb25zdW1lKEZldGNo
Qm9keU93bmVyJiBvd25lciwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgbV9jb25zdW1lci5yZXNvbHZlKFdURk1vdmUocHJvbWlz
ZSkpOworICAgIG1fY29uc3VtZXIucmVzb2x2ZShXVEZNb3ZlKHByb21pc2UpLCBtX3JlYWRhYmxl
U3RyZWFtLmdldCgpKTsKIH0KIAogI2lmIEVOQUJMRShTVFJFQU1TX0FQSSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5jcHAKaW5kZXggOWQw
MTg0OGNlNGE3NjYyNGNmZmNjZTgwY2Q4N2RlMTE3MDUxOGJhMi4uYjllZTFlMTM2YjU0YzU4YjM3
ZmUzZTk5YjFhZGI2YzgzNTUxNWI4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5jcHAKQEAgLTU2LDI5ICs1Niw2MCBAQCBzdGF0aWMg
U3RyaW5nIHRleHRGcm9tVVRGOChjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBs
ZW5ndGgpCiAgICAgcmV0dXJuIGRlY29kZXItPmRlY29kZUFuZEZsdXNoKHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgY2hhcio+KGRhdGEpLCBsZW5ndGgpOwogfQogCi12b2lkIEZldGNoQm9keUNvbnN1
bWVyOjpyZXNvbHZlV2l0aERhdGEoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlLCBjb25z
dCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCitzdGF0aWMgdm9pZCByZXNv
bHZlV2l0aFR5cGVBbmREYXRhKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSwgRmV0Y2hC
b2R5Q29uc3VtZXI6OlR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgY29uc3Qg
dW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKQogewotICAgIHN3aXRjaCAobV90
eXBlKSB7Ci0gICAgY2FzZSBUeXBlOjpBcnJheUJ1ZmZlcjoKKyAgICBzd2l0Y2ggKHR5cGUpIHsK
KyAgICBjYXNlIEZldGNoQm9keUNvbnN1bWVyOjpUeXBlOjpBcnJheUJ1ZmZlcjoKICAgICAgICAg
ZnVsZmlsbFByb21pc2VXaXRoQXJyYXlCdWZmZXIoV1RGTW92ZShwcm9taXNlKSwgZGF0YSwgbGVu
Z3RoKTsKICAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgVHlwZTo6QmxvYjoKLSAgICAgICAgcHJv
bWlzZS0+cmVzb2x2ZVdpdGhOZXdseUNyZWF0ZWQ8SURMSW50ZXJmYWNlPEJsb2I+PihibG9iRnJv
bURhdGEoZGF0YSwgbGVuZ3RoLCBtX2NvbnRlbnRUeXBlKS5nZXQoKSk7CisgICAgY2FzZSBGZXRj
aEJvZHlDb25zdW1lcjo6VHlwZTo6QmxvYjoKKyAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZVdpdGhO
ZXdseUNyZWF0ZWQ8SURMSW50ZXJmYWNlPEJsb2I+PihibG9iRnJvbURhdGEoZGF0YSwgbGVuZ3Ro
LCBjb250ZW50VHlwZSkuZ2V0KCkpOwogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBUeXBlOjpK
U09OOgorICAgIGNhc2UgRmV0Y2hCb2R5Q29uc3VtZXI6OlR5cGU6OkpTT046CiAgICAgICAgIGZ1
bGZpbGxQcm9taXNlV2l0aEpTT04oV1RGTW92ZShwcm9taXNlKSwgdGV4dEZyb21VVEY4KGRhdGEs
IGxlbmd0aCkpOwogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBUeXBlOjpUZXh0OgorICAgIGNh
c2UgRmV0Y2hCb2R5Q29uc3VtZXI6OlR5cGU6OlRleHQ6CiAgICAgICAgIHByb21pc2UtPnJlc29s
dmU8SURMRE9NU3RyaW5nPih0ZXh0RnJvbVVURjgoZGF0YSwgbGVuZ3RoKSk7CiAgICAgICAgIHJl
dHVybjsKLSAgICBjYXNlIFR5cGU6Ok5vbmU6CisgICAgY2FzZSBGZXRjaEJvZHlDb25zdW1lcjo6
VHlwZTo6Tm9uZToKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiB9CiAKLXZvaWQgRmV0Y2hCb2R5Q29uc3VtZXI6OnJlc29sdmUoUmVmPERlZmVy
cmVkUHJvbWlzZT4mJiBwcm9taXNlKQordm9pZCBGZXRjaEJvZHlDb25zdW1lcjo6Y2xlYW4oKQor
eworICAgIG1fYnVmZmVyID0gbnVsbHB0cjsKKyAgICBtX2NvbnN1bWVQcm9taXNlID0gbnVsbHB0
cjsKKyAgICBpZiAobV9zaW5rKSB7CisgICAgICAgIG1fc2luay0+Y2xlYXJDYWxsYmFjaygpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorfQorCit2b2lkIEZldGNoQm9keUNvbnN1bWVyOjpyZXNv
bHZlV2l0aERhdGEoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlLCBjb25zdCB1bnNpZ25l
ZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgcmVzb2x2ZVdpdGhUeXBlQW5k
RGF0YShXVEZNb3ZlKHByb21pc2UpLCBtX3R5cGUsIG1fY29udGVudFR5cGUsIGRhdGEsIGxlbmd0
aCk7Cit9CisKK3ZvaWQgRmV0Y2hCb2R5Q29uc3VtZXI6OnJlc29sdmUoUmVmPERlZmVycmVkUHJv
bWlzZT4mJiBwcm9taXNlLCBSZWFkYWJsZVN0cmVhbSogc3RyZWFtKQogeworICAgIGlmIChzdHJl
YW0pIHsKKyAgICAgICAgQVNTRVJUKCFtX3NpbmspOworICAgICAgICBtX3NpbmsgPSBSZWFkYWJs
ZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luazo6Y3JlYXRlKFtwcm9taXNlID0gV1RGTW92ZShwcm9t
aXNlKSwgdHlwZSA9IG1fdHlwZSwgY29udGVudFR5cGUgPSBtX2NvbnRlbnRUeXBlXShFeGNlcHRp
b25PcjxSZWZQdHI8U2hhcmVkQnVmZmVyPj4mJiByZXN1bHQpIG11dGFibGUgeworICAgICAgICAg
ICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgeworICAgICAgICAgICAgICAgIHByb21pc2Ut
PnJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKKyAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGF1dG8qIGRhdGEgPSByZXN1bHQucmV0
dXJuVmFsdWUoKSAmJiByZXN1bHQucmV0dXJuVmFsdWUoKS0+ZGF0YSgpID8gcmVpbnRlcnByZXRf
Y2FzdDxjb25zdCB1bnNpZ25lZCBjaGFyKj4ocmVzdWx0LnJldHVyblZhbHVlKCktPmRhdGEoKSkg
OiBudWxscHRyOworICAgICAgICAgICAgYXV0byBzaXplID0gZGF0YSA/IHJlc3VsdC5yZXR1cm5W
YWx1ZSgpLT5zaXplKCkgOiAwOworICAgICAgICAgICAgcmVzb2x2ZVdpdGhUeXBlQW5kRGF0YShX
VEZNb3ZlKHByb21pc2UpLCB0eXBlLCBjb250ZW50VHlwZSwgZGF0YSwgc2l6ZSk7CisgICAgICAg
IH0pOworICAgICAgICBtX3NpbmstPnBpcGVGcm9tKCpzdHJlYW0pOworICAgICAgICByZXR1cm47
CisgICAgfQorCiAgICAgQVNTRVJUKG1fdHlwZSAhPSBUeXBlOjpOb25lKTsKICAgICBzd2l0Y2gg
KG1fdHlwZSkgewogICAgIGNhc2UgVHlwZTo6QXJyYXlCdWZmZXI6CkBAIC05OSwxOCArMTMwLDIy
IEBAIHZvaWQgRmV0Y2hCb2R5Q29uc3VtZXI6OnJlc29sdmUoUmVmPERlZmVycmVkUHJvbWlzZT4m
JiBwcm9taXNlKQogICAgIH0KIH0KIAotdm9pZCBGZXRjaEJvZHlDb25zdW1lcjo6YXBwZW5kKGNv
bnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKK3ZvaWQgRmV0Y2hCb2R5Q29uc3VtZXI6
OmFwcGVuZChjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBzaXplKQogeworICAgIGlmIChtX3Nv
dXJjZSkgeworICAgICAgICBtX3NvdXJjZS0+ZW5xdWV1ZShBcnJheUJ1ZmZlcjo6dHJ5Q3JlYXRl
KGRhdGEsIHNpemUpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KICAgICBpZiAoIW1fYnVmZmVy
KSB7Ci0gICAgICAgIG1fYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YSwgbGVuZ3Ro
KTsKKyAgICAgICAgbV9idWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhLCBzaXplKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBtX2J1ZmZlci0+YXBwZW5kKGRhdGEsIGxlbmd0
aCk7CisgICAgbV9idWZmZXItPmFwcGVuZChkYXRhLCBzaXplKTsKIH0KIAotdm9pZCBGZXRjaEJv
ZHlDb25zdW1lcjo6YXBwZW5kKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxl
bmd0aCkKK3ZvaWQgRmV0Y2hCb2R5Q29uc3VtZXI6OmFwcGVuZChjb25zdCB1bnNpZ25lZCBjaGFy
KiBkYXRhLCB1bnNpZ25lZCBzaXplKQogewotICAgIGFwcGVuZChyZWludGVycHJldF9jYXN0PGNv
bnN0IGNoYXIqPihkYXRhKSwgbGVuZ3RoKTsKKyAgICBhcHBlbmQocmVpbnRlcnByZXRfY2FzdDxj
b25zdCBjaGFyKj4oZGF0YSksIHNpemUpOwogfQogCiBSZWZQdHI8U2hhcmVkQnVmZmVyPiBGZXRj
aEJvZHlDb25zdW1lcjo6dGFrZURhdGEoKQpAQCAtMTU0LDI0ICsxODksMzUgQEAgdm9pZCBGZXRj
aEJvZHlDb25zdW1lcjo6c2V0Q29uc3VtZVByb21pc2UoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBw
cm9taXNlKQogICAgIG1fY29uc3VtZVByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpOwogfQogCit2
b2lkIEZldGNoQm9keUNvbnN1bWVyOjpzZXRTb3VyY2UoUmVmPEZldGNoQm9keVNvdXJjZT4mJiBz
b3VyY2UpCit7CisgICAgbV9zb3VyY2UgPSBXVEZNb3ZlKHNvdXJjZSk7CisgICAgaWYgKG1fYnVm
ZmVyKSB7CisgICAgICAgIG1fc291cmNlLT5lbnF1ZXVlKG1fYnVmZmVyLT50cnlDcmVhdGVBcnJh
eUJ1ZmZlcigpKTsKKyAgICAgICAgbV9idWZmZXIgPSBudWxscHRyOworICAgIH0KK30KKwogdm9p
ZCBGZXRjaEJvZHlDb25zdW1lcjo6bG9hZGluZ0ZhaWxlZCgpCiB7CiAgICAgaWYgKG1fY29uc3Vt
ZVByb21pc2UpIHsKICAgICAgICAgbV9jb25zdW1lUHJvbWlzZS0+cmVqZWN0KCk7CiAgICAgICAg
IG1fY29uc3VtZVByb21pc2UgPSBudWxscHRyOwogICAgIH0KKyAgICBpZiAobV9zb3VyY2UpIHsK
KyAgICAgICAgbV9zb3VyY2UtPmVycm9yKEFTQ0lJTGl0ZXJhbCgiTG9hZGluZyBmYWlsZWQiKSk7
CisgICAgICAgIG1fc291cmNlID0gbnVsbHB0cjsKKyAgICB9CiB9CiAKIHZvaWQgRmV0Y2hCb2R5
Q29uc3VtZXI6OmxvYWRpbmdTdWNjZWVkZWQoKQogewogICAgIGlmIChtX2NvbnN1bWVQcm9taXNl
KQotICAgICAgICByZXNvbHZlKG1fY29uc3VtZVByb21pc2UucmVsZWFzZU5vbk51bGwoKSk7Ci19
Ci0KLXZvaWQgRmV0Y2hCb2R5Q29uc3VtZXI6OmNsZWFuKCkKLXsKLSAgICBtX2J1ZmZlciA9IG51
bGxwdHI7Ci0gICAgbV9jb25zdW1lUHJvbWlzZSA9IG51bGxwdHI7CisgICAgICAgIHJlc29sdmUo
bV9jb25zdW1lUHJvbWlzZS5yZWxlYXNlTm9uTnVsbCgpLCBudWxscHRyKTsKKyAgICBpZiAobV9z
b3VyY2UpIHsKKyAgICAgICAgbV9zb3VyY2UtPmNsb3NlKCk7CisgICAgICAgIG1fc291cmNlID0g
bnVsbHB0cjsKKyAgICB9CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIuaAppbmRleCAxYjY2YTNk
OThlZDU3ZmQwOTYxMjJlYzdjNDg1ZmZjMzg5ZDIxNTM4Li5kZmQ4ZmIxY2JmNGZjYmVkNzY2M2U5
ODM2OWQwYzVlYTI0ZmM5ZjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zl
dGNoL0ZldGNoQm9keUNvbnN1bWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRj
aC9GZXRjaEJvZHlDb25zdW1lci5oCkBAIC0yOCwxMiArMjgsMTYgQEAKIAogI3ByYWdtYSBvbmNl
CiAKKyNpbmNsdWRlICJGZXRjaEJvZHlTb3VyY2UuaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VE
ZWZlcnJlZC5oIgorI2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFtU2luay5oIgogI2luY2x1ZGUgIlNo
YXJlZEJ1ZmZlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEJsb2I7CitjbGFz
cyBGZXRjaEJvZHlTb3VyY2U7CitjbGFzcyBSZWFkYWJsZVN0cmVhbTsKIAogY2xhc3MgRmV0Y2hC
b2R5Q29uc3VtZXIgewogcHVibGljOgpAQCAtNTcsNyArNjEsNyBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIGNsZWFuKCk7CiAKLSAgICB2b2lkIHJlc29sdmUoUmVmPERlZmVycmVkUHJvbWlzZT4mJik7
CisgICAgdm9pZCByZXNvbHZlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYsIFJlYWRhYmxlU3RyZWFt
Kik7CiAgICAgdm9pZCByZXNvbHZlV2l0aERhdGEoUmVmPERlZmVycmVkUHJvbWlzZT4mJiwgY29u
c3QgdW5zaWduZWQgY2hhciosIHVuc2lnbmVkKTsKIAogICAgIGJvb2wgaGFzRGF0YSgpIGNvbnN0
IHsgcmV0dXJuICEhbV9idWZmZXI7IH0KQEAgLTY2LDEyICs3MCwxNSBAQCBwdWJsaWM6CiAgICAg
dm9pZCBsb2FkaW5nU3VjY2VlZGVkKCk7CiAKICAgICB2b2lkIHNldENvbnN1bWVQcm9taXNlKFJl
ZjxEZWZlcnJlZFByb21pc2U+JiYpOworICAgIHZvaWQgc2V0U291cmNlKFJlZjxGZXRjaEJvZHlT
b3VyY2U+JiYpOwogCiBwcml2YXRlOgogICAgIFR5cGUgbV90eXBlOwogICAgIFN0cmluZyBtX2Nv
bnRlbnRUeXBlOwogICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IG1fYnVmZmVyOwogICAgIFJlZlB0
cjxEZWZlcnJlZFByb21pc2U+IG1fY29uc3VtZVByb21pc2U7CisgICAgUmVmUHRyPFJlYWRhYmxl
U3RyZWFtVG9TaGFyZWRCdWZmZXJTaW5rPiBtX3Npbms7CisgICAgUmVmUHRyPEZldGNoQm9keVNv
dXJjZT4gbV9zb3VyY2U7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmNwcAppbmRleCBjMTkzY2UzZTE3
NmQ3MWE2Y2EyMTdkNWQ1MDJhODkzNjI3MWQxMjc5Li41MGI5YjBhYTM2OWU3YzMzZGJmNjVkMjNl
YzhmMDUxM2E4OTZjZWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNo
L0ZldGNoUmVzcG9uc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0
Y2hSZXNwb25zZS5jcHAKQEAgLTMwNSwxOSArMzA1LDE5IEBAIHZvaWQgRmV0Y2hSZXNwb25zZTo6
c3RhcnRDb25zdW1pbmdTdHJlYW0odW5zaWduZWQgdHlwZSkKIHsKICAgICBtX2lzRGlzdHVyYmVk
ID0gdHJ1ZTsKICAgICBhdXRvIGNvbnN1bWVyVHlwZSA9IHN0YXRpY19jYXN0PEZldGNoQm9keUNv
bnN1bWVyOjpUeXBlPih0eXBlKTsKLSAgICBtX2NvbnN1bWVyLnNldFR5cGUoY29uc3VtZXJUeXBl
KTsKKyAgICBib2R5KCkuY29uc3VtZXIoKS5zZXRUeXBlKGNvbnN1bWVyVHlwZSk7CiAgICAgaWYg
KGNvbnN1bWVyVHlwZSA9PSBGZXRjaEJvZHlDb25zdW1lcjo6VHlwZTo6QmxvYikKLSAgICAgICAg
bV9jb25zdW1lci5zZXRDb250ZW50VHlwZShCbG9iOjpub3JtYWxpemVkQ29udGVudFR5cGUoZXh0
cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShtX2NvbnRlbnRUeXBlKSkpOworICAgICAgICBib2R5
KCkuY29uc3VtZXIoKS5zZXRDb250ZW50VHlwZShCbG9iOjpub3JtYWxpemVkQ29udGVudFR5cGUo
ZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShtX2NvbnRlbnRUeXBlKSkpOwogfQogCiB2b2lk
IEZldGNoUmVzcG9uc2U6OmNvbnN1bWVDaHVuayhSZWY8SlNDOjpVaW50OEFycmF5PiYmIGNodW5r
KQogewotICAgIG1fY29uc3VtZXIuYXBwZW5kKGNodW5rLT5kYXRhKCksIGNodW5rLT5ieXRlTGVu
Z3RoKCkpOworICAgIGJvZHkoKS5jb25zdW1lcigpLmFwcGVuZChjaHVuay0+ZGF0YSgpLCBjaHVu
ay0+Ynl0ZUxlbmd0aCgpKTsKIH0KIAogdm9pZCBGZXRjaFJlc3BvbnNlOjpmaW5pc2hDb25zdW1p
bmdTdHJlYW0oUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewotICAgIG1fY29uc3Vt
ZXIucmVzb2x2ZShXVEZNb3ZlKHByb21pc2UpKTsKKyAgICBib2R5KCkuY29uc3VtZXIoKS5yZXNv
bHZlKFdURk1vdmUocHJvbWlzZSksIG51bGxwdHIpOwogfQogCiB2b2lkIEZldGNoUmVzcG9uc2U6
OmNvbnN1bWVCb2R5QXNTdHJlYW0oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9mZXRjaC9GZXRjaFJlc3BvbnNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0Zl
dGNoUmVzcG9uc2UuaAppbmRleCBkYzlmMTFlZDg0NzYxMzI0YjcxOGIwY2VmMDI3Y2U0MDQxZGFm
ZjhhLi5kZGY2ZDQyYTE2YTIzZjQ3Y2NjNDAzNDBlOWU3YWJiNjg5NWRjMzJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuaApAQCAtMTQ5LDggKzE0OSw2
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZEV4cG9zZUJvZHkgeyB0cnVlIH07CiAgICAg
Ly8gRklYTUU6IFJlbW92ZSB0aGF0IGZsYWcgb25jZSB3ZSBoYXZlIGZ1bGwgc3VwcG9ydCBpbiBE
T00gUmVhZGFibGVTdHJlYW0uCiAgICAgYm9vbCBtX2lzUmVhZGFibGVTdHJlYW0geyBmYWxzZSB9
OwotCi0gICAgRmV0Y2hCb2R5Q29uc3VtZXIgbV9jb25zdW1lciB7IEZldGNoQm9keUNvbnN1bWVy
OjpUeXBlOjpBcnJheUJ1ZmZlciAgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUlu
dGVybmFscy5qcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVh
bUludGVybmFscy5qcwppbmRleCBmNGU1ZGFmN2IyMTNkNDBlZWJlOGE0OWRjYjM2ZDc0OWI2N2Fl
MzcyLi41NDI3N2YzYWUwNGRhZmJkMTUyMWY5YTYyM2Y1YTA3MDMxOTY2N2ZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1JbnRlcm5hbHMu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50
ZXJuYWxzLmpzCkBAIC0xMDYsNiArMTA2LDMzIEBAIGZ1bmN0aW9uIHJlYWRhYmxlU3RyZWFtRGVm
YXVsdENvbnRyb2xsZXJFcnJvcihjb250cm9sbGVyLCBlcnJvcikKICAgICBAcmVhZGFibGVTdHJl
YW1FcnJvcihzdHJlYW0sIGVycm9yKTsKIH0KIAorZnVuY3Rpb24gcmVhZGFibGVTdHJlYW1QaXBl
VG8oc3RyZWFtLCBzaW5rKQoreworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBAYXNzZXJ0KEBpc1Jl
YWRhYmxlU3RyZWFtKHN0cmVhbSkpOworCisgICAgY29uc3QgcmVhZGVyID0gbmV3IEBSZWFkYWJs
ZVN0cmVhbURlZmF1bHRSZWFkZXIoc3RyZWFtKTsKKworICAgIHJlYWRlci5AY2xvc2VkUHJvbWlz
ZUNhcGFiaWxpdHkuQHByb21pc2UuQHRoZW4oKCkgPT4geyB9LCAoZSkgPT4geyBzaW5rLmVycm9y
KGUpOyB9KTsKKworICAgIGZ1bmN0aW9uIGRvUGlwZSgpIHsKKyAgICAgICAgQHJlYWRhYmxlU3Ry
ZWFtRGVmYXVsdFJlYWRlclJlYWQocmVhZGVyKS5AdGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAg
ICAgICAgICAgIGlmIChyZXN1bHQuZG9uZSkgeworICAgICAgICAgICAgICAgIHNpbmsuY2xvc2Uo
KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0
cnkgeworICAgICAgICAgICAgICAgIHNpbmsuZW5xdWV1ZShyZXN1bHQudmFsdWUpOworICAgICAg
ICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgICAgIHNpbmsuZXJyb3IoIlJlYWRhYmxl
U3RyZWFtIGNodW5rIGVucXVldWVpbmcgaW4gdGhlIHNpbmsgZmFpbGVkIik7CisgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZG9QaXBlKCk7CisgICAg
ICAgIH0pOworICAgIH0KKyAgICBkb1BpcGUoKTsKK30KKwogZnVuY3Rpb24gcmVhZGFibGVTdHJl
YW1UZWUoc3RyZWFtLCBzaG91bGRDbG9uZSkKIHsKICAgICAidXNlIHN0cmljdCI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1TaW5rLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNpbmsuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmZhMGVkZTNjM2NjZWI4MzM4NGM2NjhkM2Q0OGEyYjhiODI4MmY4NzEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW1TaW5rLmNwcApAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiUmVhZGFibGVTdHJlYW1TaW5rLmgiCisKKyNpbmNsdWRlICJC
dWZmZXJTb3VyY2UuaCIKKyNpbmNsdWRlICJET01FeGNlcHRpb24uaCIKKyNpbmNsdWRlICJSZWFk
YWJsZVN0cmVhbS5oIgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorCisjaWYgRU5BQkxFKFNU
UkVBTVNfQVBJKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlYWRhYmxlU3RyZWFtVG9TaGFy
ZWRCdWZmZXJTaW5rOjpSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luayhDYWxsYmFjayYm
IGNhbGxiYWNrKQorICAgIDogbV9jYWxsYmFjayB7IFdURk1vdmUoY2FsbGJhY2spIH0KK3sKK30K
Kwordm9pZCBSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luazo6cGlwZUZyb20oUmVhZGFi
bGVTdHJlYW0mIHN0cmVhbSkKK3sKKyAgICBzdHJlYW0ucGlwZVRvKCp0aGlzKTsKK30KKwordm9p
ZCBSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luazo6ZW5xdWV1ZShjb25zdCBCdWZmZXJT
b3VyY2UmIGJ1ZmZlcikKK3sKKyAgICBpZiAoIW1fZGF0YSkgeworICAgICAgICBtX2RhdGEgPSBT
aGFyZWRCdWZmZXI6OmNyZWF0ZShidWZmZXIuZGF0YSgpLCBidWZmZXIubGVuZ3RoKCkpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIG1fZGF0YS0+YXBwZW5kKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgY2hhcio+KGJ1ZmZlci5kYXRhKCkpLCBidWZmZXIubGVuZ3RoKCkpOworfQorCit2b2lk
IFJlYWRhYmxlU3RyZWFtVG9TaGFyZWRCdWZmZXJTaW5rOjpjbG9zZSgpCit7CisgICAgaWYgKGF1
dG8gY2FsbGJhY2sgPSBXVEZNb3ZlKG1fY2FsbGJhY2spKQorICAgICAgICBjYWxsYmFjayhXVEZN
b3ZlKG1fZGF0YSkpOworfQorCit2b2lkIFJlYWRhYmxlU3RyZWFtVG9TaGFyZWRCdWZmZXJTaW5r
OjplcnJvcihTdHJpbmcmJiBtZXNzYWdlKQoreworICAgIGlmIChhdXRvIGNhbGxiYWNrID0gV1RG
TW92ZShtX2NhbGxiYWNrKSkKKyAgICAgICAgY2FsbGJhY2soRXhjZXB0aW9uIHsgVHlwZUVycm9y
LCBXVEZNb3ZlKG1lc3NhZ2UpIH0pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoU1RSRUFNU19BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1TaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1TaW5rLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjFjMmFhYmVmMmQ1
NjYwMzE4ZWJiNzkwNWQxZmFlYTk1ODcyYmY1OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNpbmsuaApAQCAtMCwwICsxLDcw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShTVFJFQU1TX0FQ
SSkKKworI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCisjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+
CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBCdWZmZXJTb3VyY2U7CitjbGFzcyBSZWFkYWJsZVN0cmVhbTsKK2NsYXNzIFNoYXJlZEJ1
ZmZlcjsKKworY2xhc3MgUmVhZGFibGVTdHJlYW1TaW5rIDogcHVibGljIFJlZkNvdW50ZWQ8UmVh
ZGFibGVTdHJlYW1TaW5rPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+UmVhZGFibGVTdHJlYW1T
aW5rKCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCB2b2lkIGVucXVldWUoY29uc3QgQnVmZmVy
U291cmNlJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgZXJyb3IoU3RyaW5nJiYpID0gMDsKK307CisKK2NsYXNzIFJlYWRhYmxlU3RyZWFtVG9T
aGFyZWRCdWZmZXJTaW5rIGZpbmFsIDogcHVibGljIFJlYWRhYmxlU3RyZWFtU2luayB7CitwdWJs
aWM6CisgICAgdXNpbmcgQ2FsbGJhY2sgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoRXhjZXB0aW9uT3I8
UmVmUHRyPFNoYXJlZEJ1ZmZlcj4+JiYpPjsKKyAgICBzdGF0aWMgUmVmPFJlYWRhYmxlU3RyZWFt
VG9TaGFyZWRCdWZmZXJTaW5rPiBjcmVhdGUoQ2FsbGJhY2smJiBjYWxsYmFjaykgeyByZXR1cm4g
YWRvcHRSZWYoKm5ldyBSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luayhXVEZNb3ZlKGNh
bGxiYWNrKSkpOyB9CisgICAgdm9pZCBwaXBlRnJvbShSZWFkYWJsZVN0cmVhbSYpOworICAgIHZv
aWQgY2xlYXJDYWxsYmFjaygpIHsgbV9jYWxsYmFjayA9IHsgfTsgfQorCitwcml2YXRlOgorICAg
IFJlYWRhYmxlU3RyZWFtVG9TaGFyZWRCdWZmZXJTaW5rKENhbGxiYWNrJiYpOworCisgICAgdm9p
ZCBlbnF1ZXVlKGNvbnN0IEJ1ZmZlclNvdXJjZSYpIGZpbmFsOworICAgIHZvaWQgY2xvc2UoKSBm
aW5hbDsKKyAgICB2b2lkIGVycm9yKFN0cmluZyYmKSBmaW5hbDsKKworICAgIENhbGxiYWNrIG1f
Y2FsbGJhY2s7CisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbV9kYXRhOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNUUkVBTVNfQVBJKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1TaW5rLmlk
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43OTk5OTQ0MGM1ZTQyZjQyY2UxMzZjOTU2NzQ2MjQxN2M5MmJhYmEyCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxl
U3RyZWFtU2luay5pZGwKQEAgLTAsMCArMSwzNSBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisqLworCisKK1sKKyAgICBOb0ludGVyZmFjZU9iamVjdCwKKyAgICBD
b25kaXRpb25hbD1TVFJFQU1TX0FQSSwKKyAgICBTa2lwVlRhYmxlVmFsaWRhdGlvbgorXSBpbnRl
cmZhY2UgUmVhZGFibGVTdHJlYW1TaW5rIHsKKyAgICB2b2lkIGVucXVldWUoQnVmZmVyU291cmNl
IGNodW5rKTsKKyAgICB2b2lkIGNsb3NlKCk7CisgICAgdm9pZCBlcnJvcihET01TdHJpbmcgbWVz
c2FnZSk7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDRkYjc0MjQ0NmYwYWM4YWNjMGZkMWI4MDZmNjRlOWEwYTM4NjQ0NjYu
LjljMjIwOTgwNjk3ZmFjNjAxZjM3YTk5MDVjNjE2M2UzMDJiMjM4NGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE2NzMsNiAr
MTY3MywxMSBAQAogCQk0MTIzMDgxQjEzOEM0Mjk3MDBCQ0NGQ0EgLyogV2ViQ29yZS5mcmFtZXdv
cmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Yx
OUIxQTA4MjQ1RTVBMDAxRTlBQkMgLyogV2ViQ29yZS5mcmFtZXdvcmsgKi87IH07CiAJCTQxMjMw
OTEzMTM4QzQyRkYwMEJDQ0ZDQSAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3
b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGODIxNjI5OTAyOUY0RkI1
MDEwMDAxMzEgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrICovOyB9OwogCQk0MTI3RDUzNzBG
OEFBQjFEMDBFNDI0RjUgLyogU2NyaXB0U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEyN0Q1MzYwRjhBQUIxRDAwRTQyNEY1IC8qIFNjcmlw
dFN0YXRlLmNwcCAqLzsgfTsKKwkJNDEyOUM5OEExRjU4N0ZFQjAwOUQ3NDAzIC8qIFJlYWRhYmxl
U3RyZWFtU2luay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MTI5Qzk4NzFGNTg2NjJEMDA5RDc0MDMgLyogUmVhZGFibGVTdHJlYW1TaW5rLmNwcCAq
LzsgfTsKKwkJNDEyOUM5OTcxRjU5Qjk2MzAwOUQ3NDAzIC8qIEZldGNoQm9keVNvdXJjZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzMDE1RDYxQzdC
NTcwNDAwMDkxQzZGIC8qIEZldGNoQm9keVNvdXJjZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQxMjlDOUE5MUY1OUM1NkIwMDlENzQwMyAvKiBS
ZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MThDMzk1RjFDOEYwQUFCMDA1MUM4QTMgLyogUmVhZGFi
bGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTQxMjlDOUFCMUY1OUM1NzMwMDlENzQwMyAvKiBSZWFkYWJs
ZVN0cmVhbVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDE4QzM5NUIxQzhGMEE2MTAwNTFDOEEzIC8qIFJlYWRhYmxlU3RyZWFtU291cmNlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDEyOUM5
QUYxRjU5Q0Y1QjAwOUQ3NDAzIC8qIFJlYWRhYmxlU3RyZWFtU2luay5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEyOUM5ODAxRjU4NjFDNzAwOUQ3NDAz
IC8qIFJlYWRhYmxlU3RyZWFtU2luay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTQxMjlERjg1MUJCNUI4MDcwMDMyMkExNiAvKiBKU1JlYWRhYmxl
U3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MTI5REY4MzFCQjVCN0Y3MDAzMjJBMTYgLyogSlNSZWFkYWJs
ZVN0cmVhbVByaXZhdGVDb25zdHJ1Y3RvcnMuY3BwICovOyB9OwogCQk0MTI5REY4NjFCQjVCODBD
MDAzMjJBMTYgLyogSlNSZWFkYWJsZVN0cmVhbVByaXZhdGVDb25zdHJ1Y3RvcnMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMjlERjg0MUJCNUI3Rjcw
MDMyMkExNiAvKiBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxMzAxNUQ5MUM3QjU3
MTQwMDA5MUM2RSAvKiBGZXRjaFJlc3BvbnNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMzAxNUQ1MUM3QjU3MDQwMDA5MUM2RSAvKiBGZXRjaFJl
c3BvbnNlLmNwcCAqLzsgfTsKQEAgLTI4OTksNyArMjkwNCw3IEBACiAJCTZDNEM5NkRFMUFENDQ4
MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM0Qzk2REExQUQ0NDgz
NTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5jcHAgKi87IH07
CiAJCTZDNEM5NkRGMUFENDQ4MzUwMDM2M0Y2NCAvKiBKU1JlYWRhYmxlQnl0ZVN0cmVhbUNvbnRy
b2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZD
NEM5NkRCMUFENDQ4MzUwMDM2M0Y2NCAvKiBKU1JlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIu
aCAqLzsgfTsKIAkJNkM0Qzk2REYxQUQ0NDgzNTAwMzY1NjcyIC8qIEpTUmVhZGFibGVTdHJlYW1C
WU9CUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNkM0Qzk2REIxQUQ0NDgzNTAwMzY1NjcyIC8qIEpTUmVhZGFibGVTdHJlYW1CWU9CUmVxdWVz
dC5oICovOyB9OwotCQk2QzRDOTZERjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVh
bURlZmF1bHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA2QzRDOTZEQjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbURl
ZmF1bHRDb250cm9sbGVyLmggKi87IH07CisJCTZDNEM5NkRGMUFENDQ4MzUwMDM2NUE1MCAvKiBK
U1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZDNEM5NkRCMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1Jl
YWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2QzYzODg5NUE5NkNDRUU1MEM4Qzk0NkMgLyogQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNkM2Mzg4OTNBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJl
c291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk2QzYzODg5NkE5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA2QzYzODg5NEE5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgKi87IH07CiAJCTZDRERFOEQwMTc3MEJCMjIwMDE2RTA3
MiAvKiBSZWdpb25PdmVyc2V0U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDZDNzBBODE0MTc3MDdDNDkwMDlBNDQ2RSAvKiBSZWdpb25PdmVyc2V0
U3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtMzQwMSw3ICszNDA2LDkgQEAKIAkJN0VFNjg0NzExMkQyNkUzODAwRTc5NDE1IC8qIFJlc291
cmNlUmVzcG9uc2VDRk5ldC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3RUU2ODQ1RTEyRDI2RTM4MDBFNzk0MTUgLyogUmVzb3VyY2VSZXNwb25zZUNG
TmV0LmNwcCAqLzsgfTsKIAkJN0VFNjg0NzUxMkQyNkU3MDAwRTc5NDE1IC8qIFJlc291cmNlTG9h
ZGVyQ0ZOZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0VFNjg0NzQxMkQyNkU3MDAwRTc5NDE1IC8qIFJlc291cmNlTG9hZGVyQ0ZOZXQuY3BwICov
OyB9OwogCQk3RjRDOTZEQzFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaEJvZHkuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0Y0Qzk2RDgxQUQ0NDgz
NTAwMzY1QTUwIC8qIEpTRmV0Y2hCb2R5LmNwcCAqLzsgfTsKKwkJN0Y0Qzk2REMxQUQ0NDgzNTAw
MzY1QTUxIC8qIEpTUmVhZGFibGVTdHJlYW1TaW5rLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdGNEM5NkQ4MUFENDQ4MzUwMDM2NUE1MSAvKiBKU1Jl
YWRhYmxlU3RyZWFtU2luay5jcHAgKi87IH07CiAJCTdGNEM5NkREMUFENDQ4MzUwMDM2NUE1MCAv
KiBKU0ZldGNoQm9keS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0Y0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hCb2R5LmggKi87IH07CisJ
CTdGNEM5NkREMUFENDQ4MzUwMDM2NUE1MSAvKiBKU1JlYWRhYmxlU3RyZWFtU2luay5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0Y0Qzk2RDkxQUQ0NDgz
NTAwMzY1QTUxIC8qIEpTUmVhZGFibGVTdHJlYW1TaW5rLmggKi87IH07CiAJCTgxMDJDNTg4MTMy
NUJCMTEwMERERTY3QSAvKiBTdHJpbmdDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MTAyQzU4NzEzMjVCQjExMDBEREU2N0EgLyogU3Ry
aW5nQ2FsbGJhY2suY3BwICovOyB9OwogCQk4MUFDNTk5OTEzMTYzNkU2MDAwOUE3RTAgLyogRGF0
YVRyYW5zZmVySXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODFBQzU5OTcxMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW0uaCAqLzsg
fTsKIAkJODFBQzU5OUExMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW1MaXN0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUFDNTk5ODEz
MTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbUxpc3QuaCAqLzsgfTsKQEAgLTkzODYs
NiArOTM5Myw5IEBACiAJCTQxMTg5RUY3MUFEODIzMjgwMEI5M0Y2NCAvKiBSZWFkYWJsZUJ5dGVT
dHJlYW1Db250cm9sbGVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZWFkYWJsZUJ5dGVT
dHJlYW1Db250cm9sbGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExODlF
RjcxQUQ4MjMyODAwQjk1NjcyIC8qIFJlYWRhYmxlU3RyZWFtQllPQlJlcXVlc3QuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtQllPQlJlcXVlc3QuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MTI3RDUzNjBGOEFBQjFEMDBFNDI0RjUgLyogU2NyaXB0
U3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0U3Rh
dGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTI5Qzk4MDFGNTg2MUM3MDA5
RDc0MDMgLyogUmVhZGFibGVTdHJlYW1TaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlYWRhYmxlU3RyZWFtU2luay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0MTI5Qzk4MTFGNTg2MUM3MDA5RDc0MDMgLyogUmVhZGFibGVTdHJlYW1TaW5rLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBSZWFkYWJsZVN0cmVhbVNpbmsuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0MTI5Qzk4NzFGNTg2NjJEMDA5RDc0MDMgLyogUmVhZGFibGVTdHJl
YW1TaW5rLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWRhYmxl
U3RyZWFtU2luay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMjlERjgzMUJC
NUI3RjcwMDMyMkExNiAvKiBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JlYWRhYmxlU3RyZWFtUHJp
dmF0ZUNvbnN0cnVjdG9ycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMjlE
Rjg0MUJCNUI3RjcwMDMyMkExNiAvKiBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9y
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1JlYWRhYmxlU3RyZWFtUHJp
dmF0ZUNvbnN0cnVjdG9ycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTMwMTVE
NTFDN0I1NzA0MDAwOTFDNkUgLyogRmV0Y2hSZXNwb25zZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBGZXRjaFJlc3BvbnNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTExNTY5LDcgKzExNTc5LDkgQEAKIAkJN0VFNjg0NUUxMkQyNkUzODAwRTc5
NDE1IC8qIFJlc291cmNlUmVzcG9uc2VDRk5ldC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSZXNvdXJjZVJlc3BvbnNlQ0ZOZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3RUU2ODQ3NDEyRDI2RTcwMDBFNzk0MTUgLyogUmVzb3VyY2VMb2FkZXJD
Rk5ldC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXNvdXJjZUxv
YWRlckNGTmV0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0Y0Qzk2RDgxQUQ0
NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hCb2R5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTRmV0Y2hCb2R5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJN0Y0Qzk2RDgxQUQ0NDgzNTAwMzY1QTUxIC8qIEpTUmVhZGFibGVTdHJlYW1TaW5rLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUmVhZGFibGVTdHJlYW1TaW5r
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0Y0Qzk2RDkxQUQ0NDgzNTAwMzY1
QTUwIC8qIEpTRmV0Y2hCb2R5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
RmV0Y2hCb2R5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdGNEM5NkQ5MUFENDQ4
MzUwMDM2NUE1MSAvKiBKU1JlYWRhYmxlU3RyZWFtU2luay5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU1JlYWRhYmxlU3RyZWFtU2luay5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4MTAyQzU4NzEzMjVCQjExMDBEREU2N0EgLyogU3RyaW5nQ2FsbGJhY2suY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RyaW5nQ2FsbGJhY2suY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MUFDNTk5NzEzMTYzNkU2MDAwOUE3RTAg
LyogRGF0YVRyYW5zZmVySXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
YXRhVHJhbnNmZXJJdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgxQUM1OTk4
MTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtTGlzdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBEYXRhVHJhbnNmZXJJdGVtTGlzdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTc5OTksNiArMTgwMTEsOSBAQAogCQkJCTQxOUZBRkFEMUFCQUJD
RDUwMDVCODI4QiAvKiBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuaWRsICovLAogCQkJCTk5
MDhCMEYyMUJDQUNGOTEwMEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuanMg
Ki8sCiAJCQkJOTkwOEIwRjExQkNBQ0Y5MTAwRUQwRjY1IC8qIFJlYWRhYmxlU3RyZWFtSW50ZXJu
YWxzLmpzICovLAorCQkJCTQxMjlDOTg3MUY1ODY2MkQwMDlENzQwMyAvKiBSZWFkYWJsZVN0cmVh
bVNpbmsuY3BwICovLAorCQkJCTQxMjlDOTgwMUY1ODYxQzcwMDlENzQwMyAvKiBSZWFkYWJsZVN0
cmVhbVNpbmsuaCAqLywKKwkJCQk0MTI5Qzk4MTFGNTg2MUM3MDA5RDc0MDMgLyogUmVhZGFibGVT
dHJlYW1TaW5rLmlkbCAqLywKIAkJCQk0MThDMzk1QjFDOEYwQTYxMDA1MUM4QTMgLyogUmVhZGFi
bGVTdHJlYW1Tb3VyY2UuaCAqLywKIAkJCQk0MThDMzk1QzFDOEYwQTYxMDA1MUM4QTMgLyogUmVh
ZGFibGVTdHJlYW1Tb3VyY2UuaWRsICovLAogCQkJCTk5MDhCMEYxMUJDQUNGOTEwMEVEMEY1NSAv
KiBTdHJlYW1JbnRlcm5hbHMuanMgKi8sCkBAIC0xODExMyw2ICsxODEyOCw4IEBACiAJCQkJN0NF
MTkxNkExRjJBQjcwNjAwMjcyRjc4IC8qIEpTRmV0Y2hSZXF1ZXN0UmVkaXJlY3QuaCAqLywKIAkJ
CQk4RTRDOTZEODFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJlc3BvbnNlLmNwcCAqLywKIAkJ
CQk4RTRDOTZEOTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJlc3BvbnNlLmggKi8sCisJCQkJ
N0Y0Qzk2RDgxQUQ0NDgzNTAwMzY1QTUxIC8qIEpTUmVhZGFibGVTdHJlYW1TaW5rLmNwcCAqLywK
KwkJCQk3RjRDOTZEOTFBRDQ0ODM1MDAzNjVBNTEgLyogSlNSZWFkYWJsZVN0cmVhbVNpbmsuaCAq
LywKIAkJCQk3RTRDOTZEODFBRDQ0ODM1MDAzNjVBNTEgLyogSlNSZWFkYWJsZVN0cmVhbVNvdXJj
ZS5jcHAgKi8sCiAJCQkJN0U0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUxIC8qIEpTUmVhZGFibGVTdHJl
YW1Tb3VyY2UuaCAqLywKIAkJCSk7CkBAIC0yNzU4Niw2ICsyNzYwMyw3IEBACiAJCQkJODQ3MzBE
ODcxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFT2Zmc2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NDcz
MEQ4OTEyNDhGMEIzMDBEM0E5QzkgLyogRkVTcGVjdWxhckxpZ2h0aW5nLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1MTdBNTM1QjFGNTg4QTRDMDBEQ0RDMEEgLyogRmV0Y2hCb2R5Q29uc3VtZXIuaCBp
biBIZWFkZXJzICovLAorCQkJCTQxMjlDOTk3MUY1OUI5NjMwMDlENzQwMyAvKiBGZXRjaEJvZHlT
b3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRDEyOURCMUYzRDE0MzgwMEQxNUU0NyAvKiBG
ZXRjaEhlYWRlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNkU2RkU4MUJCRDEyREYwMDBBNjAy
MyAvKiBGZXRjaEludGVybmFsc0J1aWx0aW5zLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTdBNTM1
QTFGNTg4OUVGMDBEQ0RDMEEgLyogRmV0Y2hMb2FkZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjg1
NTMsNiArMjg1NzEsNyBAQAogCQkJCTZDNEM5NkRGMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRh
YmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDNEM5NkRG
MUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDEyOURGODYxQkI1QjgwQzAwMzIyQTE2IC8qIEpTUmVhZGFibGVTdHJl
YW1Qcml2YXRlQ29uc3RydWN0b3JzLmggaW4gSGVhZGVycyAqLywKKwkJCQk3RjRDOTZERDFBRDQ0
ODM1MDAzNjVBNTEgLyogSlNSZWFkYWJsZVN0cmVhbVNpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTdFNEM5NkREMUFENDQ4MzUwMDM2NUE1MSAvKiBKU1JlYWRhYmxlU3RyZWFtU291cmNlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0OTk4QUVDRTEzRjlENkM5MDA5MEIxQUEgLyogSlNSZXF1ZXN0QW5p
bWF0aW9uRnJhbWVDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdFMjMzNzExRENENDY4
RjAwRjI4RDAxIC8qIEpTUnNhSGFzaGVkSW1wb3J0UGFyYW1zLmggaW4gSGVhZGVycyAqLywKQEAg
LTI5Mzg0LDcgKzI5NDAzLDkgQEAKIAkJCQlBODREODI3QzExRDMzM0VEMDA5NzI5OTAgLyogUmF3
RGF0YURvY3VtZW50UGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTZFNkZFODFCQkQxMkRG
MDAwQTYwNDMgLyogUmVhZGFibGVCeXRlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQxNkU2RkU5MUJCRDEyRTUwMDBBNjA0MyAvKiBSZWFkYWJsZVN0cmVhbUJ1
aWx0aW5zLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTI5QzlBOTFGNTlDNTZCMDA5RDc0MDMgLyog
UmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE2
RTZGRTgxQkJEMTJERjAwMEEzRjY0IC8qIFJlYWRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMu
aCBpbiBIZWFkZXJzICovLAorCQkJCTQxMjlDOUFCMUY1OUM1NzMwMDlENzQwMyAvKiBSZWFkYWJs
ZVN0cmVhbVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwM0MxMkIwMjY3NjAwQzFB
MzU5IC8qIFJlYWx0aW1lQW5hbHlzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMTAzQUFEMUUz
OTc5MTAwMDc2OUYwMyAvKiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTRBNEY2NTcxMUFBOTk3RjEwMEUzOENERCAvKiBSZWFsdGltZU1lZGlhU291cmNl
LmggaW4gSGVhZGVycyAqLywKQEAgLTI5ODgzLDYgKzI5OTA0LDcgQEAKIAkJCQlFNDZDNzk0QjFG
MTNFODJCMDBGMzcxRTEgLyogU3R5bGVJbnZhbGlkYXRpb25GdW5jdGlvbnMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUU0NzEyN0NCMTYzNDM4QUUwMEVENkY1QSAvKiBTdHlsZUludmFsaWRhdG9yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzVFQjcyQTBFODFERTgxMDBCMjU5NjUgLyogU3R5bGVNYXJx
dWVlRGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEyOUM5QUYxRjU5Q0Y1QjAwOUQ3NDAzIC8q
IFJlYWRhYmxlU3RyZWFtU2luay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGNTAyNzIxMDJCQTk2
QTAwNjZGMzlBIC8qIFN0eWxlTWVkaWEuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUVCNzRFMEU4
MUUwNjcwMEIyNTk2NSAvKiBTdHlsZU11bHRpQ29sRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RTREQUNFNkExRDEyRTEwQjAwNzU5ODBGIC8qIFN0eWxlUGVuZGluZ1Jlc291cmNlcy5oIGluIEhl
YWRlcnMgKi8sCkBAIC0zMjU4MCw2ICszMjYwMiw3IEBACiAJCQkJNkM0Qzk2REUxQUQ0NDgzNTAw
MzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk3QzRDOTZERTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbURl
ZmF1bHRSZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEyOURGODUxQkI1QjgwNzAwMzIy
QTE2IC8qIEpTUmVhZGFibGVTdHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTdGNEM5NkRDMUFENDQ4MzUwMDM2NUE1MSAvKiBKU1JlYWRhYmxlU3RyZWFtU2lu
ay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3RTRDOTZEQzFBRDQ0ODM1MDAzNjVBNTEgLyogSlNS
ZWFkYWJsZVN0cmVhbVNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MThDMzk2MDFDOEYw
QUFFMDA1MUM4QTMgLyogSlNSZWFkYWJsZVN0cmVhbVNvdXJjZUN1c3RvbS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk0OTk4QUVDRDEzRjlENkM5MDA5MEIxQUEgLyogSlNSZXF1ZXN0QW5pbWF0aW9u
RnJhbWVDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMzMzQxLDYgKzMzMzY0LDcgQEAK
IAkJCQk2RTg0RTlFMDE3NjY4QkVFMDA4MTVCNjggLyogUmFzdGVyU2hhcGUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNDFCNDU5RUYxRjU1RUJEMTAwMDBGNkZEIC8qIFJlYWRhYmxlU3RyZWFtLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTQxOEMzOTYxMUM4RjBBQjEwMDUxQzhBMyAvKiBSZWFkYWJs
ZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQxMjlDOThB
MUY1ODdGRUIwMDlENzQwMyAvKiBSZWFkYWJsZVN0cmVhbVNpbmsuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRkQzMTYwM0IxMkIwMjY3NjAwQzFBMzU5IC8qIFJlYWx0aW1lQW5hbHlzZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDExMDNBQUUxRTM5NzkxMDAwNzY5RjAzIC8qIFJlYWx0aW1lSW5j
b21pbmdBdWRpb1NvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODMzRTFFNDMyNERD
MDA2MjFFOTIgLyogUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmNwcCBpbiBTb3VyY2VzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW0u
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW0uY3BwCmluZGV4
IDcyMjc0MGY3ZmE0YWIwMjFkOWRmMTEzMTMyMjVlYmU3MDM2ZDQzZWQuLmNmNDg2OTc2NDk5YjI4
ZTNjY2RjYzI1Yzg3NzNhMTU1Y2JlOWU5ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9SZWFkYWJsZVN0cmVhbS5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJSZWFk
YWJsZVN0cmVhbS5oIgogCiAjaW5jbHVkZSAiSlNET01Db252ZXJ0U2VxdWVuY2VzLmgiCisjaW5j
bHVkZSAiSlNSZWFkYWJsZVN0cmVhbVNpbmsuaCIKICNpbmNsdWRlICJKU1JlYWRhYmxlU3RyZWFt
U291cmNlLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgogCkBAIC01NCw2ICs1
NSwyNCBAQCBSZWY8UmVhZGFibGVTdHJlYW0+IFJlYWRhYmxlU3RyZWFtOjpjcmVhdGUoSlNDOjpF
eGVjU3RhdGUmIGV4ZWNTdGF0ZSwgUmVmUHRyPFJlYQogICAgIHJldHVybiBjcmVhdGUoZ2xvYmFs
T2JqZWN0LCAqbmV3UmVhZGFibGVTdHJlYW0pOwogfQogCit2b2lkIFJlYWRhYmxlU3RyZWFtOjpw
aXBlVG8oUmVhZGFibGVTdHJlYW1TaW5rJiBzaW5rKQoreworICAgIGF1dG8mIHN0YXRlID0gKm1f
Z2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7CisgICAgSlNWTUNsaWVudERhdGEqIGNsaWVudERh
dGEgPSBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHN0YXRlLnZtKCkuY2xpZW50RGF0YSk7
CisgICAgY29uc3QgSWRlbnRpZmllciYgcHJpdmF0ZU5hbWUgPSBjbGllbnREYXRhLT5idWlsdGlu
RnVuY3Rpb25zKCkucmVhZGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucygpLnJlYWRhYmxlU3Ry
ZWFtUGlwZVRvUHJpdmF0ZU5hbWUoKTsKKworICAgIGF1dG8gcmVhZGFibGVTdHJlYW1QaXBlVG8g
PSBtX2dsb2JhbE9iamVjdC0+Z2V0KCZzdGF0ZSwgcHJpdmF0ZU5hbWUpOworICAgIEFTU0VSVChy
ZWFkYWJsZVN0cmVhbVBpcGVUby5pc0Z1bmN0aW9uKCkpOworCisgICAgQ2FsbERhdGEgY2FsbERh
dGE7CisgICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBnZXRDYWxsRGF0YShyZWFkYWJsZVN0cmVhbVBp
cGVUbywgY2FsbERhdGEpOworICAgIEFTU0VSVChjYWxsVHlwZSAhPSBKU0M6OkNhbGxUeXBlOjpO
b25lKTsKKyAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmd1bWVudHM7CisgICAgYXJndW1lbnRz
LmFwcGVuZChyZWFkYWJsZVN0cmVhbSgpKTsKKyAgICBhcmd1bWVudHMuYXBwZW5kKHRvSlMoJnN0
YXRlLCBtX2dsb2JhbE9iamVjdC5nZXQoKSwgc2luaykpOworICAgIEpTQzo6Y2FsbCgmc3RhdGUs
IHJlYWRhYmxlU3RyZWFtUGlwZVRvLCBjYWxsVHlwZSwgY2FsbERhdGEsIEpTQzo6anNVbmRlZmlu
ZWQoKSwgYXJndW1lbnRzKTsKK30KKwogc3RkOjpwYWlyPFJlZjxSZWFkYWJsZVN0cmVhbT4sIFJl
ZjxSZWFkYWJsZVN0cmVhbT4+IFJlYWRhYmxlU3RyZWFtOjp0ZWUoKQogewogICAgIGF1dG8mIHN0
YXRlID0gKm1fZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvUmVhZGFibGVTdHJlYW0uaAppbmRleCBhMGMyNmE0MzU3NjhiMmQxMGFmNDEwNmU2
MTdmNTdjYjMwYTMwYzk1Li5hZTViMGQ1ZmFhOTAyNzJjODc3MTY3MTQ5OTJlM2RjMzRjNjZmNDhh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtLmgKQEAgLTMy
LDYgKzMyLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBSZWFkYWJsZVN0cmVh
bVNpbms7CiBjbGFzcyBSZWFkYWJsZVN0cmVhbVNvdXJjZTsKIAogY2xhc3MgUmVhZGFibGVTdHJl
YW0gZmluYWwgOiBwdWJsaWMgRE9NR3VhcmRlZDxKU1JlYWRhYmxlU3RyZWFtPiB7CkBAIC00Miw2
ICs0Myw4IEBAIHB1YmxpYzoKIAogICAgIHN0ZDo6cGFpcjxSZWY8UmVhZGFibGVTdHJlYW0+LCBS
ZWY8UmVhZGFibGVTdHJlYW0+PiB0ZWUoKTsKIAorICAgIHZvaWQgcGlwZVRvKFJlYWRhYmxlU3Ry
ZWFtU2luayYpOworCiAgICAgSlNSZWFkYWJsZVN0cmVhbSogcmVhZGFibGVTdHJlYW0oKSB7IHJl
dHVybiBndWFyZGVkKCk7IH0KIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGYxMmM2OTM3ZjAxN2IzOTdh
ZTRjNDM3ZDg2NzZhOTUwN2UxMzhkZjQuLmRiNzVhYjY3MTNiMmQ1YWI4M2E3MTE0MGJhODIwNjUx
ZGYxZDAxYWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxNy0wOS0wMSAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgW0ZldGNoIEFQSV0gQWRkIHN1cHBvcnQg
Zm9yIGNvbnN1bWluZyBhIFJlcXVlc3QgUmVhZGFibGVTdHJlYW0gYm9keQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MTgyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3dwdC9mZXRjaC9yZXF1
ZXN0LXN0cmVhbS1kaXN0dXJiZWQtMS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC93cHQv
ZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZGlzdHVyYmVkLTItZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGh0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWRpc3R1cmJlZC0zLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBodHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1lbXB0eS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWVtcHR5
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWVy
cm9yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvZmV0Y2gvcmVxdWVz
dC1zdHJlYW0tZXJyb3IuaHRtbDogQWRkZWQuCisKIDIwMTctMDktMDEgIE1zMmdlciAgPE1zMmdl
ckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIE1hcmsgYXVkaW8tbXBlZy1zdXBwb3J0ZWQu
aHRtbCBhcyBwYXNzaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gv
cmVxdWVzdC1zdHJlYW0tZGlzdHVyYmVkLTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZGlzdHVyYmVkLTEtZXhwZWN0ZWQudHh0CmluZGV4
IGI4NTQ2YmVhMWQ3ODBhYjIyNDMxYWNjOGJmMmU4ZTM3MmYyYjIzNmMuLmE3ZjdiMjQyZTFiNWZi
NzRiODNhMzYwNTZjYTM2ODQyZDUzZjE5MzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
d3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWRpc3R1cmJlZC0xLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1kaXN0dXJiZWQtMS1leHBl
Y3RlZC50eHQKQEAgLTEsNiArMSw2IEBACiAKIFBBU1MgR2V0dGluZyBibG9iIGFmdGVyIGdldHRp
bmcgdGhlIFJlcXVlc3QgYm9keSAtIG5vdCBkaXN0dXJiZWQsIG5vdCBsb2NrZWQgCi1GQUlMIEdl
dHRpbmcgdGV4dCBhZnRlciBnZXR0aW5nIHRoZSBSZXF1ZXN0IGJvZHkgLSBub3QgZGlzdHVyYmVk
LCBub3QgbG9ja2VkIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBH
ZXR0aW5nIGpzb24gYWZ0ZXIgZ2V0dGluZyB0aGUgUmVxdWVzdCBib2R5IC0gbm90IGRpc3R1cmJl
ZCwgbm90IGxvY2tlZCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1
ZTogb2JqZWN0ICJTeW50YXhFcnJvcjogVGhlIHN0cmluZyBkaWQgbm90IG1hdGNoIHRoZSBleHBl
Y3RlZCBwYXR0ZXJuLiIKLUZBSUwgR2V0dGluZyBhcnJheUJ1ZmZlciBhZnRlciBnZXR0aW5nIHRo
ZSBSZXF1ZXN0IGJvZHkgLSBub3QgZGlzdHVyYmVkLCBub3QgbG9ja2VkIGFzc2VydF90cnVlOiBl
eHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBHZXR0aW5nIHRleHQgYWZ0ZXIgZ2V0dGluZyB0
aGUgUmVxdWVzdCBib2R5IC0gbm90IGRpc3R1cmJlZCwgbm90IGxvY2tlZCAKK1BBU1MgR2V0dGlu
ZyBqc29uIGFmdGVyIGdldHRpbmcgdGhlIFJlcXVlc3QgYm9keSAtIG5vdCBkaXN0dXJiZWQsIG5v
dCBsb2NrZWQgCitQQVNTIEdldHRpbmcgYXJyYXlCdWZmZXIgYWZ0ZXIgZ2V0dGluZyB0aGUgUmVx
dWVzdCBib2R5IC0gbm90IGRpc3R1cmJlZCwgbm90IGxvY2tlZCAKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZGlzdHVyYmVkLTItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZGlzdHVy
YmVkLTItZXhwZWN0ZWQudHh0CmluZGV4IGYyYjliMmU1ZmNlOTM1NmQxNTM2MmIyYTFlYWE2NTEw
OGIwNjYzNjcuLmRlY2JmZDRjOTgxZDBhN2MyNDM2MTAxMzFmMGJkOWVkMGQ3YTI2NjMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWRpc3R1cmJl
ZC0yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0
LXN0cmVhbS1kaXN0dXJiZWQtMi1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw2IEBACiAKLUZBSUwg
R2V0dGluZyBibG9iIGFmdGVyIGdldHRpbmcgYSBsb2NrZWQgUmVxdWVzdCBib2R5IGFzc2VydF91
bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNo
YWJsZSBjb2RlCi1GQUlMIEdldHRpbmcgdGV4dCBhZnRlciBnZXR0aW5nIGEgbG9ja2VkIFJlcXVl
c3QgYm9keSBhc3NlcnRfdW5yZWFjaGVkOiBTaG91bGQgaGF2ZSByZWplY3RlZDogdW5kZWZpbmVk
IFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQotRkFJTCBHZXR0aW5nIGpzb24gYWZ0ZXIgZ2V0dGlu
ZyBhIGxvY2tlZCBSZXF1ZXN0IGJvZHkgYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gImZ1bmN0aW9u
ICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlN5bnRheEVycm9yOiBUaGUgc3RyaW5nIGRp
ZCBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIHBhdHRlcm4uIiAoIlN5bnRheEVycm9yIikgZXhwZWN0
ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKLUZBSUwgR2V0dGluZyBhcnJheUJ1
ZmZlciBhZnRlciBnZXR0aW5nIGEgbG9ja2VkIFJlcXVlc3QgYm9keSBhc3NlcnRfdW5yZWFjaGVk
OiBTaG91bGQgaGF2ZSByZWplY3RlZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFibGUgY29k
ZQorUEFTUyBHZXR0aW5nIGJsb2IgYWZ0ZXIgZ2V0dGluZyBhIGxvY2tlZCBSZXF1ZXN0IGJvZHkg
CitQQVNTIEdldHRpbmcgdGV4dCBhZnRlciBnZXR0aW5nIGEgbG9ja2VkIFJlcXVlc3QgYm9keSAK
K1BBU1MgR2V0dGluZyBqc29uIGFmdGVyIGdldHRpbmcgYSBsb2NrZWQgUmVxdWVzdCBib2R5IAor
UEFTUyBHZXR0aW5nIGFycmF5QnVmZmVyIGFmdGVyIGdldHRpbmcgYSBsb2NrZWQgUmVxdWVzdCBi
b2R5IAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0
cmVhbS1kaXN0dXJiZWQtMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRj
aC9yZXF1ZXN0LXN0cmVhbS1kaXN0dXJiZWQtMy1leHBlY3RlZC50eHQKaW5kZXggYjkzZTNhNmZl
YWQxM2E4ZmFiY2I0NzE3ZjQ0OGU0NzBmM2U5ZGY5NC4uNTJlZDYzMGU0YjVmY2E2YzE3YzUxM2Ez
Yjk0ZjhkNjMxZDFlMjUxNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gv
cmVxdWVzdC1zdHJlYW0tZGlzdHVyYmVkLTMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWRpc3R1cmJlZC0zLWV4cGVjdGVkLnR4dApA
QCAtMSw2ICsxLDYgQEAKIAotRkFJTCBHZXR0aW5nIGJsb2IgYWZ0ZXIgcmVhZGluZyB0aGUgUmVx
dWVzdCBib2R5IGFzc2VydF91bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmlu
ZWQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCi1GQUlMIEdldHRpbmcgdGV4dCBhZnRlciByZWFk
aW5nIHRoZSBSZXF1ZXN0IGJvZHkgYXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0
ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKLUZBSUwgR2V0dGluZyBqc29u
IGFmdGVyIHJlYWRpbmcgdGhlIFJlcXVlc3QgYm9keSBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAi
ZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiU3ludGF4RXJyb3I6IFRoZSBz
dHJpbmcgZGlkIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgcGF0dGVybi4iICgiU3ludGF4RXJyb3Ii
KSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQotRkFJTCBHZXR0aW5n
IGFycmF5QnVmZmVyIGFmdGVyIHJlYWRpbmcgdGhlIFJlcXVlc3QgYm9keSBhc3NlcnRfdW5yZWFj
aGVkOiBTaG91bGQgaGF2ZSByZWplY3RlZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFibGUg
Y29kZQorUEFTUyBHZXR0aW5nIGJsb2IgYWZ0ZXIgcmVhZGluZyB0aGUgUmVxdWVzdCBib2R5IAor
UEFTUyBHZXR0aW5nIHRleHQgYWZ0ZXIgcmVhZGluZyB0aGUgUmVxdWVzdCBib2R5IAorUEFTUyBH
ZXR0aW5nIGpzb24gYWZ0ZXIgcmVhZGluZyB0aGUgUmVxdWVzdCBib2R5IAorUEFTUyBHZXR0aW5n
IGFycmF5QnVmZmVyIGFmdGVyIHJlYWRpbmcgdGhlIFJlcXVlc3QgYm9keSAKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZW1wdHktZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZW1wdHkt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4YjFlY2EzMTYzZTM2YmI4MzBlNTNkZjU1ZDQwN2Y2
MDM3NTVkOWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9y
ZXF1ZXN0LXN0cmVhbS1lbXB0eS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisKK1BBU1Mg
RW1wdHkgc3RyZWFtIGJvZHkgYXMgdGV4dCAKK1BBU1MgRW1wdHkgc3RyZWFtIGJvZHkgYXMgYXJy
YXlCdWZmZXIgCitQQVNTIEVtcHR5IHN0cmVhbSBib2R5IGFzIEpTT04gCitQQVNTIEVtcHR5IHN0
cmVhbSBib2R5IGFzIGJsb2IgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Zl
dGNoL3JlcXVlc3Qtc3RyZWFtLWVtcHR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRj
aC9yZXF1ZXN0LXN0cmVhbS1lbXB0eS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwMmY5ODQ0NTcyYTk1YzJk
MTczZThjMjA0MDgwZmYxZTkxMDY4MTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1lbXB0eS5odG1sCkBAIC0wLDAgKzEsNTAgQEAK
KzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KKyAgICA8dGl0bGU+Q29uc3VtaW5nIFJlcXVlc3QgYm9keSB3aXRoIG5vbiBCdWZmZXJT
b3VyY2UgUmVhZGFibGVTdHJlYW0gY2h1bmtzPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5
PgorICAgIDxzY3JpcHQ+CitmdW5jdGlvbiBjcmVhdGVSZXF1ZXN0V2l0aEVtcHR5UmVhZGFibGVT
dHJlYW0oKQoreworICAgIHZhciBzdHJlYW0gPSBuZXcgUmVhZGFibGVTdHJlYW0oe3N0YXJ0OiBj
b250cm9sbGVyID0+IHsKKyAgICAgICAgY29udHJvbGxlci5jbG9zZSgpOworICAgIH19KTsKKyAg
ICByZXR1cm4gbmV3IFJlcXVlc3QoIiIsIHtib2R5OiBzdHJlYW0sIG1ldGhvZDogIlBPU1QifSk7
Cit9CisKK3Byb21pc2VfdGVzdCh0ZXN0ID0+IHsKKyAgICByZXR1cm4gY3JlYXRlUmVxdWVzdFdp
dGhFbXB0eVJlYWRhYmxlU3RyZWFtKCkudGV4dCgpLnRoZW4odGV4dCA9PiB7CisgICAgICAgIGFz
c2VydF9lcXVhbHModGV4dCwgIiIpOworICAgIH0pOworfSwgIkVtcHR5IHN0cmVhbSBib2R5IGFz
IHRleHQiKTsKKworcHJvbWlzZV90ZXN0KHRlc3QgPT4geworICAgIHJldHVybiBjcmVhdGVSZXF1
ZXN0V2l0aEVtcHR5UmVhZGFibGVTdHJlYW0oKS5hcnJheUJ1ZmZlcigpLnRoZW4oYnVmZmVyID0+
IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhidWZmZXIuYnl0ZUxlbmd0aCwgMCwgIlJlc29sdmVk
IHZhbHVlIHNob3VsZCBiZSBlbXB0eSIpOworICAgIH0pOworfSwgIkVtcHR5IHN0cmVhbSBib2R5
IGFzIGFycmF5QnVmZmVyIik7CisKK3Byb21pc2VfdGVzdCh0ZXN0ID0+IHsKKyAgICByZXR1cm4g
cHJvbWlzZV9yZWplY3RzKHRlc3QsICJTeW50YXhFcnJvciIsIGNyZWF0ZVJlcXVlc3RXaXRoRW1w
dHlSZWFkYWJsZVN0cmVhbSgpLmpzb24oKSk7Cit9LCAiRW1wdHkgc3RyZWFtIGJvZHkgYXMgSlNP
TiIpOworCitwcm9taXNlX3Rlc3QodGVzdCA9PiB7CisgICAgcmV0dXJuIGNyZWF0ZVJlcXVlc3RX
aXRoRW1wdHlSZWFkYWJsZVN0cmVhbSgpLmJsb2IoKS50aGVuKGZ1bmN0aW9uKGJvZHlBc0Jsb2Ip
IHsKKyAgICAgICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCBy
ZWplY3QpIHsKKyAgICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOworICAg
ICAgICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHsgcmVzb2x2ZShyZWFkZXIucmVzdWx0KSB9
OworICAgICAgICAgICAgcmVhZGVyLm9uZXJyb3IgPSAoKSA9PiB7IHJlamVjdCgiQmxvYidzIHJl
YWRlciBmYWlsZWQiKTsgfTsKKyAgICAgICAgICAgIHJlYWRlci5yZWFkQXNUZXh0KGJvZHlBc0Js
b2IpOworICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJuIHByb21pc2UudGhlbihmdW5jdGlvbihi
b2R5KSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJvZHksICIiLCAiUmVzb2x2ZWQgdmFs
dWUgc2hvdWxkIGJlIGVtcHR5Iik7CisgICAgICAgIH0pOworICB9KTsKK30sICJFbXB0eSBzdHJl
YW0gYm9keSBhcyBibG9iIik7CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWVycm9y
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFt
LWVycm9yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNTRmYjQ5ZTJkMGUzNjUwYzk2MTIwNzUx
NmFjZTk3NDE4ZDkyMzg0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQv
ZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZXJyb3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAor
CitQQVNTIFJlcXVlc3QgYm9keSBzaG91bGQgb25seSBjb250YWluIEJ1ZmZlclNvdXJjZSBjaHVu
a3MgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3Ry
ZWFtLWVycm9yLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVh
bS1lcnJvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxOWU0OGRhYTgyZWEyMTBmYzAzYzVmMTNiMDYyNjM3
OWUxYzhlMGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9y
ZXF1ZXN0LXN0cmVhbS1lcnJvci5odG1sCkBAIC0wLDAgKzEsMjEgQEAKKzwhZG9jdHlwZSBodG1s
PgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0
bGU+Q29uc3VtaW5nIFJlcXVlc3QgYm9keSB3aXRoIG5vbiBCdWZmZXJTb3VyY2UgUmVhZGFibGVT
dHJlYW0gY2h1bmtzPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxzY3JpcHQ+
Citwcm9taXNlX3Rlc3QodGVzdCA9PiB7CisgICAgdmFyIHN0cmVhbSA9IG5ldyBSZWFkYWJsZVN0
cmVhbSh7c3RhcnQ6IGNvbnRyb2xsZXIgPT4geworICAgICAgICBjb250cm9sbGVyLmVucXVldWUo
IlRoaXMgaXMgbm90IGEgYnVmZmVyIik7CisgICAgICAgIGNvbnRyb2xsZXIuY2xvc2UoKTsKKyAg
ICB9fSk7CisgICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwge2JvZHk6IHN0cmVhbSwg
bWV0aG9kOiAiUE9TVCJ9KTsKKyAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHRlc3QsIG5ldyBU
eXBlRXJyb3IsIHJlcXVlc3QudGV4dCgpKTsKK30sICJSZXF1ZXN0IGJvZHkgc2hvdWxkIG9ubHkg
Y29udGFpbiBCdWZmZXJTb3VyY2UgY2h1bmtzIik7CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4K
KzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319625</attachid>
            <date>2017-09-01 11:41:00 -0700</date>
            <delta_ts>2017-09-01 15:21:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176182-20170901114059.patch</filename>
            <type>text/plain</type>
            <size>45146</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGI4NTEzYWQ0NTQyYjNk
OWMxZGE0MDY4NGMzOWVlNmYxZGQ0MmI3MS4uY2I0NGQyZTgwZWM1MDgzNDg3NjRiZjViNzFjYjE1
MjEzZmYwODViNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE3LTA5LTAxICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBbRmV0Y2ggQVBJXSBBZGQg
c3VwcG9ydCBmb3IgY29uc3VtaW5nIGEgUmVxdWVzdCBSZWFkYWJsZVN0cmVhbSBib2R5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYxODIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0czogaHR0cC93
cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZW1wdHkuaHRtbAorICAgICAgICAgICAgICAgaHR0cC93
cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZXJyb3IuaHRtbAorCisgICAgICAgIEFkZGluZyBhIFJl
YWRhYmxlU3RyZWFtU2luayB3aGljaCBhbGxvd3MgdG8gcGlwZSBhbGwgUmVhZGFibGVTdHJlYW0g
ZGF0YSBiYWNrIHRvIEMrKyBjb2RlLgorICAgICAgICBUaGlzIHNpbmsgb25seSB0YWtlcyBCdWZm
ZXJTb3VyY2UgYXMgdGhlIG9ubHkgdXNlciBpcyBGZXRjaCB3aGljaCBoYXMgdGhpcyByZXN0cmlj
dGlvbi4KKyAgICAgICAgVGhpcyBzaW5rIGlzIHRpZWQgdG8gdGhlIHJlYWRhYmxlU3RyZWFtUGlw
ZVRvIGJ1aWx0aW4gaW50ZXJuYWwgZnVuY3Rpb24gdGhhdCByZWFkcyBhbGwgZGF0YSBmcm9tIHRo
ZSBSZWFkYWJsZVN0cmVhbQorICAgICAgICBhbmQgc2VuZCBpdCB0byB0aGUgc2luay4KKworICAg
ICAgICBBZGRpbmcgYSBSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luayBzcGVjaWFsaXph
dGlvbiB0byBnZXQgdGhlIGRhdGEgYXMgYSBTaGFyZWRCdWZmZXIuCisKKyAgICAgICAgVXNlIHRo
YXQgY2xhc3MgaW4gRmV0Y2hCb2R5Q29uc3VtZXIgdG8gZ2V0IHRoZSBkYXRhIGJhY2sgZnJvbSB0
aGUgUmVhZGFibGVTdHJlYW0gYW5kIHRyYW5zZm9ybSBpdCBhY2NvcmRpbmcKKyAgICAgICAgdGhl
IGRlc2lyZWQgYm9keSB0eXBlICh0ZXh0LCBKU09OLCBBcnJheUJ1ZmZlcikuCisKKyAgICAgICAg
KiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAg
ICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZldGNo
Qm9keTo6Y29uc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6OmxvYWRpbmdTdWNj
ZWVkZWQpOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6cmVzb2x2ZVdpdGhUeXBlQW5kRGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpGZXRjaEJvZHlDb25zdW1lcjo6Y2xlYW4pOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hC
b2R5Q29uc3VtZXI6OnJlc29sdmVXaXRoRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJv
ZHlDb25zdW1lcjo6cmVzb2x2ZSk6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlD
b25zdW1lci5oOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGZXRjaFJlc3BvbnNlOjpmaW5pc2hDb25zdW1pbmdTdHJlYW0pOgor
ICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUludGVybmFscy5qczoKKyAg
ICAgICAgKHJlYWRhYmxlU3RyZWFtUGlwZVRvKToKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMv
UmVhZGFibGVTdHJlYW1TaW5rLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJs
ZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luazo6UmVhZGFibGVTdHJlYW1Ub1NoYXJlZEJ1ZmZlclNp
bmspOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW1Ub1NoYXJlZEJ1ZmZlclNpbms6
OnBpcGVGcm9tKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlU3RyZWFtVG9TaGFyZWRCdWZm
ZXJTaW5rOjplbnF1ZXVlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlU3RyZWFtVG9TaGFy
ZWRCdWZmZXJTaW5rOjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZVN0cmVhbVRv
U2hhcmVkQnVmZmVyU2luazo6ZXJyb3IpOgorICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFk
YWJsZVN0cmVhbVNpbmsuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtU2luay5pZGw6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZVN0cmVhbTo6cGlwZVRvKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5oOgorCiAyMDE3LTA4LTMxICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBbGxvdyByZXRyaWV2aW5nIENhY2hlIFN0
b3JhZ2UgcmVjb3JkcyBmb3IgYSBnaXZlbiBVUkwgb25seQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCBkMjQ3ODYzYjVjYzIyYzRiZTI3MWFlZmQyZGE3YWQyNDM5MzE3OTdlLi41OGI0ZjliNDcwNDM0
NTA5MzU4ZjdiZDg4YmUyNjZhZDNiZjZhNGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMzI1
LDYgKzMyNSw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy9z
dHJlYW1zL1JlYWRhYmxlU3RyZWFtQllPQlJlcXVlc3QuaWRsCiAgICAgTW9kdWxlcy9zdHJlYW1z
L1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuaWRsCiAgICAgTW9kdWxlcy9zdHJlYW1z
L1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5pZGwKKyAgICBNb2R1bGVzL3N0cmVhbXMvUmVh
ZGFibGVTdHJlYW1TaW5rLmlkbAogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNv
dXJjZS5pZGwKICAgICBNb2R1bGVzL3N0cmVhbXMvV3JpdGFibGVTdHJlYW0uaWRsCiAKQEAgLTEw
NzAsNiArMTA3MSw4IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuY3BwCiAgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3lu
dGhlc2lzVm9pY2UuY3BwCiAKKyAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1TaW5r
LmNwcAorCiAgICAgTW9kdWxlcy93ZWJhdWRpby9BbmFseXNlck5vZGUuY3BwCiAgICAgTW9kdWxl
cy93ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5jcHAKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvQmFzaWNJbnNwZWN0b3JOb2RlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5k
ZXggNzIyNGZkZWQ1ZTEwZTY1MDMxNzEyODkyNDBmMmFiNTIyZGQzOTgyOS4uODg4ZDM1YjVmMzQz
MjA2OGEyNDJhYzA1M2VmNDdjNzJhNjM2NWQ0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCkBAIC0yNzYsNiArMjc2LDcgQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtQllPQlJlcXVlc3QuaWRsIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVy
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1EZWZh
dWx0UmVhZGVyLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW1TaW5rLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW1Tb3VyY2UuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3RyZWFtcy9Xcml0YWJs
ZVN0cmVhbS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9BbmFseXNlck5v
ZGUuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hC
b2R5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmNwcAppbmRl
eCA0MzNlOTRiNWU3ZmIzNjg1OWE3ZTMyYWViOTA5NWY1ZGY2MTBkMDEwLi4zNDA0OTY3MTQ1NTFm
YzU5NWE2YzhiOGJlZTJhYTc2YzA1ODUyYzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZldGNoL0ZldGNoQm9keS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
ZXRjaC9GZXRjaEJvZHkuY3BwCkBAIC0xMzgsNyArMTM4LDcgQEAgdm9pZCBGZXRjaEJvZHk6OmNv
bnN1bWUoRmV0Y2hCb2R5T3duZXImIG93bmVyLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21p
c2UpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX2NvbnN1bWVyLnJlc29sdmUoV1RG
TW92ZShwcm9taXNlKSk7CisgICAgbV9jb25zdW1lci5yZXNvbHZlKFdURk1vdmUocHJvbWlzZSks
IG1fcmVhZGFibGVTdHJlYW0uZ2V0KCkpOwogfQogCiAjaWYgRU5BQkxFKFNUUkVBTVNfQVBJKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmNw
cAppbmRleCA5ZDAxODQ4Y2U0YTc2NjI0Y2ZmY2NlODBjZDg3ZGUxMTcwNTE4YmEyLi5iOWVlMWUx
MzZiNTRjNThiMzdmZTNlOTliMWFkYjZjODM1NTE1YjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmNwcApAQCAtNTYsMjkgKzU2LDYw
IEBAIHN0YXRpYyBTdHJpbmcgdGV4dEZyb21VVEY4KGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEs
IHVuc2lnbmVkIGxlbmd0aCkKICAgICByZXR1cm4gZGVjb2Rlci0+ZGVjb2RlQW5kRmx1c2gocmVp
bnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YSksIGxlbmd0aCk7CiB9CiAKLXZvaWQgRmV0
Y2hCb2R5Q29uc3VtZXI6OnJlc29sdmVXaXRoRGF0YShSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHBy
b21pc2UsIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKK3N0YXRp
YyB2b2lkIHJlc29sdmVXaXRoVHlwZUFuZERhdGEoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9t
aXNlLCBGZXRjaEJvZHlDb25zdW1lcjo6VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRU
eXBlLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCiB7Ci0gICAg
c3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIFR5cGU6OkFycmF5QnVmZmVyOgorICAgIHN3aXRj
aCAodHlwZSkgeworICAgIGNhc2UgRmV0Y2hCb2R5Q29uc3VtZXI6OlR5cGU6OkFycmF5QnVmZmVy
OgogICAgICAgICBmdWxmaWxsUHJvbWlzZVdpdGhBcnJheUJ1ZmZlcihXVEZNb3ZlKHByb21pc2Up
LCBkYXRhLCBsZW5ndGgpOwogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBUeXBlOjpCbG9iOgot
ICAgICAgICBwcm9taXNlLT5yZXNvbHZlV2l0aE5ld2x5Q3JlYXRlZDxJRExJbnRlcmZhY2U8Qmxv
Yj4+KGJsb2JGcm9tRGF0YShkYXRhLCBsZW5ndGgsIG1fY29udGVudFR5cGUpLmdldCgpKTsKKyAg
ICBjYXNlIEZldGNoQm9keUNvbnN1bWVyOjpUeXBlOjpCbG9iOgorICAgICAgICBwcm9taXNlLT5y
ZXNvbHZlV2l0aE5ld2x5Q3JlYXRlZDxJRExJbnRlcmZhY2U8QmxvYj4+KGJsb2JGcm9tRGF0YShk
YXRhLCBsZW5ndGgsIGNvbnRlbnRUeXBlKS5nZXQoKSk7CiAgICAgICAgIHJldHVybjsKLSAgICBj
YXNlIFR5cGU6OkpTT046CisgICAgY2FzZSBGZXRjaEJvZHlDb25zdW1lcjo6VHlwZTo6SlNPTjoK
ICAgICAgICAgZnVsZmlsbFByb21pc2VXaXRoSlNPTihXVEZNb3ZlKHByb21pc2UpLCB0ZXh0RnJv
bVVURjgoZGF0YSwgbGVuZ3RoKSk7CiAgICAgICAgIHJldHVybjsKLSAgICBjYXNlIFR5cGU6OlRl
eHQ6CisgICAgY2FzZSBGZXRjaEJvZHlDb25zdW1lcjo6VHlwZTo6VGV4dDoKICAgICAgICAgcHJv
bWlzZS0+cmVzb2x2ZTxJRExET01TdHJpbmc+KHRleHRGcm9tVVRGOChkYXRhLCBsZW5ndGgpKTsK
ICAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgVHlwZTo6Tm9uZToKKyAgICBjYXNlIEZldGNoQm9k
eUNvbnN1bWVyOjpUeXBlOjpOb25lOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIH0KIAotdm9pZCBGZXRjaEJvZHlDb25zdW1lcjo6cmVzb2x2
ZShSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCit2b2lkIEZldGNoQm9keUNvbnN1bWVy
OjpjbGVhbigpCit7CisgICAgbV9idWZmZXIgPSBudWxscHRyOworICAgIG1fY29uc3VtZVByb21p
c2UgPSBudWxscHRyOworICAgIGlmIChtX3NpbmspIHsKKyAgICAgICAgbV9zaW5rLT5jbGVhckNh
bGxiYWNrKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKK3ZvaWQgRmV0Y2hCb2R5Q29u
c3VtZXI6OnJlc29sdmVXaXRoRGF0YShSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UsIGNv
bnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICByZXNvbHZl
V2l0aFR5cGVBbmREYXRhKFdURk1vdmUocHJvbWlzZSksIG1fdHlwZSwgbV9jb250ZW50VHlwZSwg
ZGF0YSwgbGVuZ3RoKTsKK30KKwordm9pZCBGZXRjaEJvZHlDb25zdW1lcjo6cmVzb2x2ZShSZWY8
RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UsIFJlYWRhYmxlU3RyZWFtKiBzdHJlYW0pCiB7Cisg
ICAgaWYgKHN0cmVhbSkgeworICAgICAgICBBU1NFUlQoIW1fc2luayk7CisgICAgICAgIG1fc2lu
ayA9IFJlYWRhYmxlU3RyZWFtVG9TaGFyZWRCdWZmZXJTaW5rOjpjcmVhdGUoW3Byb21pc2UgPSBX
VEZNb3ZlKHByb21pc2UpLCB0eXBlID0gbV90eXBlLCBjb250ZW50VHlwZSA9IG1fY29udGVudFR5
cGVdKEV4Y2VwdGlvbk9yPFJlZlB0cjxTaGFyZWRCdWZmZXI+PiYmIHJlc3VsdCkgbXV0YWJsZSB7
CisgICAgICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7CisgICAgICAgICAgICAg
ICAgcHJvbWlzZS0+cmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOworICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYXV0byogZGF0YSA9
IHJlc3VsdC5yZXR1cm5WYWx1ZSgpICYmIHJlc3VsdC5yZXR1cm5WYWx1ZSgpLT5kYXRhKCkgPyBy
ZWludGVycHJldF9jYXN0PGNvbnN0IHVuc2lnbmVkIGNoYXIqPihyZXN1bHQucmV0dXJuVmFsdWUo
KS0+ZGF0YSgpKSA6IG51bGxwdHI7CisgICAgICAgICAgICBhdXRvIHNpemUgPSBkYXRhID8gcmVz
dWx0LnJldHVyblZhbHVlKCktPnNpemUoKSA6IDA7CisgICAgICAgICAgICByZXNvbHZlV2l0aFR5
cGVBbmREYXRhKFdURk1vdmUocHJvbWlzZSksIHR5cGUsIGNvbnRlbnRUeXBlLCBkYXRhLCBzaXpl
KTsKKyAgICAgICAgfSk7CisgICAgICAgIG1fc2luay0+cGlwZUZyb20oKnN0cmVhbSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKICAgICBBU1NFUlQobV90eXBlICE9IFR5cGU6Ok5vbmUpOwog
ICAgIHN3aXRjaCAobV90eXBlKSB7CiAgICAgY2FzZSBUeXBlOjpBcnJheUJ1ZmZlcjoKQEAgLTk5
LDE4ICsxMzAsMjIgQEAgdm9pZCBGZXRjaEJvZHlDb25zdW1lcjo6cmVzb2x2ZShSZWY8RGVmZXJy
ZWRQcm9taXNlPiYmIHByb21pc2UpCiAgICAgfQogfQogCi12b2lkIEZldGNoQm9keUNvbnN1bWVy
OjphcHBlbmQoY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKQordm9pZCBGZXRjaEJv
ZHlDb25zdW1lcjo6YXBwZW5kKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIHNpemUpCiB7Cisg
ICAgaWYgKG1fc291cmNlKSB7CisgICAgICAgIG1fc291cmNlLT5lbnF1ZXVlKEFycmF5QnVmZmVy
Ojp0cnlDcmVhdGUoZGF0YSwgc2l6ZSkpOworICAgICAgICByZXR1cm47CisgICAgfQogICAgIGlm
ICghbV9idWZmZXIpIHsKLSAgICAgICAgbV9idWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShk
YXRhLCBsZW5ndGgpOworICAgICAgICBtX2J1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRh
dGEsIHNpemUpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIG1fYnVmZmVyLT5hcHBlbmQo
ZGF0YSwgbGVuZ3RoKTsKKyAgICBtX2J1ZmZlci0+YXBwZW5kKGRhdGEsIHNpemUpOwogfQogCi12
b2lkIEZldGNoQm9keUNvbnN1bWVyOjphcHBlbmQoY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwg
dW5zaWduZWQgbGVuZ3RoKQordm9pZCBGZXRjaEJvZHlDb25zdW1lcjo6YXBwZW5kKGNvbnN0IHVu
c2lnbmVkIGNoYXIqIGRhdGEsIHVuc2lnbmVkIHNpemUpCiB7Ci0gICAgYXBwZW5kKHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEpLCBsZW5ndGgpOworICAgIGFwcGVuZChyZWludGVy
cHJldF9jYXN0PGNvbnN0IGNoYXIqPihkYXRhKSwgc2l6ZSk7CiB9CiAKIFJlZlB0cjxTaGFyZWRC
dWZmZXI+IEZldGNoQm9keUNvbnN1bWVyOjp0YWtlRGF0YSgpCkBAIC0xNTQsMjQgKzE4OSwzNSBA
QCB2b2lkIEZldGNoQm9keUNvbnN1bWVyOjpzZXRDb25zdW1lUHJvbWlzZShSZWY8RGVmZXJyZWRQ
cm9taXNlPiYmIHByb21pc2UpCiAgICAgbV9jb25zdW1lUHJvbWlzZSA9IFdURk1vdmUocHJvbWlz
ZSk7CiB9CiAKK3ZvaWQgRmV0Y2hCb2R5Q29uc3VtZXI6OnNldFNvdXJjZShSZWY8RmV0Y2hCb2R5
U291cmNlPiYmIHNvdXJjZSkKK3sKKyAgICBtX3NvdXJjZSA9IFdURk1vdmUoc291cmNlKTsKKyAg
ICBpZiAobV9idWZmZXIpIHsKKyAgICAgICAgbV9zb3VyY2UtPmVucXVldWUobV9idWZmZXItPnRy
eUNyZWF0ZUFycmF5QnVmZmVyKCkpOworICAgICAgICBtX2J1ZmZlciA9IG51bGxwdHI7CisgICAg
fQorfQorCiB2b2lkIEZldGNoQm9keUNvbnN1bWVyOjpsb2FkaW5nRmFpbGVkKCkKIHsKICAgICBp
ZiAobV9jb25zdW1lUHJvbWlzZSkgewogICAgICAgICBtX2NvbnN1bWVQcm9taXNlLT5yZWplY3Qo
KTsKICAgICAgICAgbV9jb25zdW1lUHJvbWlzZSA9IG51bGxwdHI7CiAgICAgfQorICAgIGlmICht
X3NvdXJjZSkgeworICAgICAgICBtX3NvdXJjZS0+ZXJyb3IoQVNDSUlMaXRlcmFsKCJMb2FkaW5n
IGZhaWxlZCIpKTsKKyAgICAgICAgbV9zb3VyY2UgPSBudWxscHRyOworICAgIH0KIH0KIAogdm9p
ZCBGZXRjaEJvZHlDb25zdW1lcjo6bG9hZGluZ1N1Y2NlZWRlZCgpCiB7CiAgICAgaWYgKG1fY29u
c3VtZVByb21pc2UpCi0gICAgICAgIHJlc29sdmUobV9jb25zdW1lUHJvbWlzZS5yZWxlYXNlTm9u
TnVsbCgpKTsKLX0KLQotdm9pZCBGZXRjaEJvZHlDb25zdW1lcjo6Y2xlYW4oKQotewotICAgIG1f
YnVmZmVyID0gbnVsbHB0cjsKLSAgICBtX2NvbnN1bWVQcm9taXNlID0gbnVsbHB0cjsKKyAgICAg
ICAgcmVzb2x2ZShtX2NvbnN1bWVQcm9taXNlLnJlbGVhc2VOb25OdWxsKCksIG51bGxwdHIpOwor
ICAgIGlmIChtX3NvdXJjZSkgeworICAgICAgICBtX3NvdXJjZS0+Y2xvc2UoKTsKKyAgICAgICAg
bV9zb3VyY2UgPSBudWxscHRyOworICAgIH0KIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1l
ci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5oCmlu
ZGV4IDFiNjZhM2Q5OGVkNTdmZDA5NjEyMmVjN2M0ODVmZmMzODlkMjE1MzguLmRmZDhmYjFjYmY0
ZmNiZWQ3NjYzZTk4MzY5ZDBjNWVhMjRmYzlmMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmgKQEAgLTI4LDEyICsyOCwxNiBAQAogCiAj
cHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkZldGNoQm9keVNvdXJjZS5oIgogI2luY2x1ZGUgIkpT
RE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiUmVhZGFibGVTdHJlYW1TaW5rLmgiCiAj
aW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
QmxvYjsKK2NsYXNzIEZldGNoQm9keVNvdXJjZTsKK2NsYXNzIFJlYWRhYmxlU3RyZWFtOwogCiBj
bGFzcyBGZXRjaEJvZHlDb25zdW1lciB7CiBwdWJsaWM6CkBAIC01Nyw3ICs2MSw3IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgY2xlYW4oKTsKIAotICAgIHZvaWQgcmVzb2x2ZShSZWY8RGVmZXJyZWRQ
cm9taXNlPiYmKTsKKyAgICB2b2lkIHJlc29sdmUoUmVmPERlZmVycmVkUHJvbWlzZT4mJiwgUmVh
ZGFibGVTdHJlYW0qKTsKICAgICB2b2lkIHJlc29sdmVXaXRoRGF0YShSZWY8RGVmZXJyZWRQcm9t
aXNlPiYmLCBjb25zdCB1bnNpZ25lZCBjaGFyKiwgdW5zaWduZWQpOwogCiAgICAgYm9vbCBoYXNE
YXRhKCkgY29uc3QgeyByZXR1cm4gISFtX2J1ZmZlcjsgfQpAQCAtNjYsMTIgKzcwLDE1IEBAIHB1
YmxpYzoKICAgICB2b2lkIGxvYWRpbmdTdWNjZWVkZWQoKTsKIAogICAgIHZvaWQgc2V0Q29uc3Vt
ZVByb21pc2UoUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CisgICAgdm9pZCBzZXRTb3VyY2UoUmVm
PEZldGNoQm9keVNvdXJjZT4mJik7CiAKIHByaXZhdGU6CiAgICAgVHlwZSBtX3R5cGU7CiAgICAg
U3RyaW5nIG1fY29udGVudFR5cGU7CiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbV9idWZmZXI7
CiAgICAgUmVmUHRyPERlZmVycmVkUHJvbWlzZT4gbV9jb25zdW1lUHJvbWlzZTsKKyAgICBSZWZQ
dHI8UmVhZGFibGVTdHJlYW1Ub1NoYXJlZEJ1ZmZlclNpbms+IG1fc2luazsKKyAgICBSZWZQdHI8
RmV0Y2hCb2R5U291cmNlPiBtX3NvdXJjZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwCmluZGV4
IGMxOTNjZTNlMTc2ZDcxYTZjYTIxN2Q1ZDUwMmE4OTM2MjcxZDEyNzkuLmNjZTdhODcwMWM0ZjE2
YzA4YzkzNWFmMzA2MzA2YjkyMDQ3OWUxZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9mZXRjaC9GZXRjaFJlc3BvbnNlLmNwcApAQCAtMzE3LDcgKzMxNyw3IEBAIHZvaWQgRmV0Y2hS
ZXNwb25zZTo6Y29uc3VtZUNodW5rKFJlZjxKU0M6OlVpbnQ4QXJyYXk+JiYgY2h1bmspCiAKIHZv
aWQgRmV0Y2hSZXNwb25zZTo6ZmluaXNoQ29uc3VtaW5nU3RyZWFtKFJlZjxEZWZlcnJlZFByb21p
c2U+JiYgcHJvbWlzZSkKIHsKLSAgICBtX2NvbnN1bWVyLnJlc29sdmUoV1RGTW92ZShwcm9taXNl
KSk7CisgICAgbV9jb25zdW1lci5yZXNvbHZlKFdURk1vdmUocHJvbWlzZSksIG51bGxwdHIpOwog
fQogCiB2b2lkIEZldGNoUmVzcG9uc2U6OmNvbnN1bWVCb2R5QXNTdHJlYW0oKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50ZXJuYWxz
LmpzIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50ZXJu
YWxzLmpzCmluZGV4IGY0ZTVkYWY3YjIxM2Q0MGVlYmU4YTQ5ZGNiMzZkNzQ5YjY3YWUzNzIuLjU0
Mjc3ZjNhZTA0ZGFmYmQxNTIxZjlhNjIzZjVhMDcwMzE5NjY3ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUludGVybmFscy5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1JbnRlcm5hbHMu
anMKQEAgLTEwNiw2ICsxMDYsMzMgQEAgZnVuY3Rpb24gcmVhZGFibGVTdHJlYW1EZWZhdWx0Q29u
dHJvbGxlckVycm9yKGNvbnRyb2xsZXIsIGVycm9yKQogICAgIEByZWFkYWJsZVN0cmVhbUVycm9y
KHN0cmVhbSwgZXJyb3IpOwogfQogCitmdW5jdGlvbiByZWFkYWJsZVN0cmVhbVBpcGVUbyhzdHJl
YW0sIHNpbmspCit7CisgICAgInVzZSBzdHJpY3QiOworICAgIEBhc3NlcnQoQGlzUmVhZGFibGVT
dHJlYW0oc3RyZWFtKSk7CisKKyAgICBjb25zdCByZWFkZXIgPSBuZXcgQFJlYWRhYmxlU3RyZWFt
RGVmYXVsdFJlYWRlcihzdHJlYW0pOworCisgICAgcmVhZGVyLkBjbG9zZWRQcm9taXNlQ2FwYWJp
bGl0eS5AcHJvbWlzZS5AdGhlbigoKSA9PiB7IH0sIChlKSA9PiB7IHNpbmsuZXJyb3IoZSk7IH0p
OworCisgICAgZnVuY3Rpb24gZG9QaXBlKCkgeworICAgICAgICBAcmVhZGFibGVTdHJlYW1EZWZh
dWx0UmVhZGVyUmVhZChyZWFkZXIpLkB0aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAg
ICAgaWYgKHJlc3VsdC5kb25lKSB7CisgICAgICAgICAgICAgICAgc2luay5jbG9zZSgpOworICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRyeSB7Cisg
ICAgICAgICAgICAgICAgc2luay5lbnF1ZXVlKHJlc3VsdC52YWx1ZSk7CisgICAgICAgICAgICB9
IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgICAgc2luay5lcnJvcigiUmVhZGFibGVTdHJlYW0g
Y2h1bmsgZW5xdWV1ZWluZyBpbiB0aGUgc2luayBmYWlsZWQiKTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkb1BpcGUoKTsKKyAgICAgICAgfSk7
CisgICAgfQorICAgIGRvUGlwZSgpOworfQorCiBmdW5jdGlvbiByZWFkYWJsZVN0cmVhbVRlZShz
dHJlYW0sIHNob3VsZENsb25lKQogewogICAgICJ1c2Ugc3RyaWN0IjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNpbmsuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZmEwZWRlM2MzY2NlYjgzMzg0YzY2OGQzZDQ4YTJiOGI4MjgyZjg3MQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNp
bmsuY3BwCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJSZWFkYWJsZVN0cmVhbVNpbmsuaCIKKworI2luY2x1ZGUgIkJ1ZmZlclNv
dXJjZS5oIgorI2luY2x1ZGUgIkRPTUV4Y2VwdGlvbi5oIgorI2luY2x1ZGUgIlJlYWRhYmxlU3Ry
ZWFtLmgiCisjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCisKKyNpZiBFTkFCTEUoU1RSRUFNU19B
UEkpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVhZGFibGVTdHJlYW1Ub1NoYXJlZEJ1ZmZl
clNpbms6OlJlYWRhYmxlU3RyZWFtVG9TaGFyZWRCdWZmZXJTaW5rKENhbGxiYWNrJiYgY2FsbGJh
Y2spCisgICAgOiBtX2NhbGxiYWNrIHsgV1RGTW92ZShjYWxsYmFjaykgfQoreworfQorCit2b2lk
IFJlYWRhYmxlU3RyZWFtVG9TaGFyZWRCdWZmZXJTaW5rOjpwaXBlRnJvbShSZWFkYWJsZVN0cmVh
bSYgc3RyZWFtKQoreworICAgIHN0cmVhbS5waXBlVG8oKnRoaXMpOworfQorCit2b2lkIFJlYWRh
YmxlU3RyZWFtVG9TaGFyZWRCdWZmZXJTaW5rOjplbnF1ZXVlKGNvbnN0IEJ1ZmZlclNvdXJjZSYg
YnVmZmVyKQoreworICAgIGlmICghbV9kYXRhKSB7CisgICAgICAgIG1fZGF0YSA9IFNoYXJlZEJ1
ZmZlcjo6Y3JlYXRlKGJ1ZmZlci5kYXRhKCksIGJ1ZmZlci5sZW5ndGgoKSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisgICAgbV9kYXRhLT5hcHBlbmQocmVpbnRlcnByZXRfY2FzdDxjb25zdCBj
aGFyKj4oYnVmZmVyLmRhdGEoKSksIGJ1ZmZlci5sZW5ndGgoKSk7Cit9CisKK3ZvaWQgUmVhZGFi
bGVTdHJlYW1Ub1NoYXJlZEJ1ZmZlclNpbms6OmNsb3NlKCkKK3sKKyAgICBpZiAoYXV0byBjYWxs
YmFjayA9IFdURk1vdmUobV9jYWxsYmFjaykpCisgICAgICAgIGNhbGxiYWNrKFdURk1vdmUobV9k
YXRhKSk7Cit9CisKK3ZvaWQgUmVhZGFibGVTdHJlYW1Ub1NoYXJlZEJ1ZmZlclNpbms6OmVycm9y
KFN0cmluZyYmIG1lc3NhZ2UpCit7CisgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBXVEZNb3ZlKG1f
Y2FsbGJhY2spKQorICAgICAgICBjYWxsYmFjayhFeGNlcHRpb24geyBUeXBlRXJyb3IsIFdURk1v
dmUobWVzc2FnZSkgfSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShTVFJFQU1TX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Ry
ZWFtcy9SZWFkYWJsZVN0cmVhbVNpbmsuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MWMyYWFiZWYyZDU2NjAzMThl
YmI3OTA1ZDFmYWVhOTU4NzJiZjU5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5oCkBAIC0wLDAgKzEsNzAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNUUkVBTVNfQVBJKQorCisj
aW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEJ1
ZmZlclNvdXJjZTsKK2NsYXNzIFJlYWRhYmxlU3RyZWFtOworY2xhc3MgU2hhcmVkQnVmZmVyOwor
CitjbGFzcyBSZWFkYWJsZVN0cmVhbVNpbmsgOiBwdWJsaWMgUmVmQ291bnRlZDxSZWFkYWJsZVN0
cmVhbVNpbms+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5SZWFkYWJsZVN0cmVhbVNpbmsoKSA9
IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIHZvaWQgZW5xdWV1ZShjb25zdCBCdWZmZXJTb3VyY2Um
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsb3NlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBl
cnJvcihTdHJpbmcmJikgPSAwOworfTsKKworY2xhc3MgUmVhZGFibGVTdHJlYW1Ub1NoYXJlZEJ1
ZmZlclNpbmsgZmluYWwgOiBwdWJsaWMgUmVhZGFibGVTdHJlYW1TaW5rIHsKK3B1YmxpYzoKKyAg
ICB1c2luZyBDYWxsYmFjayA9IFdURjo6RnVuY3Rpb248dm9pZChFeGNlcHRpb25PcjxSZWZQdHI8
U2hhcmVkQnVmZmVyPj4mJik+OworICAgIHN0YXRpYyBSZWY8UmVhZGFibGVTdHJlYW1Ub1NoYXJl
ZEJ1ZmZlclNpbms+IGNyZWF0ZShDYWxsYmFjayYmIGNhbGxiYWNrKSB7IHJldHVybiBhZG9wdFJl
ZigqbmV3IFJlYWRhYmxlU3RyZWFtVG9TaGFyZWRCdWZmZXJTaW5rKFdURk1vdmUoY2FsbGJhY2sp
KSk7IH0KKyAgICB2b2lkIHBpcGVGcm9tKFJlYWRhYmxlU3RyZWFtJik7CisgICAgdm9pZCBjbGVh
ckNhbGxiYWNrKCkgeyBtX2NhbGxiYWNrID0geyB9OyB9CisKK3ByaXZhdGU6CisgICAgUmVhZGFi
bGVTdHJlYW1Ub1NoYXJlZEJ1ZmZlclNpbmsoQ2FsbGJhY2smJik7CisKKyAgICB2b2lkIGVucXVl
dWUoY29uc3QgQnVmZmVyU291cmNlJikgZmluYWw7CisgICAgdm9pZCBjbG9zZSgpIGZpbmFsOwor
ICAgIHZvaWQgZXJyb3IoU3RyaW5nJiYpIGZpbmFsOworCisgICAgQ2FsbGJhY2sgbV9jYWxsYmFj
azsKKyAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBtX2RhdGE7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoU1RSRUFNU19BUEkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1TaW5rLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNpbmsuaWRsCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjc5OTk5NDQwYzVlNDJmNDJjZTEzNmM5NTY3NDYyNDE3YzkyYmFiYTIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1T
aW5rLmlkbApAQCAtMCwwICsxLDM1IEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisq
IGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyovCisKKworWworICAgIE5vSW50ZXJmYWNlT2JqZWN0LAorICAgIENvbmRpdGlv
bmFsPVNUUkVBTVNfQVBJLAorICAgIFNraXBWVGFibGVWYWxpZGF0aW9uCitdIGludGVyZmFjZSBS
ZWFkYWJsZVN0cmVhbVNpbmsgeworICAgIHZvaWQgZW5xdWV1ZShCdWZmZXJTb3VyY2UgY2h1bmsp
OworICAgIHZvaWQgY2xvc2UoKTsKKyAgICB2b2lkIGVycm9yKERPTVN0cmluZyBtZXNzYWdlKTsK
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggNGRiNzQyNDQ2ZjBhYzhhY2MwZmQxYjgwNmY2NGU5YTBhMzg2NDQ2Ni4uOWMyMjA5
ODA2OTdmYWM2MDFmMzdhOTkwNWM2MTYzZTMwMmIyMzg0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTY3Myw2ICsxNjczLDEx
IEBACiAJCTQxMjMwODFCMTM4QzQyOTcwMEJDQ0ZDQSAvKiBXZWJDb3JlLmZyYW1ld29yayBpbiBG
cmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjE5QjFBMDgy
NDVFNUEwMDFFOUFCQyAvKiBXZWJDb3JlLmZyYW1ld29yayAqLzsgfTsKIAkJNDEyMzA5MTMxMzhD
NDJGRjAwQkNDRkNBIC8qIEphdmFTY3JpcHRDb3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY4MjE2Mjk5MDI5RjRGQjUwMTAwMDEz
MSAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgKi87IH07CiAJCTQxMjdENTM3MEY4QUFCMUQw
MEU0MjRGNSAvKiBTY3JpcHRTdGF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MTI3RDUzNjBGOEFBQjFEMDBFNDI0RjUgLyogU2NyaXB0U3RhdGUu
Y3BwICovOyB9OworCQk0MTI5Qzk4QTFGNTg3RkVCMDA5RDc0MDMgLyogUmVhZGFibGVTdHJlYW1T
aW5rLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
MjlDOTg3MUY1ODY2MkQwMDlENzQwMyAvKiBSZWFkYWJsZVN0cmVhbVNpbmsuY3BwICovOyB9Owor
CQk0MTI5Qzk5NzFGNTlCOTYzMDA5RDc0MDMgLyogRmV0Y2hCb2R5U291cmNlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTMwMTVENjFDN0I1NzA0MDAw
OTFDNkYgLyogRmV0Y2hCb2R5U291cmNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDEyOUM5QTkxRjU5QzU2QjAwOUQ3NDAzIC8qIFJlYWRhYmxl
U3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxOEMzOTVGMUM4RjBBQUIwMDUxQzhBMyAvKiBSZWFkYWJsZVN0cmVh
bURlZmF1bHRDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJNDEyOUM5QUIxRjU5QzU3MzAwOUQ3NDAzIC8qIFJlYWRhYmxlU3RyZWFt
U291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MThDMzk1QjFDOEYwQTYxMDA1MUM4QTMgLyogUmVhZGFibGVTdHJlYW1Tb3VyY2UuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0MTI5QzlBRjFGNTlD
RjVCMDA5RDc0MDMgLyogUmVhZGFibGVTdHJlYW1TaW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTI5Qzk4MDFGNTg2MUM3MDA5RDc0MDMgLyogUmVh
ZGFibGVTdHJlYW1TaW5rLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNDEyOURGODUxQkI1QjgwNzAwMzIyQTE2IC8qIEpTUmVhZGFibGVTdHJlYW1Q
cml2YXRlQ29uc3RydWN0b3JzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxMjlERjgzMUJCNUI3RjcwMDMyMkExNiAvKiBKU1JlYWRhYmxlU3RyZWFt
UHJpdmF0ZUNvbnN0cnVjdG9ycy5jcHAgKi87IH07CiAJCTQxMjlERjg2MUJCNUI4MEMwMDMyMkEx
NiAvKiBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEyOURGODQxQkI1QjdGNzAwMzIyQTE2
IC8qIEpTUmVhZGFibGVTdHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDEzMDE1RDkxQzdCNTcxNDAwMDkx
QzZFIC8qIEZldGNoUmVzcG9uc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDEzMDE1RDUxQzdCNTcwNDAwMDkxQzZFIC8qIEZldGNoUmVzcG9uc2Uu
Y3BwICovOyB9OwpAQCAtMjg5OSw3ICsyOTA0LDcgQEAKIAkJNkM0Qzk2REUxQUQ0NDgzNTAwMzY1
QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QzRDOTZEQTFBRDQ0ODM1MDAzNjVB
NTAgLyogSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmNwcCAqLzsgfTsKIAkJNkM0
Qzk2REYxQUQ0NDgzNTAwMzYzRjY0IC8qIEpTUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM0Qzk2REIx
QUQ0NDgzNTAwMzYzRjY0IC8qIEpTUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlci5oICovOyB9
OwogCQk2QzRDOTZERjFBRDQ0ODM1MDAzNjU2NzIgLyogSlNSZWFkYWJsZVN0cmVhbUJZT0JSZXF1
ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QzRD
OTZEQjFBRDQ0ODM1MDAzNjU2NzIgLyogSlNSZWFkYWJsZVN0cmVhbUJZT0JSZXF1ZXN0LmggKi87
IH07Ci0JCTZDNEM5NkRGMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtRGVmYXVs
dENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDZDNEM5NkRCMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdENv
bnRyb2xsZXIuaCAqLzsgfTsKKwkJNkM0Qzk2REYxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFi
bGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNkM0Qzk2REIxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVT
dHJlYW1EZWZhdWx0Q29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTZDNjM4ODk1QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNv
dXJjZVJlcXVlc3RJbml0aWF0b3JzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA2QzYzODg5M0E5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0SW5pdGlhdG9ycy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTZDNjM4ODk2QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJl
cXVlc3RJbml0aWF0b3JzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDZDNjM4ODk0QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVl
c3RJbml0aWF0b3JzLmNwcCAqLzsgfTsKIAkJNkNEREU4RDAxNzcwQkIyMjAwMTZFMDcyIC8qIFJl
Z2lvbk92ZXJzZXRTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNkM3MEE4MTQxNzcwN0M0OTAwOUE0NDZFIC8qIFJlZ2lvbk92ZXJzZXRTdGF0ZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zNDAx
LDcgKzM0MDYsOSBAQAogCQk3RUU2ODQ3MTEyRDI2RTM4MDBFNzk0MTUgLyogUmVzb3VyY2VSZXNw
b25zZUNGTmV0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdFRTY4NDVFMTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZVJlc3BvbnNlQ0ZOZXQuY3Bw
ICovOyB9OwogCQk3RUU2ODQ3NTEyRDI2RTcwMDBFNzk0MTUgLyogUmVzb3VyY2VMb2FkZXJDRk5l
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RUU2
ODQ3NDEyRDI2RTcwMDBFNzk0MTUgLyogUmVzb3VyY2VMb2FkZXJDRk5ldC5jcHAgKi87IH07CiAJ
CTdGNEM5NkRDMUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoQm9keS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RjRDOTZEODFBRDQ0ODM1MDAzNjVB
NTAgLyogSlNGZXRjaEJvZHkuY3BwICovOyB9OworCQk3RjRDOTZEQzFBRDQ0ODM1MDAzNjVBNTEg
LyogSlNSZWFkYWJsZVN0cmVhbVNpbmsuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gN0Y0Qzk2RDgxQUQ0NDgzNTAwMzY1QTUxIC8qIEpTUmVhZGFibGVT
dHJlYW1TaW5rLmNwcCAqLzsgfTsKIAkJN0Y0Qzk2REQxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0
Y2hCb2R5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
RjRDOTZEOTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaEJvZHkuaCAqLzsgfTsKKwkJN0Y0Qzk2
REQxQUQ0NDgzNTAwMzY1QTUxIC8qIEpTUmVhZGFibGVTdHJlYW1TaW5rLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RjRDOTZEOTFBRDQ0ODM1MDAzNjVB
NTEgLyogSlNSZWFkYWJsZVN0cmVhbVNpbmsuaCAqLzsgfTsKIAkJODEwMkM1ODgxMzI1QkIxMTAw
RERFNjdBIC8qIFN0cmluZ0NhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgxMDJDNTg3MTMyNUJCMTEwMERERTY3QSAvKiBTdHJpbmdDYWxs
YmFjay5jcHAgKi87IH07CiAJCTgxQUM1OTk5MTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNm
ZXJJdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
MUFDNTk5NzEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbS5oICovOyB9OwogCQk4
MUFDNTk5QTEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbUxpc3QuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQUM1OTk4MTMxNjM2RTYw
MDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtTGlzdC5oICovOyB9OwpAQCAtOTM4Niw2ICs5Mzkz
LDkgQEAKIAkJNDExODlFRjcxQUQ4MjMyODAwQjkzRjY0IC8qIFJlYWRhYmxlQnl0ZVN0cmVhbUNv
bnRyb2xsZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlYWRhYmxlQnl0ZVN0cmVhbUNv
bnRyb2xsZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTE4OUVGNzFBRDgy
MzI4MDBCOTU2NzIgLyogUmVhZGFibGVTdHJlYW1CWU9CUmVxdWVzdC5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gUmVhZGFibGVTdHJlYW1CWU9CUmVxdWVzdC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxMjdENTM2MEY4QUFCMUQwMEU0MjRGNSAvKiBTY3JpcHRTdGF0ZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRTdGF0ZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMjlDOTgwMUY1ODYxQzcwMDlENzQwMyAv
KiBSZWFkYWJsZVN0cmVhbVNpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVhZGFibGVTdHJlYW1TaW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMjlD
OTgxMUY1ODYxQzcwMDlENzQwMyAvKiBSZWFkYWJsZVN0cmVhbVNpbmsuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtU2luay5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQxMjlDOTg3MUY1ODY2MkQwMDlENzQwMyAvKiBSZWFkYWJsZVN0cmVhbVNpbmsu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVhZGFibGVTdHJlYW1T
aW5rLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEyOURGODMxQkI1QjdGNzAw
MzIyQTE2IC8qIEpTUmVhZGFibGVTdHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUmVhZGFibGVTdHJlYW1Qcml2YXRlQ29u
c3RydWN0b3JzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEyOURGODQxQkI1
QjdGNzAwMzIyQTE2IC8qIEpTUmVhZGFibGVTdHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUmVhZGFibGVTdHJlYW1Qcml2YXRlQ29u
c3RydWN0b3JzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMzAxNUQ1MUM3QjU3
MDQwMDA5MUM2RSAvKiBGZXRjaFJlc3BvbnNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEZldGNoUmVzcG9uc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTE1NjksNyArMTE1NzksOSBAQAogCQk3RUU2ODQ1RTEyRDI2RTM4MDBFNzk0MTUgLyog
UmVzb3VyY2VSZXNwb25zZUNGTmV0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlc291cmNlUmVzcG9uc2VDRk5ldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTdFRTY4NDc0MTJEMjZFNzAwMEU3OTQxNSAvKiBSZXNvdXJjZUxvYWRlckNGTmV0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlc291cmNlTG9hZGVyQ0ZO
ZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RjRDOTZEODFBRDQ0ODM1MDAz
NjVBNTAgLyogSlNGZXRjaEJvZHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNGZXRjaEJvZHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3RjRD
OTZEODFBRDQ0ODM1MDAzNjVBNTEgLyogSlNSZWFkYWJsZVN0cmVhbVNpbmsuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSZWFkYWJsZVN0cmVhbVNpbmsuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RjRDOTZEOTFBRDQ0ODM1MDAzNjVBNTAgLyog
SlNGZXRjaEJvZHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNGZXRjaEJv
ZHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0Y0Qzk2RDkxQUQ0NDgzNTAwMzY1
QTUxIC8qIEpTUmVhZGFibGVTdHJlYW1TaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTUmVhZGFibGVTdHJlYW1TaW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTgxMDJDNTg3MTMyNUJCMTEwMERERTY3QSAvKiBTdHJpbmdDYWxsYmFjay5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHJpbmdDYWxsYmFjay5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgxQUM1OTk3MTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRh
VHJhbnNmZXJJdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGFUcmFu
c2Zlckl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODFBQzU5OTgxMzE2MzZF
NjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW1MaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERhdGFUcmFuc2Zlckl0ZW1MaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xNzk5OSw2ICsxODAxMSw5IEBACiAJCQkJNDE5RkFGQUQxQUJBQkNENTAwNUI4
MjhCIC8qIFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5pZGwgKi8sCiAJCQkJOTkwOEIwRjIx
QkNBQ0Y5MTAwRUQwRjY1IC8qIFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5qcyAqLywKIAkJ
CQk5OTA4QjBGMTFCQ0FDRjkxMDBFRDBGNjUgLyogUmVhZGFibGVTdHJlYW1JbnRlcm5hbHMuanMg
Ki8sCisJCQkJNDEyOUM5ODcxRjU4NjYyRDAwOUQ3NDAzIC8qIFJlYWRhYmxlU3RyZWFtU2luay5j
cHAgKi8sCisJCQkJNDEyOUM5ODAxRjU4NjFDNzAwOUQ3NDAzIC8qIFJlYWRhYmxlU3RyZWFtU2lu
ay5oICovLAorCQkJCTQxMjlDOTgxMUY1ODYxQzcwMDlENzQwMyAvKiBSZWFkYWJsZVN0cmVhbVNp
bmsuaWRsICovLAogCQkJCTQxOEMzOTVCMUM4RjBBNjEwMDUxQzhBMyAvKiBSZWFkYWJsZVN0cmVh
bVNvdXJjZS5oICovLAogCQkJCTQxOEMzOTVDMUM4RjBBNjEwMDUxQzhBMyAvKiBSZWFkYWJsZVN0
cmVhbVNvdXJjZS5pZGwgKi8sCiAJCQkJOTkwOEIwRjExQkNBQ0Y5MTAwRUQwRjU1IC8qIFN0cmVh
bUludGVybmFscy5qcyAqLywKQEAgLTE4MTEzLDYgKzE4MTI4LDggQEAKIAkJCQk3Q0UxOTE2QTFG
MkFCNzA2MDAyNzJGNzggLyogSlNGZXRjaFJlcXVlc3RSZWRpcmVjdC5oICovLAogCQkJCThFNEM5
NkQ4MUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoUmVzcG9uc2UuY3BwICovLAogCQkJCThFNEM5
NkQ5MUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoUmVzcG9uc2UuaCAqLywKKwkJCQk3RjRDOTZE
ODFBRDQ0ODM1MDAzNjVBNTEgLyogSlNSZWFkYWJsZVN0cmVhbVNpbmsuY3BwICovLAorCQkJCTdG
NEM5NkQ5MUFENDQ4MzUwMDM2NUE1MSAvKiBKU1JlYWRhYmxlU3RyZWFtU2luay5oICovLAogCQkJ
CTdFNEM5NkQ4MUFENDQ4MzUwMDM2NUE1MSAvKiBKU1JlYWRhYmxlU3RyZWFtU291cmNlLmNwcCAq
LywKIAkJCQk3RTRDOTZEOTFBRDQ0ODM1MDAzNjVBNTEgLyogSlNSZWFkYWJsZVN0cmVhbVNvdXJj
ZS5oICovLAogCQkJKTsKQEAgLTI3NTg2LDYgKzI3NjAzLDcgQEAKIAkJCQk4NDczMEQ4NzEyNDhG
MEIzMDBEM0E5QzkgLyogRkVPZmZzZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0NzMwRDg5MTI0
OEYwQjMwMEQzQTlDOSAvKiBGRVNwZWN1bGFyTGlnaHRpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxN0E1MzVCMUY1ODhBNEMwMERDREMwQSAvKiBGZXRjaEJvZHlDb25zdW1lci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNDEyOUM5OTcxRjU5Qjk2MzAwOUQ3NDAzIC8qIEZldGNoQm9keVNvdXJjZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDFEMTI5REIxRjNEMTQzODAwRDE1RTQ3IC8qIEZldGNoSGVh
ZGVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE2RTZGRTgxQkJEMTJERjAwMEE2MDIzIC8qIEZl
dGNoSW50ZXJuYWxzQnVpbHRpbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxN0E1MzVBMUY1ODg5
RUYwMERDREMwQSAvKiBGZXRjaExvYWRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODU1Myw2ICsy
ODU3MSw3IEBACiAJCQkJNkM0Qzk2REYxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJl
YW1EZWZhdWx0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M0Qzk2REYxQUQ0NDgz
NTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0MTI5REY4NjFCQjVCODBDMDAzMjJBMTYgLyogSlNSZWFkYWJsZVN0cmVhbVByaXZh
dGVDb25zdHJ1Y3RvcnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTdGNEM5NkREMUFENDQ4MzUwMDM2
NUE1MSAvKiBKU1JlYWRhYmxlU3RyZWFtU2luay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0U0Qzk2
REQxQUQ0NDgzNTAwMzY1QTUxIC8qIEpTUmVhZGFibGVTdHJlYW1Tb3VyY2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQ5OThBRUNFMTNGOUQ2QzkwMDkwQjFBQSAvKiBKU1JlcXVlc3RBbmltYXRpb25G
cmFtZUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0UyMzM3MTFEQ0Q0NjhGMDBGMjhE
MDEgLyogSlNSc2FIYXNoZWRJbXBvcnRQYXJhbXMuaCBpbiBIZWFkZXJzICovLApAQCAtMjkzODQs
NyArMjk0MDMsOSBAQAogCQkJCUE4NEQ4MjdDMTFEMzMzRUQwMDk3Mjk5MCAvKiBSYXdEYXRhRG9j
dW1lbnRQYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNkU2RkU4MUJCRDEyREYwMDBBNjA0
MyAvKiBSZWFkYWJsZUJ5dGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDE2RTZGRTkxQkJEMTJFNTAwMEE2MDQzIC8qIFJlYWRhYmxlU3RyZWFtQnVpbHRpbnMu
aCBpbiBIZWFkZXJzICovLAorCQkJCTQxMjlDOUE5MUY1OUM1NkIwMDlENzQwMyAvKiBSZWFkYWJs
ZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTZFNkZFODFC
QkQxMkRGMDAwQTNGNjQgLyogUmVhZGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNDEyOUM5QUIxRjU5QzU3MzAwOUQ3NDAzIC8qIFJlYWRhYmxlU3RyZWFt
U291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjAzQzEyQjAyNjc2MDBDMUEzNTkgLyog
UmVhbHRpbWVBbmFseXNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDExMDNBQUQxRTM5NzkxMDAw
NzY5RjAzIC8qIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNEE0RjY1NzExQUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2UuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjk4ODMsNiArMjk5MDQsNyBAQAogCQkJCUU0NkM3OTRCMUYxM0U4MkIw
MEYzNzFFMSAvKiBTdHlsZUludmFsaWRhdGlvbkZ1bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRTQ3MTI3Q0IxNjM0MzhBRTAwRUQ2RjVBIC8qIFN0eWxlSW52YWxpZGF0b3IuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDNUVCNzJBMEU4MURFODEwMEIyNTk2NSAvKiBTdHlsZU1hcnF1ZWVEYXRh
LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTI5QzlBRjFGNTlDRjVCMDA5RDc0MDMgLyogUmVhZGFi
bGVTdHJlYW1TaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkY1MDI3MjEwMkJBOTZBMDA2NkYz
OUEgLyogU3R5bGVNZWRpYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1RUI3NEUwRTgxRTA2NzAw
QjI1OTY1IC8qIFN0eWxlTXVsdGlDb2xEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNERBQ0U2
QTFEMTJFMTBCMDA3NTk4MEYgLyogU3R5bGVQZW5kaW5nUmVzb3VyY2VzLmggaW4gSGVhZGVycyAq
LywKQEAgLTMyNTgwLDYgKzMyNjAyLDcgQEAKIAkJCQk2QzRDOTZERTFBRDQ0ODM1MDAzNjVBNTAg
LyogSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTdDNEM5NkRFMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJl
YWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTI5REY4NTFCQjVCODA3MDAzMjJBMTYgLyog
SlNSZWFkYWJsZVN0cmVhbVByaXZhdGVDb25zdHJ1Y3RvcnMuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJN0Y0Qzk2REMxQUQ0NDgzNTAwMzY1QTUxIC8qIEpTUmVhZGFibGVTdHJlYW1TaW5rLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTdFNEM5NkRDMUFENDQ4MzUwMDM2NUE1MSAvKiBKU1JlYWRhYmxl
U3RyZWFtU291cmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxOEMzOTYwMUM4RjBBQUUwMDUx
QzhBMyAvKiBKU1JlYWRhYmxlU3RyZWFtU291cmNlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTQ5OThBRUNEMTNGOUQ2QzkwMDkwQjFBQSAvKiBKU1JlcXVlc3RBbmltYXRpb25GcmFtZUNh
bGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzMzNDEsNiArMzMzNjQsNyBAQAogCQkJCTZF
ODRFOUUwMTc2NjhCRUUwMDgxNUI2OCAvKiBSYXN0ZXJTaGFwZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk0MUI0NTlFRjFGNTVFQkQxMDAwMEY2RkQgLyogUmVhZGFibGVTdHJlYW0uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDE4QzM5NjExQzhGMEFCMTAwNTFDOEEzIC8qIFJlYWRhYmxlU3RyZWFt
RGVmYXVsdENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDEyOUM5OEExRjU4N0ZF
QjAwOUQ3NDAzIC8qIFJlYWRhYmxlU3RyZWFtU2luay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlG
RDMxNjAzQjEyQjAyNjc2MDBDMUEzNTkgLyogUmVhbHRpbWVBbmFseXNlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk0MTEwM0FBRTFFMzk3OTEwMDA3NjlGMDMgLyogUmVhbHRpbWVJbmNvbWluZ0F1
ZGlvU291cmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4MzNFMUU0MzI0REMwMDYyMUU5
MiAvKiBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5jcHAKaW5kZXggNzIyNzQw
ZjdmYTRhYjAyMWQ5ZGYxMTMxMzIyNWViZTcwMzZkNDNlZC4uY2Y0ODY5NzY0OTliMjhlM2NjZGNj
MjVjODc3M2ExNTVjYmU5ZTlkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvUmVhZGFibGVTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Jl
YWRhYmxlU3RyZWFtLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlJlYWRhYmxlU3Ry
ZWFtLmgiCiAKICNpbmNsdWRlICJKU0RPTUNvbnZlcnRTZXF1ZW5jZXMuaCIKKyNpbmNsdWRlICJK
U1JlYWRhYmxlU3RyZWFtU2luay5oIgogI2luY2x1ZGUgIkpTUmVhZGFibGVTdHJlYW1Tb3VyY2Uu
aCIKICNpbmNsdWRlICJXZWJDb3JlSlNDbGllbnREYXRhLmgiCiAKQEAgLTU0LDYgKzU1LDI0IEBA
IFJlZjxSZWFkYWJsZVN0cmVhbT4gUmVhZGFibGVTdHJlYW06OmNyZWF0ZShKU0M6OkV4ZWNTdGF0
ZSYgZXhlY1N0YXRlLCBSZWZQdHI8UmVhCiAgICAgcmV0dXJuIGNyZWF0ZShnbG9iYWxPYmplY3Qs
ICpuZXdSZWFkYWJsZVN0cmVhbSk7CiB9CiAKK3ZvaWQgUmVhZGFibGVTdHJlYW06OnBpcGVUbyhS
ZWFkYWJsZVN0cmVhbVNpbmsmIHNpbmspCit7CisgICAgYXV0byYgc3RhdGUgPSAqbV9nbG9iYWxP
YmplY3QtPmdsb2JhbEV4ZWMoKTsKKyAgICBKU1ZNQ2xpZW50RGF0YSogY2xpZW50RGF0YSA9IHN0
YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4oc3RhdGUudm0oKS5jbGllbnREYXRhKTsKKyAgICBj
b25zdCBJZGVudGlmaWVyJiBwcml2YXRlTmFtZSA9IGNsaWVudERhdGEtPmJ1aWx0aW5GdW5jdGlv
bnMoKS5yZWFkYWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zKCkucmVhZGFibGVTdHJlYW1QaXBl
VG9Qcml2YXRlTmFtZSgpOworCisgICAgYXV0byByZWFkYWJsZVN0cmVhbVBpcGVUbyA9IG1fZ2xv
YmFsT2JqZWN0LT5nZXQoJnN0YXRlLCBwcml2YXRlTmFtZSk7CisgICAgQVNTRVJUKHJlYWRhYmxl
U3RyZWFtUGlwZVRvLmlzRnVuY3Rpb24oKSk7CisKKyAgICBDYWxsRGF0YSBjYWxsRGF0YTsKKyAg
ICBDYWxsVHlwZSBjYWxsVHlwZSA9IGdldENhbGxEYXRhKHJlYWRhYmxlU3RyZWFtUGlwZVRvLCBj
YWxsRGF0YSk7CisgICAgQVNTRVJUKGNhbGxUeXBlICE9IEpTQzo6Q2FsbFR5cGU6Ok5vbmUpOwor
ICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3VtZW50czsKKyAgICBhcmd1bWVudHMuYXBwZW5k
KHJlYWRhYmxlU3RyZWFtKCkpOworICAgIGFyZ3VtZW50cy5hcHBlbmQodG9KUygmc3RhdGUsIG1f
Z2xvYmFsT2JqZWN0LmdldCgpLCBzaW5rKSk7CisgICAgSlNDOjpjYWxsKCZzdGF0ZSwgcmVhZGFi
bGVTdHJlYW1QaXBlVG8sIGNhbGxUeXBlLCBjYWxsRGF0YSwgSlNDOjpqc1VuZGVmaW5lZCgpLCBh
cmd1bWVudHMpOworfQorCiBzdGQ6OnBhaXI8UmVmPFJlYWRhYmxlU3RyZWFtPiwgUmVmPFJlYWRh
YmxlU3RyZWFtPj4gUmVhZGFibGVTdHJlYW06OnRlZSgpCiB7CiAgICAgYXV0byYgc3RhdGUgPSAq
bV9nbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9SZWFkYWJsZVN0cmVhbS5oCmluZGV4IGEwYzI2YTQzNTc2OGIyZDEwYWY0MTA2ZTYxN2Y1N2Ni
MzBhMzBjOTUuLmFlNWIwZDVmYWE5MDI3MmM4NzcxNjcxNDk5MmUzZGMzNGM2NmY0OGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW0uaApAQCAtMzIsNiArMzIs
NyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFJlYWRhYmxlU3RyZWFtU2luazsK
IGNsYXNzIFJlYWRhYmxlU3RyZWFtU291cmNlOwogCiBjbGFzcyBSZWFkYWJsZVN0cmVhbSBmaW5h
bCA6IHB1YmxpYyBET01HdWFyZGVkPEpTUmVhZGFibGVTdHJlYW0+IHsKQEAgLTQyLDYgKzQzLDgg
QEAgcHVibGljOgogCiAgICAgc3RkOjpwYWlyPFJlZjxSZWFkYWJsZVN0cmVhbT4sIFJlZjxSZWFk
YWJsZVN0cmVhbT4+IHRlZSgpOwogCisgICAgdm9pZCBwaXBlVG8oUmVhZGFibGVTdHJlYW1TaW5r
Jik7CisKICAgICBKU1JlYWRhYmxlU3RyZWFtKiByZWFkYWJsZVN0cmVhbSgpIHsgcmV0dXJuIGd1
YXJkZWQoKTsgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjEyYzY5MzdmMDE3YjM5N2FlNGM0Mzdk
ODY3NmE5NTA3ZTEzOGRmNC4uZGI3NWFiNjcxM2IyZDVhYjgzYTcxMTQwYmE4MjA2NTFkZjFkMDFh
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE3LTA5LTAxICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBbRmV0Y2ggQVBJXSBBZGQgc3VwcG9ydCBmb3IgY29u
c3VtaW5nIGEgUmVxdWVzdCBSZWFkYWJsZVN0cmVhbSBib2R5CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYxODIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3Ry
ZWFtLWRpc3R1cmJlZC0xLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3dwdC9mZXRjaC9y
ZXF1ZXN0LXN0cmVhbS1kaXN0dXJiZWQtMi1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC93
cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZGlzdHVyYmVkLTMtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGh0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWVtcHR5LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZW1wdHkuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZXJyb3ItZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVh
bS1lcnJvci5odG1sOiBBZGRlZC4KKwogMjAxNy0wOS0wMSAgTXMyZ2VyICA8TXMyZ2VyQGlnYWxp
YS5jb20+CiAKICAgICAgICAgW0dUS10gTWFyayBhdWRpby1tcGVnLXN1cHBvcnRlZC5odG1sIGFz
IHBhc3NpbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0
LXN0cmVhbS1kaXN0dXJiZWQtMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9m
ZXRjaC9yZXF1ZXN0LXN0cmVhbS1kaXN0dXJiZWQtMS1leHBlY3RlZC50eHQKaW5kZXggYjg1NDZi
ZWExZDc4MGFiMjI0MzFhY2M4YmYyZThlMzcyZjJiMjM2Yy4uYTdmN2IyNDJlMWI1ZmI3NGI4M2Ez
NjA1NmNhMzY4NDJkNTNmMTkzNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0
Y2gvcmVxdWVzdC1zdHJlYW0tZGlzdHVyYmVkLTEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWRpc3R1cmJlZC0xLWV4cGVjdGVkLnR4
dApAQCAtMSw2ICsxLDYgQEAKIAogUEFTUyBHZXR0aW5nIGJsb2IgYWZ0ZXIgZ2V0dGluZyB0aGUg
UmVxdWVzdCBib2R5IC0gbm90IGRpc3R1cmJlZCwgbm90IGxvY2tlZCAKLUZBSUwgR2V0dGluZyB0
ZXh0IGFmdGVyIGdldHRpbmcgdGhlIFJlcXVlc3QgYm9keSAtIG5vdCBkaXN0dXJiZWQsIG5vdCBs
b2NrZWQgYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIEdldHRpbmcg
anNvbiBhZnRlciBnZXR0aW5nIHRoZSBSZXF1ZXN0IGJvZHkgLSBub3QgZGlzdHVyYmVkLCBub3Qg
bG9ja2VkIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmpl
Y3QgIlN5bnRheEVycm9yOiBUaGUgc3RyaW5nIGRpZCBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIHBh
dHRlcm4uIgotRkFJTCBHZXR0aW5nIGFycmF5QnVmZmVyIGFmdGVyIGdldHRpbmcgdGhlIFJlcXVl
c3QgYm9keSAtIG5vdCBkaXN0dXJiZWQsIG5vdCBsb2NrZWQgYXNzZXJ0X3RydWU6IGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCitQQVNTIEdldHRpbmcgdGV4dCBhZnRlciBnZXR0aW5nIHRoZSBSZXF1
ZXN0IGJvZHkgLSBub3QgZGlzdHVyYmVkLCBub3QgbG9ja2VkIAorUEFTUyBHZXR0aW5nIGpzb24g
YWZ0ZXIgZ2V0dGluZyB0aGUgUmVxdWVzdCBib2R5IC0gbm90IGRpc3R1cmJlZCwgbm90IGxvY2tl
ZCAKK1BBU1MgR2V0dGluZyBhcnJheUJ1ZmZlciBhZnRlciBnZXR0aW5nIHRoZSBSZXF1ZXN0IGJv
ZHkgLSBub3QgZGlzdHVyYmVkLCBub3QgbG9ja2VkIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1kaXN0dXJiZWQtMi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1kaXN0dXJiZWQtMi1l
eHBlY3RlZC50eHQKaW5kZXggZjJiOWIyZTVmY2U5MzU2ZDE1MzYyYjJhMWVhYTY1MTA4YjA2NjM2
Ny4uZGVjYmZkNGM5ODFkMGE3YzI0MzYxMDEzMWYwYmQ5ZWQwZDdhMjY2MyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZGlzdHVyYmVkLTItZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFt
LWRpc3R1cmJlZC0yLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDYgQEAKIAotRkFJTCBHZXR0aW5n
IGJsb2IgYWZ0ZXIgZ2V0dGluZyBhIGxvY2tlZCBSZXF1ZXN0IGJvZHkgYXNzZXJ0X3VucmVhY2hl
ZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNv
ZGUKLUZBSUwgR2V0dGluZyB0ZXh0IGFmdGVyIGdldHRpbmcgYSBsb2NrZWQgUmVxdWVzdCBib2R5
IGFzc2VydF91bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hl
ZCB1bnJlYWNoYWJsZSBjb2RlCi1GQUlMIEdldHRpbmcganNvbiBhZnRlciBnZXR0aW5nIGEgbG9j
a2VkIFJlcXVlc3QgYm9keSBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0
aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiU3ludGF4RXJyb3I6IFRoZSBzdHJpbmcgZGlkIG5vdCBt
YXRjaCB0aGUgZXhwZWN0ZWQgcGF0dGVybi4iICgiU3ludGF4RXJyb3IiKSBleHBlY3RlZCBvYmpl
Y3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQotRkFJTCBHZXR0aW5nIGFycmF5QnVmZmVyIGFm
dGVyIGdldHRpbmcgYSBsb2NrZWQgUmVxdWVzdCBib2R5IGFzc2VydF91bnJlYWNoZWQ6IFNob3Vs
ZCBoYXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCitQQVNT
IEdldHRpbmcgYmxvYiBhZnRlciBnZXR0aW5nIGEgbG9ja2VkIFJlcXVlc3QgYm9keSAKK1BBU1Mg
R2V0dGluZyB0ZXh0IGFmdGVyIGdldHRpbmcgYSBsb2NrZWQgUmVxdWVzdCBib2R5IAorUEFTUyBH
ZXR0aW5nIGpzb24gYWZ0ZXIgZ2V0dGluZyBhIGxvY2tlZCBSZXF1ZXN0IGJvZHkgCitQQVNTIEdl
dHRpbmcgYXJyYXlCdWZmZXIgYWZ0ZXIgZ2V0dGluZyBhIGxvY2tlZCBSZXF1ZXN0IGJvZHkgCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWRp
c3R1cmJlZC0zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVl
c3Qtc3RyZWFtLWRpc3R1cmJlZC0zLWV4cGVjdGVkLnR4dAppbmRleCBiOTNlM2E2ZmVhZDEzYThm
YWJjYjQ3MTdmNDQ4ZTQ3MGYzZTlkZjk0Li41MmVkNjMwZTRiNWZjYTZjMTdjNTEzYTNiOTRmOGQ2
MzFkMWUyNTE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0
LXN0cmVhbS1kaXN0dXJiZWQtMy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93
cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZGlzdHVyYmVkLTMtZXhwZWN0ZWQudHh0CkBAIC0xLDYg
KzEsNiBAQAogCi1GQUlMIEdldHRpbmcgYmxvYiBhZnRlciByZWFkaW5nIHRoZSBSZXF1ZXN0IGJv
ZHkgYXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFj
aGVkIHVucmVhY2hhYmxlIGNvZGUKLUZBSUwgR2V0dGluZyB0ZXh0IGFmdGVyIHJlYWRpbmcgdGhl
IFJlcXVlc3QgYm9keSBhc3NlcnRfdW5yZWFjaGVkOiBTaG91bGQgaGF2ZSByZWplY3RlZDogdW5k
ZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQotRkFJTCBHZXR0aW5nIGpzb24gYWZ0ZXIg
cmVhZGluZyB0aGUgUmVxdWVzdCBib2R5IGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlv
biAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJTeW50YXhFcnJvcjogVGhlIHN0cmluZyBk
aWQgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBwYXR0ZXJuLiIgKCJTeW50YXhFcnJvciIpIGV4cGVj
dGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCi1GQUlMIEdldHRpbmcgYXJyYXlC
dWZmZXIgYWZ0ZXIgcmVhZGluZyB0aGUgUmVxdWVzdCBib2R5IGFzc2VydF91bnJlYWNoZWQ6IFNo
b3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCitQ
QVNTIEdldHRpbmcgYmxvYiBhZnRlciByZWFkaW5nIHRoZSBSZXF1ZXN0IGJvZHkgCitQQVNTIEdl
dHRpbmcgdGV4dCBhZnRlciByZWFkaW5nIHRoZSBSZXF1ZXN0IGJvZHkgCitQQVNTIEdldHRpbmcg
anNvbiBhZnRlciByZWFkaW5nIHRoZSBSZXF1ZXN0IGJvZHkgCitQQVNTIEdldHRpbmcgYXJyYXlC
dWZmZXIgYWZ0ZXIgcmVhZGluZyB0aGUgUmVxdWVzdCBib2R5IAogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1lbXB0eS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1lbXB0eS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZThiMWVjYTMxNjNlMzZiYjgzMGU1M2RmNTVkNDA3ZjYwMzc1NWQ5
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qt
c3RyZWFtLWVtcHR5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKworUEFTUyBFbXB0eSBz
dHJlYW0gYm9keSBhcyB0ZXh0IAorUEFTUyBFbXB0eSBzdHJlYW0gYm9keSBhcyBhcnJheUJ1ZmZl
ciAKK1BBU1MgRW1wdHkgc3RyZWFtIGJvZHkgYXMgSlNPTiAKK1BBU1MgRW1wdHkgc3RyZWFtIGJv
ZHkgYXMgYmxvYiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVx
dWVzdC1zdHJlYW0tZW1wdHkuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVl
c3Qtc3RyZWFtLWVtcHR5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjAyZjk4NDQ1NzJhOTVjMmQxNzNlOGMy
MDQwODBmZjFlOTEwNjgxOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0
L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWVtcHR5Lmh0bWwKQEAgLTAsMCArMSw1MCBAQAorPCFkb2N0
eXBlIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
ICAgIDx0aXRsZT5Db25zdW1pbmcgUmVxdWVzdCBib2R5IHdpdGggbm9uIEJ1ZmZlclNvdXJjZSBS
ZWFkYWJsZVN0cmVhbSBjaHVua3M8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAg
PHNjcmlwdD4KK2Z1bmN0aW9uIGNyZWF0ZVJlcXVlc3RXaXRoRW1wdHlSZWFkYWJsZVN0cmVhbSgp
Cit7CisgICAgdmFyIHN0cmVhbSA9IG5ldyBSZWFkYWJsZVN0cmVhbSh7c3RhcnQ6IGNvbnRyb2xs
ZXIgPT4geworICAgICAgICBjb250cm9sbGVyLmNsb3NlKCk7CisgICAgfX0pOworICAgIHJldHVy
biBuZXcgUmVxdWVzdCgiIiwge2JvZHk6IHN0cmVhbSwgbWV0aG9kOiAiUE9TVCJ9KTsKK30KKwor
cHJvbWlzZV90ZXN0KHRlc3QgPT4geworICAgIHJldHVybiBjcmVhdGVSZXF1ZXN0V2l0aEVtcHR5
UmVhZGFibGVTdHJlYW0oKS50ZXh0KCkudGhlbih0ZXh0ID0+IHsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyh0ZXh0LCAiIik7CisgICAgfSk7Cit9LCAiRW1wdHkgc3RyZWFtIGJvZHkgYXMgdGV4dCIp
OworCitwcm9taXNlX3Rlc3QodGVzdCA9PiB7CisgICAgcmV0dXJuIGNyZWF0ZVJlcXVlc3RXaXRo
RW1wdHlSZWFkYWJsZVN0cmVhbSgpLmFycmF5QnVmZmVyKCkudGhlbihidWZmZXIgPT4geworICAg
ICAgICBhc3NlcnRfZXF1YWxzKGJ1ZmZlci5ieXRlTGVuZ3RoLCAwLCAiUmVzb2x2ZWQgdmFsdWUg
c2hvdWxkIGJlIGVtcHR5Iik7CisgICAgfSk7Cit9LCAiRW1wdHkgc3RyZWFtIGJvZHkgYXMgYXJy
YXlCdWZmZXIiKTsKKworcHJvbWlzZV90ZXN0KHRlc3QgPT4geworICAgIHJldHVybiBwcm9taXNl
X3JlamVjdHModGVzdCwgIlN5bnRheEVycm9yIiwgY3JlYXRlUmVxdWVzdFdpdGhFbXB0eVJlYWRh
YmxlU3RyZWFtKCkuanNvbigpKTsKK30sICJFbXB0eSBzdHJlYW0gYm9keSBhcyBKU09OIik7CisK
K3Byb21pc2VfdGVzdCh0ZXN0ID0+IHsKKyAgICByZXR1cm4gY3JlYXRlUmVxdWVzdFdpdGhFbXB0
eVJlYWRhYmxlU3RyZWFtKCkuYmxvYigpLnRoZW4oZnVuY3Rpb24oYm9keUFzQmxvYikgeworICAg
ICAgICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkg
eworICAgICAgICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7CisgICAgICAgICAg
ICByZWFkZXIub25sb2FkID0gKCkgPT4geyByZXNvbHZlKHJlYWRlci5yZXN1bHQpIH07CisgICAg
ICAgICAgICByZWFkZXIub25lcnJvciA9ICgpID0+IHsgcmVqZWN0KCJCbG9iJ3MgcmVhZGVyIGZh
aWxlZCIpOyB9OworICAgICAgICAgICAgcmVhZGVyLnJlYWRBc1RleHQoYm9keUFzQmxvYik7Cisg
ICAgICAgIH0pOworICAgICAgICByZXR1cm4gcHJvbWlzZS50aGVuKGZ1bmN0aW9uKGJvZHkpIHsK
KyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoYm9keSwgIiIsICJSZXNvbHZlZCB2YWx1ZSBzaG91
bGQgYmUgZW1wdHkiKTsKKyAgICAgICAgfSk7CisgIH0pOworfSwgIkVtcHR5IHN0cmVhbSBib2R5
IGFzIGJsb2IiKTsKKyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZXJyb3ItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZXJyb3It
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM1NGZiNDllMmQwZTM2NTBjOTYxMjA3NTE2YWNlOTc0
MThkOTIzODQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9y
ZXF1ZXN0LXN0cmVhbS1lcnJvci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1Mg
UmVxdWVzdCBib2R5IHNob3VsZCBvbmx5IGNvbnRhaW4gQnVmZmVyU291cmNlIGNodW5rcyAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZXJy
b3IuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWVycm9y
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZTE5ZTQ4ZGFhODJlYTIxMGZjMDNjNWYxM2IwNjI2Mzc5ZTFjOGUw
ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qt
c3RyZWFtLWVycm9yLmh0bWwKQEAgLTAsMCArMSwyMSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRt
bD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAgIDx0aXRsZT5Db25z
dW1pbmcgUmVxdWVzdCBib2R5IHdpdGggbm9uIEJ1ZmZlclNvdXJjZSBSZWFkYWJsZVN0cmVhbSBj
aHVua3M8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNjcmlwdD4KK3Byb21p
c2VfdGVzdCh0ZXN0ID0+IHsKKyAgICB2YXIgc3RyZWFtID0gbmV3IFJlYWRhYmxlU3RyZWFtKHtz
dGFydDogY29udHJvbGxlciA9PiB7CisgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZSgiVGhpcyBp
cyBub3QgYSBidWZmZXIiKTsKKyAgICAgICAgY29udHJvbGxlci5jbG9zZSgpOworICAgIH19KTsK
KyAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCIiLCB7Ym9keTogc3RyZWFtLCBtZXRob2Q6
ICJQT1NUIn0pOworICAgIHJldHVybiBwcm9taXNlX3JlamVjdHModGVzdCwgbmV3IFR5cGVFcnJv
ciwgcmVxdWVzdC50ZXh0KCkpOworfSwgIlJlcXVlc3QgYm9keSBzaG91bGQgb25seSBjb250YWlu
IEJ1ZmZlclNvdXJjZSBjaHVua3MiKTsKKyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1s
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319653</attachid>
            <date>2017-09-01 15:21:56 -0700</date>
            <delta_ts>2017-09-01 15:53:26 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-176182-20170901152155.patch</filename>
            <type>text/plain</type>
            <size>46779</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGI4NTEzYWQ0NTQyYjNk
OWMxZGE0MDY4NGMzOWVlNmYxZGQ0MmI3MS4uZGUwZDhhYzc3M2Q1MjA4MTVlNjhhN2QyM2NhN2Fi
NDNkNzYxYWMyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE3LTA5LTAxICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBbRmV0Y2ggQVBJXSBBZGQg
c3VwcG9ydCBmb3IgY29uc3VtaW5nIGEgUmVxdWVzdCBSZWFkYWJsZVN0cmVhbSBib2R5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYxODIKKworICAg
ICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIFRlc3RzOiBodHRw
L3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1lbXB0eS5odG1sCisgICAgICAgICAgICAgICBodHRw
L3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1lcnJvci5odG1sCisKKyAgICAgICAgQWRkaW5nIGEg
UmVhZGFibGVTdHJlYW1TaW5rIHdoaWNoIGFsbG93cyB0byBwaXBlIGFsbCBSZWFkYWJsZVN0cmVh
bSBkYXRhIGJhY2sgdG8gQysrIGNvZGUuCisgICAgICAgIFRoaXMgc2luayBvbmx5IHRha2VzIEJ1
ZmZlclNvdXJjZSBhcyB0aGUgb25seSB1c2VyIGlzIEZldGNoIHdoaWNoIGhhcyB0aGlzIHJlc3Ry
aWN0aW9uLgorICAgICAgICBUaGlzIHNpbmsgaXMgdGllZCB0byB0aGUgcmVhZGFibGVTdHJlYW1Q
aXBlVG8gYnVpbHRpbiBpbnRlcm5hbCBmdW5jdGlvbiB0aGF0IHJlYWRzIGFsbCBkYXRhIGZyb20g
dGhlIFJlYWRhYmxlU3RyZWFtCisgICAgICAgIGFuZCBzZW5kIGl0IHRvIHRoZSBzaW5rLgorCisg
ICAgICAgIEFkZGluZyBhIFJlYWRhYmxlU3RyZWFtVG9TaGFyZWRCdWZmZXJTaW5rIHNwZWNpYWxp
emF0aW9uIHRvIGdldCB0aGUgZGF0YSBhcyBhIFNoYXJlZEJ1ZmZlci4KKworICAgICAgICBVc2Ug
dGhhdCBjbGFzcyBpbiBGZXRjaEJvZHlDb25zdW1lciB0byBnZXQgdGhlIGRhdGEgYmFjayBmcm9t
IHRoZSBSZWFkYWJsZVN0cmVhbSBhbmQgdHJhbnNmb3JtIGl0IGFjY29yZGluZworICAgICAgICB0
aGUgZGVzaXJlZCBib2R5IHR5cGUgKHRleHQsIEpTT04sIEFycmF5QnVmZmVyKS4KKworICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAg
ICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmV0
Y2hCb2R5Ojpjb25zdW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keTo6bG9hZGluZ1N1
Y2NlZWRlZCk6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpyZXNvbHZlV2l0aFR5cGVBbmREYXRhKToKKyAgICAgICAgKFdl
YkNvcmU6OkZldGNoQm9keUNvbnN1bWVyOjpjbGVhbik6CisgICAgICAgIChXZWJDb3JlOjpGZXRj
aEJvZHlDb25zdW1lcjo6cmVzb2x2ZVdpdGhEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNo
Qm9keUNvbnN1bWVyOjpyZXNvbHZlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoQm9k
eUNvbnN1bWVyLmg6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVzcG9uc2U6OmZpbmlzaENvbnN1bWluZ1N0cmVhbSk6
CisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzOgor
ICAgICAgICAocmVhZGFibGVTdHJlYW1QaXBlVG8pOgorICAgICAgICAqIE1vZHVsZXMvc3RyZWFt
cy9SZWFkYWJsZVN0cmVhbVNpbmsuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlYWRh
YmxlU3RyZWFtVG9TaGFyZWRCdWZmZXJTaW5rOjpSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVy
U2luayk6CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2lu
azo6cGlwZUZyb20pOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW1Ub1NoYXJlZEJ1
ZmZlclNpbms6OmVucXVldWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW1Ub1No
YXJlZEJ1ZmZlclNpbms6OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlU3RyZWFt
VG9TaGFyZWRCdWZmZXJTaW5rOjplcnJvcik6CisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1Jl
YWRhYmxlU3RyZWFtU2luay5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVh
ZGFibGVTdHJlYW1TaW5rLmlkbDogQWRkZWQuCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlU3RyZWFtOjpwaXBlVG8pOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtLmg6CisKIDIwMTctMDgtMzEgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFsbG93IHJldHJpZXZpbmcgQ2FjaGUg
U3RvcmFnZSByZWNvcmRzIGZvciBhIGdpdmVuIFVSTCBvbmx5CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IGQyNDc4NjNiNWNjMjJjNGJlMjcxYWVmZDJkYTdhZDI0MzkzMTc5N2UuLjU4YjRmOWI0NzA0
MzQ1MDkzNThmN2JkODhiZTI2NmFkM2JmNmE0ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0z
MjUsNiArMzI1LDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVz
L3N0cmVhbXMvUmVhZGFibGVTdHJlYW1CWU9CUmVxdWVzdC5pZGwKICAgICBNb2R1bGVzL3N0cmVh
bXMvUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5pZGwKICAgICBNb2R1bGVzL3N0cmVh
bXMvUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmlkbAorICAgIE1vZHVsZXMvc3RyZWFtcy9S
ZWFkYWJsZVN0cmVhbVNpbmsuaWRsCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFt
U291cmNlLmlkbAogICAgIE1vZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0cmVhbS5pZGwKIApAQCAt
MTA3MCw2ICsxMDcxLDggQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5jcHAKICAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hT
eW50aGVzaXNWb2ljZS5jcHAKIAorICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNp
bmsuY3BwCisKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0FuYWx5c2VyTm9kZS5jcHAKICAgICBNb2R1
bGVzL3dlYmF1ZGlvL0FzeW5jQXVkaW9EZWNvZGVyLmNwcAogICAgIE1vZHVsZXMvd2ViYXVkaW8v
QXVkaW9CYXNpY0luc3BlY3Rvck5vZGUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpp
bmRleCA3MjI0ZmRlZDVlMTBlNjUwMzE3MTI4OTI0MGYyYWI1MjJkZDM5ODI5Li44ODhkMzViNWYz
NDMyMDY4YTI0MmFjMDUzZWY0N2M3MmE2MzY1ZDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKQEAgLTI3Niw2ICsyNzYsNyBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1CWU9CUmVxdWVzdC5pZGwgXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xs
ZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbURl
ZmF1bHRSZWFkZXIuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJs
ZVN0cmVhbVNpbmsuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJs
ZVN0cmVhbVNvdXJjZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL1dyaXRh
YmxlU3RyZWFtLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0FuYWx5c2Vy
Tm9kZS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRj
aEJvZHkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuY3BwCmlu
ZGV4IDQzM2U5NGI1ZTdmYjM2ODU5YTdlMzJhZWI5MDk1ZjVkZjYxMGQwMTAuLjM0MDQ5NjcxNDU1
MWZjNTk1YTZjOGI4YmVlMmFhNzZjMDU4NTJjMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZldGNoL0ZldGNoQm9keS5jcHAKQEAgLTEzOCw3ICsxMzgsNyBAQCB2b2lkIEZldGNoQm9keTo6
Y29uc3VtZShGZXRjaEJvZHlPd25lciYgb3duZXIsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJv
bWlzZSkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fY29uc3VtZXIucmVzb2x2ZShX
VEZNb3ZlKHByb21pc2UpKTsKKyAgICBtX2NvbnN1bWVyLnJlc29sdmUoV1RGTW92ZShwcm9taXNl
KSwgbV9yZWFkYWJsZVN0cmVhbS5nZXQoKSk7CiB9CiAKICNpZiBFTkFCTEUoU1RSRUFNU19BUEkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1
bWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIu
Y3BwCmluZGV4IDlkMDE4NDhjZTRhNzY2MjRjZmZjY2U4MGNkODdkZTExNzA1MThiYTIuLmI5ZWUx
ZTEzNmI1NGM1OGIzN2ZlM2U5OWIxYWRiNmM4MzU1MTViODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIuY3BwCkBAIC01NiwyOSArNTYs
NjAgQEAgc3RhdGljIFN0cmluZyB0ZXh0RnJvbVVURjgoY29uc3QgdW5zaWduZWQgY2hhciogZGF0
YSwgdW5zaWduZWQgbGVuZ3RoKQogICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGVBbmRGbHVzaChy
ZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihkYXRhKSwgbGVuZ3RoKTsKIH0KIAotdm9pZCBG
ZXRjaEJvZHlDb25zdW1lcjo6cmVzb2x2ZVdpdGhEYXRhKFJlZjxEZWZlcnJlZFByb21pc2U+JiYg
cHJvbWlzZSwgY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKQorc3Rh
dGljIHZvaWQgcmVzb2x2ZVdpdGhUeXBlQW5kRGF0YShSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHBy
b21pc2UsIEZldGNoQm9keUNvbnN1bWVyOjpUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgY29udGVu
dFR5cGUsIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKIHsKLSAg
ICBzd2l0Y2ggKG1fdHlwZSkgewotICAgIGNhc2UgVHlwZTo6QXJyYXlCdWZmZXI6CisgICAgc3dp
dGNoICh0eXBlKSB7CisgICAgY2FzZSBGZXRjaEJvZHlDb25zdW1lcjo6VHlwZTo6QXJyYXlCdWZm
ZXI6CiAgICAgICAgIGZ1bGZpbGxQcm9taXNlV2l0aEFycmF5QnVmZmVyKFdURk1vdmUocHJvbWlz
ZSksIGRhdGEsIGxlbmd0aCk7CiAgICAgICAgIHJldHVybjsKLSAgICBjYXNlIFR5cGU6OkJsb2I6
Ci0gICAgICAgIHByb21pc2UtPnJlc29sdmVXaXRoTmV3bHlDcmVhdGVkPElETEludGVyZmFjZTxC
bG9iPj4oYmxvYkZyb21EYXRhKGRhdGEsIGxlbmd0aCwgbV9jb250ZW50VHlwZSkuZ2V0KCkpOwor
ICAgIGNhc2UgRmV0Y2hCb2R5Q29uc3VtZXI6OlR5cGU6OkJsb2I6CisgICAgICAgIHByb21pc2Ut
PnJlc29sdmVXaXRoTmV3bHlDcmVhdGVkPElETEludGVyZmFjZTxCbG9iPj4oYmxvYkZyb21EYXRh
KGRhdGEsIGxlbmd0aCwgY29udGVudFR5cGUpLmdldCgpKTsKICAgICAgICAgcmV0dXJuOwotICAg
IGNhc2UgVHlwZTo6SlNPTjoKKyAgICBjYXNlIEZldGNoQm9keUNvbnN1bWVyOjpUeXBlOjpKU09O
OgogICAgICAgICBmdWxmaWxsUHJvbWlzZVdpdGhKU09OKFdURk1vdmUocHJvbWlzZSksIHRleHRG
cm9tVVRGOChkYXRhLCBsZW5ndGgpKTsKICAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgVHlwZTo6
VGV4dDoKKyAgICBjYXNlIEZldGNoQm9keUNvbnN1bWVyOjpUeXBlOjpUZXh0OgogICAgICAgICBw
cm9taXNlLT5yZXNvbHZlPElETERPTVN0cmluZz4odGV4dEZyb21VVEY4KGRhdGEsIGxlbmd0aCkp
OwogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBUeXBlOjpOb25lOgorICAgIGNhc2UgRmV0Y2hC
b2R5Q29uc3VtZXI6OlR5cGU6Ok5vbmU6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogfQogCi12b2lkIEZldGNoQm9keUNvbnN1bWVyOjpyZXNv
bHZlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKK3ZvaWQgRmV0Y2hCb2R5Q29uc3Vt
ZXI6OmNsZWFuKCkKK3sKKyAgICBtX2J1ZmZlciA9IG51bGxwdHI7CisgICAgbV9jb25zdW1lUHJv
bWlzZSA9IG51bGxwdHI7CisgICAgaWYgKG1fc2luaykgeworICAgICAgICBtX3NpbmstPmNsZWFy
Q2FsbGJhY2soKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KK30KKwordm9pZCBGZXRjaEJvZHlD
b25zdW1lcjo6cmVzb2x2ZVdpdGhEYXRhKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSwg
Y29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKQoreworICAgIHJlc29s
dmVXaXRoVHlwZUFuZERhdGEoV1RGTW92ZShwcm9taXNlKSwgbV90eXBlLCBtX2NvbnRlbnRUeXBl
LCBkYXRhLCBsZW5ndGgpOworfQorCit2b2lkIEZldGNoQm9keUNvbnN1bWVyOjpyZXNvbHZlKFJl
ZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSwgUmVhZGFibGVTdHJlYW0qIHN0cmVhbSkKIHsK
KyAgICBpZiAoc3RyZWFtKSB7CisgICAgICAgIEFTU0VSVCghbV9zaW5rKTsKKyAgICAgICAgbV9z
aW5rID0gUmVhZGFibGVTdHJlYW1Ub1NoYXJlZEJ1ZmZlclNpbms6OmNyZWF0ZShbcHJvbWlzZSA9
IFdURk1vdmUocHJvbWlzZSksIHR5cGUgPSBtX3R5cGUsIGNvbnRlbnRUeXBlID0gbV9jb250ZW50
VHlwZV0oRXhjZXB0aW9uT3I8UmVmUHRyPFNoYXJlZEJ1ZmZlcj4+JiYgcmVzdWx0KSBtdXRhYmxl
IHsKKyAgICAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKKyAgICAgICAgICAg
ICAgICBwcm9taXNlLT5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBhdXRvKiBkYXRh
ID0gcmVzdWx0LnJldHVyblZhbHVlKCkgJiYgcmVzdWx0LnJldHVyblZhbHVlKCktPmRhdGEoKSA/
IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdW5zaWduZWQgY2hhcio+KHJlc3VsdC5yZXR1cm5WYWx1
ZSgpLT5kYXRhKCkpIDogbnVsbHB0cjsKKyAgICAgICAgICAgIGF1dG8gc2l6ZSA9IGRhdGEgPyBy
ZXN1bHQucmV0dXJuVmFsdWUoKS0+c2l6ZSgpIDogMDsKKyAgICAgICAgICAgIHJlc29sdmVXaXRo
VHlwZUFuZERhdGEoV1RGTW92ZShwcm9taXNlKSwgdHlwZSwgY29udGVudFR5cGUsIGRhdGEsIHNp
emUpOworICAgICAgICB9KTsKKyAgICAgICAgbV9zaW5rLT5waXBlRnJvbSgqc3RyZWFtKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIEFTU0VSVChtX3R5cGUgIT0gVHlwZTo6Tm9uZSk7
CiAgICAgc3dpdGNoIChtX3R5cGUpIHsKICAgICBjYXNlIFR5cGU6OkFycmF5QnVmZmVyOgpAQCAt
OTksMTggKzEzMCwyMiBAQCB2b2lkIEZldGNoQm9keUNvbnN1bWVyOjpyZXNvbHZlKFJlZjxEZWZl
cnJlZFByb21pc2U+JiYgcHJvbWlzZSkKICAgICB9CiB9CiAKLXZvaWQgRmV0Y2hCb2R5Q29uc3Vt
ZXI6OmFwcGVuZChjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCit2b2lkIEZldGNo
Qm9keUNvbnN1bWVyOjphcHBlbmQoY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgc2l6ZSkKIHsK
KyAgICBpZiAobV9zb3VyY2UpIHsKKyAgICAgICAgbV9zb3VyY2UtPmVucXVldWUoQXJyYXlCdWZm
ZXI6OnRyeUNyZWF0ZShkYXRhLCBzaXplKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAg
aWYgKCFtX2J1ZmZlcikgewotICAgICAgICBtX2J1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRl
KGRhdGEsIGxlbmd0aCk7CisgICAgICAgIG1fYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUo
ZGF0YSwgc2l6ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgbV9idWZmZXItPmFwcGVu
ZChkYXRhLCBsZW5ndGgpOworICAgIG1fYnVmZmVyLT5hcHBlbmQoZGF0YSwgc2l6ZSk7CiB9CiAK
LXZvaWQgRmV0Y2hCb2R5Q29uc3VtZXI6OmFwcGVuZChjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRh
LCB1bnNpZ25lZCBsZW5ndGgpCit2b2lkIEZldGNoQm9keUNvbnN1bWVyOjphcHBlbmQoY29uc3Qg
dW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgc2l6ZSkKIHsKLSAgICBhcHBlbmQocmVpbnRl
cnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YSksIGxlbmd0aCk7CisgICAgYXBwZW5kKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEpLCBzaXplKTsKIH0KIAogUmVmUHRyPFNoYXJl
ZEJ1ZmZlcj4gRmV0Y2hCb2R5Q29uc3VtZXI6OnRha2VEYXRhKCkKQEAgLTE1NCwyNCArMTg5LDM1
IEBAIHZvaWQgRmV0Y2hCb2R5Q29uc3VtZXI6OnNldENvbnN1bWVQcm9taXNlKFJlZjxEZWZlcnJl
ZFByb21pc2U+JiYgcHJvbWlzZSkKICAgICBtX2NvbnN1bWVQcm9taXNlID0gV1RGTW92ZShwcm9t
aXNlKTsKIH0KIAordm9pZCBGZXRjaEJvZHlDb25zdW1lcjo6c2V0U291cmNlKFJlZjxGZXRjaEJv
ZHlTb3VyY2U+JiYgc291cmNlKQoreworICAgIG1fc291cmNlID0gV1RGTW92ZShzb3VyY2UpOwor
ICAgIGlmIChtX2J1ZmZlcikgeworICAgICAgICBtX3NvdXJjZS0+ZW5xdWV1ZShtX2J1ZmZlci0+
dHJ5Q3JlYXRlQXJyYXlCdWZmZXIoKSk7CisgICAgICAgIG1fYnVmZmVyID0gbnVsbHB0cjsKKyAg
ICB9Cit9CisKIHZvaWQgRmV0Y2hCb2R5Q29uc3VtZXI6OmxvYWRpbmdGYWlsZWQoKQogewogICAg
IGlmIChtX2NvbnN1bWVQcm9taXNlKSB7CiAgICAgICAgIG1fY29uc3VtZVByb21pc2UtPnJlamVj
dCgpOwogICAgICAgICBtX2NvbnN1bWVQcm9taXNlID0gbnVsbHB0cjsKICAgICB9CisgICAgaWYg
KG1fc291cmNlKSB7CisgICAgICAgIG1fc291cmNlLT5lcnJvcihBU0NJSUxpdGVyYWwoIkxvYWRp
bmcgZmFpbGVkIikpOworICAgICAgICBtX3NvdXJjZSA9IG51bGxwdHI7CisgICAgfQogfQogCiB2
b2lkIEZldGNoQm9keUNvbnN1bWVyOjpsb2FkaW5nU3VjY2VlZGVkKCkKIHsKICAgICBpZiAobV9j
b25zdW1lUHJvbWlzZSkKLSAgICAgICAgcmVzb2x2ZShtX2NvbnN1bWVQcm9taXNlLnJlbGVhc2VO
b25OdWxsKCkpOwotfQotCi12b2lkIEZldGNoQm9keUNvbnN1bWVyOjpjbGVhbigpCi17Ci0gICAg
bV9idWZmZXIgPSBudWxscHRyOwotICAgIG1fY29uc3VtZVByb21pc2UgPSBudWxscHRyOworICAg
ICAgICByZXNvbHZlKG1fY29uc3VtZVByb21pc2UucmVsZWFzZU5vbk51bGwoKSwgbnVsbHB0cik7
CisgICAgaWYgKG1fc291cmNlKSB7CisgICAgICAgIG1fc291cmNlLT5jbG9zZSgpOworICAgICAg
ICBtX3NvdXJjZSA9IG51bGxwdHI7CisgICAgfQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1
bWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmgK
aW5kZXggMWI2NmEzZDk4ZWQ1N2ZkMDk2MTIyZWM3YzQ4NWZmYzM4OWQyMTUzOC4uZGZkOGZiMWNi
ZjRmY2JlZDc2NjNlOTgzNjlkMGM1ZWEyNGZjOWYxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIuaApAQCAtMjgsMTIgKzI4LDE2IEBACiAK
ICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiRmV0Y2hCb2R5U291cmNlLmgiCiAjaW5jbHVkZSAi
SlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlICJSZWFkYWJsZVN0cmVhbVNpbmsuaCIK
ICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBCbG9iOworY2xhc3MgRmV0Y2hCb2R5U291cmNlOworY2xhc3MgUmVhZGFibGVTdHJlYW07CiAK
IGNsYXNzIEZldGNoQm9keUNvbnN1bWVyIHsKIHB1YmxpYzoKQEAgLTU3LDcgKzYxLDcgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBjbGVhbigpOwogCi0gICAgdm9pZCByZXNvbHZlKFJlZjxEZWZlcnJl
ZFByb21pc2U+JiYpOworICAgIHZvaWQgcmVzb2x2ZShSZWY8RGVmZXJyZWRQcm9taXNlPiYmLCBS
ZWFkYWJsZVN0cmVhbSopOwogICAgIHZvaWQgcmVzb2x2ZVdpdGhEYXRhKFJlZjxEZWZlcnJlZFBy
b21pc2U+JiYsIGNvbnN0IHVuc2lnbmVkIGNoYXIqLCB1bnNpZ25lZCk7CiAKICAgICBib29sIGhh
c0RhdGEoKSBjb25zdCB7IHJldHVybiAhIW1fYnVmZmVyOyB9CkBAIC02NiwxMiArNzAsMTUgQEAg
cHVibGljOgogICAgIHZvaWQgbG9hZGluZ1N1Y2NlZWRlZCgpOwogCiAgICAgdm9pZCBzZXRDb25z
dW1lUHJvbWlzZShSZWY8RGVmZXJyZWRQcm9taXNlPiYmKTsKKyAgICB2b2lkIHNldFNvdXJjZShS
ZWY8RmV0Y2hCb2R5U291cmNlPiYmKTsKIAogcHJpdmF0ZToKICAgICBUeXBlIG1fdHlwZTsKICAg
ICBTdHJpbmcgbV9jb250ZW50VHlwZTsKICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBtX2J1ZmZl
cjsKICAgICBSZWZQdHI8RGVmZXJyZWRQcm9taXNlPiBtX2NvbnN1bWVQcm9taXNlOworICAgIFJl
ZlB0cjxSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luaz4gbV9zaW5rOworICAgIFJlZlB0
cjxGZXRjaEJvZHlTb3VyY2U+IG1fc291cmNlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHAKaW5k
ZXggYzE5M2NlM2UxNzZkNzFhNmNhMjE3ZDVkNTAyYTg5MzYyNzFkMTI3OS4uY2NlN2E4NzAxYzRm
MTZjMDhjOTM1YWYzMDYzMDZiOTIwNDc5ZTFkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwCkBAIC0zMTcsNyArMzE3LDcgQEAgdm9pZCBGZXRj
aFJlc3BvbnNlOjpjb25zdW1lQ2h1bmsoUmVmPEpTQzo6VWludDhBcnJheT4mJiBjaHVuaykKIAog
dm9pZCBGZXRjaFJlc3BvbnNlOjpmaW5pc2hDb25zdW1pbmdTdHJlYW0oUmVmPERlZmVycmVkUHJv
bWlzZT4mJiBwcm9taXNlKQogewotICAgIG1fY29uc3VtZXIucmVzb2x2ZShXVEZNb3ZlKHByb21p
c2UpKTsKKyAgICBtX2NvbnN1bWVyLnJlc29sdmUoV1RGTW92ZShwcm9taXNlKSwgbnVsbHB0cik7
CiB9CiAKIHZvaWQgRmV0Y2hSZXNwb25zZTo6Y29uc3VtZUJvZHlBc1N0cmVhbSgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1JbnRlcm5h
bHMuanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1JbnRl
cm5hbHMuanMKaW5kZXggZjRlNWRhZjdiMjEzZDQwZWViZThhNDlkY2IzNmQ3NDliNjdhZTM3Mi4u
NTQyNzdmM2FlMDRkYWZiZDE1MjFmOWE2MjNmNWEwNzAzMTk2NjdmZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUludGVybmFs
cy5qcwpAQCAtMTA2LDYgKzEwNiwzMyBAQCBmdW5jdGlvbiByZWFkYWJsZVN0cmVhbURlZmF1bHRD
b250cm9sbGVyRXJyb3IoY29udHJvbGxlciwgZXJyb3IpCiAgICAgQHJlYWRhYmxlU3RyZWFtRXJy
b3Ioc3RyZWFtLCBlcnJvcik7CiB9CiAKK2Z1bmN0aW9uIHJlYWRhYmxlU3RyZWFtUGlwZVRvKHN0
cmVhbSwgc2luaykKK3sKKyAgICAidXNlIHN0cmljdCI7CisgICAgQGFzc2VydChAaXNSZWFkYWJs
ZVN0cmVhbShzdHJlYW0pKTsKKworICAgIGNvbnN0IHJlYWRlciA9IG5ldyBAUmVhZGFibGVTdHJl
YW1EZWZhdWx0UmVhZGVyKHN0cmVhbSk7CisKKyAgICByZWFkZXIuQGNsb3NlZFByb21pc2VDYXBh
YmlsaXR5LkBwcm9taXNlLkB0aGVuKCgpID0+IHsgfSwgKGUpID0+IHsgc2luay5lcnJvcihlKTsg
fSk7CisKKyAgICBmdW5jdGlvbiBkb1BpcGUoKSB7CisgICAgICAgIEByZWFkYWJsZVN0cmVhbURl
ZmF1bHRSZWFkZXJSZWFkKHJlYWRlcikuQHRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAg
ICAgICBpZiAocmVzdWx0LmRvbmUpIHsKKyAgICAgICAgICAgICAgICBzaW5rLmNsb3NlKCk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdHJ5IHsK
KyAgICAgICAgICAgICAgICBzaW5rLmVucXVldWUocmVzdWx0LnZhbHVlKTsKKyAgICAgICAgICAg
IH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgICAgICBzaW5rLmVycm9yKCJSZWFkYWJsZVN0cmVh
bSBjaHVuayBlbnF1ZXVlaW5nIGluIHRoZSBzaW5rIGZhaWxlZCIpOworICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRvUGlwZSgpOworICAgICAgICB9
KTsKKyAgICB9CisgICAgZG9QaXBlKCk7Cit9CisKIGZ1bmN0aW9uIHJlYWRhYmxlU3RyZWFtVGVl
KHN0cmVhbSwgc2hvdWxkQ2xvbmUpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1TaW5rLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mYTBlZGUzYzNjY2ViODMzODRjNjY4ZDNkNDhhMmI4YjgyODJmODcxCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFt
U2luay5jcHAKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFtU2luay5oIgorCisjaW5jbHVkZSAiQnVmZmVy
U291cmNlLmgiCisjaW5jbHVkZSAiRE9NRXhjZXB0aW9uLmgiCisjaW5jbHVkZSAiUmVhZGFibGVT
dHJlYW0uaCIKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKKworI2lmIEVOQUJMRShTVFJFQU1T
X0FQSSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVm
ZmVyU2luazo6UmVhZGFibGVTdHJlYW1Ub1NoYXJlZEJ1ZmZlclNpbmsoQ2FsbGJhY2smJiBjYWxs
YmFjaykKKyAgICA6IG1fY2FsbGJhY2sgeyBXVEZNb3ZlKGNhbGxiYWNrKSB9Cit7Cit9CisKK3Zv
aWQgUmVhZGFibGVTdHJlYW1Ub1NoYXJlZEJ1ZmZlclNpbms6OnBpcGVGcm9tKFJlYWRhYmxlU3Ry
ZWFtJiBzdHJlYW0pCit7CisgICAgc3RyZWFtLnBpcGVUbygqdGhpcyk7Cit9CisKK3ZvaWQgUmVh
ZGFibGVTdHJlYW1Ub1NoYXJlZEJ1ZmZlclNpbms6OmVucXVldWUoY29uc3QgQnVmZmVyU291cmNl
JiBidWZmZXIpCit7CisgICAgaWYgKCFtX2RhdGEpIHsKKyAgICAgICAgbV9kYXRhID0gU2hhcmVk
QnVmZmVyOjpjcmVhdGUoYnVmZmVyLmRhdGEoKSwgYnVmZmVyLmxlbmd0aCgpKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBtX2RhdGEtPmFwcGVuZChyZWludGVycHJldF9jYXN0PGNvbnN0
IGNoYXIqPihidWZmZXIuZGF0YSgpKSwgYnVmZmVyLmxlbmd0aCgpKTsKK30KKwordm9pZCBSZWFk
YWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luazo6Y2xvc2UoKQoreworICAgIGlmIChhdXRvIGNh
bGxiYWNrID0gV1RGTW92ZShtX2NhbGxiYWNrKSkKKyAgICAgICAgY2FsbGJhY2soV1RGTW92ZSht
X2RhdGEpKTsKK30KKwordm9pZCBSZWFkYWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luazo6ZXJy
b3IoU3RyaW5nJiYgbWVzc2FnZSkKK3sKKyAgICBpZiAoYXV0byBjYWxsYmFjayA9IFdURk1vdmUo
bV9jYWxsYmFjaykpCisgICAgICAgIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgV1RG
TW92ZShtZXNzYWdlKSB9KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKFNUUkVBTVNfQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
dHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYxYzJhYWJlZjJkNTY2MDMx
OGViYjc5MDVkMWZhZWE5NTg3MmJmNTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1TaW5rLmgKQEAgLTAsMCArMSw3MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1RSRUFNU19BUEkpCisK
KyNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
QnVmZmVyU291cmNlOworY2xhc3MgUmVhZGFibGVTdHJlYW07CitjbGFzcyBTaGFyZWRCdWZmZXI7
CisKK2NsYXNzIFJlYWRhYmxlU3RyZWFtU2luayA6IHB1YmxpYyBSZWZDb3VudGVkPFJlYWRhYmxl
U3RyZWFtU2luaz4geworcHVibGljOgorICAgIHZpcnR1YWwgflJlYWRhYmxlU3RyZWFtU2luaygp
ID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgdm9pZCBlbnF1ZXVlKGNvbnN0IEJ1ZmZlclNvdXJj
ZSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGVycm9yKFN0cmluZyYmKSA9IDA7Cit9OworCitjbGFzcyBSZWFkYWJsZVN0cmVhbVRvU2hhcmVk
QnVmZmVyU2luayBmaW5hbCA6IHB1YmxpYyBSZWFkYWJsZVN0cmVhbVNpbmsgeworcHVibGljOgor
ICAgIHVzaW5nIENhbGxiYWNrID0gV1RGOjpGdW5jdGlvbjx2b2lkKEV4Y2VwdGlvbk9yPFJlZlB0
cjxTaGFyZWRCdWZmZXI+PiYmKT47CisgICAgc3RhdGljIFJlZjxSZWFkYWJsZVN0cmVhbVRvU2hh
cmVkQnVmZmVyU2luaz4gY3JlYXRlKENhbGxiYWNrJiYgY2FsbGJhY2spIHsgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgUmVhZGFibGVTdHJlYW1Ub1NoYXJlZEJ1ZmZlclNpbmsoV1RGTW92ZShjYWxsYmFj
aykpKTsgfQorICAgIHZvaWQgcGlwZUZyb20oUmVhZGFibGVTdHJlYW0mKTsKKyAgICB2b2lkIGNs
ZWFyQ2FsbGJhY2soKSB7IG1fY2FsbGJhY2sgPSB7IH07IH0KKworcHJpdmF0ZToKKyAgICBSZWFk
YWJsZVN0cmVhbVRvU2hhcmVkQnVmZmVyU2luayhDYWxsYmFjayYmKTsKKworICAgIHZvaWQgZW5x
dWV1ZShjb25zdCBCdWZmZXJTb3VyY2UmKSBmaW5hbDsKKyAgICB2b2lkIGNsb3NlKCkgZmluYWw7
CisgICAgdm9pZCBlcnJvcihTdHJpbmcmJikgZmluYWw7CisKKyAgICBDYWxsYmFjayBtX2NhbGxi
YWNrOworICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IG1fZGF0YTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShTVFJFQU1TX0FQSSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNpbmsuaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5pZGwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNzk5OTk0NDBjNWU0MmY0MmNlMTM2Yzk1Njc0NjI0MTdjOTJiYWJhMgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVh
bVNpbmsuaWRsCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyogYXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorKi8KKworCitbCisgICAgTm9JbnRlcmZhY2VPYmplY3QsCisgICAgQ29uZGl0
aW9uYWw9U1RSRUFNU19BUEksCisgICAgU2tpcFZUYWJsZVZhbGlkYXRpb24KK10gaW50ZXJmYWNl
IFJlYWRhYmxlU3RyZWFtU2luayB7CisgICAgdm9pZCBlbnF1ZXVlKEJ1ZmZlclNvdXJjZSBjaHVu
ayk7CisgICAgdm9pZCBjbG9zZSgpOworICAgIHZvaWQgZXJyb3IoRE9NU3RyaW5nIG1lc3NhZ2Up
OworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCA0ZGI3NDI0NDZmMGFjOGFjYzBmZDFiODA2ZjY0ZTlhMGEzODY0NDY2Li45YzIy
MDk4MDY5N2ZhYzYwMWYzN2E5OTA1YzYxNjNlMzAyYjIzODRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNjczLDYgKzE2NzMs
MTEgQEAKIAkJNDEyMzA4MUIxMzhDNDI5NzAwQkNDRkNBIC8qIFdlYkNvcmUuZnJhbWV3b3JrIGlu
IEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGMTlCMUEw
ODI0NUU1QTAwMUU5QUJDIC8qIFdlYkNvcmUuZnJhbWV3b3JrICovOyB9OwogCQk0MTIzMDkxMzEz
OEM0MkZGMDBCQ0NGQ0EgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrIGluIEZyYW1ld29ya3Mg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjgyMTYyOTkwMjlGNEZCNTAxMDAw
MTMxIC8qIEphdmFTY3JpcHRDb3JlLmZyYW1ld29yayAqLzsgfTsKIAkJNDEyN0Q1MzcwRjhBQUIx
RDAwRTQyNEY1IC8qIFNjcmlwdFN0YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQxMjdENTM2MEY4QUFCMUQwMEU0MjRGNSAvKiBTY3JpcHRTdGF0
ZS5jcHAgKi87IH07CisJCTQxMjlDOThBMUY1ODdGRUIwMDlENzQwMyAvKiBSZWFkYWJsZVN0cmVh
bVNpbmsuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDEyOUM5ODcxRjU4NjYyRDAwOUQ3NDAzIC8qIFJlYWRhYmxlU3RyZWFtU2luay5jcHAgKi87IH07
CisJCTQxMjlDOTk3MUY1OUI5NjMwMDlENzQwMyAvKiBGZXRjaEJvZHlTb3VyY2UuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMzAxNUQ2MUM3QjU3MDQw
MDA5MUM2RiAvKiBGZXRjaEJvZHlTb3VyY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk0MTI5QzlBOTFGNTlDNTZCMDA5RDc0MDMgLyogUmVhZGFi
bGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDE4QzM5NUYxQzhGMEFBQjAwNTFDOEEzIC8qIFJlYWRhYmxlU3Ry
ZWFtRGVmYXVsdENvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQk0MTI5QzlBQjFGNTlDNTczMDA5RDc0MDMgLyogUmVhZGFibGVTdHJl
YW1Tb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxOEMzOTVCMUM4RjBBNjEwMDUxQzhBMyAvKiBSZWFkYWJsZVN0cmVhbVNvdXJjZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQxMjlDOUFGMUY1
OUNGNUIwMDlENzQwMyAvKiBSZWFkYWJsZVN0cmVhbVNpbmsuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMjlDOTgwMUY1ODYxQzcwMDlENzQwMyAvKiBS
ZWFkYWJsZVN0cmVhbVNpbmsuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk0MTI5REY4NTFCQjVCODA3MDAzMjJBMTYgLyogSlNSZWFkYWJsZVN0cmVh
bVByaXZhdGVDb25zdHJ1Y3RvcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDEyOURGODMxQkI1QjdGNzAwMzIyQTE2IC8qIEpTUmVhZGFibGVTdHJl
YW1Qcml2YXRlQ29uc3RydWN0b3JzLmNwcCAqLzsgfTsKIAkJNDEyOURGODYxQkI1QjgwQzAwMzIy
QTE2IC8qIEpTUmVhZGFibGVTdHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTI5REY4NDFCQjVCN0Y3MDAzMjJB
MTYgLyogSlNSZWFkYWJsZVN0cmVhbVByaXZhdGVDb25zdHJ1Y3RvcnMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTMwMTVEOTFDN0I1NzE0MDAw
OTFDNkUgLyogRmV0Y2hSZXNwb25zZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MTMwMTVENTFDN0I1NzA0MDAwOTFDNkUgLyogRmV0Y2hSZXNwb25z
ZS5jcHAgKi87IH07CkBAIC0yODk5LDcgKzI5MDQsNyBAQAogCQk2QzRDOTZERTFBRDQ0ODM1MDAz
NjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZDNEM5NkRBMUFENDQ4MzUwMDM2
NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuY3BwICovOyB9OwogCQk2
QzRDOTZERjFBRDQ0ODM1MDAzNjNGNjQgLyogSlNSZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QzRDOTZE
QjFBRDQ0ODM1MDAzNjNGNjQgLyogSlNSZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyLmggKi87
IH07CiAJCTZDNEM5NkRGMUFENDQ4MzUwMDM2NTY3MiAvKiBKU1JlYWRhYmxlU3RyZWFtQllPQlJl
cXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZD
NEM5NkRCMUFENDQ4MzUwMDM2NTY3MiAvKiBKU1JlYWRhYmxlU3RyZWFtQllPQlJlcXVlc3QuaCAq
LzsgfTsKLQkJNkM0Qzk2REYxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1EZWZh
dWx0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNkM0Qzk2REIxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0
Q29udHJvbGxlci5oICovOyB9OworCQk2QzRDOTZERjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFk
YWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA2QzRDOTZEQjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJs
ZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkM2Mzg4OTVBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJl
c291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDZDNjM4ODkzQTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJj
ZVJlcXVlc3RJbml0aWF0b3JzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNkM2Mzg4OTZBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNl
UmVxdWVzdEluaXRpYXRvcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNkM2Mzg4OTRBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVx
dWVzdEluaXRpYXRvcnMuY3BwICovOyB9OwogCQk2Q0RERThEMDE3NzBCQjIyMDAxNkUwNzIgLyog
UmVnaW9uT3ZlcnNldFN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA2QzcwQTgxNDE3NzA3QzQ5MDA5QTQ0NkUgLyogUmVnaW9uT3ZlcnNldFN0YXRl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTM0
MDEsNyArMzQwNiw5IEBACiAJCTdFRTY4NDcxMTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZVJl
c3BvbnNlQ0ZOZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0VFNjg0NUUxMkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlUmVzcG9uc2VDRk5ldC5j
cHAgKi87IH07CiAJCTdFRTY4NDc1MTJEMjZFNzAwMEU3OTQxNSAvKiBSZXNvdXJjZUxvYWRlckNG
TmV0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdF
RTY4NDc0MTJEMjZFNzAwMEU3OTQxNSAvKiBSZXNvdXJjZUxvYWRlckNGTmV0LmNwcCAqLzsgfTsK
IAkJN0Y0Qzk2REMxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hCb2R5LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdGNEM5NkQ4MUFENDQ4MzUwMDM2
NUE1MCAvKiBKU0ZldGNoQm9keS5jcHAgKi87IH07CisJCTdGNEM5NkRDMUFENDQ4MzUwMDM2NUE1
MSAvKiBKU1JlYWRhYmxlU3RyZWFtU2luay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3RjRDOTZEODFBRDQ0ODM1MDAzNjVBNTEgLyogSlNSZWFkYWJs
ZVN0cmVhbVNpbmsuY3BwICovOyB9OwogCQk3RjRDOTZERDFBRDQ0ODM1MDAzNjVBNTAgLyogSlNG
ZXRjaEJvZHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdGNEM5NkQ5MUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoQm9keS5oICovOyB9OworCQk3RjRD
OTZERDFBRDQ0ODM1MDAzNjVBNTEgLyogSlNSZWFkYWJsZVN0cmVhbVNpbmsuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdGNEM5NkQ5MUFENDQ4MzUwMDM2
NUE1MSAvKiBKU1JlYWRhYmxlU3RyZWFtU2luay5oICovOyB9OwogCQk4MTAyQzU4ODEzMjVCQjEx
MDBEREU2N0EgLyogU3RyaW5nQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODEwMkM1ODcxMzI1QkIxMTAwRERFNjdBIC8qIFN0cmluZ0Nh
bGxiYWNrLmNwcCAqLzsgfTsKIAkJODFBQzU5OTkxMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFu
c2Zlckl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDgxQUM1OTk3MTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtLmggKi87IH07CiAJ
CTgxQUM1OTlBMTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtTGlzdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFBQzU5OTgxMzE2MzZF
NjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW1MaXN0LmggKi87IH07CkBAIC05Mzg2LDYgKzkz
OTMsOSBAQAogCQk0MTE4OUVGNzFBRDgyMzI4MDBCOTNGNjQgLyogUmVhZGFibGVCeXRlU3RyZWFt
Q29udHJvbGxlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVhZGFibGVCeXRlU3RyZWFt
Q29udHJvbGxlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTg5RUY3MUFE
ODIzMjgwMEI5NTY3MiAvKiBSZWFkYWJsZVN0cmVhbUJZT0JSZXF1ZXN0LmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBSZWFkYWJsZVN0cmVhbUJZT0JSZXF1ZXN0LmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDEyN0Q1MzYwRjhBQUIxRDAwRTQyNEY1IC8qIFNjcmlwdFN0YXRl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdFN0YXRlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEyOUM5ODAxRjU4NjFDNzAwOUQ3NDAz
IC8qIFJlYWRhYmxlU3RyZWFtU2luay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZWFkYWJsZVN0cmVhbVNpbmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEy
OUM5ODExRjU4NjFDNzAwOUQ3NDAzIC8qIFJlYWRhYmxlU3RyZWFtU2luay5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gUmVhZGFibGVTdHJlYW1TaW5rLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDEyOUM5ODcxRjU4NjYyRDAwOUQ3NDAzIC8qIFJlYWRhYmxlU3RyZWFtU2lu
ay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFkYWJsZVN0cmVh
bVNpbmsuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTI5REY4MzFCQjVCN0Y3
MDAzMjJBMTYgLyogSlNSZWFkYWJsZVN0cmVhbVByaXZhdGVDb25zdHJ1Y3RvcnMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSZWFkYWJsZVN0cmVhbVByaXZhdGVD
b25zdHJ1Y3RvcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTI5REY4NDFC
QjVCN0Y3MDAzMjJBMTYgLyogSlNSZWFkYWJsZVN0cmVhbVByaXZhdGVDb25zdHJ1Y3RvcnMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNSZWFkYWJsZVN0cmVhbVByaXZhdGVD
b25zdHJ1Y3RvcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEzMDE1RDUxQzdC
NTcwNDAwMDkxQzZFIC8qIEZldGNoUmVzcG9uc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRmV0Y2hSZXNwb25zZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xMTU2OSw3ICsxMTU3OSw5IEBACiAJCTdFRTY4NDVFMTJEMjZFMzgwMEU3OTQxNSAv
KiBSZXNvdXJjZVJlc3BvbnNlQ0ZOZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVzb3VyY2VSZXNwb25zZUNGTmV0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJN0VFNjg0NzQxMkQyNkU3MDAwRTc5NDE1IC8qIFJlc291cmNlTG9hZGVyQ0ZOZXQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVzb3VyY2VMb2FkZXJD
Rk5ldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdGNEM5NkQ4MUFENDQ4MzUw
MDM2NUE1MCAvKiBKU0ZldGNoQm9keS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU0ZldGNoQm9keS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdG
NEM5NkQ4MUFENDQ4MzUwMDM2NUE1MSAvKiBKU1JlYWRhYmxlU3RyZWFtU2luay5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JlYWRhYmxlU3RyZWFtU2luay5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdGNEM5NkQ5MUFENDQ4MzUwMDM2NUE1MCAv
KiBKU0ZldGNoQm9keS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0ZldGNo
Qm9keS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3RjRDOTZEOTFBRDQ0ODM1MDAz
NjVBNTEgLyogSlNSZWFkYWJsZVN0cmVhbVNpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNSZWFkYWJsZVN0cmVhbVNpbmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJODEwMkM1ODcxMzI1QkIxMTAwRERFNjdBIC8qIFN0cmluZ0NhbGxiYWNrLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0cmluZ0NhbGxiYWNrLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODFBQzU5OTcxMzE2MzZFNjAwMDlBN0UwIC8qIERh
dGFUcmFuc2Zlckl0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YVRy
YW5zZmVySXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MUFDNTk5ODEzMTYz
NkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRGF0YVRyYW5zZmVySXRlbUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE3OTk5LDYgKzE4MDExLDkgQEAKIAkJCQk0MTlGQUZBRDFBQkFCQ0Q1MDA1
QjgyOEIgLyogUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmlkbCAqLywKIAkJCQk5OTA4QjBG
MjFCQ0FDRjkxMDBFRDBGNjUgLyogUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmpzICovLAog
CQkJCTk5MDhCMEYxMUJDQUNGOTEwMEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVhbUludGVybmFscy5q
cyAqLywKKwkJCQk0MTI5Qzk4NzFGNTg2NjJEMDA5RDc0MDMgLyogUmVhZGFibGVTdHJlYW1TaW5r
LmNwcCAqLywKKwkJCQk0MTI5Qzk4MDFGNTg2MUM3MDA5RDc0MDMgLyogUmVhZGFibGVTdHJlYW1T
aW5rLmggKi8sCisJCQkJNDEyOUM5ODExRjU4NjFDNzAwOUQ3NDAzIC8qIFJlYWRhYmxlU3RyZWFt
U2luay5pZGwgKi8sCiAJCQkJNDE4QzM5NUIxQzhGMEE2MTAwNTFDOEEzIC8qIFJlYWRhYmxlU3Ry
ZWFtU291cmNlLmggKi8sCiAJCQkJNDE4QzM5NUMxQzhGMEE2MTAwNTFDOEEzIC8qIFJlYWRhYmxl
U3RyZWFtU291cmNlLmlkbCAqLywKIAkJCQk5OTA4QjBGMTFCQ0FDRjkxMDBFRDBGNTUgLyogU3Ry
ZWFtSW50ZXJuYWxzLmpzICovLApAQCAtMTgxMTMsNiArMTgxMjgsOCBAQAogCQkJCTdDRTE5MTZB
MUYyQUI3MDYwMDI3MkY3OCAvKiBKU0ZldGNoUmVxdWVzdFJlZGlyZWN0LmggKi8sCiAJCQkJOEU0
Qzk2RDgxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hSZXNwb25zZS5jcHAgKi8sCiAJCQkJOEU0
Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hSZXNwb25zZS5oICovLAorCQkJCTdGNEM5
NkQ4MUFENDQ4MzUwMDM2NUE1MSAvKiBKU1JlYWRhYmxlU3RyZWFtU2luay5jcHAgKi8sCisJCQkJ
N0Y0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUxIC8qIEpTUmVhZGFibGVTdHJlYW1TaW5rLmggKi8sCiAJ
CQkJN0U0Qzk2RDgxQUQ0NDgzNTAwMzY1QTUxIC8qIEpTUmVhZGFibGVTdHJlYW1Tb3VyY2UuY3Bw
ICovLAogCQkJCTdFNEM5NkQ5MUFENDQ4MzUwMDM2NUE1MSAvKiBKU1JlYWRhYmxlU3RyZWFtU291
cmNlLmggKi8sCiAJCQkpOwpAQCAtMjc1ODYsNiArMjc2MDMsNyBAQAogCQkJCTg0NzMwRDg3MTI0
OEYwQjMwMEQzQTlDOSAvKiBGRU9mZnNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODQ3MzBEODkx
MjQ4RjBCMzAwRDNBOUM5IC8qIEZFU3BlY3VsYXJMaWdodGluZy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTE3QTUzNUIxRjU4OEE0QzAwRENEQzBBIC8qIEZldGNoQm9keUNvbnN1bWVyLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk0MTI5Qzk5NzFGNTlCOTYzMDA5RDc0MDMgLyogRmV0Y2hCb2R5U291cmNl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUQxMjlEQjFGM0QxNDM4MDBEMTVFNDcgLyogRmV0Y2hI
ZWFkZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTZFNkZFODFCQkQxMkRGMDAwQTYwMjMgLyog
RmV0Y2hJbnRlcm5hbHNCdWlsdGlucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3QTUzNUExRjU4
ODlFRjAwRENEQzBBIC8qIEZldGNoTG9hZGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTI4NTUzLDYg
KzI4NTcxLDcgQEAKIAkJCQk2QzRDOTZERjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0
cmVhbURlZmF1bHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzRDOTZERjFBRDQ0
ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQxMjlERjg2MUJCNUI4MEMwMDMyMkExNiAvKiBKU1JlYWRhYmxlU3RyZWFtUHJp
dmF0ZUNvbnN0cnVjdG9ycy5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0Y0Qzk2REQxQUQ0NDgzNTAw
MzY1QTUxIC8qIEpTUmVhZGFibGVTdHJlYW1TaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQk3RTRD
OTZERDFBRDQ0ODM1MDAzNjVBNTEgLyogSlNSZWFkYWJsZVN0cmVhbVNvdXJjZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDk5OEFFQ0UxM0Y5RDZDOTAwOTBCMUFBIC8qIEpTUmVxdWVzdEFuaW1hdGlv
bkZyYW1lQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTU3RTIzMzcxMURDRDQ2OEYwMEYy
OEQwMSAvKiBKU1JzYUhhc2hlZEltcG9ydFBhcmFtcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTM4
NCw3ICsyOTQwMyw5IEBACiAJCQkJQTg0RDgyN0MxMUQzMzNFRDAwOTcyOTkwIC8qIFJhd0RhdGFE
b2N1bWVudFBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE2RTZGRTgxQkJEMTJERjAwMEE2
MDQzIC8qIFJlYWRhYmxlQnl0ZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0MTZFNkZFOTFCQkQxMkU1MDAwQTYwNDMgLyogUmVhZGFibGVTdHJlYW1CdWlsdGlu
cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEyOUM5QTkxRjU5QzU2QjAwOUQ3NDAzIC8qIFJlYWRh
YmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNkU2RkU4
MUJCRDEyREYwMDBBM0Y2NCAvKiBSZWFkYWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmggaW4g
SGVhZGVycyAqLywKKwkJCQk0MTI5QzlBQjFGNTlDNTczMDA5RDc0MDMgLyogUmVhZGFibGVTdHJl
YW1Tb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDNDMTJCMDI2NzYwMEMxQTM1OSAv
KiBSZWFsdGltZUFuYWx5c2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTEwM0FBRDFFMzk3OTEw
MDA3NjlGMDMgLyogUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0QTRGNjU3MTFBQTk5N0YxMDBFMzhDREQgLyogUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yOTg4Myw2ICsyOTkwNCw3IEBACiAJCQkJRTQ2Qzc5NEIxRjEzRTgy
QjAwRjM3MUUxIC8qIFN0eWxlSW52YWxpZGF0aW9uRnVuY3Rpb25zLmggaW4gSGVhZGVycyAqLywK
IAkJCQlFNDcxMjdDQjE2MzQzOEFFMDBFRDZGNUEgLyogU3R5bGVJbnZhbGlkYXRvci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkM1RUI3MkEwRTgxREU4MTAwQjI1OTY1IC8qIFN0eWxlTWFycXVlZURh
dGEuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMjlDOUFGMUY1OUNGNUIwMDlENzQwMyAvKiBSZWFk
YWJsZVN0cmVhbVNpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjUwMjcyMTAyQkE5NkEwMDY2
RjM5QSAvKiBTdHlsZU1lZGlhLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVFQjc0RTBFODFFMDY3
MDBCMjU5NjUgLyogU3R5bGVNdWx0aUNvbERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0REFD
RTZBMUQxMkUxMEIwMDc1OTgwRiAvKiBTdHlsZVBlbmRpbmdSZXNvdXJjZXMuaCBpbiBIZWFkZXJz
ICovLApAQCAtMzI1ODAsNiArMzI2MDIsNyBAQAogCQkJCTZDNEM5NkRFMUFENDQ4MzUwMDM2NUE1
MCAvKiBKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJN0M0Qzk2REUxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0
UmVhZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxMjlERjg1MUJCNUI4MDcwMDMyMkExNiAv
KiBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk3RjRDOTZEQzFBRDQ0ODM1MDAzNjVBNTEgLyogSlNSZWFkYWJsZVN0cmVhbVNpbmsuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJN0U0Qzk2REMxQUQ0NDgzNTAwMzY1QTUxIC8qIEpTUmVhZGFi
bGVTdHJlYW1Tb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE4QzM5NjAxQzhGMEFBRTAw
NTFDOEEzIC8qIEpTUmVhZGFibGVTdHJlYW1Tb3VyY2VDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDk5OEFFQ0QxM0Y5RDZDOTAwOTBCMUFBIC8qIEpTUmVxdWVzdEFuaW1hdGlvbkZyYW1l
Q2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMzM0MSw2ICszMzM2NCw3IEBACiAJCQkJ
NkU4NEU5RTAxNzY2OEJFRTAwODE1QjY4IC8qIFJhc3RlclNoYXBlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTQxQjQ1OUVGMUY1NUVCRDEwMDAwRjZGRCAvKiBSZWFkYWJsZVN0cmVhbS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk0MThDMzk2MTFDOEYwQUIxMDA1MUM4QTMgLyogUmVhZGFibGVTdHJl
YW1EZWZhdWx0Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0MTI5Qzk4QTFGNTg3
RkVCMDA5RDc0MDMgLyogUmVhZGFibGVTdHJlYW1TaW5rLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUZEMzE2MDNCMTJCMDI2NzYwMEMxQTM1OSAvKiBSZWFsdGltZUFuYWx5c2VyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTQxMTAzQUFFMUUzOTc5MTAwMDc2OUYwMyAvKiBSZWFsdGltZUluY29taW5n
QXVkaW9Tb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDgzM0UxRTQzMjREQzAwNjIx
RTkyIC8qIFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtLmNwcAppbmRleCA3MjI3
NDBmN2ZhNGFiMDIxZDlkZjExMzEzMjI1ZWJlNzAzNmQ0M2VkLi5jZjQ4Njk3NjQ5OWIyOGUzY2Nk
Y2MyNWM4NzczYTE1NWNiZTllOWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9SZWFkYWJsZVN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
UmVhZGFibGVTdHJlYW0uY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiUmVhZGFibGVT
dHJlYW0uaCIKIAogI2luY2x1ZGUgIkpTRE9NQ29udmVydFNlcXVlbmNlcy5oIgorI2luY2x1ZGUg
IkpTUmVhZGFibGVTdHJlYW1TaW5rLmgiCiAjaW5jbHVkZSAiSlNSZWFkYWJsZVN0cmVhbVNvdXJj
ZS5oIgogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIKIApAQCAtNTQsNiArNTUsMjQg
QEAgUmVmPFJlYWRhYmxlU3RyZWFtPiBSZWFkYWJsZVN0cmVhbTo6Y3JlYXRlKEpTQzo6RXhlY1N0
YXRlJiBleGVjU3RhdGUsIFJlZlB0cjxSZWEKICAgICByZXR1cm4gY3JlYXRlKGdsb2JhbE9iamVj
dCwgKm5ld1JlYWRhYmxlU3RyZWFtKTsKIH0KIAordm9pZCBSZWFkYWJsZVN0cmVhbTo6cGlwZVRv
KFJlYWRhYmxlU3RyZWFtU2luayYgc2luaykKK3sKKyAgICBhdXRvJiBzdGF0ZSA9ICptX2dsb2Jh
bE9iamVjdC0+Z2xvYmFsRXhlYygpOworICAgIEpTVk1DbGllbnREYXRhKiBjbGllbnREYXRhID0g
c3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPihzdGF0ZS52bSgpLmNsaWVudERhdGEpOworICAg
IGNvbnN0IElkZW50aWZpZXImIHByaXZhdGVOYW1lID0gY2xpZW50RGF0YS0+YnVpbHRpbkZ1bmN0
aW9ucygpLnJlYWRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMoKS5yZWFkYWJsZVN0cmVhbVBp
cGVUb1ByaXZhdGVOYW1lKCk7CisKKyAgICBhdXRvIHJlYWRhYmxlU3RyZWFtUGlwZVRvID0gbV9n
bG9iYWxPYmplY3QtPmdldCgmc3RhdGUsIHByaXZhdGVOYW1lKTsKKyAgICBBU1NFUlQocmVhZGFi
bGVTdHJlYW1QaXBlVG8uaXNGdW5jdGlvbigpKTsKKworICAgIENhbGxEYXRhIGNhbGxEYXRhOwor
ICAgIENhbGxUeXBlIGNhbGxUeXBlID0gZ2V0Q2FsbERhdGEocmVhZGFibGVTdHJlYW1QaXBlVG8s
IGNhbGxEYXRhKTsKKyAgICBBU1NFUlQoY2FsbFR5cGUgIT0gSlNDOjpDYWxsVHlwZTo6Tm9uZSk7
CisgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJndW1lbnRzOworICAgIGFyZ3VtZW50cy5hcHBl
bmQocmVhZGFibGVTdHJlYW0oKSk7CisgICAgYXJndW1lbnRzLmFwcGVuZCh0b0pTKCZzdGF0ZSwg
bV9nbG9iYWxPYmplY3QuZ2V0KCksIHNpbmspKTsKKyAgICBKU0M6OmNhbGwoJnN0YXRlLCByZWFk
YWJsZVN0cmVhbVBpcGVUbywgY2FsbFR5cGUsIGNhbGxEYXRhLCBKU0M6OmpzVW5kZWZpbmVkKCks
IGFyZ3VtZW50cyk7Cit9CisKIHN0ZDo6cGFpcjxSZWY8UmVhZGFibGVTdHJlYW0+LCBSZWY8UmVh
ZGFibGVTdHJlYW0+PiBSZWFkYWJsZVN0cmVhbTo6dGVlKCkKIHsKICAgICBhdXRvJiBzdGF0ZSA9
ICptX2dsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW0uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1JlYWRhYmxlU3RyZWFtLmgKaW5kZXggYTBjMjZhNDM1NzY4YjJkMTBhZjQxMDZlNjE3ZjU3
Y2IzMGEzMGM5NS4uYWU1YjBkNWZhYTkwMjcyYzg3NzE2NzE0OTkyZTNkYzM0YzY2ZjQ4YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW0uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5oCkBAIC0zMiw2ICsz
Miw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgUmVhZGFibGVTdHJlYW1TaW5r
OwogY2xhc3MgUmVhZGFibGVTdHJlYW1Tb3VyY2U7CiAKIGNsYXNzIFJlYWRhYmxlU3RyZWFtIGZp
bmFsIDogcHVibGljIERPTUd1YXJkZWQ8SlNSZWFkYWJsZVN0cmVhbT4gewpAQCAtNDIsNiArNDMs
OCBAQCBwdWJsaWM6CiAKICAgICBzdGQ6OnBhaXI8UmVmPFJlYWRhYmxlU3RyZWFtPiwgUmVmPFJl
YWRhYmxlU3RyZWFtPj4gdGVlKCk7CiAKKyAgICB2b2lkIHBpcGVUbyhSZWFkYWJsZVN0cmVhbVNp
bmsmKTsKKwogICAgIEpTUmVhZGFibGVTdHJlYW0qIHJlYWRhYmxlU3RyZWFtKCkgeyByZXR1cm4g
Z3VhcmRlZCgpOyB9CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmMTJjNjkzN2YwMTdiMzk3YWU0YzQz
N2Q4Njc2YTk1MDdlMTM4ZGY0Li4wOWQwZGU5Mjk5NGY2OGE1YTE4MmNjNTgxOTM0NGIxYTE2MzE3
MjQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTctMDktMDEgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFtGZXRjaCBBUEldIEFkZCBzdXBwb3J0IGZvciBj
b25zdW1pbmcgYSBSZXF1ZXN0IFJlYWRhYmxlU3RyZWFtIGJvZHkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjE4MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgKiBodHRwL3dwdC9mZXRjaC9yZXF1ZXN0
LXN0cmVhbS1kaXN0dXJiZWQtMS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC93cHQvZmV0
Y2gvcmVxdWVzdC1zdHJlYW0tZGlzdHVyYmVkLTItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0
dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWRpc3R1cmJlZC0zLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBodHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1lbXB0eS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWVtcHR5Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWVycm9y
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1z
dHJlYW0tZXJyb3IuaHRtbDogQWRkZWQuCisKIDIwMTctMDktMDEgIE1zMmdlciAgPE1zMmdlckBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIE1hcmsgYXVkaW8tbXBlZy1zdXBwb3J0ZWQuaHRt
bCBhcyBwYXNzaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVx
dWVzdC1zdHJlYW0tZGlzdHVyYmVkLTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93
cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZGlzdHVyYmVkLTEtZXhwZWN0ZWQudHh0CmluZGV4IGI4
NTQ2YmVhMWQ3ODBhYjIyNDMxYWNjOGJmMmU4ZTM3MmYyYjIzNmMuLmE3ZjdiMjQyZTFiNWZiNzRi
ODNhMzYwNTZjYTM2ODQyZDUzZjE5MzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0
L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWRpc3R1cmJlZC0xLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1kaXN0dXJiZWQtMS1leHBlY3Rl
ZC50eHQKQEAgLTEsNiArMSw2IEBACiAKIFBBU1MgR2V0dGluZyBibG9iIGFmdGVyIGdldHRpbmcg
dGhlIFJlcXVlc3QgYm9keSAtIG5vdCBkaXN0dXJiZWQsIG5vdCBsb2NrZWQgCi1GQUlMIEdldHRp
bmcgdGV4dCBhZnRlciBnZXR0aW5nIHRoZSBSZXF1ZXN0IGJvZHkgLSBub3QgZGlzdHVyYmVkLCBu
b3QgbG9ja2VkIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBHZXR0
aW5nIGpzb24gYWZ0ZXIgZ2V0dGluZyB0aGUgUmVxdWVzdCBib2R5IC0gbm90IGRpc3R1cmJlZCwg
bm90IGxvY2tlZCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
b2JqZWN0ICJTeW50YXhFcnJvcjogVGhlIHN0cmluZyBkaWQgbm90IG1hdGNoIHRoZSBleHBlY3Rl
ZCBwYXR0ZXJuLiIKLUZBSUwgR2V0dGluZyBhcnJheUJ1ZmZlciBhZnRlciBnZXR0aW5nIHRoZSBS
ZXF1ZXN0IGJvZHkgLSBub3QgZGlzdHVyYmVkLCBub3QgbG9ja2VkIGFzc2VydF90cnVlOiBleHBl
Y3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBHZXR0aW5nIHRleHQgYWZ0ZXIgZ2V0dGluZyB0aGUg
UmVxdWVzdCBib2R5IC0gbm90IGRpc3R1cmJlZCwgbm90IGxvY2tlZCAKK1BBU1MgR2V0dGluZyBq
c29uIGFmdGVyIGdldHRpbmcgdGhlIFJlcXVlc3QgYm9keSAtIG5vdCBkaXN0dXJiZWQsIG5vdCBs
b2NrZWQgCitQQVNTIEdldHRpbmcgYXJyYXlCdWZmZXIgYWZ0ZXIgZ2V0dGluZyB0aGUgUmVxdWVz
dCBib2R5IC0gbm90IGRpc3R1cmJlZCwgbm90IGxvY2tlZCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZGlzdHVyYmVkLTItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZGlzdHVyYmVk
LTItZXhwZWN0ZWQudHh0CmluZGV4IGYyYjliMmU1ZmNlOTM1NmQxNTM2MmIyYTFlYWE2NTEwOGIw
NjYzNjcuLmRlY2JmZDRjOTgxZDBhN2MyNDM2MTAxMzFmMGJkOWVkMGQ3YTI2NjMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWRpc3R1cmJlZC0y
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0
cmVhbS1kaXN0dXJiZWQtMi1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw2IEBACiAKLUZBSUwgR2V0
dGluZyBibG9iIGFmdGVyIGdldHRpbmcgYSBsb2NrZWQgUmVxdWVzdCBib2R5IGFzc2VydF91bnJl
YWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNoYWJs
ZSBjb2RlCi1GQUlMIEdldHRpbmcgdGV4dCBhZnRlciBnZXR0aW5nIGEgbG9ja2VkIFJlcXVlc3Qg
Ym9keSBhc3NlcnRfdW5yZWFjaGVkOiBTaG91bGQgaGF2ZSByZWplY3RlZDogdW5kZWZpbmVkIFJl
YWNoZWQgdW5yZWFjaGFibGUgY29kZQotRkFJTCBHZXR0aW5nIGpzb24gYWZ0ZXIgZ2V0dGluZyBh
IGxvY2tlZCBSZXF1ZXN0IGJvZHkgYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gImZ1bmN0aW9uICgp
IHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlN5bnRheEVycm9yOiBUaGUgc3RyaW5nIGRpZCBu
b3QgbWF0Y2ggdGhlIGV4cGVjdGVkIHBhdHRlcm4uIiAoIlN5bnRheEVycm9yIikgZXhwZWN0ZWQg
b2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKLUZBSUwgR2V0dGluZyBhcnJheUJ1ZmZl
ciBhZnRlciBnZXR0aW5nIGEgbG9ja2VkIFJlcXVlc3QgYm9keSBhc3NlcnRfdW5yZWFjaGVkOiBT
aG91bGQgaGF2ZSByZWplY3RlZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQor
UEFTUyBHZXR0aW5nIGJsb2IgYWZ0ZXIgZ2V0dGluZyBhIGxvY2tlZCBSZXF1ZXN0IGJvZHkgCitQ
QVNTIEdldHRpbmcgdGV4dCBhZnRlciBnZXR0aW5nIGEgbG9ja2VkIFJlcXVlc3QgYm9keSAKK1BB
U1MgR2V0dGluZyBqc29uIGFmdGVyIGdldHRpbmcgYSBsb2NrZWQgUmVxdWVzdCBib2R5IAorUEFT
UyBHZXR0aW5nIGFycmF5QnVmZmVyIGFmdGVyIGdldHRpbmcgYSBsb2NrZWQgUmVxdWVzdCBib2R5
IAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVh
bS1kaXN0dXJiZWQtMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9y
ZXF1ZXN0LXN0cmVhbS1kaXN0dXJiZWQtMy1leHBlY3RlZC50eHQKaW5kZXggYjkzZTNhNmZlYWQx
M2E4ZmFiY2I0NzE3ZjQ0OGU0NzBmM2U5ZGY5NC4uNTJlZDYzMGU0YjVmY2E2YzE3YzUxM2EzYjk0
ZjhkNjMxZDFlMjUxNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVx
dWVzdC1zdHJlYW0tZGlzdHVyYmVkLTMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0
dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWRpc3R1cmJlZC0zLWV4cGVjdGVkLnR4dApAQCAt
MSw2ICsxLDYgQEAKIAotRkFJTCBHZXR0aW5nIGJsb2IgYWZ0ZXIgcmVhZGluZyB0aGUgUmVxdWVz
dCBib2R5IGFzc2VydF91bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmluZWQg
UmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCi1GQUlMIEdldHRpbmcgdGV4dCBhZnRlciByZWFkaW5n
IHRoZSBSZXF1ZXN0IGJvZHkgYXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6
IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKLUZBSUwgR2V0dGluZyBqc29uIGFm
dGVyIHJlYWRpbmcgdGhlIFJlcXVlc3QgYm9keSBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVu
Y3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiU3ludGF4RXJyb3I6IFRoZSBzdHJp
bmcgZGlkIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgcGF0dGVybi4iICgiU3ludGF4RXJyb3IiKSBl
eHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQotRkFJTCBHZXR0aW5nIGFy
cmF5QnVmZmVyIGFmdGVyIHJlYWRpbmcgdGhlIFJlcXVlc3QgYm9keSBhc3NlcnRfdW5yZWFjaGVk
OiBTaG91bGQgaGF2ZSByZWplY3RlZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFibGUgY29k
ZQorUEFTUyBHZXR0aW5nIGJsb2IgYWZ0ZXIgcmVhZGluZyB0aGUgUmVxdWVzdCBib2R5IAorUEFT
UyBHZXR0aW5nIHRleHQgYWZ0ZXIgcmVhZGluZyB0aGUgUmVxdWVzdCBib2R5IAorUEFTUyBHZXR0
aW5nIGpzb24gYWZ0ZXIgcmVhZGluZyB0aGUgUmVxdWVzdCBib2R5IAorUEFTUyBHZXR0aW5nIGFy
cmF5QnVmZmVyIGFmdGVyIHJlYWRpbmcgdGhlIFJlcXVlc3QgYm9keSAKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZW1wdHktZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZW1wdHktZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxNGI0N2RhMDZmYjdlNjQ2MmQ4NWI5OWM1MzU1MWZhNmIz
OTM2NTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1
ZXN0LXN0cmVhbS1lbXB0eS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorCitQQVNTIEVt
cHR5IHN0cmVhbSBib2R5IGFzIHRleHQgCitQQVNTIEVtcHR5IHN0cmVhbSBib2R5IGFzIGFycmF5
QnVmZmVyIAorUEFTUyBFbXB0eSBzdHJlYW0gYm9keSBhcyBKU09OIAorUEFTUyBFbXB0eSBzdHJl
YW0gYm9keSBhcyBibG9iIAorUEFTUyBFbXB0eSBjaHVuayBzdHJlYW0gYm9keSBhcyB0ZXh0IAor
UEFTUyBFbXB0eSBjaHVuayBzdHJlYW0gYm9keSBhcyBhcnJheUJ1ZmZlciAKK1BBU1MgRW1wdHkg
Y2h1bmsgc3RyZWFtIGJvZHkgYXMgSlNPTiAKK1BBU1MgRW1wdHkgY2h1bmsgc3RyZWFtIGJvZHkg
YXMgYmxvYiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVz
dC1zdHJlYW0tZW1wdHkuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qt
c3RyZWFtLWVtcHR5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTMwZGU0NjQ3YTAxZjYzOGE2YzU0MWM3OWIy
MzQ2YzMxZDFmOTZlZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Zl
dGNoL3JlcXVlc3Qtc3RyZWFtLWVtcHR5Lmh0bWwKQEAgLTAsMCArMSw4OSBAQAorPCFkb2N0eXBl
IGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAg
IDx0aXRsZT5Db25zdW1pbmcgUmVxdWVzdCBib2R5IHdpdGggbm9uIEJ1ZmZlclNvdXJjZSBSZWFk
YWJsZVN0cmVhbSBjaHVua3M8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNj
cmlwdD4KK2Z1bmN0aW9uIGNyZWF0ZVJlcXVlc3RXaXRoRW1wdHlSZWFkYWJsZVN0cmVhbSgpCit7
CisgICAgdmFyIHN0cmVhbSA9IG5ldyBSZWFkYWJsZVN0cmVhbSh7c3RhcnQ6IGNvbnRyb2xsZXIg
PT4geworICAgICAgICBjb250cm9sbGVyLmNsb3NlKCk7CisgICAgfX0pOworICAgIHJldHVybiBu
ZXcgUmVxdWVzdCgiIiwge2JvZHk6IHN0cmVhbSwgbWV0aG9kOiAiUE9TVCJ9KTsKK30KKworZnVu
Y3Rpb24gY3JlYXRlUmVxdWVzdFdpdGhFbXB0eUNodW5rUmVhZGFibGVTdHJlYW0oKQoreworICAg
IHZhciBzdHJlYW0gPSBuZXcgUmVhZGFibGVTdHJlYW0oe3N0YXJ0OiBjb250cm9sbGVyID0+IHsK
KyAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKG5ldyBVaW50OEFycmF5KDApKTsKKyAgICAgICAg
Y29udHJvbGxlci5jbG9zZSgpOworICAgIH19KTsKKyAgICByZXR1cm4gbmV3IFJlcXVlc3QoIiIs
IHtib2R5OiBzdHJlYW0sIG1ldGhvZDogIlBPU1QifSk7Cit9CisKK3Byb21pc2VfdGVzdCh0ZXN0
ID0+IHsKKyAgICByZXR1cm4gY3JlYXRlUmVxdWVzdFdpdGhFbXB0eVJlYWRhYmxlU3RyZWFtKCku
dGV4dCgpLnRoZW4odGV4dCA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHModGV4dCwgIiIpOwor
ICAgIH0pOworfSwgIkVtcHR5IHN0cmVhbSBib2R5IGFzIHRleHQiKTsKKworcHJvbWlzZV90ZXN0
KHRlc3QgPT4geworICAgIHJldHVybiBjcmVhdGVSZXF1ZXN0V2l0aEVtcHR5UmVhZGFibGVTdHJl
YW0oKS5hcnJheUJ1ZmZlcigpLnRoZW4oYnVmZmVyID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhidWZmZXIuYnl0ZUxlbmd0aCwgMCwgIlJlc29sdmVkIHZhbHVlIHNob3VsZCBiZSBlbXB0eSIp
OworICAgIH0pOworfSwgIkVtcHR5IHN0cmVhbSBib2R5IGFzIGFycmF5QnVmZmVyIik7CisKK3By
b21pc2VfdGVzdCh0ZXN0ID0+IHsKKyAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHRlc3QsICJT
eW50YXhFcnJvciIsIGNyZWF0ZVJlcXVlc3RXaXRoRW1wdHlSZWFkYWJsZVN0cmVhbSgpLmpzb24o
KSk7Cit9LCAiRW1wdHkgc3RyZWFtIGJvZHkgYXMgSlNPTiIpOworCitwcm9taXNlX3Rlc3QodGVz
dCA9PiB7CisgICAgcmV0dXJuIGNyZWF0ZVJlcXVlc3RXaXRoRW1wdHlSZWFkYWJsZVN0cmVhbSgp
LmJsb2IoKS50aGVuKGZ1bmN0aW9uKGJvZHlBc0Jsb2IpIHsKKyAgICAgICAgdmFyIHByb21pc2Ug
PSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgIHZh
ciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOworICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9
ICgpID0+IHsgcmVzb2x2ZShyZWFkZXIucmVzdWx0KSB9OworICAgICAgICAgICAgcmVhZGVyLm9u
ZXJyb3IgPSAoKSA9PiB7IHJlamVjdCgiQmxvYidzIHJlYWRlciBmYWlsZWQiKTsgfTsKKyAgICAg
ICAgICAgIHJlYWRlci5yZWFkQXNUZXh0KGJvZHlBc0Jsb2IpOworICAgICAgICB9KTsKKyAgICAg
ICAgcmV0dXJuIHByb21pc2UudGhlbihmdW5jdGlvbihib2R5KSB7CisgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKGJvZHksICIiLCAiUmVzb2x2ZWQgdmFsdWUgc2hvdWxkIGJlIGVtcHR5Iik7Cisg
ICAgICAgIH0pOworICB9KTsKK30sICJFbXB0eSBzdHJlYW0gYm9keSBhcyBibG9iIik7CisKK3By
b21pc2VfdGVzdCh0ZXN0ID0+IHsKKyAgICByZXR1cm4gY3JlYXRlUmVxdWVzdFdpdGhFbXB0eUNo
dW5rUmVhZGFibGVTdHJlYW0oKS50ZXh0KCkudGhlbih0ZXh0ID0+IHsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyh0ZXh0LCAiIik7CisgICAgfSk7Cit9LCAiRW1wdHkgY2h1bmsgc3RyZWFtIGJvZHkg
YXMgdGV4dCIpOworCitwcm9taXNlX3Rlc3QodGVzdCA9PiB7CisgICAgcmV0dXJuIGNyZWF0ZVJl
cXVlc3RXaXRoRW1wdHlDaHVua1JlYWRhYmxlU3RyZWFtKCkuYXJyYXlCdWZmZXIoKS50aGVuKGJ1
ZmZlciA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoYnVmZmVyLmJ5dGVMZW5ndGgsIDAsICJS
ZXNvbHZlZCB2YWx1ZSBzaG91bGQgYmUgZW1wdHkiKTsKKyAgICB9KTsKK30sICJFbXB0eSBjaHVu
ayBzdHJlYW0gYm9keSBhcyBhcnJheUJ1ZmZlciIpOworCitwcm9taXNlX3Rlc3QodGVzdCA9PiB7
CisgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0ZXN0LCAiU3ludGF4RXJyb3IiLCBjcmVhdGVS
ZXF1ZXN0V2l0aEVtcHR5UmVhZGFibGVTdHJlYW0oKS5qc29uKCkpOworfSwgIkVtcHR5IGNodW5r
IHN0cmVhbSBib2R5IGFzIEpTT04iKTsKKworcHJvbWlzZV90ZXN0KHRlc3QgPT4geworICAgIHJl
dHVybiBjcmVhdGVSZXF1ZXN0V2l0aEVtcHR5Q2h1bmtSZWFkYWJsZVN0cmVhbSgpLmJsb2IoKS50
aGVuKGZ1bmN0aW9uKGJvZHlBc0Jsb2IpIHsKKyAgICAgICAgdmFyIHByb21pc2UgPSBuZXcgUHJv
bWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgIHZhciByZWFkZXIg
PSBuZXcgRmlsZVJlYWRlcigpOworICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHsg
cmVzb2x2ZShyZWFkZXIucmVzdWx0KSB9OworICAgICAgICAgICAgcmVhZGVyLm9uZXJyb3IgPSAo
KSA9PiB7IHJlamVjdCgiQmxvYidzIHJlYWRlciBmYWlsZWQiKTsgfTsKKyAgICAgICAgICAgIHJl
YWRlci5yZWFkQXNUZXh0KGJvZHlBc0Jsb2IpOworICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJu
IHByb21pc2UudGhlbihmdW5jdGlvbihib2R5KSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGJvZHksICIiLCAiUmVzb2x2ZWQgdmFsdWUgc2hvdWxkIGJlIGVtcHR5Iik7CisgICAgICAgIH0p
OworICB9KTsKK30sICJFbXB0eSBjaHVuayBzdHJlYW0gYm9keSBhcyBibG9iIik7CisgICAgPC9z
Y3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
d3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWVycm9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWVycm9yLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jNTRmYjQ5ZTJkMGUzNjUwYzk2MTIwNzUxNmFjZTk3NDE4ZDkyMzg0Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1zdHJlYW0tZXJyb3It
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFJlcXVlc3QgYm9keSBzaG91bGQg
b25seSBjb250YWluIEJ1ZmZlclNvdXJjZSBjaHVua3MgCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3Qtc3RyZWFtLWVycm9yLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1lcnJvci5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUx
OWU0OGRhYTgyZWEyMTBmYzAzYzVmMTNiMDYyNjM3OWUxYzhlMGYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LXN0cmVhbS1lcnJvci5odG1sCkBA
IC0wLDAgKzEsMjEgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+Q29uc3VtaW5nIFJlcXVlc3QgYm9keSB3
aXRoIG5vbiBCdWZmZXJTb3VyY2UgUmVhZGFibGVTdHJlYW0gY2h1bmtzPC90aXRsZT4KKyAgICA8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICA8
L2hlYWQ+CisgIDxib2R5PgorICAgIDxzY3JpcHQ+Citwcm9taXNlX3Rlc3QodGVzdCA9PiB7Cisg
ICAgdmFyIHN0cmVhbSA9IG5ldyBSZWFkYWJsZVN0cmVhbSh7c3RhcnQ6IGNvbnRyb2xsZXIgPT4g
eworICAgICAgICBjb250cm9sbGVyLmVucXVldWUoIlRoaXMgaXMgbm90IGEgYnVmZmVyIik7Cisg
ICAgICAgIGNvbnRyb2xsZXIuY2xvc2UoKTsKKyAgICB9fSk7CisgICAgdmFyIHJlcXVlc3QgPSBu
ZXcgUmVxdWVzdCgiIiwge2JvZHk6IHN0cmVhbSwgbWV0aG9kOiAiUE9TVCJ9KTsKKyAgICByZXR1
cm4gcHJvbWlzZV9yZWplY3RzKHRlc3QsIG5ldyBUeXBlRXJyb3IsIHJlcXVlc3QudGV4dCgpKTsK
K30sICJSZXF1ZXN0IGJvZHkgc2hvdWxkIG9ubHkgY29udGFpbiBCdWZmZXJTb3VyY2UgY2h1bmtz
Iik7CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>