<?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>171295</bug_id>
          
          <creation_ts>2017-04-25 16:01:58 -0700</creation_ts>
          <short_desc>Resource Load Statistics: Introduce shorter time-to-live for cookie partition whitelisting</short_desc>
          <delta_ts>2017-04-25 18:23:01 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="John Wilander">wilander</reporter>
          <assigned_to name="John Wilander">wilander</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1301299</commentid>
    <comment_count>0</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2017-04-25 16:01:58 -0700</bug_when>
    <thetext>Introduce shorter time-to-live for cookie partition whitelisting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1301300</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-04-25 16:07:29 -0700</bug_when>
    <thetext>&lt;rdar://problem/31823818&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1301309</commentid>
    <comment_count>2</comment_count>
      <attachid>308162</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2017-04-25 16:24:40 -0700</bug_when>
    <thetext>Created attachment 308162
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1301345</commentid>
    <comment_count>3</comment_count>
      <attachid>308162</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-04-25 17:30:04 -0700</bug_when>
    <thetext>Comment on attachment 308162
Patch

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

Looks good. Please double-check the mix of doubles and integer math is doing what you expect, and consider using a method to hide the complexity of that one predicate. Otherwise r=me.

&gt; Source/WebCore/loader/ResourceLoadObserver.cpp:52
&gt; +static auto timestampResolution = 3600;

I think this gives an integer value...

&gt; Source/WebCore/loader/ResourceLoadObserver.cpp:306
&gt;      return std::floor(seconds / timestampResolution) * timestampResolution;

... so doesn&apos;t this do integer division? Maybe the floor doesn&apos;t do anything here?

&gt; Source/WebCore/loader/ResourceLoadStatisticsStore.cpp:192
&gt; +            || currentTime() &gt; resourceStatistic.mostRecentUserInteraction + timeToLiveCookiePartitionFree);

I think this would read a little more cleanly as a local static method:

static bool shouldPartitionCookie(...)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1301357</commentid>
    <comment_count>4</comment_count>
      <attachid>308177</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2017-04-25 17:50:24 -0700</bug_when>
    <thetext>Created attachment 308177
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1301363</commentid>
    <comment_count>5</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2017-04-25 17:53:31 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #3)
&gt; Comment on attachment 308162 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=308162&amp;action=review
&gt; 
&gt; Looks good. Please double-check the mix of doubles and integer math is doing
&gt; what you expect, and consider using a method to hide the complexity of that
&gt; one predicate. Otherwise r=me.
&gt; 
&gt; &gt; Source/WebCore/loader/ResourceLoadObserver.cpp:52
&gt; &gt; +static auto timestampResolution = 3600;
&gt; 
&gt; I think this gives an integer value...
&gt; 
&gt; &gt; Source/WebCore/loader/ResourceLoadObserver.cpp:306
&gt; &gt;      return std::floor(seconds / timestampResolution) * timestampResolution;
&gt; 
&gt; ... so doesn&apos;t this do integer division? Maybe the floor doesn&apos;t do anything
&gt; here?

I tested it and the call to floor() does make a difference:
Without floor 1493167842.243571
With floor 1493164800.000000

&gt; &gt; Source/WebCore/loader/ResourceLoadStatisticsStore.cpp:192
&gt; &gt; +            || currentTime() &gt; resourceStatistic.mostRecentUserInteraction + timeToLiveCookiePartitionFree);
&gt; 
&gt; I think this would read a little more cleanly as a local static method:
&gt; 
&gt; static bool shouldPartitionCookie(...)

Agreed and fixed.

Thanks for the review, Brent!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1301381</commentid>
    <comment_count>6</comment_count>
      <attachid>308177</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-25 18:22:59 -0700</bug_when>
    <thetext>Comment on attachment 308177
Patch for landing

Clearing flags on attachment: 308177

Committed r215782: &lt;http://trac.webkit.org/changeset/215782&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1301382</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-25 18:23:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308162</attachid>
            <date>2017-04-25 16:24:40 -0700</date>
            <delta_ts>2017-04-25 17:50:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171295-20170425162439.patch</filename>
            <type>text/plain</type>
            <size>45226</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNTc0MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDE3LTA0LTI1ICBKb2huIFdp
bGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlc291cmNlIExvYWQgU3Rh
dGlzdGljczogSW50cm9kdWNlIHNob3J0ZXIgdGltZS10by1saXZlIGZvciBjb29raWUgcGFydGl0
aW9uIHdoaXRlbGlzdGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTcxMjk1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTgyMzgxOD4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBodHRwL3Rl
c3RzL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wYXJ0aXRpb25lZC1hbmQtdW5wYXJ0
aXRpb25lZC1jb29raWUtd2l0aC1wYXJ0aXRpb25pbmctdGltZW91dC5odG1sCisKKyAgICAgICAg
KiBsb2FkZXIvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVk
dWNlVGltZVJlc29sdXRpb25Ub09uZURheSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpy
ZWR1Y2VUaW1lUmVzb2x1dGlvbik6CisgICAgICAgICAgICBDaGFuZ2VkIG5hbWUgdG8gbm8gbG9u
Z2VyIGxvY2sgdGhpcyB0byBhIHNwZWNpZmljIHJlc29sdXRpb24uCisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZUxvYWRPYnNlcnZlcjo6bG9nVXNlckludGVyYWN0aW9uV2l0aFJlZHVjZWRUaW1l
UmVzb2x1dGlvbik6CisgICAgICAgICAgICBOb3cgY2FsbHMgV2ViQ29yZTo6cmVkdWNlVGltZVJl
c29sdXRpb24oKS4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZE9ic2VydmVyOjpzZXRU
aW1lVG9MaXZlQ29va2llUGFydGl0aW9uRnJlZSk6CisgICAgICAgICAgICBBZGRlZCBmb3IgdGVz
dGluZyBwdXJwb3Nlcy4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZE9ic2VydmVyOjpm
aXJlU2hvdWxkUGFydGl0aW9uQ29va2llc0hhbmRsZXIpOgorICAgICAgICAgICAgQWRkZWQgZm9y
IHRlc3RpbmcgcHVycG9zZXMuCisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZE9ic2VydmVy
Lmg6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmZpcmVTaG91bGRQ
YXJ0aXRpb25Db29raWVzSGFuZGxlcik6CisgICAgICAgICAgICBOb3cgZGVjaWRlcyB3aGV0aGVy
IGEgZG9tYWluIHNob3VsZCBnZXQgcGFydGl0aW9uZWQgY29va2llcworICAgICAgICAgICAgYmFz
ZWQgb24gdGltZVRvTGl2ZUNvb2tpZVBhcnRpdGlvbkZyZWUuCisgICAgICAgICAgICBSZW1vdmVk
IGNsZWFyRmlyc3QgcGFyYW1ldGVyIHNpbmNlIGl0J3Mgbm90IG5lZWRlZCBoZXJlCisgICAgICAg
ICAgICBhbmQgaXQgaW50cm9kdWNlZCBjb21wbGV4aXR5IGluIGtlZXBpbmcgdGhlIHN0b3JlIGFu
ZCB0aGUKKyAgICAgICAgICAgIG5ldHdvcmsgcHJvY2VzcyBjYWNoZSBpbiBzeW5jLgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzZXRUaW1lVG9MaXZlQ29v
a2llUGFydGl0aW9uRnJlZSk6CisgICAgICAgICAgICBBZGRlZCBmb3IgdGVzdGluZyBwdXJwb3Nl
cy4KKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmg6CisKIDIw
MTctMDQtMjUgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVzb3VyY2UgTG9hZCBTdGF0aXN0aWNzOiBDbGVhciBuZXR3b3JrIHByb2Nlc3MgY2FjaGUgd2hl
biBjbGVhcmluZyBzdG9yZQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9h
ZE9ic2VydmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkT2JzZXJ2ZXIuY3BwCShyZXZpc2lvbiAyMTU3NDEpCisrKyBTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OCw4ICs0
OCw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotLy8gT25lIGRheSBpbiBzZWNvbmRzLgot
c3RhdGljIGF1dG8gdGltZXN0YW1wUmVzb2x1dGlvbiA9IDg2NDAwOworLy8gT25lIGhvdXIgaW4g
c2Vjb25kcy4KK3N0YXRpYyBhdXRvIHRpbWVzdGFtcFJlc29sdXRpb24gPSAzNjAwOwogCiBSZXNv
dXJjZUxvYWRPYnNlcnZlciYgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZE9ic2VydmVyKCkK
IHsKQEAgLTMwMSw3ICszMDEsNyBAQCB2b2lkIFJlc291cmNlTG9hZE9ic2VydmVyOjpsb2dXZWJT
b2NrZXRMCiAgICAgICAgIG1fc3RvcmUtPmZpcmVEYXRhTW9kaWZpY2F0aW9uSGFuZGxlcigpOwog
fQogCi1zdGF0aWMgZG91YmxlIHJlZHVjZVRpbWVSZXNvbHV0aW9uVG9PbmVEYXkoZG91YmxlIHNl
Y29uZHMpCitzdGF0aWMgZG91YmxlIHJlZHVjZVRpbWVSZXNvbHV0aW9uKGRvdWJsZSBzZWNvbmRz
KQogewogICAgIHJldHVybiBzdGQ6OmZsb29yKHNlY29uZHMgLyB0aW1lc3RhbXBSZXNvbHV0aW9u
KSAqIHRpbWVzdGFtcFJlc29sdXRpb247CiB9CkBAIC0zMjAsNyArMzIwLDcgQEAgdm9pZCBSZXNv
dXJjZUxvYWRPYnNlcnZlcjo6bG9nVXNlckludGVyYQogICAgIGF1dG8gcHJpbWFyeURvbWFpblN0
ciA9IHByaW1hcnlEb21haW4odXJsKTsKIAogICAgIGF1dG8mIHN0YXRpc3RpY3MgPSBtX3N0b3Jl
LT5lbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JQcmltYXJ5RG9tYWluKHByaW1hcnlEb21haW5T
dHIpOwotICAgIGRvdWJsZSBuZXdUaW1lc3RhbXAgPSByZWR1Y2VUaW1lUmVzb2x1dGlvblRvT25l
RGF5KFdURjo6Y3VycmVudFRpbWUoKSk7CisgICAgZG91YmxlIG5ld1RpbWVzdGFtcCA9IHJlZHVj
ZVRpbWVSZXNvbHV0aW9uKFdURjo6Y3VycmVudFRpbWUoKSk7CiAgICAgaWYgKG5ld1RpbWVzdGFt
cCA9PSBzdGF0aXN0aWNzLm1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24pCiAgICAgICAgIHJldHVy
bjsKIApAQCAtNDI3LDExICs0MjcsMjEgQEAgdm9pZCBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2V0
VGltZVRvTGl2ZQogICAgIG1fc3RvcmUtPnNldFRpbWVUb0xpdmVVc2VySW50ZXJhY3Rpb24oc2Vj
b25kcyk7CiB9CiAKK3ZvaWQgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNldFRpbWVUb0xpdmVDb29r
aWVQYXJ0aXRpb25GcmVlKGRvdWJsZSBzZWNvbmRzKQoreworICAgIG1fc3RvcmUtPnNldFRpbWVU
b0xpdmVDb29raWVQYXJ0aXRpb25GcmVlKHNlY29uZHMpOworfQorCiB2b2lkIFJlc291cmNlTG9h
ZE9ic2VydmVyOjpmaXJlRGF0YU1vZGlmaWNhdGlvbkhhbmRsZXIoKQogewogICAgIG1fc3RvcmUt
PmZpcmVEYXRhTW9kaWZpY2F0aW9uSGFuZGxlcigpOwogfQogCit2b2lkIFJlc291cmNlTG9hZE9i
c2VydmVyOjpmaXJlU2hvdWxkUGFydGl0aW9uQ29va2llc0hhbmRsZXIoKQoreworICAgIG1fc3Rv
cmUtPmZpcmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlcigpOworfQorCiB2b2lkIFJlc291
cmNlTG9hZE9ic2VydmVyOjpmaXJlU2hvdWxkUGFydGl0aW9uQ29va2llc0hhbmRsZXIoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIGRvbWFpbnNUb1JlbW92ZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRv
bWFpbnNUb0FkZCwgYm9vbCBjbGVhckZpcnN0KQogewogICAgIG1fc3RvcmUtPmZpcmVTaG91bGRQ
YXJ0aXRpb25Db29raWVzSGFuZGxlcihkb21haW5zVG9SZW1vdmUsIGRvbWFpbnNUb0FkZCwgY2xl
YXJGaXJzdCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkT2JzZXJ2
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkT2Jz
ZXJ2ZXIuaAkocmV2aXNpb24gMjE1NzQxKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZE9ic2VydmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTYzLDkgKzYzLDExIEBAIHB1Ymxp
YzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RU
byhjb25zdCBVUkwmIHN1YnJlc291cmNlLCBjb25zdCBVUkwmIGhvc3ROYW1lUmVkaXJlY3RlZFRv
KTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VGltZVRvTGl2ZVVzZXJJbnRlcmFjdGlv
bihkb3VibGUgc2Vjb25kcyk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRUaW1lVG9MaXZl
Q29va2llUGFydGl0aW9uRnJlZShkb3VibGUgc2Vjb25kcyk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRSZWR1Y2VkVGltZXN0YW1wUmVzb2x1dGlvbihkb3VibGUgc2Vjb25kcyk7CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGZpcmVEYXRhTW9kaWZpY2F0aW9uSGFuZGxlcigpOworICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgZmlyZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVyKCk7
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmaXJlU2hvdWxkUGFydGl0aW9uQ29va2llc0hhbmRs
ZXIoY29uc3QgVmVjdG9yPFN0cmluZz4mIGRvbWFpbnNUb1JlbW92ZSwgY29uc3QgVmVjdG9yPFN0
cmluZz4mIGRvbWFpbnNUb0FkZCwgYm9vbCBjbGVhckZpcnN0KTsKIAogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0U3RhdGlzdGljc1N0b3JlKFJlZjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU+JiYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAJKHJldmlzaW9uIDIxNTc0MSkKKysrIFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00MSw2ICs0MSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0YXRpYyBjb25zdCBhdXRv
IHN0YXRpc3RpY3NNb2RlbFZlcnNpb24gPSAzOwogLy8gMzAgZGF5cyBpbiBzZWNvbmRzCiBzdGF0
aWMgYXV0byB0aW1lVG9MaXZlVXNlckludGVyYWN0aW9uID0gMjU5MjAwMDsKKy8vIDEgZGF5IGlu
IHNlY29uZHMKK3N0YXRpYyBhdXRvIHRpbWVUb0xpdmVDb29raWVQYXJ0aXRpb25GcmVlID0gODY0
MDA7CiAKIFJlZjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU+IFJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZTo6Y3JlYXRlKCkKIHsKQEAgLTE3OSwyMyArMTgxLDI5IEBAIHZvaWQgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlOjpmaXJlRGEKICAgICAgICAgbV9kYXRhQWRkZWRIYW5kbGVy
KCk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpmaXJlU2hvdWxkUGFy
dGl0aW9uQ29va2llc0hhbmRsZXIoYm9vbCBjbGVhckZpcnN0KQordm9pZCBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmU6OmZpcmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlcigpCiB7CiAg
ICAgVmVjdG9yPFN0cmluZz4gZG9tYWluc1RvUmVtb3ZlOwogICAgIFZlY3RvcjxTdHJpbmc+IGRv
bWFpbnNUb0FkZDsKICAgICAKICAgICBmb3IgKGF1dG8mIHJlc291cmNlU3RhdGlzdGljIDogbV9y
ZXNvdXJjZVN0YXRpc3RpY3NNYXAudmFsdWVzKCkpIHsKLSAgICAgICAgYm9vbCByZWNlbnRVc2Vy
SW50ZXJhY3Rpb24gPSBoYXNIYWRSZWNlbnRVc2VySW50ZXJhY3Rpb24ocmVzb3VyY2VTdGF0aXN0
aWMpOwotICAgICAgICBpZiAocmVzb3VyY2VTdGF0aXN0aWMuaXNNYXJrZWRGb3JDb29raWVQYXJ0
aXRpb25pbmcgJiYgcmVjZW50VXNlckludGVyYWN0aW9uKSB7CisgICAgICAgIGJvb2wgc2hvdWxk
UGFydGl0aW9uID0gcmVzb3VyY2VTdGF0aXN0aWMuaXNQcmV2YWxlbnRSZXNvdXJjZQorICAgICAg
ICAgICAgJiYgKCFyZXNvdXJjZVN0YXRpc3RpYy5oYWRVc2VySW50ZXJhY3Rpb24KKyAgICAgICAg
ICAgIHx8IGN1cnJlbnRUaW1lKCkgPiByZXNvdXJjZVN0YXRpc3RpYy5tb3N0UmVjZW50VXNlcklu
dGVyYWN0aW9uICsgdGltZVRvTGl2ZUNvb2tpZVBhcnRpdGlvbkZyZWUpOworICAgICAgICBpZiAo
cmVzb3VyY2VTdGF0aXN0aWMuaXNNYXJrZWRGb3JDb29raWVQYXJ0aXRpb25pbmcgJiYgIXNob3Vs
ZFBhcnRpdGlvbikgewogICAgICAgICAgICAgcmVzb3VyY2VTdGF0aXN0aWMuaXNNYXJrZWRGb3JD
b29raWVQYXJ0aXRpb25pbmcgPSBmYWxzZTsKICAgICAgICAgICAgIGRvbWFpbnNUb1JlbW92ZS5h
cHBlbmQocmVzb3VyY2VTdGF0aXN0aWMuaGlnaExldmVsRG9tYWluKTsKLSAgICAgICAgfSBlbHNl
IGlmICghcmVzb3VyY2VTdGF0aXN0aWMuaXNNYXJrZWRGb3JDb29raWVQYXJ0aXRpb25pbmcgJiYg
IXJlY2VudFVzZXJJbnRlcmFjdGlvbiAmJiByZXNvdXJjZVN0YXRpc3RpYy5pc1ByZXZhbGVudFJl
c291cmNlKSB7CisgICAgICAgIH0gZWxzZSBpZiAoIXJlc291cmNlU3RhdGlzdGljLmlzTWFya2Vk
Rm9yQ29va2llUGFydGl0aW9uaW5nICYmIHNob3VsZFBhcnRpdGlvbikgewogICAgICAgICAgICAg
cmVzb3VyY2VTdGF0aXN0aWMuaXNNYXJrZWRGb3JDb29raWVQYXJ0aXRpb25pbmcgPSB0cnVlOwog
ICAgICAgICAgICAgZG9tYWluc1RvQWRkLmFwcGVuZChyZXNvdXJjZVN0YXRpc3RpYy5oaWdoTGV2
ZWxEb21haW4pOwogICAgICAgICB9CiAgICAgfQogICAgIAotICAgIGZpcmVTaG91bGRQYXJ0aXRp
b25Db29raWVzSGFuZGxlcihkb21haW5zVG9SZW1vdmUsIGRvbWFpbnNUb0FkZCwgY2xlYXJGaXJz
dCk7CisgICAgaWYgKGRvbWFpbnNUb1JlbW92ZS5pc0VtcHR5KCkgJiYgZG9tYWluc1RvQWRkLmlz
RW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIGlmIChtX3Nob3VsZFBhcnRpdGlv
bkNvb2tpZXNGb3JEb21haW5zSGFuZGxlcikKKyAgICAgICAgbV9zaG91bGRQYXJ0aXRpb25Db29r
aWVzRm9yRG9tYWluc0hhbmRsZXIoZG9tYWluc1RvUmVtb3ZlLCBkb21haW5zVG9BZGQsIGZhbHNl
KTsKIH0KIAogdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmZpcmVTaG91bGRQYXJ0
aXRpb25Db29raWVzSGFuZGxlcihjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWluc1RvUmVtb3Zl
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWluc1RvQWRkLCBib29sIGNsZWFyRmlyc3QpCkBA
IC0yMDUsNiArMjEzLDE3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpmaXJl
U2gKIAogICAgIGlmIChtX3Nob3VsZFBhcnRpdGlvbkNvb2tpZXNGb3JEb21haW5zSGFuZGxlcikK
ICAgICAgICAgbV9zaG91bGRQYXJ0aXRpb25Db29raWVzRm9yRG9tYWluc0hhbmRsZXIoZG9tYWlu
c1RvUmVtb3ZlLCBkb21haW5zVG9BZGQsIGNsZWFyRmlyc3QpOworCisgICAgaWYgKGNsZWFyRmly
c3QpIHsKKyAgICAgICAgZm9yIChhdXRvJiByZXNvdXJjZVN0YXRpc3RpYyA6IG1fcmVzb3VyY2VT
dGF0aXN0aWNzTWFwLnZhbHVlcygpKQorICAgICAgICAgICAgcmVzb3VyY2VTdGF0aXN0aWMuaXNN
YXJrZWRGb3JDb29raWVQYXJ0aXRpb25pbmcgPSBmYWxzZTsKKyAgICB9IGVsc2UgeworICAgICAg
ICBmb3IgKGF1dG8mIGRvbWFpbiA6IGRvbWFpbnNUb1JlbW92ZSkKKyAgICAgICAgICAgIGVuc3Vy
ZVJlc291cmNlU3RhdGlzdGljc0ZvclByaW1hcnlEb21haW4oZG9tYWluKS5pc01hcmtlZEZvckNv
b2tpZVBhcnRpdGlvbmluZyA9IGZhbHNlOworICAgIH0KKworICAgIGZvciAoYXV0byYgZG9tYWlu
IDogZG9tYWluc1RvQWRkKQorICAgICAgICBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JQcmlt
YXJ5RG9tYWluKGRvbWFpbikuaXNNYXJrZWRGb3JDb29raWVQYXJ0aXRpb25pbmcgPSB0cnVlOwog
fQogCiB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0VGltZVRvTGl2ZVVzZXJJ
bnRlcmFjdGlvbihkb3VibGUgc2Vjb25kcykKQEAgLTIxMyw2ICsyMzIsMTIgQEAgdm9pZCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldFRpbQogICAgICAgICB0aW1lVG9MaXZlVXNlcklu
dGVyYWN0aW9uID0gc2Vjb25kczsKIH0KIAordm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OnNldFRpbWVUb0xpdmVDb29raWVQYXJ0aXRpb25GcmVlKGRvdWJsZSBzZWNvbmRzKQorewor
ICAgIGlmIChzZWNvbmRzID49IDApCisgICAgICAgIHRpbWVUb0xpdmVDb29raWVQYXJ0aXRpb25G
cmVlID0gc2Vjb25kczsKK30KKwogdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnBy
b2Nlc3NTdGF0aXN0aWNzKHN0ZDo6ZnVuY3Rpb248dm9pZChSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
Jik+JiYgcHJvY2Vzc0Z1bmN0aW9uKQogewogICAgIGZvciAoYXV0byYgcmVzb3VyY2VTdGF0aXN0
aWMgOiBtX3Jlc291cmNlU3RhdGlzdGljc01hcC52YWx1ZXMoKSkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgJKHJldmlz
aW9uIDIxNTc0MSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUuaAkod29ya2luZyBjb3B5KQpAQCAtNjMsNyArNjMsOCBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIGZpcmVEYXRhTW9kaWZpY2F0aW9uSGFuZGxlcigpOwogICAgIHZvaWQgc2V0VGltZVRv
TGl2ZVVzZXJJbnRlcmFjdGlvbihkb3VibGUgc2Vjb25kcyk7Ci0gICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBmaXJlU2hvdWxkUGFydGl0aW9uQ29va2llc0hhbmRsZXIoYm9vbCBjbGVhckZpcnN0KTsK
KyAgICB2b2lkIHNldFRpbWVUb0xpdmVDb29raWVQYXJ0aXRpb25GcmVlKGRvdWJsZSBzZWNvbmRz
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGZpcmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFu
ZGxlcigpOwogICAgIHZvaWQgZmlyZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVyKGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zVG9SZW1vdmUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBk
b21haW5zVG9BZGQsIGJvb2wgY2xlYXJGaXJzdCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHByb2Nlc3NTdGF0aXN0aWNzKHN0ZDo6ZnVuY3Rpb248dm9pZChSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzJik+JiYpOwpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMjE1NzQxKQorKysgU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTctMDQt
MjUgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVzb3Vy
Y2UgTG9hZCBTdGF0aXN0aWNzOiBJbnRyb2R1Y2Ugc2hvcnRlciB0aW1lLXRvLWxpdmUgZm9yIGNv
b2tpZSBwYXJ0aXRpb24gd2hpdGVsaXN0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNzEyOTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMxODIz
ODE4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLUmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbmFnZXIuY3BwOgorICAg
ICAgICAoV0tSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFuYWdlclNldFRpbWVUb0xpdmVDb29raWVQ
YXJ0aXRpb25GcmVlKToKKyAgICAgICAgKFdLUmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbmFnZXJG
aXJlU2hvdWxkUGFydGl0aW9uQ29va2llc0hhbmRsZXIpOgorICAgICAgICAoV0tSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzTWFuYWdlckZpcmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlckZvck9u
ZURvbWFpbik6CisgICAgICAgICAgICBDaGFuZ2VzIGFuZCBhZGRpdGlvbnMgdG8gdGVzdCBpbmZy
YXN0cnVjdHVyZS4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzTWFuYWdlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NNYW5hZ2VyOjpzZXRUaW1lVG9MaXZlQ29va2llUGFydGl0aW9uRnJlZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyOjpmaXJlU2hvdWxkUGFy
dGl0aW9uQ29va2llc0hhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzTWFuYWdlcjo6ZmlyZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVyRm9yT25l
RG9tYWluKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbmFn
ZXI6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUpOgorICAgICAgICAgICAgQ2hhbmdlcyBhbmQgYWRk
aXRpb25zIHRvIHRlc3QgaW5mcmFzdHJ1Y3R1cmUuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc1VwZGF0ZWQpOgor
ICAgICAgICAgICAgTm8gbG9uZ2VyIHNlbmRzIGEgYm9vbGVhbiBwYXJhbWV0ZXIgdG8KKyAgICAg
ICAgICAgIFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6ZmlyZVNob3VsZFBh
cnRpdGlvbkNvb2tpZXNIYW5kbGVyKCkuCisKIDIwMTctMDQtMjUgIEpvaG4gV2lsYW5kZXIgIDx3
aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmVzb3VyY2UgTG9hZCBTdGF0aXN0aWNzOiBD
bGVhciBuZXR3b3JrIHByb2Nlc3MgY2FjaGUgd2hlbiBjbGVhcmluZyBzdG9yZQpJbmRleDogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc01hbmFnZXIuY3BwCShyZXZpc2lvbiAyMTU3NDEpCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbmFnZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC04MSwxMiArODEsMjIgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
TWFuYWdlcjo6cwogICAgIFdlYkNvcmU6OlJlc291cmNlTG9hZE9ic2VydmVyOjpzaGFyZWRPYnNl
cnZlcigpLnNldFRpbWVUb0xpdmVVc2VySW50ZXJhY3Rpb24oc2Vjb25kcyk7CiB9CiAKK3ZvaWQg
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbmFnZXI6OnNldFRpbWVUb0xpdmVDb29raWVQYXJ0
aXRpb25GcmVlKGRvdWJsZSBzZWNvbmRzKQoreworICAgIFdlYkNvcmU6OlJlc291cmNlTG9hZE9i
c2VydmVyOjpzaGFyZWRPYnNlcnZlcigpLnNldFRpbWVUb0xpdmVDb29raWVQYXJ0aXRpb25GcmVl
KHNlY29uZHMpOworfQorCiB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyOjpm
aXJlRGF0YU1vZGlmaWNhdGlvbkhhbmRsZXIoKQogewogICAgIFdlYkNvcmU6OlJlc291cmNlTG9h
ZE9ic2VydmVyOjpzaGFyZWRPYnNlcnZlcigpLmZpcmVEYXRhTW9kaWZpY2F0aW9uSGFuZGxlcigp
OwogfQogCi12b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyOjpmaXJlU2hvdWxk
UGFydGl0aW9uQ29va2llc0hhbmRsZXIoY29uc3QgU3RyaW5nJiBob3N0TmFtZSwgYm9vbCB2YWx1
ZSkKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbmFnZXI6OmZpcmVTaG91bGRQYXJ0
aXRpb25Db29raWVzSGFuZGxlcigpCit7CisgICAgV2ViQ29yZTo6UmVzb3VyY2VMb2FkT2JzZXJ2
ZXI6OnNoYXJlZE9ic2VydmVyKCkuZmlyZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVyKCk7
Cit9CisKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbmFnZXI6OmZpcmVTaG91bGRQ
YXJ0aXRpb25Db29raWVzSGFuZGxlckZvck9uZURvbWFpbihjb25zdCBTdHJpbmcmIGhvc3ROYW1l
LCBib29sIHZhbHVlKQogewogICAgIGlmICh2YWx1ZSkKICAgICAgICAgV2ViQ29yZTo6UmVzb3Vy
Y2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZE9ic2VydmVyKCkuZmlyZVNob3VsZFBhcnRpdGlvbkNvb2tp
ZXNIYW5kbGVyKHsgfSwge2hvc3ROYW1lfSwgZmFsc2UpOwpAQCAtMTE3LDYgKzEyNyw3IEBAIHZv
aWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbmFnZXI6OmMKIHZvaWQgV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc01hbmFnZXI6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUoKQogewogICAgIFdl
YkNvcmU6OlJlc291cmNlTG9hZE9ic2VydmVyOjpzaGFyZWRPYnNlcnZlcigpLnNldFRpbWVUb0xp
dmVVc2VySW50ZXJhY3Rpb24oMjU5MjAwMCk7CisgICAgV2ViQ29yZTo6UmVzb3VyY2VMb2FkT2Jz
ZXJ2ZXI6OnNoYXJlZE9ic2VydmVyKCkuc2V0VGltZVRvTGl2ZUNvb2tpZVBhcnRpdGlvbkZyZWUo
ODY0MDApOwogICAgIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0Tm90aWZ5UGFn
ZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZChmYWxzZSk7CiAgICAgV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOjpzZXRTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNv
cmRzUmVtb3ZhbCh0cnVlKTsKICAgICBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNl
dE1pbmltdW1UaW1lQmV0d2VlZW5EYXRhUmVjb3Jkc1JlbW92YWwoNjApOwpJbmRleDogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NNYW5hZ2VyLmgJKHJldmlzaW9uIDIxNTc0MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFuYWdlci5oCSh3b3JraW5nIGNvcHkpCkBA
IC00Niw5ICs0NiwxMSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgc2V0U3VicmVzb3VyY2VV
bmRlclRvcEZyYW1lT3JpZ2luKGNvbnN0IFN0cmluZyYgaG9zdE5hbWUsIGNvbnN0IFN0cmluZyYg
dG9wRnJhbWVIb3N0TmFtZSk7CiAgICAgc3RhdGljIHZvaWQgc2V0U3VicmVzb3VyY2VVbmlxdWVS
ZWRpcmVjdFRvKGNvbnN0IFN0cmluZyYgaG9zdE5hbWUsIGNvbnN0IFN0cmluZyYgaG9zdE5hbWVS
ZWRpcmVjdGVkVG8pOwogICAgIHN0YXRpYyB2b2lkIHNldFRpbWVUb0xpdmVVc2VySW50ZXJhY3Rp
b24oZG91YmxlIHNlY29uZHMpOworICAgIHN0YXRpYyB2b2lkIHNldFRpbWVUb0xpdmVDb29raWVQ
YXJ0aXRpb25GcmVlKGRvdWJsZSBzZWNvbmRzKTsKICAgICBzdGF0aWMgdm9pZCBzZXRSZWR1Y2Vk
VGltZXN0YW1wUmVzb2x1dGlvbihkb3VibGUgc2Vjb25kcyk7CiAgICAgc3RhdGljIHZvaWQgZmly
ZURhdGFNb2RpZmljYXRpb25IYW5kbGVyKCk7Ci0gICAgc3RhdGljIHZvaWQgZmlyZVNob3VsZFBh
cnRpdGlvbkNvb2tpZXNIYW5kbGVyKGNvbnN0IFN0cmluZyYgaG9zdE5hbWUsIGJvb2wgdmFsdWUp
OworICAgIHN0YXRpYyB2b2lkIGZpcmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlcigpOwor
ICAgIHN0YXRpYyB2b2lkIGZpcmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlckZvck9uZURv
bWFpbihjb25zdCBTdHJpbmcmIGhvc3ROYW1lLCBib29sIHZhbHVlKTsKICAgICBzdGF0aWMgdm9p
ZCBzZXROb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKGJvb2wpOwogICAgIHN0
YXRpYyB2b2lkIHNldFNob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1v
dmFsKGJvb2wgdmFsdWUpOwogICAgIHN0YXRpYyB2b2lkIHNldE1pbmltdW1UaW1lQmV0d2VlZW5E
YXRhUmVjb3Jkc1JlbW92YWwoZG91YmxlIHNlY29uZHMpOwpJbmRleDogU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZS5jcHAJKHJldmlzaW9uIDIxNTc0MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTIsNyAr
MTUyLDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlcwogICAgIGNv
cmVTdG9yZSgpLm1lcmdlU3RhdGlzdGljcyhvcmlnaW5zKTsKICAgICAvLyBGaXJlIGJlZm9yZSBw
cm9jZXNzaW5nIHN0YXRpc3RpY3MgdG8gcHJvcGFnYXRlIHVzZXIKICAgICAvLyBpbnRlcmFjdGlv
biBhcyBmYXN0IGFzIHBvc3NpYmxlIHRvIHRoZSBuZXR3b3JrIHByb2Nlc3MuCi0gICAgY29yZVN0
b3JlKCkuZmlyZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVyKGZhbHNlKTsKKyAgICBjb3Jl
U3RvcmUoKS5maXJlU2hvdWxkUGFydGl0aW9uQ29va2llc0hhbmRsZXIoKTsKICAgICBwcm9jZXNz
U3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzTWFuYWdlci5jcHAJKHJldmlzaW9uIDIxNTc0MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNzYsMTQgKzc2LDI0IEBAIHZvaWQgV0tSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
TWFuYWdlclNldFQKICAgICBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFuYWdlcjo6c2V0VGlt
ZVRvTGl2ZVVzZXJJbnRlcmFjdGlvbihzZWNvbmRzKTsKIH0KIAordm9pZCBXS1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NNYW5hZ2VyU2V0VGltZVRvTGl2ZUNvb2tpZVBhcnRpdGlvbkZyZWUoZG91Ymxl
IHNlY29uZHMpCit7CisgICAgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbmFnZXI6OnNldFRp
bWVUb0xpdmVDb29raWVQYXJ0aXRpb25GcmVlKHNlY29uZHMpOworfQorCiB2b2lkIFdLUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc01hbmFnZXJGaXJlRGF0YU1vZGlmaWNhdGlvbkhhbmRsZXIoKQogewog
ICAgIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyOjpmaXJlRGF0YU1vZGlmaWNhdGlv
bkhhbmRsZXIoKTsKIH0KIAotdm9pZCBXS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyRmly
ZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVyKFdLU3RyaW5nUmVmIGhvc3ROYW1lLCBib29s
IHZhbHVlKQordm9pZCBXS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyRmlyZVNob3VsZFBh
cnRpdGlvbkNvb2tpZXNIYW5kbGVyKCkKK3sKKyAgICBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
TWFuYWdlcjo6ZmlyZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVyKCk7Cit9CisKK3ZvaWQg
V0tSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFuYWdlckZpcmVTaG91bGRQYXJ0aXRpb25Db29raWVz
SGFuZGxlckZvck9uZURvbWFpbihXS1N0cmluZ1JlZiBob3N0TmFtZSwgYm9vbCB2YWx1ZSkKIHsK
LSAgICBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFuYWdlcjo6ZmlyZVNob3VsZFBhcnRpdGlv
bkNvb2tpZXNIYW5kbGVyKHRvV1RGU3RyaW5nKGhvc3ROYW1lKSwgdmFsdWUpOworICAgIFdlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyOjpmaXJlU2hvdWxkUGFydGl0aW9uQ29va2llc0hh
bmRsZXJGb3JPbmVEb21haW4odG9XVEZTdHJpbmcoaG9zdE5hbWUpLCB2YWx1ZSk7CiB9CiAKIHZv
aWQgV0tSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFuYWdlclNldE5vdGlmeVBhZ2VzV2hlbkRhdGFS
ZWNvcmRzV2VyZVNjYW5uZWQoYm9vbCB2YWx1ZSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c01hbmFnZXIuaAkocmV2aXNpb24gMjE1NzQxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbmFnZXIuaAkod29ya2luZyBjb3B5KQpA
QCAtNDEsOCArNDEsMTAgQEAgZXh0ZXJuICJDIiB7CiAgICAgV0tfRVhQT1JUIHZvaWQgV0tSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzTWFuYWdlclNldFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdp
bihXS1N0cmluZ1JlZiBob3N0TmFtZSwgV0tTdHJpbmdSZWYgdG9wRnJhbWVIb3N0TmFtZSk7CiAg
ICAgV0tfRVhQT1JUIHZvaWQgV0tSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFuYWdlclNldFN1YnJl
c291cmNlVW5pcXVlUmVkaXJlY3RUbyhXS1N0cmluZ1JlZiBob3N0TmFtZSwgV0tTdHJpbmdSZWYg
aG9zdE5hbWVSZWRpcmVjdGVkVG8pOwogICAgIFdLX0VYUE9SVCB2b2lkIFdLUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc01hbmFnZXJTZXRUaW1lVG9MaXZlVXNlckludGVyYWN0aW9uKGRvdWJsZSBzZWNv
bmRzKTsKKyAgICBXS19FWFBPUlQgdm9pZCBXS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2Vy
U2V0VGltZVRvTGl2ZUNvb2tpZVBhcnRpdGlvbkZyZWUoZG91YmxlIHNlY29uZHMpOwogICAgIFdL
X0VYUE9SVCB2b2lkIFdLUmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbmFnZXJGaXJlRGF0YU1vZGlm
aWNhdGlvbkhhbmRsZXIoKTsKLSAgICBXS19FWFBPUlQgdm9pZCBXS1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NNYW5hZ2VyRmlyZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVyKFdLU3RyaW5nUmVm
IGhvc3ROYW1lLCBib29sIHZhbHVlKTsKKyAgICBXS19FWFBPUlQgdm9pZCBXS1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NNYW5hZ2VyRmlyZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVyKCk7Cisg
ICAgV0tfRVhQT1JUIHZvaWQgV0tSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFuYWdlckZpcmVTaG91
bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlckZvck9uZURvbWFpbihXS1N0cmluZ1JlZiBob3N0TmFt
ZSwgYm9vbCB2YWx1ZSk7CiAgICAgV0tfRVhQT1JUIHZvaWQgV0tSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzTWFuYWdlclNldE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQoYm9vbCB2
YWx1ZSk7CiAgICAgV0tfRVhQT1JUIHZvaWQgV0tSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFuYWdl
clNldFNob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGJvb2wg
dmFsdWUpOwogICAgIFdLX0VYUE9SVCB2b2lkIFdLUmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbmFn
ZXJTZXRNaW5pbXVtVGltZUJldHdlZWVuRGF0YVJlY29yZHNSZW1vdmFsKGRvdWJsZSBzZWNvbmRz
KTsKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDIxNTc2NykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDI1IEBACisyMDE3LTA0LTI1ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUu
Y29tPgorCisgICAgICAgIFJlc291cmNlIExvYWQgU3RhdGlzdGljczogSW50cm9kdWNlIHNob3J0
ZXIgdGltZS10by1saXZlIGZvciBjb29raWUgcGFydGl0aW9uIHdoaXRlbGlzdGluZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMjk1CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS8zMTgyMzgxOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0U3Rh
dGlzdGljc1RpbWVUb0xpdmVDb29raWVQYXJ0aXRpb25GcmVlKToKKyAgICAgICAgKFdUUjo6VGVz
dFJ1bm5lcjo6c3RhdGlzdGljc0ZpcmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlcik6Cisg
ICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnN0YXRpc3RpY3NGaXJlU2hvdWxkUGFydGl0aW9uQ29v
a2llc0hhbmRsZXJGb3JPbmVEb21haW4pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlz
dGljc1RpbWVUb0xpdmVDb29raWVQYXJ0aXRpb25GcmVlKToKKyAgICAgICAgKFdUUjo6VGVzdENv
bnRyb2xsZXI6OnN0YXRpc3RpY3NGaXJlU2hvdWxkUGFydGl0aW9uQ29va2llc0hhbmRsZXIpOgor
ICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c3RhdGlzdGljc0ZpcmVTaG91bGRQYXJ0aXRp
b25Db29raWVzSGFuZGxlckZvck9uZURvbWFpbik6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9j
YXRpb24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNo
cm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6CisKIDIwMTctMDQtMjUgIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgVHJ5IHRvIGZpeCB0aGUg
V0tUUiBidWlsZCBhZnRlciByMjE1NzU4CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcAkocmV2aXNpb24gMjE1NzQxKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyNTYsMTQgKzIyNTYs
MjQgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc1RpbWVUbwogICAgIFdLUmVz
b3VyY2VMb2FkU3RhdGlzdGljc01hbmFnZXJTZXRUaW1lVG9MaXZlVXNlckludGVyYWN0aW9uKHNl
Y29uZHMpOwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzVGltZVRvTGl2
ZUNvb2tpZVBhcnRpdGlvbkZyZWUoZG91YmxlIHNlY29uZHMpCit7CisgICAgV0tSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzTWFuYWdlclNldFRpbWVUb0xpdmVDb29raWVQYXJ0aXRpb25GcmVlKHNlY29u
ZHMpOworfQorCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzdGF0aXN0aWNzRmlyZURhdGFNb2RpZmlj
YXRpb25IYW5kbGVyKCkKIHsKICAgICBXS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyRmly
ZURhdGFNb2RpZmljYXRpb25IYW5kbGVyKCk7CiB9CiAgICAgCi12b2lkIFRlc3RDb250cm9sbGVy
OjpzdGF0aXN0aWNzRmlyZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVyKFdLU3RyaW5nUmVm
IGhvc3ROYW1lLCBib29sIHZhbHVlKQordm9pZCBUZXN0Q29udHJvbGxlcjo6c3RhdGlzdGljc0Zp
cmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlcigpCit7CisgICAgV0tSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzTWFuYWdlckZpcmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlcigpOworfQor
Cit2b2lkIFRlc3RDb250cm9sbGVyOjpzdGF0aXN0aWNzRmlyZVNob3VsZFBhcnRpdGlvbkNvb2tp
ZXNIYW5kbGVyRm9yT25lRG9tYWluKFdLU3RyaW5nUmVmIGhvc3ROYW1lLCBib29sIHZhbHVlKQog
ewotICAgIFdLUmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbmFnZXJGaXJlU2hvdWxkUGFydGl0aW9u
Q29va2llc0hhbmRsZXIoaG9zdE5hbWUsIHZhbHVlKTsKKyAgICBXS1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NNYW5hZ2VyRmlyZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVyRm9yT25lRG9tYWlu
KGhvc3ROYW1lLCB2YWx1ZSk7CiB9CiAKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3Rp
Y3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKGJvb2wgdmFsdWUpCkluZGV4
OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCShyZXZpc2lvbiAyMTU3NDEp
CisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTE1Nyw4ICsxNTcsMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U3RhdGlzdGljc1N1
YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihXS1N0cmluZ1JlZiBob3N0TmFtZSwgV0tTdHJp
bmdSZWYgdG9wRnJhbWVIb3N0TmFtZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzU3VicmVzb3Vy
Y2VVbmlxdWVSZWRpcmVjdFRvKFdLU3RyaW5nUmVmIGhvc3ROYW1lLCBXS1N0cmluZ1JlZiBob3N0
TmFtZVJlZGlyZWN0ZWRUbyk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzVGltZVRvTGl2ZVVzZXJJ
bnRlcmFjdGlvbihkb3VibGUgc2Vjb25kcyk7CisgICAgdm9pZCBzZXRTdGF0aXN0aWNzVGltZVRv
TGl2ZUNvb2tpZVBhcnRpdGlvbkZyZWUoZG91YmxlIHNlY29uZHMpOwogICAgIHZvaWQgc3RhdGlz
dGljc0ZpcmVEYXRhTW9kaWZpY2F0aW9uSGFuZGxlcigpOwotICAgIHZvaWQgc3RhdGlzdGljc0Zp
cmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlcihXS1N0cmluZ1JlZiBob3N0TmFtZSwgYm9v
bCB2YWx1ZSk7CisgICAgdm9pZCBzdGF0aXN0aWNzRmlyZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNI
YW5kbGVyKCk7CisgICAgdm9pZCBzdGF0aXN0aWNzRmlyZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNI
YW5kbGVyRm9yT25lRG9tYWluKFdLU3RyaW5nUmVmIGhvc3ROYW1lLCBib29sIHZhbHVlKTsKICAg
ICB2b2lkIHNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVk
KGJvb2wpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVm
b3JlRGF0YVJlY29yZHNSZW1vdmFsKGJvb2wpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc01pbmlt
dW1UaW1lQmV0d2VlZW5EYXRhUmVjb3Jkc1JlbW92YWwoZG91YmxlKTsKSW5kZXg6IFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCShyZXZpc2lvbiAyMTU3NDEpCisrKyBU
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTAwMiwxMiArMTAwMiwyNCBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0
aW9uOjpkCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KICAgICAKKyAgICBpZiAoV0tT
dHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFN0YXRpc3RpY3NUaW1l
VG9MaXZlQ29va2llUGFydGl0aW9uRnJlZSIpKSB7CisgICAgICAgIEFTU0VSVChXS0dldFR5cGVJ
RChtZXNzYWdlQm9keSkgPT0gV0tEb3VibGVHZXRUeXBlSUQoKSk7CisgICAgICAgIFdLRG91Ymxl
UmVmIHNlY29uZHMgPSBzdGF0aWNfY2FzdDxXS0RvdWJsZVJlZj4obWVzc2FnZUJvZHkpOworICAg
ICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0U3RhdGlzdGljc1RpbWVUb0xpdmVD
b29raWVQYXJ0aXRpb25GcmVlKFdLRG91YmxlR2V0VmFsdWUoc2Vjb25kcykpOworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0
cmluZyhtZXNzYWdlTmFtZSwgIlN0YXRpc3RpY3NGaXJlRGF0YU1vZGlmaWNhdGlvbkhhbmRsZXIi
KSkgewogICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc3RhdGlzdGljc0ZpcmVE
YXRhTW9kaWZpY2F0aW9uSGFuZGxlcigpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9
CiAgICAgCiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUs
ICJTdGF0aXN0aWNzRmlyZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVyIikpIHsKKyAgICAg
ICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnN0YXRpc3RpY3NGaXJlU2hvdWxkUGFydGl0
aW9uQ29va2llc0hhbmRsZXIoKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisg
ICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTdGF0aXN0
aWNzRmlyZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVyRm9yT25lRG9tYWluIikpIHsKICAg
ICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0RpY3Rpb25hcnlHZXRU
eXBlSUQoKSk7CiAgICAgICAgIAogICAgICAgICBXS0RpY3Rpb25hcnlSZWYgbWVzc2FnZUJvZHlE
aWN0aW9uYXJ5ID0gc3RhdGljX2Nhc3Q8V0tEaWN0aW9uYXJ5UmVmPihtZXNzYWdlQm9keSk7CkBA
IC0xMDE3LDcgKzEwMjksNyBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9u
OjpkCiAgICAgICAgIFdLU3RyaW5nUmVmIGhvc3ROYW1lID0gc3RhdGljX2Nhc3Q8V0tTdHJpbmdS
ZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBob3N0
TmFtZUtleS5nZXQoKSkpOwogICAgICAgICBXS0Jvb2xlYW5SZWYgdmFsdWUgPSBzdGF0aWNfY2Fz
dDxXS0Jvb2xlYW5SZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0
aW9uYXJ5LCB2YWx1ZUtleS5nZXQoKSkpOwogICAgICAgICAKLSAgICAgICAgVGVzdENvbnRyb2xs
ZXI6OnNpbmdsZXRvbigpLnN0YXRpc3RpY3NGaXJlU2hvdWxkUGFydGl0aW9uQ29va2llc0hhbmRs
ZXIoaG9zdE5hbWUsIFdLQm9vbGVhbkdldFZhbHVlKHZhbHVlKSk7CisgICAgICAgIFRlc3RDb250
cm9sbGVyOjpzaW5nbGV0b24oKS5zdGF0aXN0aWNzRmlyZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNI
YW5kbGVyRm9yT25lRG9tYWluKGhvc3ROYW1lLCBXS0Jvb2xlYW5HZXRWYWx1ZSh2YWx1ZSkpOwog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAgICAgCkluZGV4OiBUb29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAJKHJldmlz
aW9uIDIxNTc0MSkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMjUsNiArMTMyNSwxMyBAQCB2b2lkIFRl
c3RSdW5uZXI6OnNldFN0YXRpc3RpY3NUaW1lVG9MaXZlCiAgICAgV0tCdW5kbGVQb3N0U3luY2hy
b25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwgbWVzc2Fn
ZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpLCBudWxscHRyKTsKIH0KIAordm9pZCBUZXN0
UnVubmVyOjpzZXRTdGF0aXN0aWNzVGltZVRvTGl2ZUNvb2tpZVBhcnRpdGlvbkZyZWUoZG91Ymxl
IHNlY29uZHMpCit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lKEFk
b3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTZXRTdGF0aXN0aWNzVGltZVRv
TGl2ZUNvb2tpZVBhcnRpdGlvbkZyZWUiKSk7CisgICAgV0tSZXRhaW5QdHI8V0tEb3VibGVSZWY+
IG1lc3NhZ2VCb2R5KEFkb3B0V0ssIFdLRG91YmxlQ3JlYXRlKHNlY29uZHMpKTsKKyAgICBXS0J1
bmRsZVBvc3RTeW5jaHJvbm91c01lc3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLmJ1
bmRsZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCksIG51bGxwdHIpOwor
fQorCiB2b2lkIFRlc3RSdW5uZXI6Omluc3RhbGxTdGF0aXN0aWNzRGlkTW9kaWZ5RGF0YVJlY29y
ZHNDYWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQogewogICAgIGNhY2hlVGVzdFJ1bm5lckNh
bGxiYWNrKFN0YXRpc3RpY3NEaWRNb2RpZnlEYXRhUmVjb3Jkc0NhbGxiYWNrSUQsIGNhbGxiYWNr
KTsKQEAgLTEzNDEsNyArMTM0OCwxMyBAQCB2b2lkIFRlc3RSdW5uZXI6OnN0YXRpc3RpY3NGaXJl
RGF0YU1vZGlmCiAgICAgV0tCdW5kbGVQb3N0U3luY2hyb25vdXNNZXNzYWdlKEluamVjdGVkQnVu
ZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIDAsIG51bGxwdHIp
OwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnN0YXRpc3RpY3NGaXJlU2hvdWxkUGFydGl0aW9uQ29v
a2llc0hhbmRsZXIoSlNTdHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFsdWUpCit2b2lkIFRlc3RS
dW5uZXI6OnN0YXRpc3RpY3NGaXJlU2hvdWxkUGFydGl0aW9uQ29va2llc0hhbmRsZXIoKQorewor
ICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmlu
Z0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU3RhdGlzdGljc0ZpcmVTaG91bGRQYXJ0aXRpb25Db29r
aWVzSGFuZGxlciIpKTsKKyAgICBXS0J1bmRsZVBvc3RTeW5jaHJvbm91c01lc3NhZ2UoSW5qZWN0
ZWRCdW5kbGU6OnNpbmdsZXRvbigpLmJ1bmRsZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgMCwgbnVs
bHB0cik7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6c3RhdGlzdGljc0ZpcmVTaG91bGRQYXJ0aXRp
b25Db29raWVzSGFuZGxlckZvck9uZURvbWFpbihKU1N0cmluZ1JlZiBob3N0TmFtZSwgYm9vbCB2
YWx1ZSkKIHsKICAgICBWZWN0b3I8V0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+PiBrZXlzOwogICAg
IFZlY3RvcjxXS1JldGFpblB0cjxXS1R5cGVSZWY+PiB2YWx1ZXM7CkBAIC0xMzYwLDcgKzEzNzMs
NyBAQCB2b2lkIFRlc3RSdW5uZXI6OnN0YXRpc3RpY3NGaXJlU2hvdWxkUGFyCiAgICAgICAgIHJh
d1ZhbHVlc1tpXSA9IHZhbHVlc1tpXS5nZXQoKTsKICAgICB9CiAgICAgCi0gICAgV0tSZXRhaW5Q
dHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVU
RjhDU3RyaW5nKCJTdGF0aXN0aWNzRmlyZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVyIikp
OworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU3RhdGlzdGljc0ZpcmVTaG91bGRQYXJ0aXRpb25D
b29raWVzSGFuZGxlckZvck9uZURvbWFpbiIpKTsKICAgICBXS1JldGFpblB0cjxXS0RpY3Rpb25h
cnlSZWY+IG1lc3NhZ2VCb2R5KEFkb3B0V0ssIFdLRGljdGlvbmFyeUNyZWF0ZShyYXdLZXlzLmRh
dGEoKSwgcmF3VmFsdWVzLmRhdGEoKSwgcmF3S2V5cy5zaXplKCkpKTsKICAgICAKICAgICBXS0J1
bmRsZVBvc3RTeW5jaHJvbm91c01lc3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLmJ1
bmRsZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCksIG51bGxwdHIpOwpJ
bmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmgJKHJldmlzaW9uIDIxNTc0MSkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNTIsNyArMzUyLDgg
QEAgcHVibGljOgogICAgIHZvaWQgaW5zdGFsbFN0YXRpc3RpY3NEaWRNb2RpZnlEYXRhUmVjb3Jk
c0NhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spOwogICAgIHZvaWQgc3RhdGlzdGljc0RpZE1v
ZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2soKTsKICAgICB2b2lkIHN0YXRpc3RpY3NGaXJlRGF0YU1v
ZGlmaWNhdGlvbkhhbmRsZXIoKTsKLSAgICB2b2lkIHN0YXRpc3RpY3NGaXJlU2hvdWxkUGFydGl0
aW9uQ29va2llc0hhbmRsZXIoSlNTdHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFsdWUpOworICAg
IHZvaWQgc3RhdGlzdGljc0ZpcmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlcigpOworICAg
IHZvaWQgc3RhdGlzdGljc0ZpcmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlckZvck9uZURv
bWFpbihKU1N0cmluZ1JlZiBob3N0TmFtZSwgYm9vbCB2YWx1ZSk7CiAgICAgdm9pZCBzZXRTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoSlNTdHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFsdWUp
OwogICAgIGJvb2wgaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoSlNTdHJpbmdSZWYgaG9z
dE5hbWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihKU1N0
cmluZ1JlZiBob3N0TmFtZSwgYm9vbCB2YWx1ZSk7CkBAIC0zNjEsNiArMzYyLDcgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihK
U1N0cmluZ1JlZiBob3N0TmFtZSwgSlNTdHJpbmdSZWYgdG9wRnJhbWVIb3N0TmFtZSk7CiAgICAg
dm9pZCBzZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKEpTU3RyaW5nUmVm
IGhvc3ROYW1lLCBKU1N0cmluZ1JlZiBob3N0TmFtZVJlZGlyZWN0ZWRUbyk7CiAgICAgdm9pZCBz
ZXRTdGF0aXN0aWNzVGltZVRvTGl2ZVVzZXJJbnRlcmFjdGlvbihkb3VibGUgc2Vjb25kcyk7Cisg
ICAgdm9pZCBzZXRTdGF0aXN0aWNzVGltZVRvTGl2ZUNvb2tpZVBhcnRpdGlvbkZyZWUoZG91Ymxl
IHNlY29uZHMpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNv
cmRzV2VyZVNjYW5uZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3Np
ZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoYm9vbCk7CiAgICAgdm9pZCBzZXRT
dGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVlbkRhdGFSZWNvcmRzUmVtb3ZhbChkb3VibGUpOwpJ
bmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0
UnVubmVyLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCShyZXZpc2lvbiAyMTU3NDEpCisrKyBUb29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0yNTgsOCArMjU4LDEwIEBAIGludGVyZmFjZSBUZXN0UnVubmVy
IHsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4o
RE9NU3RyaW5nIGhvc3ROYW1lLCBET01TdHJpbmcgdG9wRnJhbWVIb3N0TmFtZSk7CiAgICAgdm9p
ZCBzZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKERPTVN0cmluZyBob3N0
TmFtZSwgRE9NU3RyaW5nIGhvc3ROYW1lUmVkaXJlY3RlZFRvKTsKICAgICB2b2lkIHNldFN0YXRp
c3RpY3NUaW1lVG9MaXZlVXNlckludGVyYWN0aW9uKGRvdWJsZSBzZWNvbmRzKTsKKyAgICB2b2lk
IHNldFN0YXRpc3RpY3NUaW1lVG9MaXZlQ29va2llUGFydGl0aW9uRnJlZShkb3VibGUgc2Vjb25k
cyk7CiAgICAgdm9pZCBzdGF0aXN0aWNzRmlyZURhdGFNb2RpZmljYXRpb25IYW5kbGVyKCk7Ci0g
ICAgdm9pZCBzdGF0aXN0aWNzRmlyZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVyKERPTVN0
cmluZyBob3N0TmFtZSwgYm9vbGVhbiB2YWx1ZSk7CisgICAgdm9pZCBzdGF0aXN0aWNzRmlyZVNo
b3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVyKCk7CisgICAgdm9pZCBzdGF0aXN0aWNzRmlyZVNo
b3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVyRm9yT25lRG9tYWluKERPTVN0cmluZyBob3N0TmFt
ZSwgYm9vbGVhbiB2YWx1ZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVu
RGF0YVJlY29yZHNXZXJlU2Nhbm5lZChib29sZWFuIHZhbHVlKTsKICAgICB2b2lkIHNldFN0YXRp
c3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChib29s
ZWFuIHZhbHVlKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJldHdlZWVuRGF0
YVJlY29yZHNSZW1vdmFsKGRvdWJsZSBzZWNvbmRzKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNTc0
MSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIw
IEBACisyMDE3LTA0LTI1ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisg
ICAgICAgIFJlc291cmNlIExvYWQgU3RhdGlzdGljczogSW50cm9kdWNlIHNob3J0ZXIgdGltZS10
by1saXZlIGZvciBjb29raWUgcGFydGl0aW9uIHdoaXRlbGlzdGluZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMjk1CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS8zMTgyMzgxOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGh0dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Bh
cnRpdGlvbmVkLWFuZC11bnBhcnRpdGlvbmVkLWNvb2tpZS1kZWxldGlvbi5odG1sOgorICAgICAg
ICAgICAgQ2hhbmdlZCBhIFRlc3RSdW5uZXIgZnVuY3Rpb24gbmFtZSB0bworICAgICAgICAgICAg
c3RhdGlzdGljc0ZpcmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlckZvck9uZURvbWFpbigp
LgorICAgICAgICAqIGh0dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Bh
cnRpdGlvbmVkLWFuZC11bnBhcnRpdGlvbmVkLWNvb2tpZS13aXRoLXBhcnRpdGlvbmluZy10aW1l
b3V0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9sb2FkaW5nL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcGFydGl0aW9uZWQtYW5kLXVucGFydGl0aW9uZWQtY29va2ll
LXdpdGgtcGFydGl0aW9uaW5nLXRpbWVvdXQuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGFydGl0aW9uZWQtY29va2llcy13
aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24uaHRtbDoKKyAgICAgICAgICAgIENoYW5n
ZWQgYSBUZXN0UnVubmVyIGZ1bmN0aW9uIG5hbWUgdG8KKyAgICAgICAgICAgIHN0YXRpc3RpY3NG
aXJlU2hvdWxkUGFydGl0aW9uQ29va2llc0hhbmRsZXJGb3JPbmVEb21haW4oKS4KKwogMjAxNy0w
NC0yNSAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJr
IGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2Utc2l6ZXMtZGlzay1jYWNoZS5o
dG1sIGFzIGZsYWt5LgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvcGFydGl0aW9uZWQtYW5kLXVucGFydGl0aW9uZWQtY29va2llLWRl
bGV0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5n
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGFydGl0aW9uZWQtYW5kLXVucGFydGl0aW9uZWQtY29v
a2llLWRlbGV0aW9uLmh0bWwJKHJldmlzaW9uIDIxNTc0MSkKKysrIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BhcnRpdGlvbmVkLWFuZC11bnBh
cnRpdGlvbmVkLWNvb2tpZS1kZWxldGlvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC05Myw3ICs5
Myw3IEBACiAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVz
b3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVlbkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsK
IAotICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NGaXJlU2hvdWxkUGFydGl0aW9uQ29va2ll
c0hhbmRsZXIoImxvY2FsaG9zdCIsIHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3Rp
Y3NGaXJlU2hvdWxkUGFydGl0aW9uQ29va2llc0hhbmRsZXJGb3JPbmVEb21haW4oImxvY2FsaG9z
dCIsIHRydWUpOwogICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZSgiaHR0cDovL2xvY2FsaG9zdCIsIHRydWUpOwogICAgICAgICBpZiAoIXRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiKSkKICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNv
dXJjZS4iKTsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3BhcnRpdGlvbmVkLWFuZC11bnBhcnRpdGlvbmVkLWNvb2tpZS13aXRoLXBh
cnRpdGlvbmluZy10aW1lb3V0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wYXJ0aXRpb25lZC1h
bmQtdW5wYXJ0aXRpb25lZC1jb29raWUtd2l0aC1wYXJ0aXRpb25pbmctdGltZW91dC1leHBlY3Rl
ZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcGFydGl0aW9uZWQtYW5kLXVucGFydGl0aW9uZWQtY29va2ll
LXdpdGgtcGFydGl0aW9uaW5nLXRpbWVvdXQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMTA4IEBACittYWluIGZyYW1lIC0gZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JG
cmFtZQorbWFpbiBmcmFtZSAtIGRpZENvbW1pdExvYWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRp
ZFJlY2VpdmVUaXRsZTogVGVzdCBmb3IgUGFydGl0aW9uZWQgYW5kIFVucGFydGl0aW9uZWQgQ29v
a2llIFdpdGggVXNlciBJbnRlcmFjdGlvbgorbWFpbiBmcmFtZSAtIGRpZENoYW5nZUxvY2F0aW9u
V2l0aGluUGFnZUZvckZyYW1lCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNjM6IFN0ZXAgMQorbWFp
biBmcmFtZSAtIHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTDogaHR0cDovL2xvY2FsaG9z
dDo4MDAwL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvc2V0LWNvb2tp
ZS5waHA/bmFtZT1maXJzdFBhcnR5Q29va2llJnZhbHVlPXZhbHVlI2h0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGFydGl0aW9uZWQtYW5kLXVucGFy
dGl0aW9uZWQtY29va2llLXdpdGgtcGFydGl0aW9uaW5nLXRpbWVvdXQuaHRtbCNzdGVwMiAKK21h
aW4gZnJhbWUgLSBkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRp
ZEZpbmlzaExvYWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWUKK21haW4gZnJhbWUgLSBkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lCitt
YWluIGZyYW1lIC0gZGlkQ29tbWl0TG9hZEZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkRmluaXNo
RG9jdW1lbnRMb2FkRm9yRnJhbWUKK21haW4gZnJhbWUgLSBkaWRIYW5kbGVPbmxvYWRFdmVudHNG
b3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZEZpbmlzaExvYWRGb3JGcmFtZQorbWFpbiBmcmFtZSAt
IHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTDogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2xv
YWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wYXJ0aXRpb25lZC1hbmQtdW5wYXJ0aXRpb25l
ZC1jb29raWUtd2l0aC1wYXJ0aXRpb25pbmctdGltZW91dC5odG1sI3N0ZXAyIAorbWFpbiBmcmFt
ZSAtIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUKK21haW4gZnJhbWUgLSBkaWRDYW5j
ZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkQ29tbWl0TG9hZEZvckZy
YW1lCittYWluIGZyYW1lIC0gZGlkUmVjZWl2ZVRpdGxlOiBUZXN0IGZvciBQYXJ0aXRpb25lZCBh
bmQgVW5wYXJ0aXRpb25lZCBDb29raWUgV2l0aCBVc2VyIEludGVyYWN0aW9uCitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgNjg6IFN0ZXAgMgorbWFpbiBmcmFtZSAtIGRpZENoYW5nZUxvY2F0aW9uV2l0
aGluUGFnZUZvckZyYW1lCitmcmFtZSAiPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4i
IC0gZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZEZpbmlz
aERvY3VtZW50TG9hZEZvckZyYW1lCitmcmFtZSAiPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAt
LT4tLT4iIC0gZGlkQ29tbWl0TG9hZEZvckZyYW1lCitmcmFtZSAiPCEtLWZyYW1lUGF0aCAvLzwh
LS1mcmFtZTAtLT4tLT4iIC0gZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUKK0NPTlNPTEUg
TUVTU0FHRTogbGluZSA3NTogU3RlcCAzCittYWluIGZyYW1lIC0gZGlkSGFuZGxlT25sb2FkRXZl
bnRzRm9yRnJhbWUKK21haW4gZnJhbWUgLSBkaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VGb3JG
cmFtZQorZnJhbWUgIjwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUxLS0+LS0+IiAtIGRpZFN0YXJ0
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUKK2ZyYW1lICI8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1l
MC0tPi0tPiIgLSBkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZQorZnJhbWUgIjwhLS1mcmFt
ZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+IiAtIGRpZEZpbmlzaExvYWRGb3JGcmFtZQorZnJhbWUg
IjwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUxLS0+LS0+IiAtIGRpZENvbW1pdExvYWRGb3JGcmFt
ZQorZnJhbWUgIjwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUxLS0+LS0+IiAtIGRpZEZpbmlzaERv
Y3VtZW50TG9hZEZvckZyYW1lCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgODI6IFN0ZXAgNAorbWFp
biBmcmFtZSAtIGRpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZUZvckZyYW1lCitmcmFtZSAiPCEt
LWZyYW1lUGF0aCAvLzwhLS1mcmFtZTItLT4tLT4iIC0gZGlkU3RhcnRQcm92aXNpb25hbExvYWRG
b3JGcmFtZQorZnJhbWUgIjwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUxLS0+LS0+IiAtIGRpZEhh
bmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lCitmcmFtZSAiPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFt
ZTEtLT4tLT4iIC0gZGlkRmluaXNoTG9hZEZvckZyYW1lCitmcmFtZSAiPCEtLWZyYW1lUGF0aCAv
LzwhLS1mcmFtZTItLT4tLT4iIC0gZGlkQ29tbWl0TG9hZEZvckZyYW1lCitmcmFtZSAiPCEtLWZy
YW1lUGF0aCAvLzwhLS1mcmFtZTItLT4tLT4iIC0gZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJh
bWUKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA4OTogU3RlcCA1CittYWluIGZyYW1lIC0gZGlkQ2hh
bmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWUKK2ZyYW1lICI8IS0tZnJhbWVQYXRoIC8vPCEt
LWZyYW1lMy0tPi0tPiIgLSBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lCitmcmFtZSAi
PCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTItLT4tLT4iIC0gZGlkSGFuZGxlT25sb2FkRXZlbnRz
Rm9yRnJhbWUKK2ZyYW1lICI8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMi0tPi0tPiIgLSBkaWRG
aW5pc2hMb2FkRm9yRnJhbWUKK2ZyYW1lICI8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMy0tPi0t
PiIgLSBkaWRDb21taXRMb2FkRm9yRnJhbWUKK2ZyYW1lICI8IS0tZnJhbWVQYXRoIC8vPCEtLWZy
YW1lMy0tPi0tPiIgLSBkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZQorZnJhbWUgIjwhLS1m
cmFtZVBhdGggLy88IS0tZnJhbWUzLS0+LS0+IiAtIGRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZy
YW1lCitmcmFtZSAiPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTMtLT4tLT4iIC0gZGlkRmluaXNo
TG9hZEZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkRmluaXNoTG9hZEZvckZyYW1lCitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgOTY6IFN0ZXAgNgorbWFpbiBmcmFtZSAtIGRpZENoYW5nZUxvY2F0aW9u
V2l0aGluUGFnZUZvckZyYW1lCitmcmFtZSAiPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTQtLT4t
LT4iIC0gZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZQorZnJhbWUgIjwhLS1mcmFtZVBh
dGggLy88IS0tZnJhbWU0LS0+LS0+IiAtIGRpZENvbW1pdExvYWRGb3JGcmFtZQorZnJhbWUgIjwh
LS1mcmFtZVBhdGggLy88IS0tZnJhbWU0LS0+LS0+IiAtIGRpZEZpbmlzaERvY3VtZW50TG9hZEZv
ckZyYW1lCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTAzOiBTdGVwIDcKK2ZyYW1lICI8IS0tZnJh
bWVQYXRoIC8vPCEtLWZyYW1lNS0tPi0tPiIgLSBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZy
YW1lCitmcmFtZSAiPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTQtLT4tLT4iIC0gZGlkSGFuZGxl
T25sb2FkRXZlbnRzRm9yRnJhbWUKK2ZyYW1lICI8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lNC0t
Pi0tPiIgLSBkaWRGaW5pc2hMb2FkRm9yRnJhbWUKK2ZyYW1lICI8IS0tZnJhbWVQYXRoIC8vPCEt
LWZyYW1lNS0tPi0tPiIgLSBkaWRDb21taXRMb2FkRm9yRnJhbWUKK2ZyYW1lICI8IS0tZnJhbWVQ
YXRoIC8vPCEtLWZyYW1lNS0tPi0tPiIgLSBkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZQor
ICAKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4n
CistLS0tLS0tLQorU2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4KK0RpZCBub3QgcmVjZWl2ZSBj
b29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBu
YW1lZCAndGhpcmRQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CisK
Ky0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUxLS0+LS0+JworLS0t
LS0tLS0KK1NldHRpbmcgcGFydGl0aW9uZWQsIHRoaXJkLXBhcnR5IGNvb2tpZS4KKworCistLS0t
LS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMi0tPi0tPicKKy0tLS0tLS0t
CitTaG91bGQgb25seSByZWNlaXZlIHBhcnRpdGlvbmVkLCB0aGlyZC1wYXJ0eSBjb29raWUuCitE
aWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4KK1JlY2VpdmVk
IGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5j
b29raWU6IHRoaXJkUGFydHlDb29raWU9dmFsdWUKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZy
YW1lUGF0aCAvLzwhLS1mcmFtZTMtLT4tLT4nCistLS0tLS0tLQorQWZ0ZXIgZmlyc3QgdXNlciBp
bnRlcmFjdGlvbiwgc2hvdWxkIG9ubHkgcmVjZWl2ZSB1bi1wYXJ0aXRpb25lZCBjb29raWUuCitS
ZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorRGlkIG5vdCByZWNlaXZl
IGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5j
b29raWU6IGZpcnN0UGFydHlDb29raWU9dmFsdWUKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZy
YW1lUGF0aCAvLzwhLS1mcmFtZTQtLT4tLT4nCistLS0tLS0tLQorU2hvdWxkIG9ubHkgcmVjZWl2
ZSBwYXJ0aXRpb25lZCwgdGhpcmQtcGFydHkgY29va2llLgorRGlkIG5vdCByZWNlaXZlIGNvb2tp
ZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ3RoaXJk
UGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOiB0aGlyZFBhcnR5Q29v
a2llPXZhbHVlCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWU1
LS0+LS0+JworLS0tLS0tLS0KK0FmdGVyIHNlY29uZCB1c2VyIGludGVyYWN0aW9uLCBzaG91bGQg
b25seSByZWNlaXZlIHVuLXBhcnRpdGlvbmVkIGNvb2tpZS4KK1JlY2VpdmVkIGNvb2tpZSBuYW1l
ZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICd0aGly
ZFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZTogZmlyc3RQYXJ0eUNv
b2tpZT12YWx1ZQpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvcGFydGl0aW9uZWQtYW5kLXVucGFydGl0aW9uZWQtY29va2llLXdpdGgt
cGFydGl0aW9uaW5nLXRpbWVvdXQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wYXJ0aXRpb25lZC1hbmQtdW5w
YXJ0aXRpb25lZC1jb29raWUtd2l0aC1wYXJ0aXRpb25pbmctdGltZW91dC5odG1sCShub25leGlz
dGVudCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3BhcnRpdGlvbmVkLWFuZC11bnBhcnRpdGlvbmVkLWNvb2tpZS13aXRoLXBhcnRpdGlv
bmluZy10aW1lb3V0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMjggQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0i
VVRGLTgiPgorICAgIDx0aXRsZT5UZXN0IGZvciBQYXJ0aXRpb25lZCBhbmQgVW5wYXJ0aXRpb25l
ZCBDb29raWUgV2l0aCBVc2VyIEludGVyYWN0aW9uPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdD4KKyAgICBjb25zdCBwYXJ0aXRpb25Ib3N0ID0gIjEyNy4wLjAuMTo4MDAwIjsK
KyAgICBjb25zdCB0aGlyZFBhcnR5T3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7Cisg
ICAgY29uc3QgdGhpcmRQYXJ0eUJhc2VVcmwgPSB0aGlyZFBhcnR5T3JpZ2luICsgIi9sb2FkaW5n
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzIjsKKyAgICBjb25zdCBmaXJzdFBhcnR5
Q29va2llTmFtZSA9ICJmaXJzdFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRG
aXJzdFBhcnR5Q29va2llID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIgKyBmaXJzdFBhcnR5Q29v
a2llTmFtZSArICImdmFsdWU9dmFsdWUiOworICAgIGNvbnN0IHRoaXJkUGFydHlDb29raWVOYW1l
ID0gInRoaXJkUGFydHlDb29raWUiOworICAgIGNvbnN0IHN1YlBhdGhUb1NldFRoaXJkUGFydHlD
b29raWUgPSAiL3NldC1jb29raWUucGhwP25hbWU9IiArIHRoaXJkUGFydHlDb29raWVOYW1lICsg
IiZ2YWx1ZT12YWx1ZSI7CisgICAgY29uc3QgZnJhZ21lbnRXaXRoUmV0dXJuVXJsID0gImh0dHA6
Ly8iICsgcGFydGl0aW9uSG9zdCArICIvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Bh
cnRpdGlvbmVkLWFuZC11bnBhcnRpdGlvbmVkLWNvb2tpZS13aXRoLXBhcnRpdGlvbmluZy10aW1l
b3V0Lmh0bWwiOworICAgIGNvbnN0IHN1YlBhdGhUb0dldENvb2tpZXMgPSAiL2dldC1jb29raWVz
LnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgKyAiJm5hbWUyPSIgKyB0aGlyZFBh
cnR5Q29va2llTmFtZTsKKworICAgIGZ1bmN0aW9uIHNldEVuYWJsZUZlYXR1cmUoZW5hYmxlKSB7
CisgICAgICAgIGlmICghZW5hYmxlKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3Rp
Y3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKCk7CisgICAgICAgIH0KKyAgICAgICAgaW50ZXJuYWxz
LnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGVuYWJsZSk7CisgICAgICAgIHRlc3RS
dW5uZXIuc2V0Q29va2llU3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQoZW5hYmxlKTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICBzZXRFbmFibGVGZWF0dXJl
KGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gb3BlbklmcmFtZSh1cmwsIG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgY29uc3Qg
ZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICBlbGVt
ZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgICAg
IGVsZW1lbnQub25sb2FkID0gb25Mb2FkSGFuZGxlcjsKKyAgICAgICAgfQorICAgICAgICBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGZp
cmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlckFuZENvbnRpbnVlKCkgeworICAgICAgICB0
ZXN0UnVubmVyLnN0YXRpc3RpY3NGaXJlU2hvdWxkUGFydGl0aW9uQ29va2llc0hhbmRsZXIoKTsK
KyAgICAgICAgcnVuVGVzdCgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNldFNob3J0Q29va2ll
UGFydGl0aW9uaW5nVGltZU91dFBsdXNGaXJlU2hvdWxkUGFydGl0aW9uQ29va2llc0hhbmRsZXJB
bmRDb250aW51ZSgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVGltZVRvTGl2
ZUNvb2tpZVBhcnRpdGlvbkZyZWUoMSk7CisgICAgICAgIHNldFRpbWVvdXQoZmlyZVNob3VsZFBh
cnRpdGlvbkNvb2tpZXNIYW5kbGVyQW5kQ29udGludWUsIDIwMDApOworICAgIH0KKworICAgIGZ1
bmN0aW9uIHNldE5vcm1hbENvb2tpZVBhcnRpdGlvbmluZ1RpbWVPdXRQbHVzVXNlckludGVyYWN0
aW9uQW5kQ29udGludWUoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RpbWVU
b0xpdmVDb29raWVQYXJ0aXRpb25GcmVlKDg2NDAwKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRoaXJkUGFydHlPcmlnaW4sIHRydWUpOwor
ICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9u
KHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGhpcmQgcGFydHkg
ZGlkIG5vdCBnZXQgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIpOworICAgICAgICBydW5U
ZXN0KCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgc3dpdGNo
IChkb2N1bWVudC5sb2NhdGlvbi5oYXNoKSB7CisgICAgICAgICAgICBjYXNlICIjc3RlcDEiOgor
ICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJTdGVwIDEiKTsKKyAgICAgICAgICAgICAgICAv
LyBTZXQgZmlyc3QtcGFydHkgY29va2llIGZvciBodHRwOi8vbG9jYWxob3N0OjgwMDAKKyAgICAg
ICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gdGhpcmRQYXJ0eUJhc2VVcmwgKyBz
dWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llICsgIiMiICsgZnJhZ21lbnRXaXRoUmV0dXJuVXJs
ICsgIiNzdGVwMiI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIj
c3RlcDIiOgorICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJTdGVwIDIiKTsKKyAgICAgICAg
ICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSBmaXJzdC1wYXJ0eSBjb29raWUgaXMgbm90IHNlbnQg
aW4gcGFydGl0aW9uIDEyNy4wLjAuMTo4MDAwCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9j
YXRpb24uaGFzaCA9ICJzdGVwMyI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBh
cnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9U2hvdWxkIHJlY2Vp
dmUgbm8gY29va2llcy4iLAorICAgICAgICAgICAgICAgICAgICBydW5UZXN0KTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMyI6CisgICAgICAgICAgICAg
ICAgY29uc29sZS5sb2coIlN0ZXAgMyIpOworICAgICAgICAgICAgICAgIC8vIFNldCB0aGlyZC1w
YXJ0eSBjb29raWUgZm9yIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCBpbiBwYXJ0aXRpb24gMTI3LjAu
MC4xOjgwMDAKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA0
IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0
aFRvU2V0VGhpcmRQYXJ0eUNvb2tpZSArICImbWVzc2FnZT1TZXR0aW5nIHBhcnRpdGlvbmVkLCB0
aGlyZC1wYXJ0eSBjb29raWUuIiwKKyAgICAgICAgICAgICAgICAgICAgcnVuVGVzdCk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDQiOgorICAgICAgICAg
ICAgICAgIGNvbnNvbGUubG9nKCJTdGVwIDQiKTsKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0
aGF0IG9ubHkgcGFydGl0aW9uZWQgY29va2llIGdldCBzZW50IGluIHBhcnRpdGlvbiAxMjcuMC4w
LjE6ODAwMAorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDUi
OworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRo
VG9HZXRDb29raWVzICsgIiZtZXNzYWdlPVNob3VsZCBvbmx5IHJlY2VpdmUgcGFydGl0aW9uZWQs
IHRoaXJkLXBhcnR5IGNvb2tpZS4iLAorICAgICAgICAgICAgICAgICAgICBzZXROb3JtYWxDb29r
aWVQYXJ0aXRpb25pbmdUaW1lT3V0UGx1c1VzZXJJbnRlcmFjdGlvbkFuZENvbnRpbnVlKTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNSI6CisgICAgICAg
ICAgICAgICAgY29uc29sZS5sb2coIlN0ZXAgNSIpOworICAgICAgICAgICAgICAgIC8vIGh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMCBub3cgaGFzIHVzZXIgaW50ZXJhY3Rpb24sIGNoZWNrIHRoYXQgdW4t
cGFydGl0aW9uZWQgY29va2llIGlzIHNlbnQgZm9yIHRoaXJkLXBhcnR5CisgICAgICAgICAgICAg
ICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNiI7CisgICAgICAgICAgICAgICAgb3Bl
bklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3Nh
Z2U9QWZ0ZXIgZmlyc3QgdXNlciBpbnRlcmFjdGlvbiwgc2hvdWxkIG9ubHkgcmVjZWl2ZSB1bi1w
YXJ0aXRpb25lZCBjb29raWUuIiwKKyAgICAgICAgICAgICAgICAgICAgc2V0U2hvcnRDb29raWVQ
YXJ0aXRpb25pbmdUaW1lT3V0UGx1c0ZpcmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlckFu
ZENvbnRpbnVlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNz
dGVwNiI6CisgICAgICAgICAgICAgICAgY29uc29sZS5sb2coIlN0ZXAgNiIpOworICAgICAgICAg
ICAgICAgIC8vIENvb2tpZSBwYXJ0aXRpb25pbmcgc2hvdWxkIGJlIGFwcGxpZWQgYWdhaW4KKyAg
ICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA3IjsKKyAgICAgICAg
ICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2ll
cyArICImbWVzc2FnZT1TaG91bGQgb25seSByZWNlaXZlIHBhcnRpdGlvbmVkLCB0aGlyZC1wYXJ0
eSBjb29raWUuIiwKKyAgICAgICAgICAgICAgICAgICAgc2V0Tm9ybWFsQ29va2llUGFydGl0aW9u
aW5nVGltZU91dFBsdXNVc2VySW50ZXJhY3Rpb25BbmRDb250aW51ZSk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDciOgorICAgICAgICAgICAgICAgIGNv
bnNvbGUubG9nKCJTdGVwIDciKTsKKyAgICAgICAgICAgICAgICAvLyBodHRwOi8vbG9jYWxob3N0
OjgwMDAgbm93IGhhcyBmcmVzaCB1c2VyIGludGVyYWN0aW9uLCBjaGVjayB0aGF0IHVuLXBhcnRp
dGlvbmVkIGNvb2tpZSBpcyBzZW50IGZvciB0aGlyZC1wYXJ0eQorICAgICAgICAgICAgICAgIG9w
ZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNz
YWdlPUFmdGVyIHNlY29uZCB1c2VyIGludGVyYWN0aW9uLCBzaG91bGQgb25seSByZWNlaXZlIHVu
LXBhcnRpdGlvbmVkIGNvb2tpZS4iLAorICAgICAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChkb2N1
bWVudC5sb2NhdGlvbi5oYXNoID09PSAiIiAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cu
aW50ZXJuYWxzKSB7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSk7CisKKyAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhv
c3QiLCB0cnVlKTsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IikpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJI
b3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAg
dGVzdFJ1bm5lci5zdGF0aXN0aWNzRmlyZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVyKCk7
CisKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhh
c2ggPSAic3RlcDEiOworICAgIH0KKworICAgIHJ1blRlc3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BhcnRpdGlvbmVkLWNv
b2tpZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cGFydGl0aW9uZWQtY29va2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24uaHRt
bAkocmV2aXNpb24gMjE1NzQxKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcGFydGl0aW9uZWQtY29va2llcy13aXRoLWFuZC13aXRob3V0
LXVzZXItaW50ZXJhY3Rpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNzIsNyArNzIsNyBAQAog
ICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBwYXJ0aXRpb25Ib3N0ICYmIGRvY3Vt
ZW50LmxvY2F0aW9uLmhhc2ggPT0gIiIgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93Lmlu
dGVybmFscykgewogICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUpOwogCi0gICAgICAgIHRl
c3RSdW5uZXIuc3RhdGlzdGljc0ZpcmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlcigibG9j
YWxob3N0IiwgdHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc0ZpcmVTaG91bGRQ
YXJ0aXRpb25Db29raWVzSGFuZGxlckZvck9uZURvbWFpbigibG9jYWxob3N0IiwgdHJ1ZSk7CiAK
ICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgICAgIHRlc3RSdW5uZXIu
ZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308177</attachid>
            <date>2017-04-25 17:50:24 -0700</date>
            <delta_ts>2017-04-25 18:22:59 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-171295-20170425175023.patch</filename>
            <type>text/plain</type>
            <size>45421</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNTc0MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDE3LTA0LTI1ICBKb2huIFdp
bGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlc291cmNlIExvYWQgU3Rh
dGlzdGljczogSW50cm9kdWNlIHNob3J0ZXIgdGltZS10by1saXZlIGZvciBjb29raWUgcGFydGl0
aW9uIHdoaXRlbGlzdGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTcxMjk1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTgyMzgxOD4KKworICAg
ICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVz
dHMvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BhcnRpdGlvbmVkLWFuZC11bnBhcnRp
dGlvbmVkLWNvb2tpZS13aXRoLXBhcnRpdGlvbmluZy10aW1lb3V0Lmh0bWwKKworICAgICAgICAq
IGxvYWRlci9SZXNvdXJjZUxvYWRPYnNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZWR1
Y2VUaW1lUmVzb2x1dGlvblRvT25lRGF5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnJl
ZHVjZVRpbWVSZXNvbHV0aW9uKToKKyAgICAgICAgICAgIENoYW5nZWQgbmFtZSB0byBubyBsb25n
ZXIgbG9jayB0aGlzIHRvIGEgc3BlY2lmaWMgcmVzb2x1dGlvbi4KKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlTG9hZE9ic2VydmVyOjpsb2dVc2VySW50ZXJhY3Rpb25XaXRoUmVkdWNlZFRpbWVS
ZXNvbHV0aW9uKToKKyAgICAgICAgICAgIE5vdyBjYWxscyBXZWJDb3JlOjpyZWR1Y2VUaW1lUmVz
b2x1dGlvbigpLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNldFRp
bWVUb0xpdmVDb29raWVQYXJ0aXRpb25GcmVlKToKKyAgICAgICAgICAgIEFkZGVkIGZvciB0ZXN0
aW5nIHB1cnBvc2VzLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OmZp
cmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlcik6CisgICAgICAgICAgICBBZGRlZCBmb3Ig
dGVzdGluZyBwdXJwb3Nlcy4KKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIu
aDoKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnNob3VsZFBhcnRpdGlvbkNvb2tpZXMpOgorICAgICAgICAgICAgU3Rh
dGljIGlubGluZSBjb252ZW5pZW5jZSBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6ZmlyZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVy
KToKKyAgICAgICAgICAgIE5vdyBkZWNpZGVzIHdoZXRoZXIgYSBkb21haW4gc2hvdWxkIGdldCBw
YXJ0aXRpb25lZCBjb29raWVzCisgICAgICAgICAgICBiYXNlZCBvbiB0aW1lVG9MaXZlQ29va2ll
UGFydGl0aW9uRnJlZS4KKyAgICAgICAgICAgIFJlbW92ZWQgY2xlYXJGaXJzdCBwYXJhbWV0ZXIg
c2luY2UgaXQncyBub3QgbmVlZGVkIGhlcmUKKyAgICAgICAgICAgIGFuZCBpdCBpbnRyb2R1Y2Vk
IGNvbXBsZXhpdHkgaW4ga2VlcGluZyB0aGUgc3RvcmUgYW5kIHRoZQorICAgICAgICAgICAgbmV0
d29yayBwcm9jZXNzIGNhY2hlIGluIHN5bmMuCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmU6OnNldFRpbWVUb0xpdmVDb29raWVQYXJ0aXRpb25GcmVlKToKKyAg
ICAgICAgICAgIEFkZGVkIGZvciB0ZXN0aW5nIHB1cnBvc2VzLgorICAgICAgICAqIGxvYWRlci9S
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDoKKwogMjAxNy0wNC0yNSAgSm9obiBXaWxhbmRl
ciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXNvdXJjZSBMb2FkIFN0YXRpc3Rp
Y3M6IENsZWFyIG5ldHdvcmsgcHJvY2VzcyBjYWNoZSB3aGVuIGNsZWFyaW5nIHN0b3JlCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRPYnNlcnZlci5jcHAJKHJl
dmlzaW9uIDIxNTc0MSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRPYnNl
cnZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDggKzQ4LDggQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi0vLyBPbmUgZGF5IGluIHNlY29uZHMuCi1zdGF0aWMgYXV0byB0aW1lc3RhbXBS
ZXNvbHV0aW9uID0gODY0MDA7CisvLyBPbmUgaG91ciBpbiBzZWNvbmRzLgorc3RhdGljIGF1dG8g
dGltZXN0YW1wUmVzb2x1dGlvbiA9IDM2MDA7CiAKIFJlc291cmNlTG9hZE9ic2VydmVyJiBSZXNv
dXJjZUxvYWRPYnNlcnZlcjo6c2hhcmVkT2JzZXJ2ZXIoKQogewpAQCAtMzAxLDcgKzMwMSw3IEBA
IHZvaWQgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OmxvZ1dlYlNvY2tldEwKICAgICAgICAgbV9zdG9y
ZS0+ZmlyZURhdGFNb2RpZmljYXRpb25IYW5kbGVyKCk7CiB9CiAKLXN0YXRpYyBkb3VibGUgcmVk
dWNlVGltZVJlc29sdXRpb25Ub09uZURheShkb3VibGUgc2Vjb25kcykKK3N0YXRpYyBkb3VibGUg
cmVkdWNlVGltZVJlc29sdXRpb24oZG91YmxlIHNlY29uZHMpCiB7CiAgICAgcmV0dXJuIHN0ZDo6
Zmxvb3Ioc2Vjb25kcyAvIHRpbWVzdGFtcFJlc29sdXRpb24pICogdGltZXN0YW1wUmVzb2x1dGlv
bjsKIH0KQEAgLTMyMCw3ICszMjAsNyBAQCB2b2lkIFJlc291cmNlTG9hZE9ic2VydmVyOjpsb2dV
c2VySW50ZXJhCiAgICAgYXV0byBwcmltYXJ5RG9tYWluU3RyID0gcHJpbWFyeURvbWFpbih1cmwp
OwogCiAgICAgYXV0byYgc3RhdGlzdGljcyA9IG1fc3RvcmUtPmVuc3VyZVJlc291cmNlU3RhdGlz
dGljc0ZvclByaW1hcnlEb21haW4ocHJpbWFyeURvbWFpblN0cik7Ci0gICAgZG91YmxlIG5ld1Rp
bWVzdGFtcCA9IHJlZHVjZVRpbWVSZXNvbHV0aW9uVG9PbmVEYXkoV1RGOjpjdXJyZW50VGltZSgp
KTsKKyAgICBkb3VibGUgbmV3VGltZXN0YW1wID0gcmVkdWNlVGltZVJlc29sdXRpb24oV1RGOjpj
dXJyZW50VGltZSgpKTsKICAgICBpZiAobmV3VGltZXN0YW1wID09IHN0YXRpc3RpY3MubW9zdFJl
Y2VudFVzZXJJbnRlcmFjdGlvbikKICAgICAgICAgcmV0dXJuOwogCkBAIC00MjcsMTEgKzQyNywy
MSBAQCB2b2lkIFJlc291cmNlTG9hZE9ic2VydmVyOjpzZXRUaW1lVG9MaXZlCiAgICAgbV9zdG9y
ZS0+c2V0VGltZVRvTGl2ZVVzZXJJbnRlcmFjdGlvbihzZWNvbmRzKTsKIH0KIAordm9pZCBSZXNv
dXJjZUxvYWRPYnNlcnZlcjo6c2V0VGltZVRvTGl2ZUNvb2tpZVBhcnRpdGlvbkZyZWUoZG91Ymxl
IHNlY29uZHMpCit7CisgICAgbV9zdG9yZS0+c2V0VGltZVRvTGl2ZUNvb2tpZVBhcnRpdGlvbkZy
ZWUoc2Vjb25kcyk7Cit9CisKIHZvaWQgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OmZpcmVEYXRhTW9k
aWZpY2F0aW9uSGFuZGxlcigpCiB7CiAgICAgbV9zdG9yZS0+ZmlyZURhdGFNb2RpZmljYXRpb25I
YW5kbGVyKCk7CiB9CiAKK3ZvaWQgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OmZpcmVTaG91bGRQYXJ0
aXRpb25Db29raWVzSGFuZGxlcigpCit7CisgICAgbV9zdG9yZS0+ZmlyZVNob3VsZFBhcnRpdGlv
bkNvb2tpZXNIYW5kbGVyKCk7Cit9CisKIHZvaWQgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OmZpcmVT
aG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlcihjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWlu
c1RvUmVtb3ZlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWluc1RvQWRkLCBib29sIGNsZWFy
Rmlyc3QpCiB7CiAgICAgbV9zdG9yZS0+ZmlyZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVy
KGRvbWFpbnNUb1JlbW92ZSwgZG9tYWluc1RvQWRkLCBjbGVhckZpcnN0KTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRPYnNlcnZlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRPYnNlcnZlci5oCShyZXZpc2lvbiAyMTU3
NDEpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtNjMsOSArNjMsMTEgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKGNvbnN0IFVSTCYgc3VicmVzb3Vy
Y2UsIGNvbnN0IFVSTCYgaG9zdE5hbWVSZWRpcmVjdGVkVG8pOwogCiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRUaW1lVG9MaXZlVXNlckludGVyYWN0aW9uKGRvdWJsZSBzZWNvbmRzKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFRpbWVUb0xpdmVDb29raWVQYXJ0aXRpb25GcmVlKGRv
dWJsZSBzZWNvbmRzKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFJlZHVjZWRUaW1lc3Rh
bXBSZXNvbHV0aW9uKGRvdWJsZSBzZWNvbmRzKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
ZmlyZURhdGFNb2RpZmljYXRpb25IYW5kbGVyKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBm
aXJlU2hvdWxkUGFydGl0aW9uQ29va2llc0hhbmRsZXIoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGZpcmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlcihjb25zdCBWZWN0b3I8U3RyaW5n
PiYgZG9tYWluc1RvUmVtb3ZlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWluc1RvQWRkLCBi
b29sIGNsZWFyRmlyc3QpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTdGF0aXN0aWNz
U3RvcmUoUmVmPFJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZT4mJik7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNw
cAkocmV2aXNpb24gMjE1NzQxKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDYgKzQxLDggQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogc3RhdGljIGNvbnN0IGF1dG8gc3RhdGlzdGljc01vZGVsVmVyc2lv
biA9IDM7CiAvLyAzMCBkYXlzIGluIHNlY29uZHMKIHN0YXRpYyBhdXRvIHRpbWVUb0xpdmVVc2Vy
SW50ZXJhY3Rpb24gPSAyNTkyMDAwOworLy8gMSBkYXkgaW4gc2Vjb25kcworc3RhdGljIGF1dG8g
dGltZVRvTGl2ZUNvb2tpZVBhcnRpdGlvbkZyZWUgPSA4NjQwMDsKIAogUmVmPFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZT4gUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjcmVhdGUoKQog
ewpAQCAtMTc5LDIzICsxODEsMzMgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6
OmZpcmVEYQogICAgICAgICBtX2RhdGFBZGRlZEhhbmRsZXIoKTsKIH0KIAotdm9pZCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmZpcmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlcihi
b29sIGNsZWFyRmlyc3QpCitzdGF0aWMgaW5saW5lIGJvb2wgc2hvdWxkUGFydGl0aW9uQ29va2ll
cyhjb25zdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJiBzdGF0aXN0aWMpCit7CisgICAgcmV0dXJu
IHN0YXRpc3RpYy5pc1ByZXZhbGVudFJlc291cmNlCisgICAgICAgICYmICghc3RhdGlzdGljLmhh
ZFVzZXJJbnRlcmFjdGlvbiB8fCBjdXJyZW50VGltZSgpID4gc3RhdGlzdGljLm1vc3RSZWNlbnRV
c2VySW50ZXJhY3Rpb24gKyB0aW1lVG9MaXZlQ29va2llUGFydGl0aW9uRnJlZSk7Cit9CisKK3Zv
aWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpmaXJlU2hvdWxkUGFydGl0aW9uQ29va2ll
c0hhbmRsZXIoKQogewogICAgIFZlY3RvcjxTdHJpbmc+IGRvbWFpbnNUb1JlbW92ZTsKICAgICBW
ZWN0b3I8U3RyaW5nPiBkb21haW5zVG9BZGQ7CiAgICAgCiAgICAgZm9yIChhdXRvJiByZXNvdXJj
ZVN0YXRpc3RpYyA6IG1fcmVzb3VyY2VTdGF0aXN0aWNzTWFwLnZhbHVlcygpKSB7Ci0gICAgICAg
IGJvb2wgcmVjZW50VXNlckludGVyYWN0aW9uID0gaGFzSGFkUmVjZW50VXNlckludGVyYWN0aW9u
KHJlc291cmNlU3RhdGlzdGljKTsKLSAgICAgICAgaWYgKHJlc291cmNlU3RhdGlzdGljLmlzTWFy
a2VkRm9yQ29va2llUGFydGl0aW9uaW5nICYmIHJlY2VudFVzZXJJbnRlcmFjdGlvbikgeworICAg
ICAgICBib29sIHNob3VsZFBhcnRpdGlvbiA9IHNob3VsZFBhcnRpdGlvbkNvb2tpZXMocmVzb3Vy
Y2VTdGF0aXN0aWMpOworICAgICAgICBpZiAocmVzb3VyY2VTdGF0aXN0aWMuaXNNYXJrZWRGb3JD
b29raWVQYXJ0aXRpb25pbmcgJiYgIXNob3VsZFBhcnRpdGlvbikgewogICAgICAgICAgICAgcmVz
b3VyY2VTdGF0aXN0aWMuaXNNYXJrZWRGb3JDb29raWVQYXJ0aXRpb25pbmcgPSBmYWxzZTsKICAg
ICAgICAgICAgIGRvbWFpbnNUb1JlbW92ZS5hcHBlbmQocmVzb3VyY2VTdGF0aXN0aWMuaGlnaExl
dmVsRG9tYWluKTsKLSAgICAgICAgfSBlbHNlIGlmICghcmVzb3VyY2VTdGF0aXN0aWMuaXNNYXJr
ZWRGb3JDb29raWVQYXJ0aXRpb25pbmcgJiYgIXJlY2VudFVzZXJJbnRlcmFjdGlvbiAmJiByZXNv
dXJjZVN0YXRpc3RpYy5pc1ByZXZhbGVudFJlc291cmNlKSB7CisgICAgICAgIH0gZWxzZSBpZiAo
IXJlc291cmNlU3RhdGlzdGljLmlzTWFya2VkRm9yQ29va2llUGFydGl0aW9uaW5nICYmIHNob3Vs
ZFBhcnRpdGlvbikgewogICAgICAgICAgICAgcmVzb3VyY2VTdGF0aXN0aWMuaXNNYXJrZWRGb3JD
b29raWVQYXJ0aXRpb25pbmcgPSB0cnVlOwogICAgICAgICAgICAgZG9tYWluc1RvQWRkLmFwcGVu
ZChyZXNvdXJjZVN0YXRpc3RpYy5oaWdoTGV2ZWxEb21haW4pOwogICAgICAgICB9CiAgICAgfQog
ICAgIAotICAgIGZpcmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlcihkb21haW5zVG9SZW1v
dmUsIGRvbWFpbnNUb0FkZCwgY2xlYXJGaXJzdCk7CisgICAgaWYgKGRvbWFpbnNUb1JlbW92ZS5p
c0VtcHR5KCkgJiYgZG9tYWluc1RvQWRkLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworICAg
IAorICAgIGlmIChtX3Nob3VsZFBhcnRpdGlvbkNvb2tpZXNGb3JEb21haW5zSGFuZGxlcikKKyAg
ICAgICAgbV9zaG91bGRQYXJ0aXRpb25Db29raWVzRm9yRG9tYWluc0hhbmRsZXIoZG9tYWluc1Rv
UmVtb3ZlLCBkb21haW5zVG9BZGQsIGZhbHNlKTsKIH0KIAogdm9pZCBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6OmZpcmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlcihjb25zdCBWZWN0
b3I8U3RyaW5nPiYgZG9tYWluc1RvUmVtb3ZlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWlu
c1RvQWRkLCBib29sIGNsZWFyRmlyc3QpCkBAIC0yMDUsNiArMjE3LDE3IEBAIHZvaWQgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlOjpmaXJlU2gKIAogICAgIGlmIChtX3Nob3VsZFBhcnRpdGlv
bkNvb2tpZXNGb3JEb21haW5zSGFuZGxlcikKICAgICAgICAgbV9zaG91bGRQYXJ0aXRpb25Db29r
aWVzRm9yRG9tYWluc0hhbmRsZXIoZG9tYWluc1RvUmVtb3ZlLCBkb21haW5zVG9BZGQsIGNsZWFy
Rmlyc3QpOworCisgICAgaWYgKGNsZWFyRmlyc3QpIHsKKyAgICAgICAgZm9yIChhdXRvJiByZXNv
dXJjZVN0YXRpc3RpYyA6IG1fcmVzb3VyY2VTdGF0aXN0aWNzTWFwLnZhbHVlcygpKQorICAgICAg
ICAgICAgcmVzb3VyY2VTdGF0aXN0aWMuaXNNYXJrZWRGb3JDb29raWVQYXJ0aXRpb25pbmcgPSBm
YWxzZTsKKyAgICB9IGVsc2UgeworICAgICAgICBmb3IgKGF1dG8mIGRvbWFpbiA6IGRvbWFpbnNU
b1JlbW92ZSkKKyAgICAgICAgICAgIGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclByaW1hcnlE
b21haW4oZG9tYWluKS5pc01hcmtlZEZvckNvb2tpZVBhcnRpdGlvbmluZyA9IGZhbHNlOworICAg
IH0KKworICAgIGZvciAoYXV0byYgZG9tYWluIDogZG9tYWluc1RvQWRkKQorICAgICAgICBlbnN1
cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JQcmltYXJ5RG9tYWluKGRvbWFpbikuaXNNYXJrZWRGb3JD
b29raWVQYXJ0aXRpb25pbmcgPSB0cnVlOwogfQogCiB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6c2V0VGltZVRvTGl2ZVVzZXJJbnRlcmFjdGlvbihkb3VibGUgc2Vjb25kcykKQEAg
LTIxMyw2ICsyMzYsMTIgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldFRp
bQogICAgICAgICB0aW1lVG9MaXZlVXNlckludGVyYWN0aW9uID0gc2Vjb25kczsKIH0KIAordm9p
ZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldFRpbWVUb0xpdmVDb29raWVQYXJ0aXRp
b25GcmVlKGRvdWJsZSBzZWNvbmRzKQoreworICAgIGlmIChzZWNvbmRzID49IDApCisgICAgICAg
IHRpbWVUb0xpdmVDb29raWVQYXJ0aXRpb25GcmVlID0gc2Vjb25kczsKK30KKwogdm9pZCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnByb2Nlc3NTdGF0aXN0aWNzKHN0ZDo6ZnVuY3Rpb248
dm9pZChSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJik+JiYgcHJvY2Vzc0Z1bmN0aW9uKQogewogICAg
IGZvciAoYXV0byYgcmVzb3VyY2VTdGF0aXN0aWMgOiBtX3Jlc291cmNlU3RhdGlzdGljc01hcC52
YWx1ZXMoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlLmgJKHJldmlzaW9uIDIxNTc0MSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAkod29ya2luZyBjb3B5KQpAQCAt
NjMsNyArNjMsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGZpcmVEYXRhTW9kaWZpY2F0aW9uSGFu
ZGxlcigpOwogICAgIHZvaWQgc2V0VGltZVRvTGl2ZVVzZXJJbnRlcmFjdGlvbihkb3VibGUgc2Vj
b25kcyk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmaXJlU2hvdWxkUGFydGl0aW9uQ29va2ll
c0hhbmRsZXIoYm9vbCBjbGVhckZpcnN0KTsKKyAgICB2b2lkIHNldFRpbWVUb0xpdmVDb29raWVQ
YXJ0aXRpb25GcmVlKGRvdWJsZSBzZWNvbmRzKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGZp
cmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlcigpOwogICAgIHZvaWQgZmlyZVNob3VsZFBh
cnRpdGlvbkNvb2tpZXNIYW5kbGVyKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zVG9SZW1v
dmUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zVG9BZGQsIGJvb2wgY2xlYXJGaXJzdCk7
CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHByb2Nlc3NTdGF0aXN0aWNzKHN0ZDo6ZnVuY3Rp
b248dm9pZChSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJik+JiYpOwpJbmRleDogU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2
aXNpb24gMjE1NzQxKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMjkgQEAKKzIwMTctMDQtMjUgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBh
cHBsZS5jb20+CisKKyAgICAgICAgUmVzb3VyY2UgTG9hZCBTdGF0aXN0aWNzOiBJbnRyb2R1Y2Ug
c2hvcnRlciB0aW1lLXRvLWxpdmUgZm9yIGNvb2tpZSBwYXJ0aXRpb24gd2hpdGVsaXN0aW5nCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzEyOTUKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMxODIzODE4PgorCisgICAgICAgIFJldmlld2VkIGJ5IEJy
ZW50IEZ1bGdoYW0uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzTWFuYWdlci5jcHA6CisgICAgICAgIChXS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NN
YW5hZ2VyU2V0VGltZVRvTGl2ZUNvb2tpZVBhcnRpdGlvbkZyZWUpOgorICAgICAgICAoV0tSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzTWFuYWdlckZpcmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxl
cik6CisgICAgICAgIChXS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyRmlyZVNob3VsZFBh
cnRpdGlvbkNvb2tpZXNIYW5kbGVyRm9yT25lRG9tYWluKToKKyAgICAgICAgICAgIENoYW5nZXMg
YW5kIGFkZGl0aW9ucyB0byB0ZXN0IGluZnJhc3RydWN0dXJlLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQy9XS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbmFnZXI6OnNldFRpbWVUb0xpdmVDb29r
aWVQYXJ0aXRpb25GcmVlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc01hbmFnZXI6OmZpcmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlcik6CisgICAgICAg
IChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyOjpmaXJlU2hvdWxkUGFy
dGl0aW9uQ29va2llc0hhbmRsZXJGb3JPbmVEb21haW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFuYWdlcjo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSk6Cisg
ICAgICAgICAgICBDaGFuZ2VzIGFuZCBhZGRpdGlvbnMgdG8gdGVzdCBpbmZyYXN0cnVjdHVyZS4K
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbmFnZXIuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzVXBkYXRlZCk6CisgICAgICAgICAgICBObyBsb25nZXIgc2VuZHMgYSBi
b29sZWFuIHBhcmFtZXRlciB0bworICAgICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjpmaXJlU2hvdWxkUGFydGl0aW9uQ29va2llc0hhbmRsZXIoKS4KKwogMjAx
Ny0wNC0yNSAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZXNvdXJjZSBMb2FkIFN0YXRpc3RpY3M6IENsZWFyIG5ldHdvcmsgcHJvY2VzcyBjYWNoZSB3aGVu
IGNsZWFyaW5nIHN0b3JlCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc01hbmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFuYWdlci5jcHAJKHJldmlzaW9u
IDIxNTc0MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzTWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgxLDEyICs4MSwyMiBAQCB2b2lk
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyOjpzCiAgICAgV2ViQ29yZTo6UmVzb3Vy
Y2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZE9ic2VydmVyKCkuc2V0VGltZVRvTGl2ZVVzZXJJbnRlcmFj
dGlvbihzZWNvbmRzKTsKIH0KIAordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFuYWdl
cjo6c2V0VGltZVRvTGl2ZUNvb2tpZVBhcnRpdGlvbkZyZWUoZG91YmxlIHNlY29uZHMpCit7Cisg
ICAgV2ViQ29yZTo6UmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZE9ic2VydmVyKCkuc2V0VGlt
ZVRvTGl2ZUNvb2tpZVBhcnRpdGlvbkZyZWUoc2Vjb25kcyk7Cit9CisKIHZvaWQgV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc01hbmFnZXI6OmZpcmVEYXRhTW9kaWZpY2F0aW9uSGFuZGxlcigpCiB7
CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZE9ic2VydmVyKCkuZmly
ZURhdGFNb2RpZmljYXRpb25IYW5kbGVyKCk7CiB9CiAKLXZvaWQgV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc01hbmFnZXI6OmZpcmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlcihjb25zdCBT
dHJpbmcmIGhvc3ROYW1lLCBib29sIHZhbHVlKQordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzTWFuYWdlcjo6ZmlyZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVyKCkKK3sKKyAgICBX
ZWJDb3JlOjpSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2hhcmVkT2JzZXJ2ZXIoKS5maXJlU2hvdWxk
UGFydGl0aW9uQ29va2llc0hhbmRsZXIoKTsKK30KKwordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzTWFuYWdlcjo6ZmlyZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVyRm9yT25lRG9t
YWluKGNvbnN0IFN0cmluZyYgaG9zdE5hbWUsIGJvb2wgdmFsdWUpCiB7CiAgICAgaWYgKHZhbHVl
KQogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2hhcmVkT2JzZXJ2ZXIo
KS5maXJlU2hvdWxkUGFydGl0aW9uQ29va2llc0hhbmRsZXIoeyB9LCB7aG9zdE5hbWV9LCBmYWxz
ZSk7CkBAIC0xMTcsNiArMTI3LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFu
YWdlcjo6Ywogdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFuYWdlcjo6cmVzZXRUb0Nv
bnNpc3RlbnRTdGF0ZSgpCiB7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNo
YXJlZE9ic2VydmVyKCkuc2V0VGltZVRvTGl2ZVVzZXJJbnRlcmFjdGlvbigyNTkyMDAwKTsKKyAg
ICBXZWJDb3JlOjpSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2hhcmVkT2JzZXJ2ZXIoKS5zZXRUaW1l
VG9MaXZlQ29va2llUGFydGl0aW9uRnJlZSg4NjQwMCk7CiAgICAgV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjpzZXROb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKGZh
bHNlKTsKICAgICBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldFNob3VsZENsYXNz
aWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKHRydWUpOwogICAgIFdlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0TWluaW11bVRpbWVCZXR3ZWVlbkRhdGFSZWNvcmRz
UmVtb3ZhbCg2MCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc01hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbmFnZXIuaAkocmV2aXNpb24gMjE1NzQx
KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NN
YW5hZ2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDkgKzQ2LDExIEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgdm9pZCBzZXRTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oY29uc3QgU3RyaW5n
JiBob3N0TmFtZSwgY29uc3QgU3RyaW5nJiB0b3BGcmFtZUhvc3ROYW1lKTsKICAgICBzdGF0aWMg
dm9pZCBzZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oY29uc3QgU3RyaW5nJiBob3N0TmFt
ZSwgY29uc3QgU3RyaW5nJiBob3N0TmFtZVJlZGlyZWN0ZWRUbyk7CiAgICAgc3RhdGljIHZvaWQg
c2V0VGltZVRvTGl2ZVVzZXJJbnRlcmFjdGlvbihkb3VibGUgc2Vjb25kcyk7CisgICAgc3RhdGlj
IHZvaWQgc2V0VGltZVRvTGl2ZUNvb2tpZVBhcnRpdGlvbkZyZWUoZG91YmxlIHNlY29uZHMpOwog
ICAgIHN0YXRpYyB2b2lkIHNldFJlZHVjZWRUaW1lc3RhbXBSZXNvbHV0aW9uKGRvdWJsZSBzZWNv
bmRzKTsKICAgICBzdGF0aWMgdm9pZCBmaXJlRGF0YU1vZGlmaWNhdGlvbkhhbmRsZXIoKTsKLSAg
ICBzdGF0aWMgdm9pZCBmaXJlU2hvdWxkUGFydGl0aW9uQ29va2llc0hhbmRsZXIoY29uc3QgU3Ry
aW5nJiBob3N0TmFtZSwgYm9vbCB2YWx1ZSk7CisgICAgc3RhdGljIHZvaWQgZmlyZVNob3VsZFBh
cnRpdGlvbkNvb2tpZXNIYW5kbGVyKCk7CisgICAgc3RhdGljIHZvaWQgZmlyZVNob3VsZFBhcnRp
dGlvbkNvb2tpZXNIYW5kbGVyRm9yT25lRG9tYWluKGNvbnN0IFN0cmluZyYgaG9zdE5hbWUsIGJv
b2wgdmFsdWUpOwogICAgIHN0YXRpYyB2b2lkIHNldE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRz
V2VyZVNjYW5uZWQoYm9vbCk7CiAgICAgc3RhdGljIHZvaWQgc2V0U2hvdWxkQ2xhc3NpZnlSZXNv
dXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoYm9vbCB2YWx1ZSk7CiAgICAgc3RhdGljIHZv
aWQgc2V0TWluaW11bVRpbWVCZXR3ZWVlbkRhdGFSZWNvcmRzUmVtb3ZhbChkb3VibGUgc2Vjb25k
cyk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAkocmV2aXNpb24gMjE1NzQxKQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE1Miw3ICsxNTIsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6cmVzCiAgICAgY29yZVN0b3JlKCkubWVyZ2VTdGF0aXN0aWNzKG9yaWdp
bnMpOwogICAgIC8vIEZpcmUgYmVmb3JlIHByb2Nlc3Npbmcgc3RhdGlzdGljcyB0byBwcm9wYWdh
dGUgdXNlcgogICAgIC8vIGludGVyYWN0aW9uIGFzIGZhc3QgYXMgcG9zc2libGUgdG8gdGhlIG5l
dHdvcmsgcHJvY2Vzcy4KLSAgICBjb3JlU3RvcmUoKS5maXJlU2hvdWxkUGFydGl0aW9uQ29va2ll
c0hhbmRsZXIoZmFsc2UpOworICAgIGNvcmVTdG9yZSgpLmZpcmVTaG91bGRQYXJ0aXRpb25Db29r
aWVzSGFuZGxlcigpOwogICAgIHByb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKIH0K
IApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc01hbmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyLmNwcAkocmV2aXNpb24gMjE1
NzQxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc01hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NiwxNCArNzYsMjQgQEAgdm9p
ZCBXS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyU2V0VAogICAgIFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NNYW5hZ2VyOjpzZXRUaW1lVG9MaXZlVXNlckludGVyYWN0aW9uKHNlY29uZHMp
OwogfQogCit2b2lkIFdLUmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbmFnZXJTZXRUaW1lVG9MaXZl
Q29va2llUGFydGl0aW9uRnJlZShkb3VibGUgc2Vjb25kcykKK3sKKyAgICBXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzTWFuYWdlcjo6c2V0VGltZVRvTGl2ZUNvb2tpZVBhcnRpdGlvbkZyZWUoc2Vj
b25kcyk7Cit9CisKIHZvaWQgV0tSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFuYWdlckZpcmVEYXRh
TW9kaWZpY2F0aW9uSGFuZGxlcigpCiB7CiAgICAgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc01h
bmFnZXI6OmZpcmVEYXRhTW9kaWZpY2F0aW9uSGFuZGxlcigpOwogfQogCi12b2lkIFdLUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc01hbmFnZXJGaXJlU2hvdWxkUGFydGl0aW9uQ29va2llc0hhbmRsZXIo
V0tTdHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFsdWUpCit2b2lkIFdLUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc01hbmFnZXJGaXJlU2hvdWxkUGFydGl0aW9uQ29va2llc0hhbmRsZXIoKQoreworICAg
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyOjpmaXJlU2hvdWxkUGFydGl0aW9uQ29v
a2llc0hhbmRsZXIoKTsKK30KKwordm9pZCBXS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2Vy
RmlyZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVyRm9yT25lRG9tYWluKFdLU3RyaW5nUmVm
IGhvc3ROYW1lLCBib29sIHZhbHVlKQogewotICAgIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NN
YW5hZ2VyOjpmaXJlU2hvdWxkUGFydGl0aW9uQ29va2llc0hhbmRsZXIodG9XVEZTdHJpbmcoaG9z
dE5hbWUpLCB2YWx1ZSk7CisgICAgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbmFnZXI6OmZp
cmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlckZvck9uZURvbWFpbih0b1dURlN0cmluZyho
b3N0TmFtZSksIHZhbHVlKTsKIH0KIAogdm9pZCBXS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5h
Z2VyU2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZChib29sIHZhbHVlKQpJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUmVzb3VyY2VMb2FkU3RhdGlz
dGljc01hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFuYWdlci5oCShyZXZpc2lvbiAyMTU3NDEpCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
TWFuYWdlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw4ICs0MSwxMCBAQCBleHRlcm4gIkMiIHsK
ICAgICBXS19FWFBPUlQgdm9pZCBXS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyU2V0U3Vi
cmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKFdLU3RyaW5nUmVmIGhvc3ROYW1lLCBXS1N0cmlu
Z1JlZiB0b3BGcmFtZUhvc3ROYW1lKTsKICAgICBXS19FWFBPUlQgdm9pZCBXS1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NNYW5hZ2VyU2V0U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKFdLU3RyaW5n
UmVmIGhvc3ROYW1lLCBXS1N0cmluZ1JlZiBob3N0TmFtZVJlZGlyZWN0ZWRUbyk7CiAgICAgV0tf
RVhQT1JUIHZvaWQgV0tSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFuYWdlclNldFRpbWVUb0xpdmVV
c2VySW50ZXJhY3Rpb24oZG91YmxlIHNlY29uZHMpOworICAgIFdLX0VYUE9SVCB2b2lkIFdLUmVz
b3VyY2VMb2FkU3RhdGlzdGljc01hbmFnZXJTZXRUaW1lVG9MaXZlQ29va2llUGFydGl0aW9uRnJl
ZShkb3VibGUgc2Vjb25kcyk7CiAgICAgV0tfRVhQT1JUIHZvaWQgV0tSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzTWFuYWdlckZpcmVEYXRhTW9kaWZpY2F0aW9uSGFuZGxlcigpOwotICAgIFdLX0VYUE9S
VCB2b2lkIFdLUmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbmFnZXJGaXJlU2hvdWxkUGFydGl0aW9u
Q29va2llc0hhbmRsZXIoV0tTdHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFsdWUpOworICAgIFdL
X0VYUE9SVCB2b2lkIFdLUmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbmFnZXJGaXJlU2hvdWxkUGFy
dGl0aW9uQ29va2llc0hhbmRsZXIoKTsKKyAgICBXS19FWFBPUlQgdm9pZCBXS1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NNYW5hZ2VyRmlyZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVyRm9yT25l
RG9tYWluKFdLU3RyaW5nUmVmIGhvc3ROYW1lLCBib29sIHZhbHVlKTsKICAgICBXS19FWFBPUlQg
dm9pZCBXS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyU2V0Tm90aWZ5UGFnZXNXaGVuRGF0
YVJlY29yZHNXZXJlU2Nhbm5lZChib29sIHZhbHVlKTsKICAgICBXS19FWFBPUlQgdm9pZCBXS1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyU2V0U2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZv
cmVEYXRhUmVjb3Jkc1JlbW92YWwoYm9vbCB2YWx1ZSk7CiAgICAgV0tfRVhQT1JUIHZvaWQgV0tS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFuYWdlclNldE1pbmltdW1UaW1lQmV0d2VlZW5EYXRhUmVj
b3Jkc1JlbW92YWwoZG91YmxlIHNlY29uZHMpOwpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjE1Nzc2KQorKysgVG9vbHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTctMDQtMjUgIEpvaG4g
V2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVzb3VyY2UgTG9hZCBT
dGF0aXN0aWNzOiBJbnRyb2R1Y2Ugc2hvcnRlciB0aW1lLXRvLWxpdmUgZm9yIGNvb2tpZSBwYXJ0
aXRpb24gd2hpdGVsaXN0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzEyOTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMxODIzODE4PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IEJyZW50IEZ1bGdoYW0uCisKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAg
IChXVFI6OlRlc3RSdW5uZXI6OnNldFN0YXRpc3RpY3NUaW1lVG9MaXZlQ29va2llUGFydGl0aW9u
RnJlZSk6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnN0YXRpc3RpY3NGaXJlU2hvdWxkUGFy
dGl0aW9uQ29va2llc0hhbmRsZXIpOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzdGF0aXN0
aWNzRmlyZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVyRm9yT25lRG9tYWluKToKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6
VGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NUaW1lVG9MaXZlQ29va2llUGFydGl0aW9uRnJl
ZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzdGF0aXN0aWNzRmlyZVNob3VsZFBh
cnRpdGlvbkNvb2tpZXNIYW5kbGVyKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnN0
YXRpc3RpY3NGaXJlU2hvdWxkUGFydGl0aW9uQ29va2llc0hhbmRsZXJGb3JPbmVEb21haW4pOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdElu
dm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUp
OgorCiAyMDE3LTA0LTI1ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgog
CiAgICAgICAgIFRyeSB0byBmaXggdGhlIFdLVFIgYnVpbGQgYWZ0ZXIgcjIxNTc1OApJbmRleDog
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDIxNTc0
MSkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yMjU2LDE0ICsyMjU2LDI0IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFN0
YXRpc3RpY3NUaW1lVG8KICAgICBXS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyU2V0VGlt
ZVRvTGl2ZVVzZXJJbnRlcmFjdGlvbihzZWNvbmRzKTsKIH0KIAordm9pZCBUZXN0Q29udHJvbGxl
cjo6c2V0U3RhdGlzdGljc1RpbWVUb0xpdmVDb29raWVQYXJ0aXRpb25GcmVlKGRvdWJsZSBzZWNv
bmRzKQoreworICAgIFdLUmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbmFnZXJTZXRUaW1lVG9MaXZl
Q29va2llUGFydGl0aW9uRnJlZShzZWNvbmRzKTsKK30KKwogdm9pZCBUZXN0Q29udHJvbGxlcjo6
c3RhdGlzdGljc0ZpcmVEYXRhTW9kaWZpY2F0aW9uSGFuZGxlcigpCiB7CiAgICAgV0tSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzTWFuYWdlckZpcmVEYXRhTW9kaWZpY2F0aW9uSGFuZGxlcigpOwogfQog
ICAgIAotdm9pZCBUZXN0Q29udHJvbGxlcjo6c3RhdGlzdGljc0ZpcmVTaG91bGRQYXJ0aXRpb25D
b29raWVzSGFuZGxlcihXS1N0cmluZ1JlZiBob3N0TmFtZSwgYm9vbCB2YWx1ZSkKK3ZvaWQgVGVz
dENvbnRyb2xsZXI6OnN0YXRpc3RpY3NGaXJlU2hvdWxkUGFydGl0aW9uQ29va2llc0hhbmRsZXIo
KQoreworICAgIFdLUmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbmFnZXJGaXJlU2hvdWxkUGFydGl0
aW9uQ29va2llc0hhbmRsZXIoKTsKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6c3RhdGlzdGlj
c0ZpcmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlckZvck9uZURvbWFpbihXS1N0cmluZ1Jl
ZiBob3N0TmFtZSwgYm9vbCB2YWx1ZSkKIHsKLSAgICBXS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NN
YW5hZ2VyRmlyZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVyKGhvc3ROYW1lLCB2YWx1ZSk7
CisgICAgV0tSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFuYWdlckZpcmVTaG91bGRQYXJ0aXRpb25D
b29raWVzSGFuZGxlckZvck9uZURvbWFpbihob3N0TmFtZSwgdmFsdWUpOwogfQogCiB2b2lkIFRl
c3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJl
U2Nhbm5lZChib29sIHZhbHVlKQpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuaAkocmV2aXNpb24gMjE1NzQxKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTcsOCArMTU3LDEwIEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oV0tT
dHJpbmdSZWYgaG9zdE5hbWUsIFdLU3RyaW5nUmVmIHRvcEZyYW1lSG9zdE5hbWUpOwogICAgIHZv
aWQgc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhXS1N0cmluZ1JlZiBo
b3N0TmFtZSwgV0tTdHJpbmdSZWYgaG9zdE5hbWVSZWRpcmVjdGVkVG8pOwogICAgIHZvaWQgc2V0
U3RhdGlzdGljc1RpbWVUb0xpdmVVc2VySW50ZXJhY3Rpb24oZG91YmxlIHNlY29uZHMpOworICAg
IHZvaWQgc2V0U3RhdGlzdGljc1RpbWVUb0xpdmVDb29raWVQYXJ0aXRpb25GcmVlKGRvdWJsZSBz
ZWNvbmRzKTsKICAgICB2b2lkIHN0YXRpc3RpY3NGaXJlRGF0YU1vZGlmaWNhdGlvbkhhbmRsZXIo
KTsKLSAgICB2b2lkIHN0YXRpc3RpY3NGaXJlU2hvdWxkUGFydGl0aW9uQ29va2llc0hhbmRsZXIo
V0tTdHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFsdWUpOworICAgIHZvaWQgc3RhdGlzdGljc0Zp
cmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlcigpOworICAgIHZvaWQgc3RhdGlzdGljc0Zp
cmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlckZvck9uZURvbWFpbihXS1N0cmluZ1JlZiBo
b3N0TmFtZSwgYm9vbCB2YWx1ZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNX
aGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZChib29sKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NT
aG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChib29sKTsKICAg
ICB2b2lkIHNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJldHdlZWVuRGF0YVJlY29yZHNSZW1vdmFs
KGRvdWJsZSk7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNw
cAkocmV2aXNpb24gMjE1NzQxKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2Nh
dGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMDIsMTIgKzEwMDIsMjQgQEAgV0tSZXRhaW5Q
dHI8V0tUeXBlUmVmPiBUZXN0SW52b2NhdGlvbjo6ZAogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICB9CiAgICAgCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2Fn
ZU5hbWUsICJTZXRTdGF0aXN0aWNzVGltZVRvTGl2ZUNvb2tpZVBhcnRpdGlvbkZyZWUiKSkgewor
ICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLRG91YmxlR2V0VHlw
ZUlEKCkpOworICAgICAgICBXS0RvdWJsZVJlZiBzZWNvbmRzID0gc3RhdGljX2Nhc3Q8V0tEb3Vi
bGVSZWY+KG1lc3NhZ2VCb2R5KTsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigp
LnNldFN0YXRpc3RpY3NUaW1lVG9MaXZlQ29va2llUGFydGl0aW9uRnJlZShXS0RvdWJsZUdldFZh
bHVlKHNlY29uZHMpKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCiAgICAgaWYg
KFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTdGF0aXN0aWNzRmly
ZURhdGFNb2RpZmljYXRpb25IYW5kbGVyIikpIHsKICAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNp
bmdsZXRvbigpLnN0YXRpc3RpY3NGaXJlRGF0YU1vZGlmaWNhdGlvbkhhbmRsZXIoKTsKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIAogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxU
b1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU3RhdGlzdGljc0ZpcmVTaG91bGRQYXJ0aXRpb25D
b29raWVzSGFuZGxlciIpKSB7CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5z
dGF0aXN0aWNzRmlyZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVyKCk7CisgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgIH0KKworICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3Ry
aW5nKG1lc3NhZ2VOYW1lLCAiU3RhdGlzdGljc0ZpcmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFu
ZGxlckZvck9uZURvbWFpbiIpKSB7CiAgICAgICAgIEFTU0VSVChXS0dldFR5cGVJRChtZXNzYWdl
Qm9keSkgPT0gV0tEaWN0aW9uYXJ5R2V0VHlwZUlEKCkpOwogICAgICAgICAKICAgICAgICAgV0tE
aWN0aW9uYXJ5UmVmIG1lc3NhZ2VCb2R5RGljdGlvbmFyeSA9IHN0YXRpY19jYXN0PFdLRGljdGlv
bmFyeVJlZj4obWVzc2FnZUJvZHkpOwpAQCAtMTAxNyw3ICsxMDI5LDcgQEAgV0tSZXRhaW5QdHI8
V0tUeXBlUmVmPiBUZXN0SW52b2NhdGlvbjo6ZAogICAgICAgICBXS1N0cmluZ1JlZiBob3N0TmFt
ZSA9IHN0YXRpY19jYXN0PFdLU3RyaW5nUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1l
c3NhZ2VCb2R5RGljdGlvbmFyeSwgaG9zdE5hbWVLZXkuZ2V0KCkpKTsKICAgICAgICAgV0tCb29s
ZWFuUmVmIHZhbHVlID0gc3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPihXS0RpY3Rpb25hcnlHZXRJ
dGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgdmFsdWVLZXkuZ2V0KCkpKTsKICAgICAg
ICAgCi0gICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zdGF0aXN0aWNzRmlyZVNo
b3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVyKGhvc3ROYW1lLCBXS0Jvb2xlYW5HZXRWYWx1ZSh2
YWx1ZSkpOworICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc3RhdGlzdGljc0Zp
cmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlckZvck9uZURvbWFpbihob3N0TmFtZSwgV0tC
b29sZWFuR2V0VmFsdWUodmFsdWUpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQog
ICAgIApJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuY3BwCShyZXZpc2lvbiAyMTU3NDEpCisrKyBUb29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MzI1LDYgKzEzMjUsMTMgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRTdGF0aXN0aWNzVGltZVRvTGl2
ZQogICAgIFdLQnVuZGxlUG9zdFN5bmNocm9ub3VzTWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2lu
Z2xldG9uKCkuYnVuZGxlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSwg
bnVsbHB0cik7CiB9CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0U3RhdGlzdGljc1RpbWVUb0xpdmVD
b29raWVQYXJ0aXRpb25GcmVlKGRvdWJsZSBzZWNvbmRzKQoreworICAgIFdLUmV0YWluUHRyPFdL
U3RyaW5nUmVmPiBtZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiU2V0U3RhdGlzdGljc1RpbWVUb0xpdmVDb29raWVQYXJ0aXRpb25GcmVlIikpOworICAg
IFdLUmV0YWluUHRyPFdLRG91YmxlUmVmPiBtZXNzYWdlQm9keShBZG9wdFdLLCBXS0RvdWJsZUNy
ZWF0ZShzZWNvbmRzKSk7CisgICAgV0tCdW5kbGVQb3N0U3luY2hyb25vdXNNZXNzYWdlKEluamVj
dGVkQnVuZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3Nh
Z2VCb2R5LmdldCgpLCBudWxscHRyKTsKK30KKwogdm9pZCBUZXN0UnVubmVyOjppbnN0YWxsU3Rh
dGlzdGljc0RpZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2soSlNWYWx1ZVJlZiBjYWxsYmFjaykK
IHsKICAgICBjYWNoZVRlc3RSdW5uZXJDYWxsYmFjayhTdGF0aXN0aWNzRGlkTW9kaWZ5RGF0YVJl
Y29yZHNDYWxsYmFja0lELCBjYWxsYmFjayk7CkBAIC0xMzQxLDcgKzEzNDgsMTMgQEAgdm9pZCBU
ZXN0UnVubmVyOjpzdGF0aXN0aWNzRmlyZURhdGFNb2RpZgogICAgIFdLQnVuZGxlUG9zdFN5bmNo
cm9ub3VzTWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkuYnVuZGxlKCksIG1lc3Nh
Z2VOYW1lLmdldCgpLCAwLCBudWxscHRyKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzdGF0aXN0
aWNzRmlyZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVyKEpTU3RyaW5nUmVmIGhvc3ROYW1l
LCBib29sIHZhbHVlKQordm9pZCBUZXN0UnVubmVyOjpzdGF0aXN0aWNzRmlyZVNob3VsZFBhcnRp
dGlvbkNvb2tpZXNIYW5kbGVyKCkKK3sKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVz
c2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlN0YXRpc3Rp
Y3NGaXJlU2hvdWxkUGFydGl0aW9uQ29va2llc0hhbmRsZXIiKSk7CisgICAgV0tCdW5kbGVQb3N0
U3luY2hyb25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwg
bWVzc2FnZU5hbWUuZ2V0KCksIDAsIG51bGxwdHIpOworfQorCit2b2lkIFRlc3RSdW5uZXI6OnN0
YXRpc3RpY3NGaXJlU2hvdWxkUGFydGl0aW9uQ29va2llc0hhbmRsZXJGb3JPbmVEb21haW4oSlNT
dHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFsdWUpCiB7CiAgICAgVmVjdG9yPFdLUmV0YWluUHRy
PFdLU3RyaW5nUmVmPj4ga2V5czsKICAgICBWZWN0b3I8V0tSZXRhaW5QdHI8V0tUeXBlUmVmPj4g
dmFsdWVzOwpAQCAtMTM2MCw3ICsxMzczLDcgQEAgdm9pZCBUZXN0UnVubmVyOjpzdGF0aXN0aWNz
RmlyZVNob3VsZFBhcgogICAgICAgICByYXdWYWx1ZXNbaV0gPSB2YWx1ZXNbaV0uZ2V0KCk7CiAg
ICAgfQogICAgIAotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZShBZG9w
dFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU3RhdGlzdGljc0ZpcmVTaG91bGRQ
YXJ0aXRpb25Db29raWVzSGFuZGxlciIpKTsKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4g
bWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlN0YXRp
c3RpY3NGaXJlU2hvdWxkUGFydGl0aW9uQ29va2llc0hhbmRsZXJGb3JPbmVEb21haW4iKSk7CiAg
ICAgV0tSZXRhaW5QdHI8V0tEaWN0aW9uYXJ5UmVmPiBtZXNzYWdlQm9keShBZG9wdFdLLCBXS0Rp
Y3Rpb25hcnlDcmVhdGUocmF3S2V5cy5kYXRhKCksIHJhd1ZhbHVlcy5kYXRhKCksIHJhd0tleXMu
c2l6ZSgpKSk7CiAgICAgCiAgICAgV0tCdW5kbGVQb3N0U3luY2hyb25vdXNNZXNzYWdlKEluamVj
dGVkQnVuZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3Nh
Z2VCb2R5LmdldCgpLCBudWxscHRyKTsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCShyZXZpc2lvbiAyMTU3NDEpCisrKyBU
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzUyLDcgKzM1Miw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGluc3RhbGxTdGF0
aXN0aWNzRGlkTW9kaWZ5RGF0YVJlY29yZHNDYWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKTsK
ICAgICB2b2lkIHN0YXRpc3RpY3NEaWRNb2RpZnlEYXRhUmVjb3Jkc0NhbGxiYWNrKCk7CiAgICAg
dm9pZCBzdGF0aXN0aWNzRmlyZURhdGFNb2RpZmljYXRpb25IYW5kbGVyKCk7Ci0gICAgdm9pZCBz
dGF0aXN0aWNzRmlyZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVyKEpTU3RyaW5nUmVmIGhv
c3ROYW1lLCBib29sIHZhbHVlKTsKKyAgICB2b2lkIHN0YXRpc3RpY3NGaXJlU2hvdWxkUGFydGl0
aW9uQ29va2llc0hhbmRsZXIoKTsKKyAgICB2b2lkIHN0YXRpc3RpY3NGaXJlU2hvdWxkUGFydGl0
aW9uQ29va2llc0hhbmRsZXJGb3JPbmVEb21haW4oSlNTdHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wg
dmFsdWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKEpTU3RyaW5n
UmVmIGhvc3ROYW1lLCBib29sIHZhbHVlKTsKICAgICBib29sIGlzU3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKEpTU3RyaW5nUmVmIGhvc3ROYW1lKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NI
YXNIYWRVc2VySW50ZXJhY3Rpb24oSlNTdHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFsdWUpOwpA
QCAtMzYxLDYgKzM2Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFN0YXRpc3RpY3NTdWJyZXNv
dXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oSlNTdHJpbmdSZWYgaG9zdE5hbWUsIEpTU3RyaW5nUmVm
IHRvcEZyYW1lSG9zdE5hbWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5p
cXVlUmVkaXJlY3RUbyhKU1N0cmluZ1JlZiBob3N0TmFtZSwgSlNTdHJpbmdSZWYgaG9zdE5hbWVS
ZWRpcmVjdGVkVG8pOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1RpbWVUb0xpdmVVc2VySW50ZXJh
Y3Rpb24oZG91YmxlIHNlY29uZHMpOworICAgIHZvaWQgc2V0U3RhdGlzdGljc1RpbWVUb0xpdmVD
b29raWVQYXJ0aXRpb25GcmVlKGRvdWJsZSBzZWNvbmRzKTsKICAgICB2b2lkIHNldFN0YXRpc3Rp
Y3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKGJvb2wpOwogICAgIHZvaWQg
c2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1v
dmFsKGJvb2wpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2VlZW5EYXRh
UmVjb3Jkc1JlbW92YWwoZG91YmxlKTsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAko
cmV2aXNpb24gMjE1NzQxKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjU4LDggKzI1OCwx
MCBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzU3VicmVz
b3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKERPTVN0cmluZyBob3N0TmFtZSwgRE9NU3RyaW5nIHRv
cEZyYW1lSG9zdE5hbWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVl
UmVkaXJlY3RUbyhET01TdHJpbmcgaG9zdE5hbWUsIERPTVN0cmluZyBob3N0TmFtZVJlZGlyZWN0
ZWRUbyk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzVGltZVRvTGl2ZVVzZXJJbnRlcmFjdGlvbihk
b3VibGUgc2Vjb25kcyk7CisgICAgdm9pZCBzZXRTdGF0aXN0aWNzVGltZVRvTGl2ZUNvb2tpZVBh
cnRpdGlvbkZyZWUoZG91YmxlIHNlY29uZHMpOwogICAgIHZvaWQgc3RhdGlzdGljc0ZpcmVEYXRh
TW9kaWZpY2F0aW9uSGFuZGxlcigpOwotICAgIHZvaWQgc3RhdGlzdGljc0ZpcmVTaG91bGRQYXJ0
aXRpb25Db29raWVzSGFuZGxlcihET01TdHJpbmcgaG9zdE5hbWUsIGJvb2xlYW4gdmFsdWUpOwor
ICAgIHZvaWQgc3RhdGlzdGljc0ZpcmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlcigpOwor
ICAgIHZvaWQgc3RhdGlzdGljc0ZpcmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlckZvck9u
ZURvbWFpbihET01TdHJpbmcgaG9zdE5hbWUsIGJvb2xlYW4gdmFsdWUpOwogICAgIHZvaWQgc2V0
U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQoYm9vbGVhbiB2
YWx1ZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZv
cmVEYXRhUmVjb3Jkc1JlbW92YWwoYm9vbGVhbiB2YWx1ZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0
aWNzTWluaW11bVRpbWVCZXR3ZWVlbkRhdGFSZWNvcmRzUmVtb3ZhbChkb3VibGUgc2Vjb25kcyk7
CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiAyMTU3NDEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwyMCBAQAorMjAxNy0wNC0yNSAgSm9obiBXaWxhbmRlciAg
PHdpbGFuZGVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXNvdXJjZSBMb2FkIFN0YXRpc3RpY3M6
IEludHJvZHVjZSBzaG9ydGVyIHRpbWUtdG8tbGl2ZSBmb3IgY29va2llIHBhcnRpdGlvbiB3aGl0
ZWxpc3RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3MTI5NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzE4MjM4MTg+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgQnJlbnQgRnVsZ2hhbS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvbG9hZGluZy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BhcnRpdGlvbmVkLWFuZC11bnBhcnRpdGlvbmVkLWNvb2tp
ZS1kZWxldGlvbi5odG1sOgorICAgICAgICAgICAgQ2hhbmdlZCBhIFRlc3RSdW5uZXIgZnVuY3Rp
b24gbmFtZSB0bworICAgICAgICAgICAgc3RhdGlzdGljc0ZpcmVTaG91bGRQYXJ0aXRpb25Db29r
aWVzSGFuZGxlckZvck9uZURvbWFpbigpLgorICAgICAgICAqIGh0dHAvdGVzdHMvbG9hZGluZy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BhcnRpdGlvbmVkLWFuZC11bnBhcnRpdGlvbmVkLWNvb2tp
ZS13aXRoLXBhcnRpdGlvbmluZy10aW1lb3V0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGFydGl0aW9uZWQt
YW5kLXVucGFydGl0aW9uZWQtY29va2llLXdpdGgtcGFydGl0aW9uaW5nLXRpbWVvdXQuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcGFydGl0aW9uZWQtY29va2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24u
aHRtbDoKKyAgICAgICAgICAgIENoYW5nZWQgYSBUZXN0UnVubmVyIGZ1bmN0aW9uIG5hbWUgdG8K
KyAgICAgICAgICAgIHN0YXRpc3RpY3NGaXJlU2hvdWxkUGFydGl0aW9uQ29va2llc0hhbmRsZXJG
b3JPbmVEb21haW4oKS4KKwogMjAxNy0wNC0yNSAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFw
cGxlLmNvbT4KIAogICAgICAgICBNYXJrIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVz
b3VyY2Utc2l6ZXMtZGlzay1jYWNoZS5odG1sIGFzIGZsYWt5LgpJbmRleDogTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGFydGl0aW9uZWQtYW5k
LXVucGFydGl0aW9uZWQtY29va2llLWRlbGV0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGFydGl0aW9u
ZWQtYW5kLXVucGFydGl0aW9uZWQtY29va2llLWRlbGV0aW9uLmh0bWwJKHJldmlzaW9uIDIxNTc0
MSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3BhcnRpdGlvbmVkLWFuZC11bnBhcnRpdGlvbmVkLWNvb2tpZS1kZWxldGlvbi5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC05Myw3ICs5Myw3IEBACiAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZh
bHNlKTsKICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVl
bkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKIAotICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NG
aXJlU2hvdWxkUGFydGl0aW9uQ29va2llc0hhbmRsZXIoImxvY2FsaG9zdCIsIHRydWUpOworICAg
ICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NGaXJlU2hvdWxkUGFydGl0aW9uQ29va2llc0hhbmRs
ZXJGb3JPbmVEb21haW4oImxvY2FsaG9zdCIsIHRydWUpOwogICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIsIHRydWUpOwog
ICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0
dHA6Ly9sb2NhbGhvc3QiKSkKICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBn
ZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAv
dGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BhcnRpdGlvbmVkLWFuZC11bnBh
cnRpdGlvbmVkLWNvb2tpZS13aXRoLXBhcnRpdGlvbmluZy10aW1lb3V0LWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9wYXJ0aXRpb25lZC1hbmQtdW5wYXJ0aXRpb25lZC1jb29raWUtd2l0aC1wYXJ0
aXRpb25pbmctdGltZW91dC1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGFydGl0aW9uZWQt
YW5kLXVucGFydGl0aW9uZWQtY29va2llLXdpdGgtcGFydGl0aW9uaW5nLXRpbWVvdXQtZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTA4IEBACittYWluIGZyYW1lIC0gZGlk
U3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZENvbW1pdExvYWRG
b3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZFJlY2VpdmVUaXRsZTogVGVzdCBmb3IgUGFydGl0aW9u
ZWQgYW5kIFVucGFydGl0aW9uZWQgQ29va2llIFdpdGggVXNlciBJbnRlcmFjdGlvbgorbWFpbiBm
cmFtZSAtIGRpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZUZvckZyYW1lCitDT05TT0xFIE1FU1NB
R0U6IGxpbmUgNjM6IFN0ZXAgMQorbWFpbiBmcmFtZSAtIHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJl
Y3RUb1VSTDogaHR0cDovL2xvY2FsaG9zdDo4MDAwL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9yZXNvdXJjZXMvc2V0LWNvb2tpZS5waHA/bmFtZT1maXJzdFBhcnR5Q29va2llJnZhbHVl
PXZhbHVlI2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcGFydGl0aW9uZWQtYW5kLXVucGFydGl0aW9uZWQtY29va2llLXdpdGgtcGFydGl0aW9uaW5n
LXRpbWVvdXQuaHRtbCNzdGVwMiAKK21haW4gZnJhbWUgLSBkaWRGaW5pc2hEb2N1bWVudExvYWRG
b3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZEZpbmlzaExvYWRGb3JGcmFtZQorbWFpbiBmcmFtZSAt
IGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUKK21haW4gZnJhbWUgLSBkaWRDYW5jZWxD
bGllbnRSZWRpcmVjdEZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkQ29tbWl0TG9hZEZvckZyYW1l
CittYWluIGZyYW1lIC0gZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUKK21haW4gZnJhbWUg
LSBkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZEZpbmlzaExv
YWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTDog
aHR0cDovLzEyNy4wLjAuMTo4MDAwL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wYXJ0
aXRpb25lZC1hbmQtdW5wYXJ0aXRpb25lZC1jb29raWUtd2l0aC1wYXJ0aXRpb25pbmctdGltZW91
dC5odG1sI3N0ZXAyIAorbWFpbiBmcmFtZSAtIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWUKK21haW4gZnJhbWUgLSBkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lCittYWluIGZy
YW1lIC0gZGlkQ29tbWl0TG9hZEZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkUmVjZWl2ZVRpdGxl
OiBUZXN0IGZvciBQYXJ0aXRpb25lZCBhbmQgVW5wYXJ0aXRpb25lZCBDb29raWUgV2l0aCBVc2Vy
IEludGVyYWN0aW9uCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNjg6IFN0ZXAgMgorbWFpbiBmcmFt
ZSAtIGRpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZUZvckZyYW1lCitmcmFtZSAiPCEtLWZyYW1l
UGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4iIC0gZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFt
ZQorbWFpbiBmcmFtZSAtIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lCitmcmFtZSAiPCEt
LWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4iIC0gZGlkQ29tbWl0TG9hZEZvckZyYW1lCitm
cmFtZSAiPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4iIC0gZGlkRmluaXNoRG9jdW1l
bnRMb2FkRm9yRnJhbWUKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA3NTogU3RlcCAzCittYWluIGZy
YW1lIC0gZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUKK21haW4gZnJhbWUgLSBkaWRDaGFu
Z2VMb2NhdGlvbldpdGhpblBhZ2VGb3JGcmFtZQorZnJhbWUgIjwhLS1mcmFtZVBhdGggLy88IS0t
ZnJhbWUxLS0+LS0+IiAtIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUKK2ZyYW1lICI8
IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPiIgLSBkaWRIYW5kbGVPbmxvYWRFdmVudHNG
b3JGcmFtZQorZnJhbWUgIjwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+IiAtIGRpZEZp
bmlzaExvYWRGb3JGcmFtZQorZnJhbWUgIjwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUxLS0+LS0+
IiAtIGRpZENvbW1pdExvYWRGb3JGcmFtZQorZnJhbWUgIjwhLS1mcmFtZVBhdGggLy88IS0tZnJh
bWUxLS0+LS0+IiAtIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lCitDT05TT0xFIE1FU1NB
R0U6IGxpbmUgODI6IFN0ZXAgNAorbWFpbiBmcmFtZSAtIGRpZENoYW5nZUxvY2F0aW9uV2l0aGlu
UGFnZUZvckZyYW1lCitmcmFtZSAiPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTItLT4tLT4iIC0g
ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZQorZnJhbWUgIjwhLS1mcmFtZVBhdGggLy88
IS0tZnJhbWUxLS0+LS0+IiAtIGRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lCitmcmFtZSAi
PCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTEtLT4tLT4iIC0gZGlkRmluaXNoTG9hZEZvckZyYW1l
CitmcmFtZSAiPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTItLT4tLT4iIC0gZGlkQ29tbWl0TG9h
ZEZvckZyYW1lCitmcmFtZSAiPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTItLT4tLT4iIC0gZGlk
RmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA4OTogU3Rl
cCA1CittYWluIGZyYW1lIC0gZGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWUKK2Zy
YW1lICI8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMy0tPi0tPiIgLSBkaWRTdGFydFByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lCitmcmFtZSAiPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTItLT4tLT4i
IC0gZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUKK2ZyYW1lICI8IS0tZnJhbWVQYXRoIC8v
PCEtLWZyYW1lMi0tPi0tPiIgLSBkaWRGaW5pc2hMb2FkRm9yRnJhbWUKK2ZyYW1lICI8IS0tZnJh
bWVQYXRoIC8vPCEtLWZyYW1lMy0tPi0tPiIgLSBkaWRDb21taXRMb2FkRm9yRnJhbWUKK2ZyYW1l
ICI8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMy0tPi0tPiIgLSBkaWRGaW5pc2hEb2N1bWVudExv
YWRGb3JGcmFtZQorZnJhbWUgIjwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUzLS0+LS0+IiAtIGRp
ZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lCitmcmFtZSAiPCEtLWZyYW1lUGF0aCAvLzwhLS1m
cmFtZTMtLT4tLT4iIC0gZGlkRmluaXNoTG9hZEZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkRmlu
aXNoTG9hZEZvckZyYW1lCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgOTY6IFN0ZXAgNgorbWFpbiBm
cmFtZSAtIGRpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZUZvckZyYW1lCitmcmFtZSAiPCEtLWZy
YW1lUGF0aCAvLzwhLS1mcmFtZTQtLT4tLT4iIC0gZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JG
cmFtZQorZnJhbWUgIjwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWU0LS0+LS0+IiAtIGRpZENvbW1p
dExvYWRGb3JGcmFtZQorZnJhbWUgIjwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWU0LS0+LS0+IiAt
IGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTAz
OiBTdGVwIDcKK2ZyYW1lICI8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lNS0tPi0tPiIgLSBkaWRT
dGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lCitmcmFtZSAiPCEtLWZyYW1lUGF0aCAvLzwhLS1m
cmFtZTQtLT4tLT4iIC0gZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUKK2ZyYW1lICI8IS0t
ZnJhbWVQYXRoIC8vPCEtLWZyYW1lNC0tPi0tPiIgLSBkaWRGaW5pc2hMb2FkRm9yRnJhbWUKK2Zy
YW1lICI8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lNS0tPi0tPiIgLSBkaWRDb21taXRMb2FkRm9y
RnJhbWUKK2ZyYW1lICI8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lNS0tPi0tPiIgLSBkaWRGaW5p
c2hEb2N1bWVudExvYWRGb3JGcmFtZQorICAKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1l
UGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4nCistLS0tLS0tLQorU2hvdWxkIHJlY2VpdmUgbm8gY29v
a2llcy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgor
RGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0eUNvb2tpZScuCitDbGllbnQt
c2lkZSBkb2N1bWVudC5jb29raWU6CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGgg
Ly88IS0tZnJhbWUxLS0+LS0+JworLS0tLS0tLS0KK1NldHRpbmcgcGFydGl0aW9uZWQsIHRoaXJk
LXBhcnR5IGNvb2tpZS4KKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEt
LWZyYW1lMi0tPi0tPicKKy0tLS0tLS0tCitTaG91bGQgb25seSByZWNlaXZlIHBhcnRpdGlvbmVk
LCB0aGlyZC1wYXJ0eSBjb29raWUuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJz
dFBhcnR5Q29va2llJy4KK1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0eUNvb2tpZScu
CitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6IHRoaXJkUGFydHlDb29raWU9dmFsdWUKKwor
LS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTMtLT4tLT4nCistLS0t
LS0tLQorQWZ0ZXIgZmlyc3QgdXNlciBpbnRlcmFjdGlvbiwgc2hvdWxkIG9ubHkgcmVjZWl2ZSB1
bi1wYXJ0aXRpb25lZCBjb29raWUuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlD
b29raWUnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0eUNvb2tpZScu
CitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6IGZpcnN0UGFydHlDb29raWU9dmFsdWUKKwor
LS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTQtLT4tLT4nCistLS0t
LS0tLQorU2hvdWxkIG9ubHkgcmVjZWl2ZSBwYXJ0aXRpb25lZCwgdGhpcmQtcGFydHkgY29va2ll
LgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitSZWNl
aXZlZCBjb29raWUgbmFtZWQgJ3RoaXJkUGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1l
bnQuY29va2llOiB0aGlyZFBhcnR5Q29va2llPXZhbHVlCisKKy0tLS0tLS0tCitGcmFtZTogJzwh
LS1mcmFtZVBhdGggLy88IS0tZnJhbWU1LS0+LS0+JworLS0tLS0tLS0KK0FmdGVyIHNlY29uZCB1
c2VyIGludGVyYWN0aW9uLCBzaG91bGQgb25seSByZWNlaXZlIHVuLXBhcnRpdGlvbmVkIGNvb2tp
ZS4KK1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitEaWQgbm90IHJl
Y2VpdmUgY29va2llIG5hbWVkICd0aGlyZFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3Vt
ZW50LmNvb2tpZTogZmlyc3RQYXJ0eUNvb2tpZT12YWx1ZQpJbmRleDogTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGFydGl0aW9uZWQtYW5kLXVu
cGFydGl0aW9uZWQtY29va2llLXdpdGgtcGFydGl0aW9uaW5nLXRpbWVvdXQuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9wYXJ0aXRpb25lZC1hbmQtdW5wYXJ0aXRpb25lZC1jb29raWUtd2l0aC1wYXJ0aXRpb25p
bmctdGltZW91dC5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
bG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BhcnRpdGlvbmVkLWFuZC11bnBhcnRpdGlv
bmVkLWNvb2tpZS13aXRoLXBhcnRpdGlvbmluZy10aW1lb3V0Lmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwxMjggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhl
YWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0IGZvciBQYXJ0
aXRpb25lZCBhbmQgVW5wYXJ0aXRpb25lZCBDb29raWUgV2l0aCBVc2VyIEludGVyYWN0aW9uPC90
aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBwYXJ0aXRpb25I
b3N0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5T3JpZ2luID0gImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eUJhc2VVcmwgPSB0aGly
ZFBhcnR5T3JpZ2luICsgIi9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2Vz
IjsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29va2llTmFtZSA9ICJmaXJzdFBhcnR5Q29va2llIjsK
KyAgICBjb25zdCBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llID0gIi9zZXQtY29va2llLnBo
cD9uYW1lPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZSArICImdmFsdWU9dmFsdWUiOworICAgIGNv
bnN0IHRoaXJkUGFydHlDb29raWVOYW1lID0gInRoaXJkUGFydHlDb29raWUiOworICAgIGNvbnN0
IHN1YlBhdGhUb1NldFRoaXJkUGFydHlDb29raWUgPSAiL3NldC1jb29raWUucGhwP25hbWU9IiAr
IHRoaXJkUGFydHlDb29raWVOYW1lICsgIiZ2YWx1ZT12YWx1ZSI7CisgICAgY29uc3QgZnJhZ21l
bnRXaXRoUmV0dXJuVXJsID0gImh0dHA6Ly8iICsgcGFydGl0aW9uSG9zdCArICIvbG9hZGluZy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BhcnRpdGlvbmVkLWFuZC11bnBhcnRpdGlvbmVkLWNvb2tp
ZS13aXRoLXBhcnRpdGlvbmluZy10aW1lb3V0Lmh0bWwiOworICAgIGNvbnN0IHN1YlBhdGhUb0dl
dENvb2tpZXMgPSAiL2dldC1jb29raWVzLnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5h
bWUgKyAiJm5hbWUyPSIgKyB0aGlyZFBhcnR5Q29va2llTmFtZTsKKworICAgIGZ1bmN0aW9uIHNl
dEVuYWJsZUZlYXR1cmUoZW5hYmxlKSB7CisgICAgICAgIGlmICghZW5hYmxlKSB7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKCk7CisgICAg
ICAgIH0KKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVk
KGVuYWJsZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0Q29va2llU3RvcmFnZVBhcnRpdGlvbmlu
Z0VuYWJsZWQoZW5hYmxlKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgewor
ICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gb3BlbklmcmFtZSh1cmwsIG9uTG9hZEhh
bmRsZXIpIHsKKyAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImlmcmFtZSIpOworICAgICAgICBlbGVtZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9uTG9h
ZEhhbmRsZXIpIHsKKyAgICAgICAgICAgIGVsZW1lbnQub25sb2FkID0gb25Mb2FkSGFuZGxlcjsK
KyAgICAgICAgfQorICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIGZpcmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlckFu
ZENvbnRpbnVlKCkgeworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NGaXJlU2hvdWxkUGFy
dGl0aW9uQ29va2llc0hhbmRsZXIoKTsKKyAgICAgICAgcnVuVGVzdCgpOworICAgIH0KKworICAg
IGZ1bmN0aW9uIHNldFNob3J0Q29va2llUGFydGl0aW9uaW5nVGltZU91dFBsdXNGaXJlU2hvdWxk
UGFydGl0aW9uQ29va2llc0hhbmRsZXJBbmRDb250aW51ZSgpIHsKKyAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzVGltZVRvTGl2ZUNvb2tpZVBhcnRpdGlvbkZyZWUoMSk7CisgICAgICAg
IHNldFRpbWVvdXQoZmlyZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVyQW5kQ29udGludWUs
IDIwMDApOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNldE5vcm1hbENvb2tpZVBhcnRpdGlvbmlu
Z1RpbWVPdXRQbHVzVXNlckludGVyYWN0aW9uQW5kQ29udGludWUoKSB7CisgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1RpbWVUb0xpdmVDb29raWVQYXJ0aXRpb25GcmVlKDg2NDAwKTsK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRo
aXJkUGFydHlPcmlnaW4sIHRydWUpOworICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAg
dGVzdEZhaWxlZCgiVGhpcmQgcGFydHkgZGlkIG5vdCBnZXQgbG9nZ2VkIGZvciB1c2VyIGludGVy
YWN0aW9uLiIpOworICAgICAgICBydW5UZXN0KCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVu
VGVzdCgpIHsKKyAgICAgICAgc3dpdGNoIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoKSB7CisgICAg
ICAgICAgICBjYXNlICIjc3RlcDEiOgorICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJTdGVw
IDEiKTsKKyAgICAgICAgICAgICAgICAvLyBTZXQgZmlyc3QtcGFydHkgY29va2llIGZvciBodHRw
Oi8vbG9jYWxob3N0OjgwMDAKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVm
ID0gdGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llICsgIiMi
ICsgZnJhZ21lbnRXaXRoUmV0dXJuVXJsICsgIiNzdGVwMiI7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDIiOgorICAgICAgICAgICAgICAgIGNvbnNvbGUu
bG9nKCJTdGVwIDIiKTsKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSBmaXJzdC1w
YXJ0eSBjb29raWUgaXMgbm90IHNlbnQgaW4gcGFydGl0aW9uIDEyNy4wLjAuMTo4MDAwCisgICAg
ICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMyI7CisgICAgICAgICAg
ICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMg
KyAiJm1lc3NhZ2U9U2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4iLAorICAgICAgICAgICAgICAg
ICAgICBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
IiNzdGVwMyI6CisgICAgICAgICAgICAgICAgY29uc29sZS5sb2coIlN0ZXAgMyIpOworICAgICAg
ICAgICAgICAgIC8vIFNldCB0aGlyZC1wYXJ0eSBjb29raWUgZm9yIGh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMCBpbiBwYXJ0aXRpb24gMTI3LjAuMC4xOjgwMDAKKyAgICAgICAgICAgICAgICBkb2N1bWVu
dC5sb2NhdGlvbi5oYXNoID0gInN0ZXA0IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRo
aXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0VGhpcmRQYXJ0eUNvb2tpZSArICImbWVzc2Fn
ZT1TZXR0aW5nIHBhcnRpdGlvbmVkLCB0aGlyZC1wYXJ0eSBjb29raWUuIiwKKyAgICAgICAgICAg
ICAgICAgICAgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlICIjc3RlcDQiOgorICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJTdGVwIDQiKTsKKyAg
ICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IG9ubHkgcGFydGl0aW9uZWQgY29va2llIGdldCBz
ZW50IGluIHBhcnRpdGlvbiAxMjcuMC4wLjE6ODAwMAorICAgICAgICAgICAgICAgIGRvY3VtZW50
LmxvY2F0aW9uLmhhc2ggPSAic3RlcDUiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhp
cmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPVNob3VsZCBv
bmx5IHJlY2VpdmUgcGFydGl0aW9uZWQsIHRoaXJkLXBhcnR5IGNvb2tpZS4iLAorICAgICAgICAg
ICAgICAgICAgICBzZXROb3JtYWxDb29raWVQYXJ0aXRpb25pbmdUaW1lT3V0UGx1c1VzZXJJbnRl
cmFjdGlvbkFuZENvbnRpbnVlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgIiNzdGVwNSI6CisgICAgICAgICAgICAgICAgY29uc29sZS5sb2coIlN0ZXAgNSIpOwor
ICAgICAgICAgICAgICAgIC8vIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCBub3cgaGFzIHVzZXIgaW50
ZXJhY3Rpb24sIGNoZWNrIHRoYXQgdW4tcGFydGl0aW9uZWQgY29va2llIGlzIHNlbnQgZm9yIHRo
aXJkLXBhcnR5CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVw
NiI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBh
dGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9QWZ0ZXIgZmlyc3QgdXNlciBpbnRlcmFjdGlvbiwg
c2hvdWxkIG9ubHkgcmVjZWl2ZSB1bi1wYXJ0aXRpb25lZCBjb29raWUuIiwKKyAgICAgICAgICAg
ICAgICAgICAgc2V0U2hvcnRDb29raWVQYXJ0aXRpb25pbmdUaW1lT3V0UGx1c0ZpcmVTaG91bGRQ
YXJ0aXRpb25Db29raWVzSGFuZGxlckFuZENvbnRpbnVlKTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNiI6CisgICAgICAgICAgICAgICAgY29uc29sZS5s
b2coIlN0ZXAgNiIpOworICAgICAgICAgICAgICAgIC8vIENvb2tpZSBwYXJ0aXRpb25pbmcgc2hv
dWxkIGJlIGFwcGxpZWQgYWdhaW4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5o
YXNoID0gInN0ZXA3IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNl
VXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgb25seSByZWNlaXZl
IHBhcnRpdGlvbmVkLCB0aGlyZC1wYXJ0eSBjb29raWUuIiwKKyAgICAgICAgICAgICAgICAgICAg
c2V0Tm9ybWFsQ29va2llUGFydGl0aW9uaW5nVGltZU91dFBsdXNVc2VySW50ZXJhY3Rpb25BbmRD
b250aW51ZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3Rl
cDciOgorICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJTdGVwIDciKTsKKyAgICAgICAgICAg
ICAgICAvLyBodHRwOi8vbG9jYWxob3N0OjgwMDAgbm93IGhhcyBmcmVzaCB1c2VyIGludGVyYWN0
aW9uLCBjaGVjayB0aGF0IHVuLXBhcnRpdGlvbmVkIGNvb2tpZSBpcyBzZW50IGZvciB0aGlyZC1w
YXJ0eQorICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQ
YXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPUFmdGVyIHNlY29uZCB1c2VyIGludGVyYWN0aW9u
LCBzaG91bGQgb25seSByZWNlaXZlIHVuLXBhcnRpdGlvbmVkIGNvb2tpZS4iLAorICAgICAgICAg
ICAgICAgICAgICBmaW5pc2hUZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoID09PSAiIiAmJiB3aW5k
b3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHNldEVuYWJsZUZl
YXR1cmUodHJ1ZSk7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiLCB0cnVlKTsKKyAgICAgICAgaWYgKCF0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IikpCisg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQg
cmVzb3VyY2UuIik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzRmlyZVNob3VsZFBh
cnRpdGlvbkNvb2tpZXNIYW5kbGVyKCk7CisKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAg
ICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDEiOworICAgIH0KKworICAgIHJ1blRl
c3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3BhcnRpdGlvbmVkLWNvb2tpZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVy
YWN0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5n
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGFydGl0aW9uZWQtY29va2llcy13aXRoLWFuZC13aXRo
b3V0LXVzZXItaW50ZXJhY3Rpb24uaHRtbAkocmV2aXNpb24gMjE1NzQxKQorKysgTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGFydGl0aW9uZWQt
Y29va2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24uaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtNzIsNyArNzIsNyBAQAogICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09
PSBwYXJ0aXRpb25Ib3N0ICYmIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT0gIiIgJiYgd2luZG93
LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewogICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKHRydWUpOwogCi0gICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc0ZpcmVTaG91bGRQYXJ0
aXRpb25Db29raWVzSGFuZGxlcigibG9jYWxob3N0IiwgdHJ1ZSk7CisgICAgICAgIHRlc3RSdW5u
ZXIuc3RhdGlzdGljc0ZpcmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlckZvck9uZURvbWFp
bigibG9jYWxob3N0IiwgdHJ1ZSk7CiAKICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>