<?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>191471</bug_id>
          
          <creation_ts>2018-11-09 09:18:33 -0800</creation_ts>
          <short_desc>[Cocoa] Implement SPI on WKWebView to increase and decrease list levels</short_desc>
          <delta_ts>2018-11-09 15:06:03 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mitz</cc>
    
    <cc>rniwa</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1476931</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-11-09 09:18:33 -0800</bug_when>
    <thetext>-_increaseListLevel: and -_decreaseListLevel:</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476932</commentid>
    <comment_count>1</comment_count>
      <attachid>354349</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-11-09 09:23:18 -0800</bug_when>
    <thetext>Created attachment 354349
Depends on webkit.org/b/191410</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476933</commentid>
    <comment_count>2</comment_count>
      <attachid>354350</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-11-09 09:24:00 -0800</bug_when>
    <thetext>Created attachment 354350
Depends on webkit.org/b/191410</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477048</commentid>
    <comment_count>3</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-11-09 12:25:53 -0800</bug_when>
    <thetext>&lt;rdar://problem/45952472&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477051</commentid>
    <comment_count>4</comment_count>
      <attachid>354372</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-11-09 12:27:36 -0800</bug_when>
    <thetext>Created attachment 354372
Rebase on trunk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477055</commentid>
    <comment_count>5</comment_count>
      <attachid>354372</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-11-09 12:33:25 -0800</bug_when>
    <thetext>Comment on attachment 354372
Rebase on trunk

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

Thanks for the review!

&gt; Source/WebKit/ChangeLog:16
&gt; +2018-11-08  Wenson Hsieh  &lt;wenson_hsieh@apple.com&gt;

Oops, it looks like I stomped over this ChangeLog date :P

Will fix before landing.

&gt; Tools/ChangeLog:15
&gt; +2018-11-08  Wenson Hsieh  &lt;wenson_hsieh@apple.com&gt;

(This date too)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477097</commentid>
    <comment_count>6</comment_count>
      <attachid>354385</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-11-09 14:14:13 -0800</bug_when>
    <thetext>Created attachment 354385
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477116</commentid>
    <comment_count>7</comment_count>
      <attachid>354385</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-09 14:50:57 -0800</bug_when>
    <thetext>Comment on attachment 354385
Patch for landing

Clearing flags on attachment: 354385

Committed r238057: &lt;https://trac.webkit.org/changeset/238057&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354349</attachid>
            <date>2018-11-09 09:23:18 -0800</date>
            <delta_ts>2018-11-09 09:23:42 -0800</delta_ts>
            <desc>Depends on webkit.org/b/191410</desc>
            <filename>bug-191471-20181109092317.patch</filename>
            <type>text/plain</type>
            <size>54125</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4MDIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDhjMzBlNGMyOWM5ZjNhYzE0
