<?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>190408</bug_id>
          
          <creation_ts>2018-10-09 12:27:14 -0700</creation_ts>
          <short_desc>Anchor target should be ignored on activation when the download attribute is set</short_desc>
          <delta_ts>2018-10-09 16:22:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=190351</see_also>
          <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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1467517</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-10-09 12:27:14 -0700</bug_when>
    <thetext>Anchor target should be ignored on activation when the download attribute is set:
- https://html.spec.whatwg.org/#the-a-element:downloading-hyperlinks-2

When the download attribute is set, we should use the &quot;download the hyperlink&quot; algorithm [1] instead of the &quot;follow the hyperlink&quot; [2] algorithm.
Note that the &quot;download the hyperlink&quot; triggers a download and ignores the target attribute entirely.

This is important as an anchor element with target=_blank and the download attribute set may fail because of Safari&apos;s popup blocker if we do not disregard the anchor target.

[1] https://html.spec.whatwg.org/#downloading-hyperlinks
[2] https://html.spec.whatwg.org/#following-hyperlinks-2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467519</commentid>
    <comment_count>1</comment_count>
      <attachid>351902</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-10-09 12:35:02 -0700</bug_when>
    <thetext>Created attachment 351902
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467523</commentid>
    <comment_count>2</comment_count>
      <attachid>351903</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-10-09 13:07:56 -0700</bug_when>
    <thetext>Created attachment 351903
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467553</commentid>
    <comment_count>3</comment_count>
      <attachid>351916</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-10-09 14:14:52 -0700</bug_when>
    <thetext>Created attachment 351916
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467583</commentid>
    <comment_count>4</comment_count>
      <attachid>351916</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2018-10-09 15:54:06 -0700</bug_when>
    <thetext>Comment on attachment 351916
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467585</commentid>
    <comment_count>5</comment_count>
      <attachid>351916</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-09 16:21:25 -0700</bug_when>
    <thetext>Comment on attachment 351916
Patch

Clearing flags on attachment: 351916

Committed r236987: &lt;https://trac.webkit.org/changeset/236987&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467586</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-09 16:21:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467587</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-10-09 16:22:29 -0700</bug_when>
    <thetext>&lt;rdar://problem/45145107&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351902</attachid>
            <date>2018-10-09 12:35:02 -0700</date>
            <delta_ts>2018-10-09 12:53:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190408-20181009123502.patch</filename>
            <type>text/plain</type>
            <size>18414</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2OTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzU3NTE0ZTQzODgzYzMw
