<?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>162151</bug_id>
          
          <creation_ts>2016-09-19 07:43:52 -0700</creation_ts>
          <short_desc>[Fetch] Implement initial fetch steps</short_desc>
          <delta_ts>2016-10-27 05:35:38 -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>NEW</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=161686</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>162258</dependson>
    
    <dependson>162260</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>japhet</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1231081</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-09-19 07:43:52 -0700</bug_when>
    <thetext>We should implement set 1 to 7 of https://fetch.spec.whatwg.org/#fetching.
This is mostly refactoring/aligning existing code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1231087</commentid>
    <comment_count>1</comment_count>
      <attachid>289230</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-09-19 08:03:01 -0700</bug_when>
    <thetext>Created attachment 289230
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1231101</commentid>
    <comment_count>2</comment_count>
      <attachid>289231</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-09-19 08:46:37 -0700</bug_when>
    <thetext>Created attachment 289231
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1232394</commentid>
    <comment_count>3</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-09-22 04:20:00 -0700</bug_when>
    <thetext>What remains to be implemented is client hint really.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>289230</attachid>
            <date>2016-09-19 08:03:01 -0700</date>
            <delta_ts>2016-09-19 08:43:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162151-20160919170015.patch</filename>
            <type>text/plain</type>
            <size>27406</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2MDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGZiZWE3ZGU2M2E1NmM2