YzA4ZjgzMGZiMDE5MTFkNTdhMTdjMjUuLjJmMmFkZWM1ODhlZjM1YmYzYmZjODUxMmRhOTgyMmU4
OTgxYjkyNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODUgQEAKKzIwMTgtMTEtMDggIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBJbnRyb2R1
Y2UgV0tXZWJWaWV3IFNQSSB0byBpbnNlcnQgbmVzdGVkIG9yZGVyZWQgYW5kIHVub3JkZXJlZCBs
aXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkx
NDEwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTg5ODYxMD4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcmVmaXhlcyBhIGZldyBpT1Mtb25seSBT
UEkgbWV0aG9kcyBkZWNsYXJlZCBvbiBXS1dlYlZpZXcgaW4gcjIzNjg2NyB3aXRoIHVuZGVyc2Nv
cmVzLCBhbmQgYWxzbyBleHBvc2VzIHNvbWUKKyAgICAgICAgbW9yZSBjcm9zcy1wbGF0Zm9ybSBD
b2NvYSBlZGl0aW5nIFNQSS4gT25jZSB0aGUgdW5wcmVmaXhlZCBTUEkgbWV0aG9kcyBhcmUgbm8g
bG9uZ2VyIHVzZWQgYnkgaW50ZXJuYWwgY2xpZW50cywKKyAgICAgICAgdGhlc2Ugd2lsbCBuZWVk
IHRvIGJlIHJlbW92ZWQgKHNlZSBmb2xsb3d1cCBidWc6IHdlYmtpdC5vcmcvYi8xOTE0NTApLiBT
ZWUgYmVsb3cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICBDb3ZlcmVkIGJ5IG5ldyBhbmQg
ZXhpc3RpbmcgQVBJIHRlc3RzIGluIFdLV2ViVmlld0VkaXRBY3Rpb25zLgorCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisKKyAgICAgICAgSG9pc3QgdGhlIGRl
ZmluaXRpb24gKGFuZCB1bmRlZmluaXRpb24pIG9mIGBGT1JXQVJEX0FDVElPTl9UT19XS0NPTlRF
TlRWSUVXYCB0byBlbmNvbXBhc3MgYm90aCB0aGUgV0tXZWJWaWV3CisgICAgICAgIGltcGxlbWVu
dGF0aW9uIGFuZCB0aGUgV0tXZWJWaWV3IChXS1ByaXZhdGUpIGltcGxlbWVudGF0aW9uLiBUaGlz
IGFsbG93cyB1cyB0byB1c2UgdGhpcyBtYWNybyB3aGVuIGltcGxlbWVudGluZworICAgICAgICBT
UEkgbWV0aG9kcyBpbiB0aGUgV0tQcml2YXRlIGNhdGVnb3J5LCBhcyB3ZWxsIGFzIG1ldGhvZHMg
dGhhdCBhcmUgcGFydCBvZiB0aGUgbWFpbiBXS1dlYlZpZXcgaW1wbGVtZW50YXRpb24uCisKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IGNhblBlcmZvcm1BY3Rpb246d2l0aFNlbmRlcjpdKToKKyAgICAg
ICAgKC1bV0tXZWJWaWV3IHRhcmdldEZvckFjdGlvbjp3aXRoU2VuZGVyOl0pOgorCisgICAgICAg
IEFkZCBmb3J3YXJkaW5nIGZvciB0aGUgbmV3IGVkaXRpbmcgY29tbWFuZHMgaW4gLWNhblBlcmZv
cm1BY3Rpb246IGFuZCAtdGFyZ2V0Rm9yQWN0aW9uOi4KKworICAgICAgICAoLVtXS1dlYlZpZXcg
X3RvZ2dsZVN0cmlrZVRocm91Z2g6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfaW5jcmVhc2VM
aXN0TGV2ZWw6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfZGVjcmVhc2VMaXN0TGV2ZWw6XSk6
CisgICAgICAgICgtW1dLV2ViVmlldyBfY2hhbmdlTGlzdFR5cGU6XSk6CisgICAgICAgICgtW1dL
V2ViVmlldyBfc2V0Rm9udDpzZW5kZXI6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfc2V0Rm9u
dFNpemU6c2VuZGVyOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldFRleHRDb2xvcjpzZW5k
ZXI6XSk6CisKKyAgICAgICAgQWRkIGRlZmluaXRpb25zIGZvciB0aGUgbmV3IGVkaXRpbmcgbWV0
aG9kcyBvbiBXS1dlYlZpZXcsIHVzaW5nIG1hY3JvcyAoYFdFQkNPUkVfUFJJVkFURV9DT01NQU5E
YCBvbiBtYWNPUyBhbmQKKyAgICAgICAgYEZPUldBUkRfQUNUSU9OX1RPX1dLQ09OVEVOVFZJRVdg
IG9uIGlPUykgdG8gaGVscCByZWR1Y2UgdGhlIGNvZGUgZHVwbGljYXRpb24uCisKKyAgICAgICAg
KC1bV0tXZWJWaWV3IF9wYXN0ZUFzUXVvdGF0aW9uOl0pOiBEZWxldGVkLgorCisgICAgICAgIFJl
bW92ZSB0aGlzIG1ldGhvZCBkZWZpbml0aW9uLCB3aGljaCBpcyBub3cgcmVwbGFjZWQgYnkgbWFj
cm9zIG9uIGlPUyBhbmQgbWFjT1MuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld1ByaXZhdGUuaDoKKworICAgICAgICBJbnRyb2R1Y2UgdGhlIG5ldyBTUEkgdG8gV0tX
ZWJWaWV3IChXS1ByaXZhdGUpLCBhbmQgYWRkIEZJWE1FcyB0byByZW1vdmUgb2xkLCB1bnByZWZp
eGVkIHZhcmlhbnRzIG9mIHRoZSBTUEkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjppbmNyZWFzZUxpc3RMZXZl
bCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjcmVhc2VMaXN0TGV2ZWwpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNoYW5nZUxpc3RUeXBlKToKKworICAgICAg
ICBBZGQgcGx1bWJpbmcgZm9yIHRoZXNlIGxpc3QgZWRpdGluZyBjb21tYW5kcy4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9pbmNyZWFz
ZUxpc3RMZXZlbEZvcldlYlZpZXc6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2RlY3Jl
YXNlTGlzdExldmVsRm9yV2ViVmlldzpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfY2hh
bmdlTGlzdFR5cGVGb3JXZWJWaWV3Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF90b2dn
bGVTdHJpa2VUaHJvdWdoRm9yV2ViVmlldzpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBf
c2V0Rm9udEZvcldlYlZpZXc6c2VuZGVyOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9z
ZXRGb250U2l6ZUZvcldlYlZpZXc6c2VuZGVyOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3
IF9zZXRUZXh0Q29sb3JGb3JXZWJWaWV3OnNlbmRlcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyB0b2dnbGVTdHJpa2VUaHJvdWdoRm9yV2ViVmlldzpdKToKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBzZXRGb250Rm9yV2ViVmlldzpzZW5kZXI6XSk6CisgICAgICAgICgtW1dLQ29udGVu
dFZpZXcgc2V0Rm9udFNpemVGb3JXZWJWaWV3OnNlbmRlcjpdKToKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBzZXRUZXh0Q29sb3JGb3JXZWJWaWV3OnNlbmRlcjpdKToKKyAgICAgICAgKC1bV0tD
b250ZW50VmlldyBjYW5QZXJmb3JtQWN0aW9uRm9yV2ViVmlldzp3aXRoU2VuZGVyOl0pOgorCisg
ICAgICAgIENoZWNrIGZvciB0aGUgbmV3IGFjdGlvbiBzZWxlY3RvcnMgaGVyZSwgYW5kIGFkZGl0
aW9uYWxseSBhZGQgdmFsaWRhdGlvbiBmb3IgYF9wYXN0ZUFzUXVvdGF0aW9uOmAuIExldCB0aGUK
KyAgICAgICAgdW5wcmVmaXhlZCB2ZXJzaW9ucyBvZiB0aGVzZSBtZXRob2RzIHNpbXBseSBjYWxs
IHRoZSBwcmVmaXhlZCB2ZXJzaW9ucyAodGhlc2UgbWV0aG9kIGltcGxlbWVudGF0aW9ucyB3aWxs
IGJlCisgICAgICAgIHJlbW92ZWQgaW4gYSBmb2xsb3d1cCBvbmNlIGRvaW5nIHNvIHdvdWxkIG5v
dCBhZmZlY3QgYW55IGNsaWVudHMgb2YgV2ViS2l0KS4KKworICAgICAgICAqIFdlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6aW5jcmVhc2VMaXN0TGV2ZWwpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkZWNyZWFzZUxpc3RMZXZlbCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmNoYW5nZUxpc3RUeXBlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluOgorCisgICAgICAgIEFkZCBzdHVicyBmb3Igc2V2ZXJhbCBsaXN0IGVkaXRpbmcg
Y29tbWFuZHMgdGhhdCBhcmUgeWV0IHRvIGJlIGhvb2tlZCB1cCB0byBXZWJDb3JlLiBUaGVzZSB3
aWxsIGJlIGltcGxlbWVudGVkCisgICAgICAgIGluIGEgZnV0dXJlIHBhdGNoLgorCiAyMDE4LTEx
LTA4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIHRyeSB0byBmaXggdGhlIDMyLWJpdCBtYWNPUyBidWlsZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggNDQ4ZjkzMjUzN2Ji
NmYzNWE5NzJhNGFkNzcyZDg4ODA2Yzg0OWQ5ZS4uN2NlZGQ4YTI3NTUzM2M4NDU1NDk1ZDAxYTY2
NmQyNmRhMzM1MWNlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tCkBAIC0yNTYsNiArMjU2LDEzIEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6OlNjcm9sbGJhck92ZXJsYXlTdHlsZT4gdG9Db3JlU2Nyb2xsYmFyU3R5bGUoX1dLT3Zl
CiB9CiAjZW5kaWYKIAorI2RlZmluZSBGT1JXQVJEX0FDVElPTl9UT19XS0NPTlRFTlRWSUVXKF9h
Y3Rpb24pIFwKKyAgICAtICh2b2lkKV9hY3Rpb246KGlkKXNlbmRlciBcCisgICAgeyBcCisgICAg
ICAgIGlmIChzZWxmLnVzZXNTdGFuZGFyZENvbnRlbnRWaWV3KSBcCisgICAgICAgICAgICBbX2Nv
bnRlbnRWaWV3IF9hY3Rpb24gIyMgRm9yV2ViVmlldzpzZW5kZXJdOyBcCisgICAgfQorCiBAaW1w
bGVtZW50YXRpb24gV0tXZWJWaWV3IHsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0OjpOYXZp
Z2F0aW9uU3RhdGU+IF9uYXZpZ2F0aW9uU3RhdGU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYktp
dDo6VUlEZWxlZ2F0ZT4gX3VpRGVsZWdhdGU7CkBAIC0xMzc5LDE3ICsxMzg2LDggQEAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgcmV0dXJuIFtzdXBlciByZXNpZ25GaXJz
dFJlc3BvbmRlcl07CiB9CiAKLSNkZWZpbmUgRk9SV0FSRF9BQ1RJT05fVE9fV0tDT05URU5UVklF
VyhfYWN0aW9uKSBcCi0gICAgLSAodm9pZClfYWN0aW9uOihpZClzZW5kZXIgXAotICAgIHsgXAot
ICAgICAgICBpZiAoc2VsZi51c2VzU3RhbmRhcmRDb250ZW50VmlldykgXAotICAgICAgICAgICAg
W19jb250ZW50VmlldyBfYWN0aW9uICMjIEZvcldlYlZpZXc6c2VuZGVyXTsgXAotICAgIH0KLQog
Rk9SX0VBQ0hfV0tDT05URU5UVklFV19BQ1RJT04oRk9SV0FSRF9BQ1RJT05fVE9fV0tDT05URU5U
VklFVykKIAotI3VuZGVmIEZPUldBUkRfQUNUSU9OX1RPX1dLQ09OVEVOVFZJRVcKLQogLSAoQk9P
TCljYW5QZXJmb3JtQWN0aW9uOihTRUwpYWN0aW9uIHdpdGhTZW5kZXI6KGlkKXNlbmRlcgogewog
ICAgICNkZWZpbmUgRk9SV0FSRF9DQU5QRVJGT1JNQUNUSU9OX1RPX1dLQ09OVEVOVFZJRVcoX2Fj
dGlvbikgXApAQCAtMTM5NywxNCArMTM5NSwxNiBAQCBGT1JfRUFDSF9XS0NPTlRFTlRWSUVXX0FD
VElPTihGT1JXQVJEX0FDVElPTl9UT19XS0NPTlRFTlRWSUVXKQogICAgICAgICAgICAgcmV0dXJu
IHNlbGYudXNlc1N0YW5kYXJkQ29udGVudFZpZXcgJiYgW19jb250ZW50VmlldyBjYW5QZXJmb3Jt
QWN0aW9uRm9yV2ViVmlldzphY3Rpb24gd2l0aFNlbmRlcjpzZW5kZXJdOwogCiAgICAgRk9SX0VB
Q0hfV0tDT05URU5UVklFV19BQ1RJT04oRk9SV0FSRF9DQU5QRVJGT1JNQUNUSU9OX1RPX1dLQ09O
VEVOVFZJRVcpCi0KLSAgICBGT1JXQVJEX0NBTlBFUkZPUk1BQ1RJT05fVE9fV0tDT05URU5UVklF
VyhfcGFzdGVBc1F1b3RhdGlvbikKKyAgICBGT1JfRUFDSF9QUklWQVRFX1dLQ09OVEVOVFZJRVdf
QUNUSU9OKEZPUldBUkRfQ0FOUEVSRk9STUFDVElPTl9UT19XS0NPTlRFTlRWSUVXKQorICAgIEZP
UldBUkRfQ0FOUEVSRk9STUFDVElPTl9UT19XS0NPTlRFTlRWSUVXKHNldFRleHRDb2xvcjpzZW5k
ZXIpCisgICAgRk9SV0FSRF9DQU5QRVJGT1JNQUNUSU9OX1RPX1dLQ09OVEVOVFZJRVcoc2V0Rm9u
dFNpemU6c2VuZGVyKQorICAgIEZPUldBUkRfQ0FOUEVSRk9STUFDVElPTl9UT19XS0NPTlRFTlRW
SUVXKHNldEZvbnQ6c2VuZGVyKQorICAgIEZPUldBUkRfQ0FOUEVSRk9STUFDVElPTl9UT19XS0NP
TlRFTlRWSUVXKF9zZXRUZXh0Q29sb3I6c2VuZGVyKQorICAgIEZPUldBUkRfQ0FOUEVSRk9STUFD
VElPTl9UT19XS0NPTlRFTlRWSUVXKF9zZXRGb250U2l6ZTpzZW5kZXIpCisgICAgRk9SV0FSRF9D
QU5QRVJGT1JNQUNUSU9OX1RPX1dLQ09OVEVOVFZJRVcoX3NldEZvbnQ6c2VuZGVyKQogCiAgICAg
I3VuZGVmIEZPUldBUkRfQ0FOUEVSRk9STUFDVElPTl9UT19XS0NPTlRFTlRWSUVXCiAKLSAgICBp
ZiAoYWN0aW9uID09IEBzZWxlY3RvcihzZXRUZXh0Q29sb3I6c2VuZGVyOikgfHwgYWN0aW9uID09
IEBzZWxlY3RvcihzZXRGb250U2l6ZTpzZW5kZXI6KSB8fCBhY3Rpb24gPT0gQHNlbGVjdG9yKHNl
dEZvbnQ6c2VuZGVyOikpCi0gICAgICAgIHJldHVybiBzZWxmLnVzZXNTdGFuZGFyZENvbnRlbnRW
aWV3ICYmIFtfY29udGVudFZpZXcgY2FuUGVyZm9ybUFjdGlvbkZvcldlYlZpZXc6YWN0aW9uIHdp
dGhTZW5kZXI6c2VuZGVyXTsKLQogICAgIHJldHVybiBbc3VwZXIgY2FuUGVyZm9ybUFjdGlvbjph
Y3Rpb24gd2l0aFNlbmRlcjpzZW5kZXJdOwogfQogCkBAIC0xNDE1LDggKzE0MTUsMTMgQEAgRk9S
X0VBQ0hfV0tDT05URU5UVklFV19BQ1RJT04oRk9SV0FSRF9BQ1RJT05fVE9fV0tDT05URU5UVklF
VykKICAgICAgICAgICAgIHJldHVybiBbX2NvbnRlbnRWaWV3IHRhcmdldEZvckFjdGlvbkZvcldl
YlZpZXc6YWN0aW9uIHdpdGhTZW5kZXI6c2VuZGVyXTsKIAogICAgIEZPUl9FQUNIX1dLQ09OVEVO
VFZJRVdfQUNUSU9OKEZPUldBUkRfVEFSR0VURk9SQUNUSU9OX1RPX1dLQ09OVEVOVFZJRVcpCi0K
LSAgICBGT1JXQVJEX1RBUkdFVEZPUkFDVElPTl9UT19XS0NPTlRFTlRWSUVXKF9wYXN0ZUFzUXVv
dGF0aW9uKQorICAgIEZPUl9FQUNIX1BSSVZBVEVfV0tDT05URU5UVklFV19BQ1RJT04oRk9SV0FS
RF9UQVJHRVRGT1JBQ1RJT05fVE9fV0tDT05URU5UVklFVykKKyAgICBGT1JXQVJEX1RBUkdFVEZP
UkFDVElPTl9UT19XS0NPTlRFTlRWSUVXKHNldFRleHRDb2xvcjpzZW5kZXIpCisgICAgRk9SV0FS
RF9UQVJHRVRGT1JBQ1RJT05fVE9fV0tDT05URU5UVklFVyhzZXRGb250U2l6ZTpzZW5kZXIpCisg
ICAgRk9SV0FSRF9UQVJHRVRGT1JBQ1RJT05fVE9fV0tDT05URU5UVklFVyhzZXRGb250OnNlbmRl
cikKKyAgICBGT1JXQVJEX1RBUkdFVEZPUkFDVElPTl9UT19XS0NPTlRFTlRWSUVXKF9zZXRUZXh0
Q29sb3I6c2VuZGVyKQorICAgIEZPUldBUkRfVEFSR0VURk9SQUNUSU9OX1RPX1dLQ09OVEVOVFZJ
RVcoX3NldEZvbnRTaXplOnNlbmRlcikKKyAgICBGT1JXQVJEX1RBUkdFVEZPUkFDVElPTl9UT19X
S0NPTlRFTlRWSUVXKF9zZXRGb250OnNlbmRlcikKIAogICAgICN1bmRlZiBGT1JXQVJEX1RBUkdF
VEZPUkFDVElPTl9UT19XS0NPTlRFTlRWSUVXCiAKQEAgLTQyODAsNiArNDI4NSw3MCBAQCBJR05P
UkVfV0FSTklOR1NfRU5ECiAKIEBpbXBsZW1lbnRhdGlvbiBXS1dlYlZpZXcgKFdLUHJpdmF0ZSkK
IAorI2lmIFBMQVRGT1JNKE1BQykKKworI2RlZmluZSBXRUJDT1JFX1BSSVZBVEVfQ09NTUFORChj
b21tYW5kKSAtICh2b2lkKV8jI2NvbW1hbmQ6KGlkKXNlbmRlciB7IF9wYWdlLT5leGVjdXRlRWRp
dENvbW1hbmQoI2NvbW1hbmQgIyMgX3MpOyB9CisKK1dFQkNPUkVfUFJJVkFURV9DT01NQU5EKGFs
aWduQ2VudGVyKQorV0VCQ09SRV9QUklWQVRFX0NPTU1BTkQoYWxpZ25KdXN0aWZpZWQpCitXRUJD
T1JFX1BSSVZBVEVfQ09NTUFORChhbGlnbkxlZnQpCitXRUJDT1JFX1BSSVZBVEVfQ09NTUFORChh
bGlnblJpZ2h0KQorV0VCQ09SRV9QUklWQVRFX0NPTU1BTkQoaW5zZXJ0T3JkZXJlZExpc3QpCitX
RUJDT1JFX1BSSVZBVEVfQ09NTUFORChpbnNlcnRVbm9yZGVyZWRMaXN0KQorV0VCQ09SRV9QUklW
QVRFX0NPTU1BTkQoaW5zZXJ0TmVzdGVkT3JkZXJlZExpc3QpCitXRUJDT1JFX1BSSVZBVEVfQ09N
TUFORChpbnNlcnROZXN0ZWRVbm9yZGVyZWRMaXN0KQorV0VCQ09SRV9QUklWQVRFX0NPTU1BTkQo
aW5kZW50KQorV0VCQ09SRV9QUklWQVRFX0NPTU1BTkQob3V0ZGVudCkKK1dFQkNPUkVfUFJJVkFU
RV9DT01NQU5EKHBhc3RlQXNRdW90YXRpb24pOworCisjdW5kZWYgV0VCQ09SRV9QUklWQVRFX0NP
TU1BTkQKKworLSAodm9pZClfdG9nZ2xlU3RyaWtlVGhyb3VnaDooaWQpc2VuZGVyCit7CisgICAg
X3BhZ2UtPmV4ZWN1dGVFZGl0Q29tbWFuZCgic3RyaWtldGhyb3VnaCJfcyk7Cit9CisKKy0gKHZv
aWQpX2luY3JlYXNlTGlzdExldmVsOihpZClzZW5kZXIKK3sKKyAgICBfcGFnZS0+aW5jcmVhc2VM
aXN0TGV2ZWwoKTsKK30KKworLSAodm9pZClfZGVjcmVhc2VMaXN0TGV2ZWw6KGlkKXNlbmRlcgor
eworICAgIF9wYWdlLT5kZWNyZWFzZUxpc3RMZXZlbCgpOworfQorCistICh2b2lkKV9jaGFuZ2VM
aXN0VHlwZTooaWQpc2VuZGVyCit7CisgICAgX3BhZ2UtPmNoYW5nZUxpc3RUeXBlKCk7Cit9CisK
KyNlbmRpZiAvLyBQTEFURk9STShNQUMpCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCitG
T1JfRUFDSF9QUklWQVRFX1dLQ09OVEVOVFZJRVdfQUNUSU9OKEZPUldBUkRfQUNUSU9OX1RPX1dL
Q09OVEVOVFZJRVcpCisKKy0gKHZvaWQpX3NldEZvbnQ6KFVJRm9udCAqKWZvbnQgc2VuZGVyOihp
ZClzZW5kZXIKK3sKKyAgICBpZiAoc2VsZi51c2VzU3RhbmRhcmRDb250ZW50VmlldykKKyAgICAg
ICAgW19jb250ZW50VmlldyBzZXRGb250Rm9yV2ViVmlldzpmb250IHNlbmRlcjpzZW5kZXJdOwor
fQorCistICh2b2lkKV9zZXRGb250U2l6ZTooQ0dGbG9hdClmb250U2l6ZSBzZW5kZXI6KGlkKXNl
bmRlcgoreworICAgIGlmIChzZWxmLnVzZXNTdGFuZGFyZENvbnRlbnRWaWV3KQorICAgICAgICBb
X2NvbnRlbnRWaWV3IHNldEZvbnRTaXplRm9yV2ViVmlldzpmb250U2l6ZSBzZW5kZXI6c2VuZGVy
XTsKK30KKworLSAodm9pZClfc2V0VGV4dENvbG9yOihVSUNvbG9yICopY29sb3Igc2VuZGVyOihp
ZClzZW5kZXIKK3sKKyAgICBpZiAoc2VsZi51c2VzU3RhbmRhcmRDb250ZW50VmlldykKKyAgICAg
ICAgW19jb250ZW50VmlldyBzZXRUZXh0Q29sb3JGb3JXZWJWaWV3OmNvbG9yIHNlbmRlcjpzZW5k
ZXJdOworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKKwogLSAoQk9PTClfaXNF
ZGl0YWJsZQogewogICAgIHJldHVybiBfcGFnZS0+aXNFZGl0YWJsZSgpOwpAQCAtNDYyNiwxNiAr
NDY5NSw2IEBAIElHTk9SRV9XQVJOSU5HU19FTkQKICAgICByZXR1cm4gbmlsOwogfQogCi0tICh2
b2lkKV9wYXN0ZUFzUXVvdGF0aW9uOihpZClzZW5kZXIKLXsKLSNpZiBQTEFURk9STShNQUMpCi0g
ICAgX2ltcGwtPmV4ZWN1dGVFZGl0Q29tbWFuZEZvclNlbGVjdG9yKF9jbWQpOwotI2Vsc2UKLSAg
ICBpZiAoc2VsZi51c2VzU3RhbmRhcmRDb250ZW50VmlldykKLSAgICAgICAgW19jb250ZW50Vmll
dyBfcGFzdGVBc1F1b3RhdGlvbkZvcldlYlZpZXc6c2VuZGVyXTsKLSNlbmRpZgotfQotCiArIChC
T09MKV9oYW5kbGVzU2FmZUJyb3dzaW5nCiB7CiAgICAgcmV0dXJuIERFRkFVTFRfU0FGRV9CUk9X
U0lOR19FTkFCTEVEOwpAQCAtNjAxNCw2ICs2MDczLDcgQEAgc3RhdGljIFdlYkNvcmU6OlVzZXJJ
bnRlcmZhY2VMYXlvdXREaXJlY3Rpb24gdG9Vc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKFVJ
U2UKIAogQGVuZAogCisjdW5kZWYgRk9SV0FSRF9BQ1RJT05fVE9fV0tDT05URU5UVklFVwogCiBA
aW1wbGVtZW50YXRpb24gV0tXZWJWaWV3IChXS1Rlc3RpbmcpCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IGE3MTY5
ZTU0NzU5MmVlZDRhNjczNzg4Y2FmMzZjZWEwOTM1NGRhMWYuLjIzZTY4ZGE5YjVlZjhhM2VkMTcx
MzNlZDk3NzhhZjQ4M2MzOWI2ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApAQCAtMTg2LDExICsxODYsMzAgQEAgdHlw
ZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1JlY3RFZGdlKSB7CiAtIChfV0tBdHRhY2ht
ZW50ICopX2luc2VydEF0dGFjaG1lbnRXaXRoRmlsZVdyYXBwZXI6KE5TRmlsZVdyYXBwZXIgKilm
aWxlV3JhcHBlciBjb250ZW50VHlwZTooTlNTdHJpbmcgKiljb250ZW50VHlwZSBjb21wbGV0aW9u
Oih2b2lkKF4pKEJPT0wgc3VjY2VzcykpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAtIChfV0tBdHRhY2htZW50
ICopX2F0dGFjaG1lbnRGb3JJZGVudGlmaWVyOihOU1N0cmluZyAqKWlkZW50aWZpZXIgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKLS0gKElC
QWN0aW9uKV9wYXN0ZUFzUXVvdGF0aW9uOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0KICsgKEJPT0wpX2hhbmRsZXNTYWZl
QnJvd3NpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CiAKKy0gKElCQWN0aW9uKV9hbGlnbkNlbnRlcjooaWQpc2VuZGVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAoSUJBY3Rpb24p
X2FsaWduSnVzdGlmaWVkOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChJQkFjdGlvbilfYWxpZ25MZWZ0OihpZClzZW5k
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CistIChJQkFjdGlvbilfYWxpZ25SaWdodDooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAoSUJBY3Rpb24pX2luZGVudDoo
aWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOworLSAoSUJBY3Rpb24pX291dGRlbnQ6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxF
KG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKElCQWN0aW9uKV90b2dn
bGVTdHJpa2VUaHJvdWdoOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChJQkFjdGlvbilfaW5zZXJ0T3JkZXJlZExpc3Q6
KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKKy0gKElCQWN0aW9uKV9pbnNlcnRVbm9yZGVyZWRMaXN0OihpZClzZW5kZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChJ
QkFjdGlvbilfaW5zZXJ0TmVzdGVkT3JkZXJlZExpc3Q6KGlkKXNlbmRlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKElCQWN0aW9uKV9p
bnNlcnROZXN0ZWRVbm9yZGVyZWRMaXN0OihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChJQkFjdGlvbilfaW5jcmVhc2VM
aXN0TGV2ZWw6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKKy0gKElCQWN0aW9uKV9kZWNyZWFzZUxpc3RMZXZlbDooaWQpc2Vu
ZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OworLSAoSUJBY3Rpb24pX2NoYW5nZUxpc3RUeXBlOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChJQkFjdGlvbilfcGFz
dGVBc1F1b3RhdGlvbjooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCiAjaWYgVEFSR0VUX09TX0lQSE9ORQorCistICh2b2lk
KV9zZXRGb250OihVSUZvbnQgKilmb250IHNlbmRlcjooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFC
TEUoaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3NldEZvbnRTaXplOihDR0Zsb2F0KWZvbnRT
aXplIHNlbmRlcjooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsK
Ky0gKHZvaWQpX3NldFRleHRDb2xvcjooVUlDb2xvciAqKWNvbG9yIHNlbmRlcjooaWQpc2VuZGVy
IFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKKwogLy8gREVSRUNBVEVEOiBUaGUg
c2V0dGVycyBvZiB0aGUgdGhyZWUgZm9sbG93aW5nIGZ1bmN0aW9uIGFyZSBkZXByZWNhdGVkLCBw
bGVhc2UgdXNlIG92ZXJyaWRlTGF5b3V0UGFyYW1ldGVycy4KIC8vIERlZmluZSB0aGUgc21hbGxl
c3Qgc2l6ZSBhIHBhZ2UgdGFrZSB3aXRoIGEgcmVndWxhciB2aWV3cG9ydC4KIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgQ0dTaXplIF9taW5pbXVtTGF5b3V0U2l6ZU92ZXJyaWRlOwpA
QCAtMzcxLDYgKzM5MCw3IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tSZWN0
RWRnZSkgewogI2lmIFRBUkdFVF9PU19JUEhPTkUKIAogQGludGVyZmFjZSBXS1dlYlZpZXcgKCkg
PFVJUmVzcG9uZGVyU3RhbmRhcmRFZGl0QWN0aW9ucz4KKy8vIEZJWE1FOiBSZW1vdmUgdGhlc2Ug
b25jZSBpbnRlcm5hbCBjbGllbnRzIGhhdmUgbW92ZWQgdG8gdGhlIHVuZGVyc2NvcmUtcHJlZml4
ZWQgdmVyc2lvbnMuCiAtICh2b2lkKWFsaWduQ2VudGVyOihpZClzZW5kZXIgV0tfQVBJX0FWQUlM
QUJMRShpb3MoV0tfSU9TX1RCQSkpOwogLSAodm9pZClhbGlnbkp1c3RpZmllZDooaWQpc2VuZGVy
IFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpYWxpZ25MZWZ0Oihp
ZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMzVjZWNlNTdhMjJlYmVhNjlhYmU5NDlk
MzQ0YjlkY2MxYjgxZTk5MS4uNzhhNTc0MWM0MjY1YTJjOGI3NGM3NTQwYjFhY2Y4NzE4MDRhOWZk
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xNzU2LDYg
KzE3NTYsMjQgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnZhbGlkYXRlQ29tbWFuZChjb25zdCBTdHJp
bmcmIGNvbW1hbmROYW1lLCBXVEY6OkZ1bmN0aW9uPHZvaWQKICAgICBtX3Byb2Nlc3MtPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OlZhbGlkYXRlQ29tbWFuZChjb21tYW5kTmFtZSwgY2FsbGJhY2tJ
RCksIG1fcGFnZUlEKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OmluY3JlYXNlTGlzdExldmVs
KCkKK3sKKyAgICBpZiAoaXNWYWxpZCgpKQorICAgICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OkluY3JlYXNlTGlzdExldmVsKCksIG1fcGFnZUlEKTsKK30KKwordm9pZCBX
ZWJQYWdlUHJveHk6OmRlY3JlYXNlTGlzdExldmVsKCkKK3sKKyAgICBpZiAoaXNWYWxpZCgpKQor
ICAgICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRlY3JlYXNlTGlzdExl
dmVsKCksIG1fcGFnZUlEKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmNoYW5nZUxpc3RUeXBl
KCkKK3sKKyAgICBpZiAoaXNWYWxpZCgpKQorICAgICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OkNoYW5nZUxpc3RUeXBlKCksIG1fcGFnZUlEKTsKK30KKwogdm9pZCBXZWJQ
YWdlUHJveHk6OnVwZGF0ZUZvbnRBdHRyaWJ1dGVzQWZ0ZXJFZGl0b3JTdGF0ZUNoYW5nZSgpCiB7
CiAgICAgbV9jYWNoZWRGb250QXR0cmlidXRlc0F0U2VsZWN0aW9uU3RhcnQucmVzZXQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMjliZGRjYjc1MDg1N2Q5NThj
YjdlYmNhNmE0ZTZhMjgyMmMwNGRjYS4uMzUxY2I0ODU4NDExYTc4NDE0MTgzNjg1NDE3NmJlMzg4
NGQxZDRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTU0NSw2
ICs1NDUsMTAgQEAgcHVibGljOgogICAgIGJvb2wgaGFzU2VsZWN0ZWRSYW5nZSgpIGNvbnN0IHsg
cmV0dXJuIG1fZWRpdG9yU3RhdGUuc2VsZWN0aW9uSXNSYW5nZTsgfQogICAgIGJvb2wgaXNDb250
ZW50RWRpdGFibGUoKSBjb25zdCB7IHJldHVybiBtX2VkaXRvclN0YXRlLmlzQ29udGVudEVkaXRh
YmxlOyB9CiAKKyAgICB2b2lkIGluY3JlYXNlTGlzdExldmVsKCk7CisgICAgdm9pZCBkZWNyZWFz
ZUxpc3RMZXZlbCgpOworICAgIHZvaWQgY2hhbmdlTGlzdFR5cGUoKTsKKwogICAgIHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6Rm9udEF0dHJpYnV0ZXM+IGNhY2hlZEZvbnRBdHRyaWJ1dGVzQXRTZWxl
Y3Rpb25TdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVkRm9udEF0dHJpYnV0ZXNBdFNlbGVj
dGlvblN0YXJ0OyB9CiAKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRleCA1NjBl
YTUzMGUyODFmZjQ3Mzk2Zjg1YThhMTdiYzVjM2UyOGJjOTM0Li41YzQxNDI1NmY5YjU2OGRkYTVh
NjhlM2JhMjkyYWZmNjkzNzc0YjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC0xMzQsNiArMTM0LDIzIEBA
IHR5cGVkZWYgc3RkOjpwYWlyPFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3Qs
IEludGVyYWN0aW9uSW5mb3JtYXRpb25DCiAgICAgTShhbGlnbkNlbnRlcikgXAogICAgIE0oYWxp
Z25KdXN0aWZpZWQpCiAKKyNkZWZpbmUgRk9SX0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRWSUVXX0FD
VElPTihNKSBcCisgICAgTShfYWxpZ25DZW50ZXIpIFwKKyAgICBNKF9hbGlnbkp1c3RpZmllZCkg
XAorICAgIE0oX2FsaWduTGVmdCkgXAorICAgIE0oX2FsaWduUmlnaHQpIFwKKyAgICBNKF9pbmRl
bnQpIFwKKyAgICBNKF9vdXRkZW50KSBcCisgICAgTShfdG9nZ2xlU3RyaWtlVGhyb3VnaCkgXAor
ICAgIE0oX2luc2VydE9yZGVyZWRMaXN0KSBcCisgICAgTShfaW5zZXJ0VW5vcmRlcmVkTGlzdCkg
XAorICAgIE0oX2luc2VydE5lc3RlZE9yZGVyZWRMaXN0KSBcCisgICAgTShfaW5zZXJ0TmVzdGVk
VW5vcmRlcmVkTGlzdCkgXAorICAgIE0oX2luY3JlYXNlTGlzdExldmVsKSBcCisgICAgTShfZGVj
cmVhc2VMaXN0TGV2ZWwpIFwKKyAgICBNKF9jaGFuZ2VMaXN0VHlwZSkgXAorICAgIE0oX3Bhc3Rl
QXNRdW90YXRpb24pCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgV0tTZWxlY3Rpb25E
cmF3aW5nSW5mbyB7CkBAIC0zMzksNyArMzU2LDcgQEAgc3RydWN0IFdLQXV0b0NvcnJlY3Rpb25E
YXRhIHsKICNkZWZpbmUgREVDTEFSRV9XS0NPTlRFTlRWSUVXX0FDVElPTl9GT1JfV0VCX1ZJRVco
X2FjdGlvbikgXAogICAgIC0gKHZvaWQpX2FjdGlvbiAjIyBGb3JXZWJWaWV3OihpZClzZW5kZXI7
CiBGT1JfRUFDSF9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09OVEVOVFZJRVdfQUNU
SU9OX0ZPUl9XRUJfVklFVykKLURFQ0xBUkVfV0tDT05URU5UVklFV19BQ1RJT05fRk9SX1dFQl9W
SUVXKF9wYXN0ZUFzUXVvdGF0aW9uKQorRk9SX0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRWSUVXX0FD
VElPTihERUNMQVJFX1dLQ09OVEVOVFZJRVdfQUNUSU9OX0ZPUl9XRUJfVklFVykKICN1bmRlZiBE
RUNMQVJFX1dLQ09OVEVOVFZJRVdfQUNUSU9OX0ZPUl9XRUJfVklFVwogCiAtICh2b2lkKXNldEZv
bnRGb3JXZWJWaWV3OihVSUZvbnQgKilmb250RmFtaWx5IHNlbmRlcjooaWQpc2VuZGVyOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24ubW0KaW5kZXggNjE0YWQ5ZjhlMWQxOTZhNWU3MDczYmExOWI0YmJiYmFlNTViYmMwYS4u
YjM1Zjc1NWI0ZDNiZGU2Y2I1YjM3ZTVlMjU5ZDQwMWJkNzMwYmExYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
CkBAIC0yMTk0LDggKzIxOTQsNyBAQCBzdGF0aWMgdm9pZCBjYW5jZWxQb3RlbnRpYWxUYXBJZk5l
Y2Vzc2FyeShXS0NvbnRlbnRWaWV3KiBjb250ZW50VmlldykKICAgICB9CiAKIEZPUl9FQUNIX1dL
Q09OVEVOVFZJRVdfQUNUSU9OKEZPUldBUkRfQUNUSU9OX1RPX1dLV0VCVklFVykKLQotRk9SV0FS
RF9BQ1RJT05fVE9fV0tXRUJWSUVXKF9wYXN0ZUFzUXVvdGF0aW9uKQorRk9SX0VBQ0hfUFJJVkFU
RV9XS0NPTlRFTlRWSUVXX0FDVElPTihGT1JXQVJEX0FDVElPTl9UT19XS1dFQlZJRVcpCiAKICN1
bmRlZiBGT1JXQVJEX0FDVElPTl9UT19XS1dFQlZJRVcKIApAQCAtMjI4NSwxOCArMjI4NCwzNyBA
QCBGT1JXQVJEX0FDVElPTl9UT19XS1dFQlZJRVcoX3Bhc3RlQXNRdW90YXRpb24pCiAgICAgW1tV
SUtleWJvYXJkSW1wbCBzaGFyZWRJbnN0YW5jZV0gcmVwbGFjZVRleHQ6c2VuZGVyXTsKIH0KIAot
I2RlZmluZSBXRUJDT1JFX0NPTU1BTkRfRk9SX1dFQlZJRVcoY29tbWFuZCkgLSAodm9pZCljb21t
YW5kICMjIEZvcldlYlZpZXc6KGlkKXNlbmRlciB7IF9wYWdlLT5leGVjdXRlRWRpdENvbW1hbmQo
I2NvbW1hbmQgIyMgX3MpOyB9Ci0KKyNkZWZpbmUgV0VCQ09SRV9DT01NQU5EX0ZPUl9XRUJWSUVX
KGNvbW1hbmQpIFwKKyAgICAtICh2b2lkKV8gIyMgY29tbWFuZCAjIyBGb3JXZWJWaWV3OihpZClz
ZW5kZXIgeyBfcGFnZS0+ZXhlY3V0ZUVkaXRDb21tYW5kKCNjb21tYW5kICMjIF9zKTsgfSBcCisg
ICAgLSAodm9pZCljb21tYW5kICMjIEZvcldlYlZpZXc6KGlkKXNlbmRlciB7IFtzZWxmIF8gIyMg
Y29tbWFuZCAjIyBGb3JXZWJWaWV3OnNlbmRlcl07IH0KIFdFQkNPUkVfQ09NTUFORF9GT1JfV0VC
VklFVyhpbnNlcnRPcmRlcmVkTGlzdCk7CiBXRUJDT1JFX0NPTU1BTkRfRk9SX1dFQlZJRVcoaW5z
ZXJ0VW5vcmRlcmVkTGlzdCk7CitXRUJDT1JFX0NPTU1BTkRfRk9SX1dFQlZJRVcoaW5zZXJ0TmVz
dGVkT3JkZXJlZExpc3QpOworV0VCQ09SRV9DT01NQU5EX0ZPUl9XRUJWSUVXKGluc2VydE5lc3Rl
ZFVub3JkZXJlZExpc3QpOwogV0VCQ09SRV9DT01NQU5EX0ZPUl9XRUJWSUVXKGluZGVudCk7CiBX
RUJDT1JFX0NPTU1BTkRfRk9SX1dFQlZJRVcob3V0ZGVudCk7CiBXRUJDT1JFX0NPTU1BTkRfRk9S
X1dFQlZJRVcoYWxpZ25MZWZ0KTsKIFdFQkNPUkVfQ09NTUFORF9GT1JfV0VCVklFVyhhbGlnblJp
Z2h0KTsKIFdFQkNPUkVfQ09NTUFORF9GT1JfV0VCVklFVyhhbGlnbkNlbnRlcik7CiBXRUJDT1JF
X0NPTU1BTkRfRk9SX1dFQlZJRVcoYWxpZ25KdXN0aWZpZWQpOworI3VuZGVmIFdFQkNPUkVfQ09N
TUFORF9GT1JfV0VCVklFVwogCi0tICh2b2lkKXRvZ2dsZVN0cmlrZVRocm91Z2hGb3JXZWJWaWV3
OihpZClzZW5kZXIKKy0gKHZvaWQpX2luY3JlYXNlTGlzdExldmVsRm9yV2ViVmlldzooaWQpc2Vu
ZGVyCit7CisgICAgX3BhZ2UtPmluY3JlYXNlTGlzdExldmVsKCk7Cit9CisKKy0gKHZvaWQpX2Rl
Y3JlYXNlTGlzdExldmVsRm9yV2ViVmlldzooaWQpc2VuZGVyCit7CisgICAgX3BhZ2UtPmRlY3Jl
YXNlTGlzdExldmVsKCk7Cit9CisKKy0gKHZvaWQpX2NoYW5nZUxpc3RUeXBlRm9yV2ViVmlldzoo
aWQpc2VuZGVyCit7CisgICAgX3BhZ2UtPmNoYW5nZUxpc3RUeXBlKCk7Cit9CisKKy0gKHZvaWQp
X3RvZ2dsZVN0cmlrZVRocm91Z2hGb3JXZWJWaWV3OihpZClzZW5kZXIKIHsKICAgICBfcGFnZS0+
ZXhlY3V0ZUVkaXRDb21tYW5kKCJTdHJpa2VUaHJvdWdoIl9zKTsKIH0KQEAgLTIzMTEsNyArMjMy
OSw3IEBAIFdFQkNPUkVfQ09NTUFORF9GT1JfV0VCVklFVyhhbGlnbkp1c3RpZmllZCk7CiAgICAg
X3BhZ2UtPmV4ZWN1dGVFZGl0Q29tbWFuZCgiRm9udFNpemVEZWx0YSJfcywgIi0xIl9zKTsKIH0K
IAotLSAodm9pZClzZXRGb250Rm9yV2ViVmlldzooVUlGb250ICopZm9udCBzZW5kZXI6KGlkKXNl
bmRlcgorLSAodm9pZClfc2V0Rm9udEZvcldlYlZpZXc6KFVJRm9udCAqKWZvbnQgc2VuZGVyOihp
ZClzZW5kZXIKIHsKICAgICBXZWJDb3JlOjpGb250Q2hhbmdlcyBjaGFuZ2VzOwogICAgIGNoYW5n
ZXMuc2V0Rm9udEZhbWlseShmb250LmZhbWlseU5hbWUpOwpAQCAtMjMyMiwxOSArMjM0MCwzNyBA
QCBXRUJDT1JFX0NPTU1BTkRfRk9SX1dFQlZJRVcoYWxpZ25KdXN0aWZpZWQpOwogICAgIF9wYWdl
LT5jaGFuZ2VGb250KFdURk1vdmUoY2hhbmdlcykpOwogfQogCi0tICh2b2lkKXNldEZvbnRTaXpl
Rm9yV2ViVmlldzooQ0dGbG9hdClmb250U2l6ZSBzZW5kZXI6KGlkKXNlbmRlcgorLSAodm9pZClf
c2V0Rm9udFNpemVGb3JXZWJWaWV3OihDR0Zsb2F0KWZvbnRTaXplIHNlbmRlcjooaWQpc2VuZGVy
CiB7CiAgICAgV2ViQ29yZTo6Rm9udENoYW5nZXMgY2hhbmdlczsKICAgICBjaGFuZ2VzLnNldEZv
bnRTaXplKGZvbnRTaXplKTsKICAgICBfcGFnZS0+Y2hhbmdlRm9udChXVEZNb3ZlKGNoYW5nZXMp
KTsKIH0KIAotLSAodm9pZClzZXRUZXh0Q29sb3JGb3JXZWJWaWV3OihVSUNvbG9yICopY29sb3Ig
c2VuZGVyOihpZClzZW5kZXIKKy0gKHZvaWQpX3NldFRleHRDb2xvckZvcldlYlZpZXc6KFVJQ29s
b3IgKiljb2xvciBzZW5kZXI6KGlkKXNlbmRlcgogewogICAgIF9wYWdlLT5leGVjdXRlRWRpdENv
bW1hbmQoIkZvcmVDb2xvciJfcywgV2ViQ29yZTo6Q29sb3IoY29sb3IuQ0dDb2xvcikuc2VyaWFs
aXplZCgpKTsKIH0KIAotI3VuZGVmIFdFQkNPUkVfQ09NTUFORF9GT1JfV0VCVklFVworLSAodm9p
ZCl0b2dnbGVTdHJpa2VUaHJvdWdoRm9yV2ViVmlldzooaWQpc2VuZGVyCit7CisgICAgW3NlbGYg
X3RvZ2dsZVN0cmlrZVRocm91Z2hGb3JXZWJWaWV3OnNlbmRlcl07Cit9CisKKy0gKHZvaWQpc2V0
Rm9udEZvcldlYlZpZXc6KFVJRm9udCAqKWZvbnQgc2VuZGVyOihpZClzZW5kZXIKK3sKKyAgICBb
c2VsZiBfc2V0Rm9udEZvcldlYlZpZXc6Zm9udCBzZW5kZXI6c2VuZGVyXTsKK30KKworLSAodm9p
ZClzZXRGb250U2l6ZUZvcldlYlZpZXc6KENHRmxvYXQpZm9udFNpemUgc2VuZGVyOihpZClzZW5k
ZXIKK3sKKyAgICBbc2VsZiBfc2V0Rm9udFNpemVGb3JXZWJWaWV3OmZvbnRTaXplIHNlbmRlcjpz
ZW5kZXJdOworfQorCistICh2b2lkKXNldFRleHRDb2xvckZvcldlYlZpZXc6KFVJQ29sb3IgKilj
b2xvciBzZW5kZXI6KGlkKXNlbmRlcgoreworICAgIFtzZWxmIF9zZXRUZXh0Q29sb3JGb3JXZWJW
aWV3OmNvbG9yIHNlbmRlcjpzZW5kZXJdOworfQogCiAtIChOU0RpY3Rpb25hcnkgKil0ZXh0U3R5
bGluZ0F0UG9zaXRpb246KFVJVGV4dFBvc2l0aW9uICopcG9zaXRpb24gaW5EaXJlY3Rpb246KFVJ
VGV4dFN0b3JhZ2VEaXJlY3Rpb24pZGlyZWN0aW9uCiB7CkBAIC0yMzkyLDExICsyNDI4LDE2IEBA
IFdFQkNPUkVfQ09NTUFORF9GT1JfV0VCVklFVyhhbGlnbkp1c3RpZmllZCk7CiAgICAgICAgIHJl
dHVybiBlZGl0b3JTdGF0ZS5pc0NvbnRlbnRSaWNobHlFZGl0YWJsZSAmJiBlZGl0b3JTdGF0ZS5z
ZWxlY3Rpb25Jc1JhbmdlICYmICFfc2hvd2luZ1RleHRTdHlsZU9wdGlvbnM7CiAgICAgaWYgKF9z
aG93aW5nVGV4dFN0eWxlT3B0aW9ucykKICAgICAgICAgcmV0dXJuIChhY3Rpb24gPT0gQHNlbGVj
dG9yKHRvZ2dsZUJvbGRmYWNlOikgfHwgYWN0aW9uID09IEBzZWxlY3Rvcih0b2dnbGVJdGFsaWNz
OikgfHwgYWN0aW9uID09IEBzZWxlY3Rvcih0b2dnbGVVbmRlcmxpbmU6KSk7Ci0gICAgaWYgKGFj
dGlvbiA9PSBAc2VsZWN0b3IodG9nZ2xlQm9sZGZhY2U6KSB8fCBhY3Rpb24gPT0gQHNlbGVjdG9y
KHRvZ2dsZUl0YWxpY3M6KSB8fCBhY3Rpb24gPT0gQHNlbGVjdG9yKHRvZ2dsZVVuZGVybGluZTop
IHx8IGFjdGlvbiA9PSBAc2VsZWN0b3IodG9nZ2xlU3RyaWtlVGhyb3VnaDopCi0gICAgICAgIHx8
IGFjdGlvbiA9PSBAc2VsZWN0b3IoaW5zZXJ0T3JkZXJlZExpc3Q6KSB8fCBhY3Rpb24gPT0gQHNl
bGVjdG9yKGluc2VydFVub3JkZXJlZExpc3Q6KSB8fCBhY3Rpb24gPT0gQHNlbGVjdG9yKGluZGVu
dDopIHx8IGFjdGlvbiA9PSBAc2VsZWN0b3Iob3V0ZGVudDopCisgICAgLy8gRklYTUU6IFNvbWUg
b2YgdGhlIGZvbGxvd2luZyBjaGVja3Mgc2hvdWxkIGJlIHJlbW92ZWQgb25jZSBpbnRlcm5hbCBj
bGllbnRzIG1vdmUgdG8gdGhlIHVuZGVyc2NvcmUtcHJlZml4ZWQgdmVyc2lvbnMuCisgICAgaWYg
KGFjdGlvbiA9PSBAc2VsZWN0b3IodG9nZ2xlQm9sZGZhY2U6KSB8fCBhY3Rpb24gPT0gQHNlbGVj
dG9yKHRvZ2dsZUl0YWxpY3M6KSB8fCBhY3Rpb24gPT0gQHNlbGVjdG9yKHRvZ2dsZVVuZGVybGlu
ZTopIHx8IGFjdGlvbiA9PSBAc2VsZWN0b3IoX3RvZ2dsZVN0cmlrZVRocm91Z2g6KQorICAgICAg
ICB8fCBhY3Rpb24gPT0gQHNlbGVjdG9yKF9hbGlnbkxlZnQ6KSB8fCBhY3Rpb24gPT0gQHNlbGVj
dG9yKF9hbGlnblJpZ2h0OikgfHwgYWN0aW9uID09IEBzZWxlY3RvcihfYWxpZ25DZW50ZXI6KSB8
fCBhY3Rpb24gPT0gQHNlbGVjdG9yKF9hbGlnbkp1c3RpZmllZDopCisgICAgICAgIHx8IGFjdGlv
biA9PSBAc2VsZWN0b3IoX3NldFRleHRDb2xvcjpzZW5kZXI6KSB8fCBhY3Rpb24gPT0gQHNlbGVj
dG9yKF9zZXRGb250OnNlbmRlcjopIHx8IGFjdGlvbiA9PSBAc2VsZWN0b3IoX3NldEZvbnRTaXpl
OnNlbmRlcjopCisgICAgICAgIHx8IGFjdGlvbiA9PSBAc2VsZWN0b3IoX2luc2VydE9yZGVyZWRM
aXN0OikgfHwgYWN0aW9uID09IEBzZWxlY3RvcihfaW5zZXJ0VW5vcmRlcmVkTGlzdDopIHx8IGFj
dGlvbiA9PSBAc2VsZWN0b3IoX2luc2VydE5lc3RlZE9yZGVyZWRMaXN0OikgfHwgYWN0aW9uID09
IEBzZWxlY3RvcihfaW5zZXJ0TmVzdGVkVW5vcmRlcmVkTGlzdDopCisgICAgICAgIHx8IGFjdGlv
biA9PSBAc2VsZWN0b3IoX2luY3JlYXNlTGlzdExldmVsOikgfHwgYWN0aW9uID09IEBzZWxlY3Rv
cihfZGVjcmVhc2VMaXN0TGV2ZWw6KSB8fCBhY3Rpb24gPT0gQHNlbGVjdG9yKF9jaGFuZ2VMaXN0
VHlwZTopIHx8IGFjdGlvbiA9PSBAc2VsZWN0b3IoX2luZGVudDopIHx8IGFjdGlvbiA9PSBAc2Vs
ZWN0b3IoX291dGRlbnQ6KQorICAgICAgICB8fCBhY3Rpb24gPT0gQHNlbGVjdG9yKGluY3JlYXNl
U2l6ZTopIHx8IGFjdGlvbiA9PSBAc2VsZWN0b3IoZGVjcmVhc2VTaXplOikKKyAgICAgICAgfHwg
YWN0aW9uID09IEBzZWxlY3Rvcih0b2dnbGVTdHJpa2VUaHJvdWdoOikgfHwgYWN0aW9uID09IEBz
ZWxlY3RvcihpbnNlcnRPcmRlcmVkTGlzdDopIHx8IGFjdGlvbiA9PSBAc2VsZWN0b3IoaW5zZXJ0
VW5vcmRlcmVkTGlzdDopIHx8IGFjdGlvbiA9PSBAc2VsZWN0b3IoaW5kZW50OikgfHwgYWN0aW9u
ID09IEBzZWxlY3RvcihvdXRkZW50OikKICAgICAgICAgfHwgYWN0aW9uID09IEBzZWxlY3Rvcihh
bGlnbkxlZnQ6KSB8fCBhY3Rpb24gPT0gQHNlbGVjdG9yKGFsaWduUmlnaHQ6KSB8fCBhY3Rpb24g
PT0gQHNlbGVjdG9yKGFsaWduQ2VudGVyOikgfHwgYWN0aW9uID09IEBzZWxlY3RvcihhbGlnbkp1
c3RpZmllZDopCi0gICAgICAgIHx8IGFjdGlvbiA9PSBAc2VsZWN0b3IoaW5jcmVhc2VTaXplOikg
fHwgYWN0aW9uID09IEBzZWxlY3RvcihkZWNyZWFzZVNpemU6KSB8fCBhY3Rpb24gPT0gQHNlbGVj
dG9yKHNldFRleHRDb2xvcjpzZW5kZXI6KQotICAgICAgICB8fCBhY3Rpb24gPT0gQHNlbGVjdG9y
KHNldEZvbnQ6c2VuZGVyOikgfHwgYWN0aW9uID09IEBzZWxlY3RvcihzZXRGb250U2l6ZTpzZW5k
ZXI6KSkgeworICAgICAgICB8fCBhY3Rpb24gPT0gQHNlbGVjdG9yKHNldFRleHRDb2xvcjpzZW5k
ZXI6KSB8fCBhY3Rpb24gPT0gQHNlbGVjdG9yKHNldEZvbnQ6c2VuZGVyOikgfHwgYWN0aW9uID09
IEBzZWxlY3RvcihzZXRGb250U2l6ZTpzZW5kZXI6KSkgewogICAgICAgICAvLyBGSVhNRTogVGhp
cyBzaG91bGQgYmUgbW9yZSBudWFuY2VkIGluIHRoZSBmdXR1cmUsIHJhdGhlciB0aGFuIHJldHVy
bmluZyBZRVMgZm9yIGFsbCByaWNobHkgZWRpdGFibGUgYXJlYXMuIEZvciBpbnN0YW5jZSwgb3V0
ZGVudDogc2hvdWxkIGJlIGRpc2FibGVkIHdoZW4gdGhlIHNlbGVjdGlvbiBpcyBhbHJlYWR5CiAg
ICAgICAgIC8vIGF0IHRoZSBvdXRlcm1vc3QgaW5kZW50YXRpb24gbGV2ZWwuCiAgICAgICAgIHJl
dHVybiBlZGl0b3JTdGF0ZS5pc0NvbnRlbnRSaWNobHlFZGl0YWJsZTsKQEAgLTI0MDQsNyArMjQ0
NSw3IEBAIFdFQkNPUkVfQ09NTUFORF9GT1JfV0VCVklFVyhhbGlnbkp1c3RpZmllZCk7CiAgICAg
aWYgKGFjdGlvbiA9PSBAc2VsZWN0b3IoY3V0OikpCiAgICAgICAgIHJldHVybiAhZWRpdG9yU3Rh
dGUuaXNJblBhc3N3b3JkRmllbGQgJiYgZWRpdG9yU3RhdGUuaXNDb250ZW50RWRpdGFibGUgJiYg
ZWRpdG9yU3RhdGUuc2VsZWN0aW9uSXNSYW5nZTsKICAgICAKLSAgICBpZiAoYWN0aW9uID09IEBz
ZWxlY3RvcihwYXN0ZTopKSB7CisgICAgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3IocGFzdGU6KSB8
fCBhY3Rpb24gPT0gQHNlbGVjdG9yKF9wYXN0ZUFzUXVvdGF0aW9uOikpIHsKICAgICAgICAgaWYg
KGVkaXRvclN0YXRlLnNlbGVjdGlvbklzTm9uZSB8fCAhZWRpdG9yU3RhdGUuaXNDb250ZW50RWRp
dGFibGUpCiAgICAgICAgICAgICByZXR1cm4gTk87CiAgICAgICAgIFVJUGFzdGVib2FyZCAqcGFz
dGVib2FyZCA9IFtVSVBhc3RlYm9hcmQgZ2VuZXJhbFBhc3RlYm9hcmRdOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA2MmRiYTNmYjI4NzcxMGQw
NDA2ODRhZjAyNWNjMDAyZDQyNzg4YmNhLi5kODJkNjUyZTlmMTEwNmFlYjBhZjQwYWYxMjI1ODYw
YWVlY2E3MWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcApAQCAtMTE1MCw2ICsxMTUwLDIxIEBAIHZvaWQgV2ViUGFnZTo6c2V0RWRpdGFibGUoYm9v
bCBlZGl0YWJsZSkKICAgICB9CiB9CiAKK3ZvaWQgV2ViUGFnZTo6aW5jcmVhc2VMaXN0TGV2ZWwo
KQoreworICAgIC8vIEZJWE1FOiBOb3QgaW1wbGVtZW50ZWQuCit9CisKK3ZvaWQgV2ViUGFnZTo6
ZGVjcmVhc2VMaXN0TGV2ZWwoKQoreworICAgIC8vIEZJWE1FOiBOb3QgaW1wbGVtZW50ZWQuCit9
CisKK3ZvaWQgV2ViUGFnZTo6Y2hhbmdlTGlzdFR5cGUoKQoreworICAgIC8vIEZJWE1FOiBOb3Qg
aW1wbGVtZW50ZWQuCit9CisKIGJvb2wgV2ViUGFnZTo6aXNFZGl0aW5nQ29tbWFuZEVuYWJsZWQo
Y29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSkKIHsKICAgICBGcmFtZSYgZnJhbWUgPSBtX3BhZ2Ut
PmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDQwNzZlYTdiNzQ1MjkzZWRjZTA3N2I4
MjhmYzVjM2M2NWFkNmZhOTQuLjcyMjc0ZGQwZmZhMjdiY2I3MTA1MmQ0MDRmOGYyZGQ0MDhkNDY5
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTEx
ODQsNiArMTE4NCwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgZXhlY3V0ZUVkaXRDb21tYW5kKGNv
bnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgc2V0RWRpdGFibGUoYm9vbCk7
CiAKKyAgICB2b2lkIGluY3JlYXNlTGlzdExldmVsKCk7CisgICAgdm9pZCBkZWNyZWFzZUxpc3RM
ZXZlbCgpOworICAgIHZvaWQgY2hhbmdlTGlzdFR5cGUoKTsKKwogICAgIHZvaWQgc2V0TmVlZHNG
b250QXR0cmlidXRlcyhib29sKTsKIAogICAgIHZvaWQgbW91c2VFdmVudChjb25zdCBXZWJNb3Vz
ZUV2ZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbgppbmRleCBmZDQzMGQ2OWFlMjU0NWIyMDlmMjI2N2E3ZWFlNTZkYjI1
ZDkwZmU0Li5hYzYzOTlmYTY2MTVjMTBiOTY4NWIzZWM0M2ZiOWEyYTFjNDViNGEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMu
aW4KQEAgLTIxMSw2ICsyMTEsMTAgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZl
ciB7CiAgICAgVmFsaWRhdGVDb21tYW5kKFN0cmluZyBuYW1lLCBXZWJLaXQ6OkNhbGxiYWNrSUQg
Y2FsbGJhY2tJRCkKICAgICBFeGVjdXRlRWRpdENvbW1hbmQoU3RyaW5nIG5hbWUsIFN0cmluZyBh
cmd1bWVudCkKIAorICAgIEluY3JlYXNlTGlzdExldmVsKCkKKyAgICBEZWNyZWFzZUxpc3RMZXZl
bCgpCisgICAgQ2hhbmdlTGlzdFR5cGUoKQorCiAgICAgU2V0TmVlZHNGb250QXR0cmlidXRlcyhi
b29sIG5lZWRzRm9udEF0dHJpYnV0ZXMpCiAKICAgICBSZXF1ZXN0Rm9udEF0dHJpYnV0ZXNBdFNl
bGVjdGlvblN0YXJ0KFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDdlNDc3OTIzNjI5NDg1YjU4
ZjJlZDc3MmJmMWMxNWRjMWU0M2FkMzguLjBhZjE2Yjg1NmEyOGUwNTQ0YjM4MjA2MTFiYWYwMzU0
ZDBhZTU4ZDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsNiArMSwyOSBAQAorMjAxOC0xMS0wOCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hz
aWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEludHJvZHVjZSBXS1dlYlZpZXcgU1BJ
IHRvIGluc2VydCBuZXN0ZWQgb3JkZXJlZCBhbmQgdW5vcmRlcmVkIGxpc3RzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE0MTAKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzQ1ODk4NjEwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE1vdmUgV0tXZWJWaWV3RWRpdEFjdGlvbnMgZnJvbSBpT1MgdG8gV2Vi
S2l0Q29jb2EsIGFuZCBlbmFibGUgdGhlIHJlbGV2YW50IFdLV2ViVmlld0VkaXRBY3Rpb25zIHRl
c3RzIG9uIG1hY09TLgorICAgICAgICBBZGRpdGlvbmFsbHksIGFkZCBuZXcgQVBJIHRlc3RzIHRv
IHZlcmlmeSB0aGF0IGAtX3Bhc3RlQXNRdW90YXRpb246YCBhbmQgYC1faW5zZXJ0TmVzdGVkKFVu
KU9yZGVyZWRMaXN0OmAgYXJlCisgICAgICAgIGhvb2tlZCB1cCB0byB0aGVpciByZXNwZWN0aXZl
IGVkaXRpbmcgY29tbWFuZHMuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1dLV2ViVmlld0VkaXRBY3Rpb25zLm1tOiBSZW5hbWVkIGZyb20gVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvV0tXZWJWaWV3RWRpdEFjdGlvbnMubW0uCisgICAg
ICAgICgtW1Rlc3RXS1dlYlZpZXcgcXVlcnlTZWxlY3RvckV4aXN0czpdKToKKyAgICAgICAgKC1b
VGVzdFdLV2ViVmlldyBpbnNlcnRTdHJpbmc6XSk6CisKKyAgICAgICAgQWRkIGEgaGVscGVyIG1l
dGhvZCB0byBpbnNlcnQgYSBwaWVjZSBvZiB0ZXh0LiBUaGlzIGFic3RyYWN0cyBwbGF0Zm9ybSBk
aWZmZXJlbmNlcyBiZXR3ZWVuIGlPUyBhbmQgbWFjT1MsIGJ5CisgICAgICAgIGludm9raW5nIHRo
ZSBXS1dlYlZpZXcgZGlyZWN0bHkgb24gbWFjT1MgYW5kIGNhbGxpbmcgb24gdGhlIGNvbnRlbnQg
dmlldyBvbiBpT1MuCisKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OndlYlZpZXdGb3JFZGl0QWN0
aW9uVGVzdGluZyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAxOC0xMS0w
OCAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgogCi1vbmFsIHN1
cHBvcnRlZCBpbWFnZSBmb3JtYXRzCisgICAgICAgIEFkZCBhbiBTUEkgdG8gYWxsb3cgV2ViVmll
dyBjbGllbnRzIHRvIGFkZCBhZGRpdGlvbmFsIHN1cHBvcnRlZCBpbWFnZSBmb3JtYXRzCiAgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA0NTQKIAogICAg
ICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDZlZWY3MzU1ZGE2ZDFmOWNkMDVjZWFlODNhMDQ1NzhkNjkxN2IwZDguLmQ1YThjYWE4ZjM2ZGRm
M2JmYzk3OWU0MGY2MjRiYjA3OWY5NjBmYWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04
NDYsNiArODQ2LDcgQEAKIAkJRjQ2QTA5NUExRUQ4QTZFNjAwRDRBQTU1IC8qIGFwcGxlLmdpZiBp
biBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDdE
MzBFQjFFRDI4NjE5MDAwNDgyRTEgLyogYXBwbGUuZ2lmICovOyB9OwogCQlGNDZBMDk1QjFFRDhB
NkU2MDBENEFBNTUgLyogZ2lmLWFuZC1maWxlLWlucHV0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3RDMwRUQxRUQyOEE2QzAwMDQ4
MkUxIC8qIGdpZi1hbmQtZmlsZS1pbnB1dC5odG1sICovOyB9OwogCQlGNDc3Mjg5OTFFNEFFM0Mx
MDA3QUJGNkEgLyogZnVsbC1wYWdlLWNvbnRlbnRlZGl0YWJsZS5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NzcyODk4MUU0QUUzQUQw
MDdBQkY2QSAvKiBmdWxsLXBhZ2UtY29udGVudGVkaXRhYmxlLmh0bWwgKi87IH07CisJCUY0ODEx
RTU5MjE5NDBCREUwMEE1RTBGRCAvKiBXS1dlYlZpZXdFZGl0QWN0aW9ucy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0ODExRTU4MjE5NDBCNDQwMEE1
RTBGRCAvKiBXS1dlYlZpZXdFZGl0QWN0aW9ucy5tbSAqLzsgfTsKIAkJRjQ4NTZDQTMxRTY0OUVB
ODAwOUQ3RUU3IC8qIGF0dGFjaG1lbnQtZWxlbWVudC5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0ODU2Q0EyMUU2NDk4QTgwMDlEN0VF
NyAvKiBhdHRhY2htZW50LWVsZW1lbnQuaHRtbCAqLzsgfTsKIAkJRjQ4NkIxRDAxRjY3OTUyMzAw
RjM0QkREIC8qIERhdGFUcmFuc2Zlci1zZXREcmFnSW1hZ2UuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDg2QjFDRjFGNjc5NEZGMDBG
MzRCREQgLyogRGF0YVRyYW5zZmVyLXNldERyYWdJbWFnZS5odG1sICovOyB9OwogCQlGNEEzMkVD
NDFGMDVGMzg1MDA0N0M1NDQgLyogZHJhZ3N0YXJ0LWNoYW5nZS1zZWxlY3Rpb24tb2Zmc2NyZWVu
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjRBMzJFQzMxRjA1RjM3ODAwNDdDNTQ0IC8qIGRyYWdzdGFydC1jaGFuZ2Utc2VsZWN0aW9u
LW9mZnNjcmVlbi5odG1sICovOyB9OwpAQCAtODc4LDcgKzg3OSw2IEBACiAJCUY0RjVCQjUyMjE2
NjdCQUEwMDJEMDZCOSAvKiBUZXN0Rm9udE9wdGlvbnMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEY1QkI1MTIxNjY3QkFBMDAyRDA2QjkgLyogVGVz
dEZvbnRPcHRpb25zLm1tICovOyB9OwogCQlGNEZBOTE4MTFFNjE4NDlCMDA3QjhDMUQgLyogV0tX
ZWJWaWV3TWFjRWRpdGluZ1Rlc3RzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjRGQTkxN0YxRTYxODQ5QjAwN0I4QzFEIC8qIFdLV2ViVmlld01hY0Vk
aXRpbmdUZXN0cy5tbSAqLzsgfTsKIAkJRjRGQTkxODMxRTYxODU3QjAwN0I4QzFEIC8qIGRvdWJs
ZS1jbGljay1kb2VzLW5vdC1zZWxlY3QtdHJhaWxpbmctc3BhY2UuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEZBOTE4MjFFNjE4NTY2
MDA3QjhDMUQgLyogZG91YmxlLWNsaWNrLWRvZXMtbm90LXNlbGVjdC10cmFpbGluZy1zcGFjZS5o
dG1sICovOyB9OwotCQlGNEZCNjgyNTIxNjQzRUZDMDAzNDYwN0EgLyogV0tXZWJWaWV3RWRpdEFj
dGlvbnMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NEZCNjgyNDIxNjQzRUZDMDAzNDYwN0EgLyogV0tXZWJWaWV3RWRpdEFjdGlvbnMubW0gKi87IH07
CiAJCUY0RkMwNzc3MjBGMDEzQjYwMENBMDQzQyAvKiBzaWduaWZpY2FudC10ZXh0LW1pbGVzdG9u
ZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY0RkMwNzc2MjBGMDEwODEwMENBMDQzQyAvKiBzaWduaWZpY2FudC10ZXh0LW1pbGVzdG9u
ZS5odG1sICovOyB9OwogCQlGNjYwQUExMTE1QTVGNjMxMDAzQTEyNDMgLyogR2V0SW5qZWN0ZWRC
dW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhQ2FsbGJhY2tfQnVuZGxlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2NjBBQTBGMTVBNUY2MjQwMDNB
MTI0MyAvKiBHZXRJbmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGFDYWxsYmFja19C
dW5kbGUuY3BwICovOyB9OwogCQlGNjYwQUExNTE1QTYxQUJGMDAzQTEyNDMgLyogSW5qZWN0ZWRC
dW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhQ2FsbGJhY2tXaW5zX0J1bmRsZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjYwQUExNDE1QTYxQUJG
MDAzQTEyNDMgLyogSW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhQ2FsbGJhY2tX
aW5zX0J1bmRsZS5jcHAgKi87IH07CkBAIC0yMTMxLDYgKzIxMzEsNyBAQAogCQlGNDc3Mjg5ODFF
NEFFM0FEMDA3QUJGNkEgLyogZnVsbC1wYWdlLWNvbnRlbnRlZGl0YWJsZS5odG1sICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dC5odG1sOyBwYXRoID0gImZ1bGwtcGFnZS1jb250ZW50ZWRpdGFibGUuaHRtbCI7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0N0QzMEVCMUVEMjg2MTkwMDA0ODJFMSAvKiBh
cHBsZS5naWYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBpbWFnZS5naWY7IHBhdGggPSBhcHBsZS5naWY7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUY0N0QzMEVEMUVEMjhBNkMwMDA0ODJFMSAvKiBnaWYtYW5kLWZpbGUtaW5wdXQuaHRtbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRt
bDsgcGF0aCA9ICJnaWYtYW5kLWZpbGUtaW5wdXQuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUY0ODExRTU4MjE5NDBCNDQwMEE1RTBGRCAvKiBXS1dlYlZpZXdFZGl0QWN0aW9u
cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld0Vk
aXRBY3Rpb25zLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDg1NkNBMjFFNjQ5
OEE4MDA5RDdFRTcgLyogYXR0YWNobWVudC1lbGVtZW50Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0
bWw7IHBhdGggPSAiYXR0YWNobWVudC1lbGVtZW50Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGNDg2QjFDRjFGNjc5NEZGMDBGMzRCREQgLyogRGF0YVRyYW5zZmVyLXNldERy
YWdJbWFnZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIkRhdGFUcmFuc2Zlci1z
ZXREcmFnSW1hZ2UuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0OTMyNDdD
MUY0NERGOEQwMDZGNDMzNiAvKiBVSUtpdFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVSUtpdFNQSS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjE2Niw3ICsyMTY3LDYgQEAKIAkJRjRG
NUJCNTEyMTY2N0JBQTAwMkQwNkI5IC8qIFRlc3RGb250T3B0aW9ucy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFRlc3RGb250T3B0aW9ucy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjRGQTkxN0YxRTYxODQ5QjAwN0I4QzFEIC8qIFdLV2ViVmlld01hY0VkaXRpbmdUZXN0cy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld01hY0Vk
aXRpbmdUZXN0cy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRGQTkxODIxRTYx
ODU2NjAwN0I4QzFEIC8qIGRvdWJsZS1jbGljay1kb2VzLW5vdC1zZWxlY3QtdHJhaWxpbmctc3Bh
Y2UuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgbmFtZSA9ICJkb3VibGUtY2xpY2stZG9lcy1u
b3Qtc2VsZWN0LXRyYWlsaW5nLXNwYWNlLmh0bWwiOyBwYXRoID0gIlRlc3RzL1dlYktpdENvY29h
L2RvdWJsZS1jbGljay1kb2VzLW5vdC1zZWxlY3QtdHJhaWxpbmctc3BhY2UuaHRtbCI7IHNvdXJj
ZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKLQkJRjRGQjY4MjQyMTY0M0VGQzAwMzQ2MDdBIC8qIFdL
V2ViVmlld0VkaXRBY3Rpb25zLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJWaWV3RWRp
dEFjdGlvbnMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RkMwNzc2MjBGMDEw
ODEwMENBMDQzQyAvKiBzaWduaWZpY2FudC10ZXh0LW1pbGVzdG9uZS5odG1sICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0g
InNpZ25pZmljYW50LXRleHQtbWlsZXN0b25lLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNjYwQUEwQzE1QTVGMDYxMDAzQTEyNDMgLyogR2V0SW5qZWN0ZWRCdW5kbGVJbml0
aWFsaXphdGlvblVzZXJEYXRhQ2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gR2V0SW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhQ2FsbGJh
Y2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNjYwQUEwRjE1QTVGNjI0MDAz
QTEyNDMgLyogR2V0SW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhQ2FsbGJhY2tf
QnVuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdldEluamVj
dGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YUNhbGxiYWNrX0J1bmRsZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTE0LDYgKzI1MTQsNyBAQAogCQkJCTdDNDE3RjMx
MUQxOUUxNDgwMEI4RUY1MyAvKiBXS1dlYlZpZXdEZWZhdWx0TmF2aWdhdGlvbkRlbGVnYXRlLm1t
ICovLAogCQkJCTQ2RTY2QThGMUYwRDc1NTkwMDI2RDgzQyAvKiBXS1dlYlZpZXdEaWFnbm9zdGlj
TG9nZ2luZy5tbSAqLywKIAkJCQkyREI2NDc4NzFGNDE2MUY3MDA1MUE4OUUgLyogV0tXZWJWaWV3
RG9lc05vdExvZ0R1cmluZ0luaXRpYWxpemF0aW9uLm1tICovLAorCQkJCUY0ODExRTU4MjE5NDBC
NDQwMEE1RTBGRCAvKiBXS1dlYlZpZXdFZGl0QWN0aW9ucy5tbSAqLywKIAkJCQkwRjNCOTRBNTFB
NzcyNjZDMDBERTMyNzIgLyogV0tXZWJWaWV3RXZhbHVhdGVKYXZhU2NyaXB0Lm1tICovLAogCQkJ
CUQzQkU1RTM0MUU0Q0U4NUUwMEZENTYzQSAvKiBXS1dlYlZpZXdHZXRDb250ZW50cy5tbSAqLywK
IAkJCQkzN0E5REJFNzIxM0I0QzkzMDBEMjYxQTIgLyogV0tXZWJWaWV3U2VydmVyVHJ1c3RLVkMu
bW0gKi8sCkBAIC0yNjMyLDcgKzI2MzMsNiBAQAogCQkJCUY0Njg0OUJEMUVFRjU4RTQwMEI5MzdG
RSAvKiBVSVBhc3RlYm9hcmRUZXN0cy5tbSAqLywKIAkJCQlGNDNFM0JCRTIwREFEQTFFMDBBNEU3
RUQgLyogV0tTY3JvbGxWaWV3VGVzdHMubW0gKi8sCiAJCQkJNTE0OTU4QkQxRjc0MjdBQzAwRTg3
QkFEIC8qIFdLV2ViVmlld0F1dG9maWxsVGVzdHMubW0gKi8sCi0JCQkJRjRGQjY4MjQyMTY0M0VG
QzAwMzQ2MDdBIC8qIFdLV2ViVmlld0VkaXRBY3Rpb25zLm1tICovLAogCQkJKTsKIAkJCXBhdGgg
PSBpb3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNDE3NSw3ICs0MTc1LDcgQEAK
IAkJCQk3QzQxN0YzMzFEMTlFMTQ4MDBCOEVGNTMgLyogV0tXZWJWaWV3RGVmYXVsdE5hdmlnYXRp
b25EZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQ2RTY2QTkwMUYwRDc1NTkwMDI2RDgz
QyAvKiBXS1dlYlZpZXdEaWFnbm9zdGljTG9nZ2luZy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJE
QjY0Nzg4MUY0MTYzRDYwMDUxQTg5RSAvKiBXS1dlYlZpZXdEb2VzTm90TG9nRHVyaW5nSW5pdGlh
bGl6YXRpb24ubW0gaW4gU291cmNlcyAqLywKLQkJCQlGNEZCNjgyNTIxNjQzRUZDMDAzNDYwN0Eg
LyogV0tXZWJWaWV3RWRpdEFjdGlvbnMubW0gaW4gU291cmNlcyAqLywKKwkJCQlGNDgxMUU1OTIx
OTQwQkRFMDBBNUUwRkQgLyogV0tXZWJWaWV3RWRpdEFjdGlvbnMubW0gaW4gU291cmNlcyAqLywK
IAkJCQkwRjNCOTRBNzFBNzcyNjc0MDBERTMyNzIgLyogV0tXZWJWaWV3RXZhbHVhdGVKYXZhU2Ny
aXB0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRDM0RTA4NzYxRTRFNDJFMTAwNUZGMTRBIC8qIFdL
V2ViVmlld0dldENvbnRlbnRzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRjRGQTkxODExRTYxODQ5
QjAwN0I4QzFEIC8qIFdLV2ViVmlld01hY0VkaXRpbmdUZXN0cy5tbSBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZp
ZXdFZGl0QWN0aW9ucy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
V0tXZWJWaWV3RWRpdEFjdGlvbnMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjE3N2EzMDhjNDE2MzA0NmQ2Zjgx
NDcyNTcyZTI0OTQ0YjNkZTAzZAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RWRpdEFjdGlvbnMubW0KQEAgLTAsMCArMSwy
NDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lmIFdLX0FQSV9FTkFC
TEVECisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJW
aWV3LmgiCisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgorCisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKyNpbXBvcnQgIlVJS2l0U1BJLmgiCisjaW1wb3J0IDxVSUtpdC9VSUZv
bnREZXNjcmlwdG9yLmg+CisjZW5kaWYKKworQGludGVyZmFjZSBUZXN0V0tXZWJWaWV3IChFZGl0
QWN0aW9uVGVzdGluZykKKy0gKEJPT0wpcXVlcnlTZWxlY3RvckV4aXN0czooTlNTdHJpbmcgKilx
dWVyeVNlbGVjdG9yOworLSAodm9pZClpbnNlcnRTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nOwor
QGVuZAorCitAaW1wbGVtZW50YXRpb24gVGVzdFdLV2ViVmlldyAoRWRpdEFjdGlvblRlc3Rpbmcp
CisKKy0gKEJPT0wpcXVlcnlTZWxlY3RvckV4aXN0czooTlNTdHJpbmcgKilxdWVyeVNlbGVjdG9y
Cit7CisgICAgcmV0dXJuIFtbc2VsZiBvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OltOU1N0
cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiISFkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAlQGApIiwg
cXVlcnlTZWxlY3Rvcl1dIGJvb2xWYWx1ZV07Cit9CisKKy0gKHZvaWQpaW5zZXJ0U3RyaW5nOihO
U1N0cmluZyAqKXN0cmluZworeworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgW1tzZWxm
IHRleHRJbnB1dENvbnRlbnRWaWV3XSBpbnNlcnRUZXh0OnN0cmluZ107CisjZWxzZQorICAgIFtz
ZWxmIGluc2VydFRleHQ6c3RyaW5nXTsKKyNlbmRpZgorfQorCitAZW5kCisKK25hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJIHsKKworc3RhdGljIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiB3ZWJWaWV3
Rm9yRWRpdEFjdGlvblRlc3RpbmcoKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tU
ZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgNDAwLCA0
MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPGRpdj5X
ZWJLaXQ8L2Rpdj4iXTsKKyAgICBbd2ViVmlldyBfc2V0RWRpdGFibGU6WUVTXTsKKyAgICBbd2Vi
VmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZ2V0U2VsZWN0aW9uKCkuc2V0UG9z
aXRpb24oZG9jdW1lbnQuYm9keSwgMSkiXTsKKyAgICByZXR1cm4gd2ViVmlldzsKK30KKworVEVT
VChXS1dlYlZpZXdFZGl0QWN0aW9ucywgTmVzdGVkTGlzdEluc2VydGlvbikKK3sKKyAgICBhdXRv
IHdlYlZpZXcgPSB3ZWJWaWV3Rm9yRWRpdEFjdGlvblRlc3RpbmcoKTsKKworICAgIFt3ZWJWaWV3
IF9pbnNlcnROZXN0ZWRPcmRlcmVkTGlzdDpuaWxdOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3
IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJvbCJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBx
dWVyeVNlbGVjdG9yRXhpc3RzOkAib2wgPiBsaSJdKTsKKworICAgIFt3ZWJWaWV3IF9pbnNlcnRO
ZXN0ZWRPcmRlcmVkTGlzdDpuaWxdOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IHF1ZXJ5U2Vs
ZWN0b3JFeGlzdHM6QCJvbCA+IG9sIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IHF1ZXJ5
U2VsZWN0b3JFeGlzdHM6QCJvbCA+IG9sID4gbGkiXSk7CisKKyAgICBbd2ViVmlldyBfaW5zZXJ0
TmVzdGVkVW5vcmRlcmVkTGlzdDpuaWxdOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IHF1ZXJ5
U2VsZWN0b3JFeGlzdHM6QCJvbCA+IG9sID4gdWwiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZp
ZXcgcXVlcnlTZWxlY3RvckV4aXN0czpAIm9sID4gb2wgPiB1bCA+IGxpIl0pOworCisgICAgW3dl
YlZpZXcgX2luc2VydE5lc3RlZFVub3JkZXJlZExpc3Q6bmlsXTsKKyAgICBFWFBFQ1RfVFJVRShb
d2ViVmlldyBxdWVyeVNlbGVjdG9yRXhpc3RzOkAib2wgPiBvbCA+IHVsID4gdWwiXSk7CisgICAg
RVhQRUNUX1RSVUUoW3dlYlZpZXcgcXVlcnlTZWxlY3RvckV4aXN0czpAIm9sID4gb2wgPiB1bCA+
IHVsID4gbGkiXSk7Cit9CisKK1RFU1QoV0tXZWJWaWV3RWRpdEFjdGlvbnMsIExpc3RJbnNlcnRp
b24pCit7CisgICAgYXV0byB3ZWJWaWV3ID0gd2ViVmlld0ZvckVkaXRBY3Rpb25UZXN0aW5nKCk7
CisKKyAgICBbd2ViVmlldyBfaW5zZXJ0T3JkZXJlZExpc3Q6bmlsXTsKKyAgICBFWFBFQ1RfVFJV
RShbd2ViVmlldyBxdWVyeVNlbGVjdG9yRXhpc3RzOkAib2wiXSk7CisgICAgW3dlYlZpZXcgX2lu
c2VydE9yZGVyZWRMaXN0Om5pbF07CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IHF1ZXJ5U2Vs
ZWN0b3JFeGlzdHM6QCJvbCJdKTsKKworICAgIFt3ZWJWaWV3IF9pbnNlcnRVbm9yZGVyZWRMaXN0
Om5pbF07CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgcXVlcnlTZWxlY3RvckV4aXN0czpAInVs
Il0pOworICAgIFt3ZWJWaWV3IF9pbnNlcnRVbm9yZGVyZWRMaXN0Om5pbF07CisgICAgRVhQRUNU
X0ZBTFNFKFt3ZWJWaWV3IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJ1bCJdKTsKK30KKworVEVTVChX
S1dlYlZpZXdFZGl0QWN0aW9ucywgQ2hhbmdlSW5kZW50YXRpb24pCit7CisgICAgYXV0byB3ZWJW
aWV3ID0gd2ViVmlld0ZvckVkaXRBY3Rpb25UZXN0aW5nKCk7CisKKyAgICBbd2ViVmlldyBfaW5k
ZW50Om5pbF07CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgcXVlcnlTZWxlY3RvckV4aXN0czpA
ImJsb2NrcXVvdGUiXSk7CisgICAgW3dlYlZpZXcgX2luZGVudDpuaWxdOworICAgIEVYUEVDVF9U
UlVFKFt3ZWJWaWV3IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJibG9ja3F1b3RlID4gYmxvY2txdW90
ZSJdKTsKKworICAgIFt3ZWJWaWV3IF9vdXRkZW50Om5pbF07CisgICAgRVhQRUNUX1RSVUUoW3dl
YlZpZXcgcXVlcnlTZWxlY3RvckV4aXN0czpAImJsb2NrcXVvdGUiXSk7CisgICAgW3dlYlZpZXcg
X291dGRlbnQ6bmlsXTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgcXVlcnlTZWxlY3RvckV4
aXN0czpAImJsb2NrcXVvdGUiXSk7Cit9CisKK1RFU1QoV0tXZWJWaWV3RWRpdEFjdGlvbnMsIFNl
dEFsaWdubWVudCkKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSB3ZWJWaWV3Rm9yRWRpdEFjdGlvblRl
c3RpbmcoKTsKKyAgICBhdXRvIHJ1blRlc3QgPSBbd2ViVmlld10geworICAgICAgICBbd2ViVmll
dyBfYWxpZ25DZW50ZXI6bmlsXTsKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKCJjZW50ZXIiLCBb
d2ViVmlldyBzdHlsZVByb3BlcnR5QXRTZWxlY3Rpb25TdGFydDpAInRleHQtYWxpZ24iXSk7Cisg
ICAgICAgIFt3ZWJWaWV3IF9hbGlnbkxlZnQ6bmlsXTsKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVR
KCJsZWZ0IiwgW3dlYlZpZXcgc3R5bGVQcm9wZXJ0eUF0U2VsZWN0aW9uU3RhcnQ6QCJ0ZXh0LWFs
aWduIl0pOworICAgICAgICBbd2ViVmlldyBfYWxpZ25SaWdodDpuaWxdOworICAgICAgICBFWFBF
Q1RfV0tfU1RSRVEoInJpZ2h0IiwgW3dlYlZpZXcgc3R5bGVQcm9wZXJ0eUF0U2VsZWN0aW9uU3Rh
cnQ6QCJ0ZXh0LWFsaWduIl0pOworICAgICAgICBbd2ViVmlldyBfYWxpZ25KdXN0aWZpZWQ6bmls
XTsKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKCJqdXN0aWZ5IiwgW3dlYlZpZXcgc3R5bGVQcm9w
ZXJ0eUF0U2VsZWN0aW9uU3RhcnQ6QCJ0ZXh0LWFsaWduIl0pOworICAgIH07CisKKyAgICBbd2Vi
VmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJkb2N1bWVudC5ib2R5LmRpciA9ICdydGwnIiBjb21w
bGV0aW9uSGFuZGxlcjpuaWxdOworICAgIHJ1blRlc3QoKTsKKworICAgIFt3ZWJWaWV3IGV2YWx1
YXRlSmF2YVNjcmlwdDpAImRvY3VtZW50LmJvZHkuZGlyID0gJ2x0ciciIGNvbXBsZXRpb25IYW5k
bGVyOm5pbF07CisgICAgcnVuVGVzdCgpOworfQorCitURVNUKFdLV2ViVmlld0VkaXRBY3Rpb25z
LCBUb2dnbGVTdHJpa2VUaHJvdWdoKQoreworICAgIGF1dG8gd2ViVmlldyA9IHdlYlZpZXdGb3JF
ZGl0QWN0aW9uVGVzdGluZygpOworICAgIFt3ZWJWaWV3IHNlbGVjdEFsbDpuaWxdOworICAgIFt3
ZWJWaWV3IF90b2dnbGVTdHJpa2VUaHJvdWdoOm5pbF07CisgICAgRVhQRUNUX1dLX1NUUkVRKCJs
aW5lLXRocm91Z2giLCBbd2ViVmlldyBzdHlsZVByb3BlcnR5QXRTZWxlY3Rpb25TdGFydDpAIi13
ZWJraXQtdGV4dC1kZWNvcmF0aW9ucy1pbi1lZmZlY3QiXSk7CisgICAgRVhQRUNUX1dLX1NUUkVR
KCJsaW5lLXRocm91Z2giLCBbd2ViVmlldyBzdHlsZVByb3BlcnR5QXRTZWxlY3Rpb25FbmQ6QCIt
d2Via2l0LXRleHQtZGVjb3JhdGlvbnMtaW4tZWZmZWN0Il0pOworCisgICAgW3dlYlZpZXcgX3Rv
Z2dsZVN0cmlrZVRocm91Z2g6bmlsXTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoIm5vbmUiLCBbd2Vi
VmlldyBzdHlsZVByb3BlcnR5QXRTZWxlY3Rpb25TdGFydDpAIi13ZWJraXQtdGV4dC1kZWNvcmF0
aW9ucy1pbi1lZmZlY3QiXSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKCJub25lIiwgW3dlYlZpZXcg
c3R5bGVQcm9wZXJ0eUF0U2VsZWN0aW9uRW5kOkAiLXdlYmtpdC10ZXh0LWRlY29yYXRpb25zLWlu
LWVmZmVjdCJdKTsKKworICAgIFt3ZWJWaWV3IGNvbGxhcHNlVG9FbmRdOworICAgIFt3ZWJWaWV3
IF90b2dnbGVTdHJpa2VUaHJvdWdoOm5pbF07CisgICAgW3dlYlZpZXcgaW5zZXJ0U3RyaW5nOkAi
SGVsbG8iXTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoImxpbmUtdGhyb3VnaCIsIFt3ZWJWaWV3IHN0
eWxlUHJvcGVydHlBdFNlbGVjdGlvblN0YXJ0OkAiLXdlYmtpdC10ZXh0LWRlY29yYXRpb25zLWlu
LWVmZmVjdCJdKTsKKworICAgIFt3ZWJWaWV3IF90b2dnbGVTdHJpa2VUaHJvdWdoOm5pbF07Cisg
ICAgW3dlYlZpZXcgaW5zZXJ0U3RyaW5nOkAiSGVsbG8iXTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEo
Im5vbmUiLCBbd2ViVmlldyBzdHlsZVByb3BlcnR5QXRTZWxlY3Rpb25TdGFydDpAIi13ZWJraXQt
dGV4dC1kZWNvcmF0aW9ucy1pbi1lZmZlY3QiXSk7Cit9CisKK1RFU1QoV0tXZWJWaWV3RWRpdEFj
dGlvbnMsIFBhc3RlQXNRdW90YXRpb24pCit7CisgICAgYXV0byB3ZWJWaWV3ID0gd2ViVmlld0Zv
ckVkaXRBY3Rpb25UZXN0aW5nKCk7CisgICAgW3dlYlZpZXcgc2VsZWN0QWxsOm5pbF07CisgICAg
W3dlYlZpZXcgX2V4ZWN1dGVFZGl0Q29tbWFuZDpAImN1dCIgYXJndW1lbnQ6bmlsIGNvbXBsZXRp
b246bmlsXTsKKyAgICBbd2ViVmlldyBfcGFzdGVBc1F1b3RhdGlvbjpuaWxdOworICAgIEVYUEVD
VF9UUlVFKFt3ZWJWaWV3IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJibG9ja3F1b3RlIl0pOworfQor
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworVEVTVChXS1dlYlZpZXdFZGl0QWN0aW9ucywg
Q2hhbmdlRm9udFNpemUpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gd2ViVmlld0ZvckVkaXRBY3Rp
b25UZXN0aW5nKCk7CisgICAgW3dlYlZpZXcgc2VsZWN0QWxsOm5pbF07CisgICAgRVhQRUNUX0VR
KDE2LCBbW3dlYlZpZXcgc3R5bGVQcm9wZXJ0eUF0U2VsZWN0aW9uU3RhcnQ6QCJmb250LXNpemUi
XSBmbG9hdFZhbHVlXSk7CisKKyAgICBbd2ViVmlldyBpbmNyZWFzZVNpemU6bmlsXTsKKyAgICBF
WFBFQ1RfRVEoMTcsIFtbd2ViVmlldyBzdHlsZVByb3BlcnR5QXRTZWxlY3Rpb25TdGFydDpAImZv
bnQtc2l6ZSJdIGZsb2F0VmFsdWVdKTsKKyAgICBbd2ViVmlldyBpbmNyZWFzZVNpemU6bmlsXTsK
KyAgICBFWFBFQ1RfRVEoMTgsIFtbd2ViVmlldyBzdHlsZVByb3BlcnR5QXRTZWxlY3Rpb25TdGFy
dDpAImZvbnQtc2l6ZSJdIGZsb2F0VmFsdWVdKTsKKworICAgIFt3ZWJWaWV3IGRlY3JlYXNlU2l6
ZTpuaWxdOworICAgIEVYUEVDVF9FUSgxNywgW1t3ZWJWaWV3IHN0eWxlUHJvcGVydHlBdFNlbGVj
dGlvblN0YXJ0OkAiZm9udC1zaXplIl0gZmxvYXRWYWx1ZV0pOworICAgIFt3ZWJWaWV3IGRlY3Jl
YXNlU2l6ZTpuaWxdOworICAgIEVYUEVDVF9FUSgxNiwgW1t3ZWJWaWV3IHN0eWxlUHJvcGVydHlB
dFNlbGVjdGlvblN0YXJ0OkAiZm9udC1zaXplIl0gZmxvYXRWYWx1ZV0pOworCisgICAgW3dlYlZp
ZXcgX3NldEZvbnRTaXplOjIwIHNlbmRlcjpuaWxdOworICAgIEVYUEVDVF9FUSgyMCwgW1t3ZWJW
aWV3IHN0eWxlUHJvcGVydHlBdFNlbGVjdGlvblN0YXJ0OkAiZm9udC1zaXplIl0gZmxvYXRWYWx1
ZV0pOworfQorCitURVNUKFdLV2ViVmlld0VkaXRBY3Rpb25zLCBTZXRUZXh0Q29sb3IpCit7Cisg
ICAgYXV0byB3ZWJWaWV3ID0gd2ViVmlld0ZvckVkaXRBY3Rpb25UZXN0aW5nKCk7CisgICAgW3dl
YlZpZXcgc2VsZWN0QWxsOm5pbF07CisKKyAgICBbd2ViVmlldyBfc2V0VGV4dENvbG9yOltVSUNv
bG9yIGNvbG9yV2l0aFJlZDoxIGdyZWVuOjAgYmx1ZTowIGFscGhhOjFdIHNlbmRlcjpuaWxdOwor
ICAgIEVYUEVDVF9XS19TVFJFUSgicmdiKDI1NSwgMCwgMCkiLCBbd2ViVmlldyBzdHlsZVByb3Bl
cnR5QXRTZWxlY3Rpb25TdGFydDpAImNvbG9yIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3
IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJmb250Il0pOworCisgICAgW3dlYlZpZXcgX3NldFRleHRD
b2xvcjpbVUlDb2xvciBjb2xvcldpdGhSZWQ6MCBncmVlbjoxIGJsdWU6MCBhbHBoYTowLjJdIHNl
bmRlcjpuaWxdOworICAgIEVYUEVDVF9XS19TVFJFUSgicmdiYSgwLCAyNTUsIDAsIDAuMikiLCBb
d2ViVmlldyBzdHlsZVByb3BlcnR5QXRTZWxlY3Rpb25TdGFydDpAImNvbG9yIl0pOworICAgIEVY
UEVDVF9GQUxTRShbd2ViVmlldyBxdWVyeVNlbGVjdG9yRXhpc3RzOkAiZm9udCJdKTsKK30KKwor
VEVTVChXS1dlYlZpZXdFZGl0QWN0aW9ucywgU2V0Rm9udEZhbWlseSkKK3sKKyAgICBhdXRvIHdl
YlZpZXcgPSB3ZWJWaWV3Rm9yRWRpdEFjdGlvblRlc3RpbmcoKTsKKyAgICBbd2ViVmlldyBzZWxl
Y3RBbGw6bmlsXTsKKworICAgIFVJRm9udERlc2NyaXB0b3IgKmZvbnREZXNjcmlwdG9yID0gW1VJ
Rm9udERlc2NyaXB0b3IgZm9udERlc2NyaXB0b3JXaXRoRm9udEF0dHJpYnV0ZXM6QHsgVUlGb250
RGVzY3JpcHRvckZhbWlseUF0dHJpYnV0ZTogQCJIZWx2ZXRpY2EiIH1dOworICAgIFt3ZWJWaWV3
IF9zZXRGb250OltVSUZvbnQgZm9udFdpdGhEZXNjcmlwdG9yOmZvbnREZXNjcmlwdG9yIHNpemU6
MjRdIHNlbmRlcjpuaWxdOworICAgIEVYUEVDVF9XS19TVFJFUSgiSGVsdmV0aWNhIiwgW3dlYlZp
ZXcgc3R5bGVQcm9wZXJ0eUF0U2VsZWN0aW9uU3RhcnQ6QCJmb250LWZhbWlseSJdKTsKKyAgICBF
WFBFQ1RfV0tfU1RSRVEoIjI0cHgiLCBbd2ViVmlldyBzdHlsZVByb3BlcnR5QXRTZWxlY3Rpb25T
dGFydDpAImZvbnQtc2l6ZSJdKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoIm5vcm1hbCIsIFt3ZWJW
aWV3IHN0eWxlUHJvcGVydHlBdFNlbGVjdGlvblN0YXJ0OkAiZm9udC13ZWlnaHQiXSk7CisgICAg
RVhQRUNUX1dLX1NUUkVRKCJub3JtYWwiLCBbd2ViVmlldyBzdHlsZVByb3BlcnR5QXRTZWxlY3Rp
b25TdGFydDpAImZvbnQtc3R5bGUiXSk7CisKKyAgICBbd2ViVmlldyBfc2V0Rm9udDpbVUlGb250
IGZvbnRXaXRoTmFtZTpAIlRpbWVzTmV3Um9tYW5QUy1Cb2xkTVQiIHNpemU6MTJdIHNlbmRlcjpu
aWxdOworICAgIEVYUEVDVF9XS19TVFJFUSgiXCJUaW1lcyBOZXcgUm9tYW5cIiIsIFt3ZWJWaWV3
IHN0eWxlUHJvcGVydHlBdFNlbGVjdGlvblN0YXJ0OkAiZm9udC1mYW1pbHkiXSk7CisgICAgRVhQ
RUNUX1dLX1NUUkVRKCIxMnB4IiwgW3dlYlZpZXcgc3R5bGVQcm9wZXJ0eUF0U2VsZWN0aW9uU3Rh
cnQ6QCJmb250LXNpemUiXSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKCJib2xkIiwgW3dlYlZpZXcg
c3R5bGVQcm9wZXJ0eUF0U2VsZWN0aW9uU3RhcnQ6QCJmb250LXdlaWdodCJdKTsKKyAgICBFWFBF
Q1RfV0tfU1RSRVEoIm5vcm1hbCIsIFt3ZWJWaWV3IHN0eWxlUHJvcGVydHlBdFNlbGVjdGlvblN0
YXJ0OkAiZm9udC1zdHlsZSJdKTsKKworICAgIGZvbnREZXNjcmlwdG9yID0gW2ZvbnREZXNjcmlw
dG9yIGZvbnREZXNjcmlwdG9yV2l0aFN5bWJvbGljVHJhaXRzOlVJRm9udERlc2NyaXB0b3JUcmFp
dEl0YWxpYyB8IFVJRm9udERlc2NyaXB0b3JUcmFpdEJvbGRdOworICAgIFt3ZWJWaWV3IF9zZXRG
b250OltVSUZvbnQgZm9udFdpdGhEZXNjcmlwdG9yOmZvbnREZXNjcmlwdG9yIHNpemU6MjBdIHNl
bmRlcjpuaWxdOworICAgIEVYUEVDVF9XS19TVFJFUSgiSGVsdmV0aWNhIiwgW3dlYlZpZXcgc3R5
bGVQcm9wZXJ0eUF0U2VsZWN0aW9uU3RhcnQ6QCJmb250LWZhbWlseSJdKTsKKyAgICBFWFBFQ1Rf
V0tfU1RSRVEoIjIwcHgiLCBbd2ViVmlldyBzdHlsZVByb3BlcnR5QXRTZWxlY3Rpb25TdGFydDpA
ImZvbnQtc2l6ZSJdKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoImJvbGQiLCBbd2ViVmlldyBzdHls
ZVByb3BlcnR5QXRTZWxlY3Rpb25TdGFydDpAImZvbnQtd2VpZ2h0Il0pOworICAgIEVYUEVDVF9X
S19TVFJFUSgiaXRhbGljIiwgW3dlYlZpZXcgc3R5bGVQcm9wZXJ0eUF0U2VsZWN0aW9uU3RhcnQ6
QCJmb250LXN0eWxlIl0pOworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKKwor
fSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1dLV2ViVmlld0VkaXRB
Y3Rpb25zLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvV0tXZWJWaWV3RWRpdEFj
dGlvbnMubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMyMTk5NDdkNmYyODUyMjEx
ODI5OWU2NjhiMGRhNzc3NmY4ZDA2MTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvV0tXZWJWaWV3RWRp
dEFjdGlvbnMubW0KKysrIC9kZXYvbnVsbApAQCAtMSwxOTUgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbXBvcnQgImNvbmZpZy5oIgotCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgV0tfQVBJ
X0VOQUJMRUQKLQotI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKLSNpbXBvcnQgIlRlc3RX
S1dlYlZpZXcuaCIKLSNpbXBvcnQgIlVJS2l0U1BJLmgiCi0jaW1wb3J0IDxVSUtpdC9VSUZvbnRE
ZXNjcmlwdG9yLmg+Ci0jaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgotCi1AaW50
ZXJmYWNlIFRlc3RXS1dlYlZpZXcgKEVkaXRBY3Rpb25UZXN0aW5nKQotLSAoQk9PTClxdWVyeVNl
bGVjdG9yRXhpc3RzOihOU1N0cmluZyAqKXF1ZXJ5U2VsZWN0b3I7Ci1AZW5kCi0KLUBpbXBsZW1l
bnRhdGlvbiBUZXN0V0tXZWJWaWV3IChFZGl0QWN0aW9uVGVzdGluZykKLQotLSAoQk9PTClxdWVy
eVNlbGVjdG9yRXhpc3RzOihOU1N0cmluZyAqKXF1ZXJ5U2VsZWN0b3IKLXsKLSAgICByZXR1cm4g
W1tzZWxmIG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6W05TU3RyaW5nIHN0cmluZ1dpdGhG
b3JtYXQ6QCIhIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYCVAYCkiLCBxdWVyeVNlbGVjdG9yXV0g
Ym9vbFZhbHVlXTsKLX0KLQotQGVuZAotCi1uYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7Ci0KLXN0
YXRpYyBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmlld0ZvckVkaXRBY3Rpb25UZXN0aW5n
KCkKLXsKLSAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDQwMCwgNDAwKV0pOwotICAgIFt3ZWJWaWV3
IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxkaXY+V2ViS2l0PC9kaXY+Il07Ci0gICAg
W3dlYlZpZXcgX3NldEVkaXRhYmxlOllFU107Ci0gICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0
aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLnNldFBvc2l0aW9uKGRvY3VtZW50LmJvZHks
IDEpIl07Ci0gICAgcmV0dXJuIHdlYlZpZXc7Ci19Ci0KLVRFU1QoV0tXZWJWaWV3RWRpdEFjdGlv
bnMsIExpc3RJbnNlcnRpb24pCi17Ci0gICAgYXV0byB3ZWJWaWV3ID0gd2ViVmlld0ZvckVkaXRB
Y3Rpb25UZXN0aW5nKCk7Ci0KLSAgICBbd2ViVmlldyBpbnNlcnRPcmRlcmVkTGlzdDpuaWxdOwot
ICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJvbCJdKTsKLSAg
ICBbd2ViVmlldyBpbnNlcnRPcmRlcmVkTGlzdDpuaWxdOwotICAgIEVYUEVDVF9GQUxTRShbd2Vi
VmlldyBxdWVyeVNlbGVjdG9yRXhpc3RzOkAib2wiXSk7Ci0KLSAgICBbd2ViVmlldyBpbnNlcnRV
bm9yZGVyZWRMaXN0Om5pbF07Ci0gICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgcXVlcnlTZWxlY3Rv
ckV4aXN0czpAInVsIl0pOwotICAgIFt3ZWJWaWV3IGluc2VydFVub3JkZXJlZExpc3Q6bmlsXTsK
LSAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgcXVlcnlTZWxlY3RvckV4aXN0czpAInVsIl0pOwot
fQotCi1URVNUKFdLV2ViVmlld0VkaXRBY3Rpb25zLCBDaGFuZ2VJbmRlbnRhdGlvbikKLXsKLSAg
ICBhdXRvIHdlYlZpZXcgPSB3ZWJWaWV3Rm9yRWRpdEFjdGlvblRlc3RpbmcoKTsKLQotICAgIFt3
ZWJWaWV3IGluZGVudDpuaWxdOwotICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IHF1ZXJ5U2VsZWN0
b3JFeGlzdHM6QCJibG9ja3F1b3RlIl0pOwotICAgIFt3ZWJWaWV3IGluZGVudDpuaWxdOwotICAg
IEVYUEVDVF9UUlVFKFt3ZWJWaWV3IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJibG9ja3F1b3RlID4g
YmxvY2txdW90ZSJdKTsKLQotICAgIFt3ZWJWaWV3IG91dGRlbnQ6bmlsXTsKLSAgICBFWFBFQ1Rf
VFJVRShbd2ViVmlldyBxdWVyeVNlbGVjdG9yRXhpc3RzOkAiYmxvY2txdW90ZSJdKTsKLSAgICBb
d2ViVmlldyBvdXRkZW50Om5pbF07Ci0gICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IHF1ZXJ5U2Vs
ZWN0b3JFeGlzdHM6QCJibG9ja3F1b3RlIl0pOwotfQotCi1URVNUKFdLV2ViVmlld0VkaXRBY3Rp
b25zLCBTZXRBbGlnbm1lbnQpCi17Ci0gICAgYXV0byB3ZWJWaWV3ID0gd2ViVmlld0ZvckVkaXRB
Y3Rpb25UZXN0aW5nKCk7Ci0gICAgYXV0byBydW5UZXN0ID0gW3dlYlZpZXddIHsKLSAgICAgICAg
W3dlYlZpZXcgYWxpZ25DZW50ZXI6bmlsXTsKLSAgICAgICAgRVhQRUNUX1dLX1NUUkVRKCJjZW50
ZXIiLCBbd2ViVmlldyBzdHlsZVByb3BlcnR5QXRTZWxlY3Rpb25TdGFydDpAInRleHQtYWxpZ24i
XSk7Ci0gICAgICAgIFt3ZWJWaWV3IGFsaWduTGVmdDpuaWxdOwotICAgICAgICBFWFBFQ1RfV0tf
U1RSRVEoImxlZnQiLCBbd2ViVmlldyBzdHlsZVByb3BlcnR5QXRTZWxlY3Rpb25TdGFydDpAInRl
eHQtYWxpZ24iXSk7Ci0gICAgICAgIFt3ZWJWaWV3IGFsaWduUmlnaHQ6bmlsXTsKLSAgICAgICAg
RVhQRUNUX1dLX1NUUkVRKCJyaWdodCIsIFt3ZWJWaWV3IHN0eWxlUHJvcGVydHlBdFNlbGVjdGlv
blN0YXJ0OkAidGV4dC1hbGlnbiJdKTsKLSAgICAgICAgW3dlYlZpZXcgYWxpZ25KdXN0aWZpZWQ6
bmlsXTsKLSAgICAgICAgRVhQRUNUX1dLX1NUUkVRKCJqdXN0aWZ5IiwgW3dlYlZpZXcgc3R5bGVQ
cm9wZXJ0eUF0U2VsZWN0aW9uU3RhcnQ6QCJ0ZXh0LWFsaWduIl0pOwotICAgIH07Ci0KLSAgICBb
d2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJkb2N1bWVudC5ib2R5LmRpciA9ICdydGwnIiBj
b21wbGV0aW9uSGFuZGxlcjpuaWxdOwotICAgIHJ1blRlc3QoKTsKLQotICAgIFt3ZWJWaWV3IGV2
YWx1YXRlSmF2YVNjcmlwdDpAImRvY3VtZW50LmJvZHkuZGlyID0gJ2x0ciciIGNvbXBsZXRpb25I
YW5kbGVyOm5pbF07Ci0gICAgcnVuVGVzdCgpOwotfQotCi1URVNUKFdLV2ViVmlld0VkaXRBY3Rp
b25zLCBUb2dnbGVTdHJpa2VUaHJvdWdoKQotewotICAgIGF1dG8gd2ViVmlldyA9IHdlYlZpZXdG
b3JFZGl0QWN0aW9uVGVzdGluZygpOwotICAgIFt3ZWJWaWV3IHNlbGVjdEFsbDpuaWxdOwotICAg
IFt3ZWJWaWV3IHRvZ2dsZVN0cmlrZVRocm91Z2g6bmlsXTsKLSAgICBFWFBFQ1RfV0tfU1RSRVEo
ImxpbmUtdGhyb3VnaCIsIFt3ZWJWaWV3IHN0eWxlUHJvcGVydHlBdFNlbGVjdGlvblN0YXJ0OkAi
LXdlYmtpdC10ZXh0LWRlY29yYXRpb25zLWluLWVmZmVjdCJdKTsKLSAgICBFWFBFQ1RfV0tfU1RS
RVEoImxpbmUtdGhyb3VnaCIsIFt3ZWJWaWV3IHN0eWxlUHJvcGVydHlBdFNlbGVjdGlvbkVuZDpA
Ii13ZWJraXQtdGV4dC1kZWNvcmF0aW9ucy1pbi1lZmZlY3QiXSk7Ci0KLSAgICBbd2ViVmlldyB0
b2dnbGVTdHJpa2VUaHJvdWdoOm5pbF07Ci0gICAgRVhQRUNUX1dLX1NUUkVRKCJub25lIiwgW3dl
YlZpZXcgc3R5bGVQcm9wZXJ0eUF0U2VsZWN0aW9uU3RhcnQ6QCItd2Via2l0LXRleHQtZGVjb3Jh
dGlvbnMtaW4tZWZmZWN0Il0pOwotICAgIEVYUEVDVF9XS19TVFJFUSgibm9uZSIsIFt3ZWJWaWV3
IHN0eWxlUHJvcGVydHlBdFNlbGVjdGlvbkVuZDpAIi13ZWJraXQtdGV4dC1kZWNvcmF0aW9ucy1p
bi1lZmZlY3QiXSk7Ci0KLSAgICBbd2ViVmlldyBjb2xsYXBzZVRvRW5kXTsKLSAgICBbd2ViVmll
dyB0b2dnbGVTdHJpa2VUaHJvdWdoOm5pbF07Ci0gICAgW1t3ZWJWaWV3IHRleHRJbnB1dENvbnRl
bnRWaWV3XSBpbnNlcnRUZXh0OkAiSGVsbG8iXTsKLSAgICBFWFBFQ1RfV0tfU1RSRVEoImxpbmUt
dGhyb3VnaCIsIFt3ZWJWaWV3IHN0eWxlUHJvcGVydHlBdFNlbGVjdGlvblN0YXJ0OkAiLXdlYmtp
dC10ZXh0LWRlY29yYXRpb25zLWluLWVmZmVjdCJdKTsKLQotICAgIFt3ZWJWaWV3IHRvZ2dsZVN0
cmlrZVRocm91Z2g6bmlsXTsKLSAgICBbW3dlYlZpZXcgdGV4dElucHV0Q29udGVudFZpZXddIGlu
c2VydFRleHQ6QCJIZWxsbyJdOwotICAgIEVYUEVDVF9XS19TVFJFUSgibm9uZSIsIFt3ZWJWaWV3
IHN0eWxlUHJvcGVydHlBdFNlbGVjdGlvblN0YXJ0OkAiLXdlYmtpdC10ZXh0LWRlY29yYXRpb25z
LWluLWVmZmVjdCJdKTsKLX0KLQotVEVTVChXS1dlYlZpZXdFZGl0QWN0aW9ucywgQ2hhbmdlRm9u
dFNpemUpCi17Ci0gICAgYXV0byB3ZWJWaWV3ID0gd2ViVmlld0ZvckVkaXRBY3Rpb25UZXN0aW5n
KCk7Ci0gICAgW3dlYlZpZXcgc2VsZWN0QWxsOm5pbF07Ci0gICAgRVhQRUNUX0VRKDE2LCBbW3dl
YlZpZXcgc3R5bGVQcm9wZXJ0eUF0U2VsZWN0aW9uU3RhcnQ6QCJmb250LXNpemUiXSBmbG9hdFZh
bHVlXSk7Ci0KLSAgICBbd2ViVmlldyBpbmNyZWFzZVNpemU6bmlsXTsKLSAgICBFWFBFQ1RfRVEo
MTcsIFtbd2ViVmlldyBzdHlsZVByb3BlcnR5QXRTZWxlY3Rpb25TdGFydDpAImZvbnQtc2l6ZSJd
IGZsb2F0VmFsdWVdKTsKLSAgICBbd2ViVmlldyBpbmNyZWFzZVNpemU6bmlsXTsKLSAgICBFWFBF
Q1RfRVEoMTgsIFtbd2ViVmlldyBzdHlsZVByb3BlcnR5QXRTZWxlY3Rpb25TdGFydDpAImZvbnQt
c2l6ZSJdIGZsb2F0VmFsdWVdKTsKLQotICAgIFt3ZWJWaWV3IGRlY3JlYXNlU2l6ZTpuaWxdOwot
ICAgIEVYUEVDVF9FUSgxNywgW1t3ZWJWaWV3IHN0eWxlUHJvcGVydHlBdFNlbGVjdGlvblN0YXJ0
OkAiZm9udC1zaXplIl0gZmxvYXRWYWx1ZV0pOwotICAgIFt3ZWJWaWV3IGRlY3JlYXNlU2l6ZTpu
aWxdOwotICAgIEVYUEVDVF9FUSgxNiwgW1t3ZWJWaWV3IHN0eWxlUHJvcGVydHlBdFNlbGVjdGlv
blN0YXJ0OkAiZm9udC1zaXplIl0gZmxvYXRWYWx1ZV0pOwotCi0gICAgW3dlYlZpZXcgc2V0Rm9u
dFNpemU6MjAgc2VuZGVyOm5pbF07Ci0gICAgRVhQRUNUX0VRKDIwLCBbW3dlYlZpZXcgc3R5bGVQ
cm9wZXJ0eUF0U2VsZWN0aW9uU3RhcnQ6QCJmb250LXNpemUiXSBmbG9hdFZhbHVlXSk7Ci19Ci0K
LVRFU1QoV0tXZWJWaWV3RWRpdEFjdGlvbnMsIFNldFRleHRDb2xvcikKLXsKLSAgICBhdXRvIHdl
YlZpZXcgPSB3ZWJWaWV3Rm9yRWRpdEFjdGlvblRlc3RpbmcoKTsKLSAgICBbd2ViVmlldyBzZWxl
Y3RBbGw6bmlsXTsKLQotICAgIFt3ZWJWaWV3IHNldFRleHRDb2xvcjpbVUlDb2xvciBjb2xvcldp
dGhSZWQ6MSBncmVlbjowIGJsdWU6MCBhbHBoYToxXSBzZW5kZXI6bmlsXTsKLSAgICBFWFBFQ1Rf
V0tfU1RSRVEoInJnYigyNTUsIDAsIDApIiwgW3dlYlZpZXcgc3R5bGVQcm9wZXJ0eUF0U2VsZWN0
aW9uU3RhcnQ6QCJjb2xvciJdKTsKLSAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBxdWVyeVNlbGVj
dG9yRXhpc3RzOkAiZm9udCJdKTsKLQotICAgIFt3ZWJWaWV3IHNldFRleHRDb2xvcjpbVUlDb2xv
ciBjb2xvcldpdGhSZWQ6MCBncmVlbjoxIGJsdWU6MCBhbHBoYTowLjJdIHNlbmRlcjpuaWxdOwot
ICAgIEVYUEVDVF9XS19TVFJFUSgicmdiYSgwLCAyNTUsIDAsIDAuMikiLCBbd2ViVmlldyBzdHls
ZVByb3BlcnR5QXRTZWxlY3Rpb25TdGFydDpAImNvbG9yIl0pOwotICAgIEVYUEVDVF9GQUxTRShb
d2ViVmlldyBxdWVyeVNlbGVjdG9yRXhpc3RzOkAiZm9udCJdKTsKLX0KLQotVEVTVChXS1dlYlZp
ZXdFZGl0QWN0aW9ucywgU2V0Rm9udEZhbWlseSkKLXsKLSAgICBhdXRvIHdlYlZpZXcgPSB3ZWJW
aWV3Rm9yRWRpdEFjdGlvblRlc3RpbmcoKTsKLSAgICBbd2ViVmlldyBzZWxlY3RBbGw6bmlsXTsK
LQotICAgIFVJRm9udERlc2NyaXB0b3IgKmZvbnREZXNjcmlwdG9yID0gW1VJRm9udERlc2NyaXB0
b3IgZm9udERlc2NyaXB0b3JXaXRoRm9udEF0dHJpYnV0ZXM6QHsgVUlGb250RGVzY3JpcHRvckZh
bWlseUF0dHJpYnV0ZTogQCJIZWx2ZXRpY2EiIH1dOwotICAgIFt3ZWJWaWV3IHNldEZvbnQ6W1VJ
Rm9udCBmb250V2l0aERlc2NyaXB0b3I6Zm9udERlc2NyaXB0b3Igc2l6ZToyNF0gc2VuZGVyOm5p
bF07Ci0gICAgRVhQRUNUX1dLX1NUUkVRKCJIZWx2ZXRpY2EiLCBbd2ViVmlldyBzdHlsZVByb3Bl
cnR5QXRTZWxlY3Rpb25TdGFydDpAImZvbnQtZmFtaWx5Il0pOwotICAgIEVYUEVDVF9XS19TVFJF
USgiMjRweCIsIFt3ZWJWaWV3IHN0eWxlUHJvcGVydHlBdFNlbGVjdGlvblN0YXJ0OkAiZm9udC1z
aXplIl0pOwotICAgIEVYUEVDVF9XS19TVFJFUSgibm9ybWFsIiwgW3dlYlZpZXcgc3R5bGVQcm9w
ZXJ0eUF0U2VsZWN0aW9uU3RhcnQ6QCJmb250LXdlaWdodCJdKTsKLSAgICBFWFBFQ1RfV0tfU1RS
RVEoIm5vcm1hbCIsIFt3ZWJWaWV3IHN0eWxlUHJvcGVydHlBdFNlbGVjdGlvblN0YXJ0OkAiZm9u
dC1zdHlsZSJdKTsKLQotICAgIFt3ZWJWaWV3IHNldEZvbnQ6W1VJRm9udCBmb250V2l0aE5hbWU6
QCJUaW1lc05ld1JvbWFuUFMtQm9sZE1UIiBzaXplOjEyXSBzZW5kZXI6bmlsXTsKLSAgICBFWFBF
Q1RfV0tfU1RSRVEoIlwiVGltZXMgTmV3IFJvbWFuXCIiLCBbd2ViVmlldyBzdHlsZVByb3BlcnR5
QXRTZWxlY3Rpb25TdGFydDpAImZvbnQtZmFtaWx5Il0pOwotICAgIEVYUEVDVF9XS19TVFJFUSgi
MTJweCIsIFt3ZWJWaWV3IHN0eWxlUHJvcGVydHlBdFNlbGVjdGlvblN0YXJ0OkAiZm9udC1zaXpl
Il0pOwotICAgIEVYUEVDVF9XS19TVFJFUSgiYm9sZCIsIFt3ZWJWaWV3IHN0eWxlUHJvcGVydHlB
dFNlbGVjdGlvblN0YXJ0OkAiZm9udC13ZWlnaHQiXSk7Ci0gICAgRVhQRUNUX1dLX1NUUkVRKCJu
b3JtYWwiLCBbd2ViVmlldyBzdHlsZVByb3BlcnR5QXRTZWxlY3Rpb25TdGFydDpAImZvbnQtc3R5
bGUiXSk7Ci0KLSAgICBmb250RGVzY3JpcHRvciA9IFtmb250RGVzY3JpcHRvciBmb250RGVzY3Jp
cHRvcldpdGhTeW1ib2xpY1RyYWl0czpVSUZvbnREZXNjcmlwdG9yVHJhaXRJdGFsaWMgfCBVSUZv
bnREZXNjcmlwdG9yVHJhaXRCb2xkXTsKLSAgICBbd2ViVmlldyBzZXRGb250OltVSUZvbnQgZm9u
dFdpdGhEZXNjcmlwdG9yOmZvbnREZXNjcmlwdG9yIHNpemU6MjBdIHNlbmRlcjpuaWxdOwotICAg
IEVYUEVDVF9XS19TVFJFUSgiSGVsdmV0aWNhIiwgW3dlYlZpZXcgc3R5bGVQcm9wZXJ0eUF0U2Vs
ZWN0aW9uU3RhcnQ6QCJmb250LWZhbWlseSJdKTsKLSAgICBFWFBFQ1RfV0tfU1RSRVEoIjIwcHgi
LCBbd2ViVmlldyBzdHlsZVByb3BlcnR5QXRTZWxlY3Rpb25TdGFydDpAImZvbnQtc2l6ZSJdKTsK
LSAgICBFWFBFQ1RfV0tfU1RSRVEoImJvbGQiLCBbd2ViVmlldyBzdHlsZVByb3BlcnR5QXRTZWxl
Y3Rpb25TdGFydDpAImZvbnQtd2VpZ2h0Il0pOwotICAgIEVYUEVDVF9XS19TVFJFUSgiaXRhbGlj
IiwgW3dlYlZpZXcgc3R5bGVQcm9wZXJ0eUF0U2VsZWN0aW9uU3RhcnQ6QCJmb250LXN0eWxlIl0p
OwotfQotCi19IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCi0KLSNlbmRpZiAvLyBQTEFURk9S
TShJT1NfRkFNSUxZKSAmJiBXS19BUElfRU5BQkxFRAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354350</attachid>
            <date>2018-11-09 09:24:00 -0800</date>
            <delta_ts>2018-11-09 12:27:35 -0800</delta_ts>
            <desc>Depends on webkit.org/b/191410</desc>
            <filename>bug-191471-20181109092359.patch</filename>
            <type>text/plain</type>
            <size>7401</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4MDIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTUwNmNjM2VkMTJkY2Mz
