<?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>202653</bug_id>
          
          <creation_ts>2019-10-07 14:23:04 -0700</creation_ts>
          <short_desc>Add IDL for requestIdleCallback</short_desc>
          <delta_ts>2019-10-07 23:23:16 -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>DOM</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>164193</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>rakuco</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1577512</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-07 14:23:04 -0700</bug_when>
    <thetext>Add the IDL only support for requestIdleCallback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577626</commentid>
    <comment_count>1</comment_count>
      <attachid>380388</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-07 20:37:19 -0700</bug_when>
    <thetext>Created attachment 380388
Adds scaffolding</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577629</commentid>
    <comment_count>2</comment_count>
      <attachid>380388</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-10-07 20:42:54 -0700</bug_when>
    <thetext>Comment on attachment 380388
Adds scaffolding

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

r=me

&gt; Source/WebCore/ChangeLog:8
&gt; +        Added the basic scafolding for implementing requestIdleCallback disabled by default:

scaffolding</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577633</commentid>
    <comment_count>3</comment_count>
      <attachid>380391</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-07 20:55:07 -0700</bug_when>
    <thetext>Created attachment 380391
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577634</commentid>
    <comment_count>4</comment_count>
      <attachid>380391</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-07 20:55:22 -0700</bug_when>
    <thetext>Comment on attachment 380391
Patch for landing

Wait for ESS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577653</commentid>
    <comment_count>5</comment_count>
      <attachid>380400</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-07 21:49:38 -0700</bug_when>
    <thetext>Created attachment 380400
Fixed WK1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577669</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-07 23:22:48 -0700</bug_when>
    <thetext>Committed r250816: &lt;https://trac.webkit.org/changeset/250816&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577670</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-07 23:23:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/56063927&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380388</attachid>
            <date>2019-10-07 20:37:19 -0700</date>
            <delta_ts>2019-10-07 20:55:02 -0700</delta_ts>
            <desc>Adds scaffolding</desc>
            <filename>bug-202653-20191007203718.patch</filename>
            <type>text/plain</type>
            <size>51287</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MDc5NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ4IEBACisyMDE5LTEwLTA3ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBJREwgZm9yIHJlcXVlc3RJ