MjdhNTM1MThjNzNmZjliMGFjYjc0MGI5Ny4uY2E2YWY2MTQzZjMzMzM1ZTVkNmJhNjZmNjJlNjE4
NmYzZTE3MDQyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDE2LTA5LTE5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBbRmV0Y2hdIEltcGxlbWVu
dCBpbml0aWFsIGZldGNoIHN0ZXBzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjIxNTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL2xvY2FsL3NjcmlwdC1jcm9zc29yaWdpbi1s
b2Fkcy1maWxlLXNjaGVtZS5odG1sCisKKyAgICAgICAgVG8gaW1wbGVtZW50IHN0ZXAgMSB0byA3
IG9mIGZldGNoIGFsZ29yaXRobSwgdGhpcyBwYXRjaCBkb2VzIHR3byB0aGluZ3M6CisgICAgICAg
IC0gSXQgaGFuZGxlcyBBY2NlcHQgaGVhZGVyIHNldHRpbmcgYWNjb3JkaW5nIHRoZSBzcGVjLiBJ
dCBrZWVwcyBzZXR0aW5nIHNvbWUgcmVzb3VyY2UgdHlwZXMgd2l0aCBtb3JlIHByZWNpc2UKKyAg
ICAgICAgICB2YWx1ZXMgdGhhbiAnKi8qJyBhcyBwcmV2aW91c2x5IGRvbmUuIFByZXZpb3VzbHks
IEFjY2VwdCBoZWFkZXJzIHdlcmUgYXV0b21hdGljYWxseSBzZXQgYnkgQ2FjaGVkUmVzb3VyY2Uu
IE5vdworICAgICAgICAgIHRoaXMgaXMgb25seSB0aGUgY2FzZSBpZiB0aGVyZSBpcyBubyBBY2Nl
cHQgaGVhZGVyIGluIHRoZSByZXF1ZXN0LgorICAgICAgICAtIFRoZSBvcmlnaW4gb2YgYSBDYWNo
ZWRSZXNvdXJjZSBpcyBwYXNzZWQgd2l0aGluIENhY2hlZFJlc291cmNlUmVxdWVzdCBhbmQgbm8g
bG9uZ2VyIGFzIGEgSFRUUCBoZWFkZXIuCisKKyAgICAgICAgVGhlIGxhc3QgY2hhbmdlIGlzIGlt
cG9ydGFudCBhcyBDYWNoZWRSZXNvdXJjZSBhbmQgbG9hZGVycyBhcmUgZG9pbmcgQ09SUyBjaGVj
a3MgYmFzZWQgb24gdGhhdCBvcmlnaW4uCisgICAgICAgIFBhc3NpbmcgdGhlIG9yaWdpbiBhcyBh
IHN0cmluZyByZW1vdmVkIHNvbWUgcHJvcGVydGllcyBvZiBTZWN1cml0eU9yaWdpbiBzdWNoIGFz
IHRoZSBwb3NzaWJpbGl0eSB0byBncmFudCB1bml2ZXJzYWwgYWNjZXNzLgorCisgICAgICAgIEJl
Zm9yZSB0aGUgcGF0Y2gsIENPUlMgY2hlY2tzIHdlcmUgYWN0aXZhdGVkIGV2ZW4gaWYgdW5pdmVy
c2FsIGFjY2VzcyB3YXMgZ3JhbnRlZC4KKyAgICAgICAgV2l0aCB0aGlzIHBhdGNoLCByZXNvdXJj
ZXMgZmV0Y2hlZCBieSB1bml2ZXJzYWwgYWNjZXNzIGFyZSBjb25zaWRlcmVkIHNhbWUgb3JpZ2lu
LgorCisgICAgICAgIEFzIHBhcnQgb2YgdGhlIGNvbXB1dGF0aW9uIG9mIHRoZSBvcmlnaW4sIGRh
dGEgVVJMcyBhcmUgbm93IGFsd2F5cyBjb25zaWRlcmVkIFNhbWUgT3JpZ2luLgorICAgICAgICBU
aGlzIGFsaWducyB3aXRoIHJlY2VudCBjaGFuZ2VzIG9mIHRoZSBmZXRjaCBzcGVjIChodHRwczov
L2dpdGh1Yi5jb20vd2hhdHdnL2ZldGNoL2lzc3Vlcy8zODEpLgorCisgICAgICAgICogbG9hZGVy
L0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dFRocmVhZGFibGVMb2FkZXI6OmxvYWRSZXF1ZXN0KTogU2V0dGluZyBvcmlnaW4gb2YgdGhlIENh
Y2hlZFJlc291cmNlUmVxdWVzdC4KKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5
bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRDU1NTdHlsZVNoZWV0OjpDYWNo
ZWRDU1NTdHlsZVNoZWV0KTogUmVtb3ZpbmcgYWNjZXB0IGhlYWRlciB2YWx1ZS4KKyAgICAgICAg
KiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkUmVzb3VyY2U6OkNhY2hlZFJlc291cmNlKTogU2V0dGluZyBvZiB0aGUgb3JpZ2luIGZyb20g
dGhlIENhY2hlZFJlc291cmNlUmVxdWVzdC4gQWxzbyBjb21wdXRpbmcgY3Jvc3NPcmlnaW4gc3Rh
dGUgYmFzZWQgb24gaXQuCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6bG9hZCk6
IFJlbW92aW5nIG9yaWdpbiBzZXR0aW5nIGFuZCBjcm9zc09yaWdpbiBzdGF0ZSBjb21wdXRhdGlv
bi4KKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlOjpsb2FkRnJvbSk6IER1dHRvLgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OmNvbXB1dGVPcmlnaW4pOiBEZWxldGVk
LgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FjaGVkUmVzb3VyY2U6OmFjY2VwdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRSZXNvdXJjZTo6c2V0QWNjZXB0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVk
UmVzb3VyY2VMb2FkZXI6OnVwZGF0ZUNhY2hlZFJlc291cmNlV2l0aEN1cnJlbnRSZXF1ZXN0KToK
KyAgICAgICAgIChXZWJDb3JlOjphY2NlcHRIZWFkZXJWYWx1ZUZyb21UeXBlKTogQ29tcHV0aW5n
IGRlZmF1bHQgQWNjZXB0IGhlYWRlciB2YWx1ZXMgYWNjb3JkaW5nIHRoZSByZXNvdXJjZSB0eXBl
LgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnByZXBhcmVGZXRjaCk6
IEludHJvZHVjZWQgdG8gaW1wbGVtZW50IHN0ZXAgMSB0byA3IG9mIGZldGNoIGFsZ29yaXRobS4K
KyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2Up
OgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oOgorICAgICAg
ICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRBc1BvdGVudGlhbGx5Q3Jvc3NPcmlnaW4p
OiBTZXR0aW5nIHRoZSBvcmlnaW4gb2YgdGhlIHJlcXVlc3QuCisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVz
b3VyY2VSZXF1ZXN0OjpzZXRPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0OjpyZWxlYXNlT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291
cmNlUmVxdWVzdDo6b3JpZ2luKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9j
dW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU1ZHRG9jdW1lbnQ6OkNhY2hlZFNW
R0RvY3VtZW50KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFNjcmlwdDo6Q2FjaGVkU2NyaXB0KToKKyAgICAgICAgKiBs
b2FkZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
YWNoZWRYU0xTdHlsZVNoZWV0OjpDYWNoZWRYU0xTdHlsZVNoZWV0KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0QmFzZTo6aGFzSFRUUEhlYWRlcik6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmg6CisKIDIwMTYtMDktMTggIEFsZXggQ2hyaXN0
ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgdW5uZWNl
c3NhcnkgU3RyaW5nIGFsbG9jYXRpb25zIGluIFVSTFBhcnNlcgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAppbmRleCBhNDhiYzc4MmQx
ZmI4ZjY3MWI5MzA1MTUzNzA0Y2FiOTEzN2NmZDA5Li5iMTE5NzNkYjVkOWZlN2MxZmIyYjRmYWI5
NmNlNjJkNGEwMDQyNjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyLmNwcApAQCAtMzcwLDYgKzM3MCw3IEBAIHZvaWQgRG9jdW1lbnRU
aHJlYWRhYmxlTG9hZGVyOjpsb2FkUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBT
ZWN1cml0eUNoCiAgICAgICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0
dXJlcygpLnJlc291cmNlVGltaW5nRW5hYmxlZCgpKQogICAgICAgICAgICAgbmV3UmVxdWVzdC5z
ZXRJbml0aWF0b3IobV9vcHRpb25zLmluaXRpYXRvcik7CiAgICAgICAgIG5ld1JlcXVlc3QubXV0
YWJsZVJlc291cmNlUmVxdWVzdCgpLnNldEFsbG93Q29va2llcyhtX29wdGlvbnMuYWxsb3dDcmVk
ZW50aWFscyA9PSBBbGxvd1N0b3JlZENyZWRlbnRpYWxzKTsKKyAgICAgICAgbmV3UmVxdWVzdC5z
ZXRPcmlnaW4oJnNlY3VyaXR5T3JpZ2luKCkpOwogCiAgICAgICAgIEFTU0VSVCghbV9yZXNvdXJj
ZSk7CiAgICAgICAgIC8vIFdlIGNyZWF0ZSBhbiBVUkwgaGVyZSBhcyB0aGUgcmVxdWVzdCB3aWxs
IGJlIG1vdmVkIGluIHJlcXVlc3RSYXdSZXNvdXJjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwCmluZGV4IDhmM2EwYmQ4NTU1ZGJl
YzM5OWY5Nzk4M2NlMzJhYzdiMDZkOTY3MmIuLjM1MmZhNTM4ZjQxMjk1YmI4MjQwYTgxYmM1MWVk
NmFlMDQxNDUyOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRDU1NTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkQ1NTU3R5bGVTaGVldC5jcHAKQEAgLTQ1LDkgKzQ1LDYgQEAgQ2FjaGVkQ1NTU3R5bGVTaGVl
dDo6Q2FjaGVkQ1NTU3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBT
ZXNzaW8KICAgICA6IENhY2hlZFJlc291cmNlKFdURk1vdmUocmVxdWVzdCksIENTU1N0eWxlU2hl
ZXQsIHNlc3Npb25JRCkKICAgICAsIG1fZGVjb2RlcihUZXh0UmVzb3VyY2VEZWNvZGVyOjpjcmVh
dGUoInRleHQvY3NzIiwgcmVxdWVzdC5jaGFyc2V0KCkpKQogewotICAgIC8vIFByZWZlciB0ZXh0
L2NzcyBidXQgYWNjZXB0IGFueSB0eXBlIChkZWxsLmNvbSBzZXJ2ZXMgYSBzdHlsZXNoZWV0Ci0g
ICAgLy8gYXMgdGV4dC9odG1sOyBzZWUgPGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTExNDUxPikuCi0gICAgc2V0QWNjZXB0KCJ0ZXh0L2NzcywqLyo7cT0wLjEiKTsKIH0K
IAogQ2FjaGVkQ1NTU3R5bGVTaGVldDo6fkNhY2hlZENTU1N0eWxlU2hlZXQoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKaW5kZXggMzczZmRlNWQy
ZGNlYmZkOWJkMTc0NGJiYWY5ODk5NmIyNWFmMmRiMi4uMTMzMWQ4ZmQ5YjZmZGMyZDI1NmQxNmJh
Yzc5NzMyMWI0NGQ0YTU2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2UuY3BwCkBAIC0xMTksNiArMTE5LDcgQEAgQ2FjaGVkUmVzb3VyY2U6OkNhY2hl
ZFJlc291cmNlKENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFR5cGUgdHlwZSwgU2Vz
c2kKICAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAsIG1fbG9hZFByaW9yaXR5KGRl
ZmF1bHRQcmlvcml0eUZvclJlc291cmNlVHlwZSh0eXBlKSkKICAgICAsIG1fcmVzcG9uc2VUaW1l
c3RhbXAoc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6bm93KCkpCisgICAgLCBtX29yaWdpbihy
ZXF1ZXN0LnJlbGVhc2VPcmlnaW4oKSkKICAgICAsIG1fbGFzdERlY29kZWRBY2Nlc3NUaW1lKDAp
CiAgICAgLCBtX2xvYWRGaW5pc2hUaW1lKDApCiAgICAgLCBtX2VuY29kZWRTaXplKDApCkBAIC0x
NDYsNiArMTQ3LDExIEBAIENhY2hlZFJlc291cmNlOjpDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNv
dXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBUeXBlIHR5cGUsIFNlc3NpCiAjaWZuZGVmIE5ERUJVRwog
ICAgIGNhY2hlZFJlc291cmNlTGVha0NvdW50ZXIuaW5jcmVtZW50KCk7CiAjZW5kaWYKKyAgICAv
LyBGSVhNRTogV2Ugc2hvdWxkIGNoZWNrIGZvciBGZXRjaE1vZGU6Ok9wdGlvbnM6Ok5hdmlnYXRl
IG9uY2UgaW50cm9kdWNlZC4KKyAgICBBU1NFUlQobV9vcmlnaW4gfHwgbV90eXBlID09IENhY2hl
ZFJlc291cmNlOjpNYWluUmVzb3VyY2UpOworCisgICAgaWYgKG1fb3B0aW9ucy5tb2RlICE9IEZl
dGNoT3B0aW9uczo6TW9kZTo6U2FtZU9yaWdpbiAmJiAgbV9vcmlnaW4gJiYgIW1fcmVzb3VyY2VS
ZXF1ZXN0LnVybCgpLnByb3RvY29sSXNEYXRhKCkgJiYgIW1fb3JpZ2luLT5jYW5SZXF1ZXN0KG1f
cmVzb3VyY2VSZXF1ZXN0LnVybCgpKSkKKyAgICAgICAgc2V0Q3Jvc3NPcmlnaW4oKTsKIAogICAg
IGlmICghbV9yZXNvdXJjZVJlcXVlc3QudXJsKCkuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpCiAg
ICAgICAgIHJldHVybjsKQEAgLTI0MiwyNCArMjQ4LDYgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6
YWRkQWRkaXRpb25hbFJlcXVlc3RIZWFkZXJzKENhY2hlZFJlc291cmNlTG9hZGVyJiBsb2FkZXIp
CiAgICAgYWRkQWRkaXRpb25hbFJlcXVlc3RIZWFkZXJzVG9SZXF1ZXN0KG1fcmVzb3VyY2VSZXF1
ZXN0LCBsb2FkZXIsICp0aGlzKTsKIH0KIAotdm9pZCBDYWNoZWRSZXNvdXJjZTo6Y29tcHV0ZU9y
aWdpbihDYWNoZWRSZXNvdXJjZUxvYWRlciYgbG9hZGVyKQotewotICAgIGlmICh0eXBlKCkgPT0g
TWFpblJlc291cmNlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBBU1NFUlQobG9hZGVyLmRvY3Vt
ZW50KCkpOwotICAgIGlmIChtX3Jlc291cmNlUmVxdWVzdC5oYXNIVFRQT3JpZ2luKCkpCi0gICAg
ICAgIG1fb3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcobV9yZXNvdXJj
ZVJlcXVlc3QuaHR0cE9yaWdpbigpKTsKLSAgICBlbHNlCi0gICAgICAgIG1fb3JpZ2luID0gbG9h
ZGVyLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCk7Ci0gICAgQVNTRVJUKG1fb3JpZ2luKTsK
LQotICAgIGlmICghKG1fcmVzb3VyY2VSZXF1ZXN0LnVybCgpLnByb3RvY29sSXNEYXRhKCkgJiYg
bV9vcHRpb25zLnNhbWVPcmlnaW5EYXRhVVJMRmxhZyA9PSBTYW1lT3JpZ2luRGF0YVVSTEZsYWc6
OlNldCkgJiYgIW1fb3JpZ2luLT5jYW5SZXF1ZXN0KG1fcmVzb3VyY2VSZXF1ZXN0LnVybCgpKSkK
LSAgICAgICAgc2V0Q3Jvc3NPcmlnaW4oKTsKLQotICAgIGFkZEFkZGl0aW9uYWxSZXF1ZXN0SGVh
ZGVycyhsb2FkZXIpOwotfQotCiB2b2lkIENhY2hlZFJlc291cmNlOjpsb2FkKENhY2hlZFJlc291
cmNlTG9hZGVyJiBjYWNoZWRSZXNvdXJjZUxvYWRlcikKIHsKICAgICBpZiAoIWNhY2hlZFJlc291
cmNlTG9hZGVyLmZyYW1lKCkpIHsKQEAgLTI5Nyw5ICsyODUsNiBAQCB2b2lkIENhY2hlZFJlc291
cmNlOjpsb2FkKENhY2hlZFJlc291cmNlTG9hZGVyJiBjYWNoZWRSZXNvdXJjZUxvYWRlcikKICAg
ICB9CiAjZW5kaWYKIAotICAgIGlmICghYWNjZXB0KCkuaXNFbXB0eSgpKQotICAgICAgICBtX3Jl
c291cmNlUmVxdWVzdC5zZXRIVFRQQWNjZXB0KGFjY2VwdCgpKTsKLQogICAgIGlmIChpc0NhY2hl
VmFsaWRhdG9yKCkpIHsKICAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlVG9SZXZhbGlk
YXRlID0gbV9yZXNvdXJjZVRvUmV2YWxpZGF0ZTsKICAgICAgICAgQVNTRVJUKHJlc291cmNlVG9S
ZXZhbGlkYXRlLT5jYW5Vc2VDYWNoZVZhbGlkYXRvcigpKTsKQEAgLTMyMyw3ICszMDgsNyBAQCB2
b2lkIENhY2hlZFJlc291cmNlOjpsb2FkKENhY2hlZFJlc291cmNlTG9hZGVyJiBjYWNoZWRSZXNv
dXJjZUxvYWRlcikKICNlbmRpZgogICAgIG1fcmVzb3VyY2VSZXF1ZXN0LnNldFByaW9yaXR5KGxv
YWRQcmlvcml0eSgpKTsKIAotICAgIGNvbXB1dGVPcmlnaW4oY2FjaGVkUmVzb3VyY2VMb2FkZXIp
OworICAgIGFkZEFkZGl0aW9uYWxSZXF1ZXN0SGVhZGVycyhjYWNoZWRSZXNvdXJjZUxvYWRlcik7
CiAKICAgICAvLyBGSVhNRTogSXQncyB1bmZvcnR1bmF0ZSB0aGF0IHRoZSBjYWNoZSBsYXllciBh
bmQgYmVsb3cgZ2V0IHRvIGtub3cgYW55dGhpbmcgYWJvdXQgZnJhZ21lbnQgaWRlbnRpZmllcnMu
CiAgICAgLy8gV2Ugc2hvdWxkIGxvb2sgaW50byByZW1vdmluZyB0aGUgZXhwZWN0YXRpb24gb2Yg
dGhhdCBrbm93bGVkZ2UgZnJvbSB0aGUgcGxhdGZvcm0gbmV0d29yayBzdGFja3MuCkBAIC0zNDQs
MTQgKzMyOSwxMiBAQCB2b2lkIENhY2hlZFJlc291cmNlOjpsb2FkKENhY2hlZFJlc291cmNlTG9h
ZGVyJiBjYWNoZWRSZXNvdXJjZUxvYWRlcikKICAgICBtX3N0YXR1cyA9IFBlbmRpbmc7CiB9CiAK
LXZvaWQgQ2FjaGVkUmVzb3VyY2U6OmxvYWRGcm9tKGNvbnN0IENhY2hlZFJlc291cmNlJiByZXNv
dXJjZSwgQ2FjaGVkUmVzb3VyY2VMb2FkZXImIGNhY2hlZFJlc291cmNlTG9hZGVyKQordm9pZCBD
YWNoZWRSZXNvdXJjZTo6bG9hZEZyb20oY29uc3QgQ2FjaGVkUmVzb3VyY2UmIHJlc291cmNlKQog
ewogICAgIEFTU0VSVCh1cmwoKSA9PSByZXNvdXJjZS51cmwoKSk7CiAgICAgQVNTRVJUKHR5cGUo
KSA9PSByZXNvdXJjZS50eXBlKCkpOwogICAgIEFTU0VSVChyZXNvdXJjZS5zdGF0dXMoKSA9PSBT
dGF0dXM6OkNhY2hlZCk7CiAKLSAgICBjb21wdXRlT3JpZ2luKGNhY2hlZFJlc291cmNlTG9hZGVy
KTsKLQogICAgIGlmIChpc0Nyb3NzT3JpZ2luKCkgJiYgbV9vcHRpb25zLm1vZGUgPT0gRmV0Y2hP
cHRpb25zOjpNb2RlOjpDb3JzKSB7CiAgICAgICAgIEFTU0VSVChtX29yaWdpbik7CiAgICAgICAg
IFN0cmluZyBlcnJvck1lc3NhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZS5oCmluZGV4IGRjNWY5YTJmYmUzMmFiOGQ0MDA4NGIxZDFkZDZiNThjZmQ3MDVi
N2MuLmJhNDUxMjNhN2Y1NjY2YTc1OGI3MzZlMzQ4ZDhjMTE0ZTkzZDNlZTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCkBAIC0yMTEsNyArMjExLDcg
QEAgcHVibGljOgogICAgIGJvb2wgaXNDbGVhbigpIGNvbnN0OwogICAgIFJlc291cmNlUmVzcG9u
c2U6OlRhaW50aW5nIHJlc3BvbnNlVGFpbnRpbmcoKSBjb25zdCB7IHJldHVybiBtX3Jlc3BvbnNl
VGFpbnRpbmc7IH0KIAotICAgIHZvaWQgbG9hZEZyb20oY29uc3QgQ2FjaGVkUmVzb3VyY2UmLCBD
YWNoZWRSZXNvdXJjZUxvYWRlciYpOworICAgIHZvaWQgbG9hZEZyb20oY29uc3QgQ2FjaGVkUmVz
b3VyY2UmKTsKIAogICAgIFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4oKSBjb25zdCB7IHJldHVybiBt
X29yaWdpbi5nZXQoKTsgfQogCkBAIC0yMjAsMTEgKzIyMCw2IEBAIHB1YmxpYzoKIAogICAgIGJv
b2wgaXNFeHBpcmVkKCkgY29uc3Q7CiAKLSAgICAvLyBMaXN0IG9mIGFjY2VwdGFibGUgTUlNRSB0
eXBlcyBzZXBhcmF0ZWQgYnkgIiwiLgotICAgIC8vIEEgTUlNRSB0eXBlIG1heSBjb250YWluIGEg
d2lsZGNhcmQsIGUuZy4gInRleHQvKiIuCi0gICAgU3RyaW5nIGFjY2VwdCgpIGNvbnN0IHsgcmV0
dXJuIG1fYWNjZXB0OyB9Ci0gICAgdm9pZCBzZXRBY2NlcHQoY29uc3QgU3RyaW5nJiBhY2NlcHQp
IHsgbV9hY2NlcHQgPSBhY2NlcHQ7IH0KLQogICAgIHZvaWQgY2FuY2VsTG9hZCgpOwogICAgIGJv
b2wgd2FzQ2FuY2VsZWQoKSBjb25zdCB7IHJldHVybiBtX2Vycm9yLmlzQ2FuY2VsbGF0aW9uKCk7
IH0KICAgICBib29sIGVycm9yT2NjdXJyZWQoKSBjb25zdCB7IHJldHVybiBtX3N0YXR1cyA9PSBM
b2FkRXJyb3IgfHwgbV9zdGF0dXMgPT0gRGVjb2RlRXJyb3I7IH0KQEAgLTMxNCwxMiArMzA5LDEw
IEBAIHByaXZhdGU6CiAgICAgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBmcmVzaG5lc3NMaWZl
dGltZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgY29uc3Q7CiAKICAgICB2b2lkIGFkZEFkZGl0
aW9uYWxSZXF1ZXN0SGVhZGVycyhDYWNoZWRSZXNvdXJjZUxvYWRlciYpOwotICAgIHZvaWQgY29t
cHV0ZU9yaWdpbihDYWNoZWRSZXNvdXJjZUxvYWRlciYpOwogICAgIHZvaWQgZmFpbEJlZm9yZVN0
YXJ0aW5nKCk7CiAKICAgICBIYXNoTWFwPENhY2hlZFJlc291cmNlQ2xpZW50Kiwgc3RkOjp1bmlx
dWVfcHRyPENhbGxiYWNrPj4gbV9jbGllbnRzQXdhaXRpbmdDYWxsYmFjazsKICAgICBTZXNzaW9u
SUQgbV9zZXNzaW9uSUQ7Ci0gICAgU3RyaW5nIG1fYWNjZXB0OwogICAgIFJlc291cmNlTG9hZFBy
aW9yaXR5IG1fbG9hZFByaW9yaXR5OwogICAgIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRp
bWVfcG9pbnQgbV9yZXNwb25zZVRpbWVzdGFtcDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggYWMwMjcyNTNkNzRl
ZGUzOGEwNTU3ZjIzNjRkZTM5MGI4Mjk2NTgzOS4uOGM3NGNmNzA3NDkwNWMzZThjNTAzMzk2NjAx
YWYxZTAzOWM1YjQ4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC01ODEsNyArNTgxLDcgQEAgQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjp1cGRhdGVDYWNo
ZWRSZXNvdXJjZVcKICAgICB9CiAKICAgICBhdXRvIHJlc291cmNlSGFuZGxlID0gY3JlYXRlUmVz
b3VyY2UocmVzb3VyY2UudHlwZSgpLCBXVEZNb3ZlKHJlcXVlc3QpLCBzZXNzaW9uSUQoKSk7Ci0g
ICAgcmVzb3VyY2VIYW5kbGUtPmxvYWRGcm9tKHJlc291cmNlLCAqdGhpcyk7CisgICAgcmVzb3Vy
Y2VIYW5kbGUtPmxvYWRGcm9tKHJlc291cmNlKTsKICAgICByZXR1cm4gcmVzb3VyY2VIYW5kbGU7
CiB9CiAKQEAgLTU5NSw2ICs1OTUsNDEgQEAgc3RhdGljIGlubGluZSB2b2lkIGxvZ01lbW9yeUNh
Y2hlUmVzb3VyY2VSZXF1ZXN0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBkZXMKICAgICAg
ICAgZnJhbWUtPnBhZ2UoKS0+ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9zdGlj
TWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNlUmVxdWVzdEtl
eSgpLCBkZXNjcmlwdGlvbiwgdmFsdWUsIFNob3VsZFNhbXBsZTo6WWVzKTsKIH0KIAorc3RhdGlj
IGlubGluZSBTdHJpbmcgYWNjZXB0SGVhZGVyVmFsdWVGcm9tVHlwZShDYWNoZWRSZXNvdXJjZTo6
VHlwZSB0eXBlKQoreworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgQ2FjaGVkUmVzb3Vy
Y2U6OlR5cGU6Ok1haW5SZXNvdXJjZToKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgidGV4
dC9odG1sLGFwcGxpY2F0aW9uL3hodG1sK3htbCxhcHBsaWNhdGlvbi94bWw7cT0wLjksKi8qO3E9
MC44Iik7CisgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VHlwZTo6SW1hZ2VSZXNvdXJjZToKKyAg
ICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiaW1hZ2UvcG5nLGltYWdlL3N2Zyt4bWwsaW1hZ2Uv
KjtxPTAuOCwqLyo7cT0wLjUiKTsKKyAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUeXBlOjpDU1NT
dHlsZVNoZWV0OgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJ0ZXh0L2NzcywqLyo7cT0w
LjEiKTsKKyAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUeXBlOjpTVkdEb2N1bWVudFJlc291cmNl
OgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJpbWFnZS9zdmcreG1sIik7CisjaWYgRU5B
QkxFKFhTTFQpCisgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VHlwZTo6WFNMU3R5bGVTaGVldDoK
KyAgICAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGFjY2VwdCBtb3JlIGdlbmVyYWwgeG1sIGZv
cm1hdHMgKi8qK3htbCwgaW1hZ2Uvc3ZnK3htbCBmb3IgZXhhbXBsZS4KKyAgICAgICAgcmV0dXJu
IEFTQ0lJTGl0ZXJhbCgidGV4dC94bWwsYXBwbGljYXRpb24veG1sLGFwcGxpY2F0aW9uL3hodG1s
K3htbCx0ZXh0L3hzbCxhcHBsaWNhdGlvbi9yc3MreG1sLGFwcGxpY2F0aW9uL2F0b20reG1sIik7
CisjZW5kaWYKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCIqLyoi
KTsKKyAgICB9Cit9CisKK3ZvaWQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnByZXBhcmVGZXRjaChD
YWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qp
Cit7CisgICAgLy8gSW1wbGVtZW50aW5nIHN0ZXAgMSB0byA3IG9mIGh0dHBzOi8vZmV0Y2guc3Bl
Yy53aGF0d2cub3JnLyNmZXRjaGluZworICAgIC8vIEZJWE1FOiBEZWNpZGUgd2hldGhlciB0byBz
dXBwb3J0IGNsaWVudCBoaW50IGhlYWRlcnMuCisKKyAgICBpZiAoIXJlcXVlc3Qub3JpZ2luKCkg
JiYgZG9jdW1lbnQoKSkKKyAgICAgICAgcmVxdWVzdC5zZXRPcmlnaW4oZG9jdW1lbnQoKS0+c2Vj
dXJpdHlPcmlnaW4oKSk7CisgICAgLy8gVGhlcmUgc2hvdWxkIGJlIGFuIE9yaWdpbiBleGNlcHQg
aW4gY2FzZSBvZiBOYXZpZ2F0aW9uLgorICAgIEFTU0VSVChyZXF1ZXN0Lm9yaWdpbigpIHx8IHR5
cGUgPT0gQ2FjaGVkUmVzb3VyY2U6OlR5cGU6Ok1haW5SZXNvdXJjZSk7CisKKyAgICBpZiAoIXJl
cXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuaGFzSFRUUEhlYWRlcihIVFRQSGVhZGVyTmFtZTo6QWNj
ZXB0KSkKKyAgICAgICAgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCkuc2V0SFRUUEhl
YWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpBY2NlcHQsIGFjY2VwdEhlYWRlclZhbHVlRnJvbVR5
cGUodHlwZSkpOworfQorCiBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2Fj
aGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0
eXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQogewogICAgIGlmIChEb2N1bWVu
dCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKQpAQCAtNjEwLDYgKzY0NSw4IEBAIENhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdFJlc291cmNlKENhY2hlCiAgICAgaWYgKCF1cmwuaXNWYWxpZCgpKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIAorICAgIHByZXBhcmVGZXRjaCh0eXBlLCByZXF1ZXN0KTsKKwogICAgIGlm
ICghY2FuUmVxdWVzdCh0eXBlLCB1cmwsIHJlcXVlc3Qub3B0aW9ucygpLCByZXF1ZXN0LmZvclBy
ZWxvYWQoKSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oCmluZGV4IDVhZjcxZDJhYWEy
YzMzMDM5YWVjMGU2ZDhmYTc4MTIxNzhiNzc0NzkuLmQ0OWE4NzEyN2VlMGVhZjdiZWJhN2JmZWE0
YzMyNWMyYTM4ZGJhNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZUxvYWRlci5oCkBAIC0xNDksNiArMTQ5LDcgQEAgcHJpdmF0ZToKICAgICBl
eHBsaWNpdCBDYWNoZWRSZXNvdXJjZUxvYWRlcihEb2N1bWVudExvYWRlciopOwogCiAgICAgQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IHJlcXVlc3RSZXNvdXJjZShDYWNoZWRS
ZXNvdXJjZTo6VHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYpOworICAgIHZvaWQgcHJlcGFy
ZUZldGNoKENhY2hlZFJlc291cmNlOjpUeXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKICAg
ICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcmV2YWxpZGF0ZVJlc291cmNl
KENhY2hlZFJlc291cmNlUmVxdWVzdCYmLCBDYWNoZWRSZXNvdXJjZSYpOwogICAgIENhY2hlZFJl
c291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBsb2FkUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6
OlR5cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYmKTsKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRs
ZTxDYWNoZWRSZXNvdXJjZT4gcmVxdWVzdFByZWxvYWQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIENh
Y2hlZFJlc291cmNlUmVxdWVzdCYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKaW5kZXggZGM1NGJkZjEwNDU2MTdkM2E4
Y2M3NDkxMjFjNzRmOTc5MTVmYjIxNy4uNDRhZTg2NDQ5MzZhZGFlOTg4ZDBhYWM3ZGY3ZTUwNzkx
NDg2YWViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlUmVxdWVzdC5jcHAKQEAgLTkxLDEzICs5MSwxNiBAQCBjb25zdCBBdG9taWNTdHJp
bmcmIENhY2hlZFJlc291cmNlUmVxdWVzdDo6aW5pdGlhdG9yTmFtZSgpIGNvbnN0CiB2b2lkIENh
Y2hlZFJlc291cmNlUmVxdWVzdDo6c2V0QXNQb3RlbnRpYWxseUNyb3NzT3JpZ2luKGNvbnN0IFN0
cmluZyYgbW9kZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIEFTU0VSVChtX29wdGlvbnMu
bW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5vQ29ycyk7CisgICAgQVNTRVJUKGRvY3VtZW50
LnNlY3VyaXR5T3JpZ2luKCkpOworCisgICAgbV9vcmlnaW4gPSBkb2N1bWVudC5zZWN1cml0eU9y
aWdpbigpOworCiAgICAgaWYgKG1vZGUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybjsKICAgICBt
X29wdGlvbnMubW9kZSA9IEZldGNoT3B0aW9uczo6TW9kZTo6Q29yczsKICAgICBtX29wdGlvbnMu
Y3JlZGVudGlhbHMgPSBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShtb2RlLCAidXNlLWNy
ZWRlbnRpYWxzIikgPyBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpJbmNsdWRlIDogRmV0Y2hP
cHRpb25zOjpDcmVkZW50aWFsczo6U2FtZU9yaWdpbjsKICAgICBtX29wdGlvbnMuYWxsb3dDcmVk
ZW50aWFscyA9IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKG1vZGUsICJ1c2UtY3JlZGVu
dGlhbHMiKSA/IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMgOiBEb05vdEFsbG93U3RvcmVkQ3JlZGVu
dGlhbHM7CiAKLSAgICBBU1NFUlQoZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKSk7CiAgICAgdXBk
YXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2wobV9yZXNvdXJjZVJlcXVlc3QsICpkb2N1bWVudC5z
ZWN1cml0eU9yaWdpbigpLCBtX29wdGlvbnMuYWxsb3dDcmVkZW50aWFscyk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaApp
bmRleCA4MjdlYmJiZTU4NjY3NGViYmE3Njk4YjQ5NzgzYWQzZDhmZGZjMDIwLi5iM2U0NDk0N2E3
NWZlMjMwYzk2NzAyNzQxY2Q3MzYwZTQyOTQzNTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oCkBAIC0zMSw2ICszMSw3IEBA
CiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkUHJpb3JpdHkuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxv
YWRlck9wdGlvbnMuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJT
ZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9BdG9taWNTdHJpbmcuaD4KIApAQCAtNjQsNiArNjUsOSBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRDYWNoaW5nUG9saWN5KENhY2hpbmdQb2xpY3kgcG9saWN5KSB7IG1fb3B0aW9ucy5jYWNo
aW5nUG9saWN5ID0gcG9saWN5OyB9CiAKICAgICB2b2lkIHNldEFzUG90ZW50aWFsbHlDcm9zc09y
aWdpbihjb25zdCBTdHJpbmcmLCBEb2N1bWVudCYpOworICAgIHZvaWQgc2V0T3JpZ2luKFJlZlB0
cjxTZWN1cml0eU9yaWdpbj4mJiBvcmlnaW4pIHsgQVNTRVJUKCFtX29yaWdpbik7IG1fb3JpZ2lu
ID0gV1RGTW92ZShvcmlnaW4pOyB9CisgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiByZWxlYXNl
T3JpZ2luKCkgeyByZXR1cm4gV1RGTW92ZShtX29yaWdpbik7IH0KKyAgICBTZWN1cml0eU9yaWdp
biogb3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV9vcmlnaW4uZ2V0KCk7IH0KIAogcHJpdmF0ZToK
ICAgICBSZXNvdXJjZVJlcXVlc3QgbV9yZXNvdXJjZVJlcXVlc3Q7CkBAIC03NCw2ICs3OCw3IEBA
IHByaXZhdGU6CiAgICAgRGVmZXJPcHRpb24gbV9kZWZlcjsKICAgICBSZWZQdHI8RWxlbWVudD4g
bV9pbml0aWF0b3JFbGVtZW50OwogICAgIEF0b21pY1N0cmluZyBtX2luaXRpYXRvck5hbWU7Cisg
ICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBtX29yaWdpbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRT
VkdEb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9j
dW1lbnQuY3BwCmluZGV4IGUzOTQ5YTMzZWJiYThmNDk5NDVjYzc0YzFhZGJmYTZlYzRjNDY1NGMu
LjA4YjQwMTY5ZDMzYjRjMjQxZWIxZmFhNDMzYjFjYjc4MmE4Yjk5NTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmNwcApAQCAtMzEsNyAr
MzEsNiBAQCBDYWNoZWRTVkdEb2N1bWVudDo6Q2FjaGVkU1ZHRG9jdW1lbnQoQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0JiYgcmVxdWVzdCwgU2Vzc2lvbklECiAgICAgOiBDYWNoZWRSZXNvdXJjZShXVEZN
b3ZlKHJlcXVlc3QpLCBTVkdEb2N1bWVudFJlc291cmNlLCBzZXNzaW9uSUQpCiAgICAgLCBtX2Rl
Y29kZXIoVGV4dFJlc291cmNlRGVjb2Rlcjo6Y3JlYXRlKCJhcHBsaWNhdGlvbi94bWwiKSkKIHsK
LSAgICBzZXRBY2NlcHQoImltYWdlL3N2Zyt4bWwiKTsKIH0KIAogQ2FjaGVkU1ZHRG9jdW1lbnQ6
On5DYWNoZWRTVkdEb2N1bWVudCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkU2NyaXB0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRTY3JpcHQuY3BwCmluZGV4IGYwYmEzZDA4ZmYxM2Y0MTljNDJlYmM4M2Y2OGU5YzAxYjJkMzJj
MjQuLjQwOGVkYTU1Mzk0YWYyODgwNDUyZTE2ZDI0MTlmZGQyZDUwOTg4ZjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwCkBAIC00NCwxMCArNDQsNiBA
QCBDYWNoZWRTY3JpcHQ6OkNhY2hlZFNjcmlwdChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1
ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogQ2FjaGVkUmVzb3VyY2UoV1RGTW92ZShy
ZXF1ZXN0KSwgU2NyaXB0LCBzZXNzaW9uSUQpCiAgICAgLCBtX2RlY29kZXIoVGV4dFJlc291cmNl
RGVjb2Rlcjo6Y3JlYXRlKEFTQ0lJTGl0ZXJhbCgiYXBwbGljYXRpb24vamF2YXNjcmlwdCIpLCBy
ZXF1ZXN0LmNoYXJzZXQoKSkpCiB7Ci0gICAgLy8gSXQncyBqYXZhc2NyaXB0IHdlIHdhbnQuCi0g
ICAgLy8gQnV0IHNvbWUgd2Vic2l0ZXMgdGhpbmsgdGhlaXIgc2NyaXB0cyBhcmUgPHNvbWUgd3Jv
bmcgbWltZXR5cGUgaGVyZT4KLSAgICAvLyBhbmQgcmVmdXNlIHRvIHNlcnZlIHRoZW0gaWYgd2Ug
b25seSBhY2NlcHQgYXBwbGljYXRpb24veC1qYXZhc2NyaXB0LgotICAgIHNldEFjY2VwdCgiKi8q
Iik7CiB9CiAKIENhY2hlZFNjcmlwdDo6fkNhY2hlZFNjcmlwdCgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5jcHAKaW5kZXggNzE0NTI4
Y2M5MjMxMDE4Y2U3MjVmMTkwYWYwZWNlZTNkMDU2NWMwMC4uMmMzMjBmZWYxODQ5MDNjMTc3Njhi
NmIwMGJkM2UzYjBkYzVlMmY4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcApAQCAtNDAsOSArNDAsNiBAQCBDYWNoZWRYU0xT
dHlsZVNoZWV0OjpDYWNoZWRYU0xTdHlsZVNoZWV0KENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJl
cXVlc3QsIFNlc3NpbwogICAgIDogQ2FjaGVkUmVzb3VyY2UoV1RGTW92ZShyZXF1ZXN0KSwgWFNM
U3R5bGVTaGVldCwgc2Vzc2lvbklEKQogICAgICwgbV9kZWNvZGVyKFRleHRSZXNvdXJjZURlY29k
ZXI6OmNyZWF0ZSgidGV4dC94c2wiKSkKIHsKLSAgICAvLyBJdCdzIFhNTCB3ZSB3YW50LgotICAg
IC8vIEZJWE1FOiBUaGlzIHNob3VsZCBhY2NlcHQgbW9yZSBnZW5lcmFsIHhtbCBmb3JtYXRzICov
Kit4bWwsIGltYWdlL3N2Zyt4bWwgZm9yIGV4YW1wbGUuCi0gICAgc2V0QWNjZXB0KCJ0ZXh0L3ht
bCwgYXBwbGljYXRpb24veG1sLCBhcHBsaWNhdGlvbi94aHRtbCt4bWwsIHRleHQveHNsLCBhcHBs
aWNhdGlvbi9yc3MreG1sLCBhcHBsaWNhdGlvbi9hdG9tK3htbCIpOwogfQogCiBDYWNoZWRYU0xT
dHlsZVNoZWV0Ojp+Q2FjaGVkWFNMU3R5bGVTaGVldCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcAppbmRleCA5NTdk
MjhjNjA5M2ZjYWUwMGU3MTlhMzczNTZhYzBhY2M0M2Q5ODI5Li5hNmI1MzU2ZGVhNDI0MmQ5M2U5
NWIxZDNjNGQwZTllMDc5OGJjNmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAKQEAgLTMzMyw2ICszMzMsMTEg
QEAgdm9pZCBSZXNvdXJjZVJlcXVlc3RCYXNlOjpjbGVhckhUVFBPcmlnaW4oKQogICAgICAgICBt
X3BsYXRmb3JtUmVxdWVzdFVwZGF0ZWQgPSBmYWxzZTsKIH0KIAorYm9vbCBSZXNvdXJjZVJlcXVl
c3RCYXNlOjpoYXNIVFRQSGVhZGVyKEhUVFBIZWFkZXJOYW1lIG5hbWUpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1faHR0cEhlYWRlckZpZWxkcy5jb250YWlucyhuYW1lKTsKK30KKwogU3RyaW5nIFJl
c291cmNlUmVxdWVzdEJhc2U6Omh0dHBVc2VyQWdlbnQoKSBjb25zdAogewogICAgIHJldHVybiBo
dHRwSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlVzZXJBZ2VudCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oCmluZGV4
IDcxZjk1NTA3N2FmNjc1NjJmMDYxN2VlNzI2YzBhYTQzMzBlODVhZjEuLjAxMGFjYzUzZmMzY2Vj
YWU3NDkzYTE3NjY4NjExZTBkY2FjOWJmZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oCkBAIC05Nyw2ICs5Nyw4IEBA
IHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEhUVFBDb250ZW50VHlwZShjb25z
dCBTdHJpbmcmKTsKICAgICB2b2lkIGNsZWFySFRUUENvbnRlbnRUeXBlKCk7CiAKKyAgICBib29s
IGhhc0hUVFBIZWFkZXIoSFRUUEhlYWRlck5hbWUpIGNvbnN0OworCiAgICAgV0VCQ09SRV9FWFBP
UlQgU3RyaW5nIGh0dHBSZWZlcnJlcigpIGNvbnN0OwogICAgIGJvb2wgaGFzSFRUUFJlZmVycmVy
KCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRIVFRQUmVmZXJyZXIoY29uc3Qg
U3RyaW5nJik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggN2E5NmQ0N2Y1ZmEzNGMyMzcyYzIxNjkyZmQzN2RhYTU5NjdjNTQz
ZS4uYmM3YzRkNWM5Y2ViODA3MTg0MjQ3MDVhMjJmOTcyY2RmNGM5OWMxZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE5IEBACisyMDE2LTA5LTE5ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
KworICAgICAgICBbRmV0Y2hdIEltcGxlbWVudCBpbml0aWFsIGZldGNoIHN0ZXBzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjIxNTEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWluZyBodHRwL3Rl
c3RzL2xvY2FsL3NjcmlwdC1jcm9zc29yaWdpbi1sb2Fkcy1mYWlsLW9yaWdpbi5odG1sIGludG8g
aHR0cC90ZXN0cy9sb2NhbC9zY3JpcHQtY3Jvc3NvcmlnaW4tbG9hZHMtZmlsZS1zY2hlbWUuaHRt
bC4KKyAgICAgICAgVXBkYXRpbmcgdGhpcyB0ZXN0IHRvIGV4cGVjdCBsb2FkIG9mIHRoZSBzY3Jp
cHQgYXMgdGhlIG9yaWdpbiBpcyB1bml2ZXJzYWwgYWNjZXNzIGFuZCBpcyB0aHVzIG92ZXJyaWRp
bmcgQ09SUyBjaGVja3MuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2xvY2FsL3NjcmlwdC1jcm9z
c29yaWdpbi1sb2Fkcy1mYWlsLW9yaWdpbi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9sb2NhbC9zY3JpcHQtY3Jvc3NvcmlnaW4tbG9hZHMtZmlsZS1zY2hlbWUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2xvY2FsL3NjcmlwdC1j
cm9zc29yaWdpbi1sb2Fkcy1maWxlLXNjaGVtZS5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9sb2NhbC9zY3JpcHQtY3Jvc3NvcmlnaW4tbG9hZHMtZmFpbC1vcmlnaW4u
aHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL2ltYWdlLWNoZWNrcy1m
b3ItYWNjZXB0LnBocDogVXBkYXRlZCB0byBleHBlY3QgbmV3IGFjY2VwdCB2YWx1ZSBmb3IgaW1h
Z2VzLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvc2NyaXB0LXdpdGgtZGF0YXVybC5o
dG1sOiBVcGRhdGVkIHRvIGV4cGVjdCBsb2FkaW5nIG9mIGRhdGEgVVJMcyBmb3Igc2NyaXB0cyBp
biBDT1JTIG1vZGUuCisKIDIwMTYtMDktMTggIE1hdHQgQmFrZXIgIDxtYXR0YmFrZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFkZCB0ZXN0IGNvdmVyYWdlIGZvciBhbGwg
YXJyYXkgdXRpbGl0eSBmdW5jdGlvbnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbG9jYWwvc2NyaXB0LWNyb3Nzb3JpZ2luLWxvYWRzLWZhaWwtb3JpZ2luLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvc2NyaXB0LWNyb3Nzb3JpZ2luLWxvYWRz
LWZhaWwtb3JpZ2luLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZmIwYjgzMGFhMDBhZDVkODE1YzdlYjIyNzg2ZTUyMTRlMzgyZjU1Yy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xv
Y2FsL3NjcmlwdC1jcm9zc29yaWdpbi1sb2Fkcy1mYWlsLW9yaWdpbi1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogT3JpZ2luICBpcyBu
b3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCi1DT05TT0xFIE1FU1NB
R0U6IENyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291
cmNlIFNoYXJpbmcgcG9saWN5LgotVGhpcyB0ZXN0IGZhaWxzIGlmIHRoZSBzY3JpcHQgbG9hZHMg
Y29ycmVjdGx5LgotCi1QQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xv
Y2FsL3NjcmlwdC1jcm9zc29yaWdpbi1sb2Fkcy1mYWlsLW9yaWdpbi5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9sb2NhbC9zY3JpcHQtY3Jvc3NvcmlnaW4tbG9hZHMtZmFpbC1vcmlnaW4u
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmE2Y2NmYTg5OWMwOWQ3OTMxNTc3
YmNiZjE1OGEzYTY3ZGYxNmU0NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL3NjcmlwdC1jcm9zc29yaWdp
bi1sb2Fkcy1mYWlsLW9yaWdpbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAot
PGJvZHk+Ci08cD5UaGlzIHRlc3QgZmFpbHMgaWYgdGhlIHNjcmlwdCBsb2FkcyBjb3JyZWN0bHku
PC9wPgotPHByZT48L3ByZT4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKLX0KLQotZnVuY3Rpb24gZG9uZShtc2cpIHsKLSAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
KCJwcmUiKS5pbm5lckhUTUwgPSBtc2c7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLX0KLQotdmFyIHNjcmlwdCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOwotc2NyaXB0LmNyb3NzT3JpZ2luID0gInVzZS1jcmVk
ZW50aWFscyI7Ci0vLyBXZSBhcmUgc2VydmluZyB0aGUgdGVzdCBmcm9tIHRoZSBmaWxlc3lzdGVt
LCBzbyBpdCBzaG91bGQgZmFpbCBhcyBhdXRob3JpemVkIG9yaWdpbiBpcyAxMjcuMC4wLjE6ODAw
MC4KLXNjcmlwdC5zcmMgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291cmNl
cy9jb3JzLXNjcmlwdC5waHA/Y3JlZGVudGlhbHM9dHJ1ZSI7Ci1zY3JpcHQub25sb2FkID0gZnVu
Y3Rpb24oKSB7IGRvbmUoIkZBSUwiKTsgfQotc2NyaXB0Lm9uZXJyb3IgPSBmdW5jdGlvbigpIHsg
ZG9uZSgiUEFTUyIpO30KLWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKLTwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9zY3JpcHQtY3Jv
c3NvcmlnaW4tbG9hZHMtZmlsZS1zY2hlbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9sb2NhbC9zY3JpcHQtY3Jvc3NvcmlnaW4tbG9hZHMtZmlsZS1zY2hlbWUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmYwNWJiZjMyOTcyY2U1YTgzN2QyNTdmYWE0MjFkZGRlNGU3Y2E0
YTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL3Njcmlw
dC1jcm9zc29yaWdpbi1sb2Fkcy1maWxlLXNjaGVtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0
IEBACitBTEVSVDogc2NyaXB0IHJhbi4KK1RoaXMgdGVzdCBwYXNzZXMgaWYgdGhlIHNjcmlwdCBs
b2FkcyBjb3JyZWN0bHkuCisKK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbG9jYWwvc2NyaXB0LWNyb3Nzb3JpZ2luLWxvYWRzLWZpbGUtc2NoZW1lLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL3NjcmlwdC1jcm9zc29yaWdpbi1sb2Fkcy1maWxlLXNj
aGVtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlNDBkZDA0NTViYTI1ODFmMzdhYTNlZWZjODYzYzA4NThl
YWU5MDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL3Nj
cmlwdC1jcm9zc29yaWdpbi1sb2Fkcy1maWxlLXNjaGVtZS5odG1sCkBAIC0wLDAgKzEsMjQgQEAK
Kzxib2R5PgorPHA+VGhpcyB0ZXN0IHBhc3NlcyBpZiB0aGUgc2NyaXB0IGxvYWRzIGNvcnJlY3Rs
eS48L3A+Cis8cHJlPjwvcHJlPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgewor
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOworfQorCitmdW5jdGlvbiBkb25lKG1zZykgeworICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoInByZSIpLmlubmVySFRNTCA9IG1zZzsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCit2YXIgc2NyaXB0ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CitzY3JpcHQuY3Jvc3NPcmlnaW4gPSAidXNlLWNy
ZWRlbnRpYWxzIjsKKy8vIFdlIGFyZSBzZXJ2aW5nIHRoZSB0ZXN0IGZyb20gdGhlIGZpbGVzeXN0
ZW0gYW5kIGZpbGUgVVJMcyBhcmUgZ3JhbnRlZCB1bml2ZXJzYWwgYWNjZXNzLgorLy8gVGhpcyBi
eXBhc3NlcyBDT1JTIGNoZWNrcyBhbmQgd2lsbCBhbGxvdyBhY2Nlc3MgdG8gMTI3LjAuMC4xOjgw
MDAuCitzY3JpcHQuc3JjID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJj
ZXMvY29ycy1zY3JpcHQucGhwP2NyZWRlbnRpYWxzPXRydWUiOworc2NyaXB0Lm9ubG9hZCA9IGZ1
bmN0aW9uKCkgeyBkb25lKCJQQVNTIik7IH0KK3NjcmlwdC5vbmVycm9yID0gZnVuY3Rpb24oKSB7
IGRvbmUoIkZBSUwiKTt9Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7Cis8L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMv
aW1hZ2UtY2hlY2tzLWZvci1hY2NlcHQucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNj
L3Jlc291cmNlcy9pbWFnZS1jaGVja3MtZm9yLWFjY2VwdC5waHAKaW5kZXggNDU5YzQxNmE4Y2I3
ODhlZWU5OWI2YWVlYjBkY2I1NWIwNjFiMTkyMi4uNWU1Y2RjNmQzMGFlYmY2YTIwYTdhMGU0NmMx
Y2FiNzgwYzRhNDQ1OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jl
c291cmNlcy9pbWFnZS1jaGVja3MtZm9yLWFjY2VwdC5waHAKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9taXNjL3Jlc291cmNlcy9pbWFnZS1jaGVja3MtZm9yLWFjY2VwdC5waHAKQEAgLTEs
NSArMSw1IEBACiA8P3BocAotICAgIGlmKCRfU0VSVkVSWyJIVFRQX0FDQ0VQVCJdID09ICIqLyoi
IHx8ICRfU0VSVkVSWyJIVFRQX0FDQ0VQVCJdID09ICJpbWFnZS8qIiB8fCAkX1NFUlZFUlsiSFRU
UF9BQ0NFUFQiXSA9PSAiaW1hZ2UvanBnIikKKyAgICBpZigkX1NFUlZFUlsiSFRUUF9BQ0NFUFQi
XSA9PSAiaW1hZ2UvcG5nLGltYWdlL3N2Zyt4bWwsaW1hZ2UvKjtxPTAuOCwqLyo7cT0wLjUiKQog
ICAgIHsKICAgICAgICAgaGVhZGVyKCJDb250ZW50LVR5cGU6IGltYWdlL2pwZyIpOwogICAgICAg
ICBoZWFkZXIoIkNhY2hlLUNvbnRyb2w6IG5vLXN0b3JlIik7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NjcmlwdC13aXRoLWRhdGF1cmwuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2NyaXB0LXdpdGgtZGF0YXVybC5odG1sCmluZGV4
IDdhNTE0ZGU0Y2M3NDBlYTc5NTg5ZjY3MjI2MjVlY2IyNjczZDdhYTcuLjU4YmFkMDI4ZmQ1Mzgy
MDc1NDczNmY0MGRkMGIxMDVmN2EwNDljNzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvc2NyaXB0LXdpdGgtZGF0YXVybC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvc2NyaXB0LXdpdGgtZGF0YXVybC5odG1sCkBAIC0zNSw5ICsz
NSw5IEBAIGZ1bmN0aW9uIHRlc3QyKCkKIHsKICAgICB2YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgic2NyaXB0Iik7CiAgICAgc2NyaXB0LmNyb3NzT3JpZ2luID0gIiI7Ci0gICAg
c2NyaXB0LnNyYyA9ICJkYXRhOnRleHQvc2NyaXB0LCB0aHJvdyAnRkFJTDogbXkgZXJyb3IgaXMg
dG9vIHJpY2ghJyI7Ci0gICAgc2NyaXB0Lm9ubG9hZCA9ICgpID0+IHsgbG9nKCJGQUlMOiBsb2Fk
ZWQgc2NyaXB0IGluIGNvcnMgbW9kZSIpOyBkb25lKCk7IH0KLSAgICBzY3JpcHQub25lcnJvciA9
ICgpID0+IHsgbG9nKCJQQVNTOiBkaWQgbm90IGxvYWQgc2NyaXB0IGluIGNvcnMgbW9kZSIpOyBk
b25lKCk7IH0KKyAgICBzY3JpcHQuc3JjID0gImRhdGE6dGV4dC9zY3JpcHQsIHRocm93ICdQQVNT
OiBteSBkYXRhIFVSTCBpbiBjb3JzIG1vZGUgaXMgYWxzbyB0aHJvd2luZyByaWNoIG1lc3NhZ2Vz
ISciOworICAgIHNjcmlwdC5vbmxvYWQgPSAoKSA9PiB7IGxvZygiUEFTUzogbG9hZGVkIHNjcmlw
dCBpbiBjb3JzIG1vZGUiKTsgZG9uZSgpOyB9CisgICAgc2NyaXB0Lm9uZXJyb3IgPSAoKSA9PiB7
IGxvZygiRkFJTDogZGlkIG5vdCBsb2FkIHNjcmlwdCBpbiBjb3JzIG1vZGUiKTsgZG9uZSgpOyB9
CiAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>289231</attachid>
            <date>2016-09-19 08:46:37 -0700</date>
            <delta_ts>2016-10-27 05:35:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162151-20160919174347.patch</filename>
            <type>text/plain</type>
            <size>28491</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2MDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGZiZWE3ZGU2M2E1NmM2