Yjc5NGEyYjczMmY2YjU4ZDliOGUyNjAxNC4uZWU2MmIxYjU0ZGRiZWQ2MDhmYzUzNTExY2ZlMmQw
NGFmMjNlMWVmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE4LTEwLTA5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQW5jaG9yIHRhcmdldCBzaG91
bGQgYmUgaWdub3JlZCBvbiBhY3RpdmF0aW9uIHdoZW4gdGhlIGRvd25sb2FkIGF0dHJpYnV0ZSBp
cyBzZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5
MDQwOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFu
Y2hvciB0YXJnZXQgc2hvdWxkIGJlIGlnbm9yZWQgb24gYWN0aXZhdGlvbiB3aGVuIHRoZSBkb3du
bG9hZCBhdHRyaWJ1dGUgaXMgc2V0OgorICAgICAgICAtIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3
Zy5vcmcvI3RoZS1hLWVsZW1lbnQ6ZG93bmxvYWRpbmctaHlwZXJsaW5rcy0yCisKKyAgICAgICAg
V2hlbiB0aGUgZG93bmxvYWQgYXR0cmlidXRlIGlzIHNldCwgd2Ugc2hvdWxkIHVzZSB0aGUgImRv
d25sb2FkIHRoZSBoeXBlcmxpbmsiIGFsZ29yaXRobSBbMV0KKyAgICAgICAgaW5zdGVhZCBvZiB0
aGUgImZvbGxvdyB0aGUgaHlwZXJsaW5rIiBbMl0gYWxnb3JpdGhtLgorCisgICAgICAgIE5vdGUg
dGhhdCB0aGUgImRvd25sb2FkIHRoZSBoeXBlcmxpbmsiIHRyaWdnZXJzIGEgZG93bmxvYWQgYW5k
IGlnbm9yZXMgdGhlIHRhcmdldCBhdHRyaWJ1dGUKKyAgICAgICAgZW50aXJlbHkuCisKKyAgICAg
ICAgVGhpcyBpcyBpbXBvcnRhbnQgYXMgYW4gYW5jaG9yIGVsZW1lbnQgd2l0aCB0YXJnZXQ9X2Js
YW5rIGFuZCB0aGUgZG93bmxvYWQgYXR0cmlidXRlIHNldCBtYXkKKyAgICAgICAgZmFpbCBiZWNh
dXNlIG9mIFNhZmFyaSdzIHBvcHVwIGJsb2NrZXIgaWYgd2UgZG8gbm90IGRpc3JlZ2FyZCB0aGUg
YW5jaG9yIHRhcmdldC4KKworICAgICAgICBbMV0gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9y
Zy8jZG93bmxvYWRpbmctaHlwZXJsaW5rcworICAgICAgICBbMl0gaHR0cHM6Ly9odG1sLnNwZWMu
d2hhdHdnLm9yZy8jZm9sbG93aW5nLWh5cGVybGlua3MtMgorCisgICAgICAgIFRlc3Q6IGZhc3Qv
ZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtYmxhbmstdGFy
Z2V0LXBvcHVwLW5vdC1hbGxvd2VkLmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OmhhbmRsZUNs
aWNrKToKKwogMjAxOC0xMC0wOSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAK
ICAgICAgICAgW1BTT05dIFByZXdhcm0gc3lzdGVtIFVJIGZvbnQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKaW5kZXggMjdjMGEwZDIzYTdmMDU3ODFlZTQwMmIzZTEx
NzZhNTljMmQ5NDliNy4uOTQzZWE5M2IyYmZmZGExMjBiZDVkNGE3Y2Y1MGIyNTA0Y2FkMGZkYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKQEAgLTQyOCw3ICs0
MjgsOSBAQCB2b2lkIEhUTUxBbmNob3JFbGVtZW50OjpoYW5kbGVDbGljayhFdmVudCYgZXZlbnQp
CiAKICAgICBTaG91bGRTZW5kUmVmZXJyZXIgc2hvdWxkU2VuZFJlZmVycmVyID0gaGFzUmVsKFJl
bGF0aW9uOjpOb1JlZmVycmVyKSA/IE5ldmVyU2VuZFJlZmVycmVyIDogTWF5YmVTZW5kUmVmZXJy
ZXI7CiAgICAgYXV0byBuZXdGcmFtZU9wZW5lclBvbGljeSA9IGhhc1JlbChSZWxhdGlvbjo6Tm9P
cGVuZXIpID8gc3RkOjptYWtlX29wdGlvbmFsKE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpTdXBwcmVz
cykgOiBzdGQ6Om51bGxvcHQ7Ci0gICAgZnJhbWUtPmxvYWRlcigpLnVybFNlbGVjdGVkKGNvbXBs
ZXRlZFVSTCwgdGFyZ2V0KCksICZldmVudCwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0Zvcndh
cmRMaXN0OjpObywgc2hvdWxkU2VuZFJlZmVycmVyLCBkb2N1bWVudCgpLnNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3lUb1Byb3BhZ2F0ZSgpLCBuZXdGcmFtZU9wZW5lclBvbGljeSwgZG93bmxv
YWRBdHRyaWJ1dGUsIHN5c3RlbVByZXZpZXdJbmZvKTsKKyAgICAvLyBBbmNob3IgdGFyZ2V0IGlz
IGlnbm9yZWQgd2hlbiB0aGUgZG93bmxvYWQgYXR0cmlidXRlIGlzIHNldCBzaW5jZSBpdCB3aWxs
IGRvd25sb2FkIHRoZSBoeXBlcmxpbmsgcmF0aGVyIHRoYW4gZm9sbG93IGl0LgorICAgIGF1dG8g
dGFyZ2V0ID0gZG93bmxvYWRBdHRyaWJ1dGUuaXNOdWxsKCkgPyB0aGlzLT50YXJnZXQoKSA6IFN0
cmluZygpOworICAgIGZyYW1lLT5sb2FkZXIoKS51cmxTZWxlY3RlZChjb21wbGV0ZWRVUkwsIHRh
cmdldCwgJmV2ZW50LCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBz
aG91bGRTZW5kUmVmZXJyZXIsIGRvY3VtZW50KCkuc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eVRvUHJvcGFnYXRlKCksIG5ld0ZyYW1lT3BlbmVyUG9saWN5LCBkb3dubG9hZEF0dHJpYnV0ZSwg
c3lzdGVtUHJldmlld0luZm8pOwogCiAgICAgc2VuZFBpbmdzKGNvbXBsZXRlZFVSTCk7CiB9CmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNWU0ZTE2
ODhiMWY5MjFhY2Q1OWUyYjVjMGI5ODE2YzRlYjQ3ZmFmMS4uYmMzNDUxYTNiMmFiZmViODAwMzI0
ZjUwZmZlOGY3NDcwZTQ3MmVlOSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE4LTEwLTA5ICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQW5jaG9yIHRhcmdldCBzaG91bGQgYmUgaWdu
b3JlZCBvbiBhY3RpdmF0aW9uIHdoZW4gdGhlIGRvd25sb2FkIGF0dHJpYnV0ZSBpcyBzZXQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDQwOAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBXZWJL
aXRUZXN0UnVubmVyIHRvIGJsb2NrIHBvcHVwcyBieSBkZWZhdWx0IGFuZCBhZGQgc3VwcG9ydCBm
b3IgdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2luZG93cygpCisgICAgICAgIGZvciB0ZXN0cyB0aGF0
IG5lZWQgcG9wdXBzLiBUaGlzIGFsaWducyBXZWJLaXRUZXN0UnVubmVyIHdpdGggRHVtcFJlbmRl
clRyZWUgYW5kIGFsbG93cyB0ZXN0aW5nCisgICAgICAgIHBvcHVwIGJsb2NraW5nLgorCisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVy
LmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzZXRDYW5PcGVuV2luZG93cyk6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChX
VFI6OlRlc3RDb250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2UpOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rl
c3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2Vp
dmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaDoKKwogMjAxOC0xMC0wOSAgSmVyIE5vYmxlICA8
amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBJU09UcmFja0VuY3J5cHRpb25Cb3ggcmV0
dXJucyBpbmNvcnJlY3QgZGVmYXVsdEtleUlECmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRl
eCAyNGQwMTZlMGVlMzU2N2YyNDY3ZjU5NTM2NTEwOTNmNzBhZDU4MmUxLi4xZWQ0ZWQ0ZjZlOTQ3
YjliYmQ0NTM4MDU0NDZmZTU2MWNkY2U1ZjQxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwK
QEAgLTY2LDcgKzY2LDcgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIC8vIFNwZWNpYWwg
b3B0aW9ucy4KICAgICB2b2lkIGtlZXBXZWJIaXN0b3J5KCk7CiAgICAgdm9pZCBzZXRBY2NlcHRz
RWRpdGluZyhib29sZWFuIHZhbHVlKTsKLSAgICB2b2lkIHNldENhbk9wZW5XaW5kb3dzKGJvb2xl
YW4gdmFsdWUpOworICAgIHZvaWQgc2V0Q2FuT3BlbldpbmRvd3MoKTsKICAgICB2b2lkIHNldENs
b3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZShib29sZWFuIHZhbHVlKTsKICAgICB2b2lk
IHNldFhTU0F1ZGl0b3JFbmFibGVkKGJvb2xlYW4gdmFsdWUpOwogICAgIHZvaWQgc2V0QWxsb3dV
bml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHMoYm9vbGVhbiB2YWx1ZSk7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCBj
ODQzYmM3MjYyMTkyMjNmNTc0YmJmMjI5ZDI1OTA3YWUzY2E4NWE1Li40NWFkNjZiMzZiZGI5NjEx
OThiNWIwZDA3OTI3MTJjYzVjZjU0YmE4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTQxMCwxNSArNDEwLDExIEBA
IGJvb2wgVGVzdFJ1bm5lcjo6aXNDb21tYW5kRW5hYmxlZChKU1N0cmluZ1JlZiBuYW1lKQogICAg
IHJldHVybiBXS0J1bmRsZVBhZ2VJc0VkaXRpbmdDb21tYW5kRW5hYmxlZChJbmplY3RlZEJ1bmRs
ZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCksIHRvV0sobmFtZSkuZ2V0KCkpOwogfQogCi12
b2lkIFRlc3RSdW5uZXI6OnNldENhbk9wZW5XaW5kb3dzKGJvb2wpCi17Ci0gICAgLy8gVGhlIHRl
c3QgcGx1Z2lucy9nZXQtdXJsLXdpdGgtYmxhbmstdGFyZ2V0Lmh0bWwgcmVxdWlyZXMgdGhhdCB0
aGUgZW1iZWRkaW5nIGNsaWVudCBmb3JiaWQKLSAgICAvLyBvcGVuaW5nIHdpbmRvd3MgKGJ5IG9t
aXR0aW5nIGEgY2FsbCB0byB0aGlzIGZ1bmN0aW9uKSBzbyBhcyB0byB0ZXN0IHRoYXQgTlBOX0dl
dFVSTCgpCi0gICAgLy8gd2l0aCBhIGJsYW5rIHRhcmdldCB3aWxsIHJldHVybiBhbiBlcnJvci4K
LSAgICAvLwotICAgIC8vIEl0IGlzIG5vdCBjbGVhciBpZiB3ZSBzaG91bGQgaW1wbGVtZW50IHRo
aXMgZnVuY3Rpb25hbGl0eSBvciByZW1vdmUgaXQgYW5kIHBsdWdpbnMvZ2V0LXVybC13aXRoLWJs
YW5rLXRhcmdldC5odG1sCi0gICAgLy8gcGVyIHRoZSByZW1hcmsgaW4gPGh0dHBzOi8vdHJhYy53
ZWJraXQub3JnL2NoYW5nZXNldC82NDUwNC90cnVuay9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2syL1NraXBwZWQ+LgotICAgIC8vIEZvciBub3csIGp1c3QgaWdub3JlIHRoaXMgc2V0dGluZy4K
K3ZvaWQgVGVzdFJ1bm5lcjo6c2V0Q2FuT3BlbldpbmRvd3MoKQoreworICAgIFdLUmV0YWluUHRy
PFdLU3RyaW5nUmVmPiBtZXNzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoIlNldENhbk9wZW5XaW5kb3dzIikpOworICAgIFdLUmV0YWluUHRyPFdLQm9vbGVh
blJlZj4gbWVzc2FnZUJvZHkoQWRvcHRXSywgV0tCb29sZWFuQ3JlYXRlKHRydWUpKTsKKyAgICBX
S0J1bmRsZVBvc3RTeW5jaHJvbm91c01lc3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigp
LmJ1bmRsZSgpLCBtZXNzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpLCBudWxscHRy
KTsKIH0KIAogdm9pZCBUZXN0UnVubmVyOjpzZXRYU1NBdWRpdG9yRW5hYmxlZChib29sIGVuYWJs
ZWQpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rl
c3RSdW5uZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5oCmluZGV4IDEyMTViM2NhMGJlYTEwNWU0MmVhZTkzMGUyYWIwYjg1N2NjZDBjMTQuLmJh
MGQ2YTY1N2Q1NDVkOWU2M2UwNGMwNjdiYjM0MDljZDNiYWQ1YTkgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC05OSw3ICs5
OSw3IEBAIHB1YmxpYzoKICAgICAvLyBTcGVjaWFsIG9wdGlvbnMuCiAgICAgdm9pZCBrZWVwV2Vi
SGlzdG9yeSgpOwogICAgIHZvaWQgc2V0QWNjZXB0c0VkaXRpbmcoYm9vbCB2YWx1ZSkgeyBtX3No
b3VsZEFsbG93RWRpdGluZyA9IHZhbHVlOyB9Ci0gICAgdm9pZCBzZXRDYW5PcGVuV2luZG93cyhi
b29sKTsKKyAgICB2b2lkIHNldENhbk9wZW5XaW5kb3dzKCk7CiAgICAgdm9pZCBzZXRDbG9zZVJl
bWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUoYm9vbCB2YWx1ZSkgeyBtX3Nob3VsZENsb3NlRXh0
cmFXaW5kb3dzID0gdmFsdWU7IH0KICAgICB2b2lkIHNldFhTU0F1ZGl0b3JFbmFibGVkKGJvb2wp
OwogICAgIHZvaWQgc2V0TW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWQoYm9vbCk7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDUxZTBmMjMxMzI1ZDY0MGFi
YTA5MGQ5NzViYzUyYTcyZmIzZWM5NmMuLmQ0MTAwZjhmMzc5ZDM5Y2FjZWZiOGEyOTRjZTE5ZTQ3
NDkxMGRkNGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBA
IC0yNDIsOSArMjQyLDE3IEBAIHN0YXRpYyB2b2lkIHJlcXVlc3RQb2ludGVyTG9jayhXS1BhZ2VS
ZWYgcGFnZSwgY29uc3Qgdm9pZCopCiAgICAgV0tQYWdlRGlkQWxsb3dQb2ludGVyTG9jayhwYWdl
KTsKIH0KIAotV0tQYWdlUmVmIFRlc3RDb250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2UoV0tQYWdl
UmVmIG9sZFBhZ2UsIFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgV0tOYXZp
Z2F0aW9uQWN0aW9uUmVmIG5hdmlnYXRpb25BY3Rpb24sIFdLV2luZG93RmVhdHVyZXNSZWYgd2lu
ZG93RmVhdHVyZXMsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCitXS1BhZ2VSZWYgVGVzdENvbnRy
b2xsZXI6OmNyZWF0ZU90aGVyUGFnZShXS1BhZ2VSZWYsIFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYg
Y29uZmlndXJhdGlvbiwgV0tOYXZpZ2F0aW9uQWN0aW9uUmVmIG5hdmlnYXRpb25BY3Rpb24sIFdL
V2luZG93RmVhdHVyZXNSZWYgd2luZG93RmVhdHVyZXMsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8p
CiB7CiAgICAgUGxhdGZvcm1XZWJWaWV3KiBwYXJlbnRWaWV3ID0gc3RhdGljX2Nhc3Q8UGxhdGZv
cm1XZWJWaWV3Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOworICAgIHJldHVybiBU
ZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuY3JlYXRlT3RoZXJQYWdlKHBhcmVudFZpZXcsIGNv
bmZpZ3VyYXRpb24sIG5hdmlnYXRpb25BY3Rpb24sIHdpbmRvd0ZlYXR1cmVzKTsKK30KKworV0tQ
YWdlUmVmIFRlc3RDb250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2UoUGxhdGZvcm1XZWJWaWV3KiBw
YXJlbnRWaWV3LCBXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sIFdLTmF2aWdh
dGlvbkFjdGlvblJlZiBuYXZpZ2F0aW9uQWN0aW9uLCBXS1dpbmRvd0ZlYXR1cmVzUmVmIHdpbmRv
d0ZlYXR1cmVzKQoreworICAgIC8vIFRoZSB0ZXN0IG5lZWRzIHRvIGNhbGwgdGVzdFJ1bm5lci5z
ZXRDYW5PcGVuV2luZG93cygpIHRvIG9wZW4gbmV3IHdpbmRvd3MuCisgICAgaWYgKCFtX2N1cnJl
bnRJbnZvY2F0aW9uLT5jYW5PcGVuV2luZG93cygpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAogICAgIFBsYXRmb3JtV2ViVmlldyogdmlldyA9IHBsYXRmb3JtQ3JlYXRlT3RoZXJQYWdlKHBh
cmVudFZpZXcsIGNvbmZpZ3VyYXRpb24sIHBhcmVudFZpZXctPm9wdGlvbnMoKSk7CiAgICAgV0tQ
YWdlUmVmIG5ld1BhZ2UgPSB2aWV3LT5wYWdlKCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmgKaW5kZXggMDQ1YzdjZjUxZDRlMDJhOTQ5MTI2ZDRiYjUzYWFmODNjMTM2Mjg5
Zi4uNWMzZmU1M2QxNjc0NjgwZDk2NmJiMjI5NGE0ZWM0ZTQ0ODNhMWVkZiAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtNDAwLDYgKzQwMCw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBkaWRVcGRhdGVIaXN0b3J5VGl0bGUoV0tTdHJpbmdSZWYgdGl0bGUsIFdLVVJM
UmVmLCBXS0ZyYW1lUmVmKTsKIAogICAgIHN0YXRpYyBXS1BhZ2VSZWYgY3JlYXRlT3RoZXJQYWdl
KFdLUGFnZVJlZiwgV0tQYWdlQ29uZmlndXJhdGlvblJlZiwgV0tOYXZpZ2F0aW9uQWN0aW9uUmVm
LCBXS1dpbmRvd0ZlYXR1cmVzUmVmLCBjb25zdCB2b2lkKik7CisgICAgV0tQYWdlUmVmIGNyZWF0
ZU90aGVyUGFnZShQbGF0Zm9ybVdlYlZpZXcqIHBhcmVudFZpZXcsIFdLUGFnZUNvbmZpZ3VyYXRp
b25SZWYsIFdLTmF2aWdhdGlvbkFjdGlvblJlZiwgV0tXaW5kb3dGZWF0dXJlc1JlZik7CiAKICAg
ICBzdGF0aWMgdm9pZCBydW5Nb2RhbChXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
OwogICAgIHN0YXRpYyB2b2lkIHJ1bk1vZGFsKFBsYXRmb3JtV2ViVmlldyopOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCBkN2Q3ZjRkZDc2YjQ5OGMyYjI5
NDVkOTFhNzg4YzU5YWY0YjYyZjNiLi5jNGRkYzkyOGE0ZjU2MGIzNDA5YWM1YmNjMmU0Yzc0YmU5
ZTZjNmRkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9u
LmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAt
ODAyLDYgKzgwMiwxMiBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpk
aWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQgogICAgIGlmIChXS1N0cmlu
Z0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiR2V0RHVtcEZyYW1lTG9hZENhbGxi
YWNrcyIpKQogICAgICAgICByZXR1cm4gV0tSZXRhaW5QdHI8V0tUeXBlUmVmPihBZG9wdFdLLCBX
S0Jvb2xlYW5DcmVhdGUobV9kdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKSk7CiAKKyAgICBpZiAoV0tT
dHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldENhbk9wZW5XaW5kb3dz
IikpIHsKKyAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0Jvb2xl
YW5HZXRUeXBlSUQoKSk7CisgICAgICAgIG1fY2FuT3BlbldpbmRvd3MgPSBzdGF0aWNfY2FzdDx1
bnNpZ25lZCBjaGFyPihXS0Jvb2xlYW5HZXRWYWx1ZShzdGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+
KG1lc3NhZ2VCb2R5KSkpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKICAgICBp
ZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFdpbmRvd0lz
S2V5IikpIHsKICAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0Jv
b2xlYW5HZXRUeXBlSUQoKSk7CiAgICAgICAgIFdLQm9vbGVhblJlZiBpc0tleVZhbHVlID0gc3Rh
dGljX2Nhc3Q8V0tCb29sZWFuUmVmPihtZXNzYWdlQm9keSk7CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RJbnZvY2F0aW9uLmgKaW5kZXggM2ZiNGJiNzhhYTRkODJkYmY5NWU3NzY0MmEzOWFjNDFj
ZWYzMWM4MS4uZmUxNzg5NzY1MjY4OTMxZmJjMjA1NmExNGY4ZDFmMTJiYzdmOTY1MCAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaApAQCAtODQsNiArODQsOCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBkaWRSZW1vdmVBbGxTZXNzaW9uQ3JlZGVudGlhbHMoKTsKICAgICAKICAg
ICB2b2lkIGR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCk7CisKKyAgICBib29sIGNhbk9wZW5X
aW5kb3dzKCkgY29uc3QgeyByZXR1cm4gbV9jYW5PcGVuV2luZG93czsgfQogICAgIAogcHJpdmF0
ZToKICAgICBXS1JldGFpblB0cjxXS011dGFibGVEaWN0aW9uYXJ5UmVmPiBjcmVhdGVUZXN0U2V0
dGluZ3NEaWN0aW9uYXJ5KCk7CkBAIC0xMzIsNiArMTM0LDcgQEAgcHJpdmF0ZToKICAgICBib29s
IG1fZHVtcFBpeGVscyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3BpeGVsUmVzdWx0SXNQZW5kaW5n
IHsgZmFsc2UgfTsKICAgICBib29sIG1fc2hvdWxkRHVtcFJlc291cmNlTG9hZFN0YXRpc3RpY3Mg
eyBmYWxzZSB9OworICAgIGJvb2wgbV9jYW5PcGVuV2luZG93cyB7IGZhbHNlIH07CiAgICAgV2hh
dFRvRHVtcCBtX3doYXRUb0R1bXAgeyBXaGF0VG9EdW1wOjpSZW5kZXJUcmVlIH07CiAKICAgICBT
dHJpbmdCdWlsZGVyIG1fdGV4dE91dHB1dDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxMTRiZDZlMmVkYjczZGQ4OTU2ZmFj
NzBiN2NmMTRjYzliYmMzYWY0Li45MzVjNGNlZDZmNDIxZDFiMDEzZTg5ZDM0Y2NlNjlmMDI2MTYw
NDFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTgtMTAtMDkgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBbmNob3IgdGFyZ2V0IHNob3VsZCBiZSBpZ25vcmVk
IG9uIGFjdGl2YXRpb24gd2hlbiB0aGUgZG93bmxvYWQgYXR0cmlidXRlIGlzIHNldAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwNDA4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1M
QW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWJsYW5rLXRhcmdldC1wb3B1
cC1ub3QtYWxsb3dlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hU
TUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtYmxhbmstdGFyZ2V0LXBv
cHVwLW5vdC1hbGxvd2VkLmh0bWw6IEFkZGVkLgorICAgICAgICBBZGQgbGF5b3V0IHRlc3QgY292
ZXJhZ2UuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2Rvd25sb2FkL2FuY2hvci1sb2FkLWFmdGVy
LWRvd25sb2FkLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVz
b3VyY2VzL3JlZ2lzdHJhdGlvbi10YXNrLXF1ZXVlLXNjaGVkdWxpbmctMS5qczoKKyAgICAgICAg
VXBkYXRlIGV4aXN0aW5nIFdLMi1vbmx5IGxheW91dCB0ZXN0cyB0byBjYWxsIHRlc3RSdW5uZXIu
c2V0Q2FuT3BlbldpbmRvd3MoKSBzaW5jZSB0aGV5IHJlbHkgb24KKyAgICAgICAgb3BlbmluZyBh
IG5ldyB3aW5kb3cuIFdlIGZhaWxlZCB0byBub3RpY2UgdGhlIGlzc3VlIGJlY2F1c2UgdGhlc2Ug
dGVzdHMgYXJlIG5vdCBydW4gb24gV0sxLgorCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMS9U
ZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25z
OgorICAgICAgICBTa2lwIG5ldyB0ZXN0IG9uIFdlYktpdDEgc2luY2UgdGhlIGRvd25sb2FkIGF0
dHJpYnV0ZSBpcyBvbmx5IHN1cHBvcnRlZCBvbiBXZWJLaXQyLgorCiAyMDE4LTEwLTA5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAoU2FmYXJp
IDEyKTogRG93bmxvYWQgb2YgQmxvYiBVUkwgZmFpbHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtYmxh
bmstdGFyZ2V0LXBvcHVwLW5vdC1hbGxvd2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtYmxhbmst
dGFyZ2V0LXBvcHVwLW5vdC1hbGxvd2VkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YTBlNWZm
YzBjZmY3NDUyNmZiNDEyNjIwMTFiMjA5MDk0NjlkODU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3du
bG9hZC1ibGFuay10YXJnZXQtcG9wdXAtbm90LWFsbG93ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNiBAQAorRG93bmxvYWQgc3RhcnRlZC4KK0Rvd25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3Rl
ZCBmaWxlbmFtZSAiYWJlLnBuZyIKK0Rvd25sb2FkIGNvbXBsZXRlZC4KK1RoZSBzdWdnZXN0ZWQg
ZmlsZW5hbWUgYWJvdmUgc2hvdWxkIGJlICJhYmUucG5nIiBhbmQgdGhlIGRvd25sb2FkIHNob3Vs
ZCBzdWNjZWVkLgorCitGaWxlIGJhY2tlZCBibG9iIFVSTApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1i
bGFuay10YXJnZXQtcG9wdXAtbm90LWFsbG93ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtYmxhbmstdGFyZ2V0
LXBvcHVwLW5vdC1hbGxvd2VkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGFlYmQwZmEwZTM2MzRmMzIxYTMz
MjYxZmRlN2M3MTUxMjkwZGNjNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtYmxhbmstdGFy
Z2V0LXBvcHVwLW5vdC1hbGxvd2VkLmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgewor
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91bGRMb2dEb3du
bG9hZENhbGxiYWNrcyh0cnVlKTsKKyAgdGVzdFJ1bm5lci53YWl0VW50aWxEb3dubG9hZEZpbmlz
aGVkKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhlIHN1Z2dlc3RlZCBm
aWxlbmFtZSBhYm92ZSBzaG91bGQgYmUgImFiZS5wbmciIGFuZCB0aGUgZG93bmxvYWQgc2hvdWxk
IHN1Y2NlZWQuPC9wPgorPGEgaWQ9ImJsb2ItdXJsIiBkb3dubG9hZD0iYWJlLnBuZyIgdGFyZ2V0
PSJfYmxhbmsiPkZpbGUgYmFja2VkIGJsb2IgVVJMPC9hPgorPHNjcmlwdD4KK2Z1bmN0aW9uIGNs
aWNrKGVsbXQpCit7CisgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgYWxl
cnQoJ0NsaWNrIHRoZSBsaW5rIHRvIHJ1biB0aGUgdGVzdC4nKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhlbG10Lm9mZnNldExlZnQgKyA1LCBl
bG10Lm9mZnNldFRvcCArIDUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2
ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgZmls
ZSA9IGludGVybmFscy5jcmVhdGVGaWxlKCIuLi9yZXNvdXJjZXMvYWJlLnBuZyIpOworICAgIHZh
ciBsaW5rID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsb2ItdXJsIik7CisgICAgbGluay5o
cmVmID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSk7CisgICAgY2xpY2sobGluayk7
Cit9CitydW5UZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZG93bmxvYWQvYW5jaG9yLWxvYWQtYWZ0ZXItZG93bmxv
YWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZG93bmxvYWQvYW5jaG9yLWxvYWQtYWZ0
ZXItZG93bmxvYWQuaHRtbAppbmRleCBlZDc3NmQ1NGI2N2JiYzEzMjY1ODBhMWIzNTNiM2YzYjlh
MjU3ODhkLi4yMzRkNThkMmUzNmIxOGRhODE3ZTNkMWQwZTZjNWY0NzIwM2IyZGQzIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Rvd25sb2FkL2FuY2hvci1sb2FkLWFmdGVyLWRv
d25sb2FkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kb3dubG9hZC9hbmNob3It
bG9hZC1hZnRlci1kb3dubG9hZC5odG1sCkBAIC00LDYgKzQsNyBAQAogPHNjcmlwdD4KIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgewogICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgdGVzdFJ1
bm5lci5zZXRDYW5PcGVuV2luZG93cygpOwogICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsK
IH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJz
L3NlcnZpY2UvcmVzb3VyY2VzL3JlZ2lzdHJhdGlvbi10YXNrLXF1ZXVlLXNjaGVkdWxpbmctMS5q
cyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9yZWdp
c3RyYXRpb24tdGFzay1xdWV1ZS1zY2hlZHVsaW5nLTEuanMKaW5kZXggOWQ5MzQ5MjdlZTM4Mzhm
YTIxYmY5YzFhMGMxMWRiMGJiNWQ4NjM3ZC4uNDQwYjM4ZWRkNDRkY2ZhYjU4MWI3OGYyNDM2ODQ0
OWU4MGMxM2E1NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3Nl
cnZpY2UvcmVzb3VyY2VzL3JlZ2lzdHJhdGlvbi10YXNrLXF1ZXVlLXNjaGVkdWxpbmctMS5qcwor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvcmVn
aXN0cmF0aW9uLXRhc2stcXVldWUtc2NoZWR1bGluZy0xLmpzCkBAIC0xLDYgKzEsOSBAQAogLy8g
VGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCB0d28gZGlmZmVyZW50IHdpbmRvd3MgZnJvbSB0d28g
ZGlmZmVyZW50IGRvbWFpbnMgd2hvIHNwYW0gU1cgcmVnaXN0cmF0aW9ucyBnZXQgcmVzcG9uc2Vz
IGludGVydHdpbmVkIHdpdGggZWFjaCBvdGhlcgogLy8gYXMgZWFjaCByZWdpc3RyYXRpb24gc2hv
dWxkIG9wZXJhdGUgb24gaXRzIG93biB0YXNrIHF1ZXVlLgogCitpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2luZG93cygpOworCiBpZiAobG9jYXRpb24u
aG9zdG5hbWUgIT0gIjEyNy4wLjAuMSIpCiAgICAgYWxlcnQoIlRoaXMgdGVzdCBtdXN0IGJlIGlu
aXRpYXRlZCBmcm9tIHRoZSBob3N0bmFtZSAxMjcuMC4wLjEiKTsKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDg3ODJkNDJmNzc5Yzg4MTg3
NDRjNjRkOGFmMzRjMmVjMGI2ZTJiM2QuLjQ0NTJhYjFjMjk3MDFhMGI4M2NhOWU3NWMyYjk0ODg2
MjMxMzg2NDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3Rh
dGlvbnMKQEAgLTMwOCw2ICszMDgsNyBAQCB3ZWJraXQub3JnL2IvMTU2MDY5IGZhc3QvZG9tL0hU
TUxBbmNob3JFbGVtZW50L2FuY2hvci1kb3dubG9hZC1zeW50aGV0aWMtY2xpY2suaAogd2Via2l0
Lm9yZy9iLzE1NjA2OSBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZG93bmxvYWQt
dXNlci10cmlnZ2VyZWQtc3ludGhldGljLWNsaWNrLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcv
Yi8xNTYwNjkgZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3du
bG9hZC5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTU2MDY5IGZhc3QvZG9tL0hUTUxBbmNo
b3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtYmxhbmstdGFyZ2V0Lmh0bWwgWyBT
a2lwIF0KK3dlYmtpdC5vcmcvYi8xNTYwNjkgZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5j
aG9yLWZpbGUtYmxvYi1kb3dubG9hZC1ibGFuay10YXJnZXQtcG9wdXAtbm90LWFsbG93ZWQuaHRt
bCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE1NjA2OSBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVu
dC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVzLWJhY2tzbGFzaC5odG1sIFsgU2tp
cCBdCiB3ZWJraXQub3JnL2IvMTU2MDY5IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hv
ci1maWxlLWJsb2ItZG93bmxvYWQtaW5jbHVkZXMtZG91YmxlcXVvdGUuaHRtbCBbIFNraXAgXQog
d2Via2l0Lm9yZy9iLzE1NjA2OSBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmls
ZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVzLXNsYXNoZXMuaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwY2NmMWE1NTE4NTI5MDY4ZGFm
NTE3MDFjMzdkOThhM2NjNzE2NzllLi4wNmUwOTE3YmI3MzZkMTkwYWUyMjQ1NzY3YzkzZjcyZTVh
OGYxNGRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwpAQCAt
NDU2LDYgKzQ1Niw3IEBAIGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1kb3dubG9h
ZC1zeW50aGV0aWMtY2xpY2suaHRtbCBbIFNraXAgXQogZmFzdC9kb20vSFRNTEFuY2hvckVsZW1l
bnQvYW5jaG9yLWRvd25sb2FkLXVzZXItdHJpZ2dlcmVkLXN5bnRoZXRpYy1jbGljay5odG1sIFsg
U2tpcCBdCiBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25s
b2FkLmh0bWwgWyBTa2lwIF0KIGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxl
LWJsb2ItZG93bmxvYWQtYmxhbmstdGFyZ2V0Lmh0bWwgWyBTa2lwIF0KK2Zhc3QvZG9tL0hUTUxB
bmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtYmxhbmstdGFyZ2V0LXBvcHVw
LW5vdC1hbGxvd2VkLmh0bWwgWyBTa2lwIF0KIGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2Fu
Y2hvci1maWxlLWJsb2ItZG93bmxvYWQtaW5jbHVkZXMtYmFja3NsYXNoLmh0bWwgWyBTa2lwIF0K
IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtaW5j
bHVkZXMtZG91YmxlcXVvdGUuaHRtbCBbIFNraXAgXQogZmFzdC9kb20vSFRNTEFuY2hvckVsZW1l
bnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1pbmNsdWRlcy1zbGFzaGVzLmh0bWwgWyBTa2lw
IF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351903</attachid>
            <date>2018-10-09 13:07:56 -0700</date>
            <delta_ts>2018-10-09 14:14:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190408-20181009130755.patch</filename>
            <type>text/plain</type>
            <size>22996</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2OTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzU3NTE0ZTQzODgzYzMw