ZGxlQ2FsbGJhY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMjY1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZGVkIHRoZSBiYXNpYyBzY2Fmb2xkaW5nIGZvciBpbXBsZW1lbnRpbmcgcmVxdWVzdElk
bGVDYWxsYmFjayBkaXNhYmxlZCBieSBkZWZhdWx0OgorICAgICAgICBodHRwczovL3czYy5naXRo
dWIuaW8vcmVxdWVzdGlkbGVjYWxsYmFjay8KKworICAgICAgICBUaGlzIHBhdGNoIGp1c3QgYWRk
cyB0aGUgc3VwcG9ydCBmb3IgY2FsbGluZyByZXF1ZXN0SWRsZUNhbGxiYWNrIHdoaWNoIGdlbmVy
YXRlcyBhIG1vbm90b25pY2FsbHkgaW5jcmVhc2luZyBudW1iZXIuCisgICAgICAgIFRoZSBjYWxs
YmFjayBpcyBuZXZlciBjYWxsZWQgZm9yIG5vdy4KKworICAgICAgICBUZXN0czogcmVxdWVzdGlk
bGVjYWxsYmFjay9yZXF1ZXN0aWRsZWNhbGxiYWNrLWVuYWJsZWQuaHRtbAorICAgICAgICAgICAg
ICAgcmVxdWVzdGlkbGVjYWxsYmFjay9yZXF1ZXN0aWRsZWNhbGxiYWNrLWlkLmh0bWwKKyAgICAg
ICAgICAgICAgIHJlcXVlc3RpZGxlY2FsbGJhY2svcmVxdWVzdGlkbGVjYWxsYmFjay1ub3QtZW5h
YmxlZC5odG1sCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNv
dXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgICog
ZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZXF1ZXN0SWRs
ZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjYW5jZWxJZGxlQ2FsbGJh
Y2spOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGRvbS9JZGxlQ2FsbGJh
Y2tDb250cm9sbGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJZGxlQ2FsbGJhY2tD
b250cm9sbGVyOjpxdWV1ZUlkbGVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpJZGxlQ2Fs
bGJhY2tDb250cm9sbGVyOjpyZW1vdmVJZGxlQ2FsbGJhY2spOgorICAgICAgICAqIGRvbS9JZGxl
Q2FsbGJhY2tDb250cm9sbGVyLmg6IEFkZGVkLgorICAgICAgICAqIGRvbS9JZGxlRGVhZGxpbmUu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklkbGVEZWFkbGluZTo6dGltZVJlbWFpbmlu
ZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJZGxlRGVhZGxpbmU6OmRpZFRpbWVvdXQgY29u
c3QpOgorICAgICAgICAqIGRvbS9JZGxlRGVhZGxpbmUuaDogQWRkZWQuCisgICAgICAgICogZG9t
L0lkbGVEZWFkbGluZS5pZGw6IEFkZGVkLgorICAgICAgICAqIGRvbS9JZGxlUmVxdWVzdENhbGxi
YWNrLmg6IEFkZGVkLgorICAgICAgICAqIGRvbS9JZGxlUmVxdWVzdENhbGxiYWNrLmlkbDogQWRk
ZWQuCisgICAgICAgICogZG9tL0lkbGVSZXF1ZXN0T3B0aW9ucy5oOiBBZGRlZC4KKyAgICAgICAg
KiBkb20vSWRsZVJlcXVlc3RPcHRpb25zLmlkbDogQWRkZWQuCisgICAgICAgICogcGFnZS9ET01X
aW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZXF1ZXN0SWRsZUNhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6Y2FuY2VsSWRsZUNhbGxiYWNrKToK
KyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5oOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmlk
bDoKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6CisKIDIwMTktMTAtMDcgIFJvc3MgS2ly
c2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgV2lu
Q2Fpcm8gYnVpbGQgZml4IGZvciByMjUwNzU4LgpJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCShyZXZpc2lvbiAyNTA3OTQpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC02MDYsNiArNjA2LDkgQEAgSlNfQklORElOR19JRExT
ID0gXAogICAgICQoV2ViQ29yZSkvZG9tL0ZvY3VzRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUp
L2RvbS9HbG9iYWxFdmVudEhhbmRsZXJzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vSGFzaENo
YW5nZUV2ZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9kb20vSWRsZURlYWRsaW5lLmlkbCBcCisg
ICAgJChXZWJDb3JlKS9kb20vSWRsZVJlcXVlc3RDYWxsYmFjay5pZGwgXAorICAgICQoV2ViQ29y
ZSkvZG9tL0lkbGVSZXF1ZXN0T3B0aW9ucy5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0lucHV0
RXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9LZXlib2FyZEV2ZW50LmlkbCBcCiAgICAg
JChXZWJDb3JlKS9kb20vTWVzc2FnZUNoYW5uZWwuaWRsIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CShy
ZXZpc2lvbiAyNTA3OTQpCisrKyBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtODg2LDYgKzg4Niw4IEBAIGRvbS9HZW5lcmljRXZlbnRRdWV1ZS5jcHAKIGRvbS9I
YXNoQ2hhbmdlRXZlbnQuY3BwCiBkb20vSWRUYXJnZXRPYnNlcnZlci5jcHAKIGRvbS9JZFRhcmdl
dE9ic2VydmVyUmVnaXN0cnkuY3BwCitkb20vSWRsZURlYWRsaW5lLmNwcAorZG9tL0lkbGVDYWxs
YmFja0NvbnRyb2xsZXIuY3BwCiBkb20vSW5saW5lQ2xhc3NpY1NjcmlwdC5jcHAKIGRvbS9Jbmxp
bmVTdHlsZVNoZWV0T3duZXIuY3BwCiBkb20vSW5wdXRFdmVudC5jcHAKQEAgLTI5NjUsNiArMjk2
Nyw5IEBAIEpTSURCUmVxdWVzdC5jcHAKIEpTSURCVHJhbnNhY3Rpb24uY3BwCiBKU0lEQlRyYW5z
YWN0aW9uTW9kZS5jcHAKIEpTSURCVmVyc2lvbkNoYW5nZUV2ZW50LmNwcAorSlNJZGxlUmVxdWVz
dENhbGxiYWNrLmNwcAorSlNJZGxlUmVxdWVzdE9wdGlvbnMuY3BwCitKU0lkbGVEZWFkbGluZS5j
cHAKIEpTSW1hZ2VCaXRtYXAuY3BwCiBKU0ltYWdlQml0bWFwT3B0aW9ucy5jcHAKIEpTSW1hZ2VC
aXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjUwNzk0KQorKysgU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC0yODUyLDYgKzI4NTIsMTAgQEAKIAkJOUI2OUQzQjkxQjk5MTAwNzAwRTM1MTJCIC8q
IEpTSFRNTFNsb3RFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5QjY5RDNCNzFCOTkxMDA3MDBFMzUxMkIgLyogSlNIVE1MU2xvdEVsZW1lbnQu
aCAqLzsgfTsKIAkJOUI2QzQxNTMxMzQ0OTQ5MDAwMDg1QjYyIC8qIFN0cmluZ1dpdGhEaXJlY3Rp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCNkM0
MTUyMTM0NDk0OTAwMDA4NUI2MiAvKiBTdHJpbmdXaXRoRGlyZWN0aW9uLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUI3MTRFMjExQzkxMTY2OTAw
QUMwRTkyIC8qIEV2ZW50UGF0aC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOUI3MTRFMUYxQzkxMTY2OTAwQUMwRTkyIC8qIEV2ZW50UGF0aC5oICovOyB9
OworCQk5Qjc0MjYwNTIzNEJFOTU2MDBEQjUyRTkgLyogSWRsZVJlcXVlc3RDYWxsYmFjay5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI3NDI2MDMyMzRC
RTk1NjAwREI1MkU5IC8qIElkbGVSZXF1ZXN0Q2FsbGJhY2suaCAqLzsgfTsKKwkJOUI3NDI2MEIy
MzRCRUE2RTAwREI1MkU5IC8qIElkbGVEZWFkbGluZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI3NDI2MDgyMzRCRUE2RTAwREI1MkU5IC8qIElkbGVE
ZWFkbGluZS5oICovOyB9OworCQk5Qjg2NEYwMjIzNEMwMjhBMDA2RDEwRUIgLyogSWRsZVJlcXVl
c3RPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5Qjg2NEYwMDIzNEMwMjhBMDA2RDEwRUIgLyogSWRsZVJlcXVlc3RPcHRpb25zLmggKi87IH07
CisJCTlCODY0RjA2MjM0QzA4OTMwMDZEMTBFQiAvKiBJZGxlQ2FsbGJhY2tDb250cm9sbGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Qjg2NEYwNTIz
NEMwODkzMDA2RDEwRUIgLyogSWRsZUNhbGxiYWNrQ29udHJvbGxlci5oICovOyB9OwogCQk5QkEy
NzNGNDE3MjIwNkJCMDA5N0NFNDcgLyogTG9naWNhbFNlbGVjdGlvbk9mZnNldENhY2hlcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUJBMjczRjMxNzIy
MDZCQjAwOTdDRTQ3IC8qIExvZ2ljYWxTZWxlY3Rpb25PZmZzZXRDYWNoZXMuaCAqLzsgfTsKIAkJ
OUJBQUM0NUMyMTUyMDEyODAwM0Q0QTk4IC8qIEdDUmVhY2hhYmxlUmVmLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QkFBQzQ1NjIxNTFFMzlFMDAzRDRB
OTggLyogR0NSZWFjaGFibGVSZWYuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk5QkFCNkM2QzEyNTUwNjMxMDAxNjI2RDQgLyogRWRpdGluZ1N0eWxl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QkFCNkM2
QTEyNTUwNjMxMDAxNjI2RDQgLyogRWRpdGluZ1N0eWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTExMDY4LDcgKzExMDcyLDE2IEBACiAJCTlC
NkM0MTUyMTM0NDk0OTAwMDA4NUI2MiAvKiBTdHJpbmdXaXRoRGlyZWN0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cmluZ1dpdGhEaXJlY3Rpb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUI3MTRFMUUxQzkxMTY2OTAwQUMwRTkyIC8qIEV2ZW50UGF0
aC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFdmVudFBhdGguY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjcxNEUxRjFDOTExNjY5MDBBQzBFOTIg
LyogRXZlbnRQYXRoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50UGF0
aC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5Qjc0MjYwMzIzNEJFOTU2MDBEQjUy
RTkgLyogSWRsZVJlcXVlc3RDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJZGxlUmVxdWVzdENh
bGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCNzQyNjA0MjM0QkU5NTYw
MERCNTJFOSAvKiBJZGxlUmVxdWVzdENhbGxiYWNrLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBJZGxlUmVxdWVzdENhbGxi
YWNrLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUI3NDI2MDgyMzRCRUE2RTAw
REI1MkU5IC8qIElkbGVEZWFkbGluZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJZGxlRGVhZGxpbmUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUI3NDI2MDkyMzRCRUE2RTAwREI1MkU5IC8q
IElkbGVEZWFkbGluZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJZGxlRGVhZGxpbmUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5Qjc0MjYwQTIzNEJFQTZFMDBEQjUyRTkgLyog
SWRsZURlYWRsaW5lLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBJZGxlRGVhZGxpbmUuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5Qjg1NTMwNTIwRTczM0I1MDA5RUVGNEYgLyogRXZlbnRUYXJnZXRGYWN0
b3J5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEV2ZW50VGFyZ2V0
RmFjdG9yeS5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0V2ZW50VGFyZ2V0RmFj
dG9yeS5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTlCODY0RjAw
MjM0QzAyOEEwMDZEMTBFQiAvKiBJZGxlUmVxdWVzdE9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SWRsZVJlcXVlc3RPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCODY0
RjAxMjM0QzAyOEEwMDZEMTBFQiAvKiBJZGxlUmVxdWVzdE9wdGlvbnMuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IElkbGVS
ZXF1ZXN0T3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCODY0RjA1
MjM0QzA4OTMwMDZEMTBFQiAvKiBJZGxlQ2FsbGJhY2tDb250cm9sbGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IElkbGVDYWxsYmFja0NvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOUI4NjRGMDcyMzRDMDhBMzAwNkQxMEVCIC8qIElkbGVDYWxsYmFja0NvbnRyb2xsZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSWRsZUNhbGxiYWNrQ29udHJvbGxlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCOTI5OUIwMUY2Nzk2QTQwMDY3MjNDMiAvKiBXZWJDb250
ZW50UmVhZGVyQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBXZWJDb250ZW50UmVhZGVyQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTlCOUNBREE3MjE2NURDNzYwMEU4RDg1OCAvKiBKU011dGF0aW9uUmVjb3JkQ3VzdG9tLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTTXV0YXRpb25SZWNvcmRDdXN0b20uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5QkEyNzNGMzE3MjIwNkJCMDA5N0NFNDcgLyogTG9naWNhbFNl
bGVjdGlvbk9mZnNldENhY2hlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBM
b2dpY2FsU2VsZWN0aW9uT2Zmc2V0Q2FjaGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0yNzY2Nyw2ICsyNzY4MCwxNSBAQAogCQkJCUUzQkYxOUU2MjJBRjMwMkEwMDlDOTkyNiAv
KiBIYXNoQ2hhbmdlRXZlbnQuY3BwICovLAogCQkJCTI0NDJCQkY4MTE5NEM5RDMwMEQ0OTQ2OSAv
KiBIYXNoQ2hhbmdlRXZlbnQuaCAqLywKIAkJCQk4NDgyQjc0NDExOThDMzJFMDBCRkIwMDUgLyog
SGFzaENoYW5nZUV2ZW50LmlkbCAqLywKKwkJCQk5Qjg2NEYwNzIzNEMwOEEzMDA2RDEwRUIgLyog
SWRsZUNhbGxiYWNrQ29udHJvbGxlci5jcHAgKi8sCisJCQkJOUI4NjRGMDUyMzRDMDg5MzAwNkQx
MEVCIC8qIElkbGVDYWxsYmFja0NvbnRyb2xsZXIuaCAqLywKKwkJCQk5Qjc0MjYwOTIzNEJFQTZF
MDBEQjUyRTkgLyogSWRsZURlYWRsaW5lLmNwcCAqLywKKwkJCQk5Qjc0MjYwODIzNEJFQTZFMDBE
QjUyRTkgLyogSWRsZURlYWRsaW5lLmggKi8sCisJCQkJOUI3NDI2MEEyMzRCRUE2RTAwREI1MkU5
IC8qIElkbGVEZWFkbGluZS5pZGwgKi8sCisJCQkJOUI3NDI2MDMyMzRCRTk1NjAwREI1MkU5IC8q
IElkbGVSZXF1ZXN0Q2FsbGJhY2suaCAqLywKKwkJCQk5Qjc0MjYwNDIzNEJFOTU2MDBEQjUyRTkg
LyogSWRsZVJlcXVlc3RDYWxsYmFjay5pZGwgKi8sCisJCQkJOUI4NjRGMDAyMzRDMDI4QTAwNkQx
MEVCIC8qIElkbGVSZXF1ZXN0T3B0aW9ucy5oICovLAorCQkJCTlCODY0RjAxMjM0QzAyOEEwMDZE
MTBFQiAvKiBJZGxlUmVxdWVzdE9wdGlvbnMuaWRsICovLAogCQkJCUMzQ0YxN0EwMTVCMDA2M0Yw
MDI3NkQzOSAvKiBJZFRhcmdldE9ic2VydmVyLmNwcCAqLywKIAkJCQlDM0NGMTdBMTE1QjAwNjNG
MDAyNzZEMzkgLyogSWRUYXJnZXRPYnNlcnZlci5oICovLAogCQkJCUMzQ0YxN0EyMTVCMDA2M0Yw
MDI3NkQzOSAvKiBJZFRhcmdldE9ic2VydmVyUmVnaXN0cnkuY3BwICovLApAQCAtMjk2OTksNiAr
Mjk3MjEsMTAgQEAKIAkJCQkxQTcxRDU3QzBGMzM4MTkwMDBGOUNFNEUgLyogSWRlbnRpZmllclJl
cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlFOTExQzUwRUY4NkQ0NzAwOUQwQ0FGIC8qIElkZW50
aXR5VHJhbnNmb3JtT3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0U5QTEyQjFFQTJG
MURCMDA2NTFBRDEgLyogSURMQXR0cmlidXRlcy5qc29uIGluIEhlYWRlcnMgKi8sCisJCQkJOUI4
NjRGMDYyMzRDMDg5MzAwNkQxMEVCIC8qIElkbGVDYWxsYmFja0NvbnRyb2xsZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTlCNzQyNjBCMjM0QkVBNkUwMERCNTJFOSAvKiBJZGxlRGVhZGxpbmUuaCBp
biBIZWFkZXJzICovLAorCQkJCTlCNzQyNjA1MjM0QkU5NTYwMERCNTJFOSAvKiBJZGxlUmVxdWVz
dENhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQk5Qjg2NEYwMjIzNEMwMjhBMDA2RDEwRUIg
LyogSWRsZVJlcXVlc3RPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMEMwNTRDRDExMThD
OEU0MDBDRTI2MzYgLyogSURMUGFyc2VyLnBtIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M1MjIyOTYx
RTFEQUUwMzAwMkNCOEY3IC8qIElETFR5cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDM0NGMTdB
NTE1QjAwNjNGMDAyNzZEMzkgLyogSWRUYXJnZXRPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1l
cy5oCShyZXZpc2lvbiAyNTA3OTQpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJD
b3JlQnVpbHRpbk5hbWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzMCw2ICsxMzAsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oSURCVmVyc2lvbkNoYW5nZUV2ZW50KSBcCiAgICAg
bWFjcm8oSW1hZ2VCaXRtYXApIFwKICAgICBtYWNybyhJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRl
eHQpIFwKKyAgICBtYWNybyhJZGxlRGVhZGxpbmUpIFwKICAgICBtYWNybyhJbnB1dEV2ZW50KSBc
CiAgICAgbWFjcm8oSW50ZXJzZWN0aW9uT2JzZXJ2ZXIpIFwKICAgICBtYWNybyhJbnRlcnNlY3Rp
b25PYnNlcnZlckVudHJ5KSBcCkBAIC0yNDMsNiArMjQ0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgIG1hY3JvKGJ5b2JSZXF1ZXN0KSBcCiAgICAgbWFjcm8oY2FjaGVzKSBcCiAgICAgbWFj
cm8oY2FuY2VsKSBcCisgICAgbWFjcm8oY2FuY2VsSWRsZUNhbGxiYWNrKSBcCiAgICAgbWFjcm8o
Y2xvbmVBcnJheUJ1ZmZlcikgXAogICAgIG1hY3JvKGNsb3NlKSBcCiAgICAgbWFjcm8oY2xvc2VS
ZXF1ZXN0ZWQpIFwKQEAgLTMxNyw2ICszMTksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
bWFjcm8ocmVhZGFibGVTdHJlYW1Db250cm9sbGVyKSBcCiAgICAgbWFjcm8ocmVhZGVyKSBcCiAg
ICAgbWFjcm8ocmVhZHlQcm9taXNlQ2FwYWJpbGl0eSkgXAorICAgIG1hY3JvKHJlcXVlc3RJZGxl
Q2FsbGJhY2spIFwKICAgICBtYWNybyhyZXNwb25zZSkgXAogICAgIG1hY3JvKHJlc3BvbnNlQ2Fj
aGVJc1ZhbGlkKSBcCiAgICAgbWFjcm8ocmV0cmlldmVSZXNwb25zZSkgXApJbmRleDogU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCShyZXZpc2lvbiAyNTA3OTQpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDksNiArMTA5LDcgQEAKICNpbmNsdWRl
ICJIYXNoQ2hhbmdlRXZlbnQuaCIKICNpbmNsdWRlICJIaXN0b3J5LmgiCiAjaW5jbHVkZSAiSGl0
VGVzdFJlc3VsdC5oIgorI2luY2x1ZGUgIklkbGVDYWxsYmFja0NvbnRyb2xsZXIuaCIKICNpbmNs
dWRlICJJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJJbWFnZUxvYWRl
ci5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgpAQCAtNjM2MSw2ICs2
MzYyLDIwIEBAIHZvaWQgRG9jdW1lbnQ6OmNsZWFyU2NyaXB0ZWRBbmltYXRpb25Db24KICAgICBt
X3NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlciA9IG51bGxwdHI7CiB9CiAKK2ludCBEb2N1bWVu
dDo6cmVxdWVzdElkbGVDYWxsYmFjayhSZWY8SWRsZVJlcXVlc3RDYWxsYmFjaz4mJiBjYWxsYmFj
aywgU2Vjb25kcyB0aW1lb3V0KQoreworICAgIGlmICghbV9pZGxlQ2FsbGJhY2tDb250cm9sbGVy
KQorICAgICAgICBtX2lkbGVDYWxsYmFja0NvbnRyb2xsZXIgPSBtYWtlVW5pcXVlPElkbGVDYWxs
YmFja0NvbnRyb2xsZXI+KCk7CisgICAgcmV0dXJuIG1faWRsZUNhbGxiYWNrQ29udHJvbGxlci0+
cXVldWVJZGxlQ2FsbGJhY2soV1RGTW92ZShjYWxsYmFjayksIHRpbWVvdXQpOworfQorCit2b2lk
IERvY3VtZW50OjpjYW5jZWxJZGxlQ2FsbGJhY2soaW50IGlkKQoreworICAgIGlmICghbV9pZGxl
Q2FsbGJhY2tDb250cm9sbGVyKQorICAgICAgICByZXR1cm47CisgICAgbV9pZGxlQ2FsbGJhY2tD
b250cm9sbGVyLT5yZW1vdmVJZGxlQ2FsbGJhY2soaWQpOworfQorCiB2b2lkIERvY3VtZW50Ojp3
aGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKCkKIHsKICAgICBQYWdlKiBwYWdlID0gdGhpcy0+cGFn
ZSgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgJKHJldmlzaW9uIDI1MDc5NCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDQsNiArMTQ0LDgg
QEAgY2xhc3MgSFRNTFNjcmlwdEVsZW1lbnQ7CiBjbGFzcyBIaXRUZXN0TG9jYXRpb247CiBjbGFz
cyBIaXRUZXN0UmVxdWVzdDsKIGNsYXNzIEhpdFRlc3RSZXN1bHQ7CitjbGFzcyBJZGxlQ2FsbGJh
Y2tDb250cm9sbGVyOworY2xhc3MgSWRsZVJlcXVlc3RDYWxsYmFjazsKIGNsYXNzIEltYWdlQml0
bWFwUmVuZGVyaW5nQ29udGV4dDsKIGNsYXNzIEludFBvaW50OwogY2xhc3MgSlNOb2RlOwpAQCAt
MTIwNSw2ICsxMjA3LDkgQEAgcHVibGljOgogICAgIGludCByZXF1ZXN0QW5pbWF0aW9uRnJhbWUo
UmVmPFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrPiYmKTsKICAgICB2b2lkIGNhbmNlbEFu
aW1hdGlvbkZyYW1lKGludCBpZCk7CiAKKyAgICBpbnQgcmVxdWVzdElkbGVDYWxsYmFjayhSZWY8
SWRsZVJlcXVlc3RDYWxsYmFjaz4mJiwgU2Vjb25kcyB0aW1lb3V0KTsKKyAgICB2b2lkIGNhbmNl
bElkbGVDYWxsYmFjayhpbnQgaWQpOworCiAgICAgRXZlbnRUYXJnZXQqIGVycm9yRXZlbnRUYXJn
ZXQoKSBmaW5hbDsKICAgICB2b2lkIGxvZ0V4Y2VwdGlvblRvQ29uc29sZShjb25zdCBTdHJpbmcm
IGVycm9yTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIGludCBsaW5lTnVtYmVyLCBp
bnQgY29sdW1uTnVtYmVyLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYpIGZp
bmFsOwogCkBAIC0xODM3LDYgKzE4NDIsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xlYXJTY3Jp
cHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIoKTsKICAgICBSZWZQdHI8U2NyaXB0ZWRBbmltYXRpb25D
b250cm9sbGVyPiBtX3NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjsKIAorICAgIHN0ZDo6dW5p
cXVlX3B0cjxJZGxlQ2FsbGJhY2tDb250cm9sbGVyPiBtX2lkbGVDYWxsYmFja0NvbnRyb2xsZXI7
CisKICAgICB2b2lkIG5vdGlmeU1lZGlhQ2FwdHVyZU9mVmlzaWJpbGl0eUNoYW5nZWQoKTsKIAog
ICAgIHZvaWQgZGlkTG9nTWVzc2FnZShjb25zdCBXVEZMb2dDaGFubmVsJiwgV1RGTG9nTGV2ZWws
IFZlY3RvcjxKU09OTG9nVmFsdWU+JiYpIGZpbmFsOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9t
L0lkbGVDYWxsYmFja0NvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2RvbS9JZGxlQ2FsbGJhY2tDb250cm9sbGVyLmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9kb20vSWRsZUNhbGxiYWNrQ29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJJZGxlQ2FsbGJhY2tDb250cm9sbGVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworaW50
IElkbGVDYWxsYmFja0NvbnRyb2xsZXI6OnF1ZXVlSWRsZUNhbGxiYWNrKFJlZjxJZGxlUmVxdWVz
dENhbGxiYWNrPiYmIGNhbGxiYWNrLCBTZWNvbmRzKQoreworICAgICsrbV9pZGxlQ2FsbGJhY2tJ
ZGVudGlmaWVyOworICAgIGF1dG8gaGFuZGxlID0gbV9pZGxlQ2FsbGJhY2tJZGVudGlmaWVyOwor
CisgICAgbV9pZGxlUmVxdWVzdHMuYXBwZW5kKHsgaGFuZGxlLCBXVEZNb3ZlKGNhbGxiYWNrKSB9
KTsKKworICAgIC8vIEZJWE1FOiBRdWV1ZSBhIHRhc2sgaWYgc3RhcnRfaWRsZV9wZXJpb2QgaXMg
dHJ1ZS4KKyAgICAvLyBGSVhNRTogUXVldWUgYSB0YXNrIGlmIHRpbWVvdXQgaXMgcG9zaXRpdmUu
CisKKyAgICByZXR1cm4gaGFuZGxlOworfQorCit2b2lkIElkbGVDYWxsYmFja0NvbnRyb2xsZXI6
OnJlbW92ZUlkbGVDYWxsYmFjayhpbnQgc2lnbmVkSWRlbnRpZmllcikKK3sKKyAgICBpZiAoc2ln
bmVkSWRlbnRpZmllciA8PSAwKQorICAgICAgICByZXR1cm47CisgICAgdW5zaWduZWQgaWRlbnRp
ZmllciA9IHNpZ25lZElkZW50aWZpZXI7CisgICAgbV9pZGxlUmVxdWVzdHMucmVtb3ZlRmlyc3RN
YXRjaGluZyhbaWRlbnRpZmllcl0oYXV0byYgcmVxdWVzdCkgeworICAgICAgICByZXR1cm4gcmVx
dWVzdC5pZGVudGlmaWVyID09IGlkZW50aWZpZXI7CisgICAgfSk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9JZGxlQ2FsbGJhY2tDb250cm9s
bGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0lkbGVDYWxsYmFja0NvbnRy
b2xsZXIuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vSWRsZUNhbGxiYWNr
Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIklkbGVSZXF1ZXN0Q2FsbGJhY2suaCIKKyNpbmNs
dWRlIDx3dGYvU2Vjb25kcy5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBJZGxlQ2FsbGJhY2tDb250cm9sbGVyIHsKKyAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKKworcHVibGljOgorICAgIGludCBxdWV1ZUlkbGVDYWxsYmFjayhS
ZWY8SWRsZVJlcXVlc3RDYWxsYmFjaz4mJiwgU2Vjb25kcyB0aW1lb3V0KTsKKyAgICB2b2lkIHJl
bW92ZUlkbGVDYWxsYmFjayhpbnQpOworCitwcml2YXRlOgorICAgIHVuc2lnbmVkIG1faWRsZUNh
bGxiYWNrSWRlbnRpZmllciB7IDAgfTsKKworICAgIHN0cnVjdCBJZGxlUmVxdWVzdCB7CisgICAg
ICAgIHVuc2lnbmVkIGlkZW50aWZpZXI7CisgICAgICAgIFJlZjxJZGxlUmVxdWVzdENhbGxiYWNr
PiBjYWxsYmFjazsKKyAgICB9OworCisgICAgVmVjdG9yPElkbGVSZXF1ZXN0PiBtX2lkbGVSZXF1
ZXN0czsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2RvbS9JZGxlRGVhZGxpbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9J
ZGxlRGVhZGxpbmUuY3BwCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9JZGxl
RGVhZGxpbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSWRsZURlYWRsaW5lLmgiCisKKyNpbmNs
dWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlBlcmZv
cm1hbmNlLmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK0RPTUhpZ2hSZXNUaW1lU3RhbXAgSWRsZURlYWRsaW5lOjp0aW1lUmVtYWluaW5nKERvY3Vt
ZW50JiBkb2N1bWVudCkgY29uc3QKK3sKKyAgICBhdXRvIHdpbmRvdyA9IG1ha2VSZWZQdHIoZG9j
dW1lbnQuZG9tV2luZG93KCkpOworICAgIGlmICghd2luZG93KQorICAgICAgICByZXR1cm4gMDsK
KyAgICByZXR1cm4gd2luZG93LT5wZXJmb3JtYW5jZSgpLnJlbGF0aXZlVGltZUZyb21UaW1lT3Jp
Z2luSW5SZWR1Y2VkUmVzb2x1dGlvbihtX2RlYWRsaW5lKTsKK30KKworYm9vbCBJZGxlRGVhZGxp
bmU6OmRpZFRpbWVvdXQoRG9jdW1lbnQmIGRvY3VtZW50KSBjb25zdAoreworICAgIGF1dG8gd2lu
ZG93ID0gbWFrZVJlZlB0cihkb2N1bWVudC5kb21XaW5kb3coKSk7CisgICAgaWYgKCF3aW5kb3cp
CisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgLy8gUmVkdWNlIHRoZSByZXNvbHV0aW9uIGJl
Zm9yZSB0aGUgY29tcGFyaXNpb24gdG8gcHJldmVudCByZXNvbHV0aW9uIGxlYWthZ2UuCisgICAg
YXV0byBkZWFkbGluZSA9IHdpbmRvdy0+cGVyZm9ybWFuY2UoKS5yZWxhdGl2ZVRpbWVGcm9tVGlt
ZU9yaWdpbkluUmVkdWNlZFJlc29sdXRpb24obV9kZWFkbGluZSk7CisgICAgYXV0byBub3cgPSB3
aW5kb3ctPnBlcmZvcm1hbmNlKCkubm93KCk7CisgICAgcmV0dXJuIGRlYWRsaW5lID49IG5vdzsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0lk
bGVEZWFkbGluZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9JZGxlRGVhZGxp
bmUuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vSWRsZURlYWRsaW5lLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaW5jbHVkZSAiRE9NSGlnaFJlc1RpbWVTdGFtcC5oIgorI2luY2x1ZGUgPHd0Zi9Nb25v
dG9uaWNUaW1lLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsKKworY2xhc3MgSWRsZURlYWRsaW5lIGZpbmFsIDog
cHVibGljIFJlZkNvdW50ZWQ8SWRsZURlYWRsaW5lPiB7CitwdWJsaWM6CisgICAgUmVmPElkbGVE
ZWFkbGluZT4gY3JlYXRlKE1vbm90b25pY1RpbWUgZGVhZGxpbmUpCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBJZGxlRGVhZGxpbmUoZGVhZGxpbmUpKTsKKyAgICB9CisKKyAg
ICBET01IaWdoUmVzVGltZVN0YW1wIHRpbWVSZW1haW5pbmcoRG9jdW1lbnQmKSBjb25zdDsKKyAg
ICBib29sIGRpZFRpbWVvdXQoRG9jdW1lbnQmKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBJZGxl
RGVhZGxpbmUoTW9ub3RvbmljVGltZSBkZWFkbGluZSkKKyAgICAgICAgOiBtX2RlYWRsaW5lKGRl
YWRsaW5lKQorICAgIHsgfQorCisgICAgY29uc3QgTW9ub3RvbmljVGltZSBtX2RlYWRsaW5lOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0lk
bGVEZWFkbGluZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0lkbGVEZWFk
bGluZS5pZGwJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0lkbGVEZWFkbGlu
ZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK3R5cGVk
ZWYgZG91YmxlIERPTUhpZ2hSZXNUaW1lU3RhbXA7CisKK1sKKyAgICBFbmFibGVkQnlTZXR0aW5n
PXJlcXVlc3RJZGxlQ2FsbGJhY2ssCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQorXSBp
bnRlcmZhY2UgSWRsZURlYWRsaW5lIHsKKyAgICBbQ2FsbFdpdGg9RG9jdW1lbnRdIERPTUhpZ2hS
ZXNUaW1lU3RhbXAgdGltZVJlbWFpbmluZygpOworICAgIFtDYWxsV2l0aD1Eb2N1bWVudF0gcmVh
ZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gZGlkVGltZW91dDsKK307CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9kb20vSWRsZVJlcXVlc3RDYWxsYmFjay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2RvbS9JZGxlUmVxdWVzdENhbGxiYWNrLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dl
YkNvcmUvZG9tL0lkbGVSZXF1ZXN0Q2FsbGJhY2suaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJBY3RpdmVET01D
YWxsYmFjay5oIgorI2luY2x1ZGUgIkNhbGxiYWNrUmVzdWx0LmgiCisjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBJZGxlRGVhZGxpbmU7
CisKK2NsYXNzIElkbGVSZXF1ZXN0Q2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxJZGxlUmVx
dWVzdENhbGxiYWNrPiwgcHVibGljIEFjdGl2ZURPTUNhbGxiYWNrIHsKK3B1YmxpYzoKKyAgICB1
c2luZyBBY3RpdmVET01DYWxsYmFjazo6QWN0aXZlRE9NQ2FsbGJhY2s7CisKKyAgICB2aXJ0dWFs
IENhbGxiYWNrUmVzdWx0PHZvaWQ+IGhhbmRsZUV2ZW50KElkbGVEZWFkbGluZSYpID0gMDsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9JZGxl
UmVxdWVzdENhbGxiYWNrLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vSWRs
ZVJlcXVlc3RDYWxsYmFjay5pZGwJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvZG9t
L0lkbGVSZXF1ZXN0Q2FsbGJhY2suaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCitjYWxsYmFjayBJZGxlUmVxdWVzdENhbGxiYWNrID0gdm9pZCAoSWRsZURl
YWRsaW5lIGRlYWRsaW5lKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9JZGxlUmVxdWVzdE9w
dGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vSWRsZVJlcXVlc3RPcHRp
b25zLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0lkbGVSZXF1ZXN0T3B0
aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3N0cnVjdCBJZGxlUmVxdWVzdE9wdGlvbnMgeworICAgIHVuc2lnbmVkIHRpbWVvdXQg
eyAwIH07IC8vIFVzZWQgaWYgcG9zaXRpdmUuCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vSWRsZVJlcXVlc3RPcHRpb25zLmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vSWRsZVJlcXVlc3RPcHRpb25zLmlkbAkobm9uZXhp
c3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vSWRsZVJlcXVlc3RPcHRpb25zLmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDI4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworZGljdGlvbmFyeSBJZGxl
UmVxdWVzdE9wdGlvbnMgeworICAgIHVuc2lnbmVkIGxvbmcgdGltZW91dDsKK307CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCShyZXZpc2lvbiAyNTA3OTQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY4LDYgKzY4LDcgQEAK
ICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2luY2x1
ZGUgIkhpc3RvcnkuaCIKKyNpbmNsdWRlICJJZGxlUmVxdWVzdE9wdGlvbnMuaCIKICNpbmNsdWRl
ICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZl
cnJlZC5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93QmFzZS5oIgpAQCAtMTc4MSw2ICsxNzgyLDIy
IEBAIHZvaWQgRE9NV2luZG93OjpjYW5jZWxBbmltYXRpb25GcmFtZShpbnQKICAgICBkb2N1bWVu
dC0+Y2FuY2VsQW5pbWF0aW9uRnJhbWUoaWQpOwogfQogCitpbnQgRE9NV2luZG93OjpyZXF1ZXN0
SWRsZUNhbGxiYWNrKFJlZjxJZGxlUmVxdWVzdENhbGxiYWNrPiYmIGNhbGxiYWNrLCBjb25zdCBJ
ZGxlUmVxdWVzdE9wdGlvbnMmIG9wdGlvbnMpCit7CisgICAgYXV0byBkb2N1bWVudCA9IG1ha2VS
ZWZQdHIodGhpcy0+ZG9jdW1lbnQoKSk7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0
dXJuIDA7CisgICAgcmV0dXJuIGRvY3VtZW50LT5yZXF1ZXN0SWRsZUNhbGxiYWNrKFdURk1vdmUo
Y2FsbGJhY2spLCBTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKG9wdGlvbnMudGltZW91dCkpOwor
fQorCit2b2lkIERPTVdpbmRvdzo6Y2FuY2VsSWRsZUNhbGxiYWNrKGludCBpZCkKK3sKKyAgICBh
dXRvIGRvY3VtZW50ID0gbWFrZVJlZlB0cih0aGlzLT5kb2N1bWVudCgpKTsKKyAgICBpZiAoIWRv
Y3VtZW50KQorICAgICAgICByZXR1cm47CisgICAgcmV0dXJuIGRvY3VtZW50LT5jYW5jZWxJZGxl
Q2FsbGJhY2soaWQpOworfQorCiB2b2lkIERPTVdpbmRvdzo6Y3JlYXRlSW1hZ2VCaXRtYXAoSW1h
Z2VCaXRtYXA6OlNvdXJjZSYmIHNvdXJjZSwgSW1hZ2VCaXRtYXBPcHRpb25zJiYgb3B0aW9ucywg
SW1hZ2VCaXRtYXA6OlByb21pc2UmJiBwcm9taXNlKQogewogICAgIGF1dG8qIGRvY3VtZW50ID0g
dGhpcy0+ZG9jdW1lbnQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAkocmV2aXNpb24g
MjUwNzk0KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAkod29ya2luZyBjb3B5
KQpAQCAtNjQsNiArNjQsNyBAQCBjbGFzcyBFbGVtZW50OwogY2xhc3MgRXZlbnRMaXN0ZW5lcjsK
IGNsYXNzIEZsb2F0UmVjdDsKIGNsYXNzIEhpc3Rvcnk7CitjbGFzcyBJZGxlUmVxdWVzdENhbGxi
YWNrOwogY2xhc3MgTG9jYXRpb247CiBjbGFzcyBNZWRpYVF1ZXJ5TGlzdDsKIGNsYXNzIE5hdmln
YXRvcjsKQEAgLTc0LDYgKzc1LDcgQEAgY2xhc3MgUGFnZUNvbnNvbGVDbGllbnQ7CiBjbGFzcyBQ
ZXJmb3JtYW5jZTsKIGNsYXNzIFBvc3RNZXNzYWdlVGltZXI7CiBjbGFzcyBSZXF1ZXN0QW5pbWF0
aW9uRnJhbWVDYWxsYmFjazsKK2NsYXNzIFJlcXVlc3RJZGxlQ2FsbGJhY2s7CiBjbGFzcyBTY2hl
ZHVsZWRBY3Rpb247CiBjbGFzcyBTY3JlZW47CiBjbGFzcyBTdG9yYWdlOwpAQCAtODcsNiArODks
NyBAQCBjbGFzcyBEZXZpY2VNb3Rpb25Db250cm9sbGVyOwogY2xhc3MgRGV2aWNlT3JpZW50YXRp
b25Db250cm9sbGVyOwogI2VuZGlmCiAKK3N0cnVjdCBJZGxlUmVxdWVzdE9wdGlvbnM7CiBzdHJ1
Y3QgSW1hZ2VCaXRtYXBPcHRpb25zOwogc3RydWN0IFdpbmRvd0ZlYXR1cmVzOwogCkBAIC0yNzUs
NiArMjc4LDkgQEAgcHVibGljOgogICAgIGludCB3ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUo
UmVmPFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrPiYmKTsKICAgICB2b2lkIGNhbmNlbEFu
aW1hdGlvbkZyYW1lKGludCBpZCk7CiAKKyAgICBpbnQgcmVxdWVzdElkbGVDYWxsYmFjayhSZWY8
SWRsZVJlcXVlc3RDYWxsYmFjaz4mJiwgY29uc3QgSWRsZVJlcXVlc3RPcHRpb25zJik7CisgICAg
dm9pZCBjYW5jZWxJZGxlQ2FsbGJhY2soaW50IGlkKTsKKwogICAgIC8vIEltYWdlQml0bWFwCiAg
ICAgdm9pZCBjcmVhdGVJbWFnZUJpdG1hcChJbWFnZUJpdG1hcDo6U291cmNlJiYsIEltYWdlQml0
bWFwT3B0aW9ucyYmLCBJbWFnZUJpdG1hcDo6UHJvbWlzZSYmKTsKICAgICB2b2lkIGNyZWF0ZUlt
YWdlQml0bWFwKEltYWdlQml0bWFwOjpTb3VyY2UmJiwgaW50IHN4LCBpbnQgc3ksIGludCBzdywg
aW50IHNoLCBJbWFnZUJpdG1hcE9wdGlvbnMmJiwgSW1hZ2VCaXRtYXA6OlByb21pc2UmJik7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCShyZXZpc2lvbiAyNTA3OTQpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTkzLDYgKzkz
LDkgQEAgdHlwZWRlZiBVU1ZTdHJpbmcgQ1NTT01TdHJpbmc7CiAgICAgbG9uZyByZXF1ZXN0QW5p
bWF0aW9uRnJhbWUoUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2sgY2FsbGJhY2spOyAvLyBG
SVhNRTogU2hvdWxkIHJldHVybiBhbiB1bnNpZ25lZCBsb25nLgogICAgIHZvaWQgY2FuY2VsQW5p
bWF0aW9uRnJhbWUobG9uZyBoYW5kbGUpOyAvLyBGSVhNRTogaGFuZGxlIHNob3VsZCBiZSBhbiB1
bnNpZ25lZCBsb25nLgogCisgICAgW0VuYWJsZWRCeVNldHRpbmc9cmVxdWVzdElkbGVDYWxsYmFj
a10gdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRsZUNhbGxiYWNrKElkbGVSZXF1ZXN0Q2FsbGJhY2sg
Y2FsbGJhY2ssIG9wdGlvbmFsIElkbGVSZXF1ZXN0T3B0aW9ucyBvcHRpb25zKTsKKyAgICBbRW5h
YmxlZEJ5U2V0dGluZz1yZXF1ZXN0SWRsZUNhbGxiYWNrXSB2b2lkIGNhbmNlbElkbGVDYWxsYmFj
ayh1bnNpZ25lZCBsb25nIGhhbmRsZSk7CisKICAgICBbQ2FsbFdpdGg9RXhlY1N0YXRlJkluY3Vt
YmVudFdpbmRvdywgRG9Ob3RDaGVja1NlY3VyaXR5LCBGb3J3YXJkRGVjbGFyZUluSGVhZGVyLCBN
YXlUaHJvd0V4Y2VwdGlvbl0gdm9pZCBwb3N0TWVzc2FnZShhbnkgbWVzc2FnZSwgVVNWU3RyaW5n
IHRhcmdldE9yaWdpbiwgb3B0aW9uYWwgc2VxdWVuY2U8b2JqZWN0PiB0cmFuc2ZlciA9IFtdKTsK
IAogICAgIC8vIE9ic29sZXRlIG1lbWJlcnMsIHN0aWxsIHBhcnQgb2YgdGhlIEhUTUwgc3BlY2lm
aWNhdGlvbiAoaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jV2luZG93LXBhcnRpYWwpLgpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAkocmV2aXNpb24gMjUwNzk0KQorKysgU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCSh3b3JraW5nIGNvcHkpCkBAIC0zMzcsNiAr
MzM3LDggQEAgd2FudHNCYWxhbmNlZFNldERlZmVyc0xvYWRpbmdCZWhhdmlvcjoKICAgaW5pdGlh
bDogZmFsc2UKIHJlcXVlc3RBbmltYXRpb25GcmFtZUVuYWJsZWQ6CiAgIGluaXRpYWw6IHRydWUK
K3JlcXVlc3RJZGxlQ2FsbGJhY2tFbmFibGVkOgorICBpbml0aWFsOiBmYWxzZQogCiBIVFRQU1Vw
Z3JhZGVFbmFibGVkOgogICBpbml0aWFsOiBmYWxzZQpJbmRleDogU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1
MDgxMikKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTktMTAtMDcgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgQWRkIElETCBmb3IgcmVxdWVzdElkbGVDYWxsYmFjaworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNjUzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXMu
eWFtbDoKKwogMjAxOS0xMC0wNyAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxl
LmNvbT4KIAogICAgICAgICBEb21haW4gcmVsYXRpb25zaGlwcyBpbiB0aGUgSVRQIERhdGFiYXNl
IHNob3VsZCBiZSBpbnNlcnRlZCBpbiBhIHNpbmdsZSBxdWVyeSBhbmQgaWdub3JlIHJlcGVhdCBp
bnNlcnQgYXR0ZW1wdHMuICgyMDI2MDQpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
cmVmZXJlbmNlcy55YW1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBy
ZWZlcmVuY2VzLnlhbWwJKHJldmlzaW9uIDI1MDc5NCkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlByZWZlcmVuY2VzLnlhbWwJKHdvcmtpbmcgY29weSkKQEAgLTM2Miw2ICszNjIsMTMgQEAg
UmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFs
dWU6IHRydWUKIAorUmVxdWVzdElkbGVDYWxsYmFja0VuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAg
ZGVmYXVsdFZhbHVlOiBmYWxzZQorICBodW1hblJlYWRhYmxlTmFtZTogInJlcXVlc3RJZGxlQ2Fs
bGJhY2siCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSByZXF1ZXN0SWRsZUNh
bGxiYWNrIHN1cHBvcnQiCisgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKKwogRGlhZ25vc3RpY0xv
Z2dpbmdFbmFibGVkOgogICB0eXBlOiBib29sCiAgIGRlZmF1bHRWYWx1ZTogZmFsc2UKSW5kZXg6
IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MDc5NCkKKysrIFNvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBA
CisyMDE5LTEwLTA3ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAg
IEFkZCBJREwgZm9yIHJlcXVlc3RJZGxlQ2FsbGJhY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjY1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZh
dGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tOgorICAgICAgICAoK1tX
ZWJQcmVmZXJlbmNlcyBpbml0aWFsaXplXSk6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJl
bmNlc1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgt
W1dlYlZpZXcgX3ByZWZlcmVuY2VzQ2hhbmdlZDpdKToKKwogMjAxOS0xMC0wNCAgQWxleCBDaHJp
c3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbmFtZSBTY2hl
bWVSZWdpc3RyeSB0byBMZWdhY3lTY2hlbWVSZWdpc3RyeQpJbmRleDogU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0
ZS5oCShyZXZpc2lvbiAyNTA3OTQpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNzIsNSArMjcy
LDYgQEAKICNkZWZpbmUgV2ViS2l0UmVmZXJyZXJQb2xpY3lBdHRyaWJ1dGVFbmFibGVkUHJlZmVy
ZW5jZUtleSBAIldlYktpdFJlZmVycmVyUG9saWN5QXR0cmlidXRlRW5hYmxlZCIKICNkZWZpbmUg
V2ViS2l0UmVzaXplT2JzZXJ2ZXJFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFJlc2l6ZU9i
c2VydmVyRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0Q29yZU1hdGhNTEVuYWJsZWRQcmVmZXJlbmNl
S2V5IEAiV2ViS2l0Q29yZU1hdGhNTEVuYWJsZWQiCisjZGVmaW5lIFdlYktpdFJlcXVlc3RJZGxl
Q2FsbGJhY2tFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFJlcXVlc3RJZGxlQ2FsbGJhY2tF
bmFibGVkIgogI2RlZmluZSBXZWJLaXRMaW5rUHJlbG9hZFJlc3BvbnNpdmVJbWFnZXNFbmFibGVk
UHJlZmVyZW5jZUtleSBAIldlYktpdExpbmtQcmVsb2FkUmVzcG9uc2l2ZUltYWdlc0VuYWJsZWQi
CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVm
ZXJlbmNlcy5tbQkocmV2aXNpb24gMjUwNzk0KQorKysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQkod29ya2luZyBjb3B5KQpAQCAtNjkwLDYgKzY5MCw3
IEBAICsgKHZvaWQpaW5pdGlhbGl6ZQogICAgICAgICBATk8sIFdlYktpdFJlc2l6ZU9ic2VydmVy
RW5hYmxlZFByZWZlcmVuY2VLZXksCiAjZW5kaWYKICAgICAgICAgQE5PLCBXZWJLaXRDb3JlTWF0
aE1MRW5hYmxlZFByZWZlcmVuY2VLZXksCisgICAgICAgIEBOTywgV2ViS2l0UmVxdWVzdElkbGVD
YWxsYmFja0VuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBATk8sIFdlYktpdExpbmtQcmVs
b2FkUmVzcG9uc2l2ZUltYWdlc0VuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBATk8sIFdl
YktpdENTU1NoYWRvd1BhcnRzRW5hYmxlZFByZWZlcmVuY2VLZXksCiAgICAgICAgIG5pbF07Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJl
ZmVyZW5jZXNQcml2YXRlLmgJKHJldmlzaW9uIDI1MDc5NCkKKysrIFNvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTYxMiw2ICs2MTIsOSBAQCBAaW50ZXJmYWNlIFdlYlByZWZlcmVuY2VzIChXZWJQcml2YXRlKQog
LSAodm9pZClzZXRDb3JlTWF0aE1MRW5hYmxlZDooQk9PTClmbGFnOwogLSAoQk9PTCljb3JlTWF0
aE1MRW5hYmxlZDsKIAorLSAodm9pZClzZXRSZXF1ZXN0SWRsZUNhbGxiYWNrRW5hYmxlZDooQk9P
TClmbGFnOworLSAoQk9PTClyZXF1ZXN0SWRsZUNhbGxiYWNrRW5hYmxlZDsKKwogLSAodm9pZClz
ZXRMaW5rUHJlbG9hZFJlc3BvbnNpdmVJbWFnZXNFbmFibGVkOihCT09MKWZsYWc7CiAtIChCT09M
KWxpbmtQcmVsb2FkUmVzcG9uc2l2ZUltYWdlc0VuYWJsZWQ7CiAKQEAgLTY1Miw2ICs2NTUsNyBA
QCBAaW50ZXJmYWNlIFdlYlByZWZlcmVuY2VzIChXZWJQcml2YXRlKQogQHByb3BlcnR5IChub25h
dG9taWMpIEJPT0wgcmVmZXJyZXJQb2xpY3lBdHRyaWJ1dGVFbmFibGVkOwogQHByb3BlcnR5IChu
b25hdG9taWMpIEJPT0wgcmVzaXplT2JzZXJ2ZXJFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9t
aWMpIEJPT0wgY29yZU1hdGhNTEVuYWJsZWQ7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBy
ZXF1ZXN0SWRsZUNhbGxiYWNrRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGxp
bmtQcmVsb2FkUmVzcG9uc2l2ZUltYWdlc0VuYWJsZWQ7CiAKICNpZiBUQVJHRVRfT1NfSVBIT05F
CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCShyZXZp
c2lvbiAyNTA3OTQpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTMyMzUsNiArMzIzNSw3IEBAIC0gKHZvaWQpX3ByZWZlcmVu
Y2VzQ2hhbmdlZDooV2ViUHJlZmVyZW4KICAgICBzZXR0aW5ncy5zZXRNZWRpYUNhcGFiaWxpdGll
c0VuYWJsZWQoW3ByZWZlcmVuY2VzIG1lZGlhQ2FwYWJpbGl0aWVzRW5hYmxlZF0pOwogCiAgICAg
c2V0dGluZ3Muc2V0Q29yZU1hdGhNTEVuYWJsZWQoW3ByZWZlcmVuY2VzIGNvcmVNYXRoTUxFbmFi
bGVkXSk7CisgICAgc2V0dGluZ3Muc2V0UmVxdWVzdElkbGVDYWxsYmFja0VuYWJsZWQoW3ByZWZl
cmVuY2VzIHJlcXVlc3RJZGxlQ2FsbGJhY2tFbmFibGVkXSk7CiAKICAgICBSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFNlcnZlclRpbWluZ0VuYWJsZWQoW3ByZWZl
cmVuY2VzIHNlcnZlclRpbWluZ0VuYWJsZWRdKTsKIApJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjUwODEyKQorKysgVG9vbHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTktMTAtMDcgIFJ5
b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIElETCBmb3IgcmVx
dWVzdElkbGVDYWxsYmFjaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAyNjUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHA6CisgICAgICAgIChUZXN0
T3B0aW9uczo6VGVzdE9wdGlvbnMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RPcHRp
b25zLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgor
ICAgICAgICAoc2V0V2ViUHJlZmVyZW5jZXNGb3JUZXN0T3B0aW9ucyk6CisKIDIwMTktMTAtMDcg
IEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBPbmx5IHdyYXBw
aW5nIENyeXB0b0tleXMgZm9yIElEQiBkdXJpbmcgc2VyaWFsaXphdGlvbgpJbmRleDogVG9vbHMv
RHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcAkocmV2aXNpb24gMjUwNzk0KQorKysgVG9vbHMvRHVt
cFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjMsNiArMTIz
LDggQEAgVGVzdE9wdGlvbnM6OlRlc3RPcHRpb25zKGNvbnN0IHN0ZDo6c3RyaQogICAgICAgICAg
ICAgZW5hYmxlUmVzaXplT2JzZXJ2ZXIgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFs
dWUpOwogICAgICAgICBlbHNlIGlmIChrZXkgPT0gImV4cGVyaW1lbnRhbDpDb3JlTWF0aE1MRW5h
YmxlZCIpCiAgICAgICAgICAgICBlbmFibGVDb3JlTWF0aE1MID0gcGFyc2VCb29sZWFuVGVzdEhl
YWRlclZhbHVlKHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJleHBlcmltZW50YWw6
UmVxdWVzdElkbGVDYWxsYmFja0VuYWJsZWQiKQorICAgICAgICAgICAgZW5hYmxlUmVxdWVzdElk
bGVDYWxsYmFjayA9IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSk7CiAgICAgICAg
IHBhaXJTdGFydCA9IHBhaXJFbmQgKyAxOwogICAgIH0KIH0KSW5kZXg6IFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL1Rlc3RPcHRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUv
VGVzdE9wdGlvbnMuaAkocmV2aXNpb24gMjUwNzk0KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUv
VGVzdE9wdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsNyBAQCBzdHJ1Y3QgVGVz
dE9wdGlvbnMgewogICAgIGJvb2wgYWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZCB7IGZhbHNlIH07
CiAgICAgYm9vbCBlbmFibGVSZXNpemVPYnNlcnZlciB7IGZhbHNlIH07CiAgICAgYm9vbCBlbmFi
bGVDb3JlTWF0aE1MIHsgZmFsc2UgfTsKKyAgICBib29sIGVuYWJsZVJlcXVlc3RJZGxlQ2FsbGJh
Y2sgeyBmYWxzZSB9OwogICAgIHN0ZDo6c3RyaW5nIGpzY09wdGlvbnM7CiAgICAgc3RkOjpzdHJp
bmcgYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXM7CiAKSW5kZXg6IFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0JKHJldmlzaW9uIDI1MDc5NCkKKysrIFRvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQkod29ya2luZyBjb3B5KQpAQCAt
MTAyOCw2ICsxMDI4LDcgQEAgc3RhdGljIHZvaWQgc2V0V2ViUHJlZmVyZW5jZXNGb3JUZXN0T3B0
aQogICAgIHByZWZlcmVuY2VzLmFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQgPSBvcHRpb25zLmFk
Q2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQ7CiAgICAgcHJlZmVyZW5jZXMucmVzaXplT2JzZXJ2ZXJF
bmFibGVkID0gb3B0aW9ucy5lbmFibGVSZXNpemVPYnNlcnZlcjsKICAgICBwcmVmZXJlbmNlcy5j
b3JlTWF0aE1MRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlQ29yZU1hdGhNTDsKKyAgICBwcmVmZXJl
bmNlcy5yZXF1ZXN0SWRsZUNhbGxiYWNrRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlUmVxdWVzdElk
bGVDYWxsYmFjazsKICAgICBwcmVmZXJlbmNlcy5wcml2YXRlQnJvd3NpbmdFbmFibGVkID0gb3B0
aW9ucy51c2VFcGhlbWVyYWxTZXNzaW9uOwogICAgIHByZWZlcmVuY2VzLnVzZXNQYWdlQ2FjaGUg
PSBvcHRpb25zLmVuYWJsZVBhZ2VDYWNoZTsKIH0KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MDc5NCkK
KysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBA
CisyMDE5LTEwLTA4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAg
IEFkZCBJREwgZm9yIHJlcXVlc3RJZGxlQ2FsbGJhY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjY1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGJhc2ljIHRlc3RzIGZvciB2YWxpZGF0aW5n
IHJlcXVlc3RJZGxlQ2FsbGJhY2sgaXMgZW5hYmxlZCBvciBkaXNhYmxlZCwgYW5kIGl0cyBpZGVu
dGlmaWVyIHN0YXJ0cyBhdCAxIGluIGVhY2ggZG9jdW1lbnQuCisKKyAgICAgICAgKiByZXF1ZXN0
aWRsZWNhbGxiYWNrOiBBZGRlZC4KKyAgICAgICAgKiByZXF1ZXN0aWRsZWNhbGxiYWNrL3JlcXVl
c3RpZGxlY2FsbGJhY2stZW5hYmxlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHJl
cXVlc3RpZGxlY2FsbGJhY2svcmVxdWVzdGlkbGVjYWxsYmFjay1lbmFibGVkLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHJlcXVlc3RpZGxlY2FsbGJhY2svcmVxdWVzdGlkbGVjYWxsYmFjay1pZC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHJlcXVlc3RpZGxlY2FsbGJhY2svcmVxdWVz
dGlkbGVjYWxsYmFjay1pZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiByZXF1ZXN0aWRsZWNhbGxi
YWNrL3JlcXVlc3RpZGxlY2FsbGJhY2stbm90LWVuYWJsZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiByZXF1ZXN0aWRsZWNhbGxiYWNrL3JlcXVlc3RpZGxlY2FsbGJhY2stbm90LWVu
YWJsZWQuaHRtbDogQWRkZWQuCisKIDIwMTktMTAtMDcgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgZm9jdXMgcHNldWRvIGNsYXNzIHNob3VsZCBtYXRjaCBhIHNo
YWRvdyBob3N0IHdob3NlIHNoYWRvdyB0cmVlIGNvbnRhaW5zIHRoZSBmb2N1c2VkIGVsZW1lbnQK
SW5kZXg6IExheW91dFRlc3RzL3JlcXVlc3RpZGxlY2FsbGJhY2svcmVxdWVzdGlkbGVjYWxsYmFj
ay1lbmFibGVkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9yZXF1ZXN0
aWRsZWNhbGxiYWNrL3JlcXVlc3RpZGxlY2FsbGJhY2stZW5hYmxlZC1leHBlY3RlZC50eHQJKG5v
bmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvcmVxdWVzdGlkbGVjYWxsYmFjay9yZXF1ZXN0aWRs
ZWNhbGxiYWNrLWVuYWJsZWQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTkgQEAKK1RoaXMgdGVzdHMgdGhhdCB3aGVuIHJlcXVlc3RJZGxlQ2FsbGJhY2sgaXMgZW5hYmxl
ZCwgcmVxdWVzdElkbGVDYWxsYmFjayBhbmQgSWRsZURlYWRsaW5lIGFyZSBkZWZpbmVkLgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0eXBlb2Ygd2luZG93LnJlcXVlc3RJ
ZGxlQ2FsbGJhY2sgaXMgImZ1bmN0aW9uIgorUEFTUyB3aW5kb3cucmVxdWVzdElkbGVDYWxsYmFj
ay5sZW5ndGggaXMgMQorUEFTUyB0eXBlb2Ygd2luZG93LmNhbmNlbElkbGVDYWxsYmFjayBpcyAi
ZnVuY3Rpb24iCitQQVNTIHdpbmRvdy5jYW5jZWxJZGxlQ2FsbGJhY2subGVuZ3RoIGlzIDEKK1BB
U1Mgd2luZG93LklkbGVEZWFkbGluZSBpcyBkZWZpbmVkLgorUEFTUyBpZGxlRGVhZGxpbmVQcm9w
ZXJ0aWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMod2luZG93LklkbGVEZWFkbGluZS5w
cm90b3R5cGUpOyBpZGxlRGVhZGxpbmVQcm9wZXJ0aWVzLmxlbmd0aCBpcyAzCitQQVNTIEpTT04u
c3RyaW5naWZ5KGlkbGVEZWFkbGluZVByb3BlcnRpZXMuc29ydCgpKSBpcyAiW1wiY29uc3RydWN0
b3JcIixcImRpZFRpbWVvdXRcIixcInRpbWVSZW1haW5pbmdcIl0iCitQQVNTIGRpZFRpbWVvdXRE
ZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3cuSWRsZURl
YWRsaW5lLnByb3RvdHlwZSwgImRpZFRpbWVvdXQiKTsgZGlkVGltZW91dERlc2NyaXB0b3IuZ2V0
IGlzIGRlZmluZWQuCitQQVNTIGRpZFRpbWVvdXREZXNjcmlwdG9yLnNldCBpcyB1bmRlZmluZWQu
CitQQVNTIHR5cGVvZiB3aW5kb3cuSWRsZURlYWRsaW5lLnByb3RvdHlwZS50aW1lUmVtYWluaW5n
IGlzICJmdW5jdGlvbiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9yZXF1ZXN0aWRsZWNhbGxiYWNrL3JlcXVlc3Rp
ZGxlY2FsbGJhY2stZW5hYmxlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3JlcXVl
c3RpZGxlY2FsbGJhY2svcmVxdWVzdGlkbGVjYWxsYmFjay1lbmFibGVkLmh0bWwJKG5vbmV4aXN0
ZW50KQorKysgTGF5b3V0VGVzdHMvcmVxdWVzdGlkbGVjYWxsYmFjay9yZXF1ZXN0aWRsZWNhbGxi
YWNrLWVuYWJsZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIyIEBACis8IURPQ1RZ
UEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpSZXF1ZXN0SWRs
ZUNhbGxiYWNrRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0
aW9uKCdUaGlzIHRlc3RzIHRoYXQgd2hlbiByZXF1ZXN0SWRsZUNhbGxiYWNrIGlzIGVuYWJsZWQs
IHJlcXVlc3RJZGxlQ2FsbGJhY2sgYW5kIElkbGVEZWFkbGluZSBhcmUgZGVmaW5lZC4nKTsKKwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0eXBlb2Ygd2luZG93LnJlcXVlc3RJZGxlQ2FsbGJhY2sn
LCAnZnVuY3Rpb24nKTsKK3Nob3VsZEJlKCd3aW5kb3cucmVxdWVzdElkbGVDYWxsYmFjay5sZW5n
dGgnLCAnMScpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0eXBlb2Ygd2luZG93LmNhbmNlbElk
bGVDYWxsYmFjaycsICdmdW5jdGlvbicpOworc2hvdWxkQmUoJ3dpbmRvdy5jYW5jZWxJZGxlQ2Fs
bGJhY2subGVuZ3RoJywgJzEnKTsKK3Nob3VsZEJlRGVmaW5lZCgnd2luZG93LklkbGVEZWFkbGlu
ZScpOworc2hvdWxkQmUoJ2lkbGVEZWFkbGluZVByb3BlcnRpZXMgPSBPYmplY3QuZ2V0T3duUHJv
cGVydHlOYW1lcyh3aW5kb3cuSWRsZURlYWRsaW5lLnByb3RvdHlwZSk7IGlkbGVEZWFkbGluZVBy
b3BlcnRpZXMubGVuZ3RoJywgJzMnKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnSlNPTi5zdHJp
bmdpZnkoaWRsZURlYWRsaW5lUHJvcGVydGllcy5zb3J0KCkpJywgJ1siY29uc3RydWN0b3IiLCJk
aWRUaW1lb3V0IiwidGltZVJlbWFpbmluZyJdJyk7CitzaG91bGRCZURlZmluZWQoJ2RpZFRpbWVv
dXREZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3cuSWRs
ZURlYWRsaW5lLnByb3RvdHlwZSwgImRpZFRpbWVvdXQiKTsgZGlkVGltZW91dERlc2NyaXB0b3Iu
Z2V0Jyk7CitzaG91bGRCZVVuZGVmaW5lZCgnZGlkVGltZW91dERlc2NyaXB0b3Iuc2V0Jyk7Citz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ3R5cGVvZiB3aW5kb3cuSWRsZURlYWRsaW5lLnByb3RvdHlw
ZS50aW1lUmVtYWluaW5nJywgJ2Z1bmN0aW9uJyk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcmVxdWVzdGlkbGVjYWxsYmFjay9yZXF1ZXN0aWRsZWNh
bGxiYWNrLWlkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9yZXF1ZXN0
aWRsZWNhbGxiYWNrL3JlcXVlc3RpZGxlY2FsbGJhY2staWQtZXhwZWN0ZWQudHh0CShub25leGlz
dGVudCkKKysrIExheW91dFRlc3RzL3JlcXVlc3RpZGxlY2FsbGJhY2svcmVxdWVzdGlkbGVjYWxs
YmFjay1pZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNiBAQAorVGhp
cyB0ZXN0cyB0aGF0IHJlcXVlc3RJZGxlQ2FsbGJhY2sgaWRlbnRpZmllciBzdGFydHMgZnJvbSAx
IGluIGVhY2ggZG9jdW1lbnQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IHJlcXVlc3RJZGxlQ2FsbGJhY2soKCkgPT4geyB9KSBpcyAxCitQQVNTIHJlcXVlc3RJZGxlQ2Fs
bGJhY2soKCkgPT4geyB9KSBpcyAyCitQQVNTIGlmcmFtZTEuY29udGVudFdpbmRvdy5yZXF1ZXN0
SWRsZUNhbGxiYWNrKCgpID0+IHsgfSkgaXMgMQorUEFTUyBpZnJhbWUyLmNvbnRlbnRXaW5kb3cu
cmVxdWVzdElkbGVDYWxsYmFjaygoKSA9PiB7IH0pIGlzIDEKK1BBU1MgaWZyYW1lMS5jb250ZW50
V2luZG93LnJlcXVlc3RJZGxlQ2FsbGJhY2soKCkgPT4geyB9KSBpcyAyCitQQVNTIGlmcmFtZTEu
Y29udGVudFdpbmRvdy5yZXF1ZXN0SWRsZUNhbGxiYWNrKCgpID0+IHsgfSkgaXMgMworUEFTUyBp
ZnJhbWUyLmNvbnRlbnRXaW5kb3cucmVxdWVzdElkbGVDYWxsYmFjaygoKSA9PiB7IH0pIGlzIDIK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4
OiBMYXlvdXRUZXN0cy9yZXF1ZXN0aWRsZWNhbGxiYWNrL3JlcXVlc3RpZGxlY2FsbGJhY2staWQu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9yZXF1ZXN0aWRsZWNhbGxiYWNrL3JlcXVl
c3RpZGxlY2FsbGJhY2staWQuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9yZXF1
ZXN0aWRsZWNhbGxiYWNrL3JlcXVlc3RpZGxlY2FsbGJhY2staWQuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDIzIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGV4cGVyaW1lbnRhbDpSZXF1ZXN0SWRsZUNhbGxiYWNrRW5hYmxlZD10cnVlIF0gLS0+Cis8
aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCdUaGlzIHRlc3RzIHRoYXQgcmVxdWVzdElk
bGVDYWxsYmFjayBpZGVudGlmaWVyIHN0YXJ0cyBmcm9tIDEgaW4gZWFjaCBkb2N1bWVudC4nKTsK
Kworc2hvdWxkQmUoJ3JlcXVlc3RJZGxlQ2FsbGJhY2soKCkgPT4geyB9KScsICcxJyk7CitzaG91
bGRCZSgncmVxdWVzdElkbGVDYWxsYmFjaygoKSA9PiB7IH0pJywgJzInKTsKKworY29uc3QgaWZy
YW1lMSA9IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
aWZyYW1lJykpOworY29uc3QgaWZyYW1lMiA9IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJykpOworCitzaG91bGRCZSgnaWZyYW1lMS5jb250
ZW50V2luZG93LnJlcXVlc3RJZGxlQ2FsbGJhY2soKCkgPT4geyB9KScsICcxJyk7CitzaG91bGRC
ZSgnaWZyYW1lMi5jb250ZW50V2luZG93LnJlcXVlc3RJZGxlQ2FsbGJhY2soKCkgPT4geyB9KScs
ICcxJyk7CitzaG91bGRCZSgnaWZyYW1lMS5jb250ZW50V2luZG93LnJlcXVlc3RJZGxlQ2FsbGJh
Y2soKCkgPT4geyB9KScsICcyJyk7CitzaG91bGRCZSgnaWZyYW1lMS5jb250ZW50V2luZG93LnJl
cXVlc3RJZGxlQ2FsbGJhY2soKCkgPT4geyB9KScsICczJyk7CitzaG91bGRCZSgnaWZyYW1lMi5j
b250ZW50V2luZG93LnJlcXVlc3RJZGxlQ2FsbGJhY2soKCkgPT4geyB9KScsICcyJyk7CisKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcmVxdWVzdGlkbGVj
YWxsYmFjay9yZXF1ZXN0aWRsZWNhbGxiYWNrLW5vdC1lbmFibGVkLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9yZXF1ZXN0aWRsZWNhbGxiYWNrL3JlcXVlc3RpZGxlY2Fs
bGJhY2stbm90LWVuYWJsZWQtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRl
c3RzL3JlcXVlc3RpZGxlY2FsbGJhY2svcmVxdWVzdGlkbGVjYWxsYmFjay1ub3QtZW5hYmxlZC1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorVGhpcyB0ZXN0cyB0
aGF0IHdoZW4gcmVxdWVzdElkbGVDYWxsYmFjayBpcyBub3QgZW5hYmxlZCwgcmVxdWVzdElkbGVD
YWxsYmFjayBhbmQgSWRsZURlYWRsaW5lIGFyZSBub3QgZGVmaW5lZC4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1Mgd2luZG93LnJlcXVlc3RJZGxlQ2FsbGJhY2sgaXMgdW5k
ZWZpbmVkLgorUEFTUyB3aW5kb3cuY2FuY2VsSWRsZUNhbGxiYWNrIGlzIHVuZGVmaW5lZC4KK1BB
U1Mgd2luZG93LklkbGVEZWFkbGluZSBpcyB1bmRlZmluZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvcmVxdWVz
dGlkbGVjYWxsYmFjay9yZXF1ZXN0aWRsZWNhbGxiYWNrLW5vdC1lbmFibGVkLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvcmVxdWVzdGlkbGVjYWxsYmFjay9yZXF1ZXN0aWRsZWNhbGxi
YWNrLW5vdC1lbmFibGVkLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvcmVxdWVz
dGlkbGVjYWxsYmFjay9yZXF1ZXN0aWRsZWNhbGxiYWNrLW5vdC1lbmFibGVkLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBleHBlcmltZW50YWw6UmVxdWVzdElkbGVDYWxsYmFja0VuYWJsZWQ9ZmFsc2Ug
XSAtLT4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oJ1RoaXMgdGVzdHMgdGhhdCB3
aGVuIHJlcXVlc3RJZGxlQ2FsbGJhY2sgaXMgbm90IGVuYWJsZWQsIHJlcXVlc3RJZGxlQ2FsbGJh
Y2sgYW5kIElkbGVEZWFkbGluZSBhcmUgbm90IGRlZmluZWQuJyk7CisKK3Nob3VsZEJlVW5kZWZp
bmVkKCd3aW5kb3cucmVxdWVzdElkbGVDYWxsYmFjaycpOworc2hvdWxkQmVVbmRlZmluZWQoJ3dp
bmRvdy5jYW5jZWxJZGxlQ2FsbGJhY2snKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCd3aW5kb3cuSWRs
ZURlYWRsaW5lJyk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380391</attachid>
            <date>2019-10-07 20:55:07 -0700</date>
            <delta_ts>2019-10-07 21:49:36 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-202653-20191007205506.patch</filename>
            <type>text/plain</type>
            <size>51827</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MDc5NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ5IEBACisyMDE5LTEwLTA3ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBJREwgZm9yIHJlcXVlc3RJ