MjdhNTM1MThjNzNmZjliMGFjYjc0MGI5Ny4uY2E2YWY2MTQzZjMzMzM1ZTVkNmJhNjZmNjJlNjE4
NmYzZTE3MDQyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDE2LTA5LTE5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBbRmV0Y2hdIEltcGxlbWVu
dCBpbml0aWFsIGZldGNoIHN0ZXBzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjIxNTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL2xvY2FsL3NjcmlwdC1jcm9zc29yaWdpbi1s
b2Fkcy1maWxlLXNjaGVtZS5odG1sCisKKyAgICAgICAgVG8gaW1wbGVtZW50IHN0ZXAgMSB0byA3
IG9mIGZldGNoIGFsZ29yaXRobSwgdGhpcyBwYXRjaCBkb2VzIHR3byB0aGluZ3M6CisgICAgICAg
IC0gSXQgaGFuZGxlcyBBY2NlcHQgaGVhZGVyIHNldHRpbmcgYWNjb3JkaW5nIHRoZSBzcGVjLiBJ
dCBrZWVwcyBzZXR0aW5nIHNvbWUgcmVzb3VyY2UgdHlwZXMgd2l0aCBtb3JlIHByZWNpc2UKKyAg
ICAgICAgICB2YWx1ZXMgdGhhbiAnKi8qJyBhcyBwcmV2aW91c2x5IGRvbmUuIFByZXZpb3VzbHks
IEFjY2VwdCBoZWFkZXJzIHdlcmUgYXV0b21hdGljYWxseSBzZXQgYnkgQ2FjaGVkUmVzb3VyY2Uu
IE5vdworICAgICAgICAgIHRoaXMgaXMgb25seSB0aGUgY2FzZSBpZiB0aGVyZSBpcyBubyBBY2Nl
cHQgaGVhZGVyIGluIHRoZSByZXF1ZXN0LgorICAgICAgICAtIFRoZSBvcmlnaW4gb2YgYSBDYWNo
ZWRSZXNvdXJjZSBpcyBwYXNzZWQgd2l0aGluIENhY2hlZFJlc291cmNlUmVxdWVzdCBhbmQgbm8g
bG9uZ2VyIGFzIGEgSFRUUCBoZWFkZXIuCisKKyAgICAgICAgVGhlIGxhc3QgY2hhbmdlIGlzIGlt
cG9ydGFudCBhcyBDYWNoZWRSZXNvdXJjZSBhbmQgbG9hZGVycyBhcmUgZG9pbmcgQ09SUyBjaGVj
a3MgYmFzZWQgb24gdGhhdCBvcmlnaW4uCisgICAgICAgIFBhc3NpbmcgdGhlIG9yaWdpbiBhcyBh
IHN0cmluZyByZW1vdmVkIHNvbWUgcHJvcGVydGllcyBvZiBTZWN1cml0eU9yaWdpbiBzdWNoIGFz
IHRoZSBwb3NzaWJpbGl0eSB0byBncmFudCB1bml2ZXJzYWwgYWNjZXNzLgorCisgICAgICAgIEJl
Zm9yZSB0aGUgcGF0Y2gsIENPUlMgY2hlY2tzIHdlcmUgYWN0aXZhdGVkIGV2ZW4gaWYgdW5pdmVy
c2FsIGFjY2VzcyB3YXMgZ3JhbnRlZC4KKyAgICAgICAgV2l0aCB0aGlzIHBhdGNoLCByZXNvdXJj
ZXMgZmV0Y2hlZCBieSB1bml2ZXJzYWwgYWNjZXNzIGFyZSBjb25zaWRlcmVkIHNhbWUgb3JpZ2lu
LgorCisgICAgICAgIEFzIHBhcnQgb2YgdGhlIGNvbXB1dGF0aW9uIG9mIHRoZSBvcmlnaW4sIGRh
dGEgVVJMcyBhcmUgbm93IGFsd2F5cyBjb25zaWRlcmVkIFNhbWUgT3JpZ2luLgorICAgICAgICBU
aGlzIGFsaWducyB3aXRoIHJlY2VudCBjaGFuZ2VzIG9mIHRoZSBmZXRjaCBzcGVjIChodHRwczov
L2dpdGh1Yi5jb20vd2hhdHdnL2ZldGNoL2lzc3Vlcy8zODEpLgorCisgICAgICAgICogbG9hZGVy
L0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dFRocmVhZGFibGVMb2FkZXI6OmxvYWRSZXF1ZXN0KTogU2V0dGluZyBvcmlnaW4gb2YgdGhlIENh
Y2hlZFJlc291cmNlUmVxdWVzdC4KKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5
bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRDU1NTdHlsZVNoZWV0OjpDYWNo
ZWRDU1NTdHlsZVNoZWV0KTogUmVtb3ZpbmcgYWNjZXB0IGhlYWRlciB2YWx1ZS4KKyAgICAgICAg
KiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkUmVzb3VyY2U6OkNhY2hlZFJlc291cmNlKTogU2V0dGluZyBvZiB0aGUgb3JpZ2luIGZyb20g
dGhlIENhY2hlZFJlc291cmNlUmVxdWVzdC4gQWxzbyBjb21wdXRpbmcgY3Jvc3NPcmlnaW4gc3Rh
dGUgYmFzZWQgb24gaXQuCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6bG9hZCk6
IFJlbW92aW5nIG9yaWdpbiBzZXR0aW5nIGFuZCBjcm9zc09yaWdpbiBzdGF0ZSBjb21wdXRhdGlv
bi4KKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlOjpsb2FkRnJvbSk6IER1dHRvLgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OmNvbXB1dGVPcmlnaW4pOiBEZWxldGVk
LgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FjaGVkUmVzb3VyY2U6OmFjY2VwdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRSZXNvdXJjZTo6c2V0QWNjZXB0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVk
UmVzb3VyY2VMb2FkZXI6OnVwZGF0ZUNhY2hlZFJlc291cmNlV2l0aEN1cnJlbnRSZXF1ZXN0KToK
KyAgICAgICAgIChXZWJDb3JlOjphY2NlcHRIZWFkZXJWYWx1ZUZyb21UeXBlKTogQ29tcHV0aW5n
IGRlZmF1bHQgQWNjZXB0IGhlYWRlciB2YWx1ZXMgYWNjb3JkaW5nIHRoZSByZXNvdXJjZSB0eXBl
LgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnByZXBhcmVGZXRjaCk6
IEludHJvZHVjZWQgdG8gaW1wbGVtZW50IHN0ZXAgMSB0byA3IG9mIGZldGNoIGFsZ29yaXRobS4K
KyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2Up
OgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oOgorICAgICAg
ICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRBc1BvdGVudGlhbGx5Q3Jvc3NPcmlnaW4p
OiBTZXR0aW5nIHRoZSBvcmlnaW4gb2YgdGhlIHJlcXVlc3QuCisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVz
b3VyY2VSZXF1ZXN0OjpzZXRPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0OjpyZWxlYXNlT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291
cmNlUmVxdWVzdDo6b3JpZ2luKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9j
dW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU1ZHRG9jdW1lbnQ6OkNhY2hlZFNW
R0RvY3VtZW50KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFNjcmlwdDo6Q2FjaGVkU2NyaXB0KToKKyAgICAgICAgKiBs
b2FkZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
YWNoZWRYU0xTdHlsZVNoZWV0OjpDYWNoZWRYU0xTdHlsZVNoZWV0KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0QmFzZTo6aGFzSFRUUEhlYWRlcik6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmg6CisKIDIwMTYtMDktMTggIEFsZXggQ2hyaXN0
ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgdW5uZWNl
c3NhcnkgU3RyaW5nIGFsbG9jYXRpb25zIGluIFVSTFBhcnNlcgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAppbmRleCBhNDhiYzc4MmQx
ZmI4ZjY3MWI5MzA1MTUzNzA0Y2FiOTEzN2NmZDA5Li5iMTE5NzNkYjVkOWZlN2MxZmIyYjRmYWI5
NmNlNjJkNGEwMDQyNjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyLmNwcApAQCAtMzcwLDYgKzM3MCw3IEBAIHZvaWQgRG9jdW1lbnRU
aHJlYWRhYmxlTG9hZGVyOjpsb2FkUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBT
ZWN1cml0eUNoCiAgICAgICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0
dXJlcygpLnJlc291cmNlVGltaW5nRW5hYmxlZCgpKQogICAgICAgICAgICAgbmV3UmVxdWVzdC5z
ZXRJbml0aWF0b3IobV9vcHRpb25zLmluaXRpYXRvcik7CiAgICAgICAgIG5ld1JlcXVlc3QubXV0
YWJsZVJlc291cmNlUmVxdWVzdCgpLnNldEFsbG93Q29va2llcyhtX29wdGlvbnMuYWxsb3dDcmVk
ZW50aWFscyA9PSBBbGxvd1N0b3JlZENyZWRlbnRpYWxzKTsKKyAgICAgICAgbmV3UmVxdWVzdC5z
ZXRPcmlnaW4oJnNlY3VyaXR5T3JpZ2luKCkpOwogCiAgICAgICAgIEFTU0VSVCghbV9yZXNvdXJj
ZSk7CiAgICAgICAgIC8vIFdlIGNyZWF0ZSBhbiBVUkwgaGVyZSBhcyB0aGUgcmVxdWVzdCB3aWxs
IGJlIG1vdmVkIGluIHJlcXVlc3RSYXdSZXNvdXJjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwCmluZGV4IDhmM2EwYmQ4NTU1ZGJl
YzM5OWY5Nzk4M2NlMzJhYzdiMDZkOTY3MmIuLjM1MmZhNTM4ZjQxMjk1YmI4MjQwYTgxYmM1MWVk
NmFlMDQxNDUyOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRDU1NTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkQ1NTU3R5bGVTaGVldC5jcHAKQEAgLTQ1LDkgKzQ1LDYgQEAgQ2FjaGVkQ1NTU3R5bGVTaGVl
dDo6Q2FjaGVkQ1NTU3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBT
ZXNzaW8KICAgICA6IENhY2hlZFJlc291cmNlKFdURk1vdmUocmVxdWVzdCksIENTU1N0eWxlU2hl
ZXQsIHNlc3Npb25JRCkKICAgICAsIG1fZGVjb2RlcihUZXh0UmVzb3VyY2VEZWNvZGVyOjpjcmVh
dGUoInRleHQvY3NzIiwgcmVxdWVzdC5jaGFyc2V0KCkpKQogewotICAgIC8vIFByZWZlciB0ZXh0
L2NzcyBidXQgYWNjZXB0IGFueSB0eXBlIChkZWxsLmNvbSBzZXJ2ZXMgYSBzdHlsZXNoZWV0Ci0g
ICAgLy8gYXMgdGV4dC9odG1sOyBzZWUgPGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTExNDUxPikuCi0gICAgc2V0QWNjZXB0KCJ0ZXh0L2NzcywqLyo7cT0wLjEiKTsKIH0K
IAogQ2FjaGVkQ1NTU3R5bGVTaGVldDo6fkNhY2hlZENTU1N0eWxlU2hlZXQoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKaW5kZXggMzczZmRlNWQy
ZGNlYmZkOWJkMTc0NGJiYWY5ODk5NmIyNWFmMmRiMi4uMTMzMWQ4ZmQ5YjZmZGMyZDI1NmQxNmJh
Yzc5NzMyMWI0NGQ0YTU2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2UuY3BwCkBAIC0xMTksNiArMTE5LDcgQEAgQ2FjaGVkUmVzb3VyY2U6OkNhY2hl
ZFJlc291cmNlKENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFR5cGUgdHlwZSwgU2Vz
c2kKICAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAsIG1fbG9hZFByaW9yaXR5KGRl
ZmF1bHRQcmlvcml0eUZvclJlc291cmNlVHlwZSh0eXBlKSkKICAgICAsIG1fcmVzcG9uc2VUaW1l
c3RhbXAoc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6bm93KCkpCisgICAgLCBtX29yaWdpbihy
ZXF1ZXN0LnJlbGVhc2VPcmlnaW4oKSkKICAgICAsIG1fbGFzdERlY29kZWRBY2Nlc3NUaW1lKDAp
CiAgICAgLCBtX2xvYWRGaW5pc2hUaW1lKDApCiAgICAgLCBtX2VuY29kZWRTaXplKDApCkBAIC0x
NDYsNiArMTQ3LDExIEBAIENhY2hlZFJlc291cmNlOjpDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNv
dXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBUeXBlIHR5cGUsIFNlc3NpCiAjaWZuZGVmIE5ERUJVRwog
ICAgIGNhY2hlZFJlc291cmNlTGVha0NvdW50ZXIuaW5jcmVtZW50KCk7CiAjZW5kaWYKKyAgICAv
LyBGSVhNRTogV2Ugc2hvdWxkIGNoZWNrIGZvciBGZXRjaE1vZGU6Ok9wdGlvbnM6Ok5hdmlnYXRl
IG9uY2UgaW50cm9kdWNlZC4KKyAgICBBU1NFUlQobV9vcmlnaW4gfHwgbV90eXBlID09IENhY2hl
ZFJlc291cmNlOjpNYWluUmVzb3VyY2UpOworCisgICAgaWYgKG1fb3B0aW9ucy5tb2RlICE9IEZl
dGNoT3B0aW9uczo6TW9kZTo6U2FtZU9yaWdpbiAmJiAgbV9vcmlnaW4gJiYgIW1fcmVzb3VyY2VS
ZXF1ZXN0LnVybCgpLnByb3RvY29sSXNEYXRhKCkgJiYgIW1fb3JpZ2luLT5jYW5SZXF1ZXN0KG1f
cmVzb3VyY2VSZXF1ZXN0LnVybCgpKSkKKyAgICAgICAgc2V0Q3Jvc3NPcmlnaW4oKTsKIAogICAg
IGlmICghbV9yZXNvdXJjZVJlcXVlc3QudXJsKCkuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpCiAg
ICAgICAgIHJldHVybjsKQEAgLTI0MiwyNCArMjQ4LDYgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6
YWRkQWRkaXRpb25hbFJlcXVlc3RIZWFkZXJzKENhY2hlZFJlc291cmNlTG9hZGVyJiBsb2FkZXIp
CiAgICAgYWRkQWRkaXRpb25hbFJlcXVlc3RIZWFkZXJzVG9SZXF1ZXN0KG1fcmVzb3VyY2VSZXF1
ZXN0LCBsb2FkZXIsICp0aGlzKTsKIH0KIAotdm9pZCBDYWNoZWRSZXNvdXJjZTo6Y29tcHV0ZU9y
aWdpbihDYWNoZWRSZXNvdXJjZUxvYWRlciYgbG9hZGVyKQotewotICAgIGlmICh0eXBlKCkgPT0g
TWFpblJlc291cmNlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBBU1NFUlQobG9hZGVyLmRvY3Vt
ZW50KCkpOwotICAgIGlmIChtX3Jlc291cmNlUmVxdWVzdC5oYXNIVFRQT3JpZ2luKCkpCi0gICAg
ICAgIG1fb3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcobV9yZXNvdXJj
ZVJlcXVlc3QuaHR0cE9yaWdpbigpKTsKLSAgICBlbHNlCi0gICAgICAgIG1fb3JpZ2luID0gbG9h
ZGVyLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCk7Ci0gICAgQVNTRVJUKG1fb3JpZ2luKTsK
LQotICAgIGlmICghKG1fcmVzb3VyY2VSZXF1ZXN0LnVybCgpLnByb3RvY29sSXNEYXRhKCkgJiYg
bV9vcHRpb25zLnNhbWVPcmlnaW5EYXRhVVJMRmxhZyA9PSBTYW1lT3JpZ2luRGF0YVVSTEZsYWc6
OlNldCkgJiYgIW1fb3JpZ2luLT5jYW5SZXF1ZXN0KG1fcmVzb3VyY2VSZXF1ZXN0LnVybCgpKSkK
LSAgICAgICAgc2V0Q3Jvc3NPcmlnaW4oKTsKLQotICAgIGFkZEFkZGl0aW9uYWxSZXF1ZXN0SGVh
ZGVycyhsb2FkZXIpOwotfQotCiB2b2lkIENhY2hlZFJlc291cmNlOjpsb2FkKENhY2hlZFJlc291
cmNlTG9hZGVyJiBjYWNoZWRSZXNvdXJjZUxvYWRlcikKIHsKICAgICBpZiAoIWNhY2hlZFJlc291
cmNlTG9hZGVyLmZyYW1lKCkpIHsKQEAgLTI5Nyw5ICsyODUsNiBAQCB2b2lkIENhY2hlZFJlc291
cmNlOjpsb2FkKENhY2hlZFJlc291cmNlTG9hZGVyJiBjYWNoZWRSZXNvdXJjZUxvYWRlcikKICAg
ICB9CiAjZW5kaWYKIAotICAgIGlmICghYWNjZXB0KCkuaXNFbXB0eSgpKQotICAgICAgICBtX3Jl
c291cmNlUmVxdWVzdC5zZXRIVFRQQWNjZXB0KGFjY2VwdCgpKTsKLQogICAgIGlmIChpc0NhY2hl
VmFsaWRhdG9yKCkpIHsKICAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlVG9SZXZhbGlk
YXRlID0gbV9yZXNvdXJjZVRvUmV2YWxpZGF0ZTsKICAgICAgICAgQVNTRVJUKHJlc291cmNlVG9S
ZXZhbGlkYXRlLT5jYW5Vc2VDYWNoZVZhbGlkYXRvcigpKTsKQEAgLTMyMyw3ICszMDgsNyBAQCB2
b2lkIENhY2hlZFJlc291cmNlOjpsb2FkKENhY2hlZFJlc291cmNlTG9hZGVyJiBjYWNoZWRSZXNv
dXJjZUxvYWRlcikKICNlbmRpZgogICAgIG1fcmVzb3VyY2VSZXF1ZXN0LnNldFByaW9yaXR5KGxv
YWRQcmlvcml0eSgpKTsKIAotICAgIGNvbXB1dGVPcmlnaW4oY2FjaGVkUmVzb3VyY2VMb2FkZXIp
OworICAgIGFkZEFkZGl0aW9uYWxSZXF1ZXN0SGVhZGVycyhjYWNoZWRSZXNvdXJjZUxvYWRlcik7
CiAKICAgICAvLyBGSVhNRTogSXQncyB1bmZvcnR1bmF0ZSB0aGF0IHRoZSBjYWNoZSBsYXllciBh
bmQgYmVsb3cgZ2V0IHRvIGtub3cgYW55dGhpbmcgYWJvdXQgZnJhZ21lbnQgaWRlbnRpZmllcnMu
CiAgICAgLy8gV2Ugc2hvdWxkIGxvb2sgaW50byByZW1vdmluZyB0aGUgZXhwZWN0YXRpb24gb2Yg
dGhhdCBrbm93bGVkZ2UgZnJvbSB0aGUgcGxhdGZvcm0gbmV0d29yayBzdGFja3MuCkBAIC0zNDQs
MTQgKzMyOSwxMiBAQCB2b2lkIENhY2hlZFJlc291cmNlOjpsb2FkKENhY2hlZFJlc291cmNlTG9h
ZGVyJiBjYWNoZWRSZXNvdXJjZUxvYWRlcikKICAgICBtX3N0YXR1cyA9IFBlbmRpbmc7CiB9CiAK
LXZvaWQgQ2FjaGVkUmVzb3VyY2U6OmxvYWRGcm9tKGNvbnN0IENhY2hlZFJlc291cmNlJiByZXNv
dXJjZSwgQ2FjaGVkUmVzb3VyY2VMb2FkZXImIGNhY2hlZFJlc291cmNlTG9hZGVyKQordm9pZCBD
YWNoZWRSZXNvdXJjZTo6bG9hZEZyb20oY29uc3QgQ2FjaGVkUmVzb3VyY2UmIHJlc291cmNlKQog
ewogICAgIEFTU0VSVCh1cmwoKSA9PSByZXNvdXJjZS51cmwoKSk7CiAgICAgQVNTRVJUKHR5cGUo
KSA9PSByZXNvdXJjZS50eXBlKCkpOwogICAgIEFTU0VSVChyZXNvdXJjZS5zdGF0dXMoKSA9PSBT
dGF0dXM6OkNhY2hlZCk7CiAKLSAgICBjb21wdXRlT3JpZ2luKGNhY2hlZFJlc291cmNlTG9hZGVy
KTsKLQogICAgIGlmIChpc0Nyb3NzT3JpZ2luKCkgJiYgbV9vcHRpb25zLm1vZGUgPT0gRmV0Y2hP
cHRpb25zOjpNb2RlOjpDb3JzKSB7CiAgICAgICAgIEFTU0VSVChtX29yaWdpbik7CiAgICAgICAg
IFN0cmluZyBlcnJvck1lc3NhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZS5oCmluZGV4IGRjNWY5YTJmYmUzMmFiOGQ0MDA4NGIxZDFkZDZiNThjZmQ3MDVi
N2MuLmJhNDUxMjNhN2Y1NjY2YTc1OGI3MzZlMzQ4ZDhjMTE0ZTkzZDNlZTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCkBAIC0yMTEsNyArMjExLDcg
QEAgcHVibGljOgogICAgIGJvb2wgaXNDbGVhbigpIGNvbnN0OwogICAgIFJlc291cmNlUmVzcG9u
c2U6OlRhaW50aW5nIHJlc3BvbnNlVGFpbnRpbmcoKSBjb25zdCB7IHJldHVybiBtX3Jlc3BvbnNl
VGFpbnRpbmc7IH0KIAotICAgIHZvaWQgbG9hZEZyb20oY29uc3QgQ2FjaGVkUmVzb3VyY2UmLCBD
YWNoZWRSZXNvdXJjZUxvYWRlciYpOworICAgIHZvaWQgbG9hZEZyb20oY29uc3QgQ2FjaGVkUmVz
b3VyY2UmKTsKIAogICAgIFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4oKSBjb25zdCB7IHJldHVybiBt
X29yaWdpbi5nZXQoKTsgfQogCkBAIC0yMjAsMTEgKzIyMCw2IEBAIHB1YmxpYzoKIAogICAgIGJv
b2wgaXNFeHBpcmVkKCkgY29uc3Q7CiAKLSAgICAvLyBMaXN0IG9mIGFjY2VwdGFibGUgTUlNRSB0
eXBlcyBzZXBhcmF0ZWQgYnkgIiwiLgotICAgIC8vIEEgTUlNRSB0eXBlIG1heSBjb250YWluIGEg
d2lsZGNhcmQsIGUuZy4gInRleHQvKiIuCi0gICAgU3RyaW5nIGFjY2VwdCgpIGNvbnN0IHsgcmV0
dXJuIG1fYWNjZXB0OyB9Ci0gICAgdm9pZCBzZXRBY2NlcHQoY29uc3QgU3RyaW5nJiBhY2NlcHQp
IHsgbV9hY2NlcHQgPSBhY2NlcHQ7IH0KLQogICAgIHZvaWQgY2FuY2VsTG9hZCgpOwogICAgIGJv
b2wgd2FzQ2FuY2VsZWQoKSBjb25zdCB7IHJldHVybiBtX2Vycm9yLmlzQ2FuY2VsbGF0aW9uKCk7
IH0KICAgICBib29sIGVycm9yT2NjdXJyZWQoKSBjb25zdCB7IHJldHVybiBtX3N0YXR1cyA9PSBM
b2FkRXJyb3IgfHwgbV9zdGF0dXMgPT0gRGVjb2RlRXJyb3I7IH0KQEAgLTMxNCwxMiArMzA5LDEw
IEBAIHByaXZhdGU6CiAgICAgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBmcmVzaG5lc3NMaWZl
dGltZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgY29uc3Q7CiAKICAgICB2b2lkIGFkZEFkZGl0
aW9uYWxSZXF1ZXN0SGVhZGVycyhDYWNoZWRSZXNvdXJjZUxvYWRlciYpOwotICAgIHZvaWQgY29t
cHV0ZU9yaWdpbihDYWNoZWRSZXNvdXJjZUxvYWRlciYpOwogICAgIHZvaWQgZmFpbEJlZm9yZVN0
YXJ0aW5nKCk7CiAKICAgICBIYXNoTWFwPENhY2hlZFJlc291cmNlQ2xpZW50Kiwgc3RkOjp1bmlx
dWVfcHRyPENhbGxiYWNrPj4gbV9jbGllbnRzQXdhaXRpbmdDYWxsYmFjazsKICAgICBTZXNzaW9u
SUQgbV9zZXNzaW9uSUQ7Ci0gICAgU3RyaW5nIG1fYWNjZXB0OwogICAgIFJlc291cmNlTG9hZFBy
aW9yaXR5IG1fbG9hZFByaW9yaXR5OwogICAgIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRp
bWVfcG9pbnQgbV9yZXNwb25zZVRpbWVzdGFtcDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggYWMwMjcyNTNkNzRl
ZGUzOGEwNTU3ZjIzNjRkZTM5MGI4Mjk2NTgzOS4uOGM3NGNmNzA3NDkwNWMzZThjNTAzMzk2NjAx
YWYxZTAzOWM1YjQ4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC01ODEsNyArNTgxLDcgQEAgQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjp1cGRhdGVDYWNo
ZWRSZXNvdXJjZVcKICAgICB9CiAKICAgICBhdXRvIHJlc291cmNlSGFuZGxlID0gY3JlYXRlUmVz
b3VyY2UocmVzb3VyY2UudHlwZSgpLCBXVEZNb3ZlKHJlcXVlc3QpLCBzZXNzaW9uSUQoKSk7Ci0g
ICAgcmVzb3VyY2VIYW5kbGUtPmxvYWRGcm9tKHJlc291cmNlLCAqdGhpcyk7CisgICAgcmVzb3Vy
Y2VIYW5kbGUtPmxvYWRGcm9tKHJlc291cmNlKTsKICAgICByZXR1cm4gcmVzb3VyY2VIYW5kbGU7
CiB9CiAKQEAgLTU5NSw2ICs1OTUsNDEgQEAgc3RhdGljIGlubGluZSB2b2lkIGxvZ01lbW9yeUNh
Y2hlUmVzb3VyY2VSZXF1ZXN0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBkZXMKICAgICAg
ICAgZnJhbWUtPnBhZ2UoKS0+ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9zdGlj
TWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNlUmVxdWVzdEtl
eSgpLCBkZXNjcmlwdGlvbiwgdmFsdWUsIFNob3VsZFNhbXBsZTo6WWVzKTsKIH0KIAorc3RhdGlj
IGlubGluZSBTdHJpbmcgYWNjZXB0SGVhZGVyVmFsdWVGcm9tVHlwZShDYWNoZWRSZXNvdXJjZTo6
VHlwZSB0eXBlKQoreworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgQ2FjaGVkUmVzb3Vy
Y2U6OlR5cGU6Ok1haW5SZXNvdXJjZToKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgidGV4
dC9odG1sLGFwcGxpY2F0aW9uL3hodG1sK3htbCxhcHBsaWNhdGlvbi94bWw7cT0wLjksKi8qO3E9
MC44Iik7CisgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VHlwZTo6SW1hZ2VSZXNvdXJjZToKKyAg
ICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiaW1hZ2UvcG5nLGltYWdlL3N2Zyt4bWwsaW1hZ2Uv
KjtxPTAuOCwqLyo7cT0wLjUiKTsKKyAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUeXBlOjpDU1NT
dHlsZVNoZWV0OgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJ0ZXh0L2NzcywqLyo7cT0w
LjEiKTsKKyAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUeXBlOjpTVkdEb2N1bWVudFJlc291cmNl
OgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJpbWFnZS9zdmcreG1sIik7CisjaWYgRU5B
QkxFKFhTTFQpCisgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VHlwZTo6WFNMU3R5bGVTaGVldDoK
KyAgICAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGFjY2VwdCBtb3JlIGdlbmVyYWwgeG1sIGZv
cm1hdHMgKi8qK3htbCwgaW1hZ2Uvc3ZnK3htbCBmb3IgZXhhbXBsZS4KKyAgICAgICAgcmV0dXJu
IEFTQ0lJTGl0ZXJhbCgidGV4dC94bWwsYXBwbGljYXRpb24veG1sLGFwcGxpY2F0aW9uL3hodG1s
K3htbCx0ZXh0L3hzbCxhcHBsaWNhdGlvbi9yc3MreG1sLGFwcGxpY2F0aW9uL2F0b20reG1sIik7
CisjZW5kaWYKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCIqLyoi
KTsKKyAgICB9Cit9CisKK3ZvaWQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnByZXBhcmVGZXRjaChD
YWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qp
Cit7CisgICAgLy8gSW1wbGVtZW50aW5nIHN0ZXAgMSB0byA3IG9mIGh0dHBzOi8vZmV0Y2guc3Bl
Yy53aGF0d2cub3JnLyNmZXRjaGluZworICAgIC8vIEZJWE1FOiBEZWNpZGUgd2hldGhlciB0byBz
dXBwb3J0IGNsaWVudCBoaW50IGhlYWRlcnMuCisKKyAgICBpZiAoIXJlcXVlc3Qub3JpZ2luKCkg
JiYgZG9jdW1lbnQoKSkKKyAgICAgICAgcmVxdWVzdC5zZXRPcmlnaW4oZG9jdW1lbnQoKS0+c2Vj
dXJpdHlPcmlnaW4oKSk7CisgICAgLy8gVGhlcmUgc2hvdWxkIGJlIGFuIE9yaWdpbiBleGNlcHQg
aW4gY2FzZSBvZiBOYXZpZ2F0aW9uLgorICAgIEFTU0VSVChyZXF1ZXN0Lm9yaWdpbigpIHx8IHR5
cGUgPT0gQ2FjaGVkUmVzb3VyY2U6OlR5cGU6Ok1haW5SZXNvdXJjZSk7CisKKyAgICBpZiAoIXJl
cXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuaGFzSFRUUEhlYWRlcihIVFRQSGVhZGVyTmFtZTo6QWNj
ZXB0KSkKKyAgICAgICAgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCkuc2V0SFRUUEhl
YWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpBY2NlcHQsIGFjY2VwdEhlYWRlclZhbHVlRnJvbVR5
cGUodHlwZSkpOworfQorCiBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2Fj
aGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0
eXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQogewogICAgIGlmIChEb2N1bWVu
dCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKQpAQCAtNjEwLDYgKzY0NSw4IEBAIENhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdFJlc291cmNlKENhY2hlCiAgICAgaWYgKCF1cmwuaXNWYWxpZCgpKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIAorICAgIHByZXBhcmVGZXRjaCh0eXBlLCByZXF1ZXN0KTsKKwogICAgIGlm
ICghY2FuUmVxdWVzdCh0eXBlLCB1cmwsIHJlcXVlc3Qub3B0aW9ucygpLCByZXF1ZXN0LmZvclBy
ZWxvYWQoKSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oCmluZGV4IDVhZjcxZDJhYWEy
YzMzMDM5YWVjMGU2ZDhmYTc4MTIxNzhiNzc0NzkuLmQ0OWE4NzEyN2VlMGVhZjdiZWJhN2JmZWE0
YzMyNWMyYTM4ZGJhNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZUxvYWRlci5oCkBAIC0xNDksNiArMTQ5LDcgQEAgcHJpdmF0ZToKICAgICBl
eHBsaWNpdCBDYWNoZWRSZXNvdXJjZUxvYWRlcihEb2N1bWVudExvYWRlciopOwogCiAgICAgQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IHJlcXVlc3RSZXNvdXJjZShDYWNoZWRS
ZXNvdXJjZTo6VHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYpOworICAgIHZvaWQgcHJlcGFy
ZUZldGNoKENhY2hlZFJlc291cmNlOjpUeXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKICAg
ICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcmV2YWxpZGF0ZVJlc291cmNl
KENhY2hlZFJlc291cmNlUmVxdWVzdCYmLCBDYWNoZWRSZXNvdXJjZSYpOwogICAgIENhY2hlZFJl
c291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBsb2FkUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6
OlR5cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYmKTsKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRs
ZTxDYWNoZWRSZXNvdXJjZT4gcmVxdWVzdFByZWxvYWQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIENh
Y2hlZFJlc291cmNlUmVxdWVzdCYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKaW5kZXggZGM1NGJkZjEwNDU2MTdkM2E4
Y2M3NDkxMjFjNzRmOTc5MTVmYjIxNy4uNDRhZTg2NDQ5MzZhZGFlOTg4ZDBhYWM3ZGY3ZTUwNzkx
NDg2YWViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlUmVxdWVzdC5jcHAKQEAgLTkxLDEzICs5MSwxNiBAQCBjb25zdCBBdG9taWNTdHJp
bmcmIENhY2hlZFJlc291cmNlUmVxdWVzdDo6aW5pdGlhdG9yTmFtZSgpIGNvbnN0CiB2b2lkIENh
Y2hlZFJlc291cmNlUmVxdWVzdDo6c2V0QXNQb3RlbnRpYWxseUNyb3NzT3JpZ2luKGNvbnN0IFN0
cmluZyYgbW9kZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIEFTU0VSVChtX29wdGlvbnMu
bW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5vQ29ycyk7CisgICAgQVNTRVJUKGRvY3VtZW50
LnNlY3VyaXR5T3JpZ2luKCkpOworCisgICAgbV9vcmlnaW4gPSBkb2N1bWVudC5zZWN1cml0eU9y
aWdpbigpOworCiAgICAgaWYgKG1vZGUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybjsKICAgICBt
X29wdGlvbnMubW9kZSA9IEZldGNoT3B0aW9uczo6TW9kZTo6Q29yczsKICAgICBtX29wdGlvbnMu
Y3JlZGVudGlhbHMgPSBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShtb2RlLCAidXNlLWNy
ZWRlbnRpYWxzIikgPyBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpJbmNsdWRlIDogRmV0Y2hP
cHRpb25zOjpDcmVkZW50aWFsczo6U2FtZU9yaWdpbjsKICAgICBtX29wdGlvbnMuYWxsb3dDcmVk
ZW50aWFscyA9IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKG1vZGUsICJ1c2UtY3JlZGVu
dGlhbHMiKSA/IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMgOiBEb05vdEFsbG93U3RvcmVkQ3JlZGVu
dGlhbHM7CiAKLSAgICBBU1NFUlQoZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKSk7CiAgICAgdXBk
YXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2wobV9yZXNvdXJjZVJlcXVlc3QsICpkb2N1bWVudC5z
ZWN1cml0eU9yaWdpbigpLCBtX29wdGlvbnMuYWxsb3dDcmVkZW50aWFscyk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaApp
bmRleCA4MjdlYmJiZTU4NjY3NGViYmE3Njk4YjQ5NzgzYWQzZDhmZGZjMDIwLi5iM2U0NDk0N2E3
NWZlMjMwYzk2NzAyNzQxY2Q3MzYwZTQyOTQzNTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oCkBAIC0zMSw2ICszMSw3IEBA
CiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkUHJpb3JpdHkuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxv
YWRlck9wdGlvbnMuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJT
ZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9BdG9taWNTdHJpbmcuaD4KIApAQCAtNjQsNiArNjUsOSBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRDYWNoaW5nUG9saWN5KENhY2hpbmdQb2xpY3kgcG9saWN5KSB7IG1fb3B0aW9ucy5jYWNo
aW5nUG9saWN5ID0gcG9saWN5OyB9CiAKICAgICB2b2lkIHNldEFzUG90ZW50aWFsbHlDcm9zc09y
aWdpbihjb25zdCBTdHJpbmcmLCBEb2N1bWVudCYpOworICAgIHZvaWQgc2V0T3JpZ2luKFJlZlB0
cjxTZWN1cml0eU9yaWdpbj4mJiBvcmlnaW4pIHsgQVNTRVJUKCFtX29yaWdpbik7IG1fb3JpZ2lu
ID0gV1RGTW92ZShvcmlnaW4pOyB9CisgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiByZWxlYXNl
T3JpZ2luKCkgeyByZXR1cm4gV1RGTW92ZShtX29yaWdpbik7IH0KKyAgICBTZWN1cml0eU9yaWdp
biogb3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV9vcmlnaW4uZ2V0KCk7IH0KIAogcHJpdmF0ZToK
ICAgICBSZXNvdXJjZVJlcXVlc3QgbV9yZXNvdXJjZVJlcXVlc3Q7CkBAIC03NCw2ICs3OCw3IEBA
IHByaXZhdGU6CiAgICAgRGVmZXJPcHRpb24gbV9kZWZlcjsKICAgICBSZWZQdHI8RWxlbWVudD4g
bV9pbml0aWF0b3JFbGVtZW50OwogICAgIEF0b21pY1N0cmluZyBtX2luaXRpYXRvck5hbWU7Cisg
ICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBtX29yaWdpbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRT
VkdEb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9j
dW1lbnQuY3BwCmluZGV4IGUzOTQ5YTMzZWJiYThmNDk5NDVjYzc0YzFhZGJmYTZlYzRjNDY1NGMu
LjA4YjQwMTY5ZDMzYjRjMjQxZWIxZmFhNDMzYjFjYjc4MmE4Yjk5NTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmNwcApAQCAtMzEsNyAr
MzEsNiBAQCBDYWNoZWRTVkdEb2N1bWVudDo6Q2FjaGVkU1ZHRG9jdW1lbnQoQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0JiYgcmVxdWVzdCwgU2Vzc2lvbklECiAgICAgOiBDYWNoZWRSZXNvdXJjZShXVEZN
b3ZlKHJlcXVlc3QpLCBTVkdEb2N1bWVudFJlc291cmNlLCBzZXNzaW9uSUQpCiAgICAgLCBtX2Rl
Y29kZXIoVGV4dFJlc291cmNlRGVjb2Rlcjo6Y3JlYXRlKCJhcHBsaWNhdGlvbi94bWwiKSkKIHsK
LSAgICBzZXRBY2NlcHQoImltYWdlL3N2Zyt4bWwiKTsKIH0KIAogQ2FjaGVkU1ZHRG9jdW1lbnQ6
On5DYWNoZWRTVkdEb2N1bWVudCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkU2NyaXB0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRTY3JpcHQuY3BwCmluZGV4IGYwYmEzZDA4ZmYxM2Y0MTljNDJlYmM4M2Y2OGU5YzAxYjJkMzJj
MjQuLjQwOGVkYTU1Mzk0YWYyODgwNDUyZTE2ZDI0MTlmZGQyZDUwOTg4ZjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwCkBAIC00NCwxMCArNDQsNiBA
QCBDYWNoZWRTY3JpcHQ6OkNhY2hlZFNjcmlwdChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1
ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogQ2FjaGVkUmVzb3VyY2UoV1RGTW92ZShy
ZXF1ZXN0KSwgU2NyaXB0LCBzZXNzaW9uSUQpCiAgICAgLCBtX2RlY29kZXIoVGV4dFJlc291cmNl
RGVjb2Rlcjo6Y3JlYXRlKEFTQ0lJTGl0ZXJhbCgiYXBwbGljYXRpb24vamF2YXNjcmlwdCIpLCBy
ZXF1ZXN0LmNoYXJzZXQoKSkpCiB7Ci0gICAgLy8gSXQncyBqYXZhc2NyaXB0IHdlIHdhbnQuCi0g
ICAgLy8gQnV0IHNvbWUgd2Vic2l0ZXMgdGhpbmsgdGhlaXIgc2NyaXB0cyBhcmUgPHNvbWUgd3Jv
bmcgbWltZXR5cGUgaGVyZT4KLSAgICAvLyBhbmQgcmVmdXNlIHRvIHNlcnZlIHRoZW0gaWYgd2Ug
b25seSBhY2NlcHQgYXBwbGljYXRpb24veC1qYXZhc2NyaXB0LgotICAgIHNldEFjY2VwdCgiKi8q
Iik7CiB9CiAKIENhY2hlZFNjcmlwdDo6fkNhY2hlZFNjcmlwdCgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5jcHAKaW5kZXggNzE0NTI4
Y2M5MjMxMDE4Y2U3MjVmMTkwYWYwZWNlZTNkMDU2NWMwMC4uMmMzMjBmZWYxODQ5MDNjMTc3Njhi
NmIwMGJkM2UzYjBkYzVlMmY4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcApAQCAtNDAsOSArNDAsNiBAQCBDYWNoZWRYU0xT
dHlsZVNoZWV0OjpDYWNoZWRYU0xTdHlsZVNoZWV0KENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJl
cXVlc3QsIFNlc3NpbwogICAgIDogQ2FjaGVkUmVzb3VyY2UoV1RGTW92ZShyZXF1ZXN0KSwgWFNM
U3R5bGVTaGVldCwgc2Vzc2lvbklEKQogICAgICwgbV9kZWNvZGVyKFRleHRSZXNvdXJjZURlY29k
ZXI6OmNyZWF0ZSgidGV4dC94c2wiKSkKIHsKLSAgICAvLyBJdCdzIFhNTCB3ZSB3YW50LgotICAg
IC8vIEZJWE1FOiBUaGlzIHNob3VsZCBhY2NlcHQgbW9yZSBnZW5lcmFsIHhtbCBmb3JtYXRzICov
Kit4bWwsIGltYWdlL3N2Zyt4bWwgZm9yIGV4YW1wbGUuCi0gICAgc2V0QWNjZXB0KCJ0ZXh0L3ht
bCwgYXBwbGljYXRpb24veG1sLCBhcHBsaWNhdGlvbi94aHRtbCt4bWwsIHRleHQveHNsLCBhcHBs
aWNhdGlvbi9yc3MreG1sLCBhcHBsaWNhdGlvbi9hdG9tK3htbCIpOwogfQogCiBDYWNoZWRYU0xT
dHlsZVNoZWV0Ojp+Q2FjaGVkWFNMU3R5bGVTaGVldCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcAppbmRleCA5NTdk
MjhjNjA5M2ZjYWUwMGU3MTlhMzczNTZhYzBhY2M0M2Q5ODI5Li5hNmI1MzU2ZGVhNDI0MmQ5M2U5
NWIxZDNjNGQwZTllMDc5OGJjNmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAKQEAgLTMzMyw2ICszMzMsMTEg
QEAgdm9pZCBSZXNvdXJjZVJlcXVlc3RCYXNlOjpjbGVhckhUVFBPcmlnaW4oKQogICAgICAgICBt
X3BsYXRmb3JtUmVxdWVzdFVwZGF0ZWQgPSBmYWxzZTsKIH0KIAorYm9vbCBSZXNvdXJjZVJlcXVl
c3RCYXNlOjpoYXNIVFRQSGVhZGVyKEhUVFBIZWFkZXJOYW1lIG5hbWUpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1faHR0cEhlYWRlckZpZWxkcy5jb250YWlucyhuYW1lKTsKK30KKwogU3RyaW5nIFJl
c291cmNlUmVxdWVzdEJhc2U6Omh0dHBVc2VyQWdlbnQoKSBjb25zdAogewogICAgIHJldHVybiBo
dHRwSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlVzZXJBZ2VudCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oCmluZGV4
IDcxZjk1NTA3N2FmNjc1NjJmMDYxN2VlNzI2YzBhYTQzMzBlODVhZjEuLjAxMGFjYzUzZmMzY2Vj
YWU3NDkzYTE3NjY4NjExZTBkY2FjOWJmZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oCkBAIC05Nyw2ICs5Nyw4IEBA
IHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEhUVFBDb250ZW50VHlwZShjb25z
dCBTdHJpbmcmKTsKICAgICB2b2lkIGNsZWFySFRUUENvbnRlbnRUeXBlKCk7CiAKKyAgICBib29s
IGhhc0hUVFBIZWFkZXIoSFRUUEhlYWRlck5hbWUpIGNvbnN0OworCiAgICAgV0VCQ09SRV9FWFBP
UlQgU3RyaW5nIGh0dHBSZWZlcnJlcigpIGNvbnN0OwogICAgIGJvb2wgaGFzSFRUUFJlZmVycmVy
KCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRIVFRQUmVmZXJyZXIoY29uc3Qg
U3RyaW5nJik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggN2E5NmQ0N2Y1ZmEzNGMyMzcyYzIxNjkyZmQzN2RhYTU5NjdjNTQz
ZS4uYmM3YzRkNWM5Y2ViODA3MTg0MjQ3MDVhMjJmOTcyY2RmNGM5OWMxZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE5IEBACisyMDE2LTA5LTE5ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
KworICAgICAgICBbRmV0Y2hdIEltcGxlbWVudCBpbml0aWFsIGZldGNoIHN0ZXBzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjIxNTEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWluZyBodHRwL3Rl
c3RzL2xvY2FsL3NjcmlwdC1jcm9zc29yaWdpbi1sb2Fkcy1mYWlsLW9yaWdpbi5odG1sIGludG8g
aHR0cC90ZXN0cy9sb2NhbC9zY3JpcHQtY3Jvc3NvcmlnaW4tbG9hZHMtZmlsZS1zY2hlbWUuaHRt
bC4KKyAgICAgICAgVXBkYXRpbmcgdGhpcyB0ZXN0IHRvIGV4cGVjdCBsb2FkIG9mIHRoZSBzY3Jp
cHQgYXMgdGhlIG9yaWdpbiBpcyB1bml2ZXJzYWwgYWNjZXNzIGFuZCBpcyB0aHVzIG92ZXJyaWRp
bmcgQ09SUyBjaGVja3MuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2xvY2FsL3NjcmlwdC1jcm9z
c29yaWdpbi1sb2Fkcy1mYWlsLW9yaWdpbi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9sb2NhbC9zY3JpcHQtY3Jvc3NvcmlnaW4tbG9hZHMtZmlsZS1zY2hlbWUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2xvY2FsL3NjcmlwdC1j
cm9zc29yaWdpbi1sb2Fkcy1maWxlLXNjaGVtZS5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9sb2NhbC9zY3JpcHQtY3Jvc3NvcmlnaW4tbG9hZHMtZmFpbC1vcmlnaW4u
aHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL2ltYWdlLWNoZWNrcy1m
b3ItYWNjZXB0LnBocDogVXBkYXRlZCB0byBleHBlY3QgbmV3IGFjY2VwdCB2YWx1ZSBmb3IgaW1h
Z2VzLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvc2NyaXB0LXdpdGgtZGF0YXVybC5o
dG1sOiBVcGRhdGVkIHRvIGV4cGVjdCBsb2FkaW5nIG9mIGRhdGEgVVJMcyBmb3Igc2NyaXB0cyBp
biBDT1JTIG1vZGUuCisKIDIwMTYtMDktMTggIE1hdHQgQmFrZXIgIDxtYXR0YmFrZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFkZCB0ZXN0IGNvdmVyYWdlIGZvciBhbGwg
YXJyYXkgdXRpbGl0eSBmdW5jdGlvbnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbG9jYWwvc2NyaXB0LWNyb3Nzb3JpZ2luLWxvYWRzLWZhaWwtb3JpZ2luLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvc2NyaXB0LWNyb3Nzb3JpZ2luLWxvYWRz
LWZhaWwtb3JpZ2luLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZmIwYjgzMGFhMDBhZDVkODE1YzdlYjIyNzg2ZTUyMTRlMzgyZjU1Yy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xv
Y2FsL3NjcmlwdC1jcm9zc29yaWdpbi1sb2Fkcy1mYWlsLW9yaWdpbi1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogT3JpZ2luICBpcyBu
b3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCi1DT05TT0xFIE1FU1NB
R0U6IENyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291
cmNlIFNoYXJpbmcgcG9saWN5LgotVGhpcyB0ZXN0IGZhaWxzIGlmIHRoZSBzY3JpcHQgbG9hZHMg
Y29ycmVjdGx5LgotCi1QQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xv
Y2FsL3NjcmlwdC1jcm9zc29yaWdpbi1sb2Fkcy1mYWlsLW9yaWdpbi5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9sb2NhbC9zY3JpcHQtY3Jvc3NvcmlnaW4tbG9hZHMtZmFpbC1vcmlnaW4u
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmE2Y2NmYTg5OWMwOWQ3OTMxNTc3
YmNiZjE1OGEzYTY3ZGYxNmU0NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL3NjcmlwdC1jcm9zc29yaWdp
bi1sb2Fkcy1mYWlsLW9yaWdpbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAot
PGJvZHk+Ci08cD5UaGlzIHRlc3QgZmFpbHMgaWYgdGhlIHNjcmlwdCBsb2FkcyBjb3JyZWN0bHku
PC9wPgotPHByZT48L3ByZT4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKLX0KLQotZnVuY3Rpb24gZG9uZShtc2cpIHsKLSAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
KCJwcmUiKS5pbm5lckhUTUwgPSBtc2c7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLX0KLQotdmFyIHNjcmlwdCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOwotc2NyaXB0LmNyb3NzT3JpZ2luID0gInVzZS1jcmVk
ZW50aWFscyI7Ci0vLyBXZSBhcmUgc2VydmluZyB0aGUgdGVzdCBmcm9tIHRoZSBmaWxlc3lzdGVt
LCBzbyBpdCBzaG91bGQgZmFpbCBhcyBhdXRob3JpemVkIG9yaWdpbiBpcyAxMjcuMC4wLjE6ODAw
MC4KLXNjcmlwdC5zcmMgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291cmNl
cy9jb3JzLXNjcmlwdC5waHA/Y3JlZGVudGlhbHM9dHJ1ZSI7Ci1zY3JpcHQub25sb2FkID0gZnVu
Y3Rpb24oKSB7IGRvbmUoIkZBSUwiKTsgfQotc2NyaXB0Lm9uZXJyb3IgPSBmdW5jdGlvbigpIHsg
ZG9uZSgiUEFTUyIpO30KLWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKLTwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9zY3JpcHQtY3Jv
c3NvcmlnaW4tbG9hZHMtZmlsZS1zY2hlbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9sb2NhbC9zY3JpcHQtY3Jvc3NvcmlnaW4tbG9hZHMtZmlsZS1zY2hlbWUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmYwNWJiZjMyOTcyY2U1YTgzN2QyNTdmYWE0MjFkZGRlNGU3Y2E0
YTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL3Njcmlw
dC1jcm9zc29yaWdpbi1sb2Fkcy1maWxlLXNjaGVtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0
IEBACitBTEVSVDogc2NyaXB0IHJhbi4KK1RoaXMgdGVzdCBwYXNzZXMgaWYgdGhlIHNjcmlwdCBs
b2FkcyBjb3JyZWN0bHkuCisKK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbG9jYWwvc2NyaXB0LWNyb3Nzb3JpZ2luLWxvYWRzLWZpbGUtc2NoZW1lLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL3NjcmlwdC1jcm9zc29yaWdpbi1sb2Fkcy1maWxlLXNj
aGVtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlNDBkZDA0NTViYTI1ODFmMzdhYTNlZWZjODYzYzA4NThl
YWU5MDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL3Nj
cmlwdC1jcm9zc29yaWdpbi1sb2Fkcy1maWxlLXNjaGVtZS5odG1sCkBAIC0wLDAgKzEsMjQgQEAK
Kzxib2R5PgorPHA+VGhpcyB0ZXN0IHBhc3NlcyBpZiB0aGUgc2NyaXB0IGxvYWRzIGNvcnJlY3Rs
eS48L3A+Cis8cHJlPjwvcHJlPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgewor
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOworfQorCitmdW5jdGlvbiBkb25lKG1zZykgeworICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoInByZSIpLmlubmVySFRNTCA9IG1zZzsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCit2YXIgc2NyaXB0ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CitzY3JpcHQuY3Jvc3NPcmlnaW4gPSAidXNlLWNy
ZWRlbnRpYWxzIjsKKy8vIFdlIGFyZSBzZXJ2aW5nIHRoZSB0ZXN0IGZyb20gdGhlIGZpbGVzeXN0
ZW0gYW5kIGZpbGUgVVJMcyBhcmUgZ3JhbnRlZCB1bml2ZXJzYWwgYWNjZXNzLgorLy8gVGhpcyBi
eXBhc3NlcyBDT1JTIGNoZWNrcyBhbmQgd2lsbCBhbGxvdyBhY2Nlc3MgdG8gMTI3LjAuMC4xOjgw
MDAuCitzY3JpcHQuc3JjID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJj
ZXMvY29ycy1zY3JpcHQucGhwP2NyZWRlbnRpYWxzPXRydWUiOworc2NyaXB0Lm9ubG9hZCA9IGZ1
bmN0aW9uKCkgeyBkb25lKCJQQVNTIik7IH0KK3NjcmlwdC5vbmVycm9yID0gZnVuY3Rpb24oKSB7
IGRvbmUoIkZBSUwiKTt9Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7Cis8L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMv
aW1hZ2UtY2hlY2tzLWZvci1hY2NlcHQucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNj
L3Jlc291cmNlcy9pbWFnZS1jaGVja3MtZm9yLWFjY2VwdC5waHAKaW5kZXggNDU5YzQxNmE4Y2I3
ODhlZWU5OWI2YWVlYjBkY2I1NWIwNjFiMTkyMi4uNWU1Y2RjNmQzMGFlYmY2YTIwYTdhMGU0NmMx
Y2FiNzgwYzRhNDQ1OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jl
c291cmNlcy9pbWFnZS1jaGVja3MtZm9yLWFjY2VwdC5waHAKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9taXNjL3Jlc291cmNlcy9pbWFnZS1jaGVja3MtZm9yLWFjY2VwdC5waHAKQEAgLTEs
NSArMSw1IEBACiA8P3BocAotICAgIGlmKCRfU0VSVkVSWyJIVFRQX0FDQ0VQVCJdID09ICIqLyoi
IHx8ICRfU0VSVkVSWyJIVFRQX0FDQ0VQVCJdID09ICJpbWFnZS8qIiB8fCAkX1NFUlZFUlsiSFRU
UF9BQ0NFUFQiXSA9PSAiaW1hZ2UvanBnIikKKyAgICBpZigkX1NFUlZFUlsiSFRUUF9BQ0NFUFQi
XSA9PSAiaW1hZ2UvcG5nLGltYWdlL3N2Zyt4bWwsaW1hZ2UvKjtxPTAuOCwqLyo7cT0wLjUiKQog
ICAgIHsKICAgICAgICAgaGVhZGVyKCJDb250ZW50LVR5cGU6IGltYWdlL2pwZyIpOwogICAgICAg
ICBoZWFkZXIoIkNhY2hlLUNvbnRyb2w6IG5vLXN0b3JlIik7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NjcmlwdC13aXRoLWRhdGF1cmwtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zY3JpcHQtd2l0aC1kYXRhdXJsLWV4
cGVjdGVkLnR4dAppbmRleCBiZjc0MjQ4ZTU3NzY3ZDA2NDJlZTAwOTc1ODZjMDk3M2JhOTEwNDRi
Li4zOGE3MmZlNzc4M2YyNzUyYTA4NGViY2MyNzlmOTJjMzk5OTBkMjllIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NjcmlwdC13aXRoLWRhdGF1cmwtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2NyaXB0LXdpdGgt
ZGF0YXVybC1leHBlY3RlZC50eHQKQEAgLTEsMTAgKzEsMTAgQEAKIENPTlNPTEUgTUVTU0FHRTog
bGluZSAxOiBQQVNTOiBteSBkYXRhIFVSTCBpbiBuby1jb3JzIG1vZGUgaXMgdGhyb3dpbmcgcmlj
aCBtZXNzYWdlcwotQ09OU09MRSBNRVNTQUdFOiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4MDAw
IGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KLUNPTlNPTEUg
TUVTU0FHRTogQ3Jvc3Mtb3JpZ2luIHNjcmlwdCBsb2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4g
UmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogUEFTUzog
bXkgZGF0YSBVUkwgaW4gY29ycyBtb2RlIGlzIGFsc28gdGhyb3dpbmcgcmljaCBtZXNzYWdlcyEK
IFRyeWluZyB0byBsb2FkIGRhdGEgVVJMcyBzY3JpcHRzLiBJZiBiZWluZyBsb2FkZWQsIHRoZSBz
Y3JpcHRzIHNob3VsZCB0aHJvdyBlcnJvciBtZXNzYWdlcy4KIAogUmVjZWl2ZWQgZXJyb3IgJ1Nj
cmlwdCBlcnJvci4nIGZyb20gJycsIGxvY2F0aW9uIDA6MC4KIFBBU1M6IGxvYWRlZCBzY3JpcHQg
aW4gbm8tY29ycyBtb2RlCi1QQVNTOiBkaWQgbm90IGxvYWQgc2NyaXB0IGluIGNvcnMgbW9kZQor
UmVjZWl2ZWQgZXJyb3IgJ1NjcmlwdCBlcnJvci4nIGZyb20gJycsIGxvY2F0aW9uIDA6MC4KK1BB
U1M6IGxvYWRlZCBzY3JpcHQgaW4gY29ycyBtb2RlCiBET05FCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2NyaXB0LXdpdGgtZGF0YXVybC5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zY3JpcHQtd2l0aC1kYXRhdXJsLmh0bWwKaW5k
ZXggN2E1MTRkZTRjYzc0MGVhNzk1ODlmNjcyMjYyNWVjYjI2NzNkN2FhNy4uNThiYWQwMjhmZDUz
ODIwNzU0NzM2ZjQwZGQwYjEwNWY3YTA0OWM3MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9zY3JpcHQtd2l0aC1kYXRhdXJsLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zY3JpcHQtd2l0aC1kYXRhdXJsLmh0bWwKQEAgLTM1LDkg
KzM1LDkgQEAgZnVuY3Rpb24gdGVzdDIoKQogewogICAgIHZhciBzY3JpcHQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKICAgICBzY3JpcHQuY3Jvc3NPcmlnaW4gPSAiIjsKLSAg
ICBzY3JpcHQuc3JjID0gImRhdGE6dGV4dC9zY3JpcHQsIHRocm93ICdGQUlMOiBteSBlcnJvciBp
cyB0b28gcmljaCEnIjsKLSAgICBzY3JpcHQub25sb2FkID0gKCkgPT4geyBsb2coIkZBSUw6IGxv
YWRlZCBzY3JpcHQgaW4gY29ycyBtb2RlIik7IGRvbmUoKTsgfQotICAgIHNjcmlwdC5vbmVycm9y
ID0gKCkgPT4geyBsb2coIlBBU1M6IGRpZCBub3QgbG9hZCBzY3JpcHQgaW4gY29ycyBtb2RlIik7
IGRvbmUoKTsgfQorICAgIHNjcmlwdC5zcmMgPSAiZGF0YTp0ZXh0L3NjcmlwdCwgdGhyb3cgJ1BB
U1M6IG15IGRhdGEgVVJMIGluIGNvcnMgbW9kZSBpcyBhbHNvIHRocm93aW5nIHJpY2ggbWVzc2Fn
ZXMhJyI7CisgICAgc2NyaXB0Lm9ubG9hZCA9ICgpID0+IHsgbG9nKCJQQVNTOiBsb2FkZWQgc2Ny
aXB0IGluIGNvcnMgbW9kZSIpOyBkb25lKCk7IH0KKyAgICBzY3JpcHQub25lcnJvciA9ICgpID0+
IHsgbG9nKCJGQUlMOiBkaWQgbm90IGxvYWQgc2NyaXB0IGluIGNvcnMgbW9kZSIpOyBkb25lKCk7
IH0KICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>