MDcyZTNhNzI2YzQ4OTM2YWM0ZWFiNTkzZC4uY2U3Njc2MWNiOGEwN2IwMmZkNDVkODdjNDMzNTgy
M2MwNTdmMWNhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE4LTExLTA5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gSW1w
bGVtZW50IFNQSSBvbiBXS1dlYlZpZXcgdG8gaW5jcmVhc2UgYW5kIGRlY3JlYXNlIGxpc3QgbGV2
ZWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE0
NzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
bmV3IG1ldGhvZCBzdHVicyBmb3IgY2hhbmdpbmcgdGhlIGxpc3QgdHlwZSBmb3IgdGhlIGN1cnJl
bnQgc2VsZWN0aW9uICh0byBiZSBpbXBsZW1lbnRlZCBpbiBhIGZ1dHVyZSBwYXRjaCkuCisKKyAg
ICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmNh
bkNoYW5nZVNlbGVjdGlvbkxpc3RUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6Y2hh
bmdlU2VsZWN0aW9uTGlzdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisKIDIw
MTgtMTEtMDggIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAog
ICAgICAgICBBZGQgYW4gU1BJIHRvIGFsbG93IFdlYlZpZXcgY2xpZW50cyB0byBhZGQgYWRkaXRp
b25hbCBzdXBwb3J0ZWQgaW1hZ2UgZm9ybWF0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAyZjJhZGVjNTg4ZWYzNWJm
M2JmYzg1MTJkYTk4MjJlODk4MWI5MjQzLi4zMThkMGQ4ZTAyZDVhNGJjOTFiODkyM2MxYWUwYzk2
NGY0MTYwYWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE4LTExLTA5ICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gSW1wbGVt
ZW50IFNQSSBvbiBXS1dlYlZpZXcgdG8gaW5jcmVhc2UgYW5kIGRlY3JlYXNlIGxpc3QgbGV2ZWxz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE0NzEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1l
bnQgdGhlc2UgbWV0aG9kIHN0dWJzIGJ5IGNhbGxpbmcgaW50byBFZGl0b3IuCisKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmluY3JlYXNlTGlzdExldmVsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGVjcmVh
c2VMaXN0TGV2ZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjaGFuZ2VMaXN0VHlwZSk6
CisKIDIwMTgtMTEtMDggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0NvY29hXSBJbnRyb2R1Y2UgV0tXZWJWaWV3IFNQSSB0byBpbnNlcnQgbmVzdGVk
IG9yZGVyZWQgYW5kIHVub3JkZXJlZCBsaXN0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmlu
ZGV4IDQ0MzYyZWQwMjVlNjZlMTYwNTI5M2YyZGZkZTg1YzA0ZDgxNmRmY2YuLjdjMDY0OWUxYjIy
MDUyMjM3ZTdlYTlmOWIxYzQ4ZmYxMTk0NTUzMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAKQEAgLTE0NzYsNiArMTQ3NiwxNyBAQCB2b2lkIEVkaXRvcjo6cGVyZm9ybURlbGV0ZSgpCiAg
ICAgc2V0U3RhcnROZXdLaWxsUmluZ1NlcXVlbmNlKGZhbHNlKTsKIH0KIAorYm9vbCBFZGl0b3I6
OmNhbkNoYW5nZVNlbGVjdGlvbkxpc3RUeXBlKCkKK3sKKyAgICAvLyBGSVhNRTogTm90IGltcGxl
bWVudGVkLgorICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBFZGl0b3I6OmNoYW5nZVNlbGVj
dGlvbkxpc3RUeXBlKCkKK3sKKyAgICAvLyBGSVhNRTogTm90IGltcGxlbWVudGVkLgorfQorCiB2
b2lkIEVkaXRvcjo6c2ltcGxpZnlNYXJrdXAoTm9kZSogc3RhcnROb2RlLCBOb2RlKiBlbmROb2Rl
KQogewogICAgIGlmICghc3RhcnROb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggM2Jj
OGEwNjBlZWRlNGMzMTk1ODI5ZTEzZjFkNTQyMzc1MDJjZTIyMi4uYWQ5ZmMwYjE2MzdmZWZmYWVm
YzczMmNjMzRhYzUyZjY1MzIxZjZiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC0yMDYs
NiArMjA2LDggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIFJlZlB0cjxOb2RlPiBpbmNy
ZWFzZVNlbGVjdGlvbkxpc3RMZXZlbE9yZGVyZWQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBSZWZQ
dHI8Tm9kZT4gaW5jcmVhc2VTZWxlY3Rpb25MaXN0TGV2ZWxVbm9yZGVyZWQoKTsKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIGRlY3JlYXNlU2VsZWN0aW9uTGlzdExldmVsKCk7CisgICAgV0VCQ09S
RV9FWFBPUlQgYm9vbCBjYW5DaGFuZ2VTZWxlY3Rpb25MaXN0VHlwZSgpOworICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgY2hhbmdlU2VsZWN0aW9uTGlzdFR5cGUoKTsKICAgIAogICAgIHZvaWQgcmVt
b3ZlRm9ybWF0dGluZ0FuZFN0eWxlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZDgyZDY1MmU5ZjExMDZhZWIwYWY0MGFmMTIyNTg2MGFl
ZWNhNzFhNi4uZDU3YzVkYjIxNTE3NjA0ODdiMzYwODBmMTlmY2FkZTM0MjQyMjdmMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTExNTIsMTcg
KzExNTIsMjMgQEAgdm9pZCBXZWJQYWdlOjpzZXRFZGl0YWJsZShib29sIGVkaXRhYmxlKQogCiB2
b2lkIFdlYlBhZ2U6OmluY3JlYXNlTGlzdExldmVsKCkKIHsKLSAgICAvLyBGSVhNRTogTm90IGlt
cGxlbWVudGVkLgorICAgIGF1dG8mIGVkaXRvciA9IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCku
Zm9jdXNlZE9yTWFpbkZyYW1lKCkuZWRpdG9yKCk7CisgICAgaWYgKGVkaXRvci5jYW5JbmNyZWFz
ZVNlbGVjdGlvbkxpc3RMZXZlbCgpKQorICAgICAgICBlZGl0b3IuaW5jcmVhc2VTZWxlY3Rpb25M
aXN0TGV2ZWwoKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpkZWNyZWFzZUxpc3RMZXZlbCgpCiB7Ci0g
ICAgLy8gRklYTUU6IE5vdCBpbXBsZW1lbnRlZC4KKyAgICBhdXRvJiBlZGl0b3IgPSBtX3BhZ2Ut
PmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpLmVkaXRvcigpOworICAgIGlm
IChlZGl0b3IuY2FuRGVjcmVhc2VTZWxlY3Rpb25MaXN0TGV2ZWwoKSkKKyAgICAgICAgZWRpdG9y
LmRlY3JlYXNlU2VsZWN0aW9uTGlzdExldmVsKCk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6Y2hhbmdl
TGlzdFR5cGUoKQogewotICAgIC8vIEZJWE1FOiBOb3QgaW1wbGVtZW50ZWQuCisgICAgYXV0byYg
ZWRpdG9yID0gbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKS5l
ZGl0b3IoKTsKKyAgICBpZiAoZWRpdG9yLmNhbkNoYW5nZVNlbGVjdGlvbkxpc3RUeXBlKCkpCisg
ICAgICAgIGVkaXRvci5jaGFuZ2VTZWxlY3Rpb25MaXN0VHlwZSgpOwogfQogCiBib29sIFdlYlBh
Z2U6OmlzRWRpdGluZ0NvbW1hbmRFbmFibGVkKGNvbnN0IFN0cmluZyYgY29tbWFuZE5hbWUpCmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMGFmMTZi
ODU2YTI4ZTA1NDRiMzgyMDYxMWJhZjAzNTRkMGFlNThkNy4uMzZjNjEwODYyYmNhYjk2ZjlhMDU5
YzZhZTJiOTE4NzViMjU4MjIxYiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE4LTExLTA5ICBXZW5zb24gSHNpZWgg
IDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gSW1wbGVtZW50IFNQ
SSBvbiBXS1dlYlZpZXcgdG8gaW5jcmVhc2UgYW5kIGRlY3JlYXNlIGxpc3QgbGV2ZWxzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE0NzEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW4gQVBJIHRl
c3QgdG8gZW5zdXJlIHRoYXQgbGlzdCBsZXZlbHMgY2FuIGJlIGluY3JlbWVudGVkIGFuZCBkZWNy
ZW1lbnRlZCB2aWEgV0tXZWJWaWV3IFNQSS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RWRpdEFjdGlvbnMubW06CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjp3ZWJWaWV3Rm9yRWRpdEFjdGlvblRlc3RpbmcpOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VEVTVCk6CisKIDIwMTgtMTEtMDggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBJbnRyb2R1Y2UgV0tXZWJWaWV3IFNQSSB0byBp
bnNlcnQgbmVzdGVkIG9yZGVyZWQgYW5kIHVub3JkZXJlZCBsaXN0cwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdFZGl0QWN0aW9ucy5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RWRpdEFj
dGlvbnMubW0KaW5kZXggYjE3N2EzMDhjNDE2MzA0NmQ2ZjgxNDcyNTcyZTI0OTQ0YjNkZTAzZC4u
YTg0MmI4MGViNGJiYTFiZjBkZTNiMDZhNmM1NTUzOGFhOWQyZTg3OSAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdFZGl0QWN0aW9ucy5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0Vk
aXRBY3Rpb25zLm1tCkBAIC02MSwxNSArNjEsNDQgQEAKIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEkgewogCi1zdGF0aWMgUmV0YWluUHRyPFRlc3RXS1dlYlZpZXc+IHdlYlZpZXdGb3JFZGl0QWN0
aW9uVGVzdGluZygpCitzdGF0aWMgUmV0YWluUHRyPFRlc3RXS1dlYlZpZXc+IHdlYlZpZXdGb3JF
ZGl0QWN0aW9uVGVzdGluZyhOU1N0cmluZyAqbWFya3VwKQogewogICAgIGF1dG8gd2ViVmlldyA9
IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3Qo
MCwgMCwgNDAwLCA0MDApXSk7Ci0gICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3Ry
aW5nOkAiPGRpdj5XZWJLaXQ8L2Rpdj4iXTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9h
ZEhUTUxTdHJpbmc6bWFya3VwXTsKICAgICBbd2ViVmlldyBfc2V0RWRpdGFibGU6WUVTXTsKICAg
ICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZ2V0U2VsZWN0aW9uKCku
c2V0UG9zaXRpb24oZG9jdW1lbnQuYm9keSwgMSkiXTsKICAgICByZXR1cm4gd2ViVmlldzsKIH0K
IAorc3RhdGljIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiB3ZWJWaWV3Rm9yRWRpdEFjdGlvblRl
c3RpbmcoKQoreworICAgIHJldHVybiB3ZWJWaWV3Rm9yRWRpdEFjdGlvblRlc3RpbmcoQCI8ZGl2
PldlYktpdDwvZGl2PiIpOworfQorCitURVNUKFdLV2ViVmlld0VkaXRBY3Rpb25zLCBNb2RpZnlM
aXN0TGV2ZWwpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gd2ViVmlld0ZvckVkaXRBY3Rpb25UZXN0
aW5nKEAiPG9sPjxsaT5Gb288L2xpPjxvbD48bGkgaWQ9J2Jhcic+QmFyPC9saT48L29sPjx1bD48
bGkgaWQ9J2Jheic+QmF6PC9saT48L3VsPjwvb2w+Iik7CisKKyAgICBbd2ViVmlldyBldmFsdWF0
ZUphdmFTY3JpcHQ6QCJnZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbihiYXIsIDApIiBjb21wbGV0
aW9uSGFuZGxlcjpuaWxdOworICAgIFt3ZWJWaWV3IF9kZWNyZWFzZUxpc3RMZXZlbDpuaWxdOwor
ICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJvbCA+IGxpI2Jh
ciJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBxdWVyeVNlbGVjdG9yRXhpc3RzOkAib2wg
PiB1bCA+IGxpI2JheiJdKTsKKworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImdl
dFNlbGVjdGlvbigpLnNldFBvc2l0aW9uKGJheiwgMCkiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07
CisgICAgW3dlYlZpZXcgX2RlY3JlYXNlTGlzdExldmVsOm5pbF07CisgICAgRVhQRUNUX1RSVUUo
W3dlYlZpZXcgcXVlcnlTZWxlY3RvckV4aXN0czpAIm9sID4gbGkjYmFyIl0pOworICAgIEVYUEVD
VF9UUlVFKFt3ZWJWaWV3IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJvbCA+IGxpI2JheiJdKTsKKwor
ICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLnNldEJhc2VB
bmRFeHRlbnQoYmFyLCAwLCBiYXosIDEpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOworICAgIFt3
ZWJWaWV3IF9pbmNyZWFzZUxpc3RMZXZlbDpuaWxdOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3
IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJvbCA+IG9sID4gbGkjYmFyIl0pOworICAgIEVYUEVDVF9U
UlVFKFt3ZWJWaWV3IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJvbCA+IG9sID4gbGkjYmF6Il0pOwor
CisgICAgW3dlYlZpZXcgX2RlY3JlYXNlTGlzdExldmVsOm5pbF07CisgICAgRVhQRUNUX1RSVUUo
W3dlYlZpZXcgcXVlcnlTZWxlY3RvckV4aXN0czpAIm9sID4gbGkjYmFyIl0pOworICAgIEVYUEVD
VF9UUlVFKFt3ZWJWaWV3IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJvbCA+IGxpI2JheiJdKTsKK30K
KwogVEVTVChXS1dlYlZpZXdFZGl0QWN0aW9ucywgTmVzdGVkTGlzdEluc2VydGlvbikKIHsKICAg
ICBhdXRvIHdlYlZpZXcgPSB3ZWJWaWV3Rm9yRWRpdEFjdGlvblRlc3RpbmcoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354372</attachid>
            <date>2018-11-09 12:27:36 -0800</date>
            <delta_ts>2018-11-09 12:31:18 -0800</delta_ts>
            <desc>Rebase on trunk</desc>
            <filename>bug-191471-20181109122735.patch</filename>
            <type>text/plain</type>
            <size>7636</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4MDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTU0MDMyYjQ4MmJlYTU4