Yjc5NGEyYjczMmY2YjU4ZDliOGUyNjAxNC4uYzVhNDA0ZjUxN2ViOGViMmZhNDk2Mjc0ZGFhYTBj
ZTRmMmVhYTBiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE4LTEwLTA5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQW5jaG9yIHRhcmdldCBzaG91
bGQgYmUgaWdub3JlZCBvbiBhY3RpdmF0aW9uIHdoZW4gdGhlIGRvd25sb2FkIGF0dHJpYnV0ZSBp
cyBzZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5
MDQwOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFu
Y2hvciB0YXJnZXQgc2hvdWxkIGJlIGlnbm9yZWQgb24gYWN0aXZhdGlvbiB3aGVuIHRoZSBkb3du
bG9hZCBhdHRyaWJ1dGUgaXMgc2V0OgorICAgICAgICAtIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3
Zy5vcmcvI3RoZS1hLWVsZW1lbnQ6ZG93bmxvYWRpbmctaHlwZXJsaW5rcy0yCisKKyAgICAgICAg
V2hlbiB0aGUgZG93bmxvYWQgYXR0cmlidXRlIGlzIHNldCwgd2Ugc2hvdWxkIHVzZSB0aGUgImRv
d25sb2FkIHRoZSBoeXBlcmxpbmsiIGFsZ29yaXRobSBbMV0KKyAgICAgICAgaW5zdGVhZCBvZiB0
aGUgImZvbGxvdyB0aGUgaHlwZXJsaW5rIiBbMl0gYWxnb3JpdGhtLgorCisgICAgICAgIE5vdGUg
dGhhdCB0aGUgImRvd25sb2FkIHRoZSBoeXBlcmxpbmsiIHRyaWdnZXJzIGEgZG93bmxvYWQgYW5k
IGlnbm9yZXMgdGhlIHRhcmdldCBhdHRyaWJ1dGUKKyAgICAgICAgZW50aXJlbHkuCisKKyAgICAg
ICAgVGhpcyBpcyBpbXBvcnRhbnQgYXMgYW4gYW5jaG9yIGVsZW1lbnQgd2l0aCB0YXJnZXQ9X2Js
YW5rIGFuZCB0aGUgZG93bmxvYWQgYXR0cmlidXRlIHNldCBtYXkKKyAgICAgICAgZmFpbCBiZWNh
dXNlIG9mIFNhZmFyaSdzIHBvcHVwIGJsb2NrZXIgaWYgd2UgZG8gbm90IGRpc3JlZ2FyZCB0aGUg
YW5jaG9yIHRhcmdldC4KKworICAgICAgICBbMV0gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9y
Zy8jZG93bmxvYWRpbmctaHlwZXJsaW5rcworICAgICAgICBbMl0gaHR0cHM6Ly9odG1sLnNwZWMu
d2hhdHdnLm9yZy8jZm9sbG93aW5nLWh5cGVybGlua3MtMgorCisgICAgICAgIFRlc3RzOiBmYXN0
L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWJsYW5rLWJh
c2UtdGFyZ2V0LXBvcHVwLW5vdC1hbGxvd2VkLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9t
L0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtYmxhbmstdGFyZ2V0
LXBvcHVwLW5vdC1hbGxvd2VkLmh0bWwKKworICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFVSTCk6CisKIDIwMTgtMTAt
MDkgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtQU09OXSBQ
cmV3YXJtIHN5c3RlbSBVSSBmb250CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApp
bmRleCBkZjMyZDdkM2M2MDIzNTYwMGMzYjBmY2U1MjQzNTU4MTE2ZjYzY2JlLi4xMTc5N2VmNWI3
ODc2Njc2N2U5NDZhZWNiNTFjMjdhZjIyYmZhZTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAKQEAgLTEzMjIsNyArMTMyMiw4IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRV
UkwoRnJhbWVMb2FkUmVxdWVzdCYmIGZyYW1lTG9hZFJlcXVlc3QsIGNvbnN0IFN0cmluZyYgcmVm
CiAKICAgICBSZWY8RnJhbWU+IHByb3RlY3QobV9mcmFtZSk7CiAKLSAgICBTdHJpbmcgZnJhbWVO
YW1lID0gZnJhbWVMb2FkUmVxdWVzdC5mcmFtZU5hbWUoKTsKKyAgICAvLyBBbmNob3IgdGFyZ2V0
IGlzIGlnbm9yZWQgd2hlbiB0aGUgZG93bmxvYWQgYXR0cmlidXRlIGlzIHNldCBzaW5jZSBpdCB3
aWxsIGRvd25sb2FkIHRoZSBoeXBlcmxpbmsgcmF0aGVyIHRoYW4gZm9sbG93IGl0LgorICAgIFN0
cmluZyBlZmZlY3RpdmVGcmFtZU5hbWUgPSBmcmFtZUxvYWRSZXF1ZXN0LmRvd25sb2FkQXR0cmli
dXRlKCkuaXNOdWxsKCkgPyBmcmFtZUxvYWRSZXF1ZXN0LmZyYW1lTmFtZSgpIDogU3RyaW5nKCk7
CiAgICAgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMIGFsbG93TmF2aWdhdGlvblRvSW52YWxp
ZFVSTCA9IGZyYW1lTG9hZFJlcXVlc3QuYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMKCk7CiAg
ICAgTmV3RnJhbWVPcGVuZXJQb2xpY3kgb3BlbmVyUG9saWN5ID0gZnJhbWVMb2FkUmVxdWVzdC5u
ZXdGcmFtZU9wZW5lclBvbGljeSgpOwogICAgIExvY2tIaXN0b3J5IGxvY2tIaXN0b3J5ID0gZnJh
bWVMb2FkUmVxdWVzdC5sb2NrSGlzdG9yeSgpOwpAQCAtMTM0NSw3ICsxMzQ2LDcgQEAgdm9pZCBG
cmFtZUxvYWRlcjo6bG9hZFVSTChGcmFtZUxvYWRSZXF1ZXN0JiYgZnJhbWVMb2FkUmVxdWVzdCwg
Y29uc3QgU3RyaW5nJiByZWYKICAgICBBU1NFUlQobmV3TG9hZFR5cGUgIT0gRnJhbWVMb2FkVHlw
ZTo6U2FtZSk7CiAKICAgICAvLyBUaGUgc2VhcmNoIGZvciBhIHRhcmdldCBmcmFtZSBpcyBkb25l
IGVhcmxpZXIgaW4gdGhlIGNhc2Ugb2YgZm9ybSBzdWJtaXNzaW9uLgotICAgIEZyYW1lKiB0YXJn
ZXRGcmFtZSA9IGlzRm9ybVN1Ym1pc3Npb24gPyBudWxscHRyIDogZmluZEZyYW1lRm9yTmF2aWdh
dGlvbihmcmFtZU5hbWUpOworICAgIEZyYW1lKiB0YXJnZXRGcmFtZSA9IGlzRm9ybVN1Ym1pc3Np
b24gPyBudWxscHRyIDogZmluZEZyYW1lRm9yTmF2aWdhdGlvbihlZmZlY3RpdmVGcmFtZU5hbWUp
OwogICAgIGlmICh0YXJnZXRGcmFtZSAmJiB0YXJnZXRGcmFtZSAhPSAmbV9mcmFtZSkgewogICAg
ICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldEZyYW1lTmFtZSgiX3NlbGYiKTsKICAgICAgICAgdGFy
Z2V0RnJhbWUtPmxvYWRlcigpLmxvYWRVUkwoV1RGTW92ZShmcmFtZUxvYWRSZXF1ZXN0KSwgcmVm
ZXJyZXIsIG5ld0xvYWRUeXBlLCBldmVudCwgV1RGTW92ZShmb3JtU3RhdGUpLCBjb21wbGV0aW9u
SGFuZGxlckNhbGxlci5yZWxlYXNlKCkpOwpAQCAtMTM2MCw5ICsxMzYxLDkgQEAgdm9pZCBGcmFt
ZUxvYWRlcjo6bG9hZFVSTChGcmFtZUxvYWRSZXF1ZXN0JiYgZnJhbWVMb2FkUmVxdWVzdCwgY29u
c3QgU3RyaW5nJiByZWYKICAgICAgICAgYWN0aW9uLnNldE9wZW5lZFZpYVdpbmRvd09wZW5XaXRo
T3BlbmVyKCk7CiAgICAgYWN0aW9uLnNldEhhc09wZW5lZEZyYW1lcyghbV9vcGVuZWRGcmFtZXMu
aXNFbXB0eSgpKTsKIAotICAgIGlmICghdGFyZ2V0RnJhbWUgJiYgIWZyYW1lTmFtZS5pc0VtcHR5
KCkpIHsKKyAgICBpZiAoIXRhcmdldEZyYW1lICYmICFlZmZlY3RpdmVGcmFtZU5hbWUuaXNFbXB0
eSgpKSB7CiAgICAgICAgIGFjdGlvbiA9IGFjdGlvbi5jb3B5V2l0aFNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3koc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvQXBwbHkobV9mcmFtZSwg
ZnJhbWVMb2FkUmVxdWVzdCkpOwotICAgICAgICBwb2xpY3lDaGVja2VyKCkuY2hlY2tOZXdXaW5k
b3dQb2xpY3koV1RGTW92ZShhY3Rpb24pLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGZvcm1T
dGF0ZSksIGZyYW1lTmFtZSwgW3RoaXMsIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgb3Bl
bmVyUG9saWN5LCBjb21wbGV0aW9uSGFuZGxlciA9IGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVyLnJl
bGVhc2UoKV0gKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2Vha1B0cjxGb3JtU3Rh
dGU+JiYgZm9ybVN0YXRlLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgTmF2aWdhdGlv
bkFjdGlvbiYgYWN0aW9uLCBTaG91bGRDb250aW51ZSBzaG91bGRDb250aW51ZSkgbXV0YWJsZSB7
CisgICAgICAgIHBvbGljeUNoZWNrZXIoKS5jaGVja05ld1dpbmRvd1BvbGljeShXVEZNb3ZlKGFj
dGlvbiksIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUoZm9ybVN0YXRlKSwgZWZmZWN0aXZlRnJh
bWVOYW1lLCBbdGhpcywgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBvcGVuZXJQb2xpY3ks
IGNvbXBsZXRpb25IYW5kbGVyID0gY29tcGxldGlvbkhhbmRsZXJDYWxsZXIucmVsZWFzZSgpXSAo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWFrUHRyPEZvcm1TdGF0ZT4mJiBmb3Jt
U3RhdGUsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBh
Y3Rpb24sIFNob3VsZENvbnRpbnVlIHNob3VsZENvbnRpbnVlKSBtdXRhYmxlIHsKICAgICAgICAg
ICAgIGNvbnRpbnVlTG9hZEFmdGVyTmV3V2luZG93UG9saWN5KHJlcXVlc3QsIGZvcm1TdGF0ZS5n
ZXQoKSwgZnJhbWVOYW1lLCBhY3Rpb24sIHNob3VsZENvbnRpbnVlLCBhbGxvd05hdmlnYXRpb25U
b0ludmFsaWRVUkwsIG9wZW5lclBvbGljeSk7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cigpOwogICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCA1ZTRlMTY4OGIxZjkyMWFjZDU5ZTJiNWMwYjk4MTZjNGViNDdmYWYxLi5i
YzM0NTFhM2IyYWJmZWI4MDAzMjRmNTBmZmU4Zjc0NzBlNDcyZWU5IDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTgt
MTAtMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBbmNob3Ig
dGFyZ2V0IHNob3VsZCBiZSBpZ25vcmVkIG9uIGFjdGl2YXRpb24gd2hlbiB0aGUgZG93bmxvYWQg
YXR0cmlidXRlIGlzIHNldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTkwNDA4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVXBkYXRlIFdlYktpdFRlc3RSdW5uZXIgdG8gYmxvY2sgcG9wdXBzIGJ5IGRlZmF1
bHQgYW5kIGFkZCBzdXBwb3J0IGZvciB0ZXN0UnVubmVyLnNldENhbk9wZW5XaW5kb3dzKCkKKyAg
ICAgICAgZm9yIHRlc3RzIHRoYXQgbmVlZCBwb3B1cHMuIFRoaXMgYWxpZ25zIFdlYktpdFRlc3RS
dW5uZXIgd2l0aCBEdW1wUmVuZGVyVHJlZSBhbmQgYWxsb3dzIHRlc3RpbmcKKyAgICAgICAgcG9w
dXAgYmxvY2tpbmcuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnNl
dENhbk9wZW5XaW5kb3dzKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZSk6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0
SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRs
ZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oOgorCiAyMDE4
LTEwLTA5ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIElTT1Ry
YWNrRW5jcnlwdGlvbkJveCByZXR1cm5zIGluY29ycmVjdCBkZWZhdWx0S2V5SUQKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1
bm5lci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdz
L1Rlc3RSdW5uZXIuaWRsCmluZGV4IDI0ZDAxNmUwZWUzNTY3ZjI0NjdmNTk1MzY1MTA5M2Y3MGFk
NTgyZTEuLjFlZDRlZDRmNmU5NDdiOWJiZDQ1MzgwNTQ0NmZlNTYxY2RjZTVmNDEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1
bm5lci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5k
aW5ncy9UZXN0UnVubmVyLmlkbApAQCAtNjYsNyArNjYsNyBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5l
ciB7CiAgICAgLy8gU3BlY2lhbCBvcHRpb25zLgogICAgIHZvaWQga2VlcFdlYkhpc3RvcnkoKTsK
ICAgICB2b2lkIHNldEFjY2VwdHNFZGl0aW5nKGJvb2xlYW4gdmFsdWUpOwotICAgIHZvaWQgc2V0
Q2FuT3BlbldpbmRvd3MoYm9vbGVhbiB2YWx1ZSk7CisgICAgdm9pZCBzZXRDYW5PcGVuV2luZG93
cygpOwogICAgIHZvaWQgc2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlKGJvb2xl
YW4gdmFsdWUpOwogICAgIHZvaWQgc2V0WFNTQXVkaXRvckVuYWJsZWQoYm9vbGVhbiB2YWx1ZSk7
CiAgICAgdm9pZCBzZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyhib29sZWFuIHZh
bHVlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rl
c3RSdW5uZXIuY3BwCmluZGV4IGM4NDNiYzcyNjIxOTIyM2Y1NzRiYmYyMjlkMjU5MDdhZTNjYTg1
YTUuLjQ1YWQ2NmIzNmJkYjk2MTE5OGI1YjBkMDc5MjcxMmNjNWNmNTRiYTggMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApA
QCAtNDEwLDE1ICs0MTAsMTEgQEAgYm9vbCBUZXN0UnVubmVyOjppc0NvbW1hbmRFbmFibGVkKEpT
U3RyaW5nUmVmIG5hbWUpCiAgICAgcmV0dXJuIFdLQnVuZGxlUGFnZUlzRWRpdGluZ0NvbW1hbmRF
bmFibGVkKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgdG9XSyhu
YW1lKS5nZXQoKSk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0Q2FuT3BlbldpbmRvd3MoYm9v
bCkKLXsKLSAgICAvLyBUaGUgdGVzdCBwbHVnaW5zL2dldC11cmwtd2l0aC1ibGFuay10YXJnZXQu
aHRtbCByZXF1aXJlcyB0aGF0IHRoZSBlbWJlZGRpbmcgY2xpZW50IGZvcmJpZAotICAgIC8vIG9w
ZW5pbmcgd2luZG93cyAoYnkgb21pdHRpbmcgYSBjYWxsIHRvIHRoaXMgZnVuY3Rpb24pIHNvIGFz
IHRvIHRlc3QgdGhhdCBOUE5fR2V0VVJMKCkKLSAgICAvLyB3aXRoIGEgYmxhbmsgdGFyZ2V0IHdp
bGwgcmV0dXJuIGFuIGVycm9yLgotICAgIC8vCi0gICAgLy8gSXQgaXMgbm90IGNsZWFyIGlmIHdl
IHNob3VsZCBpbXBsZW1lbnQgdGhpcyBmdW5jdGlvbmFsaXR5IG9yIHJlbW92ZSBpdCBhbmQgcGx1
Z2lucy9nZXQtdXJsLXdpdGgtYmxhbmstdGFyZ2V0Lmh0bWwKLSAgICAvLyBwZXIgdGhlIHJlbWFy
ayBpbiA8aHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzY0NTA0L3RydW5rL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBlZD4uCi0gICAgLy8gRm9yIG5vdywganVzdCBp
Z25vcmUgdGhpcyBzZXR0aW5nLgordm9pZCBUZXN0UnVubmVyOjpzZXRDYW5PcGVuV2luZG93cygp
Cit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NzYWdlTmFtZShBZG9wdFdLLCBX
S1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU2V0Q2FuT3BlbldpbmRvd3MiKSk7CisgICAg
V0tSZXRhaW5QdHI8V0tCb29sZWFuUmVmPiBtZXNzYWdlQm9keShBZG9wdFdLLCBXS0Jvb2xlYW5D
cmVhdGUodHJ1ZSkpOworICAgIFdLQnVuZGxlUG9zdFN5bmNocm9ub3VzTWVzc2FnZShJbmplY3Rl
ZEJ1bmRsZTo6c2luZ2xldG9uKCkuYnVuZGxlKCksIG1lc3NzYWdlTmFtZS5nZXQoKSwgbWVzc2Fn
ZUJvZHkuZ2V0KCksIG51bGxwdHIpOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OnNldFhTU0F1ZGl0
b3JFbmFibGVkKGJvb2wgZW5hYmxlZCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggMTIxNWIzY2EwYmVhMTA1ZTQyZWFlOTMw
ZTJhYjBiODU3Y2NkMGMxNC4uYmEwZDZhNjU3ZDU0NWQ5ZTYzZTA0YzA2N2JiMzQwOWNkM2JhZDVh
OSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmgKQEAgLTk5LDcgKzk5LDcgQEAgcHVibGljOgogICAgIC8vIFNwZWNpYWwgb3B0aW9u
cy4KICAgICB2b2lkIGtlZXBXZWJIaXN0b3J5KCk7CiAgICAgdm9pZCBzZXRBY2NlcHRzRWRpdGlu
Zyhib29sIHZhbHVlKSB7IG1fc2hvdWxkQWxsb3dFZGl0aW5nID0gdmFsdWU7IH0KLSAgICB2b2lk
IHNldENhbk9wZW5XaW5kb3dzKGJvb2wpOworICAgIHZvaWQgc2V0Q2FuT3BlbldpbmRvd3MoKTsK
ICAgICB2b2lkIHNldENsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZShib29sIHZhbHVl
KSB7IG1fc2hvdWxkQ2xvc2VFeHRyYVdpbmRvd3MgPSB2YWx1ZTsgfQogICAgIHZvaWQgc2V0WFNT
QXVkaXRvckVuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRNb2Rlcm5NZWRpYUNvbnRyb2xzRW5h
YmxlZChib29sKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5k
ZXggNTFlMGYyMzEzMjVkNjQwYWJhMDkwZDk3NWJjNTJhNzJmYjNlYzk2Yy4uZDQxMDBmOGYzNzlk
MzljYWNlZmI4YTI5NGNlMTllNDc0OTEwZGQ0YiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5jcHAKQEAgLTI0Miw5ICsyNDIsMTcgQEAgc3RhdGljIHZvaWQgcmVxdWVz
dFBvaW50ZXJMb2NrKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKikKICAgICBXS1BhZ2VEaWRB
bGxvd1BvaW50ZXJMb2NrKHBhZ2UpOwogfQogCi1XS1BhZ2VSZWYgVGVzdENvbnRyb2xsZXI6OmNy
ZWF0ZU90aGVyUGFnZShXS1BhZ2VSZWYgb2xkUGFnZSwgV0tQYWdlQ29uZmlndXJhdGlvblJlZiBj
b25maWd1cmF0aW9uLCBXS05hdmlnYXRpb25BY3Rpb25SZWYgbmF2aWdhdGlvbkFjdGlvbiwgV0tX
aW5kb3dGZWF0dXJlc1JlZiB3aW5kb3dGZWF0dXJlcywgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykK
K1dLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJlZiwgV0tQ
YWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBXS05hdmlnYXRpb25BY3Rpb25SZWYg
bmF2aWdhdGlvbkFjdGlvbiwgV0tXaW5kb3dGZWF0dXJlc1JlZiB3aW5kb3dGZWF0dXJlcywgY29u
c3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBQbGF0Zm9ybVdlYlZpZXcqIHBhcmVudFZpZXcg
PSBzdGF0aWNfY2FzdDxQbGF0Zm9ybVdlYlZpZXcqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJ
bmZvKSk7CisgICAgcmV0dXJuIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5jcmVhdGVPdGhl
clBhZ2UocGFyZW50VmlldywgY29uZmlndXJhdGlvbiwgbmF2aWdhdGlvbkFjdGlvbiwgd2luZG93
RmVhdHVyZXMpOworfQorCitXS1BhZ2VSZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFn
ZShQbGF0Zm9ybVdlYlZpZXcqIHBhcmVudFZpZXcsIFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29u
ZmlndXJhdGlvbiwgV0tOYXZpZ2F0aW9uQWN0aW9uUmVmIG5hdmlnYXRpb25BY3Rpb24sIFdLV2lu
ZG93RmVhdHVyZXNSZWYgd2luZG93RmVhdHVyZXMpCit7CisgICAgLy8gVGhlIHRlc3QgbmVlZHMg
dG8gY2FsbCB0ZXN0UnVubmVyLnNldENhbk9wZW5XaW5kb3dzKCkgdG8gb3BlbiBuZXcgd2luZG93
cy4KKyAgICBpZiAoIW1fY3VycmVudEludm9jYXRpb24tPmNhbk9wZW5XaW5kb3dzKCkpCisgICAg
ICAgIHJldHVybiBudWxscHRyOwogCiAgICAgUGxhdGZvcm1XZWJWaWV3KiB2aWV3ID0gcGxhdGZv
cm1DcmVhdGVPdGhlclBhZ2UocGFyZW50VmlldywgY29uZmlndXJhdGlvbiwgcGFyZW50Vmlldy0+
b3B0aW9ucygpKTsKICAgICBXS1BhZ2VSZWYgbmV3UGFnZSA9IHZpZXctPnBhZ2UoKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCAwNDVjN2NmNTFkNGUwMmE5NDkx
MjZkNGJiNTNhYWY4M2MxMzYyODlmLi41YzNmZTUzZDE2NzQ2ODBkOTY2YmIyMjk0YTRlYzRlNDQ4
M2ExZWRmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC00MDAs
NiArNDAwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFVwZGF0ZUhpc3RvcnlUaXRsZShXS1N0
cmluZ1JlZiB0aXRsZSwgV0tVUkxSZWYsIFdLRnJhbWVSZWYpOwogCiAgICAgc3RhdGljIFdLUGFn
ZVJlZiBjcmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVmLCBXS1BhZ2VDb25maWd1cmF0aW9uUmVmLCBX
S05hdmlnYXRpb25BY3Rpb25SZWYsIFdLV2luZG93RmVhdHVyZXNSZWYsIGNvbnN0IHZvaWQqKTsK
KyAgICBXS1BhZ2VSZWYgY3JlYXRlT3RoZXJQYWdlKFBsYXRmb3JtV2ViVmlldyogcGFyZW50Vmll
dywgV0tQYWdlQ29uZmlndXJhdGlvblJlZiwgV0tOYXZpZ2F0aW9uQWN0aW9uUmVmLCBXS1dpbmRv
d0ZlYXR1cmVzUmVmKTsKIAogICAgIHN0YXRpYyB2b2lkIHJ1bk1vZGFsKFdLUGFnZVJlZiwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbyk7CiAgICAgc3RhdGljIHZvaWQgcnVuTW9kYWwoUGxhdGZvcm1X
ZWJWaWV3Kik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0
aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4
IGQ3ZDdmNGRkNzZiNDk4YzJiMjk0NWQ5MWE3ODhjNTlhZjRiNjJmM2IuLmM0ZGRjOTI4YTRmNTYw
YjM0MDlhYzViY2MyZTRjNzRiZTllNmM2ZGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dEludm9jYXRpb24uY3BwCkBAIC04MDIsNiArODAyLDEyIEBAIFdLUmV0YWluUHRyPFdLVHlwZVJl
Zj4gVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0
ZWRCCiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJH
ZXREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzIikpCiAgICAgICAgIHJldHVybiBXS1JldGFpblB0cjxX
S1R5cGVSZWY+KEFkb3B0V0ssIFdLQm9vbGVhbkNyZWF0ZShtX2R1bXBGcmFtZUxvYWRDYWxsYmFj
a3MpKTsKIAorICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1l
LCAiU2V0Q2FuT3BlbldpbmRvd3MiKSkgeworICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVz
c2FnZUJvZHkpID09IFdLQm9vbGVhbkdldFR5cGVJRCgpKTsKKyAgICAgICAgbV9jYW5PcGVuV2lu
ZG93cyA9IHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KFdLQm9vbGVhbkdldFZhbHVlKHN0YXRp
Y19jYXN0PFdLQm9vbGVhblJlZj4obWVzc2FnZUJvZHkpKSk7CisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIH0KKwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3Nh
Z2VOYW1lLCAiU2V0V2luZG93SXNLZXkiKSkgewogICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQo
bWVzc2FnZUJvZHkpID09IFdLQm9vbGVhbkdldFR5cGVJRCgpKTsKICAgICAgICAgV0tCb29sZWFu
UmVmIGlzS2V5VmFsdWUgPSBzdGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KG1lc3NhZ2VCb2R5KTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaAppbmRleCAzZmI0YmI3OGFhNGQ4
MmRiZjk1ZTc3NjQyYTM5YWM0MWNlZjMxYzgxLi5mZTE3ODk3NjUyNjg5MzFmYmMyMDU2YTE0Zjhk
MWYxMmJjN2Y5NjUwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oCkBA
IC04NCw2ICs4NCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFJlbW92ZUFsbFNlc3Npb25DcmVk
ZW50aWFscygpOwogICAgIAogICAgIHZvaWQgZHVtcFJlc291cmNlTG9hZFN0YXRpc3RpY3MoKTsK
KworICAgIGJvb2wgY2FuT3BlbldpbmRvd3MoKSBjb25zdCB7IHJldHVybiBtX2Nhbk9wZW5XaW5k
b3dzOyB9CiAgICAgCiBwcml2YXRlOgogICAgIFdLUmV0YWluUHRyPFdLTXV0YWJsZURpY3Rpb25h
cnlSZWY+IGNyZWF0ZVRlc3RTZXR0aW5nc0RpY3Rpb25hcnkoKTsKQEAgLTEzMiw2ICsxMzQsNyBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9kdW1wUGl4ZWxzIHsgZmFsc2UgfTsKICAgICBib29sIG1f
cGl4ZWxSZXN1bHRJc1BlbmRpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zaG91bGREdW1wUmVz
b3VyY2VMb2FkU3RhdGlzdGljcyB7IGZhbHNlIH07CisgICAgYm9vbCBtX2Nhbk9wZW5XaW5kb3dz
IHsgZmFsc2UgfTsKICAgICBXaGF0VG9EdW1wIG1fd2hhdFRvRHVtcCB7IFdoYXRUb0R1bXA6OlJl
bmRlclRyZWUgfTsKIAogICAgIFN0cmluZ0J1aWxkZXIgbV90ZXh0T3V0cHV0OwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDEx
NGJkNmUyZWRiNzNkZDg5NTZmYWM3MGI3Y2YxNGNjOWJiYzNhZjQuLmFmMDRmNTYzNjIxZDE0NWRi
YmExMWFkZjBkM2MzODdmMGQyYzdjYTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxOC0xMC0w
OSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFuY2hvciB0YXJn
ZXQgc2hvdWxkIGJlIGlnbm9yZWQgb24gYWN0aXZhdGlvbiB3aGVuIHRoZSBkb3dubG9hZCBhdHRy
aWJ1dGUgaXMgc2V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTA0MDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxv
YWQtYmxhbmstYmFzZS10YXJnZXQtcG9wdXAtbm90LWFsbG93ZWQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9i
LWRvd25sb2FkLWJsYW5rLWJhc2UtdGFyZ2V0LXBvcHVwLW5vdC1hbGxvd2VkLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2It
ZG93bmxvYWQtYmxhbmstdGFyZ2V0LXBvcHVwLW5vdC1hbGxvd2VkLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxv
Yi1kb3dubG9hZC1ibGFuay10YXJnZXQtcG9wdXAtbm90LWFsbG93ZWQuaHRtbDogQWRkZWQuCisg
ICAgICAgIEFkZCBsYXlvdXQgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIGh0dHAvdGVzdHMv
ZG93bmxvYWQvYW5jaG9yLWxvYWQtYWZ0ZXItZG93bmxvYWQuaHRtbDoKKyAgICAgICAgKiBodHRw
L3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvcmVnaXN0cmF0aW9uLXRhc2stcXVldWUt
c2NoZWR1bGluZy0xLmpzOgorICAgICAgICBVcGRhdGUgZXhpc3RpbmcgV0syLW9ubHkgbGF5b3V0
IHRlc3RzIHRvIGNhbGwgdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2luZG93cygpIHNpbmNlIHRoZXkg
cmVseSBvbgorICAgICAgICBvcGVuaW5nIGEgbmV3IHdpbmRvdy4gV2UgZmFpbGVkIHRvIG5vdGlj
ZSB0aGUgaXNzdWUgYmVjYXVzZSB0aGVzZSB0ZXN0cyBhcmUgbm90IHJ1biBvbiBXSzEuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxh
dGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgIFNraXAgbmV3IHRlc3RzIG9uIFdl
YktpdDEgc2luY2UgdGhlIGRvd25sb2FkIGF0dHJpYnV0ZSBpcyBvbmx5IHN1cHBvcnRlZCBvbiBX
ZWJLaXQyLgorCiAyMDE4LTEwLTA5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgUkVHUkVTU0lPTiAoU2FmYXJpIDEyKTogRG93bmxvYWQgb2YgQmxvYiBVUkwgZmFp
bHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2Fu
Y2hvci1maWxlLWJsb2ItZG93bmxvYWQtYmxhbmstYmFzZS10YXJnZXQtcG9wdXAtbm90LWFsbG93
ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQv
YW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1ibGFuay1iYXNlLXRhcmdldC1wb3B1cC1ub3QtYWxs
b3dlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGEwZTVmZmMwY2ZmNzQ1MjZmYjQxMjYyMDEx
YjIwOTA5NDY5ZDg1NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hU
TUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtYmxhbmstYmFzZS10YXJn
ZXQtcG9wdXAtbm90LWFsbG93ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorRG93bmxv
YWQgc3RhcnRlZC4KK0Rvd25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSAiYWJl
LnBuZyIKK0Rvd25sb2FkIGNvbXBsZXRlZC4KK1RoZSBzdWdnZXN0ZWQgZmlsZW5hbWUgYWJvdmUg
c2hvdWxkIGJlICJhYmUucG5nIiBhbmQgdGhlIGRvd25sb2FkIHNob3VsZCBzdWNjZWVkLgorCitG
aWxlIGJhY2tlZCBibG9iIFVSTApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1ibGFuay1iYXNlLXRhcmdl
dC1wb3B1cC1ub3QtYWxsb3dlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFuY2hv
ckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1ibGFuay1iYXNlLXRhcmdldC1wb3B1
cC1ub3QtYWxsb3dlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4YzAyNDgwODFiNWRhYWEzMDRiYzkzYjky
ZGQ1ZDI2M2E4NTg5NmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWJsYW5rLWJhc2UtdGFy
Z2V0LXBvcHVwLW5vdC1hbGxvd2VkLmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPGJhc2UgdGFyZ2V0PSJfYmxhbmsiPgorPHNjcmlwdD4KK2lm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeworICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgdGVz
dFJ1bm5lci5zZXRTaG91bGRMb2dEb3dubG9hZENhbGxiYWNrcyh0cnVlKTsKKyAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb3dubG9hZEZpbmlzaGVkKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHA+VGhlIHN1Z2dlc3RlZCBmaWxlbmFtZSBhYm92ZSBzaG91bGQgYmUgImFiZS5wbmci
IGFuZCB0aGUgZG93bmxvYWQgc2hvdWxkIHN1Y2NlZWQuPC9wPgorPGEgaWQ9ImJsb2ItdXJsIiBk
b3dubG9hZD0iYWJlLnBuZyIgdGFyZ2V0PSJfYmxhbmsiPkZpbGUgYmFja2VkIGJsb2IgVVJMPC9h
PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGNsaWNrKGVsbXQpCit7CisgICAgaWYgKCF3aW5kb3cuZXZl
bnRTZW5kZXIpIHsKKyAgICAgICAgYWxlcnQoJ0NsaWNrIHRoZSBsaW5rIHRvIHJ1biB0aGUgdGVz
dC4nKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVU
byhlbG10Lm9mZnNldExlZnQgKyA1LCBlbG10Lm9mZnNldFRvcCArIDUpOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30KKworZnVuY3Rp
b24gcnVuVGVzdCgpCit7CisgICAgZmlsZSA9IGludGVybmFscy5jcmVhdGVGaWxlKCIuLi9yZXNv
dXJjZXMvYWJlLnBuZyIpOworICAgIHZhciBsaW5rID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImJsb2ItdXJsIik7CisgICAgbGluay5ocmVmID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwo
ZmlsZSk7CisgICAgY2xpY2sobGluayk7Cit9CitydW5UZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JF
bGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtYmxhbmstdGFyZ2V0LXBvcHVwLW5vdC1h
bGxvd2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVt
ZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtYmxhbmstdGFyZ2V0LXBvcHVwLW5vdC1hbGxv
d2VkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YTBlNWZmYzBjZmY3NDUyNmZiNDEyNjIwMTFi
MjA5MDk0NjlkODU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1ibGFuay10YXJnZXQtcG9w
dXAtbm90LWFsbG93ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorRG93bmxvYWQgc3Rh
cnRlZC4KK0Rvd25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSAiYWJlLnBuZyIK
K0Rvd25sb2FkIGNvbXBsZXRlZC4KK1RoZSBzdWdnZXN0ZWQgZmlsZW5hbWUgYWJvdmUgc2hvdWxk
IGJlICJhYmUucG5nIiBhbmQgdGhlIGRvd25sb2FkIHNob3VsZCBzdWNjZWVkLgorCitGaWxlIGJh
Y2tlZCBibG9iIFVSTApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFuY2hv
ckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1ibGFuay10YXJnZXQtcG9wdXAtbm90
LWFsbG93ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2Fu
Y2hvci1maWxlLWJsb2ItZG93bmxvYWQtYmxhbmstdGFyZ2V0LXBvcHVwLW5vdC1hbGxvd2VkLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGFlYmQwZmEwZTM2MzRmMzIxYTMzMjYxZmRlN2M3MTUxMjkwZGNjNAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50
L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtYmxhbmstdGFyZ2V0LXBvcHVwLW5vdC1hbGxvd2Vk
Lmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91bGRMb2dEb3dubG9hZENhbGxiYWNrcyh0cnVlKTsK
KyAgdGVzdFJ1bm5lci53YWl0VW50aWxEb3dubG9hZEZpbmlzaGVkKCk7Cit9Cis8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHA+VGhlIHN1Z2dlc3RlZCBmaWxlbmFtZSBhYm92ZSBzaG91bGQg
YmUgImFiZS5wbmciIGFuZCB0aGUgZG93bmxvYWQgc2hvdWxkIHN1Y2NlZWQuPC9wPgorPGEgaWQ9
ImJsb2ItdXJsIiBkb3dubG9hZD0iYWJlLnBuZyIgdGFyZ2V0PSJfYmxhbmsiPkZpbGUgYmFja2Vk
IGJsb2IgVVJMPC9hPgorPHNjcmlwdD4KK2Z1bmN0aW9uIGNsaWNrKGVsbXQpCit7CisgICAgaWYg
KCF3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgYWxlcnQoJ0NsaWNrIHRoZSBsaW5rIHRv
IHJ1biB0aGUgdGVzdC4nKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBldmVudFNlbmRl
ci5tb3VzZU1vdmVUbyhlbG10Lm9mZnNldExlZnQgKyA1LCBlbG10Lm9mZnNldFRvcCArIDUpOwor
ICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsK
K30KKworZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgZmlsZSA9IGludGVybmFscy5jcmVhdGVG
aWxlKCIuLi9yZXNvdXJjZXMvYWJlLnBuZyIpOworICAgIHZhciBsaW5rID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImJsb2ItdXJsIik7CisgICAgbGluay5ocmVmID0gd2luZG93LlVSTC5jcmVh
dGVPYmplY3RVUkwoZmlsZSk7CisgICAgY2xpY2sobGluayk7Cit9CitydW5UZXN0KCk7Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvZG93bmxvYWQvYW5jaG9yLWxvYWQtYWZ0ZXItZG93bmxvYWQuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvZG93bmxvYWQvYW5jaG9yLWxvYWQtYWZ0ZXItZG93bmxvYWQuaHRtbAppbmRl
eCBlZDc3NmQ1NGI2N2JiYzEzMjY1ODBhMWIzNTNiM2YzYjlhMjU3ODhkLi4yMzRkNThkMmUzNmIx
OGRhODE3ZTNkMWQwZTZjNWY0NzIwM2IyZGQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2Rvd25sb2FkL2FuY2hvci1sb2FkLWFmdGVyLWRvd25sb2FkLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9kb3dubG9hZC9hbmNob3ItbG9hZC1hZnRlci1kb3dubG9hZC5o
dG1sCkBAIC00LDYgKzQsNyBAQAogPHNjcmlwdD4KIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewog
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2luZG93
cygpOwogICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3Jl
Z2lzdHJhdGlvbi10YXNrLXF1ZXVlLXNjaGVkdWxpbmctMS5qcyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9yZWdpc3RyYXRpb24tdGFzay1xdWV1ZS1z
Y2hlZHVsaW5nLTEuanMKaW5kZXggOWQ5MzQ5MjdlZTM4MzhmYTIxYmY5YzFhMGMxMWRiMGJiNWQ4
NjM3ZC4uNDQwYjM4ZWRkNDRkY2ZhYjU4MWI3OGYyNDM2ODQ0OWU4MGMxM2E1NSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3JlZ2lz
dHJhdGlvbi10YXNrLXF1ZXVlLXNjaGVkdWxpbmctMS5qcworKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvcmVnaXN0cmF0aW9uLXRhc2stcXVldWUt
c2NoZWR1bGluZy0xLmpzCkBAIC0xLDYgKzEsOSBAQAogLy8gVGhpcyB0ZXN0IG1ha2VzIHN1cmUg
dGhhdCB0d28gZGlmZmVyZW50IHdpbmRvd3MgZnJvbSB0d28gZGlmZmVyZW50IGRvbWFpbnMgd2hv
IHNwYW0gU1cgcmVnaXN0cmF0aW9ucyBnZXQgcmVzcG9uc2VzIGludGVydHdpbmVkIHdpdGggZWFj
aCBvdGhlcgogLy8gYXMgZWFjaCByZWdpc3RyYXRpb24gc2hvdWxkIG9wZXJhdGUgb24gaXRzIG93
biB0YXNrIHF1ZXVlLgogCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5z
ZXRDYW5PcGVuV2luZG93cygpOworCiBpZiAobG9jYXRpb24uaG9zdG5hbWUgIT0gIjEyNy4wLjAu
MSIpCiAgICAgYWxlcnQoIlRoaXMgdGVzdCBtdXN0IGJlIGluaXRpYXRlZCBmcm9tIHRoZSBob3N0
bmFtZSAxMjcuMC4wLjEiKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IDg3ODJkNDJmNzc5Yzg4MTg3NDRjNjRkOGFmMzRjMmVjMGI2ZTJi
M2QuLjZjNGJkZmI3NTFmMzgyYzhjMTIwN2Y5YmQzMWM3ZDk0MmVlNTE4M2YgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTMwNyw3ICszMDcs
OSBAQCB3ZWJraXQub3JnL2IvMTU2MDY5IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hv
ci1kb3dubG9hZC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTU2MDY5IGZhc3QvZG9t
L0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1kb3dubG9hZC1zeW50aGV0aWMtY2xpY2suaHRtbCBb
IFNraXAgXQogd2Via2l0Lm9yZy9iLzE1NjA2OSBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9h
bmNob3ItZG93bmxvYWQtdXNlci10cmlnZ2VyZWQtc3ludGhldGljLWNsaWNrLmh0bWwgWyBTa2lw
IF0KIHdlYmtpdC5vcmcvYi8xNTYwNjkgZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9y
LWZpbGUtYmxvYi1kb3dubG9hZC5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTU2MDY5IGZh
c3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtYmxhbmst
YmFzZS10YXJnZXQtcG9wdXAtbm90LWFsbG93ZWQuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9i
LzE1NjA2OSBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25s
b2FkLWJsYW5rLXRhcmdldC5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTU2MDY5IGZhc3Qv
ZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtYmxhbmstdGFy
Z2V0LXBvcHVwLW5vdC1hbGxvd2VkLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNTYwNjkg
ZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1pbmNs
dWRlcy1iYWNrc2xhc2guaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE1NjA2OSBmYXN0L2Rv
bS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVzLWRv
dWJsZXF1b3RlLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNTYwNjkgZmFzdC9kb20vSFRN
TEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1pbmNsdWRlcy1zbGFzaGVz
Lmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0
RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMK
aW5kZXggMGNjZjFhNTUxODUyOTA2OGRhZjUxNzAxYzM3ZDk4YTNjYzcxNjc5ZS4uNTViZDEyNGJh
ZWZiYzA4MDMzMDdiNDJlOTYzODRjYzEyNmJmZWFiYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ1NSw3ICs0NTUsOSBAQCBmYXN0L2RvbS9IVE1MQW5j
aG9yRWxlbWVudC9hbmNob3ItZG93bmxvYWQtdW5zZXQuaHRtbCBbIFNraXAgXQogZmFzdC9kb20v
SFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWRvd25sb2FkLXN5bnRoZXRpYy1jbGljay5odG1sIFsg
U2tpcCBdCiBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZG93bmxvYWQtdXNlci10
cmlnZ2VyZWQtc3ludGhldGljLWNsaWNrLmh0bWwgWyBTa2lwIF0KIGZhc3QvZG9tL0hUTUxBbmNo
b3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQuaHRtbCBbIFNraXAgXQorZmFzdC9k
b20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1ibGFuay1iYXNl
LXRhcmdldC1wb3B1cC1ub3QtYWxsb3dlZC5odG1sIFsgU2tpcCBdCiBmYXN0L2RvbS9IVE1MQW5j
aG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWJsYW5rLXRhcmdldC5odG1sIFsg
U2tpcCBdCitmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25s
b2FkLWJsYW5rLXRhcmdldC1wb3B1cC1ub3QtYWxsb3dlZC5odG1sIFsgU2tpcCBdCiBmYXN0L2Rv
bS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVzLWJh
Y2tzbGFzaC5odG1sIFsgU2tpcCBdCiBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3It
ZmlsZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVzLWRvdWJsZXF1b3RlLmh0bWwgWyBTa2lwIF0KIGZh
c3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtaW5jbHVk
ZXMtc2xhc2hlcy5odG1sIFsgU2tpcCBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351916</attachid>
            <date>2018-10-09 14:14:52 -0700</date>
            <delta_ts>2018-10-09 16:21:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190408-20181009141451.patch</filename>
            <type>text/plain</type>
            <size>24525</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2OTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjJiNTdjZTNjMTI4MDg5
MTJmMGVjOGY2OGZiNjAwMTU4NTY3MjQwNC4uYTYyNWZkNDIwMTU4NTEwZDgyNmQwNDY4MGI1ZjFj
N2I0ODU3OTQ0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE4LTEwLTA5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQW5jaG9yIHRhcmdldCBzaG91
bGQgYmUgaWdub3JlZCBvbiBhY3RpdmF0aW9uIHdoZW4gdGhlIGRvd25sb2FkIGF0dHJpYnV0ZSBp
cyBzZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5
MDQwOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFu
Y2hvciB0YXJnZXQgc2hvdWxkIGJlIGlnbm9yZWQgb24gYWN0aXZhdGlvbiB3aGVuIHRoZSBkb3du
bG9hZCBhdHRyaWJ1dGUgaXMgc2V0OgorICAgICAgICAtIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3
Zy5vcmcvI3RoZS1hLWVsZW1lbnQ6ZG93bmxvYWRpbmctaHlwZXJsaW5rcy0yCisKKyAgICAgICAg
V2hlbiB0aGUgZG93bmxvYWQgYXR0cmlidXRlIGlzIHNldCwgd2Ugc2hvdWxkIHVzZSB0aGUgImRv
d25sb2FkIHRoZSBoeXBlcmxpbmsiIGFsZ29yaXRobSBbMV0KKyAgICAgICAgaW5zdGVhZCBvZiB0
aGUgImZvbGxvdyB0aGUgaHlwZXJsaW5rIiBbMl0gYWxnb3JpdGhtLgorCisgICAgICAgIE5vdGUg
dGhhdCB0aGUgImRvd25sb2FkIHRoZSBoeXBlcmxpbmsiIHRyaWdnZXJzIGEgZG93bmxvYWQgYW5k
IGlnbm9yZXMgdGhlIHRhcmdldCBhdHRyaWJ1dGUKKyAgICAgICAgZW50aXJlbHkuCisKKyAgICAg
ICAgVGhpcyBpcyBpbXBvcnRhbnQgYXMgYW4gYW5jaG9yIGVsZW1lbnQgd2l0aCB0YXJnZXQ9X2Js
YW5rIGFuZCB0aGUgZG93bmxvYWQgYXR0cmlidXRlIHNldCBtYXkKKyAgICAgICAgZmFpbCBiZWNh
dXNlIG9mIFNhZmFyaSdzIHBvcHVwIGJsb2NrZXIgaWYgd2UgZG8gbm90IGRpc3JlZ2FyZCB0aGUg
YW5jaG9yIHRhcmdldC4KKworICAgICAgICBbMV0gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9y
Zy8jZG93bmxvYWRpbmctaHlwZXJsaW5rcworICAgICAgICBbMl0gaHR0cHM6Ly9odG1sLnNwZWMu
d2hhdHdnLm9yZy8jZm9sbG93aW5nLWh5cGVybGlua3MtMgorCisgICAgICAgIFRlc3RzOiBmYXN0
L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWJsYW5rLWJh
c2UtdGFyZ2V0LXBvcHVwLW5vdC1hbGxvd2VkLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9t
L0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtYmxhbmstdGFyZ2V0
LXBvcHVwLW5vdC1hbGxvd2VkLmh0bWwKKworICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFVSTCk6CisKIDIwMTgtMTAt
MDkgIE9yaW9sIEJydWZhdSAgPG9icnVmYXVAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXNvbHZl
IGluc2V0IHByb3BlcnRpZXMgdG8gY29tcHV0ZWQgc3R5bGUgd2hlbiB0aGVyZSBpcyBvdmVyY29u
c3RyYWludG1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IGRmMzJk
N2QzYzYwMjM1NjAwYzNiMGZjZTUyNDM1NTgxMTZmNjNjYmUuLjExNzk3ZWY1Yjc4NzY2NzY3ZTk0
NmFlY2I1MWMyN2FmMjJiZmFlMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cApAQCAtMTMyMiw3ICsxMzIyLDggQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFVSTChGcmFtZUxv
YWRSZXF1ZXN0JiYgZnJhbWVMb2FkUmVxdWVzdCwgY29uc3QgU3RyaW5nJiByZWYKIAogICAgIFJl
ZjxGcmFtZT4gcHJvdGVjdChtX2ZyYW1lKTsKIAotICAgIFN0cmluZyBmcmFtZU5hbWUgPSBmcmFt
ZUxvYWRSZXF1ZXN0LmZyYW1lTmFtZSgpOworICAgIC8vIEFuY2hvciB0YXJnZXQgaXMgaWdub3Jl
ZCB3aGVuIHRoZSBkb3dubG9hZCBhdHRyaWJ1dGUgaXMgc2V0IHNpbmNlIGl0IHdpbGwgZG93bmxv
YWQgdGhlIGh5cGVybGluayByYXRoZXIgdGhhbiBmb2xsb3cgaXQuCisgICAgU3RyaW5nIGVmZmVj
dGl2ZUZyYW1lTmFtZSA9IGZyYW1lTG9hZFJlcXVlc3QuZG93bmxvYWRBdHRyaWJ1dGUoKS5pc051
bGwoKSA/IGZyYW1lTG9hZFJlcXVlc3QuZnJhbWVOYW1lKCkgOiBTdHJpbmcoKTsKICAgICBBbGxv
d05hdmlnYXRpb25Ub0ludmFsaWRVUkwgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMID0gZnJh
bWVMb2FkUmVxdWVzdC5hbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwoKTsKICAgICBOZXdGcmFt
ZU9wZW5lclBvbGljeSBvcGVuZXJQb2xpY3kgPSBmcmFtZUxvYWRSZXF1ZXN0Lm5ld0ZyYW1lT3Bl
bmVyUG9saWN5KCk7CiAgICAgTG9ja0hpc3RvcnkgbG9ja0hpc3RvcnkgPSBmcmFtZUxvYWRSZXF1
ZXN0LmxvY2tIaXN0b3J5KCk7CkBAIC0xMzQ1LDcgKzEzNDYsNyBAQCB2b2lkIEZyYW1lTG9hZGVy
Ojpsb2FkVVJMKEZyYW1lTG9hZFJlcXVlc3QmJiBmcmFtZUxvYWRSZXF1ZXN0LCBjb25zdCBTdHJp
bmcmIHJlZgogICAgIEFTU0VSVChuZXdMb2FkVHlwZSAhPSBGcmFtZUxvYWRUeXBlOjpTYW1lKTsK
IAogICAgIC8vIFRoZSBzZWFyY2ggZm9yIGEgdGFyZ2V0IGZyYW1lIGlzIGRvbmUgZWFybGllciBp
biB0aGUgY2FzZSBvZiBmb3JtIHN1Ym1pc3Npb24uCi0gICAgRnJhbWUqIHRhcmdldEZyYW1lID0g
aXNGb3JtU3VibWlzc2lvbiA/IG51bGxwdHIgOiBmaW5kRnJhbWVGb3JOYXZpZ2F0aW9uKGZyYW1l
TmFtZSk7CisgICAgRnJhbWUqIHRhcmdldEZyYW1lID0gaXNGb3JtU3VibWlzc2lvbiA/IG51bGxw
dHIgOiBmaW5kRnJhbWVGb3JOYXZpZ2F0aW9uKGVmZmVjdGl2ZUZyYW1lTmFtZSk7CiAgICAgaWYg
KHRhcmdldEZyYW1lICYmIHRhcmdldEZyYW1lICE9ICZtX2ZyYW1lKSB7CiAgICAgICAgIGZyYW1l
TG9hZFJlcXVlc3Quc2V0RnJhbWVOYW1lKCJfc2VsZiIpOwogICAgICAgICB0YXJnZXRGcmFtZS0+
bG9hZGVyKCkubG9hZFVSTChXVEZNb3ZlKGZyYW1lTG9hZFJlcXVlc3QpLCByZWZlcnJlciwgbmV3
TG9hZFR5cGUsIGV2ZW50LCBXVEZNb3ZlKGZvcm1TdGF0ZSksIGNvbXBsZXRpb25IYW5kbGVyQ2Fs
bGVyLnJlbGVhc2UoKSk7CkBAIC0xMzYwLDkgKzEzNjEsOSBAQCB2b2lkIEZyYW1lTG9hZGVyOjps
b2FkVVJMKEZyYW1lTG9hZFJlcXVlc3QmJiBmcmFtZUxvYWRSZXF1ZXN0LCBjb25zdCBTdHJpbmcm
IHJlZgogICAgICAgICBhY3Rpb24uc2V0T3BlbmVkVmlhV2luZG93T3BlbldpdGhPcGVuZXIoKTsK
ICAgICBhY3Rpb24uc2V0SGFzT3BlbmVkRnJhbWVzKCFtX29wZW5lZEZyYW1lcy5pc0VtcHR5KCkp
OwogCi0gICAgaWYgKCF0YXJnZXRGcmFtZSAmJiAhZnJhbWVOYW1lLmlzRW1wdHkoKSkgeworICAg
IGlmICghdGFyZ2V0RnJhbWUgJiYgIWVmZmVjdGl2ZUZyYW1lTmFtZS5pc0VtcHR5KCkpIHsKICAg
ICAgICAgYWN0aW9uID0gYWN0aW9uLmNvcHlXaXRoU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eShzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9BcHBseShtX2ZyYW1lLCBmcmFtZUxvYWRS
ZXF1ZXN0KSk7Ci0gICAgICAgIHBvbGljeUNoZWNrZXIoKS5jaGVja05ld1dpbmRvd1BvbGljeShX
VEZNb3ZlKGFjdGlvbiksIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUoZm9ybVN0YXRlKSwgZnJh
bWVOYW1lLCBbdGhpcywgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBvcGVuZXJQb2xpY3ks
IGNvbXBsZXRpb25IYW5kbGVyID0gY29tcGxldGlvbkhhbmRsZXJDYWxsZXIucmVsZWFzZSgpXSAo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWFrUHRyPEZvcm1TdGF0ZT4mJiBmb3Jt
U3RhdGUsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBh
Y3Rpb24sIFNob3VsZENvbnRpbnVlIHNob3VsZENvbnRpbnVlKSBtdXRhYmxlIHsKKyAgICAgICAg
cG9saWN5Q2hlY2tlcigpLmNoZWNrTmV3V2luZG93UG9saWN5KFdURk1vdmUoYWN0aW9uKSwgV1RG
TW92ZShyZXF1ZXN0KSwgV1RGTW92ZShmb3JtU3RhdGUpLCBlZmZlY3RpdmVGcmFtZU5hbWUsIFt0
aGlzLCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIG9wZW5lclBvbGljeSwgY29tcGxldGlv
bkhhbmRsZXIgPSBjb21wbGV0aW9uSGFuZGxlckNhbGxlci5yZWxlYXNlKCldIChjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYWtQdHI8Rm9ybVN0YXRlPiYmIGZvcm1TdGF0ZSwgY29u
c3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgU2hv
dWxkQ29udGludWUgc2hvdWxkQ29udGludWUpIG11dGFibGUgewogICAgICAgICAgICAgY29udGlu
dWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xpY3kocmVxdWVzdCwgZm9ybVN0YXRlLmdldCgpLCBmcmFt
ZU5hbWUsIGFjdGlvbiwgc2hvdWxkQ29udGludWUsIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVS
TCwgb3BlbmVyUG9saWN5KTsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAg
ICAgIH0pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IGZhODkxY2E1NGExMTE3ZWQzZGYyMmNiMmE1ZDc0ZGI5MDA3NWQwZGMuLmI4YjAwZTMwMWYx
NmJkZTQ1MDE0NjdiOGFlMTU1MGY3YzI3YTBkNDYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxOC0xMC0wOSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFuY2hvciB0YXJnZXQgc2hv
dWxkIGJlIGlnbm9yZWQgb24gYWN0aXZhdGlvbiB3aGVuIHRoZSBkb3dubG9hZCBhdHRyaWJ1dGUg
aXMgc2V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTA0MDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBV
cGRhdGUgV2ViS2l0VGVzdFJ1bm5lciB0byBibG9jayBwb3B1cHMgYnkgZGVmYXVsdCBhbmQgYWRk
IHN1cHBvcnQgZm9yIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3MoKQorICAgICAgICBmb3Ig
dGVzdHMgdGhhdCBuZWVkIHBvcHVwcy4gVGhpcyBhbGlnbnMgV2ViS2l0VGVzdFJ1bm5lciB3aXRo
IER1bXBSZW5kZXJUcmVlIGFuZCBhbGxvd3MgdGVzdGluZworICAgICAgICBwb3B1cCBibG9ja2lu
Zy4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
VGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0Q2FuT3Blbldp
bmRvd3MpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKToKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9u
OjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmg6CisKIDIwMTgtMTAtMDkgIEpp
ZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViQXV0aE5dIElt
cG9ydCBDVEFQIEhJRCBtZXNzYWdlIGFuZCBwYWNrZXQgc3RydWN0dXJlIGZyb20gQ2hyb21pdW0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4IDI0ZDAxNmUwZWUzNTY3ZjI0NjdmNTk1MzY1
MTA5M2Y3MGFkNTgyZTEuLjFlZDRlZDRmNmU5NDdiOWJiZDQ1MzgwNTQ0NmZlNTYxY2RjZTVmNDEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvVGVzdFJ1bm5lci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbApAQCAtNjYsNyArNjYsNyBAQCBpbnRlcmZhY2Ug
VGVzdFJ1bm5lciB7CiAgICAgLy8gU3BlY2lhbCBvcHRpb25zLgogICAgIHZvaWQga2VlcFdlYkhp
c3RvcnkoKTsKICAgICB2b2lkIHNldEFjY2VwdHNFZGl0aW5nKGJvb2xlYW4gdmFsdWUpOwotICAg
IHZvaWQgc2V0Q2FuT3BlbldpbmRvd3MoYm9vbGVhbiB2YWx1ZSk7CisgICAgdm9pZCBzZXRDYW5P
cGVuV2luZG93cygpOwogICAgIHZvaWQgc2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBs
ZXRlKGJvb2xlYW4gdmFsdWUpOwogICAgIHZvaWQgc2V0WFNTQXVkaXRvckVuYWJsZWQoYm9vbGVh
biB2YWx1ZSk7CiAgICAgdm9pZCBzZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyhi
b29sZWFuIHZhbHVlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IGM4NDNiYzcyNjIxOTIyM2Y1NzRiYmYyMjlkMjU5
MDdhZTNjYTg1YTUuLjQ1YWQ2NmIzNmJkYjk2MTE5OGI1YjBkMDc5MjcxMmNjNWNmNTRiYTggMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5l
ci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmNwcApAQCAtNDEwLDE1ICs0MTAsMTEgQEAgYm9vbCBUZXN0UnVubmVyOjppc0NvbW1hbmRF
bmFibGVkKEpTU3RyaW5nUmVmIG5hbWUpCiAgICAgcmV0dXJuIFdLQnVuZGxlUGFnZUlzRWRpdGlu
Z0NvbW1hbmRFbmFibGVkKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2Uo
KSwgdG9XSyhuYW1lKS5nZXQoKSk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0Q2FuT3Blbldp
bmRvd3MoYm9vbCkKLXsKLSAgICAvLyBUaGUgdGVzdCBwbHVnaW5zL2dldC11cmwtd2l0aC1ibGFu
ay10YXJnZXQuaHRtbCByZXF1aXJlcyB0aGF0IHRoZSBlbWJlZGRpbmcgY2xpZW50IGZvcmJpZAot
ICAgIC8vIG9wZW5pbmcgd2luZG93cyAoYnkgb21pdHRpbmcgYSBjYWxsIHRvIHRoaXMgZnVuY3Rp
b24pIHNvIGFzIHRvIHRlc3QgdGhhdCBOUE5fR2V0VVJMKCkKLSAgICAvLyB3aXRoIGEgYmxhbmsg
dGFyZ2V0IHdpbGwgcmV0dXJuIGFuIGVycm9yLgotICAgIC8vCi0gICAgLy8gSXQgaXMgbm90IGNs
ZWFyIGlmIHdlIHNob3VsZCBpbXBsZW1lbnQgdGhpcyBmdW5jdGlvbmFsaXR5IG9yIHJlbW92ZSBp
dCBhbmQgcGx1Z2lucy9nZXQtdXJsLXdpdGgtYmxhbmstdGFyZ2V0Lmh0bWwKLSAgICAvLyBwZXIg
dGhlIHJlbWFyayBpbiA8aHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzY0NTA0L3Ry
dW5rL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBlZD4uCi0gICAgLy8gRm9yIG5v
dywganVzdCBpZ25vcmUgdGhpcyBzZXR0aW5nLgordm9pZCBUZXN0UnVubmVyOjpzZXRDYW5PcGVu
V2luZG93cygpCit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NzYWdlTmFtZShB
ZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU2V0Q2FuT3BlbldpbmRvd3Mi
KSk7CisgICAgV0tSZXRhaW5QdHI8V0tCb29sZWFuUmVmPiBtZXNzYWdlQm9keShBZG9wdFdLLCBX
S0Jvb2xlYW5DcmVhdGUodHJ1ZSkpOworICAgIFdLQnVuZGxlUG9zdFN5bmNocm9ub3VzTWVzc2Fn
ZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkuYnVuZGxlKCksIG1lc3NzYWdlTmFtZS5nZXQo
KSwgbWVzc2FnZUJvZHkuZ2V0KCksIG51bGxwdHIpOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OnNl
dFhTU0F1ZGl0b3JFbmFibGVkKGJvb2wgZW5hYmxlZCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggMTIxNWIzY2EwYmVhMTA1
ZTQyZWFlOTMwZTJhYjBiODU3Y2NkMGMxNC4uYmEwZDZhNjU3ZDU0NWQ5ZTYzZTA0YzA2N2JiMzQw
OWNkM2JhZDVhOSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmgKQEAgLTk5LDcgKzk5LDcgQEAgcHVibGljOgogICAgIC8vIFNwZWNp
YWwgb3B0aW9ucy4KICAgICB2b2lkIGtlZXBXZWJIaXN0b3J5KCk7CiAgICAgdm9pZCBzZXRBY2Nl
cHRzRWRpdGluZyhib29sIHZhbHVlKSB7IG1fc2hvdWxkQWxsb3dFZGl0aW5nID0gdmFsdWU7IH0K
LSAgICB2b2lkIHNldENhbk9wZW5XaW5kb3dzKGJvb2wpOworICAgIHZvaWQgc2V0Q2FuT3Blbldp
bmRvd3MoKTsKICAgICB2b2lkIHNldENsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZShi
b29sIHZhbHVlKSB7IG1fc2hvdWxkQ2xvc2VFeHRyYVdpbmRvd3MgPSB2YWx1ZTsgfQogICAgIHZv
aWQgc2V0WFNTQXVkaXRvckVuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRNb2Rlcm5NZWRpYUNv
bnRyb2xzRW5hYmxlZChib29sKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHAKaW5kZXggNTFlMGYyMzEzMjVkNjQwYWJhMDkwZDk3NWJjNTJhNzJmYjNlYzk2Yy4uZDQx
MDBmOGYzNzlkMzljYWNlZmI4YTI5NGNlMTllNDc0OTEwZGQ0YiAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTI0Miw5ICsyNDIsMTcgQEAgc3RhdGljIHZv
aWQgcmVxdWVzdFBvaW50ZXJMb2NrKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKikKICAgICBX
S1BhZ2VEaWRBbGxvd1BvaW50ZXJMb2NrKHBhZ2UpOwogfQogCi1XS1BhZ2VSZWYgVGVzdENvbnRy
b2xsZXI6OmNyZWF0ZU90aGVyUGFnZShXS1BhZ2VSZWYgb2xkUGFnZSwgV0tQYWdlQ29uZmlndXJh
dGlvblJlZiBjb25maWd1cmF0aW9uLCBXS05hdmlnYXRpb25BY3Rpb25SZWYgbmF2aWdhdGlvbkFj
dGlvbiwgV0tXaW5kb3dGZWF0dXJlc1JlZiB3aW5kb3dGZWF0dXJlcywgY29uc3Qgdm9pZCAqY2xp
ZW50SW5mbykKK1dLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFdLUGFn
ZVJlZiwgV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBXS05hdmlnYXRpb25B
Y3Rpb25SZWYgbmF2aWdhdGlvbkFjdGlvbiwgV0tXaW5kb3dGZWF0dXJlc1JlZiB3aW5kb3dGZWF0
dXJlcywgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBQbGF0Zm9ybVdlYlZpZXcqIHBh
cmVudFZpZXcgPSBzdGF0aWNfY2FzdDxQbGF0Zm9ybVdlYlZpZXcqPihjb25zdF9jYXN0PHZvaWQq
PihjbGllbnRJbmZvKSk7CisgICAgcmV0dXJuIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5j
cmVhdGVPdGhlclBhZ2UocGFyZW50VmlldywgY29uZmlndXJhdGlvbiwgbmF2aWdhdGlvbkFjdGlv
biwgd2luZG93RmVhdHVyZXMpOworfQorCitXS1BhZ2VSZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0
ZU90aGVyUGFnZShQbGF0Zm9ybVdlYlZpZXcqIHBhcmVudFZpZXcsIFdLUGFnZUNvbmZpZ3VyYXRp
b25SZWYgY29uZmlndXJhdGlvbiwgV0tOYXZpZ2F0aW9uQWN0aW9uUmVmIG5hdmlnYXRpb25BY3Rp
b24sIFdLV2luZG93RmVhdHVyZXNSZWYgd2luZG93RmVhdHVyZXMpCit7CisgICAgLy8gVGhlIHRl
c3QgbmVlZHMgdG8gY2FsbCB0ZXN0UnVubmVyLnNldENhbk9wZW5XaW5kb3dzKCkgdG8gb3BlbiBu
ZXcgd2luZG93cy4KKyAgICBpZiAoIW1fY3VycmVudEludm9jYXRpb24tPmNhbk9wZW5XaW5kb3dz
KCkpCisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgUGxhdGZvcm1XZWJWaWV3KiB2aWV3
ID0gcGxhdGZvcm1DcmVhdGVPdGhlclBhZ2UocGFyZW50VmlldywgY29uZmlndXJhdGlvbiwgcGFy
ZW50Vmlldy0+b3B0aW9ucygpKTsKICAgICBXS1BhZ2VSZWYgbmV3UGFnZSA9IHZpZXctPnBhZ2Uo
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCAwNDVjN2NmNTFk
NGUwMmE5NDkxMjZkNGJiNTNhYWY4M2MxMzYyODlmLi41YzNmZTUzZDE2NzQ2ODBkOTY2YmIyMjk0
YTRlYzRlNDQ4M2ExZWRmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5o
CkBAIC00MDAsNiArNDAwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFVwZGF0ZUhpc3RvcnlU
aXRsZShXS1N0cmluZ1JlZiB0aXRsZSwgV0tVUkxSZWYsIFdLRnJhbWVSZWYpOwogCiAgICAgc3Rh
dGljIFdLUGFnZVJlZiBjcmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVmLCBXS1BhZ2VDb25maWd1cmF0
aW9uUmVmLCBXS05hdmlnYXRpb25BY3Rpb25SZWYsIFdLV2luZG93RmVhdHVyZXNSZWYsIGNvbnN0
IHZvaWQqKTsKKyAgICBXS1BhZ2VSZWYgY3JlYXRlT3RoZXJQYWdlKFBsYXRmb3JtV2ViVmlldyog
cGFyZW50VmlldywgV0tQYWdlQ29uZmlndXJhdGlvblJlZiwgV0tOYXZpZ2F0aW9uQWN0aW9uUmVm
LCBXS1dpbmRvd0ZlYXR1cmVzUmVmKTsKIAogICAgIHN0YXRpYyB2b2lkIHJ1bk1vZGFsKFdLUGFn
ZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAgICAgc3RhdGljIHZvaWQgcnVuTW9kYWwo
UGxhdGZvcm1XZWJWaWV3Kik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24u
Y3BwCmluZGV4IGQ3ZDdmNGRkNzZiNDk4YzJiMjk0NWQ5MWE3ODhjNTlhZjRiNjJmM2IuLmM0ZGRj
OTI4YTRmNTYwYjM0MDlhYzViY2MyZTRjNzRiZTllNmM2ZGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC04MDIsNiArODAyLDEyIEBAIFdLUmV0YWluUHRy
PFdLVHlwZVJlZj4gVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VG
cm9tSW5qZWN0ZWRCCiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2Fn
ZU5hbWUsICJHZXREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzIikpCiAgICAgICAgIHJldHVybiBXS1Jl
dGFpblB0cjxXS1R5cGVSZWY+KEFkb3B0V0ssIFdLQm9vbGVhbkNyZWF0ZShtX2R1bXBGcmFtZUxv
YWRDYWxsYmFja3MpKTsKIAorICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1l
c3NhZ2VOYW1lLCAiU2V0Q2FuT3BlbldpbmRvd3MiKSkgeworICAgICAgICBBU1NFUlQoV0tHZXRU
eXBlSUQobWVzc2FnZUJvZHkpID09IFdLQm9vbGVhbkdldFR5cGVJRCgpKTsKKyAgICAgICAgbV9j
YW5PcGVuV2luZG93cyA9IHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KFdLQm9vbGVhbkdldFZh
bHVlKHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4obWVzc2FnZUJvZHkpKSk7CisgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgIH0KKwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3Ry
aW5nKG1lc3NhZ2VOYW1lLCAiU2V0V2luZG93SXNLZXkiKSkgewogICAgICAgICBBU1NFUlQoV0tH
ZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLQm9vbGVhbkdldFR5cGVJRCgpKTsKICAgICAgICAg
V0tCb29sZWFuUmVmIGlzS2V5VmFsdWUgPSBzdGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KG1lc3Nh
Z2VCb2R5KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRp
b24uaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaAppbmRleCAzZmI0
YmI3OGFhNGQ4MmRiZjk1ZTc3NjQyYTM5YWM0MWNlZjMxYzgxLi5mZTE3ODk3NjUyNjg5MzFmYmMy
MDU2YTE0ZjhkMWYxMmJjN2Y5NjUwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RJbnZvY2F0aW9uLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2Nh
dGlvbi5oCkBAIC04NCw2ICs4NCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFJlbW92ZUFsbFNl
c3Npb25DcmVkZW50aWFscygpOwogICAgIAogICAgIHZvaWQgZHVtcFJlc291cmNlTG9hZFN0YXRp
c3RpY3MoKTsKKworICAgIGJvb2wgY2FuT3BlbldpbmRvd3MoKSBjb25zdCB7IHJldHVybiBtX2Nh
bk9wZW5XaW5kb3dzOyB9CiAgICAgCiBwcml2YXRlOgogICAgIFdLUmV0YWluUHRyPFdLTXV0YWJs
ZURpY3Rpb25hcnlSZWY+IGNyZWF0ZVRlc3RTZXR0aW5nc0RpY3Rpb25hcnkoKTsKQEAgLTEzMiw2
ICsxMzQsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9kdW1wUGl4ZWxzIHsgZmFsc2UgfTsKICAg
ICBib29sIG1fcGl4ZWxSZXN1bHRJc1BlbmRpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zaG91
bGREdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcyB7IGZhbHNlIH07CisgICAgYm9vbCBtX2Nhbk9w
ZW5XaW5kb3dzIHsgZmFsc2UgfTsKICAgICBXaGF0VG9EdW1wIG1fd2hhdFRvRHVtcCB7IFdoYXRU
b0R1bXA6OlJlbmRlclRyZWUgfTsKIAogICAgIFN0cmluZ0J1aWxkZXIgbV90ZXh0T3V0cHV0Owpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDg4NzZlNjQ3NTgwYjliNTM0OWE2MzU0NWEwOGNlNjIwMWQxYzljOTYuLjM3OTJkMWY1
N2I2MDIwZmY5MGI0NjQ4MmFkYTBhYmI5NWU2MzFjNDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAor
MjAxOC0xMC0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFu
Y2hvciB0YXJnZXQgc2hvdWxkIGJlIGlnbm9yZWQgb24gYWN0aXZhdGlvbiB3aGVuIHRoZSBkb3du
bG9hZCBhdHRyaWJ1dGUgaXMgc2V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTA0MDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJs
b2ItZG93bmxvYWQtYmxhbmstYmFzZS10YXJnZXQtcG9wdXAtbm90LWFsbG93ZWQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3It
ZmlsZS1ibG9iLWRvd25sb2FkLWJsYW5rLWJhc2UtdGFyZ2V0LXBvcHVwLW5vdC1hbGxvd2VkLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1m
aWxlLWJsb2ItZG93bmxvYWQtYmxhbmstdGFyZ2V0LXBvcHVwLW5vdC1hbGxvd2VkLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9y
LWZpbGUtYmxvYi1kb3dubG9hZC1ibGFuay10YXJnZXQtcG9wdXAtbm90LWFsbG93ZWQuaHRtbDog
QWRkZWQuCisgICAgICAgIEFkZCBsYXlvdXQgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIGh0
dHAvdGVzdHMvZG93bmxvYWQvYW5jaG9yLWxvYWQtYWZ0ZXItZG93bmxvYWQuaHRtbDoKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvcmVnaXN0cmF0aW9uLXRh
c2stcXVldWUtc2NoZWR1bGluZy0xLmpzOgorICAgICAgICBVcGRhdGUgZXhpc3RpbmcgV0syLW9u
bHkgbGF5b3V0IHRlc3RzIHRvIGNhbGwgdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2luZG93cygpIHNp
bmNlIHRoZXkgcmVseSBvbgorICAgICAgICBvcGVuaW5nIGEgbmV3IHdpbmRvdy4gV2UgZmFpbGVk
IHRvIG5vdGljZSB0aGUgaXNzdWUgYmVjYXVzZSB0aGVzZSB0ZXN0cyBhcmUgbm90IHJ1biBvbiBX
SzEuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAg
ICAgICogcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRm
b3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICBTa2lwIG5ldyB0ZXN0cyBvbiBXZWJL
aXQxIHNpbmNlIHRoZSBkb3dubG9hZCBhdHRyaWJ1dGUgaXMgb25seSBzdXBwb3J0ZWQgb24gV2Vi
S2l0Mi4KKwogMjAxOC0xMC0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHNraXAgZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9y
LWZpbGUtYmxvYi1kb3dubG9hZC1ibGFuay10YXJnZXQuaHRtbCBvbiBpT1MuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9i
LWRvd25sb2FkLWJsYW5rLWJhc2UtdGFyZ2V0LXBvcHVwLW5vdC1hbGxvd2VkLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJs
b2ItZG93bmxvYWQtYmxhbmstYmFzZS10YXJnZXQtcG9wdXAtbm90LWFsbG93ZWQtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjhhMGU1ZmZjMGNmZjc0NTI2ZmI0MTI2MjAxMWIyMDkwOTQ2OWQ4NTQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVu
dC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWJsYW5rLWJhc2UtdGFyZ2V0LXBvcHVwLW5vdC1h
bGxvd2VkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK0Rvd25sb2FkIHN0YXJ0ZWQuCitE
b3dubG9hZGluZyBVUkwgd2l0aCBzdWdnZXN0ZWQgZmlsZW5hbWUgImFiZS5wbmciCitEb3dubG9h
ZCBjb21wbGV0ZWQuCitUaGUgc3VnZ2VzdGVkIGZpbGVuYW1lIGFib3ZlIHNob3VsZCBiZSAiYWJl
LnBuZyIgYW5kIHRoZSBkb3dubG9hZCBzaG91bGQgc3VjY2VlZC4KKworRmlsZSBiYWNrZWQgYmxv
YiBVUkwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50
L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtYmxhbmstYmFzZS10YXJnZXQtcG9wdXAtbm90LWFs
bG93ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hv
ci1maWxlLWJsb2ItZG93bmxvYWQtYmxhbmstYmFzZS10YXJnZXQtcG9wdXAtbm90LWFsbG93ZWQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45OGMwMjQ4MDgxYjVkYWFhMzA0YmM5M2I5MmRkNWQyNjNhODU4OTZk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFuY2hvckVsZW1l
bnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1ibGFuay1iYXNlLXRhcmdldC1wb3B1cC1ub3Qt
YWxsb3dlZC5odG1sCkBAIC0wLDAgKzEsMzggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxiYXNlIHRhcmdldD0iX2JsYW5rIj4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKKyAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgIHRlc3RSdW5uZXIuc2V0U2hv
dWxkTG9nRG93bmxvYWRDYWxsYmFja3ModHJ1ZSk7CisgIHRlc3RSdW5uZXIud2FpdFVudGlsRG93
bmxvYWRGaW5pc2hlZCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoZSBz
dWdnZXN0ZWQgZmlsZW5hbWUgYWJvdmUgc2hvdWxkIGJlICJhYmUucG5nIiBhbmQgdGhlIGRvd25s
b2FkIHNob3VsZCBzdWNjZWVkLjwvcD4KKzxhIGlkPSJibG9iLXVybCIgZG93bmxvYWQ9ImFiZS5w
bmciIHRhcmdldD0iX2JsYW5rIj5GaWxlIGJhY2tlZCBibG9iIFVSTDwvYT4KKzxzY3JpcHQ+Citm
dW5jdGlvbiBjbGljayhlbG10KQoreworICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKSB7Cisg
ICAgICAgIGFsZXJ0KCdDbGljayB0aGUgbGluayB0byBydW4gdGhlIHRlc3QuJyk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oZWxtdC5vZmZzZXRM
ZWZ0ICsgNSwgZWxtdC5vZmZzZXRUb3AgKyA1KTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24o
KTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKQor
eworICAgIGZpbGUgPSBpbnRlcm5hbHMuY3JlYXRlRmlsZSgiLi4vcmVzb3VyY2VzL2FiZS5wbmci
KTsKKyAgICB2YXIgbGluayA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibG9iLXVybCIpOwor
ICAgIGxpbmsuaHJlZiA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGUpOworICAgIGNs
aWNrKGxpbmspOworfQorcnVuVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3It
ZmlsZS1ibG9iLWRvd25sb2FkLWJsYW5rLXRhcmdldC1wb3B1cC1ub3QtYWxsb3dlZC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmls
ZS1ibG9iLWRvd25sb2FkLWJsYW5rLXRhcmdldC1wb3B1cC1ub3QtYWxsb3dlZC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOGEwZTVmZmMwY2ZmNzQ1MjZmYjQxMjYyMDExYjIwOTA5NDY5ZDg1NAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50
L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtYmxhbmstdGFyZ2V0LXBvcHVwLW5vdC1hbGxvd2Vk
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK0Rvd25sb2FkIHN0YXJ0ZWQuCitEb3dubG9h
ZGluZyBVUkwgd2l0aCBzdWdnZXN0ZWQgZmlsZW5hbWUgImFiZS5wbmciCitEb3dubG9hZCBjb21w
bGV0ZWQuCitUaGUgc3VnZ2VzdGVkIGZpbGVuYW1lIGFib3ZlIHNob3VsZCBiZSAiYWJlLnBuZyIg
YW5kIHRoZSBkb3dubG9hZCBzaG91bGQgc3VjY2VlZC4KKworRmlsZSBiYWNrZWQgYmxvYiBVUkwK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hv
ci1maWxlLWJsb2ItZG93bmxvYWQtYmxhbmstdGFyZ2V0LXBvcHVwLW5vdC1hbGxvd2VkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9i
LWRvd25sb2FkLWJsYW5rLXRhcmdldC1wb3B1cC1ub3QtYWxsb3dlZC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjBhZWJkMGZhMGUzNjM0ZjMyMWEzMzI2MWZkZTdjNzE1MTI5MGRjYzQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1i
bG9iLWRvd25sb2FkLWJsYW5rLXRhcmdldC1wb3B1cC1ub3QtYWxsb3dlZC5odG1sCkBAIC0wLDAg
KzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKKyAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgIHRlc3RS
dW5uZXIuc2V0U2hvdWxkTG9nRG93bmxvYWRDYWxsYmFja3ModHJ1ZSk7CisgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG93bmxvYWRGaW5pc2hlZCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxwPlRoZSBzdWdnZXN0ZWQgZmlsZW5hbWUgYWJvdmUgc2hvdWxkIGJlICJhYmUucG5nIiBh
bmQgdGhlIGRvd25sb2FkIHNob3VsZCBzdWNjZWVkLjwvcD4KKzxhIGlkPSJibG9iLXVybCIgZG93
bmxvYWQ9ImFiZS5wbmciIHRhcmdldD0iX2JsYW5rIj5GaWxlIGJhY2tlZCBibG9iIFVSTDwvYT4K
KzxzY3JpcHQ+CitmdW5jdGlvbiBjbGljayhlbG10KQoreworICAgIGlmICghd2luZG93LmV2ZW50
U2VuZGVyKSB7CisgICAgICAgIGFsZXJ0KCdDbGljayB0aGUgbGluayB0byBydW4gdGhlIHRlc3Qu
Jyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8o
ZWxtdC5vZmZzZXRMZWZ0ICsgNSwgZWxtdC5vZmZzZXRUb3AgKyA1KTsKKyAgICBldmVudFNlbmRl
ci5tb3VzZURvd24oKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cit9CisKK2Z1bmN0aW9u
IHJ1blRlc3QoKQoreworICAgIGZpbGUgPSBpbnRlcm5hbHMuY3JlYXRlRmlsZSgiLi4vcmVzb3Vy
Y2VzL2FiZS5wbmciKTsKKyAgICB2YXIgbGluayA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJi
bG9iLXVybCIpOworICAgIGxpbmsuaHJlZiA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGZp
bGUpOworICAgIGNsaWNrKGxpbmspOworfQorcnVuVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Rvd25sb2FkL2Fu
Y2hvci1sb2FkLWFmdGVyLWRvd25sb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Rv
d25sb2FkL2FuY2hvci1sb2FkLWFmdGVyLWRvd25sb2FkLmh0bWwKaW5kZXggZWQ3NzZkNTRiNjdi
YmMxMzI2NTgwYTFiMzUzYjNmM2I5YTI1Nzg4ZC4uMjM0ZDU4ZDJlMzZiMThkYTgxN2UzZDFkMGU2
YzVmNDcyMDNiMmRkMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kb3dubG9h
ZC9hbmNob3ItbG9hZC1hZnRlci1kb3dubG9hZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvZG93bmxvYWQvYW5jaG9yLWxvYWQtYWZ0ZXItZG93bmxvYWQuaHRtbApAQCAtNCw2ICs0
LDcgQEAKIDxzY3JpcHQ+CiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CisgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9yZWdpc3RyYXRpb24tdGFz
ay1xdWV1ZS1zY2hlZHVsaW5nLTEuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMv
c2VydmljZS9yZXNvdXJjZXMvcmVnaXN0cmF0aW9uLXRhc2stcXVldWUtc2NoZWR1bGluZy0xLmpz
CmluZGV4IDlkOTM0OTI3ZWUzODM4ZmEyMWJmOWMxYTBjMTFkYjBiYjVkODYzN2QuLjQ0MGIzOGVk
ZDQ0ZGNmYWI1ODFiNzhmMjQzNjg0NDllODBjMTNhNTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9yZWdpc3RyYXRpb24tdGFzay1x
dWV1ZS1zY2hlZHVsaW5nLTEuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJz
L3NlcnZpY2UvcmVzb3VyY2VzL3JlZ2lzdHJhdGlvbi10YXNrLXF1ZXVlLXNjaGVkdWxpbmctMS5q
cwpAQCAtMSw2ICsxLDkgQEAKIC8vIFRoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgdHdvIGRpZmZl
cmVudCB3aW5kb3dzIGZyb20gdHdvIGRpZmZlcmVudCBkb21haW5zIHdobyBzcGFtIFNXIHJlZ2lz
dHJhdGlvbnMgZ2V0IHJlc3BvbnNlcyBpbnRlcnR3aW5lZCB3aXRoIGVhY2ggb3RoZXIKIC8vIGFz
IGVhY2ggcmVnaXN0cmF0aW9uIHNob3VsZCBvcGVyYXRlIG9uIGl0cyBvd24gdGFzayBxdWV1ZS4K
IAoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRv
d3MoKTsKKwogaWYgKGxvY2F0aW9uLmhvc3RuYW1lICE9ICIxMjcuMC4wLjEiKQogICAgIGFsZXJ0
KCJUaGlzIHRlc3QgbXVzdCBiZSBpbml0aWF0ZWQgZnJvbSB0aGUgaG9zdG5hbWUgMTI3LjAuMC4x
Iik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCAxNWVkYzRkYzYwZmUwOWExYTNjM2MzMTZkZWUzY2YzMjA3MGJjNDJjLi5iMTk1NWMwN2Y3
NmUzYjExNDFmNTZhNTBmMGQ1ZTc3NWEwNTMxMDJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMDY3LDcgKzEwNjcsOSBAQCB3ZWJraXQu
b3JnL2IvMTU2MDY3IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1kb3dubG9hZC5o
dG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTU2MDY3IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVt
ZW50L2FuY2hvci1maWxlLWJsb2ItY29udmVydC10by1kb3dubG9hZC5odG1sIFsgU2tpcCBdCiB3
ZWJraXQub3JnL2IvMTU2MDY3IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxl
LWJsb2ItY29udmVydC10by1kb3dubG9hZC1hc3luYy1kZWxlZ2F0ZS5odG1sIFsgU2tpcCBdCiB3
ZWJraXQub3JnL2IvMTU2MDY3IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxl
LWJsb2ItZG93bmxvYWQuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzE1NjA2NyBmYXN0L2Rv
bS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWJsYW5rLWJhc2Ut
dGFyZ2V0LXBvcHVwLW5vdC1hbGxvd2VkLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNTYw
NjcgZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1i
bGFuay10YXJnZXQuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzE1NjA2NyBmYXN0L2RvbS9I
VE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWJsYW5rLXRhcmdldC1w
b3B1cC1ub3QtYWxsb3dlZC5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTU2MDY3IGZhc3Qv
ZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtaW5jbHVkZXMt
YmFja3NsYXNoLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNTYwNjcgZmFzdC9kb20vSFRN
TEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1pbmNsdWRlcy1kb3VibGVx
dW90ZS5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTU2MDY3IGZhc3QvZG9tL0hUTUxBbmNo
b3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtaW5jbHVkZXMtc2xhc2hlcy5odG1s
IFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlv
bnMKaW5kZXggODc4MmQ0MmY3NzljODgxODc0NGM2NGQ4YWYzNGMyZWMwYjZlMmIzZC4uNmM0YmRm
Yjc1MWYzODJjOGMxMjA3ZjliZDMxYzdkOTQyZWU1MTgzZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzA3LDcgKzMwNyw5IEBAIHdlYmtp
dC5vcmcvYi8xNTYwNjkgZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWRvd25sb2Fk
Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNTYwNjkgZmFzdC9kb20vSFRNTEFuY2hv
ckVsZW1lbnQvYW5jaG9yLWRvd25sb2FkLXN5bnRoZXRpYy1jbGljay5odG1sIFsgU2tpcCBdCiB3
ZWJraXQub3JnL2IvMTU2MDY5IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1kb3du
bG9hZC11c2VyLXRyaWdnZXJlZC1zeW50aGV0aWMtY2xpY2suaHRtbCBbIFNraXAgXQogd2Via2l0
Lm9yZy9iLzE1NjA2OSBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9i
LWRvd25sb2FkLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xNTYwNjkgZmFzdC9kb20vSFRN
TEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1ibGFuay1iYXNlLXRhcmdl
dC1wb3B1cC1ub3QtYWxsb3dlZC5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTU2MDY5IGZh
c3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtYmxhbmst
dGFyZ2V0Lmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xNTYwNjkgZmFzdC9kb20vSFRNTEFu
Y2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1ibGFuay10YXJnZXQtcG9wdXAt
bm90LWFsbG93ZWQuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE1NjA2OSBmYXN0L2RvbS9I
VE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVzLWJhY2tz
bGFzaC5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTU2MDY5IGZhc3QvZG9tL0hUTUxBbmNo
b3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtaW5jbHVkZXMtZG91YmxlcXVvdGUu
aHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE1NjA2OSBmYXN0L2RvbS9IVE1MQW5jaG9yRWxl
bWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVzLXNsYXNoZXMuaHRtbCBbIFNr
aXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlv
bnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwY2Nm
MWE1NTE4NTI5MDY4ZGFmNTE3MDFjMzdkOThhM2NjNzE2NzllLi41NWJkMTI0YmFlZmJjMDgwMzMw
N2I0MmU5NjM4NGNjMTI2YmZlYWJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4
cGVjdGF0aW9ucwpAQCAtNDU1LDcgKzQ1NSw5IEBAIGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50
L2FuY2hvci1kb3dubG9hZC11bnNldC5odG1sIFsgU2tpcCBdCiBmYXN0L2RvbS9IVE1MQW5jaG9y
RWxlbWVudC9hbmNob3ItZG93bmxvYWQtc3ludGhldGljLWNsaWNrLmh0bWwgWyBTa2lwIF0KIGZh
c3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1kb3dubG9hZC11c2VyLXRyaWdnZXJlZC1z
eW50aGV0aWMtY2xpY2suaHRtbCBbIFNraXAgXQogZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQv
YW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC5odG1sIFsgU2tpcCBdCitmYXN0L2RvbS9IVE1MQW5j
aG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWJsYW5rLWJhc2UtdGFyZ2V0LXBv
cHVwLW5vdC1hbGxvd2VkLmh0bWwgWyBTa2lwIF0KIGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50
L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtYmxhbmstdGFyZ2V0Lmh0bWwgWyBTa2lwIF0KK2Zh
c3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtYmxhbmst
dGFyZ2V0LXBvcHVwLW5vdC1hbGxvd2VkLmh0bWwgWyBTa2lwIF0KIGZhc3QvZG9tL0hUTUxBbmNo
b3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtaW5jbHVkZXMtYmFja3NsYXNoLmh0
bWwgWyBTa2lwIF0KIGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2It
ZG93bmxvYWQtaW5jbHVkZXMtZG91YmxlcXVvdGUuaHRtbCBbIFNraXAgXQogZmFzdC9kb20vSFRN
TEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1pbmNsdWRlcy1zbGFzaGVz
Lmh0bWwgWyBTa2lwIF0K
</data>

          </attachment>
      

    </bug>

</bugzilla>