ZGxlQ2FsbGJhY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMjY1MworCisgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgorCisgICAg
ICAgIEFkZGVkIHRoZSBiYXNpYyBzY2FmZm9sZGluZyBmb3IgaW1wbGVtZW50aW5nIHJlcXVlc3RJ
ZGxlQ2FsbGJhY2sgZGlzYWJsZWQgYnkgZGVmYXVsdDoKKyAgICAgICAgaHR0cHM6Ly93M2MuZ2l0
aHViLmlvL3JlcXVlc3RpZGxlY2FsbGJhY2svCisKKyAgICAgICAgVGhpcyBwYXRjaCBqdXN0IGFk
ZHMgdGhlIHN1cHBvcnQgZm9yIGNhbGxpbmcgcmVxdWVzdElkbGVDYWxsYmFjayB3aGljaCBnZW5l
cmF0ZXMgYSBtb25vdG9uaWNhbGx5IGluY3JlYXNpbmcgbnVtYmVyLgorICAgICAgICBUaGUgY2Fs
bGJhY2sgaXMgbmV2ZXIgY2FsbGVkIGZvciBub3cuCisKKyAgICAgICAgVGVzdHM6IHJlcXVlc3Rp
ZGxlY2FsbGJhY2svcmVxdWVzdGlkbGVjYWxsYmFjay1lbmFibGVkLmh0bWwKKyAgICAgICAgICAg
ICAgIHJlcXVlc3RpZGxlY2FsbGJhY2svcmVxdWVzdGlkbGVjYWxsYmFjay1pZC5odG1sCisgICAg
ICAgICAgICAgICByZXF1ZXN0aWRsZWNhbGxiYWNrL3JlcXVlc3RpZGxlY2FsbGJhY2stbm90LWVu
YWJsZWQuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZl
ZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29y
ZUJ1aWx0aW5OYW1lcy5oOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6cmVxdWVzdElkbGVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6Y2FuY2VsSWRsZUNhbGxiYWNrKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
aDoKKyAgICAgICAgKiBkb20vSWRsZUNhbGxiYWNrQ29udHJvbGxlci5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SWRsZUNhbGxiYWNrQ29udHJvbGxlcjo6cXVldWVJZGxlQ2FsbGJhY2sp
OgorICAgICAgICAoV2ViQ29yZTo6SWRsZUNhbGxiYWNrQ29udHJvbGxlcjo6cmVtb3ZlSWRsZUNh
bGxiYWNrKToKKyAgICAgICAgKiBkb20vSWRsZUNhbGxiYWNrQ29udHJvbGxlci5oOiBBZGRlZC4K
KyAgICAgICAgKiBkb20vSWRsZURlYWRsaW5lLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpJZGxlRGVhZGxpbmU6OnRpbWVSZW1haW5pbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
SWRsZURlYWRsaW5lOjpkaWRUaW1lb3V0IGNvbnN0KToKKyAgICAgICAgKiBkb20vSWRsZURlYWRs
aW5lLmg6IEFkZGVkLgorICAgICAgICAqIGRvbS9JZGxlRGVhZGxpbmUuaWRsOiBBZGRlZC4KKyAg
ICAgICAgKiBkb20vSWRsZVJlcXVlc3RDYWxsYmFjay5oOiBBZGRlZC4KKyAgICAgICAgKiBkb20v
SWRsZVJlcXVlc3RDYWxsYmFjay5pZGw6IEFkZGVkLgorICAgICAgICAqIGRvbS9JZGxlUmVxdWVz
dE9wdGlvbnMuaDogQWRkZWQuCisgICAgICAgICogZG9tL0lkbGVSZXF1ZXN0T3B0aW9ucy5pZGw6
IEFkZGVkLgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRPTVdpbmRvdzo6cmVxdWVzdElkbGVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpET01X
aW5kb3c6OmNhbmNlbElkbGVDYWxsYmFjayk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDoK
KyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy55
YW1sOgorCiAyMDE5LTEwLTA3ICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkIFdpbkNhaXJvIGJ1aWxkIGZpeCBmb3IgcjI1MDc1OC4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAyNTA3OTQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNzA2LDYgKzcwNiw5IEBAIHNl
dChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgZG9tL0ZvY3VzRXZlbnQuaWRsCiAgICAg
ZG9tL0dsb2JhbEV2ZW50SGFuZGxlcnMuaWRsCiAgICAgZG9tL0hhc2hDaGFuZ2VFdmVudC5pZGwK
KyAgICBkb20vSWRsZURlYWRsaW5lLmlkbAorICAgIGRvbS9JZGxlUmVxdWVzdENhbGxiYWNrLmlk
bAorICAgIGRvbS9JZGxlUmVxdWVzdE9wdGlvbnMuaWRsCiAgICAgZG9tL0lucHV0RXZlbnQuaWRs
CiAgICAgZG9tL0tleWJvYXJkRXZlbnQuaWRsCiAgICAgZG9tL01lc3NhZ2VDaGFubmVsLmlkbApJ
bmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAyNTA3OTQpCisrKyBT
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC02MDYs
NiArNjA2LDkgQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvZG9tL0ZvY3Vz
RXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9HbG9iYWxFdmVudEhhbmRsZXJzLmlkbCBc
CiAgICAgJChXZWJDb3JlKS9kb20vSGFzaENoYW5nZUV2ZW50LmlkbCBcCisgICAgJChXZWJDb3Jl
KS9kb20vSWRsZURlYWRsaW5lLmlkbCBcCisgICAgJChXZWJDb3JlKS9kb20vSWRsZVJlcXVlc3RD
YWxsYmFjay5pZGwgXAorICAgICQoV2ViQ29yZSkvZG9tL0lkbGVSZXF1ZXN0T3B0aW9ucy5pZGwg
XAogICAgICQoV2ViQ29yZSkvZG9tL0lucHV0RXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Rv
bS9LZXlib2FyZEV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vTWVzc2FnZUNoYW5uZWwu
aWRsIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CShyZXZpc2lvbiAyNTA3OTQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtODg2LDYgKzg4Niw4IEBAIGRvbS9H
ZW5lcmljRXZlbnRRdWV1ZS5jcHAKIGRvbS9IYXNoQ2hhbmdlRXZlbnQuY3BwCiBkb20vSWRUYXJn
ZXRPYnNlcnZlci5jcHAKIGRvbS9JZFRhcmdldE9ic2VydmVyUmVnaXN0cnkuY3BwCitkb20vSWRs
ZURlYWRsaW5lLmNwcAorZG9tL0lkbGVDYWxsYmFja0NvbnRyb2xsZXIuY3BwCiBkb20vSW5saW5l
Q2xhc3NpY1NjcmlwdC5jcHAKIGRvbS9JbmxpbmVTdHlsZVNoZWV0T3duZXIuY3BwCiBkb20vSW5w
dXRFdmVudC5jcHAKQEAgLTI5NjUsNiArMjk2Nyw5IEBAIEpTSURCUmVxdWVzdC5jcHAKIEpTSURC
VHJhbnNhY3Rpb24uY3BwCiBKU0lEQlRyYW5zYWN0aW9uTW9kZS5jcHAKIEpTSURCVmVyc2lvbkNo
YW5nZUV2ZW50LmNwcAorSlNJZGxlUmVxdWVzdENhbGxiYWNrLmNwcAorSlNJZGxlUmVxdWVzdE9w
dGlvbnMuY3BwCitKU0lkbGVEZWFkbGluZS5jcHAKIEpTSW1hZ2VCaXRtYXAuY3BwCiBKU0ltYWdl
Qml0bWFwT3B0aW9ucy5jcHAKIEpTSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcApJbmRl
eDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkocmV2aXNpb24gMjUwNzk0KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yODUyLDYgKzI4NTIsMTAgQEAKIAkJ
OUI2OUQzQjkxQjk5MTAwNzAwRTM1MTJCIC8qIEpTSFRNTFNsb3RFbGVtZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjY5RDNCNzFCOTkxMDA3MDBF
MzUxMkIgLyogSlNIVE1MU2xvdEVsZW1lbnQuaCAqLzsgfTsKIAkJOUI2QzQxNTMxMzQ0OTQ5MDAw
MDg1QjYyIC8qIFN0cmluZ1dpdGhEaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCNkM0MTUyMTM0NDk0OTAwMDA4NUI2MiAvKiBTdHJpbmdX
aXRoRGlyZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJOUI3MTRFMjExQzkxMTY2OTAwQUMwRTkyIC8qIEV2ZW50UGF0aC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI3MTRFMUYxQzkxMTY2OTAw
QUMwRTkyIC8qIEV2ZW50UGF0aC5oICovOyB9OworCQk5Qjc0MjYwNTIzNEJFOTU2MDBEQjUyRTkg
LyogSWRsZVJlcXVlc3RDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOUI3NDI2MDMyMzRCRTk1NjAwREI1MkU5IC8qIElkbGVSZXF1ZXN0Q2Fs
bGJhY2suaCAqLzsgfTsKKwkJOUI3NDI2MEIyMzRCRUE2RTAwREI1MkU5IC8qIElkbGVEZWFkbGlu
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI3NDI2
MDgyMzRCRUE2RTAwREI1MkU5IC8qIElkbGVEZWFkbGluZS5oICovOyB9OworCQk5Qjg2NEYwMjIz
NEMwMjhBMDA2RDEwRUIgLyogSWRsZVJlcXVlc3RPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Qjg2NEYwMDIzNEMwMjhBMDA2RDEwRUIgLyog
SWRsZVJlcXVlc3RPcHRpb25zLmggKi87IH07CisJCTlCODY0RjA2MjM0QzA4OTMwMDZEMTBFQiAv
KiBJZGxlQ2FsbGJhY2tDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5Qjg2NEYwNTIzNEMwODkzMDA2RDEwRUIgLyogSWRsZUNhbGxiYWNr
Q29udHJvbGxlci5oICovOyB9OwogCQk5QkEyNzNGNDE3MjIwNkJCMDA5N0NFNDcgLyogTG9naWNh
bFNlbGVjdGlvbk9mZnNldENhY2hlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOUJBMjczRjMxNzIyMDZCQjAwOTdDRTQ3IC8qIExvZ2ljYWxTZWxlY3Rp
b25PZmZzZXRDYWNoZXMuaCAqLzsgfTsKIAkJOUJBQUM0NUMyMTUyMDEyODAwM0Q0QTk4IC8qIEdD
UmVhY2hhYmxlUmVmLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5QkFBQzQ1NjIxNTFFMzlFMDAzRDRBOTggLyogR0NSZWFjaGFibGVSZWYuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QkFCNkM2QzEyNTUw
NjMxMDAxNjI2RDQgLyogRWRpdGluZ1N0eWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5QkFCNkM2QTEyNTUwNjMxMDAxNjI2RDQgLyogRWRpdGluZ1N0
eWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTExMDY4LDcgKzExMDcyLDE2IEBACiAJCTlCNkM0MTUyMTM0NDk0OTAwMDA4NUI2MiAvKiBTdHJp
bmdXaXRoRGlyZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cmlu
Z1dpdGhEaXJlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUI3MTRFMUUx
QzkxMTY2OTAwQUMwRTkyIC8qIEV2ZW50UGF0aC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBFdmVudFBhdGguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5QjcxNEUxRjFDOTExNjY5MDBBQzBFOTIgLyogRXZlbnRQYXRoLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50UGF0aC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5Qjc0MjYwMzIzNEJFOTU2MDBEQjUyRTkgLyogSWRsZVJlcXVlc3RDYWxsYmFjay5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBJZGxlUmVxdWVzdENhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTlCNzQyNjA0MjM0QkU5NTYwMERCNTJFOSAvKiBJZGxlUmVxdWVzdENhbGxiYWNr
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBJZGxlUmVxdWVzdENhbGxiYWNrLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOUI3NDI2MDgyMzRCRUE2RTAwREI1MkU5IC8qIElkbGVEZWFkbGluZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBJZGxlRGVhZGxpbmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OUI3NDI2MDkyMzRCRUE2RTAwREI1MkU5IC8qIElkbGVEZWFkbGluZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBJZGxlRGVhZGxpbmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
Qjc0MjYwQTIzNEJFQTZFMDBEQjUyRTkgLyogSWRsZURlYWRsaW5lLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBJZGxlRGVh
ZGxpbmUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5Qjg1NTMwNTIwRTczM0I1
MDA5RUVGNEYgLyogRXZlbnRUYXJnZXRGYWN0b3J5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IEV2ZW50VGFyZ2V0RmFjdG9yeS5jcHA7IHBhdGggPSBEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0V2ZW50VGFyZ2V0RmFjdG9yeS5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07CisJCTlCODY0RjAwMjM0QzAyOEEwMDZEMTBFQiAvKiBJZGxlUmVxdWVz
dE9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSWRsZVJlcXVlc3RPcHRpb25zLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCODY0RjAxMjM0QzAyOEEwMDZEMTBFQiAvKiBJZGxlUmVx
dWVzdE9wdGlvbnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IElkbGVSZXF1ZXN0T3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTlCODY0RjA1MjM0QzA4OTMwMDZEMTBFQiAvKiBJZGxlQ2FsbGJh
Y2tDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElkbGVDYWxsYmFja0NvbnRyb2xsZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUI4NjRGMDcyMzRDMDhBMzAwNkQxMEVCIC8q
IElkbGVDYWxsYmFja0NvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSWRsZUNhbGxi
YWNrQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCOTI5OUIw
MUY2Nzk2QTQwMDY3MjNDMiAvKiBXZWJDb250ZW50UmVhZGVyQ29jb2EubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb250ZW50UmVhZGVyQ29jb2EubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCOUNBREE3MjE2NURDNzYwMEU4RDg1OCAvKiBK
U011dGF0aW9uUmVjb3JkQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTXV0YXRpb25S
ZWNvcmRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QkEyNzNGMzE3
MjIwNkJCMDA5N0NFNDcgLyogTG9naWNhbFNlbGVjdGlvbk9mZnNldENhY2hlcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2dpY2FsU2VsZWN0aW9uT2Zmc2V0Q2FjaGVzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNzY2Nyw2ICsyNzY4MCwxNSBAQAogCQkJ
CUUzQkYxOUU2MjJBRjMwMkEwMDlDOTkyNiAvKiBIYXNoQ2hhbmdlRXZlbnQuY3BwICovLAogCQkJ
CTI0NDJCQkY4MTE5NEM5RDMwMEQ0OTQ2OSAvKiBIYXNoQ2hhbmdlRXZlbnQuaCAqLywKIAkJCQk4
NDgyQjc0NDExOThDMzJFMDBCRkIwMDUgLyogSGFzaENoYW5nZUV2ZW50LmlkbCAqLywKKwkJCQk5
Qjg2NEYwNzIzNEMwOEEzMDA2RDEwRUIgLyogSWRsZUNhbGxiYWNrQ29udHJvbGxlci5jcHAgKi8s
CisJCQkJOUI4NjRGMDUyMzRDMDg5MzAwNkQxMEVCIC8qIElkbGVDYWxsYmFja0NvbnRyb2xsZXIu
aCAqLywKKwkJCQk5Qjc0MjYwOTIzNEJFQTZFMDBEQjUyRTkgLyogSWRsZURlYWRsaW5lLmNwcCAq
LywKKwkJCQk5Qjc0MjYwODIzNEJFQTZFMDBEQjUyRTkgLyogSWRsZURlYWRsaW5lLmggKi8sCisJ
CQkJOUI3NDI2MEEyMzRCRUE2RTAwREI1MkU5IC8qIElkbGVEZWFkbGluZS5pZGwgKi8sCisJCQkJ
OUI3NDI2MDMyMzRCRTk1NjAwREI1MkU5IC8qIElkbGVSZXF1ZXN0Q2FsbGJhY2suaCAqLywKKwkJ
CQk5Qjc0MjYwNDIzNEJFOTU2MDBEQjUyRTkgLyogSWRsZVJlcXVlc3RDYWxsYmFjay5pZGwgKi8s
CisJCQkJOUI4NjRGMDAyMzRDMDI4QTAwNkQxMEVCIC8qIElkbGVSZXF1ZXN0T3B0aW9ucy5oICov
LAorCQkJCTlCODY0RjAxMjM0QzAyOEEwMDZEMTBFQiAvKiBJZGxlUmVxdWVzdE9wdGlvbnMuaWRs
ICovLAogCQkJCUMzQ0YxN0EwMTVCMDA2M0YwMDI3NkQzOSAvKiBJZFRhcmdldE9ic2VydmVyLmNw
cCAqLywKIAkJCQlDM0NGMTdBMTE1QjAwNjNGMDAyNzZEMzkgLyogSWRUYXJnZXRPYnNlcnZlci5o
ICovLAogCQkJCUMzQ0YxN0EyMTVCMDA2M0YwMDI3NkQzOSAvKiBJZFRhcmdldE9ic2VydmVyUmVn
aXN0cnkuY3BwICovLApAQCAtMjk2OTksNiArMjk3MjEsMTAgQEAKIAkJCQkxQTcxRDU3QzBGMzM4
MTkwMDBGOUNFNEUgLyogSWRlbnRpZmllclJlcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlFOTEx
QzUwRUY4NkQ0NzAwOUQwQ0FGIC8qIElkZW50aXR5VHJhbnNmb3JtT3BlcmF0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk3Q0U5QTEyQjFFQTJGMURCMDA2NTFBRDEgLyogSURMQXR0cmlidXRlcy5q
c29uIGluIEhlYWRlcnMgKi8sCisJCQkJOUI4NjRGMDYyMzRDMDg5MzAwNkQxMEVCIC8qIElkbGVD
YWxsYmFja0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTlCNzQyNjBCMjM0QkVBNkUw
MERCNTJFOSAvKiBJZGxlRGVhZGxpbmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTlCNzQyNjA1MjM0
QkU5NTYwMERCNTJFOSAvKiBJZGxlUmVxdWVzdENhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk5Qjg2NEYwMjIzNEMwMjhBMDA2RDEwRUIgLyogSWRsZVJlcXVlc3RPcHRpb25zLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDMEMwNTRDRDExMThDOEU0MDBDRTI2MzYgLyogSURMUGFyc2VyLnBtIGlu
IEhlYWRlcnMgKi8sCiAJCQkJN0M1MjIyOTYxRTFEQUUwMzAwMkNCOEY3IC8qIElETFR5cGVzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDM0NGMTdBNTE1QjAwNjNGMDAyNzZEMzkgLyogSWRUYXJnZXRP
YnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCShyZXZpc2lvbiAyNTA3OTQpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEzMCw2ICsxMzAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oSURC
VmVyc2lvbkNoYW5nZUV2ZW50KSBcCiAgICAgbWFjcm8oSW1hZ2VCaXRtYXApIFwKICAgICBtYWNy
byhJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQpIFwKKyAgICBtYWNybyhJZGxlRGVhZGxpbmUp
IFwKICAgICBtYWNybyhJbnB1dEV2ZW50KSBcCiAgICAgbWFjcm8oSW50ZXJzZWN0aW9uT2JzZXJ2
ZXIpIFwKICAgICBtYWNybyhJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5KSBcCkBAIC0yNDMsNiAr
MjQ0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKGJ5b2JSZXF1ZXN0KSBcCiAg
ICAgbWFjcm8oY2FjaGVzKSBcCiAgICAgbWFjcm8oY2FuY2VsKSBcCisgICAgbWFjcm8oY2FuY2Vs
SWRsZUNhbGxiYWNrKSBcCiAgICAgbWFjcm8oY2xvbmVBcnJheUJ1ZmZlcikgXAogICAgIG1hY3Jv
KGNsb3NlKSBcCiAgICAgbWFjcm8oY2xvc2VSZXF1ZXN0ZWQpIFwKQEAgLTMxNyw2ICszMTksNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8ocmVhZGFibGVTdHJlYW1Db250cm9sbGVy
KSBcCiAgICAgbWFjcm8ocmVhZGVyKSBcCiAgICAgbWFjcm8ocmVhZHlQcm9taXNlQ2FwYWJpbGl0
eSkgXAorICAgIG1hY3JvKHJlcXVlc3RJZGxlQ2FsbGJhY2spIFwKICAgICBtYWNybyhyZXNwb25z
ZSkgXAogICAgIG1hY3JvKHJlc3BvbnNlQ2FjaGVJc1ZhbGlkKSBcCiAgICAgbWFjcm8ocmV0cmll
dmVSZXNwb25zZSkgXApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lvbiAyNTA3
OTQpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMDksNiArMTA5LDcgQEAKICNpbmNsdWRlICJIYXNoQ2hhbmdlRXZlbnQuaCIKICNpbmNsdWRl
ICJIaXN0b3J5LmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgorI2luY2x1ZGUgIklkbGVD
YWxsYmFja0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRl
eHQuaCIKICNpbmNsdWRlICJJbWFnZUxvYWRlci5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5oIgpAQCAtNjM2MSw2ICs2MzYyLDIwIEBAIHZvaWQgRG9jdW1lbnQ6OmNsZWFy
U2NyaXB0ZWRBbmltYXRpb25Db24KICAgICBtX3NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlciA9
IG51bGxwdHI7CiB9CiAKK2ludCBEb2N1bWVudDo6cmVxdWVzdElkbGVDYWxsYmFjayhSZWY8SWRs
ZVJlcXVlc3RDYWxsYmFjaz4mJiBjYWxsYmFjaywgU2Vjb25kcyB0aW1lb3V0KQoreworICAgIGlm
ICghbV9pZGxlQ2FsbGJhY2tDb250cm9sbGVyKQorICAgICAgICBtX2lkbGVDYWxsYmFja0NvbnRy
b2xsZXIgPSBtYWtlVW5pcXVlPElkbGVDYWxsYmFja0NvbnRyb2xsZXI+KCk7CisgICAgcmV0dXJu
IG1faWRsZUNhbGxiYWNrQ29udHJvbGxlci0+cXVldWVJZGxlQ2FsbGJhY2soV1RGTW92ZShjYWxs
YmFjayksIHRpbWVvdXQpOworfQorCit2b2lkIERvY3VtZW50OjpjYW5jZWxJZGxlQ2FsbGJhY2so
aW50IGlkKQoreworICAgIGlmICghbV9pZGxlQ2FsbGJhY2tDb250cm9sbGVyKQorICAgICAgICBy
ZXR1cm47CisgICAgbV9pZGxlQ2FsbGJhY2tDb250cm9sbGVyLT5yZW1vdmVJZGxlQ2FsbGJhY2so
aWQpOworfQorCiB2b2lkIERvY3VtZW50Ojp3aGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKCkKIHsK
ICAgICBQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgJ
KHJldmlzaW9uIDI1MDc5NCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNDQsNiArMTQ0LDggQEAgY2xhc3MgSFRNTFNjcmlwdEVsZW1lbnQ7CiBj
bGFzcyBIaXRUZXN0TG9jYXRpb247CiBjbGFzcyBIaXRUZXN0UmVxdWVzdDsKIGNsYXNzIEhpdFRl
c3RSZXN1bHQ7CitjbGFzcyBJZGxlQ2FsbGJhY2tDb250cm9sbGVyOworY2xhc3MgSWRsZVJlcXVl
c3RDYWxsYmFjazsKIGNsYXNzIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dDsKIGNsYXNzIElu
dFBvaW50OwogY2xhc3MgSlNOb2RlOwpAQCAtMTIwNSw2ICsxMjA3LDkgQEAgcHVibGljOgogICAg
IGludCByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoUmVmPFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxi
YWNrPiYmKTsKICAgICB2b2lkIGNhbmNlbEFuaW1hdGlvbkZyYW1lKGludCBpZCk7CiAKKyAgICBp
bnQgcmVxdWVzdElkbGVDYWxsYmFjayhSZWY8SWRsZVJlcXVlc3RDYWxsYmFjaz4mJiwgU2Vjb25k
cyB0aW1lb3V0KTsKKyAgICB2b2lkIGNhbmNlbElkbGVDYWxsYmFjayhpbnQgaWQpOworCiAgICAg
RXZlbnRUYXJnZXQqIGVycm9yRXZlbnRUYXJnZXQoKSBmaW5hbDsKICAgICB2b2lkIGxvZ0V4Y2Vw
dGlvblRvQ29uc29sZShjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBz
b3VyY2VVUkwsIGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyLCBSZWZQdHI8SW5zcGVj
dG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYpIGZpbmFsOwogCkBAIC0xODM3LDYgKzE4NDIsOCBAQCBw
cml2YXRlOgogICAgIHZvaWQgY2xlYXJTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIoKTsKICAg
ICBSZWZQdHI8U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyPiBtX3NjcmlwdGVkQW5pbWF0aW9u
Q29udHJvbGxlcjsKIAorICAgIHN0ZDo6dW5pcXVlX3B0cjxJZGxlQ2FsbGJhY2tDb250cm9sbGVy
PiBtX2lkbGVDYWxsYmFja0NvbnRyb2xsZXI7CisKICAgICB2b2lkIG5vdGlmeU1lZGlhQ2FwdHVy
ZU9mVmlzaWJpbGl0eUNoYW5nZWQoKTsKIAogICAgIHZvaWQgZGlkTG9nTWVzc2FnZShjb25zdCBX
VEZMb2dDaGFubmVsJiwgV1RGTG9nTGV2ZWwsIFZlY3RvcjxKU09OTG9nVmFsdWU+JiYpIGZpbmFs
OwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0lkbGVDYWxsYmFja0NvbnRyb2xsZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9JZGxlQ2FsbGJhY2tDb250cm9sbGVyLmNw
cAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vSWRsZUNhbGxiYWNrQ29udHJv
bGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJZGxlQ2FsbGJhY2tDb250cm9sbGVyLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworaW50IElkbGVDYWxsYmFja0NvbnRyb2xsZXI6OnF1ZXVl
SWRsZUNhbGxiYWNrKFJlZjxJZGxlUmVxdWVzdENhbGxiYWNrPiYmIGNhbGxiYWNrLCBTZWNvbmRz
KQoreworICAgICsrbV9pZGxlQ2FsbGJhY2tJZGVudGlmaWVyOworICAgIGF1dG8gaGFuZGxlID0g
bV9pZGxlQ2FsbGJhY2tJZGVudGlmaWVyOworCisgICAgbV9pZGxlUmVxdWVzdHMuYXBwZW5kKHsg
aGFuZGxlLCBXVEZNb3ZlKGNhbGxiYWNrKSB9KTsKKworICAgIC8vIEZJWE1FOiBRdWV1ZSBhIHRh
c2sgaWYgc3RhcnRfaWRsZV9wZXJpb2QgaXMgdHJ1ZS4KKyAgICAvLyBGSVhNRTogUXVldWUgYSB0
YXNrIGlmIHRpbWVvdXQgaXMgcG9zaXRpdmUuCisKKyAgICByZXR1cm4gaGFuZGxlOworfQorCit2
b2lkIElkbGVDYWxsYmFja0NvbnRyb2xsZXI6OnJlbW92ZUlkbGVDYWxsYmFjayhpbnQgc2lnbmVk
SWRlbnRpZmllcikKK3sKKyAgICBpZiAoc2lnbmVkSWRlbnRpZmllciA8PSAwKQorICAgICAgICBy
ZXR1cm47CisgICAgdW5zaWduZWQgaWRlbnRpZmllciA9IHNpZ25lZElkZW50aWZpZXI7CisgICAg
bV9pZGxlUmVxdWVzdHMucmVtb3ZlRmlyc3RNYXRjaGluZyhbaWRlbnRpZmllcl0oYXV0byYgcmVx
dWVzdCkgeworICAgICAgICByZXR1cm4gcmVxdWVzdC5pZGVudGlmaWVyID09IGlkZW50aWZpZXI7
CisgICAgfSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2RvbS9JZGxlQ2FsbGJhY2tDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZG9tL0lkbGVDYWxsYmFja0NvbnRyb2xsZXIuaAkobm9uZXhpc3RlbnQpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9kb20vSWRsZUNhbGxiYWNrQ29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIklk
bGVSZXF1ZXN0Q2FsbGJhY2suaCIKKyNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgorI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBJZGxlQ2FsbGJh
Y2tDb250cm9sbGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKworcHVibGljOgor
ICAgIGludCBxdWV1ZUlkbGVDYWxsYmFjayhSZWY8SWRsZVJlcXVlc3RDYWxsYmFjaz4mJiwgU2Vj
b25kcyB0aW1lb3V0KTsKKyAgICB2b2lkIHJlbW92ZUlkbGVDYWxsYmFjayhpbnQpOworCitwcml2
YXRlOgorICAgIHVuc2lnbmVkIG1faWRsZUNhbGxiYWNrSWRlbnRpZmllciB7IDAgfTsKKworICAg
IHN0cnVjdCBJZGxlUmVxdWVzdCB7CisgICAgICAgIHVuc2lnbmVkIGlkZW50aWZpZXI7CisgICAg
ICAgIFJlZjxJZGxlUmVxdWVzdENhbGxiYWNrPiBjYWxsYmFjazsKKyAgICB9OworCisgICAgVmVj
dG9yPElkbGVSZXF1ZXN0PiBtX2lkbGVSZXF1ZXN0czsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9JZGxlRGVhZGxpbmUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9JZGxlRGVhZGxpbmUuY3BwCShub25leGlzdGVudCkK
KysrIFNvdXJjZS9XZWJDb3JlL2RvbS9JZGxlRGVhZGxpbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiSWRsZURlYWRsaW5lLmgiCisKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJE
b2N1bWVudC5oIgorI2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0RPTUhpZ2hSZXNUaW1lU3RhbXAgSWRsZURl
YWRsaW5lOjp0aW1lUmVtYWluaW5nKERvY3VtZW50JiBkb2N1bWVudCkgY29uc3QKK3sKKyAgICBh
dXRvIHdpbmRvdyA9IG1ha2VSZWZQdHIoZG9jdW1lbnQuZG9tV2luZG93KCkpOworICAgIGlmICgh
d2luZG93KQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gd2luZG93LT5wZXJmb3JtYW5j
ZSgpLnJlbGF0aXZlVGltZUZyb21UaW1lT3JpZ2luSW5SZWR1Y2VkUmVzb2x1dGlvbihtX2RlYWRs
aW5lKTsKK30KKworYm9vbCBJZGxlRGVhZGxpbmU6OmRpZFRpbWVvdXQoRG9jdW1lbnQmIGRvY3Vt
ZW50KSBjb25zdAoreworICAgIGF1dG8gd2luZG93ID0gbWFrZVJlZlB0cihkb2N1bWVudC5kb21X
aW5kb3coKSk7CisgICAgaWYgKCF3aW5kb3cpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAg
Ly8gUmVkdWNlIHRoZSByZXNvbHV0aW9uIGJlZm9yZSB0aGUgY29tcGFyaXNpb24gdG8gcHJldmVu
dCByZXNvbHV0aW9uIGxlYWthZ2UuCisgICAgYXV0byBkZWFkbGluZSA9IHdpbmRvdy0+cGVyZm9y
bWFuY2UoKS5yZWxhdGl2ZVRpbWVGcm9tVGltZU9yaWdpbkluUmVkdWNlZFJlc29sdXRpb24obV9k
ZWFkbGluZSk7CisgICAgYXV0byBub3cgPSB3aW5kb3ctPnBlcmZvcm1hbmNlKCkubm93KCk7Cisg
ICAgcmV0dXJuIGRlYWRsaW5lID49IG5vdzsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJ
bmRleDogU291cmNlL1dlYkNvcmUvZG9tL0lkbGVEZWFkbGluZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2RvbS9JZGxlRGVhZGxpbmUuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9kb20vSWRsZURlYWRsaW5lLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRE9NSGlnaFJlc1RpbWVT
dGFtcC5oIgorI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsKKwor
Y2xhc3MgSWRsZURlYWRsaW5lIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8SWRsZURlYWRsaW5l
PiB7CitwdWJsaWM6CisgICAgUmVmPElkbGVEZWFkbGluZT4gY3JlYXRlKE1vbm90b25pY1RpbWUg
ZGVhZGxpbmUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJZGxlRGVhZGxp
bmUoZGVhZGxpbmUpKTsKKyAgICB9CisKKyAgICBET01IaWdoUmVzVGltZVN0YW1wIHRpbWVSZW1h
aW5pbmcoRG9jdW1lbnQmKSBjb25zdDsKKyAgICBib29sIGRpZFRpbWVvdXQoRG9jdW1lbnQmKSBj
b25zdDsKKworcHJpdmF0ZToKKyAgICBJZGxlRGVhZGxpbmUoTW9ub3RvbmljVGltZSBkZWFkbGlu
ZSkKKyAgICAgICAgOiBtX2RlYWRsaW5lKGRlYWRsaW5lKQorICAgIHsgfQorCisgICAgY29uc3Qg
TW9ub3RvbmljVGltZSBtX2RlYWRsaW5lOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJ
bmRleDogU291cmNlL1dlYkNvcmUvZG9tL0lkbGVEZWFkbGluZS5pZGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvZG9tL0lkbGVEZWFkbGluZS5pZGwJKG5vbmV4aXN0ZW50KQorKysgU291
cmNlL1dlYkNvcmUvZG9tL0lkbGVEZWFkbGluZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKK3R5cGVkZWYgZG91YmxlIERPTUhpZ2hSZXNUaW1lU3RhbXA7
CisKK1sKKyAgICBFbmFibGVkQnlTZXR0aW5nPXJlcXVlc3RJZGxlQ2FsbGJhY2ssCisgICAgSW1w
bGVtZW50YXRpb25MYWNrc1ZUYWJsZQorXSBpbnRlcmZhY2UgSWRsZURlYWRsaW5lIHsKKyAgICBb
Q2FsbFdpdGg9RG9jdW1lbnRdIERPTUhpZ2hSZXNUaW1lU3RhbXAgdGltZVJlbWFpbmluZygpOwor
ICAgIFtDYWxsV2l0aD1Eb2N1bWVudF0gcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gZGlkVGlt
ZW91dDsKK307CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vSWRsZVJlcXVlc3RDYWxsYmFjay5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9JZGxlUmVxdWVzdENhbGxiYWNrLmgJ
KG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0lkbGVSZXF1ZXN0Q2FsbGJhY2su
aAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlICJBY3RpdmVET01DYWxsYmFjay5oIgorI2luY2x1ZGUgIkNhbGxiYWNr
UmVzdWx0LmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBJZGxlRGVhZGxpbmU7CisKK2NsYXNzIElkbGVSZXF1ZXN0Q2FsbGJhY2sg
OiBwdWJsaWMgUmVmQ291bnRlZDxJZGxlUmVxdWVzdENhbGxiYWNrPiwgcHVibGljIEFjdGl2ZURP
TUNhbGxiYWNrIHsKK3B1YmxpYzoKKyAgICB1c2luZyBBY3RpdmVET01DYWxsYmFjazo6QWN0aXZl
RE9NQ2FsbGJhY2s7CisKKyAgICB2aXJ0dWFsIENhbGxiYWNrUmVzdWx0PHZvaWQ+IGhhbmRsZUV2
ZW50KElkbGVEZWFkbGluZSYpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9JZGxlUmVxdWVzdENhbGxiYWNrLmlkbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vSWRsZVJlcXVlc3RDYWxsYmFjay5pZGwJKG5vbmV4aXN0
ZW50KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0lkbGVSZXF1ZXN0Q2FsbGJhY2suaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitjYWxsYmFjayBJZGxlUmVx
dWVzdENhbGxiYWNrID0gdm9pZCAoSWRsZURlYWRsaW5lIGRlYWRsaW5lKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2RvbS9JZGxlUmVxdWVzdE9wdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9kb20vSWRsZVJlcXVlc3RPcHRpb25zLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNl
L1dlYkNvcmUvZG9tL0lkbGVSZXF1ZXN0T3B0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PcHRp
b25hbC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBJZGxlUmVxdWVzdE9wdGlv
bnMgeworICAgIHVuc2lnbmVkIHRpbWVvdXQgeyAwIH07IC8vIFVzZWQgaWYgcG9zaXRpdmUuCit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vSWRs
ZVJlcXVlc3RPcHRpb25zLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vSWRs
ZVJlcXVlc3RPcHRpb25zLmlkbAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20v
SWRsZVJlcXVlc3RPcHRpb25zLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworZGljdGlvbmFyeSBJZGxlUmVxdWVzdE9wdGlvbnMgeworICAgIHVuc2lnbmVk
IGxvbmcgdGltZW91dDsKK307CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCShyZXZp
c2lvbiAyNTA3OTQpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTY4LDYgKzY4LDcgQEAKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNs
dWRlICJIVFRQUGFyc2Vycy5oIgogI2luY2x1ZGUgIkhpc3RvcnkuaCIKKyNpbmNsdWRlICJJZGxl
UmVxdWVzdE9wdGlvbnMuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIK
ICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93
QmFzZS5oIgpAQCAtMTc4MSw2ICsxNzgyLDIyIEBAIHZvaWQgRE9NV2luZG93OjpjYW5jZWxBbmlt
YXRpb25GcmFtZShpbnQKICAgICBkb2N1bWVudC0+Y2FuY2VsQW5pbWF0aW9uRnJhbWUoaWQpOwog
fQogCitpbnQgRE9NV2luZG93OjpyZXF1ZXN0SWRsZUNhbGxiYWNrKFJlZjxJZGxlUmVxdWVzdENh
bGxiYWNrPiYmIGNhbGxiYWNrLCBjb25zdCBJZGxlUmVxdWVzdE9wdGlvbnMmIG9wdGlvbnMpCit7
CisgICAgYXV0byBkb2N1bWVudCA9IG1ha2VSZWZQdHIodGhpcy0+ZG9jdW1lbnQoKSk7CisgICAg
aWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGRvY3VtZW50LT5y
ZXF1ZXN0SWRsZUNhbGxiYWNrKFdURk1vdmUoY2FsbGJhY2spLCBTZWNvbmRzOjpmcm9tTWlsbGlz
ZWNvbmRzKG9wdGlvbnMudGltZW91dCkpOworfQorCit2b2lkIERPTVdpbmRvdzo6Y2FuY2VsSWRs
ZUNhbGxiYWNrKGludCBpZCkKK3sKKyAgICBhdXRvIGRvY3VtZW50ID0gbWFrZVJlZlB0cih0aGlz
LT5kb2N1bWVudCgpKTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm47CisgICAg
cmV0dXJuIGRvY3VtZW50LT5jYW5jZWxJZGxlQ2FsbGJhY2soaWQpOworfQorCiB2b2lkIERPTVdp
bmRvdzo6Y3JlYXRlSW1hZ2VCaXRtYXAoSW1hZ2VCaXRtYXA6OlNvdXJjZSYmIHNvdXJjZSwgSW1h
Z2VCaXRtYXBPcHRpb25zJiYgb3B0aW9ucywgSW1hZ2VCaXRtYXA6OlByb21pc2UmJiBwcm9taXNl
KQogewogICAgIGF1dG8qIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuaAkocmV2aXNpb24gMjUwNzk0KQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaAkod29ya2luZyBjb3B5KQpAQCAtNjQsNiArNjQsNyBAQCBjbGFzcyBFbGVt
ZW50OwogY2xhc3MgRXZlbnRMaXN0ZW5lcjsKIGNsYXNzIEZsb2F0UmVjdDsKIGNsYXNzIEhpc3Rv
cnk7CitjbGFzcyBJZGxlUmVxdWVzdENhbGxiYWNrOwogY2xhc3MgTG9jYXRpb247CiBjbGFzcyBN
ZWRpYVF1ZXJ5TGlzdDsKIGNsYXNzIE5hdmlnYXRvcjsKQEAgLTc0LDYgKzc1LDcgQEAgY2xhc3Mg
UGFnZUNvbnNvbGVDbGllbnQ7CiBjbGFzcyBQZXJmb3JtYW5jZTsKIGNsYXNzIFBvc3RNZXNzYWdl
VGltZXI7CiBjbGFzcyBSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjazsKK2NsYXNzIFJlcXVl
c3RJZGxlQ2FsbGJhY2s7CiBjbGFzcyBTY2hlZHVsZWRBY3Rpb247CiBjbGFzcyBTY3JlZW47CiBj
bGFzcyBTdG9yYWdlOwpAQCAtODcsNiArODksNyBAQCBjbGFzcyBEZXZpY2VNb3Rpb25Db250cm9s
bGVyOwogY2xhc3MgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOwogI2VuZGlmCiAKK3N0cnVj
dCBJZGxlUmVxdWVzdE9wdGlvbnM7CiBzdHJ1Y3QgSW1hZ2VCaXRtYXBPcHRpb25zOwogc3RydWN0
IFdpbmRvd0ZlYXR1cmVzOwogCkBAIC0yNzUsNiArMjc4LDkgQEAgcHVibGljOgogICAgIGludCB3
ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoUmVmPFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxi
YWNrPiYmKTsKICAgICB2b2lkIGNhbmNlbEFuaW1hdGlvbkZyYW1lKGludCBpZCk7CiAKKyAgICBp
bnQgcmVxdWVzdElkbGVDYWxsYmFjayhSZWY8SWRsZVJlcXVlc3RDYWxsYmFjaz4mJiwgY29uc3Qg
SWRsZVJlcXVlc3RPcHRpb25zJik7CisgICAgdm9pZCBjYW5jZWxJZGxlQ2FsbGJhY2soaW50IGlk
KTsKKwogICAgIC8vIEltYWdlQml0bWFwCiAgICAgdm9pZCBjcmVhdGVJbWFnZUJpdG1hcChJbWFn
ZUJpdG1hcDo6U291cmNlJiYsIEltYWdlQml0bWFwT3B0aW9ucyYmLCBJbWFnZUJpdG1hcDo6UHJv
bWlzZSYmKTsKICAgICB2b2lkIGNyZWF0ZUltYWdlQml0bWFwKEltYWdlQml0bWFwOjpTb3VyY2Um
JiwgaW50IHN4LCBpbnQgc3ksIGludCBzdywgaW50IHNoLCBJbWFnZUJpdG1hcE9wdGlvbnMmJiwg
SW1hZ2VCaXRtYXA6OlByb21pc2UmJik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRs
CShyZXZpc2lvbiAyNTA3OTQpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJ
KHdvcmtpbmcgY29weSkKQEAgLTkzLDYgKzkzLDkgQEAgdHlwZWRlZiBVU1ZTdHJpbmcgQ1NTT01T
dHJpbmc7CiAgICAgbG9uZyByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoUmVxdWVzdEFuaW1hdGlvbkZy
YW1lQ2FsbGJhY2sgY2FsbGJhY2spOyAvLyBGSVhNRTogU2hvdWxkIHJldHVybiBhbiB1bnNpZ25l
ZCBsb25nLgogICAgIHZvaWQgY2FuY2VsQW5pbWF0aW9uRnJhbWUobG9uZyBoYW5kbGUpOyAvLyBG
SVhNRTogaGFuZGxlIHNob3VsZCBiZSBhbiB1bnNpZ25lZCBsb25nLgogCisgICAgW0VuYWJsZWRC
eVNldHRpbmc9cmVxdWVzdElkbGVDYWxsYmFja10gdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRsZUNh
bGxiYWNrKElkbGVSZXF1ZXN0Q2FsbGJhY2sgY2FsbGJhY2ssIG9wdGlvbmFsIElkbGVSZXF1ZXN0
T3B0aW9ucyBvcHRpb25zKTsKKyAgICBbRW5hYmxlZEJ5U2V0dGluZz1yZXF1ZXN0SWRsZUNhbGxi
YWNrXSB2b2lkIGNhbmNlbElkbGVDYWxsYmFjayh1bnNpZ25lZCBsb25nIGhhbmRsZSk7CisKICAg
ICBbQ2FsbFdpdGg9RXhlY1N0YXRlJkluY3VtYmVudFdpbmRvdywgRG9Ob3RDaGVja1NlY3VyaXR5
LCBGb3J3YXJkRGVjbGFyZUluSGVhZGVyLCBNYXlUaHJvd0V4Y2VwdGlvbl0gdm9pZCBwb3N0TWVz
c2FnZShhbnkgbWVzc2FnZSwgVVNWU3RyaW5nIHRhcmdldE9yaWdpbiwgb3B0aW9uYWwgc2VxdWVu
Y2U8b2JqZWN0PiB0cmFuc2ZlciA9IFtdKTsKIAogICAgIC8vIE9ic29sZXRlIG1lbWJlcnMsIHN0
aWxsIHBhcnQgb2YgdGhlIEhUTUwgc3BlY2lmaWNhdGlvbiAoaHR0cHM6Ly9odG1sLnNwZWMud2hh
dHdnLm9yZy8jV2luZG93LXBhcnRpYWwpLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy55YW1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFt
bAkocmV2aXNpb24gMjUwNzk0KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1s
CSh3b3JraW5nIGNvcHkpCkBAIC0zMzcsNiArMzM3LDggQEAgd2FudHNCYWxhbmNlZFNldERlZmVy
c0xvYWRpbmdCZWhhdmlvcjoKICAgaW5pdGlhbDogZmFsc2UKIHJlcXVlc3RBbmltYXRpb25GcmFt
ZUVuYWJsZWQ6CiAgIGluaXRpYWw6IHRydWUKK3JlcXVlc3RJZGxlQ2FsbGJhY2tFbmFibGVkOgor
ICBpbml0aWFsOiBmYWxzZQogCiBIVFRQU1VwZ3JhZGVFbmFibGVkOgogICBpbml0aWFsOiBmYWxz
ZQpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MDgxMikKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTktMTAtMDcgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIElETCBmb3IgcmVxdWVzdElk
bGVDYWxsYmFjaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjAyNjUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCisKKyAgICAg
ICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbDoKKwogMjAxOS0xMC0wNyAgS2F0ZSBDaGVu
ZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KIAogICAgICAgICBEb21haW4gcmVsYXRp
b25zaGlwcyBpbiB0aGUgSVRQIERhdGFiYXNlIHNob3VsZCBiZSBpbnNlcnRlZCBpbiBhIHNpbmds
ZSBxdWVyeSBhbmQgaWdub3JlIHJlcGVhdCBpbnNlcnQgYXR0ZW1wdHMuICgyMDI2MDQpCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwJKHJldmlzaW9uIDI1MDc5
NCkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwJKHdvcmtpbmcg
Y29weSkKQEAgLTM2Miw2ICszNjIsMTMgQEAgUmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZDoK
ICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IHRydWUKIAorUmVxdWVzdElkbGVDYWxsYmFj
a0VuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgZGVmYXVsdFZhbHVlOiBmYWxzZQorICBodW1hblJl
YWRhYmxlTmFtZTogInJlcXVlc3RJZGxlQ2FsbGJhY2siCisgIGh1bWFuUmVhZGFibGVEZXNjcmlw
dGlvbjogIkVuYWJsZSByZXF1ZXN0SWRsZUNhbGxiYWNrIHN1cHBvcnQiCisgIGNhdGVnb3J5OiBl
eHBlcmltZW50YWwKKwogRGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkOgogICB0eXBlOiBib29sCiAg
IGRlZmF1bHRWYWx1ZTogZmFsc2UKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI1MDc5NCkKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE5LTEwLTA3ICBSeW9zdWtlIE5pd2EgIDxy
bml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBJREwgZm9yIHJlcXVlc3RJZGxlQ2FsbGJh
Y2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjY1
MworCisgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgorCisgICAgICAgICogV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlBy
ZWZlcmVuY2VzLm1tOgorICAgICAgICAoK1tXZWJQcmVmZXJlbmNlcyBpbml0aWFsaXplXSk6Cisg
ICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJW
aWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX3ByZWZlcmVuY2VzQ2hhbmdlZDpd
KToKKwogMjAxOS0xMC0wNCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFJlbmFtZSBTY2hlbWVSZWdpc3RyeSB0byBMZWdhY3lTY2hlbWVSZWdp
c3RyeQpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNl
S2V5c1ByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCShyZXZpc2lvbiAyNTA3OTQpCisrKyBTb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNzIsNSArMjcyLDYgQEAKICNkZWZpbmUgV2ViS2l0UmVmZXJyZXJQ
b2xpY3lBdHRyaWJ1dGVFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFJlZmVycmVyUG9saWN5
QXR0cmlidXRlRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0UmVzaXplT2JzZXJ2ZXJFbmFibGVkUHJl
ZmVyZW5jZUtleSBAIldlYktpdFJlc2l6ZU9ic2VydmVyRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0
Q29yZU1hdGhNTEVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0Q29yZU1hdGhNTEVuYWJsZWQi
CisjZGVmaW5lIFdlYktpdFJlcXVlc3RJZGxlQ2FsbGJhY2tFbmFibGVkUHJlZmVyZW5jZUtleSBA
IldlYktpdFJlcXVlc3RJZGxlQ2FsbGJhY2tFbmFibGVkIgogI2RlZmluZSBXZWJLaXRMaW5rUHJl
bG9hZFJlc3BvbnNpdmVJbWFnZXNFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdExpbmtQcmVs
b2FkUmVzcG9uc2l2ZUltYWdlc0VuYWJsZWQiCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQkocmV2aXNpb24gMjUwNzk0KQor
KysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQkod29y
a2luZyBjb3B5KQpAQCAtNjkwLDYgKzY5MCw3IEBAICsgKHZvaWQpaW5pdGlhbGl6ZQogICAgICAg
ICBATk8sIFdlYktpdFJlc2l6ZU9ic2VydmVyRW5hYmxlZFByZWZlcmVuY2VLZXksCiAjZW5kaWYK
ICAgICAgICAgQE5PLCBXZWJLaXRDb3JlTWF0aE1MRW5hYmxlZFByZWZlcmVuY2VLZXksCisgICAg
ICAgIEBOTywgV2ViS2l0UmVxdWVzdElkbGVDYWxsYmFja0VuYWJsZWRQcmVmZXJlbmNlS2V5LAog
ICAgICAgICBATk8sIFdlYktpdExpbmtQcmVsb2FkUmVzcG9uc2l2ZUltYWdlc0VuYWJsZWRQcmVm
ZXJlbmNlS2V5LAogICAgICAgICBATk8sIFdlYktpdENTU1NoYWRvd1BhcnRzRW5hYmxlZFByZWZl
cmVuY2VLZXksCiAgICAgICAgIG5pbF07CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgJKHJldmlzaW9uIDI1
MDc5NCkKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQ
cml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTYxMiw2ICs2MTIsOSBAQCBAaW50ZXJmYWNlIFdl
YlByZWZlcmVuY2VzIChXZWJQcml2YXRlKQogLSAodm9pZClzZXRDb3JlTWF0aE1MRW5hYmxlZDoo
Qk9PTClmbGFnOwogLSAoQk9PTCljb3JlTWF0aE1MRW5hYmxlZDsKIAorLSAodm9pZClzZXRSZXF1
ZXN0SWRsZUNhbGxiYWNrRW5hYmxlZDooQk9PTClmbGFnOworLSAoQk9PTClyZXF1ZXN0SWRsZUNh
bGxiYWNrRW5hYmxlZDsKKwogLSAodm9pZClzZXRMaW5rUHJlbG9hZFJlc3BvbnNpdmVJbWFnZXNF
bmFibGVkOihCT09MKWZsYWc7CiAtIChCT09MKWxpbmtQcmVsb2FkUmVzcG9uc2l2ZUltYWdlc0Vu
YWJsZWQ7CiAKQEAgLTY1Miw2ICs2NTUsNyBAQCBAaW50ZXJmYWNlIFdlYlByZWZlcmVuY2VzIChX
ZWJQcml2YXRlKQogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgcmVmZXJyZXJQb2xpY3lBdHRy
aWJ1dGVFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgcmVzaXplT2JzZXJ2ZXJF
bmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgY29yZU1hdGhNTEVuYWJsZWQ7CitA
cHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCByZXF1ZXN0SWRsZUNhbGxiYWNrRW5hYmxlZDsKIEBw
cm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGxpbmtQcmVsb2FkUmVzcG9uc2l2ZUltYWdlc0VuYWJs
ZWQ7CiAKICNpZiBUQVJHRVRfT1NfSVBIT05FCkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tCShyZXZpc2lvbiAyNTA3OTQpCisrKyBTb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTMyMzUsNiAr
MzIzNSw3IEBAIC0gKHZvaWQpX3ByZWZlcmVuY2VzQ2hhbmdlZDooV2ViUHJlZmVyZW4KICAgICBz
ZXR0aW5ncy5zZXRNZWRpYUNhcGFiaWxpdGllc0VuYWJsZWQoW3ByZWZlcmVuY2VzIG1lZGlhQ2Fw
YWJpbGl0aWVzRW5hYmxlZF0pOwogCiAgICAgc2V0dGluZ3Muc2V0Q29yZU1hdGhNTEVuYWJsZWQo
W3ByZWZlcmVuY2VzIGNvcmVNYXRoTUxFbmFibGVkXSk7CisgICAgc2V0dGluZ3Muc2V0UmVxdWVz
dElkbGVDYWxsYmFja0VuYWJsZWQoW3ByZWZlcmVuY2VzIHJlcXVlc3RJZGxlQ2FsbGJhY2tFbmFi
bGVkXSk7CiAKICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNl
dFNlcnZlclRpbWluZ0VuYWJsZWQoW3ByZWZlcmVuY2VzIHNlcnZlclRpbWluZ0VuYWJsZWRdKTsK
IApJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwko
cmV2aXNpb24gMjUwODEyKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMTktMTAtMDcgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgQWRkIElETCBmb3IgcmVxdWVzdElkbGVDYWxsYmFjaworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNjUzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0
T3B0aW9ucy5jcHA6CisgICAgICAgIChUZXN0T3B0aW9uczo6VGVzdE9wdGlvbnMpOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmg6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgorICAgICAgICAoc2V0V2ViUHJlZmVyZW5jZXNGb3JU
ZXN0T3B0aW9ucyk6CisKIDIwMTktMTAtMDcgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxl
LmNvbT4KIAogICAgICAgICBPbmx5IHdyYXBwaW5nIENyeXB0b0tleXMgZm9yIElEQiBkdXJpbmcg
c2VyaWFsaXphdGlvbgpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcAkocmV2
aXNpb24gMjUwNzk0KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMjMsNiArMTIzLDggQEAgVGVzdE9wdGlvbnM6OlRlc3RPcHRpb25z
KGNvbnN0IHN0ZDo6c3RyaQogICAgICAgICAgICAgZW5hYmxlUmVzaXplT2JzZXJ2ZXIgPSBwYXJz
ZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAgICAgICBlbHNlIGlmIChrZXkgPT0g
ImV4cGVyaW1lbnRhbDpDb3JlTWF0aE1MRW5hYmxlZCIpCiAgICAgICAgICAgICBlbmFibGVDb3Jl
TWF0aE1MID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKKyAgICAgICAgZWxz
ZSBpZiAoa2V5ID09ICJleHBlcmltZW50YWw6UmVxdWVzdElkbGVDYWxsYmFja0VuYWJsZWQiKQor
ICAgICAgICAgICAgZW5hYmxlUmVxdWVzdElkbGVDYWxsYmFjayA9IHBhcnNlQm9vbGVhblRlc3RI
ZWFkZXJWYWx1ZSh2YWx1ZSk7CiAgICAgICAgIHBhaXJTdGFydCA9IHBhaXJFbmQgKyAxOwogICAg
IH0KIH0KSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaAkocmV2aXNpb24gMjUwNzk0
KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaAkod29ya2luZyBjb3B5KQpA
QCAtNTEsNiArNTEsNyBAQCBzdHJ1Y3QgVGVzdE9wdGlvbnMgewogICAgIGJvb2wgYWRDbGlja0F0
dHJpYnV0aW9uRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBlbmFibGVSZXNpemVPYnNlcnZl
ciB7IGZhbHNlIH07CiAgICAgYm9vbCBlbmFibGVDb3JlTWF0aE1MIHsgZmFsc2UgfTsKKyAgICBi
b29sIGVuYWJsZVJlcXVlc3RJZGxlQ2FsbGJhY2sgeyBmYWxzZSB9OwogICAgIHN0ZDo6c3RyaW5n
IGpzY09wdGlvbnM7CiAgICAgc3RkOjpzdHJpbmcgYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlw
ZXM7CiAKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0J
KHJldmlzaW9uIDI1MDc5NCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVy
VHJlZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTAyOCw2ICsxMDI4LDcgQEAgc3RhdGljIHZvaWQg
c2V0V2ViUHJlZmVyZW5jZXNGb3JUZXN0T3B0aQogICAgIHByZWZlcmVuY2VzLmFkQ2xpY2tBdHRy
aWJ1dGlvbkVuYWJsZWQgPSBvcHRpb25zLmFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQ7CiAgICAg
cHJlZmVyZW5jZXMucmVzaXplT2JzZXJ2ZXJFbmFibGVkID0gb3B0aW9ucy5lbmFibGVSZXNpemVP
YnNlcnZlcjsKICAgICBwcmVmZXJlbmNlcy5jb3JlTWF0aE1MRW5hYmxlZCA9IG9wdGlvbnMuZW5h
YmxlQ29yZU1hdGhNTDsKKyAgICBwcmVmZXJlbmNlcy5yZXF1ZXN0SWRsZUNhbGxiYWNrRW5hYmxl
ZCA9IG9wdGlvbnMuZW5hYmxlUmVxdWVzdElkbGVDYWxsYmFjazsKICAgICBwcmVmZXJlbmNlcy5w
cml2YXRlQnJvd3NpbmdFbmFibGVkID0gb3B0aW9ucy51c2VFcGhlbWVyYWxTZXNzaW9uOwogICAg
IHByZWZlcmVuY2VzLnVzZXNQYWdlQ2FjaGUgPSBvcHRpb25zLmVuYWJsZVBhZ2VDYWNoZTsKIH0K
SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDI1MDc5NCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDE5LTEwLTA4ICBSeW9zdWtlIE5pd2EgIDxy
bml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBJREwgZm9yIHJlcXVlc3RJZGxlQ2FsbGJh
Y2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjY1
MworCisgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgorCisgICAgICAgIEFkZGVk
IGJhc2ljIHRlc3RzIGZvciB2YWxpZGF0aW5nIHJlcXVlc3RJZGxlQ2FsbGJhY2sgaXMgZW5hYmxl
ZCBvciBkaXNhYmxlZCwgYW5kIGl0cyBpZGVudGlmaWVyIHN0YXJ0cyBhdCAxIGluIGVhY2ggZG9j
dW1lbnQuCisKKyAgICAgICAgKiByZXF1ZXN0aWRsZWNhbGxiYWNrOiBBZGRlZC4KKyAgICAgICAg
KiByZXF1ZXN0aWRsZWNhbGxiYWNrL3JlcXVlc3RpZGxlY2FsbGJhY2stZW5hYmxlZC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHJlcXVlc3RpZGxlY2FsbGJhY2svcmVxdWVzdGlkbGVj
YWxsYmFjay1lbmFibGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHJlcXVlc3RpZGxlY2FsbGJh
Y2svcmVxdWVzdGlkbGVjYWxsYmFjay1pZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHJlcXVlc3RpZGxlY2FsbGJhY2svcmVxdWVzdGlkbGVjYWxsYmFjay1pZC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiByZXF1ZXN0aWRsZWNhbGxiYWNrL3JlcXVlc3RpZGxlY2FsbGJhY2stbm90LWVu
YWJsZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiByZXF1ZXN0aWRsZWNhbGxiYWNr
L3JlcXVlc3RpZGxlY2FsbGJhY2stbm90LWVuYWJsZWQuaHRtbDogQWRkZWQuCisKIDIwMTktMTAt
MDcgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgZm9jdXMgcHNl
dWRvIGNsYXNzIHNob3VsZCBtYXRjaCBhIHNoYWRvdyBob3N0IHdob3NlIHNoYWRvdyB0cmVlIGNv
bnRhaW5zIHRoZSBmb2N1c2VkIGVsZW1lbnQKSW5kZXg6IExheW91dFRlc3RzL3JlcXVlc3RpZGxl
Y2FsbGJhY2svcmVxdWVzdGlkbGVjYWxsYmFjay1lbmFibGVkLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9yZXF1ZXN0aWRsZWNhbGxiYWNrL3JlcXVlc3RpZGxlY2FsbGJh
Y2stZW5hYmxlZC1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvcmVx
dWVzdGlkbGVjYWxsYmFjay9yZXF1ZXN0aWRsZWNhbGxiYWNrLWVuYWJsZWQtZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTkgQEAKK1RoaXMgdGVzdHMgdGhhdCB3aGVuIHJl
cXVlc3RJZGxlQ2FsbGJhY2sgaXMgZW5hYmxlZCwgcmVxdWVzdElkbGVDYWxsYmFjayBhbmQgSWRs
ZURlYWRsaW5lIGFyZSBkZWZpbmVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyB0eXBlb2Ygd2luZG93LnJlcXVlc3RJZGxlQ2FsbGJhY2sgaXMgImZ1bmN0aW9uIgorUEFT
UyB3aW5kb3cucmVxdWVzdElkbGVDYWxsYmFjay5sZW5ndGggaXMgMQorUEFTUyB0eXBlb2Ygd2lu
ZG93LmNhbmNlbElkbGVDYWxsYmFjayBpcyAiZnVuY3Rpb24iCitQQVNTIHdpbmRvdy5jYW5jZWxJ
ZGxlQ2FsbGJhY2subGVuZ3RoIGlzIDEKK1BBU1Mgd2luZG93LklkbGVEZWFkbGluZSBpcyBkZWZp
bmVkLgorUEFTUyBpZGxlRGVhZGxpbmVQcm9wZXJ0aWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5
TmFtZXMod2luZG93LklkbGVEZWFkbGluZS5wcm90b3R5cGUpOyBpZGxlRGVhZGxpbmVQcm9wZXJ0
aWVzLmxlbmd0aCBpcyAzCitQQVNTIEpTT04uc3RyaW5naWZ5KGlkbGVEZWFkbGluZVByb3BlcnRp
ZXMuc29ydCgpKSBpcyAiW1wiY29uc3RydWN0b3JcIixcImRpZFRpbWVvdXRcIixcInRpbWVSZW1h
aW5pbmdcIl0iCitQQVNTIGRpZFRpbWVvdXREZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcih3aW5kb3cuSWRsZURlYWRsaW5lLnByb3RvdHlwZSwgImRpZFRpbWVvdXQi
KTsgZGlkVGltZW91dERlc2NyaXB0b3IuZ2V0IGlzIGRlZmluZWQuCitQQVNTIGRpZFRpbWVvdXRE
ZXNjcmlwdG9yLnNldCBpcyB1bmRlZmluZWQuCitQQVNTIHR5cGVvZiB3aW5kb3cuSWRsZURlYWRs
aW5lLnByb3RvdHlwZS50aW1lUmVtYWluaW5nIGlzICJmdW5jdGlvbiIKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9y
ZXF1ZXN0aWRsZWNhbGxiYWNrL3JlcXVlc3RpZGxlY2FsbGJhY2stZW5hYmxlZC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3JlcXVlc3RpZGxlY2FsbGJhY2svcmVxdWVzdGlkbGVjYWxs
YmFjay1lbmFibGVkLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvcmVxdWVzdGlk
bGVjYWxsYmFjay9yZXF1ZXN0aWRsZWNhbGxiYWNrLWVuYWJsZWQuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDIyIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGV4cGVyaW1lbnRhbDpSZXF1ZXN0SWRsZUNhbGxiYWNrRW5hYmxlZD10cnVlIF0gLS0+Cis8
aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCdUaGlzIHRlc3RzIHRoYXQgd2hlbiByZXF1
ZXN0SWRsZUNhbGxiYWNrIGlzIGVuYWJsZWQsIHJlcXVlc3RJZGxlQ2FsbGJhY2sgYW5kIElkbGVE
ZWFkbGluZSBhcmUgZGVmaW5lZC4nKTsKKworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0eXBlb2Yg
d2luZG93LnJlcXVlc3RJZGxlQ2FsbGJhY2snLCAnZnVuY3Rpb24nKTsKK3Nob3VsZEJlKCd3aW5k
b3cucmVxdWVzdElkbGVDYWxsYmFjay5sZW5ndGgnLCAnMScpOworc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCd0eXBlb2Ygd2luZG93LmNhbmNlbElkbGVDYWxsYmFjaycsICdmdW5jdGlvbicpOworc2hv
dWxkQmUoJ3dpbmRvdy5jYW5jZWxJZGxlQ2FsbGJhY2subGVuZ3RoJywgJzEnKTsKK3Nob3VsZEJl
RGVmaW5lZCgnd2luZG93LklkbGVEZWFkbGluZScpOworc2hvdWxkQmUoJ2lkbGVEZWFkbGluZVBy
b3BlcnRpZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh3aW5kb3cuSWRsZURlYWRsaW5l
LnByb3RvdHlwZSk7IGlkbGVEZWFkbGluZVByb3BlcnRpZXMubGVuZ3RoJywgJzMnKTsKK3Nob3Vs
ZEJlRXF1YWxUb1N0cmluZygnSlNPTi5zdHJpbmdpZnkoaWRsZURlYWRsaW5lUHJvcGVydGllcy5z
b3J0KCkpJywgJ1siY29uc3RydWN0b3IiLCJkaWRUaW1lb3V0IiwidGltZVJlbWFpbmluZyJdJyk7
CitzaG91bGRCZURlZmluZWQoJ2RpZFRpbWVvdXREZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcih3aW5kb3cuSWRsZURlYWRsaW5lLnByb3RvdHlwZSwgImRpZFRpbWVv
dXQiKTsgZGlkVGltZW91dERlc2NyaXB0b3IuZ2V0Jyk7CitzaG91bGRCZVVuZGVmaW5lZCgnZGlk
VGltZW91dERlc2NyaXB0b3Iuc2V0Jyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3R5cGVvZiB3
aW5kb3cuSWRsZURlYWRsaW5lLnByb3RvdHlwZS50aW1lUmVtYWluaW5nJywgJ2Z1bmN0aW9uJyk7
CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcmVxdWVz
dGlkbGVjYWxsYmFjay9yZXF1ZXN0aWRsZWNhbGxiYWNrLWlkLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9yZXF1ZXN0aWRsZWNhbGxiYWNrL3JlcXVlc3RpZGxlY2FsbGJh
Y2staWQtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL3JlcXVlc3Rp
ZGxlY2FsbGJhY2svcmVxdWVzdGlkbGVjYWxsYmFjay1pZC1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwxNiBAQAorVGhpcyB0ZXN0cyB0aGF0IHJlcXVlc3RJZGxlQ2FsbGJh
Y2sgaWRlbnRpZmllciBzdGFydHMgZnJvbSAxIGluIGVhY2ggZG9jdW1lbnQuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlcXVlc3RJZGxlQ2FsbGJhY2soKCkgPT4geyB9
KSBpcyAxCitQQVNTIHJlcXVlc3RJZGxlQ2FsbGJhY2soKCkgPT4geyB9KSBpcyAyCitQQVNTIGlm
cmFtZTEuY29udGVudFdpbmRvdy5yZXF1ZXN0SWRsZUNhbGxiYWNrKCgpID0+IHsgfSkgaXMgMQor
UEFTUyBpZnJhbWUyLmNvbnRlbnRXaW5kb3cucmVxdWVzdElkbGVDYWxsYmFjaygoKSA9PiB7IH0p
IGlzIDEKK1BBU1MgaWZyYW1lMS5jb250ZW50V2luZG93LnJlcXVlc3RJZGxlQ2FsbGJhY2soKCkg
PT4geyB9KSBpcyAyCitQQVNTIGlmcmFtZTEuY29udGVudFdpbmRvdy5yZXF1ZXN0SWRsZUNhbGxi
YWNrKCgpID0+IHsgfSkgaXMgMworUEFTUyBpZnJhbWUyLmNvbnRlbnRXaW5kb3cucmVxdWVzdElk
bGVDYWxsYmFjaygoKSA9PiB7IH0pIGlzIDIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9yZXF1ZXN0aWRsZWNhbGxi
YWNrL3JlcXVlc3RpZGxlY2FsbGJhY2staWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9yZXF1ZXN0aWRsZWNhbGxiYWNrL3JlcXVlc3RpZGxlY2FsbGJhY2staWQuaHRtbAkobm9uZXhp
c3RlbnQpCisrKyBMYXlvdXRUZXN0cy9yZXF1ZXN0aWRsZWNhbGxiYWNrL3JlcXVlc3RpZGxlY2Fs
bGJhY2staWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIzIEBACis8IURPQ1RZUEUg
aHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpSZXF1ZXN0SWRsZUNh
bGxiYWNrRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9u
KCdUaGlzIHRlc3RzIHRoYXQgcmVxdWVzdElkbGVDYWxsYmFjayBpZGVudGlmaWVyIHN0YXJ0cyBm
cm9tIDEgaW4gZWFjaCBkb2N1bWVudC4nKTsKKworc2hvdWxkQmUoJ3JlcXVlc3RJZGxlQ2FsbGJh
Y2soKCkgPT4geyB9KScsICcxJyk7CitzaG91bGRCZSgncmVxdWVzdElkbGVDYWxsYmFjaygoKSA9
PiB7IH0pJywgJzInKTsKKworY29uc3QgaWZyYW1lMSA9IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJykpOworY29uc3QgaWZyYW1lMiA9IGRv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJykp
OworCitzaG91bGRCZSgnaWZyYW1lMS5jb250ZW50V2luZG93LnJlcXVlc3RJZGxlQ2FsbGJhY2so
KCkgPT4geyB9KScsICcxJyk7CitzaG91bGRCZSgnaWZyYW1lMi5jb250ZW50V2luZG93LnJlcXVl
c3RJZGxlQ2FsbGJhY2soKCkgPT4geyB9KScsICcxJyk7CitzaG91bGRCZSgnaWZyYW1lMS5jb250
ZW50V2luZG93LnJlcXVlc3RJZGxlQ2FsbGJhY2soKCkgPT4geyB9KScsICcyJyk7CitzaG91bGRC
ZSgnaWZyYW1lMS5jb250ZW50V2luZG93LnJlcXVlc3RJZGxlQ2FsbGJhY2soKCkgPT4geyB9KScs
ICczJyk7CitzaG91bGRCZSgnaWZyYW1lMi5jb250ZW50V2luZG93LnJlcXVlc3RJZGxlQ2FsbGJh
Y2soKCkgPT4geyB9KScsICcyJyk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvcmVxdWVzdGlkbGVjYWxsYmFjay9yZXF1ZXN0aWRsZWNhbGxiYWNrLW5v
dC1lbmFibGVkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9yZXF1ZXN0
aWRsZWNhbGxiYWNrL3JlcXVlc3RpZGxlY2FsbGJhY2stbm90LWVuYWJsZWQtZXhwZWN0ZWQudHh0
CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL3JlcXVlc3RpZGxlY2FsbGJhY2svcmVxdWVz
dGlkbGVjYWxsYmFjay1ub3QtZW5hYmxlZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwxMiBAQAorVGhpcyB0ZXN0cyB0aGF0IHdoZW4gcmVxdWVzdElkbGVDYWxsYmFjayBp
cyBub3QgZW5hYmxlZCwgcmVxdWVzdElkbGVDYWxsYmFjayBhbmQgSWRsZURlYWRsaW5lIGFyZSBu
b3QgZGVmaW5lZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgd2luZG93
LnJlcXVlc3RJZGxlQ2FsbGJhY2sgaXMgdW5kZWZpbmVkLgorUEFTUyB3aW5kb3cuY2FuY2VsSWRs
ZUNhbGxiYWNrIGlzIHVuZGVmaW5lZC4KK1BBU1Mgd2luZG93LklkbGVEZWFkbGluZSBpcyB1bmRl
ZmluZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpJbmRleDogTGF5b3V0VGVzdHMvcmVxdWVzdGlkbGVjYWxsYmFjay9yZXF1ZXN0aWRsZWNhbGxi
YWNrLW5vdC1lbmFibGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcmVxdWVzdGlk
bGVjYWxsYmFjay9yZXF1ZXN0aWRsZWNhbGxiYWNrLW5vdC1lbmFibGVkLmh0bWwJKG5vbmV4aXN0
ZW50KQorKysgTGF5b3V0VGVzdHMvcmVxdWVzdGlkbGVjYWxsYmFjay9yZXF1ZXN0aWRsZWNhbGxi
YWNrLW5vdC1lbmFibGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNSBAQAorPCFE
T0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6UmVxdWVz
dElkbGVDYWxsYmFja0VuYWJsZWQ9ZmFsc2UgXSAtLT4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZGVz
Y3JpcHRpb24oJ1RoaXMgdGVzdHMgdGhhdCB3aGVuIHJlcXVlc3RJZGxlQ2FsbGJhY2sgaXMgbm90
IGVuYWJsZWQsIHJlcXVlc3RJZGxlQ2FsbGJhY2sgYW5kIElkbGVEZWFkbGluZSBhcmUgbm90IGRl
ZmluZWQuJyk7CisKK3Nob3VsZEJlVW5kZWZpbmVkKCd3aW5kb3cucmVxdWVzdElkbGVDYWxsYmFj
aycpOworc2hvdWxkQmVVbmRlZmluZWQoJ3dpbmRvdy5jYW5jZWxJZGxlQ2FsbGJhY2snKTsKK3No
b3VsZEJlVW5kZWZpbmVkKCd3aW5kb3cuSWRsZURlYWRsaW5lJyk7CisKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380400</attachid>
            <date>2019-10-07 21:49:38 -0700</date>
            <delta_ts>2019-10-07 21:49:38 -0700</delta_ts>
            <desc>Fixed WK1</desc>
            <filename>bug-202653-20191007214937.patch</filename>
            <type>text/plain</type>
            <size>52365</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MDgxMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ5IEBACisyMDE5LTEwLTA3ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBJREwgZm9yIHJlcXVlc3RJ