MDk0MDNmMzQ0YzQ4NDZjN2Q3Yzc3Y2I0ZS4uM2I0MmQxZmYyOWQyYmJiZWE1NGQxM2YwMmJlM2E5
YjFiMzI5MDBmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE4LTExLTA5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gSW1w
bGVtZW50IFNQSSBvbiBXS1dlYlZpZXcgdG8gaW5jcmVhc2UgYW5kIGRlY3JlYXNlIGxpc3QgbGV2
ZWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE0
NzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1OTUyNDcyPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBuZXcgbWV0aG9kIHN0dWJzIGZvciBj
aGFuZ2luZyB0aGUgbGlzdCB0eXBlIGZvciB0aGUgY3VycmVudCBzZWxlY3Rpb24gKHRvIGJlIGlt
cGxlbWVudGVkIGluIGEgZnV0dXJlIHBhdGNoKS4KKworICAgICAgICAqIGVkaXRpbmcvRWRpdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6Y2FuQ2hhbmdlU2VsZWN0aW9uTGlzdFR5
cGUpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25MaXN0VHlwZSk6
CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKwogMjAxOC0xMS0wOSAgQW50dGkgS29pdmlz
dG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIE9wdGlvblNldCBmb3IgbGF5b3V0
IG1pbGVzdG9uZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZGEwMjNkMmE2NWYzZTA2ODc3YzA3MmU5YWY3MWM4MGQw
OGUwYzVlMC4uNTM0ZjU5NzgxZTllOGFkYTRiY2Y3YmU1MWExM2I4OTg2NTY4NTUxNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsNSArMSwyMCBAQAogMjAxOC0xMS0wOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hz
aWVoQGFwcGxlLmNvbT4KIAorICAgICAgICBbQ29jb2FdIEltcGxlbWVudCBTUEkgb24gV0tXZWJW
aWV3IHRvIGluY3JlYXNlIGFuZCBkZWNyZWFzZSBsaXN0IGxldmVscworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxNDcxCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80NTk1MjQ3Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBJbXBsZW1lbnQgdGhlc2UgbWV0aG9kIHN0dWJzIGJ5IGNhbGxpbmcgaW50byBF
ZGl0b3IuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OmluY3JlYXNlTGlzdExldmVsKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6ZGVjcmVhc2VMaXN0TGV2ZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjpjaGFuZ2VMaXN0VHlwZSk6CisKKzIwMTgtMTEtMDggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9o
c2llaEBhcHBsZS5jb20+CisKICAgICAgICAgW0NvY29hXSBJbnRyb2R1Y2UgV0tXZWJWaWV3IFNQ
SSB0byBpbnNlcnQgbmVzdGVkIG9yZGVyZWQgYW5kIHVub3JkZXJlZCBsaXN0cwogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxNDEwCiAgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS80NTg5ODYxMD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCA0
NDM2MmVkMDI1ZTY2ZTE2MDUyOTNmMmRmZGU4NWMwNGQ4MTZkZmNmLi43YzA2NDllMWIyMjA1MjIz
N2U3ZWE5ZjliMWM0OGZmMTE5NDU1MzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBA
IC0xNDc2LDYgKzE0NzYsMTcgQEAgdm9pZCBFZGl0b3I6OnBlcmZvcm1EZWxldGUoKQogICAgIHNl
dFN0YXJ0TmV3S2lsbFJpbmdTZXF1ZW5jZShmYWxzZSk7CiB9CiAKK2Jvb2wgRWRpdG9yOjpjYW5D
aGFuZ2VTZWxlY3Rpb25MaXN0VHlwZSgpCit7CisgICAgLy8gRklYTUU6IE5vdCBpbXBsZW1lbnRl
ZC4KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25M
aXN0VHlwZSgpCit7CisgICAgLy8gRklYTUU6IE5vdCBpbXBsZW1lbnRlZC4KK30KKwogdm9pZCBF
ZGl0b3I6OnNpbXBsaWZ5TWFya3VwKE5vZGUqIHN0YXJ0Tm9kZSwgTm9kZSogZW5kTm9kZSkKIHsK
ICAgICBpZiAoIXN0YXJ0Tm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IDNiYzhhMDYw
ZWVkZTRjMzE5NTgyOWUxM2YxZDU0MjM3NTAyY2UyMjIuLmFkOWZjMGIxNjM3ZmVmZmFlZmM3MzJj
YzM0YWM1MmY2NTMyMWY2YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtMjA2LDYgKzIw
Niw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8Tm9kZT4gaW5jcmVhc2VT
ZWxlY3Rpb25MaXN0TGV2ZWxPcmRlcmVkKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPE5v
ZGU+IGluY3JlYXNlU2VsZWN0aW9uTGlzdExldmVsVW5vcmRlcmVkKCk7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBkZWNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbCgpOworICAgIFdFQkNPUkVfRVhQ
T1JUIGJvb2wgY2FuQ2hhbmdlU2VsZWN0aW9uTGlzdFR5cGUoKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGNoYW5nZVNlbGVjdGlvbkxpc3RUeXBlKCk7CiAgICAKICAgICB2b2lkIHJlbW92ZUZv
cm1hdHRpbmdBbmRTdHlsZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCmluZGV4IDczYmFmMDBkNDdjMmZhNmMxYjNkOTgxYjczMTBmYWVhYWRjZWY4
YmUuLmU3ZmFlODVhYzg5OWI1NGEzODFkZmIyZjJlZjM1YzY0MmQ2YjI0YmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xMTUyLDE3ICsxMTUy
LDIzIEBAIHZvaWQgV2ViUGFnZTo6c2V0RWRpdGFibGUoYm9vbCBlZGl0YWJsZSkKIAogdm9pZCBX
ZWJQYWdlOjppbmNyZWFzZUxpc3RMZXZlbCgpCiB7Ci0gICAgLy8gRklYTUU6IE5vdCBpbXBsZW1l
bnRlZC4KKyAgICBhdXRvJiBlZGl0b3IgPSBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmZvY3Vz
ZWRPck1haW5GcmFtZSgpLmVkaXRvcigpOworICAgIGlmIChlZGl0b3IuY2FuSW5jcmVhc2VTZWxl
Y3Rpb25MaXN0TGV2ZWwoKSkKKyAgICAgICAgZWRpdG9yLmluY3JlYXNlU2VsZWN0aW9uTGlzdExl
dmVsKCk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6ZGVjcmVhc2VMaXN0TGV2ZWwoKQogewotICAgIC8v
IEZJWE1FOiBOb3QgaW1wbGVtZW50ZWQuCisgICAgYXV0byYgZWRpdG9yID0gbV9wYWdlLT5mb2N1
c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKS5lZGl0b3IoKTsKKyAgICBpZiAoZWRp
dG9yLmNhbkRlY3JlYXNlU2VsZWN0aW9uTGlzdExldmVsKCkpCisgICAgICAgIGVkaXRvci5kZWNy
ZWFzZVNlbGVjdGlvbkxpc3RMZXZlbCgpOwogfQogCiB2b2lkIFdlYlBhZ2U6OmNoYW5nZUxpc3RU
eXBlKCkKIHsKLSAgICAvLyBGSVhNRTogTm90IGltcGxlbWVudGVkLgorICAgIGF1dG8mIGVkaXRv
ciA9IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCkuZWRpdG9y
KCk7CisgICAgaWYgKGVkaXRvci5jYW5DaGFuZ2VTZWxlY3Rpb25MaXN0VHlwZSgpKQorICAgICAg
ICBlZGl0b3IuY2hhbmdlU2VsZWN0aW9uTGlzdFR5cGUoKTsKIH0KIAogYm9vbCBXZWJQYWdlOjpp
c0VkaXRpbmdDb21tYW5kRW5hYmxlZChjb25zdCBTdHJpbmcmIGNvbW1hbmROYW1lKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGYyMjA4MThlOTBl
ZTBmZmQyMTAyZmI3M2JkNjBiNjViMTdjMDZjNjYuLjZhYzU1YzA1Nzc2ZTY4ZGUyNWEwZjA2OWE3
ZDVhZDNiY2NlMzhhMjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsNSArMSwxOSBAQAogMjAxOC0xMS0wOSAgV2Vuc29uIEhzaWVoICA8d2Vu
c29uX2hzaWVoQGFwcGxlLmNvbT4KIAorICAgICAgICBbQ29jb2FdIEltcGxlbWVudCBTUEkgb24g
V0tXZWJWaWV3IHRvIGluY3JlYXNlIGFuZCBkZWNyZWFzZSBsaXN0IGxldmVscworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxNDcxCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS80NTk1MjQ3Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgYW4gQVBJIHRlc3QgdG8gZW5zdXJlIHRoYXQgbGlzdCBsZXZl
bHMgY2FuIGJlIGluY3JlbWVudGVkIGFuZCBkZWNyZW1lbnRlZCB2aWEgV0tXZWJWaWV3IFNQSS4K
KworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RWRp
dEFjdGlvbnMubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjp3ZWJWaWV3Rm9yRWRpdEFjdGlv
blRlc3RpbmcpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKKzIwMTgtMTEtMDgg
IFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKICAgICAgICAgW0NvY29h
XSBJbnRyb2R1Y2UgV0tXZWJWaWV3IFNQSSB0byBpbnNlcnQgbmVzdGVkIG9yZGVyZWQgYW5kIHVu
b3JkZXJlZCBsaXN0cwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTkxNDEwCiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTg5ODYxMD4KZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RWRpdEFj
dGlvbnMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmll
d0VkaXRBY3Rpb25zLm1tCmluZGV4IGIxNzdhMzA4YzQxNjMwNDZkNmY4MTQ3MjU3MmUyNDk0NGIz
ZGUwM2QuLmE4NDJiODBlYjRiYmExYmYwZGUzYjA2YTZjNTU1MzhhYTlkMmU4NzkgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RWRpdEFj
dGlvbnMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dl
YlZpZXdFZGl0QWN0aW9ucy5tbQpAQCAtNjEsMTUgKzYxLDQ0IEBACiAKIG5hbWVzcGFjZSBUZXN0
V2ViS2l0QVBJIHsKIAotc3RhdGljIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiB3ZWJWaWV3Rm9y
RWRpdEFjdGlvblRlc3RpbmcoKQorc3RhdGljIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiB3ZWJW
aWV3Rm9yRWRpdEFjdGlvblRlc3RpbmcoTlNTdHJpbmcgKm1hcmt1cCkKIHsKICAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01h
a2VSZWN0KDAsIDAsIDQwMCwgNDAwKV0pOwotICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2Fk
SFRNTFN0cmluZzpAIjxkaXY+V2ViS2l0PC9kaXY+Il07CisgICAgW3dlYlZpZXcgc3luY2hyb25v
dXNseUxvYWRIVE1MU3RyaW5nOm1hcmt1cF07CiAgICAgW3dlYlZpZXcgX3NldEVkaXRhYmxlOllF
U107CiAgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVj
dGlvbigpLnNldFBvc2l0aW9uKGRvY3VtZW50LmJvZHksIDEpIl07CiAgICAgcmV0dXJuIHdlYlZp
ZXc7CiB9CiAKK3N0YXRpYyBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmlld0ZvckVkaXRB
Y3Rpb25UZXN0aW5nKCkKK3sKKyAgICByZXR1cm4gd2ViVmlld0ZvckVkaXRBY3Rpb25UZXN0aW5n
KEAiPGRpdj5XZWJLaXQ8L2Rpdj4iKTsKK30KKworVEVTVChXS1dlYlZpZXdFZGl0QWN0aW9ucywg
TW9kaWZ5TGlzdExldmVsKQoreworICAgIGF1dG8gd2ViVmlldyA9IHdlYlZpZXdGb3JFZGl0QWN0
aW9uVGVzdGluZyhAIjxvbD48bGk+Rm9vPC9saT48b2w+PGxpIGlkPSdiYXInPkJhcjwvbGk+PC9v
bD48dWw+PGxpIGlkPSdiYXonPkJhejwvbGk+PC91bD48L29sPiIpOworCisgICAgW3dlYlZpZXcg
ZXZhbHVhdGVKYXZhU2NyaXB0OkAiZ2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24oYmFyLCAwKSIg
Y29tcGxldGlvbkhhbmRsZXI6bmlsXTsKKyAgICBbd2ViVmlldyBfZGVjcmVhc2VMaXN0TGV2ZWw6
bmlsXTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBxdWVyeVNlbGVjdG9yRXhpc3RzOkAib2wg
PiBsaSNiYXIiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgcXVlcnlTZWxlY3RvckV4aXN0
czpAIm9sID4gdWwgPiBsaSNiYXoiXSk7CisKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3Jp
cHQ6QCJnZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbihiYXosIDApIiBjb21wbGV0aW9uSGFuZGxl
cjpuaWxdOworICAgIFt3ZWJWaWV3IF9kZWNyZWFzZUxpc3RMZXZlbDpuaWxdOworICAgIEVYUEVD
VF9UUlVFKFt3ZWJWaWV3IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJvbCA+IGxpI2JhciJdKTsKKyAg
ICBFWFBFQ1RfVFJVRShbd2ViVmlldyBxdWVyeVNlbGVjdG9yRXhpc3RzOkAib2wgPiBsaSNiYXoi
XSk7CisKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJnZXRTZWxlY3Rpb24oKS5z
ZXRCYXNlQW5kRXh0ZW50KGJhciwgMCwgYmF6LCAxKSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsK
KyAgICBbd2ViVmlldyBfaW5jcmVhc2VMaXN0TGV2ZWw6bmlsXTsKKyAgICBFWFBFQ1RfVFJVRShb
d2ViVmlldyBxdWVyeVNlbGVjdG9yRXhpc3RzOkAib2wgPiBvbCA+IGxpI2JhciJdKTsKKyAgICBF
WFBFQ1RfVFJVRShbd2ViVmlldyBxdWVyeVNlbGVjdG9yRXhpc3RzOkAib2wgPiBvbCA+IGxpI2Jh
eiJdKTsKKworICAgIFt3ZWJWaWV3IF9kZWNyZWFzZUxpc3RMZXZlbDpuaWxdOworICAgIEVYUEVD
VF9UUlVFKFt3ZWJWaWV3IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJvbCA+IGxpI2JhciJdKTsKKyAg
ICBFWFBFQ1RfVFJVRShbd2ViVmlldyBxdWVyeVNlbGVjdG9yRXhpc3RzOkAib2wgPiBsaSNiYXoi
XSk7Cit9CisKIFRFU1QoV0tXZWJWaWV3RWRpdEFjdGlvbnMsIE5lc3RlZExpc3RJbnNlcnRpb24p
CiB7CiAgICAgYXV0byB3ZWJWaWV3ID0gd2ViVmlld0ZvckVkaXRBY3Rpb25UZXN0aW5nKCk7Cg==
</data>
<flag name="review"
          id="371577"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354385</attachid>
            <date>2018-11-09 14:14:13 -0800</date>
            <delta_ts>2018-11-09 14:50:57 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-191471-20181109141412.patch</filename>
            <type>text/plain</type>
            <size>7496</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4MDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTU0MDMyYjQ4MmJlYTU4
