<?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>42575</bug_id>
          
          <creation_ts>2010-07-19 10:09:05 -0700</creation_ts>
          <short_desc>REGRESSION(r63671): broke windows (Requested by weinig on #webkit).</short_desc>
          <delta_ts>2010-07-19 10:18:55 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>42532</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>aroben</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>253275</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-19 10:09:05 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/63671 broke the build:
broke windows (Requested by weinig on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253276</commentid>
    <comment_count>1</comment_count>
      <attachid>61965</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-19 10:09:14 -0700</bug_when>
    <thetext>Created attachment 61965
ROLLOUT of r63671

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID --ignore-builders

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253279</commentid>
    <comment_count>2</comment_count>
      <attachid>61965</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-07-19 10:18:51 -0700</bug_when>
    <thetext>Comment on attachment 61965
ROLLOUT of r63671

Clearing flags on attachment: 61965

Committed r63674: &lt;http://trac.webkit.org/changeset/63674&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253280</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-07-19 10:18:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61965</attachid>
            <date>2010-07-19 10:09:14 -0700</date>
            <delta_ts>2010-07-19 10:18:51 -0700</delta_ts>
            <desc>ROLLOUT of r63671</desc>
            <filename>bug-42575-20100719170912.patch</filename>
            <type>text/plain</type>
            <size>58531</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAyYmE1NjAyYjcyNzFiMjFhM2MxZWJlOWViZTg3N2YxOThiYTlkYjIwLi43ZmE0OTU5
OWRiN2YxMjU4YTZkMmFhMTZlZDU5MDkzYTQ3MjFmMTRiIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAK
KzIwMTAtMDctMTkgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgor
CisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI2MzY3MS4KKyAgICAgICAgaHR0cDov
L3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvNjM2NzEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTc1CisKKyAgICAgICAgYnJva2Ugd2luZG93cyAo
UmVxdWVzdGVkIGJ5IHdlaW5pZyBvbiAjd2Via2l0KS4KKworICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZzoKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZzoKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0Rlcml2ZWRTb3VyY2VzLm1ha2U6IFJlbW92ZWQuCisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9Gb3J3YXJkaW5nSGVhZGVycy93dGYvR2V0UHRyLmg6IFJlbW92ZWQu
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9Db2Rl
R2VuZXJhdG9yVGVzdFJ1bm5lci5wbTogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0pTV3JhcHBhYmxlLmg6IFJlbW92ZWQuCisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9KU1dyYXBwZXIu
Y3BwOiBSZW1vdmVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvSlNXcmFwcGVyLmg6IFJlbW92ZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29udHJvbGxlci5pZGw6IFJlbW92
ZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2UuY3BwOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmR1bXApOgor
ICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnNldFN0YXR1c2JhclRleHQpOgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV1RSOjpMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0V2FpdFRvRHVt
cCk6CisgICAgICAgIChXVFI6OmRpc3BsYXlDYWxsYmFjayk6CisgICAgICAgIChXVFI6OmR1bXBB
c1RleHRDYWxsYmFjayk6CisgICAgICAgIChXVFI6OmR1bXBTdGF0dXNDYWxsYmFja3NDYWxsYmFj
ayk6CisgICAgICAgIChXVFI6OndhaXRVbnRpbERvbmVDYWxsYmFjayk6CisgICAgICAgIChXVFI6
Om5vdGlmeURvbmVDYWxsYmFjayk6CisgICAgICAgIChXVFI6Om51bWJlck9mQWN0aXZlQW5pbWF0
aW9uc0NhbGxiYWNrKToKKyAgICAgICAgKFdUUjo6cGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1l
bnRXaXRoSWRDYWxsYmFjayk6CisgICAgICAgIChXVFI6OnJlcGFpbnRTd2VlcEhvcml6b250YWxs
eUNhbGxiYWNrKToKKyAgICAgICAgKFdUUjo6dGVzdFJlcGFpbnRDYWxsYmFjayk6CisgICAgICAg
IChXVFI6OmxheW91dFRlc3RDb250cm9sbGVyT2JqZWN0RmluYWxpemUpOgorICAgICAgICAoV1RS
OjpMYXlvdXRUZXN0Q29udHJvbGxlcjo6bWFrZVdpbmRvd09iamVjdCk6CisgICAgICAgIChXVFI6
OkxheW91dFRlc3RDb250cm9sbGVyOjpnZXRKU0NsYXNzKToKKyAgICAgICAgKFdUUjo6TGF5b3V0
VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAoV1RS
OjpMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZHVtcEFzVGV4dCk6CisgICAgICAgIChXVFI6OkxheW91
dFRlc3RDb250cm9sbGVyOjpzZXREdW1wQXNUZXh0KToKKyAgICAgICAgKFdUUjo6TGF5b3V0VGVz
dENvbnRyb2xsZXI6OmR1bXBTdGF0dXNDYWxsYmFja3MpOgorICAgICAgICAoV1RSOjpMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6c2V0RHVtcFN0YXR1c0NhbGxiYWNrcyk6CisgICAgICAgIChXVFI6Okxh
eW91dFRlc3RDb250cm9sbGVyOjpzZXRUZXN0UmVwYWludCk6CisgICAgICAgIChXVFI6OkxheW91
dFRlc3RDb250cm9sbGVyOjpzZXRUZXN0UmVwYWludFN3ZWVwSG9yaXpvbnRhbGx5KToKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKwogMjAxMC0wNy0xOSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4uCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9X
ZWJLaXRUZXN0UnVubmVyL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcgYi9XZWJLaXRUb29s
cy9XZWJLaXRUZXN0UnVubmVyL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKaW5kZXggN2Nl
YWIwNzUwYmNlN2NkNjU3YTU0ZWFlMTExMTM4ZDk3YTBjMjBlYS4uYWYzZjRlNmE5YjIxYjlmYjE2
MmIzMzJhYzY4MzE3NTU0ZDc0MTVhYSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCisrKyBiL1dlYktpdFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwpAQCAtNjYsNiArNjYs
MyBAQCBTREtST09UXzEwNjBfMTA1MCA9IG1hY29zeDEwLjU7CiBTREtST09UXzEwNzBfMTA0MCA9
IG1hY29zeDEwLjQ7CiBTREtST09UXzEwNzBfMTA1MCA9IG1hY29zeDEwLjU7CiBTREtST09UXzEw
NzBfMTA2MCA9IG1hY29zeDEwLjY7Ci0KLVdFQktJVF9VTUJSRUxMQV9GUkFNRVdPUktTX0RJUiA9
ICQoTkVYVF9ST09UKSQoU1lTVEVNX0xJQlJBUllfRElSKS9GcmFtZXdvcmtzL1dlYktpdC5mcmFt
ZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzOwotV0VCQ09SRV9QUklWQVRFX0hFQURFUlNfRElS
ID0gJChXRUJLSVRfVU1CUkVMTEFfRlJBTUVXT1JLU19ESVIpL1dlYkNvcmUuZnJhbWV3b3JrL1By
aXZhdGVIZWFkZXJzOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9D
b25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcgYi9XZWJLaXRUb29scy9XZWJLaXRU
ZXN0UnVubmVyL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZwppbmRleCA0MTYw
MGIxZTNjNzdjZDg0YzljY2I4ZWJiNjBjYjEyYTI2YzU5MWU2Li44YjE1NmU4ZDc5ZTlkZTgwYTYx
NzExZjg1ZTQ3NzNhODNiYzcyOWI1IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9XZWJLaXRUZXN0
UnVubmVyL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZworKysgYi9XZWJLaXRU
b29scy9XZWJLaXRUZXN0UnVubmVyL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZp
ZwpAQCAtMzgsNSArMzgsMyBAQCBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfMTA0MCA9IDEwLjQ7
CiBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfMTA1MCA9IDEwLjU7CiBNQUNPU1hfREVQTE9ZTUVO
VF9UQVJHRVRfMTA2MCA9IDEwLjY7CiBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfMTA3MCA9IDEw
Ljc7Ci0KLVdFQktJVF9VTUJSRUxMQV9GUkFNRVdPUktTX0RJUiA9ICQoQlVJTFRfUFJPRFVDVFNf
RElSKTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvRGVyaXZlZFNv
dXJjZXMubWFrZSBiL1dlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvRGVyaXZlZFNvdXJjZXMu
bWFrZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjEzNDM4MDZmMDYyMDRjMDZlMTM2
ZDA2MGZlZmU4MWYxYWNkNzdmYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9XZWJLaXRUb29scy9XZWJLaXRUZXN0UnVubmVyL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSMgYXJlIG1ldDoKLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0jICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSMgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0jIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0jIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0jIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0jIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi0jIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSMgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotCi1WUEFUSCA9IFwKLSAgICAkKFdlYktpdFRlc3RSdW5uZXIpL0luamVj
dGVkQnVuZGxlL0JpbmRpbmdzIFwKLSMKLQotSU5URVJGQUNFUyA9IFwKLSAgICBMYXlvdXRUZXN0
Q29udHJvbGxlciBcCi0jCi0KLVNDUklQVFMgPSBcCi0gICAgJChXZWJDb3JlU2NyaXB0cykvQ29k
ZUdlbmVyYXRvci5wbSBcCi0gICAgJChXZWJLaXRUZXN0UnVubmVyKS9JbmplY3RlZEJ1bmRsZS9C
aW5kaW5ncy9Db2RlR2VuZXJhdG9yVGVzdFJ1bm5lci5wbSBcCi0gICAgJChXZWJDb3JlU2NyaXB0
cykvSURMUGFyc2VyLnBtIFwKLSAgICAkKFdlYkNvcmVTY3JpcHRzKS9JRExTdHJ1Y3R1cmUucG0g
XAotICAgICQoV2ViQ29yZVNjcmlwdHMpL2dlbmVyYXRlLWJpbmRpbmdzLnBsIFwKLSMKLQotLlBI
T05ZIDogYWxsCi0KLUpTJS5oIEpTJS5jcHAgOiAlLmlkbCAkKFNDUklQVFMpCi0JQGVjaG8gR2Vu
ZXJhdGluZyBiaW5kaW5ncyBmb3IgJCouLi4KLQlAcGVybCAtSSAkKFdlYkNvcmVTY3JpcHRzKSAt
SSAkKFdlYktpdFRlc3RSdW5uZXIpL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzICQoV2ViQ29yZVNj
cmlwdHMpL2dlbmVyYXRlLWJpbmRpbmdzLnBsIC0tZGVmaW5lcyAiIiAtLWluY2x1ZGUgSW5qZWN0
ZWRCdW5kbGUvQmluZGluZ3MgLS1vdXRwdXREaXIgLiAtLWdlbmVyYXRvciBUZXN0UnVubmVyICQ8
Ci0KLWFsbCA6IFwKLSAgICAkKElOVEVSRkFDRVM6JT1KUyUuaCkgXAotICAgICQoSU5URVJGQUNF
UzolPUpTJS5jcHApIFwKLSMKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL0dldFB0ci5oIGIvV2ViS2l0VG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9Gb3J3YXJkaW5nSGVhZGVycy93dGYvR2V0UHRyLmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGFlZGQ3ODQ3MzhkMDYyYzQxYzdiYWZkYTNjMDRlM2Q0ZDM4YTdjOWUuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvV2ViS2l0VG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9Gb3J3YXJkaW5nSGVhZGVycy93dGYvR2V0UHRyLmgKKysrIC9kZXYv
bnVsbApAQCAtMSArMCwwIEBACi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvR2V0UHRyLmg+CmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Jp
bmRpbmdzL0NvZGVHZW5lcmF0b3JUZXN0UnVubmVyLnBtIGIvV2ViS2l0VG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9Db2RlR2VuZXJhdG9yVGVzdFJ1bm5lci5w
bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDcyZDRmYzlhOWU4N2Y4OTJmNTlhMDc2
ODM1NzA5YmM1NmI5ZjVlNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9XZWJLaXRUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRp
bmdzL0NvZGVHZW5lcmF0b3JUZXN0UnVubmVyLnBtCisrKyAvZGV2L251bGwKQEAgLTEsNTI1ICsw
LDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0jIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSMgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
IyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotIyBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotIyBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSMgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLXVzZSBzdHJpY3Q7
Ci11c2Ugd2FybmluZ3M7Ci11c2UgRmlsZTo6U3BlYzsKLQotcGFja2FnZSBDb2RlR2VuZXJhdG9y
VGVzdFJ1bm5lcjsKLQotc3ViIG5ldwotewotICAgIG15ICgkY2xhc3MsICRjb2RlR2VuZXJhdG9y
LCAkb3V0cHV0RGlyKSA9IEBfOwotCi0gICAgbXkgJHJlZmVyZW5jZSA9IHsKLSAgICAgICAgY29k
ZUdlbmVyYXRvciA9PiAkY29kZUdlbmVyYXRvciwKLSAgICAgICAgb3V0cHV0RGlyID0+ICRvdXRw
dXREaXIsCi0gICAgfTsKLQotICAgIGJsZXNzKCRyZWZlcmVuY2UsICRjbGFzcyk7Ci0gICAgcmV0
dXJuICRyZWZlcmVuY2U7Ci19Ci0KLXN1YiBHZW5lcmF0ZU1vZHVsZQotewotfQotCi1zdWIgR2Vu
ZXJhdGVJbnRlcmZhY2UKLXsKLSAgICBteSAoJHNlbGYsICRpbnRlcmZhY2UsICRkZWZpbmVzKSA9
IEBfOwotCi0gICAgZm9yZWFjaCBteSAkZmlsZSAoJHNlbGYtPl9nZW5lcmF0ZUhlYWRlckZpbGUo
JGludGVyZmFjZSksICRzZWxmLT5fZ2VuZXJhdGVJbXBsZW1lbnRhdGlvbkZpbGUoJGludGVyZmFj
ZSkpIHsKLSAgICAgICAgb3BlbihGSUxFLCAiPiIsIEZpbGU6OlNwZWMtPmNhdGZpbGUoJCRzZWxm
e291dHB1dERpcn0sICQkZmlsZXtuYW1lfSkpIG9yIGRpZSAiRmFpbGVkIHRvIG9wZW4gJCRmaWxl
e25hbWV9IGZvciB3cml0aW5nOiAkISI7Ci0gICAgICAgIHByaW50IEZJTEUgQHskJGZpbGV7Y29u
dGVudHN9fTsKLSAgICAgICAgY2xvc2UoRklMRSkgb3IgZGllICJGYWlsZWQgdG8gY2xvc2UgJCRm
aWxle25hbWV9IGFmdGVyIHdyaXRpbmc6ICQhIjsKLSAgICB9Ci19Ci0KLXN1YiBmaW5pc2gKLXsK
LX0KLQotc3ViIF9jbGFzc05hbWUKLXsKLSAgICBteSAoJGlkbFR5cGUpID0gQF87Ci0KLSAgICBy
ZXR1cm4gIkpTIiAuIF9pbXBsZW1lbnRhdGlvbkNsYXNzTmFtZSgkaWRsVHlwZSk7Ci19Ci0KLXN1
YiBfY2xhc3NSZWZHZXR0ZXIKLXsKLSAgICBteSAoJHNlbGYsICRpZGxUeXBlKSA9IEBfOwotICAg
IHJldHVybiAkJHNlbGZ7Y29kZUdlbmVyYXRvcn0tPldLX2xjZmlyc3QoX2ltcGxlbWVudGF0aW9u
Q2xhc3NOYW1lKCRpZGxUeXBlKSkgLiAiQ2xhc3MiOwotfQotCi1zdWIgX2ZpbGVIZWFkZXJTdHJp
bmcKLXsKLSAgICBteSAoJGZpbGVuYW1lKSA9IEBfOwotCi0gICAgIyBGSVhNRTogV2Ugc2hvdWxk
IHB1bGwgaGVhZGVyIG91dCBvZiB0aGUgSURMIGZpbGUgdG8gZ2V0IHRoZSBjb3B5cmlnaHQKLSAg
ICAjIHllYXIocykgcmlnaHQuCi0gICAgcmV0dXJuIDw8RU9GOwotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi1FT0YKLX0K
LQotc3ViIF9nZW5lcmF0ZUhlYWRlckZpbGUKLXsKLSAgICBteSAoJHNlbGYsICRpbnRlcmZhY2Up
ID0gQF87Ci0KLSAgICBteSBAY29udGVudHMgPSAoKTsKLQotICAgIG15ICRpZGxUeXBlID0gJGlu
dGVyZmFjZS0+bmFtZTsKLSAgICBteSAkY2xhc3NOYW1lID0gX2NsYXNzTmFtZSgkaWRsVHlwZSk7
Ci0gICAgbXkgJGltcGxlbWVudGF0aW9uQ2xhc3NOYW1lID0gX2ltcGxlbWVudGF0aW9uQ2xhc3NO
YW1lKCRpZGxUeXBlKTsKLSAgICBteSAkZmlsZW5hbWUgPSAkY2xhc3NOYW1lIC4gIi5oIjsKLQot
ICAgIHB1c2goQGNvbnRlbnRzLCBfZmlsZUhlYWRlclN0cmluZygkZmlsZW5hbWUpKTsKLQotICAg
IG15ICRwYXJlbnRDbGFzc05hbWUgPSBfcGFyZW50Q2xhc3NOYW1lKCRpbnRlcmZhY2UpOwotCi0g
ICAgcHVzaChAY29udGVudHMsIDw8RU9GKTsKLQotI2lmbmRlZiAke2NsYXNzTmFtZX1faAotI2Rl
ZmluZSAke2NsYXNzTmFtZX1faAotCi0jaW5jbHVkZSAiJHtwYXJlbnRDbGFzc05hbWV9LmgiCi1F
T0YKLSAgICBwdXNoKEBjb250ZW50cywgPDxFT0YpOwotCi1uYW1lc3BhY2UgV1RSIHsKLQotY2xh
c3MgJHtpbXBsZW1lbnRhdGlvbkNsYXNzTmFtZX07Ci0KLWNsYXNzICR7Y2xhc3NOYW1lfSA6IHB1
YmxpYyAke3BhcmVudENsYXNzTmFtZX0gewotcHVibGljOgotICAgIHN0YXRpYyBKU0NsYXNzUmVm
IEB7WyRzZWxmLT5fY2xhc3NSZWZHZXR0ZXIoJGlkbFR5cGUpXX0oKTsKLQotcHJpdmF0ZToKLSAg
ICBzdGF0aWMgY29uc3QgSlNTdGF0aWNGdW5jdGlvbiogc3RhdGljRnVuY3Rpb25zKCk7Ci0gICAg
c3RhdGljIGNvbnN0IEpTU3RhdGljVmFsdWUqIHN0YXRpY1ZhbHVlcygpOwotRU9GCi0KLSAgICBp
ZiAobXkgQGZ1bmN0aW9ucyA9IEB7JGludGVyZmFjZS0+ZnVuY3Rpb25zfSkgewotICAgICAgICBw
dXNoKEBjb250ZW50cywgIlxuICAgIC8vIEZ1bmN0aW9uc1xuXG4iKTsKLSAgICAgICAgZm9yZWFj
aCBteSAkZnVuY3Rpb24gKEBmdW5jdGlvbnMpIHsKLSAgICAgICAgICAgIHB1c2goQGNvbnRlbnRz
LCAiICAgIHN0YXRpYyBKU1ZhbHVlUmVmIEB7WyRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lXX0o
SlNDb250ZXh0UmVmLCBKU09iamVjdFJlZiwgSlNPYmplY3RSZWYsIHNpemVfdCwgY29uc3QgSlNW
YWx1ZVJlZltdLCBKU1ZhbHVlUmVmKik7XG4iKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlm
IChteSBAYXR0cmlidXRlcyA9IEB7JGludGVyZmFjZS0+YXR0cmlidXRlc30pIHsKLSAgICAgICAg
cHVzaChAY29udGVudHMsICJcbiAgICAvLyBBdHRyaWJ1dGVzXG5cbiIpOwotICAgICAgICBmb3Jl
YWNoIG15ICRhdHRyaWJ1dGUgKEBhdHRyaWJ1dGVzKSB7Ci0gICAgICAgICAgICBwdXNoKEBjb250
ZW50cywgIiAgICBzdGF0aWMgSlNWYWx1ZVJlZiBAe1skc2VsZi0+X2dldHRlck5hbWUoJGF0dHJp
YnV0ZSldfShKU0NvbnRleHRSZWYsIEpTT2JqZWN0UmVmLCBKU1N0cmluZ1JlZiwgSlNWYWx1ZVJl
ZiopO1xuIik7Ci0gICAgICAgICAgICBwdXNoKEBjb250ZW50cywgIiAgICBzdGF0aWMgYm9vbCBA
e1skc2VsZi0+X3NldHRlck5hbWUoJGF0dHJpYnV0ZSldfShKU0NvbnRleHRSZWYsIEpTT2JqZWN0
UmVmLCBKU1N0cmluZ1JlZiwgSlNWYWx1ZVJlZiwgSlNWYWx1ZVJlZiopO1xuIikgdW5sZXNzICRh
dHRyaWJ1dGUtPnR5cGUgPX4gL15yZWFkb25seS87Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBw
dXNoKEBjb250ZW50cywgPDxFT0YpOwotfTsKLSAgICAKLSR7aW1wbGVtZW50YXRpb25DbGFzc05h
bWV9KiB0byR7aW1wbGVtZW50YXRpb25DbGFzc05hbWV9KEpTQ29udGV4dFJlZiwgSlNWYWx1ZVJl
Zik7Ci0KLX0gLy8gbmFtZXNwYWNlIFdUUgotCi0jZW5kaWYgLy8gJHtjbGFzc05hbWV9X2gKLUVP
RgotCi0gICAgcmV0dXJuIHsgbmFtZSA9PiAkZmlsZW5hbWUsIGNvbnRlbnRzID0+IFxAY29udGVu
dHMgfTsKLX0KLQotc3ViIF9nZW5lcmF0ZUltcGxlbWVudGF0aW9uRmlsZQotewotICAgIG15ICgk
c2VsZiwgJGludGVyZmFjZSkgPSBAXzsKLQotICAgIG15IEBjb250ZW50c1ByZWZpeCA9ICgpOwot
ICAgIG15ICVjb250ZW50c0luY2x1ZGVzID0gKCk7Ci0gICAgbXkgQGNvbnRlbnRzID0gKCk7Ci0K
LSAgICBteSAkaWRsVHlwZSA9ICRpbnRlcmZhY2UtPm5hbWU7Ci0gICAgbXkgJGNsYXNzTmFtZSA9
IF9jbGFzc05hbWUoJGlkbFR5cGUpOwotICAgIG15ICRpbXBsZW1lbnRhdGlvbkNsYXNzTmFtZSA9
IF9pbXBsZW1lbnRhdGlvbkNsYXNzTmFtZSgkaWRsVHlwZSk7Ci0gICAgbXkgJGZpbGVuYW1lID0g
JGNsYXNzTmFtZSAuICIuY3BwIjsKLQotICAgIHB1c2goQGNvbnRlbnRzUHJlZml4LCBfZmlsZUhl
YWRlclN0cmluZygkZmlsZW5hbWUpKTsKLQotICAgIG15ICRjbGFzc1JlZkdldHRlciA9ICRzZWxm
LT5fY2xhc3NSZWZHZXR0ZXIoJGlkbFR5cGUpOwotICAgIG15ICRwYXJlbnRDbGFzc05hbWUgPSBf
cGFyZW50Q2xhc3NOYW1lKCRpbnRlcmZhY2UpOwotCi0gICAgJGNvbnRlbnRzSW5jbHVkZXN7IiR7
Y2xhc3NOYW1lfS5oIn0gPSAxOwotICAgICRjb250ZW50c0luY2x1ZGVzeyIke2ltcGxlbWVudGF0
aW9uQ2xhc3NOYW1lfS5oIn0gPSAxOwotCi0gICAgcHVzaChAY29udGVudHNQcmVmaXgsIDw8RU9G
KTsKLQotRU9GCi0KLSAgICBwdXNoKEBjb250ZW50cywgPDxFT0YpOwotI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0pTUmV0YWluUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL0dldFB0ci5oPgotCi1uYW1l
c3BhY2UgV1RSIHsKLQotJHtpbXBsZW1lbnRhdGlvbkNsYXNzTmFtZX0qIHRvJHtpbXBsZW1lbnRh
dGlvbkNsYXNzTmFtZX0oSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYgdmFsdWUpCi17
Ci0gICAgaWYgKCFjb250ZXh0IHx8ICF2YWx1ZSB8fCAhJHtjbGFzc05hbWV9Ojoke2NsYXNzUmVm
R2V0dGVyfSgpIHx8ICFKU1ZhbHVlSXNPYmplY3RPZkNsYXNzKGNvbnRleHQsIHZhbHVlLCAke2Ns
YXNzTmFtZX06OiR7Y2xhc3NSZWZHZXR0ZXJ9KCkpKQotICAgICAgICByZXR1cm4gMDsKLSAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8JHtpbXBsZW1lbnRhdGlvbkNsYXNzTmFtZX0qPihKU1dyYXBwZXI6
OnVud3JhcChjb250ZXh0LCB2YWx1ZSkpOwotfQotCi1KU0NsYXNzUmVmICR7Y2xhc3NOYW1lfTo6
JHtjbGFzc1JlZkdldHRlcn0oKQotewotICAgIHN0YXRpYyBKU0NsYXNzUmVmIGpzQ2xhc3M7Ci0g
ICAgaWYgKCFqc0NsYXNzKSB7Ci0gICAgICAgIEpTQ2xhc3NEZWZpbml0aW9uIGRlZmluaXRpb24g
PSBrSlNDbGFzc0RlZmluaXRpb25FbXB0eTsKLSAgICAgICAgZGVmaW5pdGlvbi5jbGFzc05hbWUg
PSAiJHtpZGxUeXBlfSI7Ci0gICAgICAgIGRlZmluaXRpb24ucGFyZW50Q2xhc3MgPSBAe1skc2Vs
Zi0+X3BhcmVudENsYXNzUmVmR2V0dGVyRXhwcmVzc2lvbigkaW50ZXJmYWNlKV19OwotICAgICAg
ICBkZWZpbml0aW9uLnN0YXRpY1ZhbHVlcyA9IHN0YXRpY1ZhbHVlcygpOwotICAgICAgICBkZWZp
bml0aW9uLnN0YXRpY0Z1bmN0aW9ucyA9IHN0YXRpY0Z1bmN0aW9ucygpOwotRU9GCi0KLSAgICBw
dXNoKEBjb250ZW50cywgIiAgICAgICAgZGVmaW5pdGlvbi5pbml0aWFsaXplID0gaW5pdGlhbGl6
ZTtcbiIpIHVubGVzcyBfcGFyZW50SW50ZXJmYWNlKCRpbnRlcmZhY2UpOwotICAgIHB1c2goQGNv
bnRlbnRzLCAiICAgICAgICBkZWZpbml0aW9uLmZpbmFsaXplID0gZmluYWxpemU7XG4iKSB1bmxl
c3MgX3BhcmVudEludGVyZmFjZSgkaW50ZXJmYWNlKTsKLQotICAgIHB1c2goQGNvbnRlbnRzLCA8
PEVPRik7Ci0gICAgICAgIGpzQ2xhc3MgPSBKU0NsYXNzQ3JlYXRlKCZkZWZpbml0aW9uKTsKLSAg
ICB9Ci0gICAgcmV0dXJuIGpzQ2xhc3M7Ci19Ci0KLUVPRgotCi0gICAgcHVzaChAY29udGVudHMs
ICRzZWxmLT5fc3RhdGljRnVuY3Rpb25zR2V0dGVySW1wbGVtZW50YXRpb24oJGludGVyZmFjZSks
ICJcbiIpOwotICAgIHB1c2goQGNvbnRlbnRzLCAkc2VsZi0+X3N0YXRpY1ZhbHVlc0dldHRlcklt
cGxlbWVudGF0aW9uKCRpbnRlcmZhY2UpKTsKLQotICAgIGlmIChteSBAZnVuY3Rpb25zID0gQHsk
aW50ZXJmYWNlLT5mdW5jdGlvbnN9KSB7Ci0gICAgICAgIHB1c2goQGNvbnRlbnRzLCAiXG4vLyBG
dW5jdGlvbnNcbiIpOwotCi0gICAgICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAZnVuY3Rpb25z
KSB7Ci0gICAgICAgICAgICBwdXNoKEBjb250ZW50cywgPDxFT0YpOwotCi1KU1ZhbHVlUmVmICR7
Y2xhc3NOYW1lfTo6QHtbJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWVdfShKU0NvbnRleHRSZWYg
Y29udGV4dCwgSlNPYmplY3RSZWYsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1
bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNl
cHRpb24pCi17Ci0gICAgJHtpbXBsZW1lbnRhdGlvbkNsYXNzTmFtZX0qIGltcGwgPSB0byR7aW1w
bGVtZW50YXRpb25DbGFzc05hbWV9KGNvbnRleHQsIHRoaXNPYmplY3QpOwotICAgIGlmICghaW1w
bCkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotRU9GCi0g
ICAgICAgICAgICBteSBAcGFyYW1ldGVycyA9ICgpOwotICAgICAgICAgICAgbXkgQHNwZWNpZmll
ZFBhcmFtZXRlcnMgPSBAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc307Ci0KLSAgICAgICAgICAgIHB1
c2goQGNvbnRlbnRzLCAiXG4iKSBpZiBzY2FsYXIgQHNwZWNpZmllZFBhcmFtZXRlcnM7Ci0KLSAg
ICAgICAgICAgICRzZWxmLT5faW5jbHVkZUhlYWRlcnMoXCVjb250ZW50c0luY2x1ZGVzLCAkZnVu
Y3Rpb24tPnNpZ25hdHVyZS0+dHlwZSwgJGZ1bmN0aW9uLT5zaWduYXR1cmUpOwotCi0gICAgICAg
ICAgICBmb3JlYWNoIG15ICRpICgwLi4kI3NwZWNpZmllZFBhcmFtZXRlcnMpIHsKLSAgICAgICAg
ICAgICAgICBteSAkcGFyYW1ldGVyID0gJHNwZWNpZmllZFBhcmFtZXRlcnNbJGldOwotCi0gICAg
ICAgICAgICAgICAgJHNlbGYtPl9pbmNsdWRlSGVhZGVycyhcJWNvbnRlbnRzSW5jbHVkZXMsICRp
ZGxUeXBlLCAkcGFyYW1ldGVyKTsKLQotICAgICAgICAgICAgICAgIHB1c2goQGNvbnRlbnRzLCAi
ICAgICIgLiAkc2VsZi0+X3BsYXRmb3JtVHlwZVZhcmlhYmxlRGVjbGFyYXRpb24oJHBhcmFtZXRl
ciwgJHBhcmFtZXRlci0+bmFtZSwgImFyZ3VtZW50c1skaV0iLCAiYXJndW1lbnRDb3VudCA+ICRp
IikgLiAiXG4iKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBwdXNoKEBwYXJh
bWV0ZXJzLCAkc2VsZi0+X3BhcmFtdGVyRXhwcmVzc2lvbigkcGFyYW1ldGVyKSk7Ci0gICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgIG15ICRpc1ZvaWRSZXR1cm4gPSAkZnVuY3Rpb24tPnNpZ25h
dHVyZS0+dHlwZSBlcSAidm9pZCI7Ci0gICAgICAgICAgICBteSAkZnVuY3Rpb25OYW1lID0gImlt
cGwtPiIgLiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZTsKLSAgICAgICAgICAgIG15ICRmdW5j
dGlvbkNhbGwgPSAkZnVuY3Rpb25OYW1lIC4gIigiIC4gam9pbigiLCAiLCBAcGFyYW1ldGVycykg
LiAiKSI7Ci0KLSAgICAgICAgICAgIHB1c2goQGNvbnRlbnRzLCAiXG4iKSB1bmxlc3Mgc2NhbGFy
IEBzcGVjaWZpZWRQYXJhbWV0ZXJzID09IDE7Ci0gICAgICAgICAgICBwdXNoKEBjb250ZW50cywg
IiAgICAke2Z1bmN0aW9uQ2FsbH07XG5cbiIpIGlmICRpc1ZvaWRSZXR1cm47Ci0gICAgICAgICAg
ICBwdXNoKEBjb250ZW50cywgIiAgICByZXR1cm4gIiAuICRzZWxmLT5fcmV0dXJuRXhwcmVzc2lv
bigkZnVuY3Rpb24tPnNpZ25hdHVyZSwgJGZ1bmN0aW9uQ2FsbCkgLiAiO1xufVxuIik7Ci0gICAg
ICAgIH0KLSAgICB9Ci0KLSAgICBpZiAobXkgQGF0dHJpYnV0ZXMgPSBAeyRpbnRlcmZhY2UtPmF0
dHJpYnV0ZXN9KSB7Ci0gICAgICAgIHB1c2goQGNvbnRlbnRzLCAiXG4vLyBBdHRyaWJ1dGVzXG4i
KTsKLSAgICAgICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChAYXR0cmlidXRlcykgewotICAgICAg
ICAgICAgJHNlbGYtPl9pbmNsdWRlSGVhZGVycyhcJWNvbnRlbnRzSW5jbHVkZXMsICRhdHRyaWJ1
dGUtPnNpZ25hdHVyZS0+dHlwZSwgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlKTsKLQotICAgICAgICAg
ICAgbXkgJGdldHRlck5hbWUgPSAkc2VsZi0+X2dldHRlck5hbWUoJGF0dHJpYnV0ZSk7Ci0gICAg
ICAgICAgICBteSAkZ2V0dGVyRXhwcmVzc2lvbiA9ICJpbXBsLT4ke2dldHRlck5hbWV9KCkiOwot
Ci0gICAgICAgICAgICBwdXNoKEBjb250ZW50cywgPDxFT0YpOwotCi1KU1ZhbHVlUmVmICR7Y2xh
c3NOYW1lfTo6JHtnZXR0ZXJOYW1lfShKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYg
b2JqZWN0LCBKU1N0cmluZ1JlZiwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQotewotICAgICR7aW1w
bGVtZW50YXRpb25DbGFzc05hbWV9KiBpbXBsID0gdG8ke2ltcGxlbWVudGF0aW9uQ2xhc3NOYW1l
fShjb250ZXh0LCBvYmplY3QpOwotICAgIGlmICghaW1wbCkKLSAgICAgICAgcmV0dXJuIEpTVmFs
dWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotCi0gICAgcmV0dXJuIEB7WyRzZWxmLT5fcmV0dXJu
RXhwcmVzc2lvbigkYXR0cmlidXRlLT5zaWduYXR1cmUsICRnZXR0ZXJFeHByZXNzaW9uKV19Owot
fQotRU9GCi0KLSAgICAgICAgICAgIHVubGVzcyAoJGF0dHJpYnV0ZS0+dHlwZSA9fiAvXnJlYWRv
bmx5LykgewotICAgICAgICAgICAgICAgIHB1c2goQGNvbnRlbnRzLCA8PEVPRik7Ci0KLWJvb2wg
JHtjbGFzc05hbWV9OjpAe1skc2VsZi0+X3NldHRlck5hbWUoJGF0dHJpYnV0ZSldfShKU0NvbnRl
eHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU1N0cmluZ1JlZiwgSlNWYWx1ZVJl
ZiB2YWx1ZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQotewotICAgICR7aW1wbGVtZW50YXRpb25D
bGFzc05hbWV9KiBpbXBsID0gdG8ke2ltcGxlbWVudGF0aW9uQ2xhc3NOYW1lfShjb250ZXh0LCBv
YmplY3QpOwotICAgIGlmICghaW1wbCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi1FT0YKLQot
ICAgICAgICAgICAgICAgIG15ICRwbGF0Zm9ybVZhbHVlID0gJHNlbGYtPl9wbGF0Zm9ybVR5cGVD
b25zdHJ1Y3RvcigkYXR0cmlidXRlLT5zaWduYXR1cmUsICJ2YWx1ZSIpOwotCi0gICAgICAgICAg
ICAgICAgcHVzaChAY29udGVudHMsIDw8RU9GKTsKLSAgICBpbXBsLT5Ae1skc2VsZi0+X3NldHRl
ck5hbWUoJGF0dHJpYnV0ZSldfSgke3BsYXRmb3JtVmFsdWV9KTsKLQotICAgIHJldHVybiB0cnVl
OwotfQotRU9GCi0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBwdXNoKEBj
b250ZW50cywgPDxFT0YpOwotCi19IC8vIG5hbWVzcGFjZSBXVFIKLQotRU9GCi0KLSAgICB1bnNo
aWZ0KEBjb250ZW50cywgbWFwIHsgIiNpbmNsdWRlIFwiJF9cIlxuIiB9IHNvcnQga2V5cyglY29u
dGVudHNJbmNsdWRlcykpOwotICAgIHVuc2hpZnQoQGNvbnRlbnRzLCBAY29udGVudHNQcmVmaXgp
OwotCi0gICAgcmV0dXJuIHsgbmFtZSA9PiAkZmlsZW5hbWUsIGNvbnRlbnRzID0+IFxAY29udGVu
dHMgfTsKLX0KLQotc3ViIF9nZXR0ZXJOYW1lCi17Ci0gICAgbXkgKCRzZWxmLCAkYXR0cmlidXRl
KSA9IEBfOwotCi0gICAgbXkgJHNpZ25hdHVyZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZTsKLSAg
ICBteSAkbmFtZSA9ICRzaWduYXR1cmUtPm5hbWU7Ci0KLSAgICByZXR1cm4gJG5hbWU7Ci19Ci0K
LXN1YiBfaW5jbHVkZUhlYWRlcnMKLXsKLSAgICBteSAoJHNlbGYsICRoZWFkZXJzLCAkaWRsVHlw
ZSwgJHNpZ25hdHVyZSkgPSBAXzsKLQotICAgIHJldHVybiB1bmxlc3MgZGVmaW5lZCAkaWRsVHlw
ZTsKLSAgICByZXR1cm4gaWYgJGlkbFR5cGUgZXEgImJvb2xlYW4iIG9yICQkc2VsZntjb2RlR2Vu
ZXJhdG9yfS0+SXNOb25Qb2ludGVyVHlwZSgkaWRsVHlwZSk7Ci0KLSAgICAkJGhlYWRlcnN7X2Ns
YXNzTmFtZSgkaWRsVHlwZSkgLiAiLmgifSA9IDE7Ci0gICAgJCRoZWFkZXJze19pbXBsZW1lbnRh
dGlvbkNsYXNzTmFtZSgkaWRsVHlwZSkgLiAiLmgifSA9IDE7Ci19Ci0KLXN1YiBfaW1wbGVtZW50
YXRpb25DbGFzc05hbWUKLXsKLSAgICBteSAoJGlkbFR5cGUpID0gQF87Ci0KLSAgICByZXR1cm4g
JGlkbFR5cGU7Ci19Ci0KLXN1YiBfcGFyZW50Q2xhc3NOYW1lCi17Ci0gICAgbXkgKCRpbnRlcmZh
Y2UpID0gQF87Ci0KLSAgICBteSAkcGFyZW50SW50ZXJmYWNlID0gX3BhcmVudEludGVyZmFjZSgk
aW50ZXJmYWNlKTsKLSAgICByZXR1cm4gJHBhcmVudEludGVyZmFjZSA/IF9jbGFzc05hbWUoJHBh
cmVudEludGVyZmFjZSkgOiAiSlNXcmFwcGVyIjsKLX0KLQotc3ViIF9wYXJlbnRDbGFzc1JlZkdl
dHRlckV4cHJlc3Npb24KLXsKLSAgICBteSAoJHNlbGYsICRpbnRlcmZhY2UpID0gQF87Ci0KLSAg
ICBteSAkcGFyZW50SW50ZXJmYWNlID0gX3BhcmVudEludGVyZmFjZSgkaW50ZXJmYWNlKTsKLSAg
ICByZXR1cm4gJHBhcmVudEludGVyZmFjZSA/ICRzZWxmLT5fY2xhc3NSZWZHZXR0ZXIoJHBhcmVu
dEludGVyZmFjZSkgLiAiKCkiIDogIjAiOwotfQotCi1zdWIgX3BhcmVudEludGVyZmFjZQotewot
ICAgIG15ICgkaW50ZXJmYWNlKSA9IEBfOwotICAgIHJldHVybiAkaW50ZXJmYWNlLT5wYXJlbnRz
LT5bMF07Ci19Ci0KLXN1YiBfcGxhdGZvcm1UeXBlCi17Ci0gICAgbXkgKCRzZWxmLCAkaWRsVHlw
ZSwgJHNpZ25hdHVyZSkgPSBAXzsKLQotICAgIHJldHVybiB1bmRlZiB1bmxlc3MgZGVmaW5lZCAk
aWRsVHlwZTsKLQotICAgIHJldHVybiAiYm9vbCIgaWYgJGlkbFR5cGUgZXEgImJvb2xlYW4iOwot
ICAgIHJldHVybiAiSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IiBpZiAkJHNlbGZ7Y29kZUdlbmVy
YXRvcn0tPklzU3RyaW5nVHlwZSgkaWRsVHlwZSk7Ci0gICAgcmV0dXJuICJkb3VibGUiIGlmICQk
c2VsZntjb2RlR2VuZXJhdG9yfS0+SXNOb25Qb2ludGVyVHlwZSgkaWRsVHlwZSk7Ci0gICAgcmV0
dXJuIF9pbXBsZW1lbnRhdGlvbkNsYXNzTmFtZSgkaWRsVHlwZSk7Ci19Ci0KLXN1YiBfcGxhdGZv
cm1UeXBlQ29uc3RydWN0b3IKLXsKLSAgICBteSAoJHNlbGYsICRzaWduYXR1cmUsICRhcmd1bWVu
dE5hbWUpID0gQF87Ci0KLSAgICBteSAkaWRsVHlwZSA9ICRzaWduYXR1cmUtPnR5cGU7Ci0KLSAg
ICByZXR1cm4gIkpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPihBZG9wdCwgSlNWYWx1ZVRvU3RyaW5n
Q29weShjb250ZXh0LCAkYXJndW1lbnROYW1lLCAwKSkiIGlmICQkc2VsZntjb2RlR2VuZXJhdG9y
fS0+SXNTdHJpbmdUeXBlKCRpZGxUeXBlKTsKLSAgICByZXR1cm4gIkpTVmFsdWVUb0Jvb2xlYW4o
Y29udGV4dCwgJGFyZ3VtZW50TmFtZSkiIGlmICRpZGxUeXBlIGVxICJib29sZWFuIjsKLSAgICBy
ZXR1cm4gIkpTVmFsdWVUb051bWJlcihjb250ZXh0LCAkYXJndW1lbnROYW1lLCAwKSIgaWYgJCRz
ZWxme2NvZGVHZW5lcmF0b3J9LT5Jc05vblBvaW50ZXJUeXBlKCRpZGxUeXBlKTsKLSAgICByZXR1
cm4gInRvIiAuIF9pbXBsZW1lbnRhdGlvbkNsYXNzTmFtZSgkaWRsVHlwZSkgLiAiKGNvbnRleHQs
ICRhcmd1bWVudE5hbWUpIjsKLX0KLQotc3ViIF9wbGF0Zm9ybVR5cGVWYXJpYWJsZURlY2xhcmF0
aW9uCi17Ci0gICAgbXkgKCRzZWxmLCAkc2lnbmF0dXJlLCAkdmFyaWFibGVOYW1lLCAkYXJndW1l
bnROYW1lLCAkY29uZGl0aW9uKSA9IEBfOwotCi0gICAgbXkgJHBsYXRmb3JtVHlwZSA9ICRzZWxm
LT5fcGxhdGZvcm1UeXBlKCRzaWduYXR1cmUtPnR5cGUsICRzaWduYXR1cmUpOwotICAgIG15ICRj
b25zdHJ1Y3RvciA9ICRzZWxmLT5fcGxhdGZvcm1UeXBlQ29uc3RydWN0b3IoJHNpZ25hdHVyZSwg
JGFyZ3VtZW50TmFtZSk7Ci0KLSAgICBteSAlbm9uUG9pbnRlclR5cGVzID0gKAotICAgICAgICAi
Ym9vbCIgPT4gMSwKLSAgICAgICAgImRvdWJsZSIgPT4gMSwKLSAgICAgICAgIkpTUmV0YWluUHRy
PEpTU3RyaW5nUmVmPiIgPT4gMSwKLSAgICApOwotCi0gICAgbXkgJG51bGxWYWx1ZSA9ICIwIjsK
LSAgICAkbnVsbFZhbHVlID0gIiRwbGF0Zm9ybVR5cGUoKSIgaWYgZGVmaW5lZCAkbm9uUG9pbnRl
clR5cGVzeyRwbGF0Zm9ybVR5cGV9ICYmICRwbGF0Zm9ybVR5cGUgbmUgImRvdWJsZSI7Ci0KLSAg
ICAkcGxhdGZvcm1UeXBlIC49ICIqIiB1bmxlc3MgZGVmaW5lZCAkbm9uUG9pbnRlclR5cGVzeyRw
bGF0Zm9ybVR5cGV9OwotCi0gICAgcmV0dXJuICIkcGxhdGZvcm1UeXBlICR2YXJpYWJsZU5hbWUg
PSAkY29uZGl0aW9uICYmICRjb25zdHJ1Y3RvcjsiIGlmICRjb25kaXRpb24gJiYgJHBsYXRmb3Jt
VHlwZSBlcSAiYm9vbCI7Ci0gICAgcmV0dXJuICIkcGxhdGZvcm1UeXBlICR2YXJpYWJsZU5hbWUg
PSAkY29uZGl0aW9uID8gJGNvbnN0cnVjdG9yIDogJG51bGxWYWx1ZTsiIGlmICRjb25kaXRpb247
Ci0gICAgcmV0dXJuICIkcGxhdGZvcm1UeXBlICR2YXJpYWJsZU5hbWUgPSAkY29uc3RydWN0b3I7
IjsKLX0KLQotc3ViIF9yZXR1cm5FeHByZXNzaW9uCi17Ci0gICAgbXkgKCRzZWxmLCAkc2lnbmF0
dXJlLCAkZXhwcmVzc2lvbikgPSBAXzsKLQotICAgIG15ICRjb252ZXJ0TnVsbFN0cmluZ0F0dHJp
YnV0ZSA9ICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb252ZXJ0TnVsbFN0cmlu
Z1RvIn07Ci0gICAgbXkgJG51bGxPckVtcHR5U3RyaW5nID0gIk51bGxTdHJpbmdBc0VtcHR5U3Ry
aW5nIjsKLSAgICAkbnVsbE9yRW1wdHlTdHJpbmcgPSAiTnVsbFN0cmluZ0FzTnVsbCIgaWYgZGVm
aW5lZCAkY29udmVydE51bGxTdHJpbmdBdHRyaWJ1dGUgJiYgJGNvbnZlcnROdWxsU3RyaW5nQXR0
cmlidXRlIGVxICJOdWxsIjsKLQotICAgIG15ICRyZXR1cm5JRExUeXBlID0gJHNpZ25hdHVyZS0+
dHlwZTsKLQotICAgIHJldHVybiAiSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCkiIGlmICRy
ZXR1cm5JRExUeXBlIGVxICJ2b2lkIjsKLSAgICByZXR1cm4gIkpTVmFsdWVNYWtlQm9vbGVhbihj
b250ZXh0LCAke2V4cHJlc3Npb259KSIgaWYgJHJldHVybklETFR5cGUgZXEgImJvb2xlYW4iOwot
ICAgIHJldHVybiAiSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgJHtleHByZXNzaW9ufSkiIGlm
ICQkc2VsZntjb2RlR2VuZXJhdG9yfS0+SXNOb25Qb2ludGVyVHlwZSgkcmV0dXJuSURMVHlwZSk7
Ci0gICAgcmV0dXJuICJ0b0pTKGNvbnRleHQsIFdURjo6Z2V0UHRyKCR7ZXhwcmVzc2lvbn0pKSI7
Ci19Ci0KLXN1YiBfcGFyYW10ZXJFeHByZXNzaW9uCi17Ci0gICAgbXkgKCRzZWxmLCAkcGFyYW1l
dGVyKSA9IEBfOwotCi0gICAgbXkgJGlkbFR5cGUgPSAkcGFyYW1ldGVyLT50eXBlOwotICAgIG15
ICRuYW1lID0gJHBhcmFtZXRlci0+bmFtZTsKLQotICAgIHJldHVybiAiJHtuYW1lfS5nZXQoKSIg
aWYgJCRzZWxme2NvZGVHZW5lcmF0b3J9LT5Jc1N0cmluZ1R5cGUoJGlkbFR5cGUpOwotICAgIHJl
dHVybiAkbmFtZTsKLX0KLQotc3ViIF9zZXR0ZXJOYW1lCi17Ci0gICAgbXkgKCRzZWxmLCAkYXR0
cmlidXRlKSA9IEBfOwotCi0gICAgbXkgJG5hbWUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5h
bWU7Ci0KLSAgICByZXR1cm4gInNldCIgLiAkJHNlbGZ7Y29kZUdlbmVyYXRvcn0tPldLX3VjZmly
c3QoJG5hbWUpOwotfQotCi1zdWIgX3N0YXRpY0Z1bmN0aW9uc0dldHRlckltcGxlbWVudGF0aW9u
Ci17Ci0gICAgbXkgKCRzZWxmLCAkaW50ZXJmYWNlKSA9IEBfOwotCi0gICAgbXkgJG1hcEZ1bmN0
aW9uID0gc3ViIHsKLSAgICAgICAgbXkgJG5hbWUgPSAkXy0+c2lnbmF0dXJlLT5uYW1lOwotICAg
ICAgICBteSBAYXR0cmlidXRlcyA9IHF3KGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5KTsKLSAgICAgICAgcHVzaChAYXR0cmlidXRlcywg
ImtKU1Byb3BlcnR5QXR0cmlidXRlRG9udEVudW0iKSBpZiAkXy0+c2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiRG9udEVudW0ifTsKLQotICAgICAgICByZXR1cm4gICJ7IFwiJG5hbWVc
IiwgJG5hbWUsICIgLiBqb2luKCIgfCAiLCBAYXR0cmlidXRlcykgLiAiIH0iOwotICAgIH07Ci0K
LSAgICByZXR1cm4gJHNlbGYtPl9zdGF0aWNGdW5jdGlvbnNPclZhbHVlc0dldHRlckltcGxlbWVu
dGF0aW9uKCRpbnRlcmZhY2UsICJmdW5jdGlvbiIsICJ7IDAsIDAsIDAgfSIsICRtYXBGdW5jdGlv
biwgJGludGVyZmFjZS0+ZnVuY3Rpb25zKTsKLX0KLQotc3ViIF9zdGF0aWNGdW5jdGlvbnNPclZh
bHVlc0dldHRlckltcGxlbWVudGF0aW9uCi17Ci0gICAgbXkgKCRzZWxmLCAkaW50ZXJmYWNlLCAk
ZnVuY3Rpb25PclZhbHVlLCAkYXJyYXlUZXJtaW5hdG9yLCAkbWFwRnVuY3Rpb24sICRmdW5jdGlv
bnNPckF0dHJpYnV0ZXMpID0gQF87Ci0KLSAgICBteSAkY2xhc3NOYW1lID0gX2NsYXNzTmFtZSgk
aW50ZXJmYWNlLT5uYW1lKTsKLSAgICBteSAkdXBwZXJjYXNlRnVuY3Rpb25PclZhbHVlID0gJCRz
ZWxme2NvZGVHZW5lcmF0b3J9LT5XS191Y2ZpcnN0KCRmdW5jdGlvbk9yVmFsdWUpOwotCi0gICAg
bXkgJHJlc3VsdCA9IDw8RU9GOwotY29uc3QgSlNTdGF0aWMke3VwcGVyY2FzZUZ1bmN0aW9uT3JW
YWx1ZX0qICR7Y2xhc3NOYW1lfTo6c3RhdGljJHt1cHBlcmNhc2VGdW5jdGlvbk9yVmFsdWV9cygp
Ci17Ci1FT0YKLQotICAgIG15IEBpbml0aWFsaXplcnMgPSBtYXAoJiRtYXBGdW5jdGlvbiwgQHsk
ZnVuY3Rpb25zT3JBdHRyaWJ1dGVzfSk7Ci0gICAgcmV0dXJuICRyZXN1bHQgLiAiICAgIHJldHVy
biAwO1xufVxuIiB1bmxlc3MgQGluaXRpYWxpemVyczsKLQotICAgICRyZXN1bHQgLj0gPDxFT0YK
LSAgICBzdGF0aWMgY29uc3QgSlNTdGF0aWMke3VwcGVyY2FzZUZ1bmN0aW9uT3JWYWx1ZX0gJHtm
dW5jdGlvbk9yVmFsdWV9c1tdID0gewotICAgICAgICBAe1tqb2luKCIsXG4gICAgICAgICIsIEBp
bml0aWFsaXplcnMpXX0sCi0gICAgICAgICR7YXJyYXlUZXJtaW5hdG9yfQotICAgIH07Ci0gICAg
cmV0dXJuICR7ZnVuY3Rpb25PclZhbHVlfXM7Ci19Ci1FT0YKLX0KLQotc3ViIF9zdGF0aWNWYWx1
ZXNHZXR0ZXJJbXBsZW1lbnRhdGlvbgotewotICAgIG15ICgkc2VsZiwgJGludGVyZmFjZSkgPSBA
XzsKLQotICAgIG15ICRtYXBGdW5jdGlvbiA9IHN1YiB7Ci0gICAgICAgIHJldHVybiBpZiAkXy0+
c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm9JbXBsZW1lbnRhdGlvbiJ9OwotCi0g
ICAgICAgIG15ICRhdHRyaWJ1dGVOYW1lID0gJF8tPnNpZ25hdHVyZS0+bmFtZTsKLSAgICAgICAg
bXkgJGF0dHJpYnV0ZUlzUmVhZG9ubHkgPSAkXy0+dHlwZSA9fiAvXnJlYWRvbmx5LzsKLSAgICAg
ICAgbXkgJGdldHRlck5hbWUgPSAkc2VsZi0+X2dldHRlck5hbWUoJF8pOwotICAgICAgICBteSAk
c2V0dGVyTmFtZSA9ICRhdHRyaWJ1dGVJc1JlYWRvbmx5ID8gIjAiIDogJHNlbGYtPl9zZXR0ZXJO
YW1lKCRfKTsKLSAgICAgICAgbXkgQGF0dHJpYnV0ZXMgPSBxdyhrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUpOwotICAgICAgICBwdXNoKEBhdHRyaWJ1dGVzLCAia0pTUHJvcGVydHlBdHRy
aWJ1dGVSZWFkT25seSIpIGlmICRhdHRyaWJ1dGVJc1JlYWRvbmx5OwotICAgICAgICBwdXNoKEBh
dHRyaWJ1dGVzLCAia0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RW51bSIpIGlmICRfLT5zaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEb250RW51bSJ9OwotCi0gICAgICAgIHJldHVybiAi
eyBcIiRhdHRyaWJ1dGVOYW1lXCIsICRnZXR0ZXJOYW1lLCAkc2V0dGVyTmFtZSwgIiAuIGpvaW4o
IiB8ICIsIEBhdHRyaWJ1dGVzKSAuICIgfSI7Ci0gICAgfTsKLQotICAgIHJldHVybiAkc2VsZi0+
X3N0YXRpY0Z1bmN0aW9uc09yVmFsdWVzR2V0dGVySW1wbGVtZW50YXRpb24oJGludGVyZmFjZSwg
InZhbHVlIiwgInsgMCwgMCwgMCwgMCB9IiwgJG1hcEZ1bmN0aW9uLCAkaW50ZXJmYWNlLT5hdHRy
aWJ1dGVzKTsKLX0KLQotMTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvSlNXcmFwcGFibGUuaCBiL1dlYktpdFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvSlNXcmFwcGFibGUuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2Y1NmM1ZDhjYWZlZjgxZDZjNzFkZTFhZDc4MWE3
Y2Y4ZjhlZWY2MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9XZWJLaXRUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0pT
V3JhcHBhYmxlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2lmbmRlZiBKU1dyYXBwYWJsZV9oCi0jZGVmaW5lIEpTV3JhcHBhYmxlX2gKLQotI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KLQotbmFtZXNwYWNlIFdUUiB7Ci0KLWNsYXNzIEpTV3JhcHBhYmxlIDogcHVibGljIFJl
ZkNvdW50ZWQ8SlNXcmFwcGFibGU+IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5KU1dyYXBwYWJs
ZSgpIHsgfQotICAgIHZpcnR1YWwgSlNDbGFzc1JlZiB3cmFwcGVyQ2xhc3MoKSA9IDA7Ci19Owot
Ci19IC8vIG5hbWVzcGFjZSBXVFIKLQotI2VuZGlmIC8vIEpTV3JhcHBhYmxlX2gKZGlmZiAtLWdp
dCBhL1dlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
SlNXcmFwcGVyLmNwcCBiL1dlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQmluZGluZ3MvSlNXcmFwcGVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YTYyY2IyZTlkOGQyYTU0YzA1MjQ1NDA1YmQ4Y2RlN2IxN2Y4OWFiNy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9XZWJLaXRUb29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0pTV3JhcHBlci5jcHAKKysrIC9kZXYvbnVsbApA
QCAtMSw3OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgIkpTV3JhcHBlci5oIgotCi0j
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDb250ZXh0UmVmUHJpdmF0ZS5oPgotCi1uYW1lc3Bh
Y2UgV1RSIHsKLQotSlNWYWx1ZVJlZiBKU1dyYXBwZXI6OndyYXAoSlNDb250ZXh0UmVmIGNvbnRl
eHQsIEpTV3JhcHBhYmxlKiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX0FSRyhjb250ZXh0LCBjb250
ZXh0KTsKLQotICAgIGlmICghb2JqZWN0KQotICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VOdWxs
KGNvbnRleHQpOwotCi0gICAgSlNDbGFzc1JlZiBvYmplY3RDbGFzcyA9IG9iamVjdC0+d3JhcHBl
ckNsYXNzKCk7Ci0gICAgQVNTRVJUKG9iamVjdENsYXNzKTsKLSAgICBKU09iamVjdFJlZiB3cmFw
cGVyT2JqZWN0ID0gSlNPYmplY3RNYWtlKGNvbnRleHQsIG9iamVjdENsYXNzLCBvYmplY3QpOwot
ICAgIEFTU0VSVCh3cmFwcGVyT2JqZWN0KTsKLQotICAgIHJldHVybiB3cmFwcGVyT2JqZWN0Owot
fQotCi1KU1dyYXBwYWJsZSogSlNXcmFwcGVyOjp1bndyYXAoSlNDb250ZXh0UmVmIGNvbnRleHQs
IEpTVmFsdWVSZWYgdmFsdWUpCi17Ci0gICAgQVNTRVJUX0FSRyhjb250ZXh0LCBjb250ZXh0KTsK
LSAgICBBU1NFUlRfQVJHKHZhbHVlLCB2YWx1ZSk7Ci0gICAgaWYgKCFjb250ZXh0IHx8ICF2YWx1
ZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEpTV3JhcHBhYmxl
Kj4oSlNPYmplY3RHZXRQcml2YXRlKEpTVmFsdWVUb09iamVjdChjb250ZXh0LCB2YWx1ZSwgMCkp
KTsKLX0KLQotc3RhdGljIEpTV3JhcHBhYmxlKiB1bndyYXBPYmplY3QoSlNPYmplY3RSZWYgb2Jq
ZWN0KQotewotICAgIEpTV3JhcHBhYmxlKiB3cmFwcGFibGUgPSBzdGF0aWNfY2FzdDxKU1dyYXBw
YWJsZSo+KEpTT2JqZWN0R2V0UHJpdmF0ZShvYmplY3QpKTsKLSAgICBBU1NFUlQod3JhcHBhYmxl
KTsKLSAgICByZXR1cm4gd3JhcHBhYmxlOwotfQotCi12b2lkIEpTV3JhcHBlcjo6aW5pdGlhbGl6
ZShKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3QpCi17Ci0gICAgSlNXcmFwcGFi
bGUqIHdyYXBwYWJsZSA9IHVud3JhcE9iamVjdChvYmplY3QpOwotICAgIGlmICghd3JhcHBhYmxl
KQotICAgICAgICByZXR1cm47Ci0gICAgd3JhcHBhYmxlLT5yZWYoKTsKLX0KLQotdm9pZCBKU1dy
YXBwZXI6OmZpbmFsaXplKEpTT2JqZWN0UmVmIG9iamVjdCkKLXsKLSAgICBKU1dyYXBwYWJsZSog
d3JhcHBhYmxlID0gdW53cmFwT2JqZWN0KG9iamVjdCk7Ci0gICAgaWYgKCF3cmFwcGFibGUpCi0g
ICAgICAgIHJldHVybjsKLSAgICB3cmFwcGFibGUtPmRlcmVmKCk7Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIFdUUgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9CaW5kaW5ncy9KU1dyYXBwZXIuaCBiL1dlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvSlNXcmFwcGVyLmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDk4MzljYjQ4YWVkNTc5YTI3ZmQxYjVmZGM5ZWM3YWQ0MGMyOGUyMDAuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvV2ViS2l0VG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9KU1dyYXBwZXIuaAorKysg
L2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
Ci0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEpTV3JhcHBl
cl9oCi0jZGVmaW5lIEpTV3JhcHBlcl9oCi0KLSNpbmNsdWRlICJKU1dyYXBwYWJsZS5oIgotCi1u
YW1lc3BhY2UgV1RSIHsKLQotLy8gRklYTUU6IElmIG5lY2Vzc2FyeSwgd2UgY2FuIGRvIHdyYXBw
ZXIgY2FjaGluZyBoZXJlLgotY2xhc3MgSlNXcmFwcGVyIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMg
SlNWYWx1ZVJlZiB3cmFwKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1dyYXBwYWJsZSogb2JqZWN0
KTsKLSAgICBzdGF0aWMgSlNXcmFwcGFibGUqIHVud3JhcChKU0NvbnRleHRSZWYgY29udGV4dCwg
SlNWYWx1ZVJlZiB2YWx1ZSk7Ci0KLSAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplKEpTQ29udGV4
dFJlZiwgSlNPYmplY3RSZWYpOwotICAgIHN0YXRpYyB2b2lkIGZpbmFsaXplKEpTT2JqZWN0UmVm
KTsKLX07Ci0KLWlubGluZSBKU1ZhbHVlUmVmIHRvSlMoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpT
V3JhcHBhYmxlKiBpbXBsKQotewotICAgIHJldHVybiBKU1dyYXBwZXI6OndyYXAoY29udGV4dCwg
aW1wbCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdUUgotCi0jZW5kaWYgLy8gSlNXcmFwcGVyX2gK
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvTGF5b3V0VGVzdENvbnRyb2xsZXIuaWRsIGIvV2ViS2l0VG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29udHJvbGxlci5pZGwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdkYTJlODEyODAxODA0N2JmYzM1MTFlMDUz
ZjE5ZmM3ZDA3MmE5NWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvV2ViS2l0VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9MYXlvdXRUZXN0Q29udHJvbGxlci5pZGwKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotbW9kdWxlIFdUUiB7Ci0KLSAgICBpbnRlcmZhY2UgTGF5b3V0VGVzdENv
bnRyb2xsZXIgewotICAgICAgICB2b2lkIGR1bXBBc1RleHQoKTsKLSAgICAgICAgdm9pZCBkdW1w
U3RhdHVzQ2FsbGJhY2tzKCk7Ci0KLSAgICAgICAgdm9pZCB3YWl0VW50aWxEb25lKCk7Ci0gICAg
ICAgIHZvaWQgbm90aWZ5RG9uZSgpOwotCi0gICAgICAgIC8vIFJlcGFpbnQgdGVzdGluZwotICAg
ICAgICB2b2lkIHRlc3RSZXBhaW50KCk7Ci0gICAgICAgIHZvaWQgcmVwYWludFN3ZWVwSG9yaXpv
bnRhbGx5KCk7Ci0gICAgICAgIHZvaWQgZGlzcGxheSgpOwotCi0gICAgICAgIC8vIEFuaW1hdGlv
biB0ZXN0aW5nCi0gICAgICAgIGludCBudW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMoKTsKLSAgICAg
ICAgYm9vbGVhbiBwYXVzZUFuaW1hdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZChpbiBET01TdHJp
bmcgYW5pbWF0aW9uTmFtZSwgaW4gZG91YmxlIHRpbWUsIGluIERPTVN0cmluZyBlbGVtZW50SWQp
OwotICAgIH07Ci0KLX0KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcCBiL1dlYktpdFRvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAppbmRleCBm
MTI1ZmZkNDk5MDE0MjgyOGMxNDVjMGRmYjU3MjUwNmEzODE3MzlmLi43NjM1MjM4OTg0YWU2MTBh
ZWU1ZDdjODZhNzcxOTMyMGM4ZTdhN2NiIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKKysrIGIvV2Vi
S2l0VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBh
Z2UuY3BwCkBAIC0xNDYsNyArMTQ2LDcgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmR1bXAo
KQogewogICAgIEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5sYXlvdXRUZXN0Q29udHJvbGxlcigp
LT5pbnZhbGlkYXRlV2FpdFRvRHVtcFdhdGNoZG9nKCk7CiAKLSAgICBpZiAoSW5qZWN0ZWRCdW5k
bGU6OnNoYXJlZCgpLmxheW91dFRlc3RDb250cm9sbGVyKCktPnNob3VsZER1bXBBc1RleHQoKSkg
eworICAgIGlmIChJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkubGF5b3V0VGVzdENvbnRyb2xsZXIo
KS0+ZHVtcEFzVGV4dCgpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBTdXBwb3J0IGR1bXBpbmcgc3Vi
ZnJhbWVzIHdoZW4gbGF5b3V0VGVzdENvbnRyb2xsZXIoKS0+ZHVtcENoaWxkRnJhbWVzQXNUZXh0
KCkgaXMgdHJ1ZS4KICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGlubmVyVGV4dChB
ZG9wdFdLLCBXS0J1bmRsZUZyYW1lQ29weUlubmVyVGV4dChXS0J1bmRsZVBhZ2VHZXRNYWluRnJh
bWUobV9wYWdlKSkpOwogICAgICAgICBPd25QdHI8VmVjdG9yPGNoYXI+ID4gdXRmOElubmVyVGV4
dCA9IFdLU3RyaW5nVG9VVEY4KGlubmVyVGV4dC5nZXQoKSk7CkBAIC0yMTMsNyArMjEzLDcgQEAg
dm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmFkZE1lc3NhZ2VUb0NvbnNvbGUoV0tTdHJpbmdSZWYg
bWVzc2FnZSwgdWludDMyX3QgbGluZU4KIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnNldFN0
YXR1c2JhclRleHQoV0tTdHJpbmdSZWYgc3RhdHVzYmFyVGV4dCkKIHsKLSAgICBpZiAoIUluamVj
dGVkQnVuZGxlOjpzaGFyZWQoKS5sYXlvdXRUZXN0Q29udHJvbGxlcigpLT5zaG91bGREdW1wU3Rh
dHVzQ2FsbGJhY2tzKCkpCisgICAgaWYgKCFJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkubGF5b3V0
VGVzdENvbnRyb2xsZXIoKS0+ZHVtcFN0YXR1c0NhbGxiYWNrcygpKQogICAgICAgICByZXR1cm47
CiAKICAgICBPd25QdHI8VmVjdG9yPGNoYXI+ID4gdXRmOFN0YXR1c2JhclRleHQgPSBXS1N0cmlu
Z1RvVVRGOChzdGF0dXNiYXJUZXh0KTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvV2ViS2l0
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5jcHAKaW5kZXggZmFmYTFlM2ExN2M0YjM4ODgyZjIyZDg4MjVhMjk5MDk3YzBmOTkzNi4uNWM1
ZDNkNDVhZGM5ZTUzMDk4MzliNDc2MDY4ZjY4Nzg3ZGFhMmE0ZCAxMDA2NDQKLS0tIGEvV2ViS2l0
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5jcHAKKysrIGIvV2ViS2l0VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTI0LDEwICsyNCw5IEBACiAgKi8KIAogI2luY2x1
ZGUgIkxheW91dFRlc3RDb250cm9sbGVyLmgiCi0KICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZS5o
IgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUGFnZS5oIgotI2luY2x1ZGUgIkpTTGF5b3V0VGVz
dENvbnRyb2xsZXIuaCIKKwogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUmV0YWluUHRyLmg+
CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0J1bmRsZUZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9X
S1JldGFpblB0ci5oPgpAQCAtNTUsMTEgKzU0LDYgQEAgTGF5b3V0VGVzdENvbnRyb2xsZXI6On5M
YXlvdXRUZXN0Q29udHJvbGxlcigpCiB7CiB9CiAKLUpTQ2xhc3NSZWYgTGF5b3V0VGVzdENvbnRy
b2xsZXI6OndyYXBwZXJDbGFzcygpCi17Ci0gICAgcmV0dXJuIEpTTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OmxheW91dFRlc3RDb250cm9sbGVyQ2xhc3MoKTsKLX0KLQogLy8gVGhpcyBpcyBsb3dlciB0
aGFuIER1bXBSZW5kZXJUcmVlJ3MgdGltZW91dCwgdG8gbWFrZSBpdCBlYXNpZXIgdG8gd29yayB0
aHJvdWdoIHRoZSBmYWlsdXJlcwogLy8gRXZlbnR1YWxseSBpdCBzaG91bGQgYmUgY2hhbmdlZCB0
byBtYXRjaC4KIHN0YXRpYyBjb25zdCBDRlRpbWVJbnRlcnZhbCB3YWl0VG9EdW1wV2F0Y2hkb2dJ
bnRlcnZhbCA9IDYuMDsKQEAgLTgyLDcgKzc2LDcgQEAgc3RhdGljIHZvaWQgd2FpdFVudGlsRG9u
ZVdhdGNoZG9nRmlyZWQoQ0ZSdW5Mb29wVGltZXJSZWYgdGltZXIsIHZvaWQqIGluZm8pCiAgICAg
SW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmxheW91dFRlc3RDb250cm9sbGVyKCktPndhaXRUb0R1
bXBXYXRjaGRvZ1RpbWVyRmlyZWQoKTsKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
d2FpdFVudGlsRG9uZSgpCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRXYWl0VG9EdW1w
KCkKIHsKICAgICBtX3dhaXRUb0R1bXAgPSB0cnVlOwogICAgIGlmICghbV93YWl0VG9EdW1wV2F0
Y2hkb2cpIHsKQEAgLTEyNCwxMiArMTE4LDEzMSBAQCBib29sIExheW91dFRlc3RDb250cm9sbGVy
OjpwYXVzZUFuaW1hdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZChKU1N0cmluZ1JlZiBhbmltYQog
ICAgIHJldHVybiBXS0J1bmRsZUZyYW1lUGF1c2VBbmltYXRpb25PbkVsZW1lbnRXaXRoSWQobWFp
bkZyYW1lLCBuYW1lV0suZ2V0KCksIGlkV0suZ2V0KCksIHRpbWUpOwogfQogCitzdGF0aWMgSlNW
YWx1ZVJlZiBkaXNwbGF5Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVm
IGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwg
Y29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQorewor
ICAgIC8vIEhhcyBtYWMgJiB3aW5kb3dzIGltcGxlbWVudGF0aW9uCisgICAgTGF5b3V0VGVzdENv
bnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+
KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CisgICAgY29udHJvbGxlci0+ZGlzcGxh
eSgpOworCisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworfQorCitz
dGF0aWMgSlNWYWx1ZVJlZiBkdW1wQXNUZXh0Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQs
IEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJn
dW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhj
ZXB0aW9uKQoreworICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250cm9sbGVyID0gc3RhdGlj
X2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVj
dCkpOworICAgIGNvbnRyb2xsZXItPnNldER1bXBBc1RleHQodHJ1ZSk7CisgICAgcmV0dXJuIEpT
VmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworfQorCitzdGF0aWMgSlNWYWx1ZVJlZiBkdW1w
U3RhdHVzQ2FsbGJhY2tzQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVm
IGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwg
Y29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQorewor
ICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8TGF5b3V0
VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOworICAgIGNv
bnRyb2xsZXItPnNldER1bXBTdGF0dXNDYWxsYmFja3ModHJ1ZSk7CisgICAgcmV0dXJuIEpTVmFs
dWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworfQorCitzdGF0aWMgSlNWYWx1ZVJlZiB3YWl0VW50
aWxEb25lQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9u
LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNW
YWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIExheW91
dFRlc3RDb250cm9sbGVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8TGF5b3V0VGVzdENvbnRy
b2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOworICAgIGNvbnRyb2xsZXIt
PnNldFdhaXRUb0R1bXAoKTsKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4
dCk7Cit9CisKK3N0YXRpYyBKU1ZhbHVlUmVmIG5vdGlmeURvbmVDYWxsYmFjayhKU0NvbnRleHRS
ZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3Qs
IHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1Zh
bHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xs
ZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0
ZSh0aGlzT2JqZWN0KSk7CisgICAgY29udHJvbGxlci0+bm90aWZ5RG9uZSgpOworICAgIHJldHVy
biBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKK30KKworc3RhdGljIEpTVmFsdWVSZWYg
bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpT
T2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1l
bnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0
aW9uKQoreworICAgIGlmIChhcmd1bWVudENvdW50KQorICAgICAgICByZXR1cm4gSlNWYWx1ZU1h
a2VVbmRlZmluZWQoY29udGV4dCk7CisKKyAgICBMYXlvdXRUZXN0Q29udHJvbGxlciogY29udHJv
bGxlciA9IHN0YXRpY19jYXN0PExheW91dFRlc3RDb250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2
YXRlKHRoaXNPYmplY3QpKTsKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwg
Y29udHJvbGxlci0+bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCkpOworfQorCitzdGF0aWMgSlNW
YWx1ZVJlZiBwYXVzZUFuaW1hdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZENhbGxiYWNrKEpTQ29u
dGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09i
amVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10s
IEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBpZiAoYXJndW1lbnRDb3VudCAhPSAzKQor
ICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CisKKyAgICBKU1Jl
dGFpblB0cjxKU1N0cmluZ1JlZj4gYW5pbWF0aW9uTmFtZShBZG9wdCwgSlNWYWx1ZVRvU3RyaW5n
Q29weShjb250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2VwdGlvbikpOworICAgIEFTU0VSVCghKmV4
Y2VwdGlvbik7CisgICAgZG91YmxlIHRpbWUgPSBKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJn
dW1lbnRzWzFdLCBleGNlcHRpb24pOworICAgIEFTU0VSVCghKmV4Y2VwdGlvbik7CisgICAgSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGVsZW1lbnRJZChBZG9wdCwgSlNWYWx1ZVRvU3RyaW5nQ29w
eShjb250ZXh0LCBhcmd1bWVudHNbMl0sIGV4Y2VwdGlvbikpOworICAgIEFTU0VSVCghKmV4Y2Vw
dGlvbik7CisKKyAgICBMYXlvdXRUZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19j
YXN0PExheW91dFRlc3RDb250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3Qp
KTsKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VCb29sZWFuKGNvbnRleHQsIGNvbnRyb2xsZXItPnBh
dXNlQW5pbWF0aW9uQXRUaW1lT25FbGVtZW50V2l0aElkKGFuaW1hdGlvbk5hbWUuZ2V0KCksIHRp
bWUsIGVsZW1lbnRJZC5nZXQoKSkpOworfQorCitzdGF0aWMgSlNWYWx1ZVJlZiByZXBhaW50U3dl
ZXBIb3Jpem9udGFsbHlDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYg
ZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBj
b25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7Cisg
ICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRU
ZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CisgICAgY29u
dHJvbGxlci0+c2V0VGVzdFJlcGFpbnRTd2VlcEhvcml6b250YWxseSgpOworICAgIHJldHVybiBK
U1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKK30KKworc3RhdGljIEpTVmFsdWVSZWYgdGVz
dFJlcGFpbnRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rp
b24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBK
U1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgTGF5
b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29u
dHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CisgICAgY29udHJvbGxl
ci0+c2V0VGVzdFJlcGFpbnQoKTsKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29u
dGV4dCk7Cit9CisKKy8vIE9iamVjdCBGaW5hbGl6YXRpb24KKworc3RhdGljIHZvaWQgbGF5b3V0
VGVzdENvbnRyb2xsZXJPYmplY3RGaW5hbGl6ZShKU09iamVjdFJlZiBvYmplY3QpCit7CisgICAg
TGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0
Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZShvYmplY3QpKTsKKyAgICBjb250cm9sbGVy
LT5kZXJlZigpOworfQorCiAvLyBPYmplY3QgQ3JlYXRpb24KIAogdm9pZCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6bWFrZVdpbmRvd09iamVjdChKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RS
ZWYgd2luZG93T2JqZWN0LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IGxheW91dFRlc3RDb250b2xsZXJTdHIoQWRvcHQsIEpTU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKCJsYXlvdXRUZXN0Q29udHJvbGxlciIpKTsKLSAgICBKU09iamVj
dFNldFByb3BlcnR5KGNvbnRleHQsIHdpbmRvd09iamVjdCwgbGF5b3V0VGVzdENvbnRvbGxlclN0
ci5nZXQoKSwgSlNXcmFwcGVyOjp3cmFwKGNvbnRleHQsIHRoaXMpLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlLCBleGNlcHRpb24p
OworICAgIHJlZigpOworCisgICAgSlNDbGFzc1JlZiBjbGFzc1JlZiA9IGdldEpTQ2xhc3MoKTsK
KyAgICBKU1ZhbHVlUmVmIGxheW91dFRlc3RDb250b2xsZXJPYmplY3QgPSBKU09iamVjdE1ha2Uo
Y29udGV4dCwgY2xhc3NSZWYsIHRoaXMpOworICAgIEpTQ2xhc3NSZWxlYXNlKGNsYXNzUmVmKTsK
KworICAgIEpTT2JqZWN0U2V0UHJvcGVydHkoY29udGV4dCwgd2luZG93T2JqZWN0LCBsYXlvdXRU
ZXN0Q29udG9sbGVyU3RyLmdldCgpLCBsYXlvdXRUZXN0Q29udG9sbGVyT2JqZWN0LCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlLCBl
eGNlcHRpb24pOworfQorCitKU0NsYXNzUmVmIExheW91dFRlc3RDb250cm9sbGVyOjpnZXRKU0Ns
YXNzKCkKK3sKKyAgICBzdGF0aWMgSlNTdGF0aWNGdW5jdGlvbiogc3RhdGljRnVuY3Rpb25zID0g
TGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucygpOworICAgIHN0YXRpYyBKU0Ns
YXNzRGVmaW5pdGlvbiBjbGFzc0RlZmluaXRpb24gPSB7CisgICAgICAgIDAsIGtKU0NsYXNzQXR0
cmlidXRlTm9uZSwgIkxheW91dFRlc3RDb250cm9sbGVyIiwgMCwgMCwgc3RhdGljRnVuY3Rpb25z
LAorICAgICAgICAwLCBsYXlvdXRUZXN0Q29udHJvbGxlck9iamVjdEZpbmFsaXplLCAwLCAwLCAw
LCAwLCAwLCAwLCAwLCAwLCAwCisgICAgfTsKKworICAgIHJldHVybiBKU0NsYXNzQ3JlYXRlKCZj
bGFzc0RlZmluaXRpb24pOworfQorCitKU1N0YXRpY0Z1bmN0aW9uKiBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c3RhdGljRnVuY3Rpb25zKCkKK3sKKyAgICBzdGF0aWMgSlNTdGF0aWNGdW5jdGlvbiBz
dGF0aWNGdW5jdGlvbnNbXSA9IHsKKyAgICAgICAgeyAiZGlzcGxheSIsIGRpc3BsYXlDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAorICAgICAgICB7ICJkdW1wQXNUZXh0IiwgZHVtcEFzVGV4dENhbGxiYWNrLCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVs
ZXRlIH0sCisgICAgICAgIHsgImR1bXBTdGF0dXNDYWxsYmFja3MiLCBkdW1wU3RhdHVzQ2FsbGJh
Y2tzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAibm90aWZ5RG9uZSIsIG5vdGlmeURvbmVD
YWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmli
dXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJudW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMiLCBu
dW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJwYXVz
ZUFuaW1hdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZCIsIHBhdXNlQW5pbWF0aW9uQXRUaW1lT25F
bGVtZW50V2l0aElkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAicmVwYWludFN3ZWVwSG9y
aXpvbnRhbGx5IiwgcmVwYWludFN3ZWVwSG9yaXpvbnRhbGx5Q2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAg
ICAgICAgeyAidGVzdFJlcGFpbnQiLCB0ZXN0UmVwYWludENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAg
ICAgIHsgIndhaXRVbnRpbERvbmUiLCB3YWl0VW50aWxEb25lQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAg
ICAgICAgeyAwLCAwLCAwIH0KKyAgICB9OworCisgICAgcmV0dXJuIHN0YXRpY0Z1bmN0aW9uczsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9XZWJLaXRU
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVy
LmgKaW5kZXggZjk1ODVhMzBiYzA1OThiMmYxYzljNjM5MzNmYmZhOGViNDllODBmZS4uYTllOWZm
NzkwZDA5ZGY3MDkyMDU1MzQyMGU2NmRiYzk0MGYyZTc1NyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5o
CisrKyBiL1dlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0
VGVzdENvbnRyb2xsZXIuaApAQCAtMjYsNDMgKzI2LDQwIEBACiAjaWZuZGVmIExheW91dFRlc3RD
b250cm9sbGVyX2gKICNkZWZpbmUgTGF5b3V0VGVzdENvbnRyb2xsZXJfaAogCi0jaW5jbHVkZSAi
SlNXcmFwcGFibGUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5o
PgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8c3RyaW5nPgogCiBuYW1l
c3BhY2UgV1RSIHsKIAotY2xhc3MgTGF5b3V0VGVzdENvbnRyb2xsZXIgOiBwdWJsaWMgSlNXcmFw
cGFibGUgeworY2xhc3MgTGF5b3V0VGVzdENvbnRyb2xsZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxM
YXlvdXRUZXN0Q29udHJvbGxlcj4gewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPExh
eW91dFRlc3RDb250cm9sbGVyPiBjcmVhdGUoY29uc3Qgc3RkOjpzdHJpbmcmIHRlc3RQYXRoT3JV
UkwpOwogICAgIH5MYXlvdXRUZXN0Q29udHJvbGxlcigpOwogCi0gICAgLy8gSlNXcmFwcGFibGUK
LSAgICBKU0NsYXNzUmVmIHdyYXBwZXJDbGFzcygpOwotCiAgICAgdm9pZCBtYWtlV2luZG93T2Jq
ZWN0KEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiB3aW5kb3dPYmplY3QsIEpTVmFs
dWVSZWYqIGV4Y2VwdGlvbik7CiAKLSAgICBib29sIHNob3VsZER1bXBBc1RleHQoKSBjb25zdCB7
IHJldHVybiBtX2R1bXBBc1RleHQ7IH0KLSAgICB2b2lkIGR1bXBBc1RleHQoKSB7IG1fZHVtcEFz
VGV4dCA9IHRydWU7IH0KKyAgICBib29sIGR1bXBBc1RleHQoKSBjb25zdCB7IHJldHVybiBtX2R1
bXBBc1RleHQ7IH0KKyAgICB2b2lkIHNldER1bXBBc1RleHQoYm9vbCBkdW1wQXNUZXh0KSB7IG1f
ZHVtcEFzVGV4dCA9IGR1bXBBc1RleHQ7IH0KIAotICAgIGJvb2wgc2hvdWxkRHVtcFN0YXR1c0Nh
bGxiYWNrcygpIGNvbnN0IHsgcmV0dXJuIG1fZHVtcFN0YXR1c0NhbGxiYWNrczsgfQotICAgIHZv
aWQgZHVtcFN0YXR1c0NhbGxiYWNrcygpIHsgbV9kdW1wU3RhdHVzQ2FsbGJhY2tzID0gdHJ1ZTsg
fQorICAgIGJvb2wgZHVtcFN0YXR1c0NhbGxiYWNrcygpIGNvbnN0IHsgcmV0dXJuIG1fZHVtcFN0
YXR1c0NhbGxiYWNrczsgfQorICAgIHZvaWQgc2V0RHVtcFN0YXR1c0NhbGxiYWNrcyhib29sIGR1
bXBTdGF0dXNDYWxsYmFja3MpIHsgbV9kdW1wU3RhdHVzQ2FsbGJhY2tzID0gZHVtcFN0YXR1c0Nh
bGxiYWNrczsgfQogCiAgICAgYm9vbCB3YWl0VG9EdW1wKCkgY29uc3QgeyByZXR1cm4gbV93YWl0
VG9EdW1wOyB9CisgICAgdm9pZCBzZXRXYWl0VG9EdW1wKCk7CiAgICAgdm9pZCB3YWl0VG9EdW1w
V2F0Y2hkb2dUaW1lckZpcmVkKCk7CiAgICAgdm9pZCBpbnZhbGlkYXRlV2FpdFRvRHVtcFdhdGNo
ZG9nKCk7Ci0gICAgdm9pZCB3YWl0VW50aWxEb25lKCk7CiAgICAgdm9pZCBub3RpZnlEb25lKCk7
Ci0KLSAgICB2b2lkIHRlc3RSZXBhaW50KCkgeyBtX3Rlc3RSZXBhaW50ID0gdHJ1ZTsgfQotICAg
IHZvaWQgcmVwYWludFN3ZWVwSG9yaXpvbnRhbGx5KCkgeyBtX3Rlc3RSZXBhaW50U3dlZXBIb3Jp
em9udGFsbHkgPSB0cnVlOyB9CiAgICAgdm9pZCBkaXNwbGF5KCk7CiAKICAgICB1bnNpZ25lZCBu
dW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMoKSBjb25zdDsKICAgICBib29sIHBhdXNlQW5pbWF0aW9u
QXRUaW1lT25FbGVtZW50V2l0aElkKEpTU3RyaW5nUmVmIGFuaW1hdGlvbk5hbWUsIGRvdWJsZSB0
aW1lLCBKU1N0cmluZ1JlZiBlbGVtZW50SWQpOwogCisgICAgdm9pZCBzZXRUZXN0UmVwYWludCgp
IHsgbV90ZXN0UmVwYWludCA9IHRydWU7IH0KKyAgICB2b2lkIHNldFRlc3RSZXBhaW50U3dlZXBI
b3Jpem9udGFsbHkoKSB7IG1fdGVzdFJlcGFpbnRTd2VlcEhvcml6b250YWxseSA9IHRydWU7IH0K
KwogcHJpdmF0ZToKICAgICBMYXlvdXRUZXN0Q29udHJvbGxlcihjb25zdCBzdGQ6OnN0cmluZyYg
dGVzdFBhdGhPclVSTCk7CiAKQEAgLTcyLDkgKzY5LDE0IEBAIHByaXZhdGU6CiAgICAgYm9vbCBt
X3Rlc3RSZXBhaW50OwogICAgIGJvb2wgbV90ZXN0UmVwYWludFN3ZWVwSG9yaXpvbnRhbGx5Owog
CisKICAgICBzdGQ6OnN0cmluZyBtX3Rlc3RQYXRoT3JVUkw7CiAgICAgCiAgICAgUmV0YWluUHRy
PENGUnVuTG9vcFRpbWVyUmVmPiBtX3dhaXRUb0R1bXBXYXRjaGRvZzsKKworICAgIHN0YXRpYyBK
U0NsYXNzUmVmIGdldEpTQ2xhc3MoKTsKKyAgICBzdGF0aWMgSlNTdGF0aWNWYWx1ZSogc3RhdGlj
VmFsdWVzKCk7CisgICAgc3RhdGljIEpTU3RhdGljRnVuY3Rpb24qIHN0YXRpY0Z1bmN0aW9ucygp
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9XZWJL
aXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1dlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IGNiMWY4Mjc1MDYyNGI4NzQ3MTkxYzgwNzZmNzdkMWRhNzNm
ZmMwZmYuLjVlNzM5YTA2ODllZTBmOGRjYjc2NjlkZGJmZjNmZDVmMmY3Njk2ZTMgMTAwNjQ0Ci0t
LSBhL1dlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2Vi
S2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02LDIwICs2LDYgQEAK
IAlvYmplY3RWZXJzaW9uID0gNDU7CiAJb2JqZWN0cyA9IHsKIAotLyogQmVnaW4gUEJYQWdncmVn
YXRlVGFyZ2V0IHNlY3Rpb24gKi8KLQkJQkM5NTJENzcxMUYzQkY1RDAwMzM5OEI0IC8qIERlcml2
ZWQgU291cmNlcyAqLyA9IHsKLQkJCWlzYSA9IFBCWEFnZ3JlZ2F0ZVRhcmdldDsKLQkJCWJ1aWxk
Q29uZmlndXJhdGlvbkxpc3QgPSBCQzk1MkQ3RDExRjNCRjZBMDAzMzk4QjQgLyogQnVpbGQgY29u
ZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkRlcml2ZWQgU291cmNlcyIg
Ki87Ci0JCQlidWlsZFBoYXNlcyA9ICgKLQkJCQlCQzk1MkQ4MjExRjNCRjc4MDAzMzk4QjQgLyog
R2VuZXJhdGUgRGVyaXZlZCBTb3VyY2VzICovLAotCQkJKTsKLQkJCWRlcGVuZGVuY2llcyA9ICgK
LQkJCSk7Ci0JCQluYW1lID0gIkRlcml2ZWQgU291cmNlcyI7Ci0JCQlwcm9kdWN0TmFtZSA9ICJE
ZXJpdmVkIFNvdXJjZXMiOwotCQl9OwotLyogRW5kIFBCWEFnZ3JlZ2F0ZVRhcmdldCBzZWN0aW9u
ICovCi0KIC8qIEJlZ2luIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCiAJCTY1MTBBNzgyMTFFQzY0
MzgwMDQxMDg2NyAvKiBBSEVNX19fXy5UVEYgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDY1MTBBNzc3MTFFQzY0MzgwMDQxMDg2NyAvKiBBSEVNX19fXy5U
VEYgKi87IH07CiAJCTY1MTBBNzgzMTFFQzY0MzgwMDQxMDg2NyAvKiBDb2xvckJpdHMudHRmIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTEwQTc3ODEx
RUM2NDM4MDA0MTA4NjcgLyogQ29sb3JCaXRzLnR0ZiAqLzsgfTsKQEAgLTQzLDggKzI5LDYgQEAK
IAkJQkM3OTM0QUMxMTkwNjU4QzAwNUVBOEUyIC8qIFdlYktpdDIuZnJhbWV3b3JrIGluIEZyYW1l
d29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3OTM0QUIxMTkwNjU4
QzAwNUVBOEUyIC8qIFdlYktpdDIuZnJhbWV3b3JrICovOyB9OwogCQlCQzc5MzRFODExOTA2ODQ2
MDA1RUE4RTIgLyogUGxhdGZvcm1XZWJWaWV3TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3OTM0RTcxMTkwNjg0NjAwNUVBOEUyIC8qIFBsYXRm
b3JtV2ViVmlld01hYy5tbSAqLzsgfTsKIAkJQkM4Qzc5NUMxMUQyNzg1RDAwNDUzNUExIC8qIFRl
c3RDb250cm9sbGVyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkM4Qzc5NUIxMUQyNzg1RDAwNDUzNUExIC8qIFRlc3RDb250cm9sbGVyTWFjLm1t
ICovOyB9OwotCQlCQzk1MkMwRDExRjNCOTY1MDAzMzk4QjQgLyogSlNXcmFwcGVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDOTUyQzBDMTFGM0I5
NjUwMDMzOThCNCAvKiBKU1dyYXBwZXIuY3BwICovOyB9OwotCQlCQzk1MkYxRjExRjNDNjUyMDAz
Mzk4QjQgLyogSlNMYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzk1MkYxRDExRjNDNjUyMDAzMzk4QjQgLyogSlNM
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAgKi87IH07CiAJCUJDQzk5N0E0MTFEM0M4RjYwMDE3QkNB
MiAvKiBJbmplY3RlZEJ1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQ0M5OTdBMDExRDNDOEY2MDAxN0JDQTIgLyogSW5qZWN0ZWRCdW5kbGUu
Y3BwICovOyB9OwogCQlCQ0M5OTdBNTExRDNDOEY2MDAxN0JDQTIgLyogSW5qZWN0ZWRCdW5kbGVQ
YWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
Qzk5N0EyMTFEM0M4RjYwMDE3QkNBMiAvKiBJbmplY3RlZEJ1bmRsZVBhZ2UuY3BwICovOyB9Owog
CQlCQ0M5OTgxODExRDNGNTFFMDAxN0JDQTIgLyogTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDOTk4MTcxMUQz
RjUxRTAwMTdCQ0EyIC8qIExheW91dFRlc3RDb250cm9sbGVyLmNwcCAqLzsgfTsKQEAgLTYxLDEz
ICs0NSw2IEBACiAJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IEJDMjUxODYxMTFEMTVENTQwMDJF
QkMwMTsKIAkJCXJlbW90ZUluZm8gPSBJbmplY3RlZEJ1bmRsZTsKIAkJfTsKLQkJQkM5NTJFRDYx
MUYzQzM4QjAwMzM5OEI0IC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKLQkJCWlzYSA9
IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKLQkJCWNvbnRhaW5lclBvcnRhbCA9IDA4RkI3NzkzRkU4
NDE1NURDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLzsKLQkJCXByb3h5VHlwZSA9IDE7Ci0J
CQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IEJDOTUyRDc3MTFGM0JGNUQwMDMzOThCNDsKLQkJCXJl
bW90ZUluZm8gPSAiRGVyaXZlZCBTb3VyY2VzIjsKLQkJfTsKIC8qIEVuZCBQQlhDb250YWluZXJJ
dGVtUHJveHkgc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rpb24g
Ki8KQEAgLTEwMSwxNCArNzgsNiBAQAogCQlCQzc5MzRERDExOTA2NkVDMDA1RUE4RTIgLyogUGxh
dGZvcm1XZWJWaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3Jt
V2ViVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzc5MzRFNzExOTA2ODQ2
MDA1RUE4RTIgLyogUGxhdGZvcm1XZWJWaWV3TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gUGxhdGZvcm1XZWJWaWV3TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlCQzhDNzk1QjExRDI3ODVEMDA0NTM1QTEgLyogVGVzdENvbnRyb2xsZXJN
YWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBUZXN0Q29udHJv
bGxlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkM5NTJDMEIxMUYzQjk2
NTAwMzM5OEI0IC8qIEpTV3JhcHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU1dyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkM5NTJDMEMxMUYz
Qjk2NTAwMzM5OEI0IC8qIEpTV3JhcHBlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU1dyYXBwZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlC
Qzk1MkMwRTExRjNCOTdCMDAzMzk4QjQgLyogSlNXcmFwcGFibGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNXcmFwcGFibGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJQkM5NTJFQzUxMUYzQzEwRjAwMzM5OEI0IC8qIERlcml2ZWRTb3VyY2VzLm1ha2UgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gRGVyaXZlZFNvdXJjZXMubWFrZTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJQkM5NTJFRDIxMUYzQzI5RjAwMzM5OEI0IC8qIExheW91dFRlc3RDb250
cm9sbGVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMYXlvdXRUZXN0Q29udHJvbGxlci5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDOTUyRUQzMTFGM0MzMTgwMDMzOThC
NCAvKiBDb2RlR2VuZXJhdG9yVGVzdFJ1bm5lci5wbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnBl
cmw7IHBhdGggPSBDb2RlR2VuZXJhdG9yVGVzdFJ1bm5lci5wbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQkM5NTJGMUQxMUYzQzY1MjAwMzM5OEI0IC8qIEpTTGF5b3V0VGVzdENvbnRy
b2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNMYXlvdXRU
ZXN0Q29udHJvbGxlci5jcHA7IHBhdGggPSAuLi8uLi9XZWJLaXRCdWlsZC9EZWJ1Zy9EZXJpdmVk
U291cmNlcy9XZWJLaXRUZXN0UnVubmVyL0pTTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gU09VUkNFX1JPT1Q7IH07Ci0JCUJDOTUyRjFFMTFGM0M2NTIwMDMzOThCNCAvKiBK
U0xheW91dFRlc3RDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IEpTTGF5b3V0VGVzdENvbnRyb2xsZXIuaDsgcGF0aCA9IC4uLy4uL1dlYktpdEJ1aWxkL0RlYnVn
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdFRlc3RSdW5uZXIvSlNMYXlvdXRUZXN0Q29udHJvbGxlci5o
OyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCUJDQzk5N0EwMTFEM0M4RjYwMDE3QkNB
MiAvKiBJbmplY3RlZEJ1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBJbmplY3RlZEJ1bmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJD
Qzk5N0ExMTFEM0M4RjYwMDE3QkNBMiAvKiBJbmplY3RlZEJ1bmRsZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCQ0M5OTdBMjExRDNDOEY2MDAxN0JDQTIgLyogSW5qZWN0ZWRCdW5kbGVQYWdl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxl
UGFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDgsNyArMTE3LDYgQEAK
IAkJMDhGQjc3OTRGRTg0MTU1REMwMkFBQzA3IC8qIFdlYktpdFRlc3RSdW5uZXIgKi8gPSB7CiAJ
CQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCUJDOTUyRUM1MTFGM0MxMEYw
MDMzOThCNCAvKiBEZXJpdmVkU291cmNlcy5tYWtlICovLAogCQkJCTA4RkI3Nzk1RkU4NDE1NURD
MDJBQUMwNyAvKiBTb3VyY2UgKi8sCiAJCQkJQkMyNTE4MzUxMUQxNTcxRDAwMkVCQzAxIC8qIElu
amVjdGVkQnVuZGxlICovLAogCQkJCUJDNzkzNDAxMTE4RjdDOEEwMDVFQThFMiAvKiBDb25maWd1
cmF0aW9ucyAqLywKQEAgLTIwMyw3ICsxNzEsNiBAQAogCQlCQzI1MTgzNTExRDE1NzFEMDAyRUJD
MDEgLyogSW5qZWN0ZWRCdW5kbGUgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAotCQkJCUJDOTUyQzBBMTFGM0I5MzkwMDMzOThCNCAvKiBCaW5kaW5ncyAqLywKIAkJ
CQk2NUVCODU5RTExRUM2N0NDMDAzNEQzMDAgLyogbWFjICovLAogCQkJCTY1RUI4NTlEMTFFQzY3
Q0MwMDM0RDMwMCAvKiBBY3RpdmF0ZUZvbnRzLmggKi8sCiAJCQkJQkNDOTk3QTAxMUQzQzhGNjAw
MTdCQ0EyIC8qIEluamVjdGVkQnVuZGxlLmNwcCAqLywKQEAgLTI1OCwyOSArMjI1LDYgQEAKIAkJ
CXBhdGggPSBDb25maWd1cmF0aW9uczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07
Ci0JCUJDOTUyQzBBMTFGM0I5MzkwMDMzOThCNCAvKiBCaW5kaW5ncyAqLyA9IHsKLQkJCWlzYSA9
IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJQkM5NTJEM0ExMUYzQkYxRjAwMzM5OEI0
IC8qIERlcml2ZWQgU291cmNlcyAqLywKLQkJCQlCQzk1MkVEMzExRjNDMzE4MDAzMzk4QjQgLyog
Q29kZUdlbmVyYXRvclRlc3RSdW5uZXIucG0gKi8sCi0JCQkJQkM5NTJDMEUxMUYzQjk3QjAwMzM5
OEI0IC8qIEpTV3JhcHBhYmxlLmggKi8sCi0JCQkJQkM5NTJDMEMxMUYzQjk2NTAwMzM5OEI0IC8q
IEpTV3JhcHBlci5jcHAgKi8sCi0JCQkJQkM5NTJDMEIxMUYzQjk2NTAwMzM5OEI0IC8qIEpTV3Jh
cHBlci5oICovLAotCQkJCUJDOTUyRUQyMTFGM0MyOUYwMDMzOThCNCAvKiBMYXlvdXRUZXN0Q29u
dHJvbGxlci5pZGwgKi8sCi0JCQkpOwotCQkJcGF0aCA9IEJpbmRpbmdzOwotCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKLQkJfTsKLQkJQkM5NTJEM0ExMUYzQkYxRjAwMzM5OEI0IC8qIERlcml2
ZWQgU291cmNlcyAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0J
CQkJQkM5NTJGMUQxMUYzQzY1MjAwMzM5OEI0IC8qIEpTTGF5b3V0VGVzdENvbnRyb2xsZXIuY3Bw
ICovLAotCQkJCUJDOTUyRjFFMTFGM0M2NTIwMDMzOThCNCAvKiBKU0xheW91dFRlc3RDb250cm9s
bGVyLmggKi8sCi0JCQkpOwotCQkJbmFtZSA9ICJEZXJpdmVkIFNvdXJjZXMiOwotCQkJcGF0aCA9
IC4uOwotCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsKIC8qIEVuZCBQQlhHcm91cCBz
ZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWE5hdGl2ZVRhcmdldCBzZWN0aW9uICovCkBAIC0zMTMs
NyArMjU3LDYgQEAKIAkJCWJ1aWxkUnVsZXMgPSAoCiAJCQkpOwogCQkJZGVwZW5kZW5jaWVzID0g
KAotCQkJCUJDOTUyRUQ3MTFGM0MzOEIwMDMzOThCNCAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICov
LAogCQkJKTsKIAkJCW5hbWUgPSBJbmplY3RlZEJ1bmRsZTsKIAkJCXByb2R1Y3ROYW1lID0gSW5q
ZWN0ZWRCdW5kbGU7CkBAIC0zMzQsNyArMjc3LDYgQEAKIAkJCXRhcmdldHMgPSAoCiAJCQkJOERE
NzZGOTYwNDg2QUE3NjAwRDk2QjVFIC8qIFdlYktpdFRlc3RSdW5uZXIgKi8sCiAJCQkJQkMyNTE4
NjExMUQxNUQ1NDAwMkVCQzAxIC8qIEluamVjdGVkQnVuZGxlICovLAotCQkJCUJDOTUyRDc3MTFG
M0JGNUQwMDMzOThCNCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJCQkpOwogCQl9OwogLyogRW5k
IFBCWFByb2plY3Qgc2VjdGlvbiAqLwpAQCAtMzYwLDIzICszMDIsNiBAQAogCQl9OwogLyogRW5k
IFBCWFJlc291cmNlc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwogCi0vKiBCZWdpbiBQQlhTaGVsbFNj
cmlwdEJ1aWxkUGhhc2Ugc2VjdGlvbiAqLwotCQlCQzk1MkQ4MjExRjNCRjc4MDAzMzk4QjQgLyog
R2VuZXJhdGUgRGVyaXZlZCBTb3VyY2VzICovID0gewotCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRC
dWlsZFBoYXNlOwotCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKLQkJCWZpbGVzID0g
KAotCQkJKTsKLQkJCWlucHV0UGF0aHMgPSAoCi0JCQkpOwotCQkJbmFtZSA9ICJHZW5lcmF0ZSBE
ZXJpdmVkIFNvdXJjZXMiOwotCQkJb3V0cHV0UGF0aHMgPSAoCi0JCQkpOwotCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7Ci0JCQlzaGVsbFBhdGggPSAvYmluL3NoOwot
CQkJc2hlbGxTY3JpcHQgPSAibWtkaXIgLXAgXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0VGVzdFJ1bm5lclwiXG5jZCBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9E
ZXJpdmVkU291cmNlcy9XZWJLaXRUZXN0UnVubmVyXCJcblxuZXhwb3J0IFdlYktpdFRlc3RSdW5u
ZXI9XCIke1NSQ1JPT1R9XCJcbmV4cG9ydCBXZWJDb3JlU2NyaXB0cz1cIiR7V0VCQ09SRV9QUklW
QVRFX0hFQURFUlNfRElSfVwiXG5cbmlmIFsgXCIke0FDVElPTn1cIiA9IFwiYnVpbGRcIiAtbyBc
IiR7QUNUSU9OfVwiID0gXCJpbnN0YWxsXCIgLW8gXCIke0FDVElPTn1cIiA9IFwiaW5zdGFsbGhk
cnNcIiBdOyB0aGVuXG4gICAgbWFrZSAtZiBcIiR7V2ViS2l0VGVzdFJ1bm5lcn0vRGVyaXZlZFNv
dXJjZXMubWFrZVwiIC1qIGAvdXNyL3NiaW4vc3lzY3RsIC1uIGh3LmF2YWlsY3B1YFxuZmlcbiI7
Ci0JCX07Ci0vKiBFbmQgUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlIHNlY3Rpb24gKi8KLQogLyog
QmVnaW4gUEJYU291cmNlc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwogCQk4REQ3NkY5OTA0ODZBQTc2
MDBEOTZCNUUgLyogU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNl
OwpAQCAtNDAwLDggKzMyNSw2IEBACiAJCQkJQkNDOTk3QTUxMUQzQzhGNjAwMTdCQ0EyIC8qIElu
amVjdGVkQnVuZGxlUGFnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0M5OTgxODExRDNGNTFF
MDAxN0JDQTIgLyogTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NjVFQjg1QTAxMUVDNjdDQzAwMzREMzAwIC8qIEFjdGl2YXRlRm9udHMubW0gaW4gU291cmNlcyAq
LywKLQkJCQlCQzk1MkMwRDExRjNCOTY1MDAzMzk4QjQgLyogSlNXcmFwcGVyLmNwcCBpbiBTb3Vy
Y2VzICovLAotCQkJCUJDOTUyRjFGMTFGM0M2NTIwMDMzOThCNCAvKiBKU0xheW91dFRlc3RDb250
cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtNDEzLDExICszMzYsNiBAQAogCQkJdGFyZ2V0
ID0gQkMyNTE4NjExMUQxNUQ1NDAwMkVCQzAxIC8qIEluamVjdGVkQnVuZGxlICovOwogCQkJdGFy
Z2V0UHJveHkgPSBCQzI1MTk0MTExRDE1RDk0MDAyRUJDMDEgLyogUEJYQ29udGFpbmVySXRlbVBy
b3h5ICovOwogCQl9OwotCQlCQzk1MkVENzExRjNDMzhCMDAzMzk4QjQgLyogUEJYVGFyZ2V0RGVw
ZW5kZW5jeSAqLyA9IHsKLQkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7Ci0JCQl0YXJnZXQg
PSBCQzk1MkQ3NzExRjNCRjVEMDAzMzk4QjQgLyogRGVyaXZlZCBTb3VyY2VzICovOwotCQkJdGFy
Z2V0UHJveHkgPSBCQzk1MkVENjExRjNDMzhCMDAzMzk4QjQgLyogUEJYQ29udGFpbmVySXRlbVBy
b3h5ICovOwotCQl9OwogLyogRW5kIFBCWFRhcmdldERlcGVuZGVuY3kgc2VjdGlvbiAqLwogCiAv
KiBCZWdpbiBYQ0J1aWxkQ29uZmlndXJhdGlvbiBzZWN0aW9uICovCkBAIC00NjQsMjcgKzM4Miw2
IEBACiAJCQl9OwogCQkJbmFtZSA9IFJlbGVhc2U7CiAJCX07Ci0JCUJDOTUyRDc4MTFGM0JGNUUw
MDMzOThCNCAvKiBEZWJ1ZyAqLyA9IHsKLQkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwot
CQkJYnVpbGRTZXR0aW5ncyA9IHsKLQkJCQlDT1BZX1BIQVNFX1NUUklQID0gTk87Ci0JCQkJR0ND
X0RZTkFNSUNfTk9fUElDID0gTk87Ci0JCQkJR0NDX09QVElNSVpBVElPTl9MRVZFTCA9IDA7Ci0J
CQkJUFJPRFVDVF9OQU1FID0gIkRlcml2ZWQgU291cmNlcyI7Ci0JCQl9OwotCQkJbmFtZSA9IERl
YnVnOwotCQl9OwotCQlCQzk1MkQ3OTExRjNCRjVFMDAzMzk4QjQgLyogUmVsZWFzZSAqLyA9IHsK
LQkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwotCQkJYnVpbGRTZXR0aW5ncyA9IHsKLQkJ
CQlDT1BZX1BIQVNFX1NUUklQID0gWUVTOwotCQkJCURFQlVHX0lORk9STUFUSU9OX0ZPUk1BVCA9
ICJkd2FyZi13aXRoLWRzeW0iOwotCQkJCUdDQ19FTkFCTEVfRklYX0FORF9DT05USU5VRSA9IE5P
OwotCQkJCVBST0RVQ1RfTkFNRSA9ICJEZXJpdmVkIFNvdXJjZXMiOwotCQkJCVpFUk9fTElOSyA9
IE5POwotCQkJfTsKLQkJCW5hbWUgPSBSZWxlYXNlOwotCQl9OwogLyogRW5kIFhDQnVpbGRDb25m
aWd1cmF0aW9uIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gWENDb25maWd1cmF0aW9uTGlzdCBzZWN0
aW9uICovCkBAIC01MTUsMTUgKzQxMiw2IEBACiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlz
aWJsZSA9IDA7CiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBSZWxlYXNlOwogCQl9Owot
CQlCQzk1MkQ3RDExRjNCRjZBMDAzMzk4QjQgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZv
ciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkRlcml2ZWQgU291cmNlcyIgKi8gPSB7Ci0JCQlpc2EgPSBY
Q0NvbmZpZ3VyYXRpb25MaXN0OwotCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKLQkJCQlCQzk1
MkQ3ODExRjNCRjVFMDAzMzk4QjQgLyogRGVidWcgKi8sCi0JCQkJQkM5NTJENzkxMUYzQkY1RTAw
MzM5OEI0IC8qIFJlbGVhc2UgKi8sCi0JCQkpOwotCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zp
c2libGUgPSAwOwotCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUmVsZWFzZTsKLQkJfTsK
IC8qIEVuZCBYQ0NvbmZpZ3VyYXRpb25MaXN0IHNlY3Rpb24gKi8KIAl9OwogCXJvb3RPYmplY3Qg
PSAwOEZCNzc5M0ZFODQxNTVEQzAyQUFDMDcgLyogUHJvamVjdCBvYmplY3QgKi87Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>