ZGxlQ2FsbGJhY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMjY1MworCisgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgorCisgICAg
ICAgIEFkZGVkIHRoZSBiYXNpYyBzY2FmZm9sZGluZyBmb3IgaW1wbGVtZW50aW5nIHJlcXVlc3RJ
ZGxlQ2FsbGJhY2sgZGlzYWJsZWQgYnkgZGVmYXVsdDoKKyAgICAgICAgaHR0cHM6Ly93M2MuZ2l0
aHViLmlvL3JlcXVlc3RpZGxlY2FsbGJhY2svCisKKyAgICAgICAgVGhpcyBwYXRjaCBqdXN0IGFk
ZHMgdGhlIHN1cHBvcnQgZm9yIGNhbGxpbmcgcmVxdWVzdElkbGVDYWxsYmFjayB3aGljaCBnZW5l
cmF0ZXMgYSBtb25vdG9uaWNhbGx5IGluY3JlYXNpbmcgbnVtYmVyLgorICAgICAgICBUaGUgY2Fs
bGJhY2sgaXMgbmV2ZXIgY2FsbGVkIGZvciBub3cuCisKKyAgICAgICAgVGVzdHM6IHJlcXVlc3Rp
ZGxlY2FsbGJhY2svcmVxdWVzdGlkbGVjYWxsYmFjay1lbmFibGVkLmh0bWwKKyAgICAgICAgICAg
ICAgIHJlcXVlc3RpZGxlY2FsbGJhY2svcmVxdWVzdGlkbGVjYWxsYmFjay1pZC5odG1sCisgICAg
ICAgICAgICAgICByZXF1ZXN0aWRsZWNhbGxiYWNrL3JlcXVlc3RpZGxlY2FsbGJhY2stbm90LWVu
YWJsZWQuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZl
ZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29y
ZUJ1aWx0aW5OYW1lcy5oOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6cmVxdWVzdElkbGVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6Y2FuY2VsSWRsZUNhbGxiYWNrKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
aDoKKyAgICAgICAgKiBkb20vSWRsZUNhbGxiYWNrQ29udHJvbGxlci5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SWRsZUNhbGxiYWNrQ29udHJvbGxlcjo6cXVldWVJZGxlQ2FsbGJhY2sp
OgorICAgICAgICAoV2ViQ29yZTo6SWRsZUNhbGxiYWNrQ29udHJvbGxlcjo6cmVtb3ZlSWRsZUNh
bGxiYWNrKToKKyAgICAgICAgKiBkb20vSWRsZUNhbGxiYWNrQ29udHJvbGxlci5oOiBBZGRlZC4K
KyAgICAgICAgKiBkb20vSWRsZURlYWRsaW5lLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpJZGxlRGVhZGxpbmU6OnRpbWVSZW1haW5pbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
SWRsZURlYWRsaW5lOjpkaWRUaW1lb3V0IGNvbnN0KToKKyAgICAgICAgKiBkb20vSWRsZURlYWRs
aW5lLmg6IEFkZGVkLgorICAgICAgICAqIGRvbS9JZGxlRGVhZGxpbmUuaWRsOiBBZGRlZC4KKyAg
ICAgICAgKiBkb20vSWRsZVJlcXVlc3RDYWxsYmFjay5oOiBBZGRlZC4KKyAgICAgICAgKiBkb20v
SWRsZVJlcXVlc3RDYWxsYmFjay5pZGw6IEFkZGVkLgorICAgICAgICAqIGRvbS9JZGxlUmVxdWVz
dE9wdGlvbnMuaDogQWRkZWQuCisgICAgICAgICogZG9tL0lkbGVSZXF1ZXN0T3B0aW9ucy5pZGw6
IEFkZGVkLgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRPTVdpbmRvdzo6cmVxdWVzdElkbGVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpET01X
aW5kb3c6OmNhbmNlbElkbGVDYWxsYmFjayk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDoK
KyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy55
YW1sOgorCiAyMDE5LTEwLTA3ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgT25seSB3cmFwcGluZyBDcnlwdG9LZXlzIGZvciBJREIgZHVyaW5nIHNlcmlhbGl6
YXRpb24KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAyNTA4MTMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNzA2LDYgKzcwNiw5
IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgZG9tL0ZvY3VzRXZlbnQuaWRs
CiAgICAgZG9tL0dsb2JhbEV2ZW50SGFuZGxlcnMuaWRsCiAgICAgZG9tL0hhc2hDaGFuZ2VFdmVu
dC5pZGwKKyAgICBkb20vSWRsZURlYWRsaW5lLmlkbAorICAgIGRvbS9JZGxlUmVxdWVzdENhbGxi
YWNrLmlkbAorICAgIGRvbS9JZGxlUmVxdWVzdE9wdGlvbnMuaWRsCiAgICAgZG9tL0lucHV0RXZl
bnQuaWRsCiAgICAgZG9tL0tleWJvYXJkRXZlbnQuaWRsCiAgICAgZG9tL01lc3NhZ2VDaGFubmVs
LmlkbApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAyNTA4MTMp
CisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBA
IC02MDYsNiArNjA2LDkgQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvZG9t
L0ZvY3VzRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9HbG9iYWxFdmVudEhhbmRsZXJz
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vSGFzaENoYW5nZUV2ZW50LmlkbCBcCisgICAgJChX
ZWJDb3JlKS9kb20vSWRsZURlYWRsaW5lLmlkbCBcCisgICAgJChXZWJDb3JlKS9kb20vSWRsZVJl
cXVlc3RDYWxsYmFjay5pZGwgXAorICAgICQoV2ViQ29yZSkvZG9tL0lkbGVSZXF1ZXN0T3B0aW9u
cy5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0lucHV0RXZlbnQuaWRsIFwKICAgICAkKFdlYkNv
cmUpL2RvbS9LZXlib2FyZEV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vTWVzc2FnZUNo
YW5uZWwuaWRsIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CShyZXZpc2lvbiAyNTA4MTMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtODg2LDYgKzg4Niw4IEBA
IGRvbS9HZW5lcmljRXZlbnRRdWV1ZS5jcHAKIGRvbS9IYXNoQ2hhbmdlRXZlbnQuY3BwCiBkb20v
SWRUYXJnZXRPYnNlcnZlci5jcHAKIGRvbS9JZFRhcmdldE9ic2VydmVyUmVnaXN0cnkuY3BwCitk
b20vSWRsZURlYWRsaW5lLmNwcAorZG9tL0lkbGVDYWxsYmFja0NvbnRyb2xsZXIuY3BwCiBkb20v
SW5saW5lQ2xhc3NpY1NjcmlwdC5jcHAKIGRvbS9JbmxpbmVTdHlsZVNoZWV0T3duZXIuY3BwCiBk
b20vSW5wdXRFdmVudC5jcHAKQEAgLTI5NjUsNiArMjk2Nyw5IEBAIEpTSURCUmVxdWVzdC5jcHAK
IEpTSURCVHJhbnNhY3Rpb24uY3BwCiBKU0lEQlRyYW5zYWN0aW9uTW9kZS5jcHAKIEpTSURCVmVy
c2lvbkNoYW5nZUV2ZW50LmNwcAorSlNJZGxlUmVxdWVzdENhbGxiYWNrLmNwcAorSlNJZGxlUmVx
dWVzdE9wdGlvbnMuY3BwCitKU0lkbGVEZWFkbGluZS5jcHAKIEpTSW1hZ2VCaXRtYXAuY3BwCiBK
U0ltYWdlQml0bWFwT3B0aW9ucy5jcHAKIEpTSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNw
cApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkocmV2aXNpb24gMjUwODEzKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yODUyLDYgKzI4NTIsMTAg
QEAKIAkJOUI2OUQzQjkxQjk5MTAwNzAwRTM1MTJCIC8qIEpTSFRNTFNsb3RFbGVtZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjY5RDNCNzFCOTkx
MDA3MDBFMzUxMkIgLyogSlNIVE1MU2xvdEVsZW1lbnQuaCAqLzsgfTsKIAkJOUI2QzQxNTMxMzQ0
OTQ5MDAwMDg1QjYyIC8qIFN0cmluZ1dpdGhEaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCNkM0MTUyMTM0NDk0OTAwMDA4NUI2MiAvKiBT
dHJpbmdXaXRoRGlyZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJOUI3MTRFMjExQzkxMTY2OTAwQUMwRTkyIC8qIEV2ZW50UGF0aC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI3MTRFMUYxQzkx
MTY2OTAwQUMwRTkyIC8qIEV2ZW50UGF0aC5oICovOyB9OworCQk5Qjc0MjYwNTIzNEJFOTU2MDBE
QjUyRTkgLyogSWRsZVJlcXVlc3RDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOUI3NDI2MDMyMzRCRTk1NjAwREI1MkU5IC8qIElkbGVSZXF1
ZXN0Q2FsbGJhY2suaCAqLzsgfTsKKwkJOUI3NDI2MEIyMzRCRUE2RTAwREI1MkU5IC8qIElkbGVE
ZWFkbGluZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OUI3NDI2MDgyMzRCRUE2RTAwREI1MkU5IC8qIElkbGVEZWFkbGluZS5oICovOyB9OworCQk5Qjg2
NEYwMjIzNEMwMjhBMDA2RDEwRUIgLyogSWRsZVJlcXVlc3RPcHRpb25zLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Qjg2NEYwMDIzNEMwMjhBMDA2RDEw
RUIgLyogSWRsZVJlcXVlc3RPcHRpb25zLmggKi87IH07CisJCTlCODY0RjA2MjM0QzA4OTMwMDZE
MTBFQiAvKiBJZGxlQ2FsbGJhY2tDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Qjg2NEYwNTIzNEMwODkzMDA2RDEwRUIgLyogSWRsZUNh
bGxiYWNrQ29udHJvbGxlci5oICovOyB9OwogCQk5QkEyNzNGNDE3MjIwNkJCMDA5N0NFNDcgLyog
TG9naWNhbFNlbGVjdGlvbk9mZnNldENhY2hlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOUJBMjczRjMxNzIyMDZCQjAwOTdDRTQ3IC8qIExvZ2ljYWxT
ZWxlY3Rpb25PZmZzZXRDYWNoZXMuaCAqLzsgfTsKIAkJOUJBQUM0NUMyMTUyMDEyODAwM0Q0QTk4
IC8qIEdDUmVhY2hhYmxlUmVmLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5QkFBQzQ1NjIxNTFFMzlFMDAzRDRBOTggLyogR0NSZWFjaGFibGVSZWYuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QkFCNkM2
QzEyNTUwNjMxMDAxNjI2RDQgLyogRWRpdGluZ1N0eWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QkFCNkM2QTEyNTUwNjMxMDAxNjI2RDQgLyogRWRp
dGluZ1N0eWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTExMDY4LDcgKzExMDcyLDE2IEBACiAJCTlCNkM0MTUyMTM0NDk0OTAwMDA4NUI2MiAv
KiBTdHJpbmdXaXRoRGlyZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFN0cmluZ1dpdGhEaXJlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUI3
MTRFMUUxQzkxMTY2OTAwQUMwRTkyIC8qIEV2ZW50UGF0aC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBFdmVudFBhdGguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5QjcxNEUxRjFDOTExNjY5MDBBQzBFOTIgLyogRXZlbnRQYXRoLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50UGF0aC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5Qjc0MjYwMzIzNEJFOTU2MDBEQjUyRTkgLyogSWRsZVJlcXVlc3RDYWxsYmFj
ay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBJZGxlUmVxdWVzdENhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTlCNzQyNjA0MjM0QkU5NTYwMERCNTJFOSAvKiBJZGxlUmVxdWVzdENh
bGxiYWNrLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBJZGxlUmVxdWVzdENhbGxiYWNrLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOUI3NDI2MDgyMzRCRUE2RTAwREI1MkU5IC8qIElkbGVEZWFkbGluZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJZGxlRGVhZGxpbmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOUI3NDI2MDkyMzRCRUE2RTAwREI1MkU5IC8qIElkbGVEZWFkbGluZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBJZGxlRGVhZGxpbmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5Qjc0MjYwQTIzNEJFQTZFMDBEQjUyRTkgLyogSWRsZURlYWRsaW5lLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBJ
ZGxlRGVhZGxpbmUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5Qjg1NTMwNTIw
RTczM0I1MDA5RUVGNEYgLyogRXZlbnRUYXJnZXRGYWN0b3J5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEV2ZW50VGFyZ2V0RmFjdG9yeS5jcHA7IHBhdGggPSBEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0V2ZW50VGFyZ2V0RmFjdG9yeS5jcHA7IHNvdXJjZVRyZWUgPSBC
VUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTlCODY0RjAwMjM0QzAyOEEwMDZEMTBFQiAvKiBJZGxl
UmVxdWVzdE9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSWRsZVJlcXVlc3RPcHRpb25zLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCODY0RjAxMjM0QzAyOEEwMDZEMTBFQiAvKiBJ
ZGxlUmVxdWVzdE9wdGlvbnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IElkbGVSZXF1ZXN0T3B0aW9ucy5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCODY0RjA1MjM0QzA4OTMwMDZEMTBFQiAvKiBJZGxl
Q2FsbGJhY2tDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElkbGVDYWxsYmFja0NvbnRyb2xs
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUI4NjRGMDcyMzRDMDhBMzAwNkQx
MEVCIC8qIElkbGVDYWxsYmFja0NvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSWRs
ZUNhbGxiYWNrQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlC
OTI5OUIwMUY2Nzk2QTQwMDY3MjNDMiAvKiBXZWJDb250ZW50UmVhZGVyQ29jb2EubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb250ZW50UmVhZGVyQ29jb2Eu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCOUNBREE3MjE2NURDNzYwMEU4RDg1
OCAvKiBKU011dGF0aW9uUmVjb3JkQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTXV0
YXRpb25SZWNvcmRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QkEy
NzNGMzE3MjIwNkJCMDA5N0NFNDcgLyogTG9naWNhbFNlbGVjdGlvbk9mZnNldENhY2hlcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2dpY2FsU2VsZWN0aW9uT2Zmc2V0Q2Fj
aGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNzY2Nyw2ICsyNzY4MCwxNSBA
QAogCQkJCUUzQkYxOUU2MjJBRjMwMkEwMDlDOTkyNiAvKiBIYXNoQ2hhbmdlRXZlbnQuY3BwICov
LAogCQkJCTI0NDJCQkY4MTE5NEM5RDMwMEQ0OTQ2OSAvKiBIYXNoQ2hhbmdlRXZlbnQuaCAqLywK
IAkJCQk4NDgyQjc0NDExOThDMzJFMDBCRkIwMDUgLyogSGFzaENoYW5nZUV2ZW50LmlkbCAqLywK
KwkJCQk5Qjg2NEYwNzIzNEMwOEEzMDA2RDEwRUIgLyogSWRsZUNhbGxiYWNrQ29udHJvbGxlci5j
cHAgKi8sCisJCQkJOUI4NjRGMDUyMzRDMDg5MzAwNkQxMEVCIC8qIElkbGVDYWxsYmFja0NvbnRy
b2xsZXIuaCAqLywKKwkJCQk5Qjc0MjYwOTIzNEJFQTZFMDBEQjUyRTkgLyogSWRsZURlYWRsaW5l
LmNwcCAqLywKKwkJCQk5Qjc0MjYwODIzNEJFQTZFMDBEQjUyRTkgLyogSWRsZURlYWRsaW5lLmgg
Ki8sCisJCQkJOUI3NDI2MEEyMzRCRUE2RTAwREI1MkU5IC8qIElkbGVEZWFkbGluZS5pZGwgKi8s
CisJCQkJOUI3NDI2MDMyMzRCRTk1NjAwREI1MkU5IC8qIElkbGVSZXF1ZXN0Q2FsbGJhY2suaCAq
LywKKwkJCQk5Qjc0MjYwNDIzNEJFOTU2MDBEQjUyRTkgLyogSWRsZVJlcXVlc3RDYWxsYmFjay5p
ZGwgKi8sCisJCQkJOUI4NjRGMDAyMzRDMDI4QTAwNkQxMEVCIC8qIElkbGVSZXF1ZXN0T3B0aW9u
cy5oICovLAorCQkJCTlCODY0RjAxMjM0QzAyOEEwMDZEMTBFQiAvKiBJZGxlUmVxdWVzdE9wdGlv
bnMuaWRsICovLAogCQkJCUMzQ0YxN0EwMTVCMDA2M0YwMDI3NkQzOSAvKiBJZFRhcmdldE9ic2Vy
dmVyLmNwcCAqLywKIAkJCQlDM0NGMTdBMTE1QjAwNjNGMDAyNzZEMzkgLyogSWRUYXJnZXRPYnNl
cnZlci5oICovLAogCQkJCUMzQ0YxN0EyMTVCMDA2M0YwMDI3NkQzOSAvKiBJZFRhcmdldE9ic2Vy
dmVyUmVnaXN0cnkuY3BwICovLApAQCAtMjk2OTksNiArMjk3MjEsMTAgQEAKIAkJCQkxQTcxRDU3
QzBGMzM4MTkwMDBGOUNFNEUgLyogSWRlbnRpZmllclJlcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDlFOTExQzUwRUY4NkQ0NzAwOUQwQ0FGIC8qIElkZW50aXR5VHJhbnNmb3JtT3BlcmF0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk3Q0U5QTEyQjFFQTJGMURCMDA2NTFBRDEgLyogSURMQXR0cmli
dXRlcy5qc29uIGluIEhlYWRlcnMgKi8sCisJCQkJOUI4NjRGMDYyMzRDMDg5MzAwNkQxMEVCIC8q
IElkbGVDYWxsYmFja0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTlCNzQyNjBCMjM0
QkVBNkUwMERCNTJFOSAvKiBJZGxlRGVhZGxpbmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTlCNzQy
NjA1MjM0QkU5NTYwMERCNTJFOSAvKiBJZGxlUmVxdWVzdENhbGxiYWNrLmggaW4gSGVhZGVycyAq
LywKKwkJCQk5Qjg2NEYwMjIzNEMwMjhBMDA2RDEwRUIgLyogSWRsZVJlcXVlc3RPcHRpb25zLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDMEMwNTRDRDExMThDOEU0MDBDRTI2MzYgLyogSURMUGFyc2Vy
LnBtIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M1MjIyOTYxRTFEQUUwMzAwMkNCOEY3IC8qIElETFR5
cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDM0NGMTdBNTE1QjAwNjNGMDAyNzZEMzkgLyogSWRU
YXJnZXRPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCShyZXZpc2lvbiAyNTA4MTMpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEzMCw2ICsxMzAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFj
cm8oSURCVmVyc2lvbkNoYW5nZUV2ZW50KSBcCiAgICAgbWFjcm8oSW1hZ2VCaXRtYXApIFwKICAg
ICBtYWNybyhJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQpIFwKKyAgICBtYWNybyhJZGxlRGVh
ZGxpbmUpIFwKICAgICBtYWNybyhJbnB1dEV2ZW50KSBcCiAgICAgbWFjcm8oSW50ZXJzZWN0aW9u
T2JzZXJ2ZXIpIFwKICAgICBtYWNybyhJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5KSBcCkBAIC0y
NDMsNiArMjQ0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKGJ5b2JSZXF1ZXN0
KSBcCiAgICAgbWFjcm8oY2FjaGVzKSBcCiAgICAgbWFjcm8oY2FuY2VsKSBcCisgICAgbWFjcm8o
Y2FuY2VsSWRsZUNhbGxiYWNrKSBcCiAgICAgbWFjcm8oY2xvbmVBcnJheUJ1ZmZlcikgXAogICAg
IG1hY3JvKGNsb3NlKSBcCiAgICAgbWFjcm8oY2xvc2VSZXF1ZXN0ZWQpIFwKQEAgLTMxNyw2ICsz
MTksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8ocmVhZGFibGVTdHJlYW1Db250
cm9sbGVyKSBcCiAgICAgbWFjcm8ocmVhZGVyKSBcCiAgICAgbWFjcm8ocmVhZHlQcm9taXNlQ2Fw
YWJpbGl0eSkgXAorICAgIG1hY3JvKHJlcXVlc3RJZGxlQ2FsbGJhY2spIFwKICAgICBtYWNybyhy
ZXNwb25zZSkgXAogICAgIG1hY3JvKHJlc3BvbnNlQ2FjaGVJc1ZhbGlkKSBcCiAgICAgbWFjcm8o
cmV0cmlldmVSZXNwb25zZSkgXApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lv
biAyNTA4MTMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDksNiArMTA5LDcgQEAKICNpbmNsdWRlICJIYXNoQ2hhbmdlRXZlbnQuaCIKICNp
bmNsdWRlICJIaXN0b3J5LmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgorI2luY2x1ZGUg
IklkbGVDYWxsYmFja0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJJbWFnZUJpdG1hcFJlbmRlcmlu
Z0NvbnRleHQuaCIKICNpbmNsdWRlICJJbWFnZUxvYWRlci5oIgogI2luY2x1ZGUgIkluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5oIgpAQCAtNjM2MSw2ICs2MzYyLDIwIEBAIHZvaWQgRG9jdW1lbnQ6
OmNsZWFyU2NyaXB0ZWRBbmltYXRpb25Db24KICAgICBtX3NjcmlwdGVkQW5pbWF0aW9uQ29udHJv
bGxlciA9IG51bGxwdHI7CiB9CiAKK2ludCBEb2N1bWVudDo6cmVxdWVzdElkbGVDYWxsYmFjayhS
ZWY8SWRsZVJlcXVlc3RDYWxsYmFjaz4mJiBjYWxsYmFjaywgU2Vjb25kcyB0aW1lb3V0KQorewor
ICAgIGlmICghbV9pZGxlQ2FsbGJhY2tDb250cm9sbGVyKQorICAgICAgICBtX2lkbGVDYWxsYmFj
a0NvbnRyb2xsZXIgPSBtYWtlVW5pcXVlPElkbGVDYWxsYmFja0NvbnRyb2xsZXI+KCk7CisgICAg
cmV0dXJuIG1faWRsZUNhbGxiYWNrQ29udHJvbGxlci0+cXVldWVJZGxlQ2FsbGJhY2soV1RGTW92
ZShjYWxsYmFjayksIHRpbWVvdXQpOworfQorCit2b2lkIERvY3VtZW50OjpjYW5jZWxJZGxlQ2Fs
bGJhY2soaW50IGlkKQoreworICAgIGlmICghbV9pZGxlQ2FsbGJhY2tDb250cm9sbGVyKQorICAg
ICAgICByZXR1cm47CisgICAgbV9pZGxlQ2FsbGJhY2tDb250cm9sbGVyLT5yZW1vdmVJZGxlQ2Fs
bGJhY2soaWQpOworfQorCiB2b2lkIERvY3VtZW50Ojp3aGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2Vk
KCkKIHsKICAgICBQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmgJKHJldmlzaW9uIDI1MDgxMykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xNDUsNiArMTQ1LDggQEAgY2xhc3MgSFRNTFNjcmlwdEVsZW1l
bnQ7CiBjbGFzcyBIaXRUZXN0TG9jYXRpb247CiBjbGFzcyBIaXRUZXN0UmVxdWVzdDsKIGNsYXNz
IEhpdFRlc3RSZXN1bHQ7CitjbGFzcyBJZGxlQ2FsbGJhY2tDb250cm9sbGVyOworY2xhc3MgSWRs
ZVJlcXVlc3RDYWxsYmFjazsKIGNsYXNzIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dDsKIGNs
YXNzIEludFBvaW50OwogY2xhc3MgSlNOb2RlOwpAQCAtMTIwNiw2ICsxMjA4LDkgQEAgcHVibGlj
OgogICAgIGludCByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoUmVmPFJlcXVlc3RBbmltYXRpb25GcmFt
ZUNhbGxiYWNrPiYmKTsKICAgICB2b2lkIGNhbmNlbEFuaW1hdGlvbkZyYW1lKGludCBpZCk7CiAK
KyAgICBpbnQgcmVxdWVzdElkbGVDYWxsYmFjayhSZWY8SWRsZVJlcXVlc3RDYWxsYmFjaz4mJiwg
U2Vjb25kcyB0aW1lb3V0KTsKKyAgICB2b2lkIGNhbmNlbElkbGVDYWxsYmFjayhpbnQgaWQpOwor
CiAgICAgRXZlbnRUYXJnZXQqIGVycm9yRXZlbnRUYXJnZXQoKSBmaW5hbDsKICAgICB2b2lkIGxv
Z0V4Y2VwdGlvblRvQ29uc29sZShjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VVUkwsIGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyLCBSZWZQdHI8
SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYpIGZpbmFsOwogCkBAIC0xODM4LDYgKzE4NDMs
OCBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xlYXJTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIo
KTsKICAgICBSZWZQdHI8U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyPiBtX3NjcmlwdGVkQW5p
bWF0aW9uQ29udHJvbGxlcjsKIAorICAgIHN0ZDo6dW5pcXVlX3B0cjxJZGxlQ2FsbGJhY2tDb250
cm9sbGVyPiBtX2lkbGVDYWxsYmFja0NvbnRyb2xsZXI7CisKICAgICB2b2lkIG5vdGlmeU1lZGlh
Q2FwdHVyZU9mVmlzaWJpbGl0eUNoYW5nZWQoKTsKIAogICAgIHZvaWQgZGlkTG9nTWVzc2FnZShj
b25zdCBXVEZMb2dDaGFubmVsJiwgV1RGTG9nTGV2ZWwsIFZlY3RvcjxKU09OTG9nVmFsdWU+JiYp
IGZpbmFsOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0lkbGVDYWxsYmFja0NvbnRyb2xsZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9JZGxlQ2FsbGJhY2tDb250cm9s
bGVyLmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vSWRsZUNhbGxiYWNr
Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJZGxlQ2FsbGJhY2tDb250cm9sbGVy
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworaW50IElkbGVDYWxsYmFja0NvbnRyb2xsZXI6
OnF1ZXVlSWRsZUNhbGxiYWNrKFJlZjxJZGxlUmVxdWVzdENhbGxiYWNrPiYmIGNhbGxiYWNrLCBT
ZWNvbmRzKQoreworICAgICsrbV9pZGxlQ2FsbGJhY2tJZGVudGlmaWVyOworICAgIGF1dG8gaGFu
ZGxlID0gbV9pZGxlQ2FsbGJhY2tJZGVudGlmaWVyOworCisgICAgbV9pZGxlUmVxdWVzdHMuYXBw
ZW5kKHsgaGFuZGxlLCBXVEZNb3ZlKGNhbGxiYWNrKSB9KTsKKworICAgIC8vIEZJWE1FOiBRdWV1
ZSBhIHRhc2sgaWYgc3RhcnRfaWRsZV9wZXJpb2QgaXMgdHJ1ZS4KKyAgICAvLyBGSVhNRTogUXVl
dWUgYSB0YXNrIGlmIHRpbWVvdXQgaXMgcG9zaXRpdmUuCisKKyAgICByZXR1cm4gaGFuZGxlOwor
fQorCit2b2lkIElkbGVDYWxsYmFja0NvbnRyb2xsZXI6OnJlbW92ZUlkbGVDYWxsYmFjayhpbnQg
c2lnbmVkSWRlbnRpZmllcikKK3sKKyAgICBpZiAoc2lnbmVkSWRlbnRpZmllciA8PSAwKQorICAg
ICAgICByZXR1cm47CisgICAgdW5zaWduZWQgaWRlbnRpZmllciA9IHNpZ25lZElkZW50aWZpZXI7
CisgICAgbV9pZGxlUmVxdWVzdHMucmVtb3ZlRmlyc3RNYXRjaGluZyhbaWRlbnRpZmllcl0oYXV0
byYgcmVxdWVzdCkgeworICAgICAgICByZXR1cm4gcmVxdWVzdC5pZGVudGlmaWVyID09IGlkZW50
aWZpZXI7CisgICAgfSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2RvbS9JZGxlQ2FsbGJhY2tDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvZG9tL0lkbGVDYWxsYmFja0NvbnRyb2xsZXIuaAkobm9uZXhpc3RlbnQpCisr
KyBTb3VyY2UvV2ViQ29yZS9kb20vSWRsZUNhbGxiYWNrQ29udHJvbGxlci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgIklkbGVSZXF1ZXN0Q2FsbGJhY2suaCIKKyNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgorI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBJZGxl
Q2FsbGJhY2tDb250cm9sbGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKworcHVi
bGljOgorICAgIGludCBxdWV1ZUlkbGVDYWxsYmFjayhSZWY8SWRsZVJlcXVlc3RDYWxsYmFjaz4m
JiwgU2Vjb25kcyB0aW1lb3V0KTsKKyAgICB2b2lkIHJlbW92ZUlkbGVDYWxsYmFjayhpbnQpOwor
Citwcml2YXRlOgorICAgIHVuc2lnbmVkIG1faWRsZUNhbGxiYWNrSWRlbnRpZmllciB7IDAgfTsK
KworICAgIHN0cnVjdCBJZGxlUmVxdWVzdCB7CisgICAgICAgIHVuc2lnbmVkIGlkZW50aWZpZXI7
CisgICAgICAgIFJlZjxJZGxlUmVxdWVzdENhbGxiYWNrPiBjYWxsYmFjazsKKyAgICB9OworCisg
ICAgVmVjdG9yPElkbGVSZXF1ZXN0PiBtX2lkbGVSZXF1ZXN0czsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9JZGxlRGVhZGxpbmUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9JZGxlRGVhZGxpbmUuY3BwCShub25leGlz
dGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9JZGxlRGVhZGxpbmUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiSWRsZURlYWRsaW5lLmgiCisKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNs
dWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCisjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0RPTUhpZ2hSZXNUaW1lU3RhbXAg
SWRsZURlYWRsaW5lOjp0aW1lUmVtYWluaW5nKERvY3VtZW50JiBkb2N1bWVudCkgY29uc3QKK3sK
KyAgICBhdXRvIHdpbmRvdyA9IG1ha2VSZWZQdHIoZG9jdW1lbnQuZG9tV2luZG93KCkpOworICAg
IGlmICghd2luZG93KQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gd2luZG93LT5wZXJm
b3JtYW5jZSgpLnJlbGF0aXZlVGltZUZyb21UaW1lT3JpZ2luSW5SZWR1Y2VkUmVzb2x1dGlvbiht
X2RlYWRsaW5lKTsKK30KKworYm9vbCBJZGxlRGVhZGxpbmU6OmRpZFRpbWVvdXQoRG9jdW1lbnQm
IGRvY3VtZW50KSBjb25zdAoreworICAgIGF1dG8gd2luZG93ID0gbWFrZVJlZlB0cihkb2N1bWVu
dC5kb21XaW5kb3coKSk7CisgICAgaWYgKCF3aW5kb3cpCisgICAgICAgIHJldHVybiB0cnVlOwor
CisgICAgLy8gUmVkdWNlIHRoZSByZXNvbHV0aW9uIGJlZm9yZSB0aGUgY29tcGFyaXNpb24gdG8g
cHJldmVudCByZXNvbHV0aW9uIGxlYWthZ2UuCisgICAgYXV0byBkZWFkbGluZSA9IHdpbmRvdy0+
cGVyZm9ybWFuY2UoKS5yZWxhdGl2ZVRpbWVGcm9tVGltZU9yaWdpbkluUmVkdWNlZFJlc29sdXRp
b24obV9kZWFkbGluZSk7CisgICAgYXV0byBub3cgPSB3aW5kb3ctPnBlcmZvcm1hbmNlKCkubm93
KCk7CisgICAgcmV0dXJuIGRlYWRsaW5lID49IG5vdzsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0lkbGVEZWFkbGluZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9JZGxlRGVhZGxpbmUuaAkobm9uZXhpc3RlbnQpCisrKyBT
b3VyY2UvV2ViQ29yZS9kb20vSWRsZURlYWRsaW5lLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRE9NSGlnaFJl
c1RpbWVTdGFtcC5oIgorI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CisjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1bWVu
dDsKKworY2xhc3MgSWRsZURlYWRsaW5lIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8SWRsZURl
YWRsaW5lPiB7CitwdWJsaWM6CisgICAgUmVmPElkbGVEZWFkbGluZT4gY3JlYXRlKE1vbm90b25p
Y1RpbWUgZGVhZGxpbmUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJZGxl
RGVhZGxpbmUoZGVhZGxpbmUpKTsKKyAgICB9CisKKyAgICBET01IaWdoUmVzVGltZVN0YW1wIHRp
bWVSZW1haW5pbmcoRG9jdW1lbnQmKSBjb25zdDsKKyAgICBib29sIGRpZFRpbWVvdXQoRG9jdW1l
bnQmKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBJZGxlRGVhZGxpbmUoTW9ub3RvbmljVGltZSBk
ZWFkbGluZSkKKyAgICAgICAgOiBtX2RlYWRsaW5lKGRlYWRsaW5lKQorICAgIHsgfQorCisgICAg
Y29uc3QgTW9ub3RvbmljVGltZSBtX2RlYWRsaW5lOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0lkbGVEZWFkbGluZS5pZGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0lkbGVEZWFkbGluZS5pZGwJKG5vbmV4aXN0ZW50KQor
KysgU291cmNlL1dlYkNvcmUvZG9tL0lkbGVEZWFkbGluZS5pZGwJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK3R5cGVkZWYgZG91YmxlIERPTUhpZ2hSZXNUaW1l
U3RhbXA7CisKK1sKKyAgICBFbmFibGVkQnlTZXR0aW5nPXJlcXVlc3RJZGxlQ2FsbGJhY2ssCisg
ICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQorXSBpbnRlcmZhY2UgSWRsZURlYWRsaW5lIHsK
KyAgICBbQ2FsbFdpdGg9RG9jdW1lbnRdIERPTUhpZ2hSZXNUaW1lU3RhbXAgdGltZVJlbWFpbmlu
ZygpOworICAgIFtDYWxsV2l0aD1Eb2N1bWVudF0gcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4g
ZGlkVGltZW91dDsKK307CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vSWRsZVJlcXVlc3RDYWxs
YmFjay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9JZGxlUmVxdWVzdENhbGxi
YWNrLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0lkbGVSZXF1ZXN0Q2Fs
bGJhY2suaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlICJBY3RpdmVET01DYWxsYmFjay5oIgorI2luY2x1ZGUgIkNh
bGxiYWNrUmVzdWx0LmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBJZGxlRGVhZGxpbmU7CisKK2NsYXNzIElkbGVSZXF1ZXN0Q2Fs
bGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxJZGxlUmVxdWVzdENhbGxiYWNrPiwgcHVibGljIEFj
dGl2ZURPTUNhbGxiYWNrIHsKK3B1YmxpYzoKKyAgICB1c2luZyBBY3RpdmVET01DYWxsYmFjazo6
QWN0aXZlRE9NQ2FsbGJhY2s7CisKKyAgICB2aXJ0dWFsIENhbGxiYWNrUmVzdWx0PHZvaWQ+IGhh
bmRsZUV2ZW50KElkbGVEZWFkbGluZSYpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9JZGxlUmVxdWVzdENhbGxiYWNrLmlkbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vSWRsZVJlcXVlc3RDYWxsYmFjay5pZGwJKG5v
bmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0lkbGVSZXF1ZXN0Q2FsbGJhY2suaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitjYWxsYmFjayBJ
ZGxlUmVxdWVzdENhbGxiYWNrID0gdm9pZCAoSWRsZURlYWRsaW5lIGRlYWRsaW5lKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2RvbS9JZGxlUmVxdWVzdE9wdGlvbnMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9kb20vSWRsZVJlcXVlc3RPcHRpb25zLmgJKG5vbmV4aXN0ZW50KQorKysg
U291cmNlL1dlYkNvcmUvZG9tL0lkbGVSZXF1ZXN0T3B0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0
Zi9PcHRpb25hbC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBJZGxlUmVxdWVz
dE9wdGlvbnMgeworICAgIHVuc2lnbmVkIHRpbWVvdXQgeyAwIH07IC8vIFVzZWQgaWYgcG9zaXRp
dmUuCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9k
b20vSWRsZVJlcXVlc3RPcHRpb25zLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9k
b20vSWRsZVJlcXVlc3RPcHRpb25zLmlkbAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9kb20vSWRsZVJlcXVlc3RPcHRpb25zLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworZGljdGlvbmFyeSBJZGxlUmVxdWVzdE9wdGlvbnMgeworICAgIHVu
c2lnbmVkIGxvbmcgdGltZW91dDsKK307CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
CShyZXZpc2lvbiAyNTA4MTMpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTY4LDYgKzY4LDcgQEAKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIK
ICNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2luY2x1ZGUgIkhpc3RvcnkuaCIKKyNpbmNsdWRl
ICJJZGxlUmVxdWVzdE9wdGlvbnMuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogI2luY2x1ZGUgIkpTRE9N
V2luZG93QmFzZS5oIgpAQCAtMTc4MSw2ICsxNzgyLDIyIEBAIHZvaWQgRE9NV2luZG93OjpjYW5j
ZWxBbmltYXRpb25GcmFtZShpbnQKICAgICBkb2N1bWVudC0+Y2FuY2VsQW5pbWF0aW9uRnJhbWUo
aWQpOwogfQogCitpbnQgRE9NV2luZG93OjpyZXF1ZXN0SWRsZUNhbGxiYWNrKFJlZjxJZGxlUmVx
dWVzdENhbGxiYWNrPiYmIGNhbGxiYWNrLCBjb25zdCBJZGxlUmVxdWVzdE9wdGlvbnMmIG9wdGlv
bnMpCit7CisgICAgYXV0byBkb2N1bWVudCA9IG1ha2VSZWZQdHIodGhpcy0+ZG9jdW1lbnQoKSk7
CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGRvY3Vt
ZW50LT5yZXF1ZXN0SWRsZUNhbGxiYWNrKFdURk1vdmUoY2FsbGJhY2spLCBTZWNvbmRzOjpmcm9t
TWlsbGlzZWNvbmRzKG9wdGlvbnMudGltZW91dCkpOworfQorCit2b2lkIERPTVdpbmRvdzo6Y2Fu
Y2VsSWRsZUNhbGxiYWNrKGludCBpZCkKK3sKKyAgICBhdXRvIGRvY3VtZW50ID0gbWFrZVJlZlB0
cih0aGlzLT5kb2N1bWVudCgpKTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm47
CisgICAgcmV0dXJuIGRvY3VtZW50LT5jYW5jZWxJZGxlQ2FsbGJhY2soaWQpOworfQorCiB2b2lk
IERPTVdpbmRvdzo6Y3JlYXRlSW1hZ2VCaXRtYXAoSW1hZ2VCaXRtYXA6OlNvdXJjZSYmIHNvdXJj
ZSwgSW1hZ2VCaXRtYXBPcHRpb25zJiYgb3B0aW9ucywgSW1hZ2VCaXRtYXA6OlByb21pc2UmJiBw
cm9taXNlKQogewogICAgIGF1dG8qIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuaAkocmV2aXNpb24gMjUwODEzKQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuaAkod29ya2luZyBjb3B5KQpAQCAtNjUsNiArNjUsNyBAQCBjbGFz
cyBFbGVtZW50OwogY2xhc3MgRXZlbnRMaXN0ZW5lcjsKIGNsYXNzIEZsb2F0UmVjdDsKIGNsYXNz
IEhpc3Rvcnk7CitjbGFzcyBJZGxlUmVxdWVzdENhbGxiYWNrOwogY2xhc3MgTG9jYXRpb247CiBj
bGFzcyBNZWRpYVF1ZXJ5TGlzdDsKIGNsYXNzIE5hdmlnYXRvcjsKQEAgLTc1LDYgKzc2LDcgQEAg
Y2xhc3MgUGFnZUNvbnNvbGVDbGllbnQ7CiBjbGFzcyBQZXJmb3JtYW5jZTsKIGNsYXNzIFBvc3RN
ZXNzYWdlVGltZXI7CiBjbGFzcyBSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjazsKK2NsYXNz
IFJlcXVlc3RJZGxlQ2FsbGJhY2s7CiBjbGFzcyBTY2hlZHVsZWRBY3Rpb247CiBjbGFzcyBTY3Jl
ZW47CiBjbGFzcyBTdG9yYWdlOwpAQCAtODgsNiArOTAsNyBAQCBjbGFzcyBEZXZpY2VNb3Rpb25D
b250cm9sbGVyOwogY2xhc3MgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOwogI2VuZGlmCiAK
K3N0cnVjdCBJZGxlUmVxdWVzdE9wdGlvbnM7CiBzdHJ1Y3QgSW1hZ2VCaXRtYXBPcHRpb25zOwog
c3RydWN0IFdpbmRvd0ZlYXR1cmVzOwogCkBAIC0yNzYsNiArMjc5LDkgQEAgcHVibGljOgogICAg
IGludCB3ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoUmVmPFJlcXVlc3RBbmltYXRpb25GcmFt
ZUNhbGxiYWNrPiYmKTsKICAgICB2b2lkIGNhbmNlbEFuaW1hdGlvbkZyYW1lKGludCBpZCk7CiAK
KyAgICBpbnQgcmVxdWVzdElkbGVDYWxsYmFjayhSZWY8SWRsZVJlcXVlc3RDYWxsYmFjaz4mJiwg
Y29uc3QgSWRsZVJlcXVlc3RPcHRpb25zJik7CisgICAgdm9pZCBjYW5jZWxJZGxlQ2FsbGJhY2so
aW50IGlkKTsKKwogICAgIC8vIEltYWdlQml0bWFwCiAgICAgdm9pZCBjcmVhdGVJbWFnZUJpdG1h
cChJbWFnZUJpdG1hcDo6U291cmNlJiYsIEltYWdlQml0bWFwT3B0aW9ucyYmLCBJbWFnZUJpdG1h
cDo6UHJvbWlzZSYmKTsKICAgICB2b2lkIGNyZWF0ZUltYWdlQml0bWFwKEltYWdlQml0bWFwOjpT
b3VyY2UmJiwgaW50IHN4LCBpbnQgc3ksIGludCBzdywgaW50IHNoLCBJbWFnZUJpdG1hcE9wdGlv
bnMmJiwgSW1hZ2VCaXRtYXA6OlByb21pc2UmJik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuaWRsCShyZXZpc2lvbiAyNTA4MTMpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTkzLDYgKzkzLDkgQEAgdHlwZWRlZiBVU1ZTdHJpbmcg
Q1NTT01TdHJpbmc7CiAgICAgbG9uZyByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoUmVxdWVzdEFuaW1h
dGlvbkZyYW1lQ2FsbGJhY2sgY2FsbGJhY2spOyAvLyBGSVhNRTogU2hvdWxkIHJldHVybiBhbiB1
bnNpZ25lZCBsb25nLgogICAgIHZvaWQgY2FuY2VsQW5pbWF0aW9uRnJhbWUobG9uZyBoYW5kbGUp
OyAvLyBGSVhNRTogaGFuZGxlIHNob3VsZCBiZSBhbiB1bnNpZ25lZCBsb25nLgogCisgICAgW0Vu
YWJsZWRCeVNldHRpbmc9cmVxdWVzdElkbGVDYWxsYmFja10gdW5zaWduZWQgbG9uZyByZXF1ZXN0
SWRsZUNhbGxiYWNrKElkbGVSZXF1ZXN0Q2FsbGJhY2sgY2FsbGJhY2ssIG9wdGlvbmFsIElkbGVS
ZXF1ZXN0T3B0aW9ucyBvcHRpb25zKTsKKyAgICBbRW5hYmxlZEJ5U2V0dGluZz1yZXF1ZXN0SWRs
ZUNhbGxiYWNrXSB2b2lkIGNhbmNlbElkbGVDYWxsYmFjayh1bnNpZ25lZCBsb25nIGhhbmRsZSk7
CisKICAgICBbQ2FsbFdpdGg9RXhlY1N0YXRlJkluY3VtYmVudFdpbmRvdywgRG9Ob3RDaGVja1Nl
Y3VyaXR5LCBGb3J3YXJkRGVjbGFyZUluSGVhZGVyLCBNYXlUaHJvd0V4Y2VwdGlvbl0gdm9pZCBw
b3N0TWVzc2FnZShhbnkgbWVzc2FnZSwgVVNWU3RyaW5nIHRhcmdldE9yaWdpbiwgb3B0aW9uYWwg
c2VxdWVuY2U8b2JqZWN0PiB0cmFuc2ZlciA9IFtdKTsKIAogICAgIC8vIE9ic29sZXRlIG1lbWJl
cnMsIHN0aWxsIHBhcnQgb2YgdGhlIEhUTUwgc3BlY2lmaWNhdGlvbiAoaHR0cHM6Ly9odG1sLnNw
ZWMud2hhdHdnLm9yZy8jV2luZG93LXBhcnRpYWwpLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXR0aW5ncy55YW1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MueWFtbAkocmV2aXNpb24gMjUwODEzKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy55YW1sCSh3b3JraW5nIGNvcHkpCkBAIC0zMzcsNiArMzM3LDggQEAgd2FudHNCYWxhbmNlZFNl
dERlZmVyc0xvYWRpbmdCZWhhdmlvcjoKICAgaW5pdGlhbDogZmFsc2UKIHJlcXVlc3RBbmltYXRp
b25GcmFtZUVuYWJsZWQ6CiAgIGluaXRpYWw6IHRydWUKK3JlcXVlc3RJZGxlQ2FsbGJhY2tFbmFi
bGVkOgorICBpbml0aWFsOiBmYWxzZQogCiBIVFRQU1VwZ3JhZGVFbmFibGVkOgogICBpbml0aWFs
OiBmYWxzZQpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MDgxMykKKysrIFNvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTktMTAtMDcgIFJ5
b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIElETCBmb3IgcmVx
dWVzdElkbGVDYWxsYmFjaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAyNjUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCisK
KyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbDoKKwogMjAxOS0xMC0wNyAgS2F0
ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KIAogICAgICAgICBEb21haW4g
cmVsYXRpb25zaGlwcyBpbiB0aGUgSVRQIERhdGFiYXNlIHNob3VsZCBiZSBpbnNlcnRlZCBpbiBh
IHNpbmdsZSBxdWVyeSBhbmQgaWdub3JlIHJlcGVhdCBpbnNlcnQgYXR0ZW1wdHMuICgyMDI2MDQp
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwJKHJldmlzaW9u
IDI1MDgxMykKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwJKHdv
cmtpbmcgY29weSkKQEAgLTM2Miw2ICszNjIsMTMgQEAgUmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5h
YmxlZDoKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IHRydWUKIAorUmVxdWVzdElkbGVD
YWxsYmFja0VuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgZGVmYXVsdFZhbHVlOiBmYWxzZQorICBo
dW1hblJlYWRhYmxlTmFtZTogInJlcXVlc3RJZGxlQ2FsbGJhY2siCisgIGh1bWFuUmVhZGFibGVE
ZXNjcmlwdGlvbjogIkVuYWJsZSByZXF1ZXN0SWRsZUNhbGxiYWNrIHN1cHBvcnQiCisgIGNhdGVn
b3J5OiBleHBlcmltZW50YWwKKwogRGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkOgogICB0eXBlOiBi
b29sCiAgIGRlZmF1bHRWYWx1ZTogZmFsc2UKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDI1MDgxMykKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE5LTEwLTA3ICBSeW9zdWtlIE5p
d2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBJREwgZm9yIHJlcXVlc3RJZGxl
Q2FsbGJhY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwMjY1MworCisgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgorCisgICAgICAg
ICogV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3
L1dlYlByZWZlcmVuY2VzLm1tOgorICAgICAgICAoK1tXZWJQcmVmZXJlbmNlcyBpbml0aWFsaXpl
XSk6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAgICAg
KiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX3ByZWZlcmVuY2VzQ2hh
bmdlZDpdKToKKwogMjAxOS0xMC0wNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgogCiAgICAgICAgIFtKU0NdIENoYW5nZSBzaWduYXR1cmUgb2YgSG9zdEZ1bmN0aW9uIHRvIChK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopCkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgJKHJl
dmlzaW9uIDI1MDgxMykKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJl
ZmVyZW5jZUtleXNQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3Miw1ICsyNzIsNiBAQAog
I2RlZmluZSBXZWJLaXRSZWZlcnJlclBvbGljeUF0dHJpYnV0ZUVuYWJsZWRQcmVmZXJlbmNlS2V5
IEAiV2ViS2l0UmVmZXJyZXJQb2xpY3lBdHRyaWJ1dGVFbmFibGVkIgogI2RlZmluZSBXZWJLaXRS
ZXNpemVPYnNlcnZlckVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0UmVzaXplT2JzZXJ2ZXJF
bmFibGVkIgogI2RlZmluZSBXZWJLaXRDb3JlTWF0aE1MRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJX
ZWJLaXRDb3JlTWF0aE1MRW5hYmxlZCIKKyNkZWZpbmUgV2ViS2l0UmVxdWVzdElkbGVDYWxsYmFj
a0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0UmVxdWVzdElkbGVDYWxsYmFja0VuYWJsZWQi
CiAjZGVmaW5lIFdlYktpdExpbmtQcmVsb2FkUmVzcG9uc2l2ZUltYWdlc0VuYWJsZWRQcmVmZXJl
bmNlS2V5IEAiV2ViS2l0TGlua1ByZWxvYWRSZXNwb25zaXZlSW1hZ2VzRW5hYmxlZCIKIApJbmRl
eDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2Vz
Lm1tCShyZXZpc2lvbiAyNTA4MTMpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC02OTAsNiArNjkwLDcgQEAgKyAo
dm9pZClpbml0aWFsaXplCiAgICAgICAgIEBOTywgV2ViS2l0UmVzaXplT2JzZXJ2ZXJFbmFibGVk
UHJlZmVyZW5jZUtleSwKICNlbmRpZgogICAgICAgICBATk8sIFdlYktpdENvcmVNYXRoTUxFbmFi
bGVkUHJlZmVyZW5jZUtleSwKKyAgICAgICAgQE5PLCBXZWJLaXRSZXF1ZXN0SWRsZUNhbGxiYWNr
RW5hYmxlZFByZWZlcmVuY2VLZXksCiAgICAgICAgIEBOTywgV2ViS2l0TGlua1ByZWxvYWRSZXNw
b25zaXZlSW1hZ2VzRW5hYmxlZFByZWZlcmVuY2VLZXksCiAgICAgICAgIEBOTywgV2ViS2l0Q1NT
U2hhZG93UGFydHNFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgbmlsXTsKQEAgLTM0OTgs
NiArMzQ5OSwxNiBAQCAtICh2b2lkKXNldENvcmVNYXRoTUxFbmFibGVkOihCT09MKWZsYWcKICAg
ICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdENvcmVNYXRoTUxFbmFibGVk
UHJlZmVyZW5jZUtleV07CiB9CiAKKy0gKEJPT0wpcmVxdWVzdElkbGVDYWxsYmFja0VuYWJsZWQK
K3sKKyAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRSZXF1ZXN0SWRsZUNh
bGxiYWNrRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCistICh2b2lkKXNldFJlcXVlc3RJZGxl
Q2FsbGJhY2tFbmFibGVkOihCT09MKWZsYWcKK3sKKyAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZs
YWcgZm9yS2V5OldlYktpdFJlcXVlc3RJZGxlQ2FsbGJhY2tFbmFibGVkUHJlZmVyZW5jZUtleV07
Cit9CisKIC0gKEJPT0wpbGlua1ByZWxvYWRSZXNwb25zaXZlSW1hZ2VzRW5hYmxlZAogewogICAg
IHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5OldlYktpdExpbmtQcmVsb2FkUmVzcG9uc2l2
ZUltYWdlc0VuYWJsZWRQcmVmZXJlbmNlS2V5XTsKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAkocmV2aXNp
b24gMjUwODEzKQorKysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlc1ByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNjEyLDYgKzYxMiw5IEBAIEBpbnRlcmZh
Y2UgV2ViUHJlZmVyZW5jZXMgKFdlYlByaXZhdGUpCiAtICh2b2lkKXNldENvcmVNYXRoTUxFbmFi
bGVkOihCT09MKWZsYWc7CiAtIChCT09MKWNvcmVNYXRoTUxFbmFibGVkOwogCistICh2b2lkKXNl
dFJlcXVlc3RJZGxlQ2FsbGJhY2tFbmFibGVkOihCT09MKWZsYWc7CistIChCT09MKXJlcXVlc3RJ
ZGxlQ2FsbGJhY2tFbmFibGVkOworCiAtICh2b2lkKXNldExpbmtQcmVsb2FkUmVzcG9uc2l2ZUlt
YWdlc0VuYWJsZWQ6KEJPT0wpZmxhZzsKIC0gKEJPT0wpbGlua1ByZWxvYWRSZXNwb25zaXZlSW1h
Z2VzRW5hYmxlZDsKIApAQCAtNjUyLDYgKzY1NSw3IEBAIEBpbnRlcmZhY2UgV2ViUHJlZmVyZW5j
ZXMgKFdlYlByaXZhdGUpCiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCByZWZlcnJlclBvbGlj
eUF0dHJpYnV0ZUVuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCByZXNpemVPYnNl
cnZlckVuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBjb3JlTWF0aE1MRW5hYmxl
ZDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHJlcXVlc3RJZGxlQ2FsbGJhY2tFbmFibGVk
OwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgbGlua1ByZWxvYWRSZXNwb25zaXZlSW1hZ2Vz
RW5hYmxlZDsKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0JKHJldmlzaW9uIDI1MDgxMykKKysrIFNvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzIz
NSw2ICszMjM1LDcgQEAgLSAodm9pZClfcHJlZmVyZW5jZXNDaGFuZ2VkOihXZWJQcmVmZXJlbgog
ICAgIHNldHRpbmdzLnNldE1lZGlhQ2FwYWJpbGl0aWVzRW5hYmxlZChbcHJlZmVyZW5jZXMgbWVk
aWFDYXBhYmlsaXRpZXNFbmFibGVkXSk7CiAKICAgICBzZXR0aW5ncy5zZXRDb3JlTWF0aE1MRW5h
YmxlZChbcHJlZmVyZW5jZXMgY29yZU1hdGhNTEVuYWJsZWRdKTsKKyAgICBzZXR0aW5ncy5zZXRS
ZXF1ZXN0SWRsZUNhbGxiYWNrRW5hYmxlZChbcHJlZmVyZW5jZXMgcmVxdWVzdElkbGVDYWxsYmFj
a0VuYWJsZWRdKTsKIAogICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVz
KCkuc2V0U2VydmVyVGltaW5nRW5hYmxlZChbcHJlZmVyZW5jZXMgc2VydmVyVGltaW5nRW5hYmxl
ZF0pOwogCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdl
TG9nCShyZXZpc2lvbiAyNTA4MTMpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxNiBAQAorMjAxOS0xMC0wNyAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0
Lm9yZz4KKworICAgICAgICBBZGQgSURMIGZvciByZXF1ZXN0SWRsZUNhbGxiYWNrCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI2NTMKKworICAgICAg
ICBSZXZpZXdlZCBieSBHZW9mZnJleSBHYXJlbi4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L1Rlc3RPcHRpb25zLmNwcDoKKyAgICAgICAgKFRlc3RPcHRpb25zOjpUZXN0T3B0aW9ucyk6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaDoKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAgICAgIChzZXRXZWJQcmVmZXJlbmNl
c0ZvclRlc3RPcHRpb25zKToKKwogMjAxOS0xMC0wNyAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5A
YXBwbGUuY29tPgogCiAgICAgICAgIE9ubHkgd3JhcHBpbmcgQ3J5cHRvS2V5cyBmb3IgSURCIGR1
cmluZyBzZXJpYWxpemF0aW9uCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9u
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3Bw
CShyZXZpc2lvbiAyNTA4MTMpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMyw2ICsxMjMsOCBAQCBUZXN0T3B0aW9uczo6VGVzdE9w
dGlvbnMoY29uc3Qgc3RkOjpzdHJpCiAgICAgICAgICAgICBlbmFibGVSZXNpemVPYnNlcnZlciA9
IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKGtl
eSA9PSAiZXhwZXJpbWVudGFsOkNvcmVNYXRoTUxFbmFibGVkIikKICAgICAgICAgICAgIGVuYWJs
ZUNvcmVNYXRoTUwgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOworICAgICAg
ICBlbHNlIGlmIChrZXkgPT0gImV4cGVyaW1lbnRhbDpSZXF1ZXN0SWRsZUNhbGxiYWNrRW5hYmxl
ZCIpCisgICAgICAgICAgICBlbmFibGVSZXF1ZXN0SWRsZUNhbGxiYWNrID0gcGFyc2VCb29sZWFu
VGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKICAgICAgICAgcGFpclN0YXJ0ID0gcGFpckVuZCArIDE7
CiAgICAgfQogfQpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCShyZXZpc2lvbiAy
NTA4MTMpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCSh3b3JraW5nIGNv
cHkpCkBAIC01MSw2ICs1MSw3IEBAIHN0cnVjdCBUZXN0T3B0aW9ucyB7CiAgICAgYm9vbCBhZENs
aWNrQXR0cmlidXRpb25FbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIGVuYWJsZVJlc2l6ZU9i
c2VydmVyIHsgZmFsc2UgfTsKICAgICBib29sIGVuYWJsZUNvcmVNYXRoTUwgeyBmYWxzZSB9Owor
ICAgIGJvb2wgZW5hYmxlUmVxdWVzdElkbGVDYWxsYmFjayB7IGZhbHNlIH07CiAgICAgc3RkOjpz
dHJpbmcganNjT3B0aW9uczsKICAgICBzdGQ6OnN0cmluZyBhZGRpdGlvbmFsU3VwcG9ydGVkSW1h
Z2VUeXBlczsKIApJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVl
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJl
ZS5tbQkocmV2aXNpb24gMjUwODEzKQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBS
ZW5kZXJUcmVlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMDI4LDYgKzEwMjgsNyBAQCBzdGF0aWMg
dm9pZCBzZXRXZWJQcmVmZXJlbmNlc0ZvclRlc3RPcHRpCiAgICAgcHJlZmVyZW5jZXMuYWRDbGlj
a0F0dHJpYnV0aW9uRW5hYmxlZCA9IG9wdGlvbnMuYWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZDsK
ICAgICBwcmVmZXJlbmNlcy5yZXNpemVPYnNlcnZlckVuYWJsZWQgPSBvcHRpb25zLmVuYWJsZVJl
c2l6ZU9ic2VydmVyOwogICAgIHByZWZlcmVuY2VzLmNvcmVNYXRoTUxFbmFibGVkID0gb3B0aW9u
cy5lbmFibGVDb3JlTWF0aE1MOworICAgIHByZWZlcmVuY2VzLnJlcXVlc3RJZGxlQ2FsbGJhY2tF
bmFibGVkID0gb3B0aW9ucy5lbmFibGVSZXF1ZXN0SWRsZUNhbGxiYWNrOwogICAgIHByZWZlcmVu
Y2VzLnByaXZhdGVCcm93c2luZ0VuYWJsZWQgPSBvcHRpb25zLnVzZUVwaGVtZXJhbFNlc3Npb247
CiAgICAgcHJlZmVyZW5jZXMudXNlc1BhZ2VDYWNoZSA9IG9wdGlvbnMuZW5hYmxlUGFnZUNhY2hl
OwogfQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjUwODEzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTktMTAtMDcgIFJ5b3N1a2UgTml3
YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIElETCBmb3IgcmVxdWVzdElkbGVD
YWxsYmFjaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjAyNjUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCisKKyAgICAgICAg
QWRkZWQgYmFzaWMgdGVzdHMgZm9yIHZhbGlkYXRpbmcgcmVxdWVzdElkbGVDYWxsYmFjayBpcyBl
bmFibGVkIG9yIGRpc2FibGVkLCBhbmQgaXRzIGlkZW50aWZpZXIgc3RhcnRzIGF0IDEgaW4gZWFj
aCBkb2N1bWVudC4KKworICAgICAgICAqIHJlcXVlc3RpZGxlY2FsbGJhY2s6IEFkZGVkLgorICAg
ICAgICAqIHJlcXVlc3RpZGxlY2FsbGJhY2svcmVxdWVzdGlkbGVjYWxsYmFjay1lbmFibGVkLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcmVxdWVzdGlkbGVjYWxsYmFjay9yZXF1ZXN0
aWRsZWNhbGxiYWNrLWVuYWJsZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogcmVxdWVzdGlkbGVj
YWxsYmFjay9yZXF1ZXN0aWRsZWNhbGxiYWNrLWlkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogcmVxdWVzdGlkbGVjYWxsYmFjay9yZXF1ZXN0aWRsZWNhbGxiYWNrLWlkLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHJlcXVlc3RpZGxlY2FsbGJhY2svcmVxdWVzdGlkbGVjYWxsYmFjay1u
b3QtZW5hYmxlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHJlcXVlc3RpZGxlY2Fs
bGJhY2svcmVxdWVzdGlkbGVjYWxsYmFjay1ub3QtZW5hYmxlZC5odG1sOiBBZGRlZC4KKwogMjAx
OS0xMC0wNyAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgogCiAgICAgICAgIE9u
bHkgd3JhcHBpbmcgQ3J5cHRvS2V5cyBmb3IgSURCIGR1cmluZyBzZXJpYWxpemF0aW9uCkluZGV4
OiBMYXlvdXRUZXN0cy9yZXF1ZXN0aWRsZWNhbGxiYWNrL3JlcXVlc3RpZGxlY2FsbGJhY2stZW5h
YmxlZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcmVxdWVzdGlkbGVj
YWxsYmFjay9yZXF1ZXN0aWRsZWNhbGxiYWNrLWVuYWJsZWQtZXhwZWN0ZWQudHh0CShub25leGlz
dGVudCkKKysrIExheW91dFRlc3RzL3JlcXVlc3RpZGxlY2FsbGJhY2svcmVxdWVzdGlkbGVjYWxs
YmFjay1lbmFibGVkLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE5IEBA
CitUaGlzIHRlc3RzIHRoYXQgd2hlbiByZXF1ZXN0SWRsZUNhbGxiYWNrIGlzIGVuYWJsZWQsIHJl
cXVlc3RJZGxlQ2FsbGJhY2sgYW5kIElkbGVEZWFkbGluZSBhcmUgZGVmaW5lZC4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdHlwZW9mIHdpbmRvdy5yZXF1ZXN0SWRsZUNh
bGxiYWNrIGlzICJmdW5jdGlvbiIKK1BBU1Mgd2luZG93LnJlcXVlc3RJZGxlQ2FsbGJhY2subGVu
Z3RoIGlzIDEKK1BBU1MgdHlwZW9mIHdpbmRvdy5jYW5jZWxJZGxlQ2FsbGJhY2sgaXMgImZ1bmN0
aW9uIgorUEFTUyB3aW5kb3cuY2FuY2VsSWRsZUNhbGxiYWNrLmxlbmd0aCBpcyAxCitQQVNTIHdp
bmRvdy5JZGxlRGVhZGxpbmUgaXMgZGVmaW5lZC4KK1BBU1MgaWRsZURlYWRsaW5lUHJvcGVydGll
cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHdpbmRvdy5JZGxlRGVhZGxpbmUucHJvdG90
eXBlKTsgaWRsZURlYWRsaW5lUHJvcGVydGllcy5sZW5ndGggaXMgMworUEFTUyBKU09OLnN0cmlu
Z2lmeShpZGxlRGVhZGxpbmVQcm9wZXJ0aWVzLnNvcnQoKSkgaXMgIltcImNvbnN0cnVjdG9yXCIs
XCJkaWRUaW1lb3V0XCIsXCJ0aW1lUmVtYWluaW5nXCJdIgorUEFTUyBkaWRUaW1lb3V0RGVzY3Jp
cHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LklkbGVEZWFkbGlu
ZS5wcm90b3R5cGUsICJkaWRUaW1lb3V0Iik7IGRpZFRpbWVvdXREZXNjcmlwdG9yLmdldCBpcyBk
ZWZpbmVkLgorUEFTUyBkaWRUaW1lb3V0RGVzY3JpcHRvci5zZXQgaXMgdW5kZWZpbmVkLgorUEFT
UyB0eXBlb2Ygd2luZG93LklkbGVEZWFkbGluZS5wcm90b3R5cGUudGltZVJlbWFpbmluZyBpcyAi
ZnVuY3Rpb24iCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpJbmRleDogTGF5b3V0VGVzdHMvcmVxdWVzdGlkbGVjYWxsYmFjay9yZXF1ZXN0aWRsZWNh
bGxiYWNrLWVuYWJsZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9yZXF1ZXN0aWRs
ZWNhbGxiYWNrL3JlcXVlc3RpZGxlY2FsbGJhY2stZW5hYmxlZC5odG1sCShub25leGlzdGVudCkK
KysrIExheW91dFRlc3RzL3JlcXVlc3RpZGxlY2FsbGJhY2svcmVxdWVzdGlkbGVjYWxsYmFjay1l
bmFibGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIGh0
bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6UmVxdWVzdElkbGVDYWxs
YmFja0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitkZXNjcmlwdGlvbign
VGhpcyB0ZXN0cyB0aGF0IHdoZW4gcmVxdWVzdElkbGVDYWxsYmFjayBpcyBlbmFibGVkLCByZXF1
ZXN0SWRsZUNhbGxiYWNrIGFuZCBJZGxlRGVhZGxpbmUgYXJlIGRlZmluZWQuJyk7CisKK3Nob3Vs
ZEJlRXF1YWxUb1N0cmluZygndHlwZW9mIHdpbmRvdy5yZXF1ZXN0SWRsZUNhbGxiYWNrJywgJ2Z1
bmN0aW9uJyk7CitzaG91bGRCZSgnd2luZG93LnJlcXVlc3RJZGxlQ2FsbGJhY2subGVuZ3RoJywg
JzEnKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndHlwZW9mIHdpbmRvdy5jYW5jZWxJZGxlQ2Fs
bGJhY2snLCAnZnVuY3Rpb24nKTsKK3Nob3VsZEJlKCd3aW5kb3cuY2FuY2VsSWRsZUNhbGxiYWNr
Lmxlbmd0aCcsICcxJyk7CitzaG91bGRCZURlZmluZWQoJ3dpbmRvdy5JZGxlRGVhZGxpbmUnKTsK
K3Nob3VsZEJlKCdpZGxlRGVhZGxpbmVQcm9wZXJ0aWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5
TmFtZXMod2luZG93LklkbGVEZWFkbGluZS5wcm90b3R5cGUpOyBpZGxlRGVhZGxpbmVQcm9wZXJ0
aWVzLmxlbmd0aCcsICczJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ0pTT04uc3RyaW5naWZ5
KGlkbGVEZWFkbGluZVByb3BlcnRpZXMuc29ydCgpKScsICdbImNvbnN0cnVjdG9yIiwiZGlkVGlt
ZW91dCIsInRpbWVSZW1haW5pbmciXScpOworc2hvdWxkQmVEZWZpbmVkKCdkaWRUaW1lb3V0RGVz
Y3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LklkbGVEZWFk
bGluZS5wcm90b3R5cGUsICJkaWRUaW1lb3V0Iik7IGRpZFRpbWVvdXREZXNjcmlwdG9yLmdldCcp
Oworc2hvdWxkQmVVbmRlZmluZWQoJ2RpZFRpbWVvdXREZXNjcmlwdG9yLnNldCcpOworc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCd0eXBlb2Ygd2luZG93LklkbGVEZWFkbGluZS5wcm90b3R5cGUudGlt
ZVJlbWFpbmluZycsICdmdW5jdGlvbicpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL3JlcXVlc3RpZGxlY2FsbGJhY2svcmVxdWVzdGlkbGVjYWxsYmFj
ay1pZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcmVxdWVzdGlkbGVj
YWxsYmFjay9yZXF1ZXN0aWRsZWNhbGxiYWNrLWlkLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQp
CisrKyBMYXlvdXRUZXN0cy9yZXF1ZXN0aWRsZWNhbGxiYWNrL3JlcXVlc3RpZGxlY2FsbGJhY2st
aWQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTYgQEAKK1RoaXMgdGVz
dHMgdGhhdCByZXF1ZXN0SWRsZUNhbGxiYWNrIGlkZW50aWZpZXIgc3RhcnRzIGZyb20gMSBpbiBl
YWNoIGRvY3VtZW50LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZXF1
ZXN0SWRsZUNhbGxiYWNrKCgpID0+IHsgfSkgaXMgMQorUEFTUyByZXF1ZXN0SWRsZUNhbGxiYWNr
KCgpID0+IHsgfSkgaXMgMgorUEFTUyBpZnJhbWUxLmNvbnRlbnRXaW5kb3cucmVxdWVzdElkbGVD
YWxsYmFjaygoKSA9PiB7IH0pIGlzIDEKK1BBU1MgaWZyYW1lMi5jb250ZW50V2luZG93LnJlcXVl
c3RJZGxlQ2FsbGJhY2soKCkgPT4geyB9KSBpcyAxCitQQVNTIGlmcmFtZTEuY29udGVudFdpbmRv
dy5yZXF1ZXN0SWRsZUNhbGxiYWNrKCgpID0+IHsgfSkgaXMgMgorUEFTUyBpZnJhbWUxLmNvbnRl
bnRXaW5kb3cucmVxdWVzdElkbGVDYWxsYmFjaygoKSA9PiB7IH0pIGlzIDMKK1BBU1MgaWZyYW1l
Mi5jb250ZW50V2luZG93LnJlcXVlc3RJZGxlQ2FsbGJhY2soKCkgPT4geyB9KSBpcyAyCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5
b3V0VGVzdHMvcmVxdWVzdGlkbGVjYWxsYmFjay9yZXF1ZXN0aWRsZWNhbGxiYWNrLWlkLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcmVxdWVzdGlkbGVjYWxsYmFjay9yZXF1ZXN0aWRs
ZWNhbGxiYWNrLWlkLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvcmVxdWVzdGlk
bGVjYWxsYmFjay9yZXF1ZXN0aWRsZWNhbGxiYWNrLWlkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwyMyBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBl
eHBlcmltZW50YWw6UmVxdWVzdElkbGVDYWxsYmFja0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+
Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorCitkZXNjcmlwdGlvbignVGhpcyB0ZXN0cyB0aGF0IHJlcXVlc3RJZGxlQ2Fs
bGJhY2sgaWRlbnRpZmllciBzdGFydHMgZnJvbSAxIGluIGVhY2ggZG9jdW1lbnQuJyk7CisKK3No
b3VsZEJlKCdyZXF1ZXN0SWRsZUNhbGxiYWNrKCgpID0+IHsgfSknLCAnMScpOworc2hvdWxkQmUo
J3JlcXVlc3RJZGxlQ2FsbGJhY2soKCkgPT4geyB9KScsICcyJyk7CisKK2NvbnN0IGlmcmFtZTEg
PSBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFt
ZScpKTsKK2NvbnN0IGlmcmFtZTIgPSBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpKTsKKworc2hvdWxkQmUoJ2lmcmFtZTEuY29udGVudFdp
bmRvdy5yZXF1ZXN0SWRsZUNhbGxiYWNrKCgpID0+IHsgfSknLCAnMScpOworc2hvdWxkQmUoJ2lm
cmFtZTIuY29udGVudFdpbmRvdy5yZXF1ZXN0SWRsZUNhbGxiYWNrKCgpID0+IHsgfSknLCAnMScp
Oworc2hvdWxkQmUoJ2lmcmFtZTEuY29udGVudFdpbmRvdy5yZXF1ZXN0SWRsZUNhbGxiYWNrKCgp
ID0+IHsgfSknLCAnMicpOworc2hvdWxkQmUoJ2lmcmFtZTEuY29udGVudFdpbmRvdy5yZXF1ZXN0
SWRsZUNhbGxiYWNrKCgpID0+IHsgfSknLCAnMycpOworc2hvdWxkQmUoJ2lmcmFtZTIuY29udGVu
dFdpbmRvdy5yZXF1ZXN0SWRsZUNhbGxiYWNrKCgpID0+IHsgfSknLCAnMicpOworCis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3JlcXVlc3RpZGxlY2FsbGJh
Y2svcmVxdWVzdGlkbGVjYWxsYmFjay1ub3QtZW5hYmxlZC1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvcmVxdWVzdGlkbGVjYWxsYmFjay9yZXF1ZXN0aWRsZWNhbGxiYWNr
LW5vdC1lbmFibGVkLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9y
ZXF1ZXN0aWRsZWNhbGxiYWNrL3JlcXVlc3RpZGxlY2FsbGJhY2stbm90LWVuYWJsZWQtZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKK1RoaXMgdGVzdHMgdGhhdCB3
aGVuIHJlcXVlc3RJZGxlQ2FsbGJhY2sgaXMgbm90IGVuYWJsZWQsIHJlcXVlc3RJZGxlQ2FsbGJh
Y2sgYW5kIElkbGVEZWFkbGluZSBhcmUgbm90IGRlZmluZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIHdpbmRvdy5yZXF1ZXN0SWRsZUNhbGxiYWNrIGlzIHVuZGVmaW5l
ZC4KK1BBU1Mgd2luZG93LmNhbmNlbElkbGVDYWxsYmFjayBpcyB1bmRlZmluZWQuCitQQVNTIHdp
bmRvdy5JZGxlRGVhZGxpbmUgaXMgdW5kZWZpbmVkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3JlcXVlc3RpZGxl
Y2FsbGJhY2svcmVxdWVzdGlkbGVjYWxsYmFjay1ub3QtZW5hYmxlZC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3JlcXVlc3RpZGxlY2FsbGJhY2svcmVxdWVzdGlkbGVjYWxsYmFjay1u
b3QtZW5hYmxlZC5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL3JlcXVlc3RpZGxl
Y2FsbGJhY2svcmVxdWVzdGlkbGVjYWxsYmFjay1ub3QtZW5hYmxlZC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZXhwZXJpbWVudGFsOlJlcXVlc3RJZGxlQ2FsbGJhY2tFbmFibGVkPWZhbHNlIF0gLS0+
Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCdUaGlzIHRlc3RzIHRoYXQgd2hlbiBy
ZXF1ZXN0SWRsZUNhbGxiYWNrIGlzIG5vdCBlbmFibGVkLCByZXF1ZXN0SWRsZUNhbGxiYWNrIGFu
ZCBJZGxlRGVhZGxpbmUgYXJlIG5vdCBkZWZpbmVkLicpOworCitzaG91bGRCZVVuZGVmaW5lZCgn
d2luZG93LnJlcXVlc3RJZGxlQ2FsbGJhY2snKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCd3aW5kb3cu
Y2FuY2VsSWRsZUNhbGxiYWNrJyk7CitzaG91bGRCZVVuZGVmaW5lZCgnd2luZG93LklkbGVEZWFk
bGluZScpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>