MDk0MDNmMzQ0YzQ4NDZjN2Q3Yzc3Y2I0ZS4uNDEwMzI0ZWViMTc1ZTBlNzM3ZWFhNTljZDNkMzJi
MzJhMjcwYWNjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE4LTExLTA5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gSW1w
bGVtZW50IFNQSSBvbiBXS1dlYlZpZXcgdG8gaW5jcmVhc2UgYW5kIGRlY3JlYXNlIGxpc3QgbGV2
ZWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE0
NzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1OTUyNDcyPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgQWRkIG5ldyBtZXRob2Qgc3R1YnMgZm9yIGNoYW5n
aW5nIHRoZSBsaXN0IHR5cGUgZm9yIHRoZSBjdXJyZW50IHNlbGVjdGlvbiAodG8gYmUgaW1wbGVt
ZW50ZWQgaW4gYSBmdXR1cmUgcGF0Y2gpLgorCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjYW5DaGFuZ2VTZWxlY3Rpb25MaXN0VHlwZSk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkxpc3RUeXBlKToKKyAg
ICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOgorCiAyMDE4LTExLTA5ICBBbnR0aSBLb2l2aXN0byAg
PGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgT3B0aW9uU2V0IGZvciBsYXlvdXQgbWls
ZXN0b25lcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBkYTAyM2QyYTY1ZjNlMDY4NzdjMDcyZTlhZjcxYzgwZDA4ZTBj
NWUwLi5lN2MyYzM0ZmNiYTQyZjk5ZTU5NmZhODYwYzNiYTU2OTFlZjM3Y2Y5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIwIEBACisyMDE4LTExLTA5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gSW1wbGVtZW50IFNQSSBvbiBXS1dlYlZpZXcg
dG8gaW5jcmVhc2UgYW5kIGRlY3JlYXNlIGxpc3QgbGV2ZWxzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE0NzEKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzQ1OTUyNDcyPgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAg
ICAgSW1wbGVtZW50IHRoZXNlIG1ldGhvZCBzdHVicyBieSBjYWxsaW5nIGludG8gRWRpdG9yLgor
CisgICAgICAgIFRlc3Q6IFdLV2ViVmlld0VkaXRBY3Rpb25zLk1vZGlmeUxpc3RMZXZlbAorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjppbmNyZWFzZUxpc3RMZXZlbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmRlY3JlYXNlTGlzdExldmVsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y2hhbmdlTGlz
dFR5cGUpOgorCiAyMDE4LTExLTA5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtDb2NvYV0gSW50cm9kdWNlIFdLV2ViVmlldyBTUEkgdG8gaW5zZXJ0
IG5lc3RlZCBvcmRlcmVkIGFuZCB1bm9yZGVyZWQgbGlzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmNwcAppbmRleCA0NDM2MmVkMDI1ZTY2ZTE2MDUyOTNmMmRmZGU4NWMwNGQ4MTZkZmNmLi43YzA2
NDllMWIyMjA1MjIzN2U3ZWE5ZjliMWM0OGZmMTE5NDU1MzFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuY3BwCkBAIC0xNDc2LDYgKzE0NzYsMTcgQEAgdm9pZCBFZGl0b3I6OnBlcmZvcm1EZWxl
dGUoKQogICAgIHNldFN0YXJ0TmV3S2lsbFJpbmdTZXF1ZW5jZShmYWxzZSk7CiB9CiAKK2Jvb2wg
RWRpdG9yOjpjYW5DaGFuZ2VTZWxlY3Rpb25MaXN0VHlwZSgpCit7CisgICAgLy8gRklYTUU6IE5v
dCBpbXBsZW1lbnRlZC4KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgRWRpdG9yOjpjaGFu
Z2VTZWxlY3Rpb25MaXN0VHlwZSgpCit7CisgICAgLy8gRklYTUU6IE5vdCBpbXBsZW1lbnRlZC4K
K30KKwogdm9pZCBFZGl0b3I6OnNpbXBsaWZ5TWFya3VwKE5vZGUqIHN0YXJ0Tm9kZSwgTm9kZSog
ZW5kTm9kZSkKIHsKICAgICBpZiAoIXN0YXJ0Tm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmlu
ZGV4IDNiYzhhMDYwZWVkZTRjMzE5NTgyOWUxM2YxZDU0MjM3NTAyY2UyMjIuLmFkOWZjMGIxNjM3
ZmVmZmFlZmM3MzJjYzM0YWM1MmY2NTMyMWY2YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApA
QCAtMjA2LDYgKzIwNiw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8Tm9k
ZT4gaW5jcmVhc2VTZWxlY3Rpb25MaXN0TGV2ZWxPcmRlcmVkKCk7CiAgICAgV0VCQ09SRV9FWFBP
UlQgUmVmUHRyPE5vZGU+IGluY3JlYXNlU2VsZWN0aW9uTGlzdExldmVsVW5vcmRlcmVkKCk7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbCgpOworICAg
IFdFQkNPUkVfRVhQT1JUIGJvb2wgY2FuQ2hhbmdlU2VsZWN0aW9uTGlzdFR5cGUoKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGNoYW5nZVNlbGVjdGlvbkxpc3RUeXBlKCk7CiAgICAKICAgICB2
b2lkIHJlbW92ZUZvcm1hdHRpbmdBbmRTdHlsZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDczYmFmMDBkNDdjMmZhNmMxYjNkOTgxYjcz
MTBmYWVhYWRjZWY4YmUuLmU3ZmFlODVhYzg5OWI1NGEzODFkZmIyZjJlZjM1YzY0MmQ2YjI0YmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0x
MTUyLDE3ICsxMTUyLDIzIEBAIHZvaWQgV2ViUGFnZTo6c2V0RWRpdGFibGUoYm9vbCBlZGl0YWJs
ZSkKIAogdm9pZCBXZWJQYWdlOjppbmNyZWFzZUxpc3RMZXZlbCgpCiB7Ci0gICAgLy8gRklYTUU6
IE5vdCBpbXBsZW1lbnRlZC4KKyAgICBhdXRvJiBlZGl0b3IgPSBtX3BhZ2UtPmZvY3VzQ29udHJv
bGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpLmVkaXRvcigpOworICAgIGlmIChlZGl0b3IuY2Fu
SW5jcmVhc2VTZWxlY3Rpb25MaXN0TGV2ZWwoKSkKKyAgICAgICAgZWRpdG9yLmluY3JlYXNlU2Vs
ZWN0aW9uTGlzdExldmVsKCk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6ZGVjcmVhc2VMaXN0TGV2ZWwo
KQogewotICAgIC8vIEZJWE1FOiBOb3QgaW1wbGVtZW50ZWQuCisgICAgYXV0byYgZWRpdG9yID0g
bV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKS5lZGl0b3IoKTsK
KyAgICBpZiAoZWRpdG9yLmNhbkRlY3JlYXNlU2VsZWN0aW9uTGlzdExldmVsKCkpCisgICAgICAg
IGVkaXRvci5kZWNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbCgpOwogfQogCiB2b2lkIFdlYlBhZ2U6
OmNoYW5nZUxpc3RUeXBlKCkKIHsKLSAgICAvLyBGSVhNRTogTm90IGltcGxlbWVudGVkLgorICAg
IGF1dG8mIGVkaXRvciA9IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZy
YW1lKCkuZWRpdG9yKCk7CisgICAgaWYgKGVkaXRvci5jYW5DaGFuZ2VTZWxlY3Rpb25MaXN0VHlw
ZSgpKQorICAgICAgICBlZGl0b3IuY2hhbmdlU2VsZWN0aW9uTGlzdFR5cGUoKTsKIH0KIAogYm9v
bCBXZWJQYWdlOjppc0VkaXRpbmdDb21tYW5kRW5hYmxlZChjb25zdCBTdHJpbmcmIGNvbW1hbmRO
YW1lKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IGYyMjA4MThlOTBlZTBmZmQyMTAyZmI3M2JkNjBiNjViMTdjMDZjNjYuLjU5NDMxYjlkMWE3OTFj
NDVkZGQzNDgxYWFmZTliZDdjZmM1NTU3YzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOC0xMS0wOSAgV2Vuc29u
IEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEltcGxl
bWVudCBTUEkgb24gV0tXZWJWaWV3IHRvIGluY3JlYXNlIGFuZCBkZWNyZWFzZSBsaXN0IGxldmVs
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxNDcx
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTk1MjQ3Mj4KKworICAgICAgICBSZXZpZXdlZCBi
eSBUaW0gSG9ydG9uLgorCisgICAgICAgIEFkZCBhbiBBUEkgdGVzdCB0byBlbnN1cmUgdGhhdCBs
aXN0IGxldmVscyBjYW4gYmUgaW5jcmVtZW50ZWQgYW5kIGRlY3JlbWVudGVkIHZpYSBXS1dlYlZp
ZXcgU1BJLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dl
YlZpZXdFZGl0QWN0aW9ucy5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OndlYlZpZXdGb3JF
ZGl0QWN0aW9uVGVzdGluZyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAx
OC0xMS0wOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbQ29jb2FdIEludHJvZHVjZSBXS1dlYlZpZXcgU1BJIHRvIGluc2VydCBuZXN0ZWQgb3JkZXJl
ZCBhbmQgdW5vcmRlcmVkIGxpc3RzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1dLV2ViVmlld0VkaXRBY3Rpb25zLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdFZGl0QWN0aW9ucy5tbQppbmRleCBiMTc3
YTMwOGM0MTYzMDQ2ZDZmODE0NzI1NzJlMjQ5NDRiM2RlMDNkLi5hODQyYjgwZWI0YmJhMWJmMGRl
M2IwNmE2YzU1NTM4YWE5ZDJlODc5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1dLV2ViVmlld0VkaXRBY3Rpb25zLm1tCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RWRpdEFjdGlvbnMubW0KQEAgLTYx
LDE1ICs2MSw0NCBAQAogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKLXN0YXRpYyBSZXRh
aW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmlld0ZvckVkaXRBY3Rpb25UZXN0aW5nKCkKK3N0YXRp
YyBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmlld0ZvckVkaXRBY3Rpb25UZXN0aW5nKE5T
U3RyaW5nICptYXJrdXApCiB7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA0MDAsIDQwMCldKTsK
LSAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8ZGl2PldlYktpdDwv
ZGl2PiJdOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzptYXJrdXBd
OwogICAgIFt3ZWJWaWV3IF9zZXRFZGl0YWJsZTpZRVNdOwogICAgIFt3ZWJWaWV3IHN0cmluZ0J5
RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJnZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbihkb2N1bWVu
dC5ib2R5LCAxKSJdOwogICAgIHJldHVybiB3ZWJWaWV3OwogfQogCitzdGF0aWMgUmV0YWluUHRy
PFRlc3RXS1dlYlZpZXc+IHdlYlZpZXdGb3JFZGl0QWN0aW9uVGVzdGluZygpCit7CisgICAgcmV0
dXJuIHdlYlZpZXdGb3JFZGl0QWN0aW9uVGVzdGluZyhAIjxkaXY+V2ViS2l0PC9kaXY+Iik7Cit9
CisKK1RFU1QoV0tXZWJWaWV3RWRpdEFjdGlvbnMsIE1vZGlmeUxpc3RMZXZlbCkKK3sKKyAgICBh
dXRvIHdlYlZpZXcgPSB3ZWJWaWV3Rm9yRWRpdEFjdGlvblRlc3RpbmcoQCI8b2w+PGxpPkZvbzwv
bGk+PG9sPjxsaSBpZD0nYmFyJz5CYXI8L2xpPjwvb2w+PHVsPjxsaSBpZD0nYmF6Jz5CYXo8L2xp
PjwvdWw+PC9vbD4iKTsKKworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImdldFNl
bGVjdGlvbigpLnNldFBvc2l0aW9uKGJhciwgMCkiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07Cisg
ICAgW3dlYlZpZXcgX2RlY3JlYXNlTGlzdExldmVsOm5pbF07CisgICAgRVhQRUNUX1RSVUUoW3dl
YlZpZXcgcXVlcnlTZWxlY3RvckV4aXN0czpAIm9sID4gbGkjYmFyIl0pOworICAgIEVYUEVDVF9U
UlVFKFt3ZWJWaWV3IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJvbCA+IHVsID4gbGkjYmF6Il0pOwor
CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZ2V0U2VsZWN0aW9uKCkuc2V0UG9z
aXRpb24oYmF6LCAwKSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKKyAgICBbd2ViVmlldyBfZGVj
cmVhc2VMaXN0TGV2ZWw6bmlsXTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBxdWVyeVNlbGVj
dG9yRXhpc3RzOkAib2wgPiBsaSNiYXIiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgcXVl
cnlTZWxlY3RvckV4aXN0czpAIm9sID4gbGkjYmF6Il0pOworCisgICAgW3dlYlZpZXcgZXZhbHVh
dGVKYXZhU2NyaXB0OkAiZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudChiYXIsIDAsIGJh
eiwgMSkiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CisgICAgW3dlYlZpZXcgX2luY3JlYXNlTGlz
dExldmVsOm5pbF07CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgcXVlcnlTZWxlY3RvckV4aXN0
czpAIm9sID4gb2wgPiBsaSNiYXIiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgcXVlcnlT
ZWxlY3RvckV4aXN0czpAIm9sID4gb2wgPiBsaSNiYXoiXSk7CisKKyAgICBbd2ViVmlldyBfZGVj
cmVhc2VMaXN0TGV2ZWw6bmlsXTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBxdWVyeVNlbGVj
dG9yRXhpc3RzOkAib2wgPiBsaSNiYXIiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgcXVl
cnlTZWxlY3RvckV4aXN0czpAIm9sID4gbGkjYmF6Il0pOworfQorCiBURVNUKFdLV2ViVmlld0Vk
aXRBY3Rpb25zLCBOZXN0ZWRMaXN0SW5zZXJ0aW9uKQogewogICAgIGF1dG8gd2ViVmlldyA9IHdl
YlZpZXdGb3JFZGl0QWN0aW9uVGVzdGluZygpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>