<?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>176212</bug_id>
          
          <creation_ts>2017-08-31 22:53:38 -0700</creation_ts>
          <short_desc>Replace WKUIDelegatePrivate&apos;s isPlayingMediaDidChange with KVO _isPlayingAudio on WKWebView</short_desc>
          <delta_ts>2017-09-27 12:55:45 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>berto</cc>
    
    <cc>buildbot</cc>
    
    <cc>cgarcia</cc>
    
    <cc>gustavo</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1344317</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-08-31 22:53:38 -0700</bug_when>
    <thetext>Replace WKUIDelegatePrivate&apos;s isPlayingMediaDidChange with KVO _isPlayingAudio on WKWebView</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344318</commentid>
    <comment_count>1</comment_count>
      <attachid>319578</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-08-31 22:56:41 -0700</bug_when>
    <thetext>Created attachment 319578
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344320</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-31 22:58:37 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344413</commentid>
    <comment_count>3</comment_count>
      <attachid>319599</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-09-01 09:12:21 -0700</bug_when>
    <thetext>Created attachment 319599
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344426</commentid>
    <comment_count>4</comment_count>
      <attachid>319604</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-09-01 09:49:29 -0700</bug_when>
    <thetext>Created attachment 319604
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344453</commentid>
    <comment_count>5</comment_count>
      <attachid>319613</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-09-01 10:45:45 -0700</bug_when>
    <thetext>Created attachment 319613
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344471</commentid>
    <comment_count>6</comment_count>
      <attachid>319621</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-09-01 11:03:47 -0700</bug_when>
    <thetext>Created attachment 319621
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344510</commentid>
    <comment_count>7</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-09-01 11:55:06 -0700</bug_when>
    <thetext>http://trac.webkit.org/r221489</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353740</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-27 12:55:45 -0700</bug_when>
    <thetext>&lt;rdar://problem/34694290&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319578</attachid>
            <date>2017-08-31 22:56:41 -0700</date>
            <delta_ts>2017-09-01 09:12:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176212-20170831225640.patch</filename>
            <type>text/plain</type>
            <size>19919</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjE0NjcpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDE3LTA4LTMxICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVwbGFjZSBXS1VJ
RGVsZWdhdGVQcml2YXRlJ3MgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2Ugd2l0aCBLVk8gX2lzUGxh
eWluZ0F1ZGlvIG9uIFdLV2ViVmlldworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTc2MjEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRGFuIHN1Z2dlc3RlZCB0aGlzIGluIGJ1ZyAxNzYyMDMsIEkgdGhpbmsg
aXQncyBhIGdvb2QgaWRlYSwKKyAgICAgICAgYW5kIEknbGwgbmVlZCB0byBhZGQgbW9yZSBLVk8g
cHJvcGVydGllcyBzb29uIGFueXdheXMgc28gSSdkIGJldHRlciBsZWFybiBob3cuCisgICAgICAg
IERldGVybWluaW5nIGlmIGF1ZGlvIHBsYXlpbmcgY2hhbmdlZCBpcyBpbXBvcnRhbnQgZm9yIFNh
ZmFyaSwgc28gV0tQYWdlVUlDbGllbnQncworICAgICAgICBpc1BsYXlpbmdBdWRpb0RpZENoYW5n
ZSB3YXMgY29ycmVjdGx5IG5hbWVkIGJ1dCBpbmNvcnJlY3RseSBmaXJlZCBpZiBlaXRoZXIgYXVk
aW8KKyAgICAgICAgb3IgdmlkZW8gcGxheWluZyBjaGFuZ2VkIGFuZCBoYWQgeW91IGNoZWNrIGlm
IGF1ZGlvIHdhcyBwbGF5aW5nLCBwb3NzaWJseSB0b28gb2Z0ZW4uCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6CisgICAgICAgIChBUEk6OlVJQ2xpZW50Ojppc1BsYXlp
bmdNZWRpYURpZENoYW5nZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6
CisgICAgICAgIChXS1BhZ2VTZXRQYWdlVUlDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2lzUGxheWluZ0F1ZGlv
XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpzZXREZWxlZ2F0
ZSk6CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50Ojppc1BsYXlpbmdNZWRp
YURpZENoYW5nZSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aXNQbGF5aW5nQXVkaW9XaWxsQ2hhbmdlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmlzUGxheWluZ01lZGlh
RGlkQ2hhbmdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbToKKyAgICAgICAgKFdlYktp
dDo6UGFnZUNsaWVudEltcGw6OmlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlKToKKyAgICAgICAgKFdl
YktpdDo6UGFnZUNsaWVudEltcGw6OmlzUGxheWluZ0F1ZGlvV2lsbENoYW5nZSk6CisKIDIwMTct
MDgtMzEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAg
ICAgICBBZGQgV0tVSURlbGVnYXRlUHJpdmF0ZSBlcXVpdmFsZW50IG9mIFdLUGFnZVVJQ2xpZW50
J3MgaXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2UKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1BhZ2VDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdl
Q2xpZW50LmgJKHJldmlzaW9uIDIyMTQ2NykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Bh
Z2VDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzQ0LDYgKzM0NCw4IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShTYW1l
RG9jdW1lbnROYXZpZ2F0aW9uVHlwZSkgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5n
ZUJhY2tncm91bmRDb2xvcigpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgaXNQbGF5aW5nQXVkaW9X
aWxsQ2hhbmdlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBpc1BsYXlpbmdBdWRpb0RpZENoYW5n
ZSgpID0gMDsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2aXJ0dWFsIHZvaWQgZGlkUGVyZm9y
bUltbWVkaWF0ZUFjdGlvbkhpdFRlc3QoY29uc3QgV2ViSGl0VGVzdFJlc3VsdERhdGEmLCBib29s
IGNvbnRlbnRQcmV2ZW50c0RlZmF1bHQsIEFQSTo6T2JqZWN0KikgPSAwOwpJbmRleDogU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCShyZXZpc2lvbiAyMjE0NjcpCisrKyBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02NTQ5LDI1ICs2NTQ5LDMxIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpuYXZpZ2F0aW9uR2VzdHVy
ZVNuYXAKICAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRSZW1vdmVOYXZpZ2F0aW9uR2Vz
dHVyZVNuYXBzaG90KCp0aGlzKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmlzUGxheWluZ01l
ZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSwgdWludDY0
X3Qgc291cmNlRWxlbWVudElEKQordm9pZCBXZWJQYWdlUHJveHk6OmlzUGxheWluZ01lZGlhRGlk
Q2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBuZXdTdGF0ZSwgdWludDY0X3Qg
c291cmNlRWxlbWVudElEKQogewogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogICAgIFdlYk1l
ZGlhU2Vzc2lvbkZvY3VzTWFuYWdlciogZm9jdXNNYW5hZ2VyID0gcHJvY2VzcygpLnByb2Nlc3NQ
b29sKCkuc3VwcGxlbWVudDxXZWJNZWRpYVNlc3Npb25Gb2N1c01hbmFnZXI+KCk7CiAgICAgQVNT
RVJUKGZvY3VzTWFuYWdlcik7Ci0gICAgZm9jdXNNYW5hZ2VyLT51cGRhdGVQbGF5YmFja0F0dHJp
YnV0ZXNGcm9tTWVkaWFTdGF0ZSh0aGlzLCBzb3VyY2VFbGVtZW50SUQsIHN0YXRlKTsKKyAgICBm
b2N1c01hbmFnZXItPnVwZGF0ZVBsYXliYWNrQXR0cmlidXRlc0Zyb21NZWRpYVN0YXRlKHRoaXMs
IHNvdXJjZUVsZW1lbnRJRCwgbmV3U3RhdGUpOwogI2VuZGlmCiAKLSAgICBpZiAoc3RhdGUgPT0g
bV9tZWRpYVN0YXRlKQorICAgIGlmIChuZXdTdGF0ZSA9PSBtX21lZGlhU3RhdGUpCiAgICAgICAg
IHJldHVybjsKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG9sZE1lZGlhQ2FwdHVyZVN0YXRlID0gbV9tZWRpYVN0
YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlTWFzazsKLSAgICBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbmV3TWVkaWFDYXB0dXJlU3RhdGUg
PSBzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZU1hc2s7CisgICAg
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG5ld01lZGlhQ2FwdHVyZVN0
YXRlID0gbmV3U3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVNYXNr
OwogI2VuZGlmCiAKICAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgcGxheWluZ01l
ZGlhTWFzayA9IE1lZGlhUHJvZHVjZXI6OklzUGxheWluZ0F1ZGlvIHwgTWVkaWFQcm9kdWNlcjo6
SXNQbGF5aW5nVmlkZW87CiAgICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG9sZFN0
YXRlID0gbV9tZWRpYVN0YXRlOwotICAgIG1fbWVkaWFTdGF0ZSA9IHN0YXRlOworCisgICAgYm9v
bCBwbGF5aW5nQXVkaW9DaGFuZ2VzID0gKG9sZFN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SXNQbGF5
aW5nQXVkaW8pICE9IChuZXdTdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OklzUGxheWluZ0F1ZGlvKTsK
KyAgICBpZiAocGxheWluZ0F1ZGlvQ2hhbmdlcykKKyAgICAgICAgbV9wYWdlQ2xpZW50LmlzUGxh
eWluZ0F1ZGlvV2lsbENoYW5nZSgpOworICAgIG1fbWVkaWFTdGF0ZSA9IG5ld1N0YXRlOworICAg
IGlmIChwbGF5aW5nQXVkaW9DaGFuZ2VzKQorICAgICAgICBtX3BhZ2VDbGllbnQuaXNQbGF5aW5n
QXVkaW9EaWRDaGFuZ2UoKTsKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgaWYgKG9s
ZE1lZGlhQ2FwdHVyZVN0YXRlICE9IG5ld01lZGlhQ2FwdHVyZVN0YXRlKSB7CkBAIC02NTgwLDcg
KzY1ODYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuCiAKICAg
ICBwbGF5aW5nTWVkaWFNYXNrIHw9IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVy
ZU1hc2s7CiAgICAgaWYgKChvbGRTdGF0ZSAmIHBsYXlpbmdNZWRpYU1hc2spICE9IChtX21lZGlh
U3RhdGUgJiBwbGF5aW5nTWVkaWFNYXNrKSkKLSAgICAgICAgbV91aUNsaWVudC0+aXNQbGF5aW5n
TWVkaWFEaWRDaGFuZ2UoKnRoaXMsIChtX21lZGlhU3RhdGUgJiBwbGF5aW5nTWVkaWFNYXNrKSk7
CisgICAgICAgIG1fdWlDbGllbnQtPmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKCp0aGlzKTsKIAog
I2lmIFBMQVRGT1JNKE1BQykKICAgICBpZiAoKG9sZFN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SGFz
QXVkaW9PclZpZGVvKSAhPSAobV9tZWRpYVN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SGFzQXVkaW9P
clZpZGVvKSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5o
CShyZXZpc2lvbiAyMjE0NjcpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlD
bGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ2LDcgKzE0Niw3IEBAIHB1YmxpYzoKIAogICAg
IHZpcnR1YWwgdm9pZCBwaW5uZWRTdGF0ZURpZENoYW5nZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYp
IHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYktpdDo6
V2ViUGFnZVByb3h5JiwgYm9vbCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGlzUGxheWluZ01lZGlh
RGlkQ2hhbmdlKFdlYktpdDo6V2ViUGFnZVByb3h5JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIG1l
ZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncykgeyB9CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUF1dG9wbGF5RXZlbnQoV2ViS2l0
OjpXZWJQYWdlUHJveHkmLCBXZWJDb3JlOjpBdXRvcGxheUV2ZW50LCBPcHRpb25TZXQ8V2ViQ29y
ZTo6QXV0b3BsYXlFdmVudEZsYWdzPikgeyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlLmNwcAkocmV2aXNpb24gMjIxNDY3KQorKysgU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjA1OSw3ICsyMDU5
LDcgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZwogICAgICAgICAg
ICAgbV9jbGllbnQucGlubmVkU3RhdGVEaWRDaGFuZ2UodG9BUEkoJnBhZ2UpLCBtX2NsaWVudC5i
YXNlLmNsaWVudEluZm8pOwogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCBpc1BsYXlpbmdNZWRp
YURpZENoYW5nZShXZWJQYWdlUHJveHkmIHBhZ2UsIGJvb2wpIGZpbmFsCisgICAgICAgIHZvaWQg
aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViUGFnZVByb3h5JiBwYWdlKSBmaW5hbAogICAgICAg
ICB7CiAgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlKQog
ICAgICAgICAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAkocmV2aXNpb24gMjIx
NDY3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVBy
aXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ5LDcgKzE0OSw2IEBAIHN0cnVjdCBVSUVkZ2VJ
bnNldHM7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHRha2VGb2N1czoo
X1dLRm9jdXNEaXJlY3Rpb24pZGlyZWN0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01B
Q19UQkEpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkTm90SGFu
ZGxlV2hlZWxFdmVudDooTlNFdmVudCAqKWV2ZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdL
X01BQ19UQkEpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgaGFuZGxl
QXV0b3BsYXlFdmVudDooX1dLQXV0b3BsYXlFdmVudClldmVudCB3aXRoRmxhZ3M6KF9XS0F1dG9w
bGF5RXZlbnRGbGFncylmbGFncyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7
Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGlzUGxheWluZ01lZGlhRGlk
Q2hhbmdlOihCT09MKXBsYXlpbmdNZWRpYSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNf
VEJBKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZENsaWNrQXV0
b0ZpbGxCdXR0b25XaXRoVXNlckluZm86KGlkIDxOU1NlY3VyZUNvZGluZz4pdXNlckluZm8gV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwogLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBzYXZlRGF0YVRvRmlsZTooTlNEYXRhICopZGF0YSBzdWdnZXN0ZWRG
aWxlbmFtZTooTlNTdHJpbmcgKilzdWdnZXN0ZWRGaWxlbmFtZSBtaW1lVHlwZTooTlNTdHJpbmcg
KiltaW1lVHlwZSBvcmlnaW5hdGluZ1VSTDooTlNVUkwgKil1cmwgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goV0tfTUFDX1RCQSkpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBkaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kOihfV0tS
ZXNvdXJjZUxpbWl0KWxpbWl0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bQkocmV2aXNpb24gMjIxNDY3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtNDUxMiw2ICs0NTEyLDExIEBAIC0gKEJP
T0wpX2lzRGlzcGxheWluZ1N0YW5kYWxvbmVNZWRpYURvY3UKICAgICByZXR1cm4gTk87CiB9CiAK
Ky0gKEJPT0wpX2lzUGxheWluZ0F1ZGlvCit7CisgICAgcmV0dXJuIF9wYWdlLT5pc1BsYXlpbmdB
dWRpbygpOworfQorCiAtIChCT09MKV9pc1Nob3dpbmdOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90
CiB7CiAgICAgcmV0dXJuIF9wYWdlLT5pc1Nob3dpbmdOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90
KCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJp
dmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdQcml2YXRlLmgJKHJldmlzaW9uIDIyMTQ2NykKKysrIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEy
MCw2ICsxMjAsOCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBCiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICpfTUlNRVR5cGU7CiBAcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICpfdXNlckFnZW50IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCitAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHksIGdldHRlcj1faXNQbGF5aW5nQXVkaW8pIEJPT0wgX3BsYXlpbmdBdWRpbyBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKwog
QHByb3BlcnR5IChjb3B5LCBzZXR0ZXI9X3NldEFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudDop
IE5TU3RyaW5nICpfYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50OwogQHByb3BlcnR5IChjb3B5
LCBzZXR0ZXI9X3NldEN1c3RvbVVzZXJBZ2VudDopIE5TU3RyaW5nICpfY3VzdG9tVXNlckFnZW50
OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0VUlDbGllbnQuY3BwCShyZXZpc2lvbiAyMjE0NjcpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxNyw3
ICsyMTcsNyBAQCBwcml2YXRlOgogICAgICAgICB3ZWJraXRXZWJWaWV3UnVuQXNNb2RhbChtX3dl
YlZpZXcpOwogICAgIH0KIAotICAgIHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViUGFn
ZVByb3h5JiwgYm9vbCkgZmluYWwKKyAgICB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdl
YlBhZ2VQcm94eSYpIGZpbmFsCiAgICAgewogICAgICAgICB3ZWJraXRXZWJWaWV3SXNQbGF5aW5n
QXVkaW9DaGFuZ2VkKG1fd2ViVmlldyk7CiAgICAgfQpJbmRleDogU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAkocmV2aXNpb24gMjIxNDY3KQorKysgU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAs
NyArMTAwLDYgQEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCB0YWtlRm9jdXMoV2ViUGFnZVByb3h5
KiwgV0tGb2N1c0RpcmVjdGlvbikgZmluYWw7CiAgICAgICAgIHZvaWQgZm9jdXMoV2ViUGFnZVBy
b3h5KikgZmluYWw7CiAgICAgICAgIHZvaWQgdW5mb2N1cyhXZWJQYWdlUHJveHkqKSBmaW5hbDsK
LSAgICAgICAgdm9pZCBpc1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJLaXQ6OldlYlBhZ2VQcm94
eSYsIGJvb2wpIGZpbmFsOwogICAgICAgICB2b2lkIGRpZE5vdEhhbmRsZVdoZWVsRXZlbnQoV2Vi
UGFnZVByb3h5KiwgY29uc3QgTmF0aXZlV2ViV2hlZWxFdmVudCYpIGZpbmFsOwogICAgICAgICB2
b2lkIGhhbmRsZUF1dG9wbGF5RXZlbnQoV2ViUGFnZVByb3h5JiwgV2ViQ29yZTo6QXV0b3BsYXlF
dmVudCwgT3B0aW9uU2V0PFdlYkNvcmU6OkF1dG9wbGF5RXZlbnRGbGFncz4pIGZpbmFsOwogICAg
ICAgICB2b2lkIGRpZENsaWNrQXV0b0ZpbGxCdXR0b24oV2ViUGFnZVByb3h5JiwgQVBJOjpPYmpl
Y3QqKSBmaW5hbDsKQEAgLTE1MSw3ICsxNTAsNiBAQCBwcml2YXRlOgogICAgICAgICBib29sIHVu
Zm9jdXNXZWJWaWV3IDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3VGFrZUZvY3VzIDogMTsKICAg
ICAgICAgYm9vbCB3ZWJWaWV3RGlkTm90SGFuZGxlV2hlZWxFdmVudCA6IDE7Ci0gICAgICAgIGJv
b2wgd2ViVmlld0lzUGxheWluZ01lZGlhRGlkQ2hhbmdlIDogMTsKICAgICAgICAgYm9vbCB3ZWJW
aWV3SGFuZGxlQXV0b3BsYXlFdmVudFdpdGhGbGFncyA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmll
d0RpZENsaWNrQXV0b0ZpbGxCdXR0b25XaXRoVXNlckluZm8gOiAxOwogICAgICAgICBib29sIHdl
YlZpZXdEaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kIDog
MTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQko
cmV2aXNpb24gMjIxNDY3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxl
Z2F0ZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTA3LDcgKzEwNyw2IEBAIHZvaWQgVUlEZWxlZ2F0
ZTo6c2V0RGVsZWdhdGUoaWQgPFdLVUlEZWwKICAgICBtX2RlbGVnYXRlTWV0aG9kcy51bmZvY3Vz
V2ViVmlldyA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF91bmZvY3Vz
V2ViVmlldzopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3VGFrZUZvY3VzID0gW2Rl
bGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6dGFrZUZvY3VzOild
OwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWROb3RIYW5kbGVXaGVlbEV2ZW50ID0g
W2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkTm90SGFu
ZGxlV2hlZWxFdmVudDopXTsKLSAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3SXNQbGF5aW5n
TWVkaWFEaWRDaGFuZ2UgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihf
d2ViVmlldzppc1BsYXlpbmdNZWRpYURpZENoYW5nZTopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9k
cy53ZWJWaWV3SGFuZGxlQXV0b3BsYXlFdmVudFdpdGhGbGFncyA9IFtkZWxlZ2F0ZSByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmhhbmRsZUF1dG9wbGF5RXZlbnQ6d2l0aEZs
YWdzOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRDbGlja0F1dG9GaWxsQnV0
dG9uV2l0aFVzZXJJbmZvID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Io
X3dlYlZpZXc6ZGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbldpdGhVc2VySW5mbzopXTsKICAgICBtX2Rl
bGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGls
ZUluRm9yZWdyb3VuZCA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93
ZWJWaWV3OmRpZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJjZUxpbWl0V2hpbGVJbkZvcmVncm91bmQ6
KV07CkBAIC00NjYsMTggKzQ2NSw2IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRpZE5v
dEhhbmRsZVcKICAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmll
dzptX3VpRGVsZWdhdGUubV93ZWJWaWV3IGRpZE5vdEhhbmRsZVdoZWVsRXZlbnQ6ZXZlbnQubmF0
aXZlRXZlbnQoKV07CiB9CiAKLXZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmlzUGxheWluZ01l
ZGlhRGlkQ2hhbmdlKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgYm9vbCBpc1BsYXlpbmcpCi17Ci0g
ICAgaWYgKCFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0lzUGxheWluZ01l
ZGlhRGlkQ2hhbmdlKQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgYXV0byBkZWxlZ2F0ZSA9
IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpOwotICAgIGlmICghZGVsZWdhdGUpCi0gICAg
ICAgIHJldHVybjsKLSAgICAKLSAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0
ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJWaWV3IGlzUGxheWluZ01lZGlhRGlkQ2hhbmdl
OmlzUGxheWluZ107Ci19Ci0KIHN0YXRpYyBfV0tBdXRvcGxheUV2ZW50RmxhZ3MgdG9XS0F1dG9w
bGF5RXZlbnRGbGFncyhPcHRpb25TZXQ8V2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdzPiBmbGFn
cykKIHsKICAgICBfV0tBdXRvcGxheUV2ZW50RmxhZ3Mgd2tGbGFncyA9IF9XS0F1dG9wbGF5RXZl
bnRGbGFnc05vbmU7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3
SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLmgJKHJldmlzaW9uIDIyMTQ2NykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlZpZXdJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxNyw2ICsyMTcsOCBAQCBwdWJs
aWM6CiAgICAgYm9vbCB3aW5kb3dSZXNpemVNb3VzZUxvY2F0aW9uSXNJblZpc2libGVTY3JvbGxl
clRodW1iKENHUG9pbnQpOwogCiAgICAgdm9pZCBhY2Nlc3NpYmlsaXR5U2V0dGluZ3NEaWRDaGFu
Z2UoKTsKKyAgICB2b2lkIGlzUGxheWluZ0F1ZGlvV2lsbENoYW5nZSgpOworICAgIHZvaWQgaXNQ
bGF5aW5nQXVkaW9EaWRDaGFuZ2UoKTsKIAogICAgIC8vIC1bTlNWaWV3IG1vdXNlRG93bkNhbk1v
dmVXaW5kb3ddIHJldHVybnMgWUVTIHdoZW4gdGhlIE5TVmlldyBpcyB0cmFuc3BhcmVudCwKICAg
ICAvLyBidXQgd2UgZG9uJ3Qgd2FudCBhIGRyYWcgaW4gdGhlIE5TVmlldyB0byBtb3ZlIHRoZSB3
aW5kb3csIGV2ZW4gaWYgaXQncyB0cmFuc3BhcmVudC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCShyZXZpc2lvbiAyMjE0NjcpCisrKyBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQkod29ya2luZyBjb3B5KQpA
QCAtNTcsNyArNTcsNyBAQAogI2ltcG9ydCAiV0tQcmludGluZ1ZpZXcuaCIKICNpbXBvcnQgIldL
VGV4dElucHV0V2luZG93Q29udHJvbGxlci5oIgogI2ltcG9ydCAiV0tWaWV3TGF5b3V0U3RyYXRl
Z3kuaCIKLSNpbXBvcnQgIldLV2ViVmlldy5oIgorI2ltcG9ydCAiV0tXZWJWaWV3UHJpdmF0ZS5o
IgogI2ltcG9ydCAiV2ViQmFja0ZvcndhcmRMaXN0LmgiCiAjaW1wb3J0ICJXZWJFZGl0Q29tbWFu
ZFByb3h5LmgiCiAjaW1wb3J0ICJXZWJFdmVudEZhY3RvcnkuaCIKQEAgLTE5NTYsNiArMTk1Niwx
NiBAQCB2b2lkIFdlYlZpZXdJbXBsOjphY2Nlc3NpYmlsaXR5U2V0dGluZ3NECiAgICAgbV9wYWdl
LT5hY2Nlc3NpYmlsaXR5U2V0dGluZ3NEaWRDaGFuZ2UoKTsKIH0KIAordm9pZCBXZWJWaWV3SW1w
bDo6aXNQbGF5aW5nQXVkaW9XaWxsQ2hhbmdlKCkKK3sKKyAgICBbbV92aWV3IHdpbGxDaGFuZ2VW
YWx1ZUZvcktleTpOU1N0cmluZ0Zyb21TZWxlY3RvcihAc2VsZWN0b3IoX2lzUGxheWluZ0F1ZGlv
KSldOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjppc1BsYXlpbmdBdWRpb0RpZENoYW5nZSgpCit7
CisgICAgW21fdmlldyBkaWRDaGFuZ2VWYWx1ZUZvcktleTpOU1N0cmluZ0Zyb21TZWxlY3RvcihA
c2VsZWN0b3IoX2lzUGxheWluZ0F1ZGlvKSldOworfQorCiBib29sIFdlYlZpZXdJbXBsOjphY2Nl
cHRzRmlyc3RNb3VzZShOU0V2ZW50ICpldmVudCkKIHsKICAgICBpZiAoIW1pZ2h0QmVnaW5EcmFn
V2hpbGVJbmFjdGl2ZSgpICYmICFtaWdodEJlZ2luU2Nyb2xsV2hpbGVJbmFjdGl2ZSgpKQpJbmRl
eDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmgJKHJldmlz
aW9uIDIyMTQ2NykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1w
bC5oCSh3b3JraW5nIGNvcHkpCkBAIC05MCw2ICs5MCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBz
ZXRDdXJzb3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29yJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRD
dXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRD
aGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVz
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBpc1BsYXlpbmdBdWRpb1dpbGxDaGFuZ2UoKSBmaW5hbDsK
KyAgICB2b2lkIGlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlKCkgZmluYWw7CiAKICAgICB2b2lkIHJl
Z2lzdGVyRWRpdENvbW1hbmQoUmVmPFdlYkVkaXRDb21tYW5kUHJveHk+JiYsIFdlYlBhZ2VQcm94
eTo6VW5kb09yUmVkbykgb3ZlcnJpZGU7CiAgICAgdm9pZCBjbGVhckFsbEVkaXRDb21tYW5kcygp
IG92ZXJyaWRlOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJ
bXBsLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xp
ZW50SW1wbC5tbQkocmV2aXNpb24gMjIxNDY3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1BhZ2VDbGllbnRJbXBsLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yODYsNiArMjg2LDE2IEBA
IHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZENoYW5nZUNvbnRlbnRTaXoKICAgICBtX2ltcGwtPmRp
ZENoYW5nZUNvbnRlbnRTaXplKG5ld1NpemUpOwogfQogCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpp
c1BsYXlpbmdBdWRpb0RpZENoYW5nZSgpCit7CisgICAgbV9pbXBsLT5pc1BsYXlpbmdBdWRpb0Rp
ZENoYW5nZSgpOworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjppc1BsYXlpbmdBdWRpb1dpbGxD
aGFuZ2UoKQoreworICAgIG1faW1wbC0+aXNQbGF5aW5nQXVkaW9XaWxsQ2hhbmdlKCk7Cit9CisK
IHZvaWQgUGFnZUNsaWVudEltcGw6OnNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImIGN1
cnNvcikKIHsKICAgICAvLyBGSVhNRTogV291bGQgYmUgbmljZSB0byBzaGFyZSB0aGlzIGNvZGUg
d2l0aCBXZWJLaXQxJ3MgV2ViQ2hyb21lQ2xpZW50LgpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjIxNDcyKQorKysgVG9vbHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMDgtMzEgIEFs
ZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXBs
YWNlIFdLVUlEZWxlZ2F0ZVByaXZhdGUncyBpc1BsYXlpbmdNZWRpYURpZENoYW5nZSB3aXRoIEtW
TyBfaXNQbGF5aW5nQXVkaW8gb24gV0tXZWJWaWV3CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYyMTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
VUlEZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bQXVkaW9PYnNlcnZlciBvYnNlcnZlVmFsdWVGb3JL
ZXlQYXRoOm9mT2JqZWN0OmNoYW5nZTpjb250ZXh0Ol0pOgorICAgICAgICAoVEVTVCk6CisgICAg
ICAgICgtW01lZGlhRGVsZWdhdGUgX3dlYlZpZXc6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2U6XSk6
IERlbGV0ZWQuCisKIDIwMTctMDgtMzEgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4K
IAogICAgICAgICBXU0wgc2hvdWxkIHN1cHBvcnQgbG9hZGluZyBmcm9tIGFycmF5cwpJbmRleDog
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9VSURlbGVnYXRlLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVUlEZWxlZ2F0
ZS5tbQkocmV2aXNpb24gMjIxNDY3KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9VSURlbGVnYXRlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw4ICsyNyw2IEBACiAK
ICNpZiBXS19BUElfRU5BQkxFRAogCi0jaWYgUExBVEZPUk0oTUFDKQotCiAjaW1wb3J0ICJUZXN0
V0tXZWJWaWV3LmgiCiAjaW1wb3J0ICJVdGlsaXRpZXMuaCIKICNpbXBvcnQgIldLV2ViVmlld0Nv
bmZpZ3VyYXRpb25FeHRyYXMuaCIKQEAgLTM5LDEyICszNyw0MiBAQAogI2ltcG9ydCA8d3RmL1Jl
dGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRp
b25zLmg+CiAKK3N0YXRpYyBib29sIGRvbmU7CisKK0BpbnRlcmZhY2UgQXVkaW9PYnNlcnZlciA6
IE5TT2JqZWN0CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBBdWRpb09ic2VydmVyCisKKy0gKHZv
aWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDooTlNTdHJpbmcgKilrZXlQYXRoIG9mT2JqZWN0Oihp
ZClvYmplY3QgY2hhbmdlOihOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopY2hhbmdlIGNv
bnRleHQ6KHZvaWQgKiljb250ZXh0Cit7CisgICAgRVhQRUNUX1RSVUUoW2tleVBhdGggaXNFcXVh
bFRvU3RyaW5nOk5TU3RyaW5nRnJvbVNlbGVjdG9yKEBzZWxlY3RvcihfaXNQbGF5aW5nQXVkaW8p
KV0pOworICAgIEVYUEVDVF9UUlVFKFtbb2JqZWN0IGNsYXNzXSBpc0VxdWFsOltUZXN0V0tXZWJW
aWV3IGNsYXNzXV0pOworICAgIEVYUEVDVF9GQUxTRShbW2NoYW5nZSBvYmplY3RGb3JLZXk6TlNL
ZXlWYWx1ZUNoYW5nZU9sZEtleV0gYm9vbFZhbHVlXSk7CisgICAgRVhQRUNUX1RSVUUoW1tjaGFu
Z2Ugb2JqZWN0Rm9yS2V5Ok5TS2V5VmFsdWVDaGFuZ2VOZXdLZXldIGJvb2xWYWx1ZV0pOworICAg
IEVYUEVDVF9UUlVFKGNvbnRleHQgPT0gbnVsbHB0cik7CisgICAgZG9uZSA9IHRydWU7Cit9CisK
K0BlbmQKKworVEVTVChXZWJLaXQyLCBXS1dlYlZpZXdJc1BsYXlpbmdBdWRpbykKK3sKKyAgICBh
dXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOltbW1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXV0pOworICAgIGF1dG8gb2JzZXJ2
ZXIgPSBhZG9wdE5TKFtbQXVkaW9PYnNlcnZlciBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3
IGFkZE9ic2VydmVyOm9ic2VydmVyLmdldCgpIGZvcktleVBhdGg6QCJfaXNQbGF5aW5nQXVkaW8i
IG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbk5ldyB8IE5TS2V5VmFsdWVPYnNlcnZp
bmdPcHRpb25PbGQgY29udGV4dDpuaWxdOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2Fk
VGVzdFBhZ2VOYW1lZDpAImZpbGUtd2l0aC12aWRlbyJdOworICAgIFt3ZWJWaWV3IGV2YWx1YXRl
SmF2YVNjcmlwdDpAInBsYXlWaWRlbygpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOworICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Cit9CisKKyNpZiBQTEFURk9STShNQUMpCisK
IEBjbGFzcyBVSVRlc3REZWxlZ2F0ZTsKIAogc3RhdGljIFJldGFpblB0cjxXS1dlYlZpZXc+IHdl
YlZpZXdGcm9tRGVsZWdhdGVDYWxsYmFjazsKIHN0YXRpYyBSZXRhaW5QdHI8V0tXZWJWaWV3PiBj
cmVhdGVkV2ViVmlldzsKIHN0YXRpYyBSZXRhaW5QdHI8VUlUZXN0RGVsZWdhdGU+IGRlbGVnYXRl
Owotc3RhdGljIGJvb2wgZG9uZTsKIAogQGludGVyZmFjZSBVSVRlc3REZWxlZ2F0ZSA6IE5TT2Jq
ZWN0IDxXS1VJRGVsZWdhdGVQcml2YXRlLCBXS1VSTFNjaGVtZUhhbmRsZXI+CiBAZW5kCkBAIC05
MSwyOSArMTE5LDYgQEAgVEVTVChXZWJLaXQyLCBTaG93V2ViVmlldykKICAgICBBU1NFUlRfRVEo
d2ViVmlld0Zyb21EZWxlZ2F0ZUNhbGxiYWNrLCBjcmVhdGVkV2ViVmlldyk7CiB9CiAKLUBpbnRl
cmZhY2UgTWVkaWFEZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS1VJRGVsZWdhdGVQcml2YXRlPgotQGVu
ZAotCi1AaW1wbGVtZW50YXRpb24gTWVkaWFEZWxlZ2F0ZQotCi0tICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlOihCT09MKXBsYXlpbmdN
ZWRpYQotewotICAgIEFTU0VSVF9UUlVFKHBsYXlpbmdNZWRpYSk7Ci0gICAgZG9uZSA9IHRydWU7
Ci19Ci0KLUBlbmQKLQotVEVTVChXZWJLaXQyLCBXS1dlYlZpZXdJc1BsYXlpbmdNZWRpYSkKLXsK
LSAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOltbW1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXV0pOwotICAgIGF1dG8g
ZGVsZWdhdGUgPSBhZG9wdE5TKFtbTWVkaWFEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwotICAgIFt3
ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwotICAgIFt3ZWJWaWV3IHN5bmNo
cm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpAImZpbGUtd2l0aC12aWRlbyJdOwotICAgIFt3ZWJW
aWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInBsYXlWaWRlbygpIiBjb21wbGV0aW9uSGFuZGxlcjpu
aWxdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Ci19Ci0KIHN0YXRpYyBi
b29sIHJlYWR5Rm9yQ2xpY2s7CiAKIEBpbnRlcmZhY2UgQXV0b0ZpbGxEZWxlZ2F0ZSA6IE5TT2Jq
ZWN0IDxXS1VJRGVsZWdhdGVQcml2YXRlPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319599</attachid>
            <date>2017-09-01 09:12:21 -0700</date>
            <delta_ts>2017-09-01 09:49:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176212-20170901091221.patch</filename>
            <type>text/plain</type>
            <size>25188</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjE0NjcpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDE3LTA4LTMxICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVwbGFjZSBXS1VJ
RGVsZWdhdGVQcml2YXRlJ3MgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2Ugd2l0aCBLVk8gX2lzUGxh
eWluZ0F1ZGlvIG9uIFdLV2ViVmlldworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTc2MjEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRGFuIHN1Z2dlc3RlZCB0aGlzIGluIGJ1ZyAxNzYyMDMsIEkgdGhpbmsg
aXQncyBhIGdvb2QgaWRlYSwKKyAgICAgICAgYW5kIEknbGwgbmVlZCB0byBhZGQgbW9yZSBLVk8g
cHJvcGVydGllcyBzb29uIGFueXdheXMgc28gSSdkIGJldHRlciBsZWFybiBob3cuCisgICAgICAg
IERldGVybWluaW5nIGlmIGF1ZGlvIHBsYXlpbmcgY2hhbmdlZCBpcyBpbXBvcnRhbnQgZm9yIFNh
ZmFyaSwgc28gV0tQYWdlVUlDbGllbnQncworICAgICAgICBpc1BsYXlpbmdBdWRpb0RpZENoYW5n
ZSB3YXMgY29ycmVjdGx5IG5hbWVkIGJ1dCBpbmNvcnJlY3RseSBmaXJlZCBpZiBlaXRoZXIgYXVk
aW8KKyAgICAgICAgb3IgdmlkZW8gcGxheWluZyBjaGFuZ2VkIGFuZCBoYWQgeW91IGNoZWNrIGlm
IGF1ZGlvIHdhcyBwbGF5aW5nLCBwb3NzaWJseSB0b28gb2Z0ZW4uCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6CisgICAgICAgIChBUEk6OlVJQ2xpZW50Ojppc1BsYXlp
bmdNZWRpYURpZENoYW5nZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6
CisgICAgICAgIChXS1BhZ2VTZXRQYWdlVUlDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2lzUGxheWluZ0F1ZGlv
XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpzZXREZWxlZ2F0
ZSk6CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50Ojppc1BsYXlpbmdNZWRp
YURpZENoYW5nZSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aXNQbGF5aW5nQXVkaW9XaWxsQ2hhbmdlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmlzUGxheWluZ01lZGlh
RGlkQ2hhbmdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbToKKyAgICAgICAgKFdlYktp
dDo6UGFnZUNsaWVudEltcGw6OmlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlKToKKyAgICAgICAgKFdl
YktpdDo6UGFnZUNsaWVudEltcGw6OmlzUGxheWluZ0F1ZGlvV2lsbENoYW5nZSk6CisKIDIwMTct
MDgtMzEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAg
ICAgICBBZGQgV0tVSURlbGVnYXRlUHJpdmF0ZSBlcXVpdmFsZW50IG9mIFdLUGFnZVVJQ2xpZW50
J3MgaXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2UKSW5kZXg6IFNvdXJjZS9XZWJLaXQvUGxhdGZvcm1N
YWMuY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9QbGF0Zm9ybU1hYy5jbWFrZQko
cmV2aXNpb24gMjIxNDY3KQorKysgU291cmNlL1dlYktpdC9QbGF0Zm9ybU1hYy5jbWFrZQkod29y
a2luZyBjb3B5KQpAQCAtMjUyLDYgKzI1Miw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNF
UwogICAgIFVJUHJvY2Vzcy9Db2NvYS9JY29uTG9hZGluZ0RlbGVnYXRlLm1tCiAgICAgVUlQcm9j
ZXNzL0NvY29hL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudC5tbQogICAgIFVJUHJv
Y2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KKyAgICBVSVByb2Nlc3MvQ29jb2EvUGFnZUNs
aWVudEltcGxDb2NvYS5tbQogICAgIFVJUHJvY2Vzcy9Db2NvYS9SZW1vdGVMYXllclRyZWVTY3Jv
bGxpbmdQZXJmb3JtYW5jZURhdGEubW0KICAgICBVSVByb2Nlc3MvQ29jb2EvU2Vzc2lvblN0YXRl
Q29kaW5nLm1tCiAgICAgVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgJKHJldmlzaW9uIDIyMTQ2NykKKysrIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzUzLDYgKzM1
Myw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkSGFuZGxlQWNjZXB0ZWRDYW5kaWRh
dGUoKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgdmlkZW9Db250cm9sc01hbmFnZXJEaWRDaGFu
Z2UoKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgaXNQbGF5aW5nQXVkaW9XaWxsQ2hhbmdlKCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBpc1BsYXlpbmdBdWRpb0RpZENoYW5nZSgpID0gMDsKICNl
bmRpZgogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJiYgIVBMQVRGT1JN
KElPUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkocmV2
aXNpb24gMjIxNDY3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNjU0OSwyNSArNjU0OSwzMSBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6bmF2aWdhdGlvbkdlc3R1cmVTbmFwCiAgICAgICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlk
UmVtb3ZlTmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdCgqdGhpcyk7CiB9CiAKLXZvaWQgV2ViUGFn
ZVByb3h5Ojppc1BsYXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3Mgc3RhdGUsIHVpbnQ2NF90IHNvdXJjZUVsZW1lbnRJRCkKK3ZvaWQgV2ViUGFnZVByb3h5
Ojppc1BsYXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mg
bmV3U3RhdGUsIHVpbnQ2NF90IHNvdXJjZUVsZW1lbnRJRCkKIHsKICNpZiBFTkFCTEUoTUVESUFf
U0VTU0lPTikKICAgICBXZWJNZWRpYVNlc3Npb25Gb2N1c01hbmFnZXIqIGZvY3VzTWFuYWdlciA9
IHByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLnN1cHBsZW1lbnQ8V2ViTWVkaWFTZXNzaW9uRm9jdXNN
YW5hZ2VyPigpOwogICAgIEFTU0VSVChmb2N1c01hbmFnZXIpOwotICAgIGZvY3VzTWFuYWdlci0+
dXBkYXRlUGxheWJhY2tBdHRyaWJ1dGVzRnJvbU1lZGlhU3RhdGUodGhpcywgc291cmNlRWxlbWVu
dElELCBzdGF0ZSk7CisgICAgZm9jdXNNYW5hZ2VyLT51cGRhdGVQbGF5YmFja0F0dHJpYnV0ZXNG
cm9tTWVkaWFTdGF0ZSh0aGlzLCBzb3VyY2VFbGVtZW50SUQsIG5ld1N0YXRlKTsKICNlbmRpZgog
Ci0gICAgaWYgKHN0YXRlID09IG1fbWVkaWFTdGF0ZSkKKyAgICBpZiAobmV3U3RhdGUgPT0gbV9t
ZWRpYVN0YXRlKQogICAgICAgICByZXR1cm47CiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQog
ICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBvbGRNZWRpYUNhcHR1
cmVTdGF0ZSA9IG1fbWVkaWFTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2Fw
dHVyZU1hc2s7Ci0gICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG5l
d01lZGlhQ2FwdHVyZVN0YXRlID0gc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRp
YUNhcHR1cmVNYXNrOworICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFn
cyBuZXdNZWRpYUNhcHR1cmVTdGF0ZSA9IG5ld1N0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFDYXB0dXJlTWFzazsKICNlbmRpZgogCiAgICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZUZsYWdzIHBsYXlpbmdNZWRpYU1hc2sgPSBNZWRpYVByb2R1Y2VyOjpJc1BsYXlpbmdBdWRp
byB8IE1lZGlhUHJvZHVjZXI6OklzUGxheWluZ1ZpZGVvOwogICAgIE1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGVGbGFncyBvbGRTdGF0ZSA9IG1fbWVkaWFTdGF0ZTsKLSAgICBtX21lZGlhU3RhdGUg
PSBzdGF0ZTsKKworICAgIGJvb2wgcGxheWluZ0F1ZGlvQ2hhbmdlcyA9IChvbGRTdGF0ZSAmIE1l
ZGlhUHJvZHVjZXI6OklzUGxheWluZ0F1ZGlvKSAhPSAobmV3U3RhdGUgJiBNZWRpYVByb2R1Y2Vy
OjpJc1BsYXlpbmdBdWRpbyk7CisgICAgaWYgKHBsYXlpbmdBdWRpb0NoYW5nZXMpCisgICAgICAg
IG1fcGFnZUNsaWVudC5pc1BsYXlpbmdBdWRpb1dpbGxDaGFuZ2UoKTsKKyAgICBtX21lZGlhU3Rh
dGUgPSBuZXdTdGF0ZTsKKyAgICBpZiAocGxheWluZ0F1ZGlvQ2hhbmdlcykKKyAgICAgICAgbV9w
YWdlQ2xpZW50LmlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlKCk7CiAKICNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQogICAgIGlmIChvbGRNZWRpYUNhcHR1cmVTdGF0ZSAhPSBuZXdNZWRpYUNhcHR1cmVT
dGF0ZSkgewpAQCAtNjU4MCw3ICs2NTg2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmlzUGxheWlu
Z01lZGlhRGlkQ2hhbgogCiAgICAgcGxheWluZ01lZGlhTWFzayB8PSBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNZWRpYUNhcHR1cmVNYXNrOwogICAgIGlmICgob2xkU3RhdGUgJiBwbGF5aW5nTWVk
aWFNYXNrKSAhPSAobV9tZWRpYVN0YXRlICYgcGxheWluZ01lZGlhTWFzaykpCi0gICAgICAgIG1f
dWlDbGllbnQtPmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKCp0aGlzLCAobV9tZWRpYVN0YXRlICYg
cGxheWluZ01lZGlhTWFzaykpOworICAgICAgICBtX3VpQ2xpZW50LT5pc1BsYXlpbmdNZWRpYURp
ZENoYW5nZSgqdGhpcyk7CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgaWYgKChvbGRTdGF0ZSAm
IE1lZGlhUHJvZHVjZXI6Okhhc0F1ZGlvT3JWaWRlbykgIT0gKG1fbWVkaWFTdGF0ZSAmIE1lZGlh
UHJvZHVjZXI6Okhhc0F1ZGlvT3JWaWRlbykpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJVUlDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJVUlDbGllbnQuaAkocmV2aXNpb24gMjIxNDY3KQorKysgU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE0Niw3ICsxNDYs
NyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgcGlubmVkU3RhdGVEaWRDaGFuZ2UoV2Vi
S2l0OjpXZWJQYWdlUHJveHkmKSB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBpc1BsYXlpbmdNZWRp
YURpZENoYW5nZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIGJvb2wpIHsgfQorICAgIHZpcnR1YWwg
dm9pZCBpc1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYpIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVB
dXRvcGxheUV2ZW50KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViQ29yZTo6QXV0b3BsYXlFdmVu
dCwgT3B0aW9uU2V0PFdlYkNvcmU6OkF1dG9wbGF5RXZlbnRGbGFncz4pIHsgfQogCkluZGV4OiBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAJKHJldmlzaW9uIDIyMTQ2NykK
KysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTIwNTksNyArMjA1OSw3IEBAIHZvaWQgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KFdLUGFn
ZVJlZiBwYWcKICAgICAgICAgICAgIG1fY2xpZW50LnBpbm5lZFN0YXRlRGlkQ2hhbmdlKHRvQVBJ
KCZwYWdlKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICAgICAgfQogCi0gICAgICAg
IHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViUGFnZVByb3h5JiBwYWdlLCBib29sKSBm
aW5hbAorICAgICAgICB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYlBhZ2VQcm94eSYg
cGFnZSkgZmluYWwKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5pc1BsYXlp
bmdBdWRpb0RpZENoYW5nZSkKICAgICAgICAgICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2
YXRlLmgJKHJldmlzaW9uIDIyMTQ2NykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0OSw3ICsxNDks
NiBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyB0YWtlRm9jdXM6KF9XS0ZvY3VzRGlyZWN0aW9uKWRpcmVjdGlvbiBXS19BUElfQVZB
SUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IGRpZE5vdEhhbmRsZVdoZWVsRXZlbnQ6KE5TRXZlbnQgKilldmVudCBXS19BUElf
QVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IGhhbmRsZUF1dG9wbGF5RXZlbnQ6KF9XS0F1dG9wbGF5RXZlbnQpZXZlbnQg
d2l0aEZsYWdzOihfV0tBdXRvcGxheUV2ZW50RmxhZ3MpZmxhZ3MgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goV0tfTUFDX1RCQSkpOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBpc1BsYXlpbmdNZWRpYURpZENoYW5nZTooQk9PTClwbGF5aW5nTWVkaWEgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBkaWRDbGlja0F1dG9GaWxsQnV0dG9uV2l0aFVzZXJJbmZvOihpZCA8TlNTZWN1cmVD
b2Rpbmc+KXVzZXJJbmZvIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKIC0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc2F2ZURhdGFUb0ZpbGU6KE5TRGF0
YSAqKWRhdGEgc3VnZ2VzdGVkRmlsZW5hbWU6KE5TU3RyaW5nICopc3VnZ2VzdGVkRmlsZW5hbWUg
bWltZVR5cGU6KE5TU3RyaW5nICopbWltZVR5cGUgb3JpZ2luYXRpbmdVUkw6KE5TVVJMICopdXJs
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKIC0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGls
ZUluRm9yZWdyb3VuZDooX1dLUmVzb3VyY2VMaW1pdClsaW1pdCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0JKHJldmlzaW9uIDIyMTQ2NykKKysrIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ1MTIs
NiArNDUxMiwxMSBAQCAtIChCT09MKV9pc0Rpc3BsYXlpbmdTdGFuZGFsb25lTWVkaWFEb2N1CiAg
ICAgcmV0dXJuIE5POwogfQogCistIChCT09MKV9pc1BsYXlpbmdBdWRpbworeworICAgIHJldHVy
biBfcGFnZS0+aXNQbGF5aW5nQXVkaW8oKTsKK30KKwogLSAoQk9PTClfaXNTaG93aW5nTmF2aWdh
dGlvbkdlc3R1cmVTbmFwc2hvdAogewogICAgIHJldHVybiBfcGFnZS0+aXNTaG93aW5nTmF2aWdh
dGlvbkdlc3R1cmVTbmFwc2hvdCgpOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCShyZXZpc2lvbiAyMjE0NjcpCisr
KyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xMjAsNiArMTIwLDggQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdl
ciwgX1dLSW1tZWRpYXRlQQogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmlu
ZyAqX01JTUVUeXBlOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyAq
X3VzZXJBZ2VudCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAor
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9X2lzUGxheWluZ0F1ZGlvKSBC
T09MIF9wbGF5aW5nQXVkaW8gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CisKIEBwcm9wZXJ0eSAoY29weSwgc2V0dGVyPV9zZXRBcHBsaWNhdGlv
bk5hbWVGb3JVc2VyQWdlbnQ6KSBOU1N0cmluZyAqX2FwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2Vu
dDsKIEBwcm9wZXJ0eSAoY29weSwgc2V0dGVyPV9zZXRDdXN0b21Vc2VyQWdlbnQ6KSBOU1N0cmlu
ZyAqX2N1c3RvbVVzZXJBZ2VudDsKIApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcAkocmV2aXNpb24gMjIxNDY3KQorKysg
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMTcsNyArMjE3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgd2Via2l0V2Vi
Vmlld1J1bkFzTW9kYWwobV93ZWJWaWV3KTsKICAgICB9CiAKLSAgICB2b2lkIGlzUGxheWluZ01l
ZGlhRGlkQ2hhbmdlKFdlYlBhZ2VQcm94eSYsIGJvb2wpIGZpbmFsCisgICAgdm9pZCBpc1BsYXlp
bmdNZWRpYURpZENoYW5nZShXZWJQYWdlUHJveHkmKSBmaW5hbAogICAgIHsKICAgICAgICAgd2Vi
a2l0V2ViVmlld0lzUGxheWluZ0F1ZGlvQ2hhbmdlZChtX3dlYlZpZXcpOwogICAgIH0KSW5kZXg6
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmgJ
KHJldmlzaW9uIDIyMTQ2NykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFn
ZUNsaWVudEltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsOCArMjYsNyBAQAogICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgUGFnZUNsaWVudEltcGxf
aAotI2RlZmluZSBQYWdlQ2xpZW50SW1wbF9oCisjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkRl
ZmF1bHRVbmRvQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlBhZ2VDbGllbnQuaCIKQEAgLTEzOSw2
ICsxMzgsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGVyZWZWaWV3KCkgb3ZlcnJpZGU7CiAKICAg
ICB2b2lkIGRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigpIG92ZXJyaWRlIHsgfQorICAgIHZvaWQg
aXNQbGF5aW5nQXVkaW9XaWxsQ2hhbmdlKCkgZmluYWwgeyB9CisgICAgdm9pZCBpc1BsYXlpbmdB
dWRpb0RpZENoYW5nZSgpIGZpbmFsIHsgfQogCiAjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoR1NU
UkVBTUVSKQogICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9ySW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdp
bnNQZXJtaXNzaW9uUmVxdWVzdChJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25S
ZXF1ZXN0Jikgb3ZlcnJpZGU7CkBAIC0xNTQsNSArMTU1LDMgQEAgcHJpdmF0ZToKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gUGFnZUNsaWVudEltcGxfaApJbmRleDog
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGFnZUNsaWVudEltcGxDb2NvYS5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QYWdlQ2xpZW50SW1wbENv
Y29hLm1tCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Bh
Z2VDbGllbnRJbXBsQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiUGFnZUNsaWVudEltcGwuaCIK
KworI2ltcG9ydCAiV0tXZWJWaWV3UHJpdmF0ZS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
dm9pZCBQYWdlQ2xpZW50SW1wbDo6aXNQbGF5aW5nQXVkaW9XaWxsQ2hhbmdlKCkKK3sKKyAgICBb
bV93ZWJWaWV3IHdpbGxDaGFuZ2VWYWx1ZUZvcktleTpOU1N0cmluZ0Zyb21TZWxlY3RvcihAc2Vs
ZWN0b3IoX2lzUGxheWluZ0F1ZGlvKSldOworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjppc1Bs
YXlpbmdBdWRpb0RpZENoYW5nZSgpCit7CisgICAgW21fd2ViVmlldyBkaWRDaGFuZ2VWYWx1ZUZv
cktleTpOU1N0cmluZ0Zyb21TZWxlY3RvcihAc2VsZWN0b3IoX2lzUGxheWluZ0F1ZGlvKSldOwor
fQorICAgIAorfQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUuaAkocmV2aXNpb24gMjIxNDY3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VUlEZWxlZ2F0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAsNyArMTAwLDYgQEAgcHJpdmF0ZToK
ICAgICAgICAgdm9pZCB0YWtlRm9jdXMoV2ViUGFnZVByb3h5KiwgV0tGb2N1c0RpcmVjdGlvbikg
ZmluYWw7CiAgICAgICAgIHZvaWQgZm9jdXMoV2ViUGFnZVByb3h5KikgZmluYWw7CiAgICAgICAg
IHZvaWQgdW5mb2N1cyhXZWJQYWdlUHJveHkqKSBmaW5hbDsKLSAgICAgICAgdm9pZCBpc1BsYXlp
bmdNZWRpYURpZENoYW5nZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIGJvb2wpIGZpbmFsOwogICAg
ICAgICB2b2lkIGRpZE5vdEhhbmRsZVdoZWVsRXZlbnQoV2ViUGFnZVByb3h5KiwgY29uc3QgTmF0
aXZlV2ViV2hlZWxFdmVudCYpIGZpbmFsOwogICAgICAgICB2b2lkIGhhbmRsZUF1dG9wbGF5RXZl
bnQoV2ViUGFnZVByb3h5JiwgV2ViQ29yZTo6QXV0b3BsYXlFdmVudCwgT3B0aW9uU2V0PFdlYkNv
cmU6OkF1dG9wbGF5RXZlbnRGbGFncz4pIGZpbmFsOwogICAgICAgICB2b2lkIGRpZENsaWNrQXV0
b0ZpbGxCdXR0b24oV2ViUGFnZVByb3h5JiwgQVBJOjpPYmplY3QqKSBmaW5hbDsKQEAgLTE1MSw3
ICsxNTAsNiBAQCBwcml2YXRlOgogICAgICAgICBib29sIHVuZm9jdXNXZWJWaWV3IDogMTsKICAg
ICAgICAgYm9vbCB3ZWJWaWV3VGFrZUZvY3VzIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGlk
Tm90SGFuZGxlV2hlZWxFdmVudCA6IDE7Ci0gICAgICAgIGJvb2wgd2ViVmlld0lzUGxheWluZ01l
ZGlhRGlkQ2hhbmdlIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3SGFuZGxlQXV0b3BsYXlFdmVu
dFdpdGhGbGFncyA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld0RpZENsaWNrQXV0b0ZpbGxCdXR0
b25XaXRoVXNlckluZm8gOiAxOwogICAgICAgICBib29sIHdlYlZpZXdEaWRFeGNlZWRCYWNrZ3Jv
dW5kUmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kIDogMTsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQkocmV2aXNpb24gMjIxNDY3KQorKysg
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQkod29ya2luZyBjb3B5
KQpAQCAtMTA3LDcgKzEwNyw2IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUoaWQgPFdL
VUlEZWwKICAgICBtX2RlbGVnYXRlTWV0aG9kcy51bmZvY3VzV2ViVmlldyA9IFtkZWxlZ2F0ZSBy
ZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF91bmZvY3VzV2ViVmlldzopXTsKICAgICBtX2Rl
bGVnYXRlTWV0aG9kcy53ZWJWaWV3VGFrZUZvY3VzID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6dGFrZUZvY3VzOildOwogICAgIG1fZGVsZWdhdGVNZXRo
b2RzLndlYlZpZXdEaWROb3RIYW5kbGVXaGVlbEV2ZW50ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkTm90SGFuZGxlV2hlZWxFdmVudDopXTsKLSAg
ICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3SXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UgPSBbZGVs
ZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzppc1BsYXlpbmdNZWRp
YURpZENoYW5nZTopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3SGFuZGxlQXV0b3Bs
YXlFdmVudFdpdGhGbGFncyA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KF93ZWJWaWV3OmhhbmRsZUF1dG9wbGF5RXZlbnQ6d2l0aEZsYWdzOildOwogICAgIG1fZGVsZWdh
dGVNZXRob2RzLndlYlZpZXdEaWRDbGlja0F1dG9GaWxsQnV0dG9uV2l0aFVzZXJJbmZvID0gW2Rl
bGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkQ2xpY2tBdXRv
RmlsbEJ1dHRvbldpdGhVc2VySW5mbzopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3
RGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZCA9IFtkZWxl
Z2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRpZEV4Y2VlZEJhY2tn
cm91bmRSZXNvdXJjZUxpbWl0V2hpbGVJbkZvcmVncm91bmQ6KV07CkBAIC00NjYsMTggKzQ2NSw2
IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRpZE5vdEhhbmRsZVcKICAgICBbKGlkIDxX
S1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJW
aWV3IGRpZE5vdEhhbmRsZVdoZWVsRXZlbnQ6ZXZlbnQubmF0aXZlRXZlbnQoKV07CiB9CiAKLXZv
aWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYktpdDo6
V2ViUGFnZVByb3h5JiwgYm9vbCBpc1BsYXlpbmcpCi17Ci0gICAgaWYgKCFtX3VpRGVsZWdhdGUu
bV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0lzUGxheWluZ01lZGlhRGlkQ2hhbmdlKQotICAgICAg
ICByZXR1cm47Ci0gICAgCi0gICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVn
YXRlLmdldCgpOwotICAgIGlmICghZGVsZWdhdGUpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAg
ICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdh
dGUubV93ZWJWaWV3IGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlOmlzUGxheWluZ107Ci19Ci0KIHN0
YXRpYyBfV0tBdXRvcGxheUV2ZW50RmxhZ3MgdG9XS0F1dG9wbGF5RXZlbnRGbGFncyhPcHRpb25T
ZXQ8V2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdzPiBmbGFncykKIHsKICAgICBfV0tBdXRvcGxh
eUV2ZW50RmxhZ3Mgd2tGbGFncyA9IF9XS0F1dG9wbGF5RXZlbnRGbGFnc05vbmU7CkluZGV4OiBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwuaAkocmV2aXNpb24g
MjIxNDY3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTIzLDggKzIzLDcgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFBhZ2VDbGllbnRJbXBsX2gKLSNkZWZpbmUgUGFn
ZUNsaWVudEltcGxfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBQTEFURk9STShNQUMpCiAKQEAgLTkw
LDYgKzg5LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpD
dXJzb3ImKSBvdmVycmlkZTsKICAgICB2b2lkIHNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zl
cyhib29sKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhj
b25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmKSBvdmVycmlkZTsKKyAgICB2b2lkIGlz
UGxheWluZ0F1ZGlvV2lsbENoYW5nZSgpIGZpbmFsOworICAgIHZvaWQgaXNQbGF5aW5nQXVkaW9E
aWRDaGFuZ2UoKSBmaW5hbDsKIAogICAgIHZvaWQgcmVnaXN0ZXJFZGl0Q29tbWFuZChSZWY8V2Vi
RWRpdENvbW1hbmRQcm94eT4mJiwgV2ViUGFnZVByb3h5OjpVbmRvT3JSZWRvKSBvdmVycmlkZTsK
ICAgICB2b2lkIGNsZWFyQWxsRWRpdENvbW1hbmRzKCkgb3ZlcnJpZGU7CkBAIC0yNTgsNSArMjU5
LDMgQEAgcHJpdmF0ZToKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZP
Uk0oTUFDKQotCi0jZW5kaWYgLy8gUGFnZUNsaWVudEltcGxfaApJbmRleDogU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMjE0Njcp
CisrKyBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMTgzLDYgKzExODMsNyBAQAogCQk1QzIwQ0JBMDFCQjFFQ0Q4MDA4OTVC
QjEgLyogTmV0d29ya1Nlc3Npb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDVDMjBDQjlFMUJCMEREMTgwMDg5NUJCMSAvKiBOZXR3b3JrU2Vzc2lvbi5o
ICovOyB9OwogCQk1QzI5OERBMDFDM0RGMDIxMDA0NzBBRkUgLyogUGVuZGluZ0Rvd25sb2FkLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzI5OEQ5RTFD
M0RFRjI5MDA0NzBBRkUgLyogUGVuZGluZ0Rvd25sb2FkLmggKi87IH07CiAJCTVDNjJGREY5MUVG
QzI3MUMwMENFMDcyRSAvKiBXS1VSTFNjaGVtZVRhc2tQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzYyRkRGODFFRkMyNjNDMDBDRTA3MkUg
LyogV0tVUkxTY2hlbWVUYXNrUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTVDNkNFNkQxMUY1OUJDN0EwMDA3QzZDQiAvKiBQYWdlQ2xp
ZW50SW1wbENvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNUM2Q0U2RDAxRjU5QkM0NjAwMDdDNkNCIC8qIFBhZ2VDbGllbnRJbXBsQ29jb2EubW0g
Ki87IH07CiAJCTVDNzcwNjc0MUQxMTM4MzgwMDEyNzAwRiAvKiBXZWJTb2NrZXRQcm92aWRlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Qzc3MDY3
MzFEMTExRDhCMDAxMjcwMEYgLyogV2ViU29ja2V0UHJvdmlkZXIuY3BwICovOyB9OwogCQk1Qzg1
Qzc4ODFDM0YyM0NFMDA2MUE0RkEgLyogUGVuZGluZ0Rvd25sb2FkLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDODVDNzg2MUMzRjIzQzUwMDYxQTRG
QSAvKiBQZW5kaW5nRG93bmxvYWQuY3BwICovOyB9OwogCQk1QzlFNTY4MjFERjdGMUFCMDBDOUVF
MzMgLyogV0tXZWJzaXRlUG9saWNpZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNUM5RTU2ODAxREY3RjA1NTAwQzlFRTMzIC8qIFdLV2Vic2l0ZVBv
bGljaWVzLmNwcCAqLzsgfTsKQEAgLTM1MDksNiArMzUxMCw3IEBACiAJCTVDMjBDQjlFMUJCMERE
MTgwMDg5NUJCMSAvKiBOZXR3b3JrU2Vzc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBOZXR3b3JrU2Vzc2lvbi5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nl
c3Npb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMyOThEOUUxQzNERUYyOTAw
NDcwQUZFIC8qIFBlbmRpbmdEb3dubG9hZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBQZW5kaW5nRG93bmxvYWQuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Q
ZW5kaW5nRG93bmxvYWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM2MkZERjgx
RUZDMjYzQzAwQ0UwNzJFIC8qIFdLVVJMU2NoZW1lVGFza1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV0tVUkxTY2hlbWVUYXNrUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk1QzZDRTZEMDFGNTlCQzQ2MDAwN0M2Q0IgLyogUGFnZUNsaWVudEltcGxDb2NvYS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBhZ2VDbGllbnRJbXBsQ29jb2Eu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDNzcwNjczMUQxMTFEOEIwMDEyNzAw
RiAvKiBXZWJTb2NrZXRQcm92aWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBXZWJTb2NrZXRQcm92aWRlci5jcHA7IHBhdGggPSBOZXR3b3JrL1dlYlNvY2tldFBy
b3ZpZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM3Qzg4REMxRDBGNDFB
MDAwOUQyRjZEIC8qIFdlYlNvY2tldFByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFdlYlNvY2tldFByb3ZpZGVyLmg7IHBhdGggPSBOZXR3b3JrL1dlYlNvY2tldFBy
b3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDODVDNzg2MUMzRjIzQzUw
MDYxQTRGQSAvKiBQZW5kaW5nRG93bmxvYWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gUGVuZGluZ0Rvd25sb2FkLmNwcDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL0Rv
d25sb2Fkcy9QZW5kaW5nRG93bmxvYWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtNTI3Myw2ICs1Mjc1LDcgQEAKIAkJCQk3QTgyMUY0RDFFMkY2NzlFMDA2MDQ1NzcgLyogTGVn
YWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50Lm1tICovLAogCQkJCTFBQkMzREY0MTg5OUU0
MzcwMDRGMDYyNiAvKiBOYXZpZ2F0aW9uU3RhdGUuaCAqLywKIAkJCQkxQUJDM0RGMzE4OTlFNDM3
MDA0RjA2MjYgLyogTmF2aWdhdGlvblN0YXRlLm1tICovLAorCQkJCTVDNkNFNkQwMUY1OUJDNDYw
MDA3QzZDQiAvKiBQYWdlQ2xpZW50SW1wbENvY29hLm1tICovLAogCQkJCUNEQTI5QTFFMUNCRUI1
RkIwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkuaCAqLywKIAkJCQlDREEy
OUEyMjFDQkVCNjFBMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluICovLAogCQkJCUNEQTI5QTFGMUNCRUI1RkIwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Np
b25NYW5hZ2VyUHJveHkubW0gKi8sCkBAIC0xMDIwMCw2ICsxMDIwMyw3IEBACiAJCQkJN0MzODc0
MzQxNzJGNTYxNTAwMUJEODhBIC8qIFBhZ2VCYW5uZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
N0M2RDM3RkMxNzJGNTU1RjAwOUQyODQ3IC8qIFBhZ2VCYW5uZXJNYWMubW0gaW4gU291cmNlcyAq
LywKIAkJCQkwRkNCNEU2MzE4QkJFM0Q5MDAwRkNGQzkgLyogUGFnZUNsaWVudEltcGwubW0gaW4g
U291cmNlcyAqLywKKwkJCQk1QzZDRTZEMTFGNTlCQzdBMDAwN0M2Q0IgLyogUGFnZUNsaWVudElt
cGxDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTBGQ0I0RTQ3MThCQkUwNDQwMDBGQ0ZDOSAv
KiBQYWdlQ2xpZW50SW1wbElPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBQzc1MzdCMTgzQTlG
REIwMDcyQ0IxNSAvKiBQYWdlTG9hZFN0YXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM1NzRB
NTgyMTJFNjY2ODEwMDJERkU5OCAvKiBQYXN0ZWJvYXJkVHlwZXMubW0gaW4gU291cmNlcyAqLywK
SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyMTQ3MikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE1IEBACisyMDE3LTA4LTMxICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgUmVwbGFjZSBXS1VJRGVsZWdhdGVQcml2YXRlJ3MgaXNQbGF5
aW5nTWVkaWFEaWRDaGFuZ2Ugd2l0aCBLVk8gX2lzUGxheWluZ0F1ZGlvIG9uIFdLV2ViVmlldwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MjEyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VJRGVsZWdhdGUubW06CisgICAgICAgICgtW0F1ZGlv
T2JzZXJ2ZXIgb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDpvZk9iamVjdDpjaGFuZ2U6Y29udGV4dDpd
KToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAoLVtNZWRpYURlbGVnYXRlIF93ZWJWaWV3Omlz
UGxheWluZ01lZGlhRGlkQ2hhbmdlOl0pOiBEZWxldGVkLgorCiAyMDE3LTA4LTMxICBGaWxpcCBQ
aXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgV1NMIHNob3VsZCBzdXBwb3J0IGxv
YWRpbmcgZnJvbSBhcnJheXMKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvVUlEZWxlZ2F0ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1VJRGVsZWdhdGUubW0JKHJldmlzaW9uIDIyMTQ2NykKKysrIFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVUlEZWxlZ2F0ZS5tbQkod29ya2luZyBj
b3B5KQpAQCAtMjcsOCArMjcsNiBAQAogCiAjaWYgV0tfQVBJX0VOQUJMRUQKIAotI2lmIFBMQVRG
T1JNKE1BQykKLQogI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgogI2ltcG9ydCAiVXRpbGl0aWVz
LmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLmgiCkBAIC0zOSwxMiAr
MzcsNDIgQEAKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9tYWMvQXBw
S2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCitzdGF0aWMgYm9vbCBkb25lOworCitA
aW50ZXJmYWNlIEF1ZGlvT2JzZXJ2ZXIgOiBOU09iamVjdAorQGVuZAorCitAaW1wbGVtZW50YXRp
b24gQXVkaW9PYnNlcnZlcgorCistICh2b2lkKW9ic2VydmVWYWx1ZUZvcktleVBhdGg6KE5TU3Ry
aW5nICopa2V5UGF0aCBvZk9iamVjdDooaWQpb2JqZWN0IGNoYW5nZTooTlNEaWN0aW9uYXJ5PE5T
U3RyaW5nICosIGlkPiAqKWNoYW5nZSBjb250ZXh0Oih2b2lkICopY29udGV4dAoreworICAgIEVY
UEVDVF9UUlVFKFtrZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpOU1N0cmluZ0Zyb21TZWxlY3RvcihA
c2VsZWN0b3IoX2lzUGxheWluZ0F1ZGlvKSldKTsKKyAgICBFWFBFQ1RfVFJVRShbW29iamVjdCBj
bGFzc10gaXNFcXVhbDpbVGVzdFdLV2ViVmlldyBjbGFzc11dKTsKKyAgICBFWFBFQ1RfRkFMU0Uo
W1tjaGFuZ2Ugb2JqZWN0Rm9yS2V5Ok5TS2V5VmFsdWVDaGFuZ2VPbGRLZXldIGJvb2xWYWx1ZV0p
OworICAgIEVYUEVDVF9UUlVFKFtbY2hhbmdlIG9iamVjdEZvcktleTpOU0tleVZhbHVlQ2hhbmdl
TmV3S2V5XSBib29sVmFsdWVdKTsKKyAgICBFWFBFQ1RfVFJVRShjb250ZXh0ID09IG51bGxwdHIp
OworICAgIGRvbmUgPSB0cnVlOworfQorCitAZW5kCisKK1RFU1QoV2ViS2l0MiwgV0tXZWJWaWV3
SXNQbGF5aW5nQXVkaW8pCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCkgY29u
ZmlndXJhdGlvbjpbW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSBhdXRvcmVs
ZWFzZV1dKTsKKyAgICBhdXRvIG9ic2VydmVyID0gYWRvcHROUyhbW0F1ZGlvT2JzZXJ2ZXIgYWxs
b2NdIGluaXRdKTsKKyAgICBbd2ViVmlldyBhZGRPYnNlcnZlcjpvYnNlcnZlci5nZXQoKSBmb3JL
ZXlQYXRoOkAiX2lzUGxheWluZ0F1ZGlvIiBvcHRpb25zOk5TS2V5VmFsdWVPYnNlcnZpbmdPcHRp
b25OZXcgfCBOU0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uT2xkIGNvbnRleHQ6bmlsXTsKKyAgICBb
d2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJmaWxlLXdpdGgtdmlkZW8i
XTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJwbGF5VmlkZW8oKSIgY29tcGxl
dGlvbkhhbmRsZXI6bmlsXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwor
fQorCisjaWYgUExBVEZPUk0oTUFDKQorCiBAY2xhc3MgVUlUZXN0RGVsZWdhdGU7CiAKIHN0YXRp
YyBSZXRhaW5QdHI8V0tXZWJWaWV3PiB3ZWJWaWV3RnJvbURlbGVnYXRlQ2FsbGJhY2s7CiBzdGF0
aWMgUmV0YWluUHRyPFdLV2ViVmlldz4gY3JlYXRlZFdlYlZpZXc7CiBzdGF0aWMgUmV0YWluUHRy
PFVJVGVzdERlbGVnYXRlPiBkZWxlZ2F0ZTsKLXN0YXRpYyBib29sIGRvbmU7CiAKIEBpbnRlcmZh
Y2UgVUlUZXN0RGVsZWdhdGUgOiBOU09iamVjdCA8V0tVSURlbGVnYXRlUHJpdmF0ZSwgV0tVUkxT
Y2hlbWVIYW5kbGVyPgogQGVuZApAQCAtOTEsMjkgKzExOSw2IEBAIFRFU1QoV2ViS2l0MiwgU2hv
d1dlYlZpZXcpCiAgICAgQVNTRVJUX0VRKHdlYlZpZXdGcm9tRGVsZWdhdGVDYWxsYmFjaywgY3Jl
YXRlZFdlYlZpZXcpOwogfQogCi1AaW50ZXJmYWNlIE1lZGlhRGVsZWdhdGUgOiBOU09iamVjdCA8
V0tVSURlbGVnYXRlUHJpdmF0ZT4KLUBlbmQKLQotQGltcGxlbWVudGF0aW9uIE1lZGlhRGVsZWdh
dGUKLQotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBpc1BsYXlpbmdNZWRp
YURpZENoYW5nZTooQk9PTClwbGF5aW5nTWVkaWEKLXsKLSAgICBBU1NFUlRfVFJVRShwbGF5aW5n
TWVkaWEpOwotICAgIGRvbmUgPSB0cnVlOwotfQotCi1AZW5kCi0KLVRFU1QoV2ViS2l0MiwgV0tX
ZWJWaWV3SXNQbGF5aW5nTWVkaWEpCi17Ci0gICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rl
c3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYw
MCkgY29uZmlndXJhdGlvbjpbW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSBh
dXRvcmVsZWFzZV1dKTsKLSAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW01lZGlhRGVsZWdh
dGUgYWxsb2NdIGluaXRdKTsKLSAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdl
dCgpXTsKLSAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJmaWxl
LXdpdGgtdmlkZW8iXTsKLSAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJwbGF5Vmlk
ZW8oKSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOwotfQotCiBzdGF0aWMgYm9vbCByZWFkeUZvckNsaWNrOwogCiBAaW50ZXJmYWNl
IEF1dG9GaWxsRGVsZWdhdGUgOiBOU09iamVjdCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319604</attachid>
            <date>2017-09-01 09:49:29 -0700</date>
            <delta_ts>2017-09-01 10:45:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176212-20170901094928.patch</filename>
            <type>text/plain</type>
            <size>25332</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjE0NjcpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDE3LTA4LTMxICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVwbGFjZSBXS1VJ
RGVsZWdhdGVQcml2YXRlJ3MgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2Ugd2l0aCBLVk8gX2lzUGxh
eWluZ0F1ZGlvIG9uIFdLV2ViVmlldworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTc2MjEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRGFuIHN1Z2dlc3RlZCB0aGlzIGluIGJ1ZyAxNzYyMDMsIEkgdGhpbmsg
aXQncyBhIGdvb2QgaWRlYSwKKyAgICAgICAgYW5kIEknbGwgbmVlZCB0byBhZGQgbW9yZSBLVk8g
cHJvcGVydGllcyBzb29uIGFueXdheXMgc28gSSdkIGJldHRlciBsZWFybiBob3cuCisgICAgICAg
IERldGVybWluaW5nIGlmIGF1ZGlvIHBsYXlpbmcgY2hhbmdlZCBpcyBpbXBvcnRhbnQgZm9yIFNh
ZmFyaSwgc28gV0tQYWdlVUlDbGllbnQncworICAgICAgICBpc1BsYXlpbmdBdWRpb0RpZENoYW5n
ZSB3YXMgY29ycmVjdGx5IG5hbWVkIGJ1dCBpbmNvcnJlY3RseSBmaXJlZCBpZiBlaXRoZXIgYXVk
aW8KKyAgICAgICAgb3IgdmlkZW8gcGxheWluZyBjaGFuZ2VkIGFuZCBoYWQgeW91IGNoZWNrIGlm
IGF1ZGlvIHdhcyBwbGF5aW5nLCBwb3NzaWJseSB0b28gb2Z0ZW4uCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6CisgICAgICAgIChBUEk6OlVJQ2xpZW50Ojppc1BsYXlp
bmdNZWRpYURpZENoYW5nZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6
CisgICAgICAgIChXS1BhZ2VTZXRQYWdlVUlDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2lzUGxheWluZ0F1ZGlv
XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpzZXREZWxlZ2F0
ZSk6CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50Ojppc1BsYXlpbmdNZWRp
YURpZENoYW5nZSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aXNQbGF5aW5nQXVkaW9XaWxsQ2hhbmdlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmlzUGxheWluZ01lZGlh
RGlkQ2hhbmdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbToKKyAgICAgICAgKFdlYktp
dDo6UGFnZUNsaWVudEltcGw6OmlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlKToKKyAgICAgICAgKFdl
YktpdDo6UGFnZUNsaWVudEltcGw6OmlzUGxheWluZ0F1ZGlvV2lsbENoYW5nZSk6CisKIDIwMTct
MDgtMzEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAg
ICAgICBBZGQgV0tVSURlbGVnYXRlUHJpdmF0ZSBlcXVpdmFsZW50IG9mIFdLUGFnZVVJQ2xpZW50
J3MgaXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2UKSW5kZXg6IFNvdXJjZS9XZWJLaXQvUGxhdGZvcm1N
YWMuY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9QbGF0Zm9ybU1hYy5jbWFrZQko
cmV2aXNpb24gMjIxNDY3KQorKysgU291cmNlL1dlYktpdC9QbGF0Zm9ybU1hYy5jbWFrZQkod29y
a2luZyBjb3B5KQpAQCAtMjUyLDYgKzI1Miw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNF
UwogICAgIFVJUHJvY2Vzcy9Db2NvYS9JY29uTG9hZGluZ0RlbGVnYXRlLm1tCiAgICAgVUlQcm9j
ZXNzL0NvY29hL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudC5tbQogICAgIFVJUHJv
Y2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KKyAgICBVSVByb2Nlc3MvQ29jb2EvUGFnZUNs
aWVudEltcGxDb2NvYS5tbQogICAgIFVJUHJvY2Vzcy9Db2NvYS9SZW1vdGVMYXllclRyZWVTY3Jv
bGxpbmdQZXJmb3JtYW5jZURhdGEubW0KICAgICBVSVByb2Nlc3MvQ29jb2EvU2Vzc2lvblN0YXRl
Q29kaW5nLm1tCiAgICAgVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgJKHJldmlzaW9uIDIyMTQ2NykKKysrIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzQ0LDYgKzM0
NCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlv
bkZvck1haW5GcmFtZShTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSkgPSAwOwogCiAgICAgdmly
dHVhbCB2b2lkIGRpZENoYW5nZUJhY2tncm91bmRDb2xvcigpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgaXNQbGF5aW5nQXVkaW9XaWxsQ2hhbmdlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBpc1Bs
YXlpbmdBdWRpb0RpZENoYW5nZSgpID0gMDsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2aXJ0
dWFsIHZvaWQgZGlkUGVyZm9ybUltbWVkaWF0ZUFjdGlvbkhpdFRlc3QoY29uc3QgV2ViSGl0VGVz
dFJlc3VsdERhdGEmLCBib29sIGNvbnRlbnRQcmV2ZW50c0RlZmF1bHQsIEFQSTo6T2JqZWN0Kikg
PSAwOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCShyZXZp
c2lvbiAyMjE0NjcpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02NTQ5LDI1ICs2NTQ5LDMxIEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpuYXZpZ2F0aW9uR2VzdHVyZVNuYXAKICAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRS
ZW1vdmVOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90KCp0aGlzKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVG
bGFncyBzdGF0ZSwgdWludDY0X3Qgc291cmNlRWxlbWVudElEKQordm9pZCBXZWJQYWdlUHJveHk6
OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBu
ZXdTdGF0ZSwgdWludDY0X3Qgc291cmNlRWxlbWVudElEKQogewogI2lmIEVOQUJMRShNRURJQV9T
RVNTSU9OKQogICAgIFdlYk1lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlciogZm9jdXNNYW5hZ2VyID0g
cHJvY2VzcygpLnByb2Nlc3NQb29sKCkuc3VwcGxlbWVudDxXZWJNZWRpYVNlc3Npb25Gb2N1c01h
bmFnZXI+KCk7CiAgICAgQVNTRVJUKGZvY3VzTWFuYWdlcik7Ci0gICAgZm9jdXNNYW5hZ2VyLT51
cGRhdGVQbGF5YmFja0F0dHJpYnV0ZXNGcm9tTWVkaWFTdGF0ZSh0aGlzLCBzb3VyY2VFbGVtZW50
SUQsIHN0YXRlKTsKKyAgICBmb2N1c01hbmFnZXItPnVwZGF0ZVBsYXliYWNrQXR0cmlidXRlc0Zy
b21NZWRpYVN0YXRlKHRoaXMsIHNvdXJjZUVsZW1lbnRJRCwgbmV3U3RhdGUpOwogI2VuZGlmCiAK
LSAgICBpZiAoc3RhdGUgPT0gbV9tZWRpYVN0YXRlKQorICAgIGlmIChuZXdTdGF0ZSA9PSBtX21l
ZGlhU3RhdGUpCiAgICAgICAgIHJldHVybjsKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAg
ICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG9sZE1lZGlhQ2FwdHVy
ZVN0YXRlID0gbV9tZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0
dXJlTWFzazsKLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbmV3
TWVkaWFDYXB0dXJlU3RhdGUgPSBzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlh
Q2FwdHVyZU1hc2s7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
IG5ld01lZGlhQ2FwdHVyZVN0YXRlID0gbmV3U3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNZWRpYUNhcHR1cmVNYXNrOwogI2VuZGlmCiAKICAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlRmxhZ3MgcGxheWluZ01lZGlhTWFzayA9IE1lZGlhUHJvZHVjZXI6OklzUGxheWluZ0F1ZGlv
IHwgTWVkaWFQcm9kdWNlcjo6SXNQbGF5aW5nVmlkZW87CiAgICAgTWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZUZsYWdzIG9sZFN0YXRlID0gbV9tZWRpYVN0YXRlOwotICAgIG1fbWVkaWFTdGF0ZSA9
IHN0YXRlOworCisgICAgYm9vbCBwbGF5aW5nQXVkaW9DaGFuZ2VzID0gKG9sZFN0YXRlICYgTWVk
aWFQcm9kdWNlcjo6SXNQbGF5aW5nQXVkaW8pICE9IChuZXdTdGF0ZSAmIE1lZGlhUHJvZHVjZXI6
OklzUGxheWluZ0F1ZGlvKTsKKyAgICBpZiAocGxheWluZ0F1ZGlvQ2hhbmdlcykKKyAgICAgICAg
bV9wYWdlQ2xpZW50LmlzUGxheWluZ0F1ZGlvV2lsbENoYW5nZSgpOworICAgIG1fbWVkaWFTdGF0
ZSA9IG5ld1N0YXRlOworICAgIGlmIChwbGF5aW5nQXVkaW9DaGFuZ2VzKQorICAgICAgICBtX3Bh
Z2VDbGllbnQuaXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2UoKTsKIAogI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCiAgICAgaWYgKG9sZE1lZGlhQ2FwdHVyZVN0YXRlICE9IG5ld01lZGlhQ2FwdHVyZVN0
YXRlKSB7CkBAIC02NTgwLDcgKzY1ODYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aXNQbGF5aW5n
TWVkaWFEaWRDaGFuCiAKICAgICBwbGF5aW5nTWVkaWFNYXNrIHw9IFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhQ2FwdHVyZU1hc2s7CiAgICAgaWYgKChvbGRTdGF0ZSAmIHBsYXlpbmdNZWRp
YU1hc2spICE9IChtX21lZGlhU3RhdGUgJiBwbGF5aW5nTWVkaWFNYXNrKSkKLSAgICAgICAgbV91
aUNsaWVudC0+aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoKnRoaXMsIChtX21lZGlhU3RhdGUgJiBw
bGF5aW5nTWVkaWFNYXNrKSk7CisgICAgICAgIG1fdWlDbGllbnQtPmlzUGxheWluZ01lZGlhRGlk
Q2hhbmdlKCp0aGlzKTsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBpZiAoKG9sZFN0YXRlICYg
TWVkaWFQcm9kdWNlcjo6SGFzQXVkaW9PclZpZGVvKSAhPSAobV9tZWRpYVN0YXRlICYgTWVkaWFQ
cm9kdWNlcjo6SGFzQXVkaW9PclZpZGVvKSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElVSUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElVSUNsaWVudC5oCShyZXZpc2lvbiAyMjE0NjcpCisrKyBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ2LDcgKzE0Niw3
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBwaW5uZWRTdGF0ZURpZENoYW5nZShXZWJL
aXQ6OldlYlBhZ2VQcm94eSYpIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGlzUGxheWluZ01lZGlh
RGlkQ2hhbmdlKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgYm9vbCkgeyB9CisgICAgdmlydHVhbCB2
b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYktpdDo6V2ViUGFnZVByb3h5JikgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykgeyB9CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUF1
dG9wbGF5RXZlbnQoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJDb3JlOjpBdXRvcGxheUV2ZW50
LCBPcHRpb25TZXQ8V2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdzPikgeyB9CiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAkocmV2aXNpb24gMjIxNDY3KQor
KysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjA1OSw3ICsyMDU5LDcgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdl
UmVmIHBhZwogICAgICAgICAgICAgbV9jbGllbnQucGlubmVkU3RhdGVEaWRDaGFuZ2UodG9BUEko
JnBhZ2UpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogICAgICAgICB9CiAKLSAgICAgICAg
dm9pZCBpc1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJQYWdlUHJveHkmIHBhZ2UsIGJvb2wpIGZp
bmFsCisgICAgICAgIHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViUGFnZVByb3h5JiBw
YWdlKSBmaW5hbAogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmlzUGxheWlu
Z0F1ZGlvRGlkQ2hhbmdlKQogICAgICAgICAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZh
dGUuaAkocmV2aXNpb24gMjIxNDY3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ5LDcgKzE0OSw2
IEBAIHN0cnVjdCBVSUVkZ2VJbnNldHM7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IHRha2VGb2N1czooX1dLRm9jdXNEaXJlY3Rpb24pZGlyZWN0aW9uIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgZGlkTm90SGFuZGxlV2hlZWxFdmVudDooTlNFdmVudCAqKWV2ZW50IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgaGFuZGxlQXV0b3BsYXlFdmVudDooX1dLQXV0b3BsYXlFdmVudClldmVudCB3
aXRoRmxhZ3M6KF9XS0F1dG9wbGF5RXZlbnRGbGFncylmbGFncyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlOihCT09MKXBsYXlpbmdNZWRpYSBXS19BUElfQVZBSUxB
QkxFKG1hY29zeChXS19NQUNfVEJBKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IGRpZENsaWNrQXV0b0ZpbGxCdXR0b25XaXRoVXNlckluZm86KGlkIDxOU1NlY3VyZUNv
ZGluZz4pdXNlckluZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwogLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzYXZlRGF0YVRvRmlsZTooTlNEYXRh
ICopZGF0YSBzdWdnZXN0ZWRGaWxlbmFtZTooTlNTdHJpbmcgKilzdWdnZXN0ZWRGaWxlbmFtZSBt
aW1lVHlwZTooTlNTdHJpbmcgKiltaW1lVHlwZSBvcmlnaW5hdGluZ1VSTDooTlNVUkwgKil1cmwg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwogLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBkaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VMaW1pdFdoaWxl
SW5Gb3JlZ3JvdW5kOihfV0tSZXNvdXJjZUxpbWl0KWxpbWl0IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbQkocmV2aXNpb24gMjIxNDY3KQorKysgU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtNDUxMiw2
ICs0NTEyLDExIEBAIC0gKEJPT0wpX2lzRGlzcGxheWluZ1N0YW5kYWxvbmVNZWRpYURvY3UKICAg
ICByZXR1cm4gTk87CiB9CiAKKy0gKEJPT0wpX2lzUGxheWluZ0F1ZGlvCit7CisgICAgcmV0dXJu
IF9wYWdlLT5pc1BsYXlpbmdBdWRpbygpOworfQorCiAtIChCT09MKV9pc1Nob3dpbmdOYXZpZ2F0
aW9uR2VzdHVyZVNuYXBzaG90CiB7CiAgICAgcmV0dXJuIF9wYWdlLT5pc1Nob3dpbmdOYXZpZ2F0
aW9uR2VzdHVyZVNuYXBzaG90KCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgJKHJldmlzaW9uIDIyMTQ2NykKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEyMCw2ICsxMjAsOCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2Vy
LCBfV0tJbW1lZGlhdGVBCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5n
ICpfTUlNRVR5cGU7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICpf
dXNlckFnZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCitA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1faXNQbGF5aW5nQXVkaW8pIEJP
T0wgX3BsYXlpbmdBdWRpbyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKKwogQHByb3BlcnR5IChjb3B5LCBzZXR0ZXI9X3NldEFwcGxpY2F0aW9u
TmFtZUZvclVzZXJBZ2VudDopIE5TU3RyaW5nICpfYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50
OwogQHByb3BlcnR5IChjb3B5LCBzZXR0ZXI9X3NldEN1c3RvbVVzZXJBZ2VudDopIE5TU3RyaW5n
ICpfY3VzdG9tVXNlckFnZW50OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRVSUNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwCShyZXZpc2lvbiAyMjE0NjcpCisrKyBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTIxNyw3ICsyMTcsNyBAQCBwcml2YXRlOgogICAgICAgICB3ZWJraXRXZWJW
aWV3UnVuQXNNb2RhbChtX3dlYlZpZXcpOwogICAgIH0KIAotICAgIHZvaWQgaXNQbGF5aW5nTWVk
aWFEaWRDaGFuZ2UoV2ViUGFnZVByb3h5JiwgYm9vbCkgZmluYWwKKyAgICB2b2lkIGlzUGxheWlu
Z01lZGlhRGlkQ2hhbmdlKFdlYlBhZ2VQcm94eSYpIGZpbmFsCiAgICAgewogICAgICAgICB3ZWJr
aXRXZWJWaWV3SXNQbGF5aW5nQXVkaW9DaGFuZ2VkKG1fd2ViVmlldyk7CiAgICAgfQpJbmRleDog
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaAko
cmV2aXNpb24gMjIxNDY3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdl
Q2xpZW50SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw4ICsyNiw3IEBACiAgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBQYWdlQ2xpZW50SW1wbF9o
Ci0jZGVmaW5lIFBhZ2VDbGllbnRJbXBsX2gKKyNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRGVm
YXVsdFVuZG9Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiUGFnZUNsaWVudC5oIgpAQCAtMTM5LDYg
KzEzOCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZXJlZlZpZXcoKSBvdmVycmlkZTsKIAogICAg
IHZvaWQgZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkgb3ZlcnJpZGUgeyB9CisgICAgdm9pZCBp
c1BsYXlpbmdBdWRpb1dpbGxDaGFuZ2UoKSBmaW5hbCB7IH0KKyAgICB2b2lkIGlzUGxheWluZ0F1
ZGlvRGlkQ2hhbmdlKCkgZmluYWwgeyB9CiAKICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShHU1RS
RUFNRVIpCiAgICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2lu
c1Blcm1pc3Npb25SZXF1ZXN0KEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJl
cXVlc3QmKSBvdmVycmlkZTsKQEAgLTE1NCw1ICsxNTUsMyBAQCBwcml2YXRlOgogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBQYWdlQ2xpZW50SW1wbF9oCkluZGV4OiBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QYWdlQ2xpZW50SW1wbENvY29hLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BhZ2VDbGllbnRJbXBsQ29j
b2EubW0JKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGFn
ZUNsaWVudEltcGxDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJQYWdlQ2xpZW50SW1wbC5oIgor
CisjaW1wb3J0ICJQYWdlQ2xpZW50SW1wbElPUy5oIgorI2ltcG9ydCAiV0tXZWJWaWV3UHJpdmF0
ZS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6aXNQbGF5
aW5nQXVkaW9XaWxsQ2hhbmdlKCkKK3sKKyAgICBbbV93ZWJWaWV3IHdpbGxDaGFuZ2VWYWx1ZUZv
cktleTpOU1N0cmluZ0Zyb21TZWxlY3RvcihAc2VsZWN0b3IoX2lzUGxheWluZ0F1ZGlvKSldOwor
fQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjppc1BsYXlpbmdBdWRpb0RpZENoYW5nZSgpCit7Cisg
ICAgW21fd2ViVmlldyBkaWRDaGFuZ2VWYWx1ZUZvcktleTpOU1N0cmluZ0Zyb21TZWxlY3RvcihA
c2VsZWN0b3IoX2lzUGxheWluZ0F1ZGlvKSldOworfQorICAgIAorfQpJbmRleDogU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAkocmV2aXNpb24gMjIxNDY3KQorKysg
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDAsNyArMTAwLDYgQEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCB0YWtlRm9jdXMoV2Vi
UGFnZVByb3h5KiwgV0tGb2N1c0RpcmVjdGlvbikgZmluYWw7CiAgICAgICAgIHZvaWQgZm9jdXMo
V2ViUGFnZVByb3h5KikgZmluYWw7CiAgICAgICAgIHZvaWQgdW5mb2N1cyhXZWJQYWdlUHJveHkq
KSBmaW5hbDsKLSAgICAgICAgdm9pZCBpc1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJLaXQ6Oldl
YlBhZ2VQcm94eSYsIGJvb2wpIGZpbmFsOwogICAgICAgICB2b2lkIGRpZE5vdEhhbmRsZVdoZWVs
RXZlbnQoV2ViUGFnZVByb3h5KiwgY29uc3QgTmF0aXZlV2ViV2hlZWxFdmVudCYpIGZpbmFsOwog
ICAgICAgICB2b2lkIGhhbmRsZUF1dG9wbGF5RXZlbnQoV2ViUGFnZVByb3h5JiwgV2ViQ29yZTo6
QXV0b3BsYXlFdmVudCwgT3B0aW9uU2V0PFdlYkNvcmU6OkF1dG9wbGF5RXZlbnRGbGFncz4pIGZp
bmFsOwogICAgICAgICB2b2lkIGRpZENsaWNrQXV0b0ZpbGxCdXR0b24oV2ViUGFnZVByb3h5Jiwg
QVBJOjpPYmplY3QqKSBmaW5hbDsKQEAgLTE1MSw3ICsxNTAsNiBAQCBwcml2YXRlOgogICAgICAg
ICBib29sIHVuZm9jdXNXZWJWaWV3IDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3VGFrZUZvY3Vz
IDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkTm90SGFuZGxlV2hlZWxFdmVudCA6IDE7Ci0g
ICAgICAgIGJvb2wgd2ViVmlld0lzUGxheWluZ01lZGlhRGlkQ2hhbmdlIDogMTsKICAgICAgICAg
Ym9vbCB3ZWJWaWV3SGFuZGxlQXV0b3BsYXlFdmVudFdpdGhGbGFncyA6IDE7CiAgICAgICAgIGJv
b2wgd2ViVmlld0RpZENsaWNrQXV0b0ZpbGxCdXR0b25XaXRoVXNlckluZm8gOiAxOwogICAgICAg
ICBib29sIHdlYlZpZXdEaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3Jl
Z3JvdW5kIDogMTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxl
Z2F0ZS5tbQkocmV2aXNpb24gMjIxNDY3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVUlEZWxlZ2F0ZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTA3LDcgKzEwNyw2IEBAIHZvaWQg
VUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUoaWQgPFdLVUlEZWwKICAgICBtX2RlbGVnYXRlTWV0aG9k
cy51bmZvY3VzV2ViVmlldyA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KF91bmZvY3VzV2ViVmlldzopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3VGFrZUZv
Y3VzID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6dGFr
ZUZvY3VzOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWROb3RIYW5kbGVXaGVl
bEV2ZW50ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6
ZGlkTm90SGFuZGxlV2hlZWxFdmVudDopXTsKLSAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3
SXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3Rvcihfd2ViVmlldzppc1BsYXlpbmdNZWRpYURpZENoYW5nZTopXTsKICAgICBtX2RlbGVn
YXRlTWV0aG9kcy53ZWJWaWV3SGFuZGxlQXV0b3BsYXlFdmVudFdpdGhGbGFncyA9IFtkZWxlZ2F0
ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmhhbmRsZUF1dG9wbGF5RXZl
bnQ6d2l0aEZsYWdzOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRDbGlja0F1
dG9GaWxsQnV0dG9uV2l0aFVzZXJJbmZvID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpA
c2VsZWN0b3IoX3dlYlZpZXc6ZGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbldpdGhVc2VySW5mbzopXTsK
ICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNl
TGltaXRXaGlsZUluRm9yZWdyb3VuZCA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKF93ZWJWaWV3OmRpZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJjZUxpbWl0V2hpbGVJbkZv
cmVncm91bmQ6KV07CkBAIC00NjYsMTggKzQ2NSw2IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGll
bnQ6OmRpZE5vdEhhbmRsZVcKICAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0
ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJWaWV3IGRpZE5vdEhhbmRsZVdoZWVsRXZlbnQ6
ZXZlbnQubmF0aXZlRXZlbnQoKV07CiB9CiAKLXZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6Omlz
UGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgYm9vbCBpc1BsYXlp
bmcpCi17Ci0gICAgaWYgKCFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0lz
UGxheWluZ01lZGlhRGlkQ2hhbmdlKQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgYXV0byBk
ZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpOwotICAgIGlmICghZGVsZWdh
dGUpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRl
PilkZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJWaWV3IGlzUGxheWluZ01lZGlh
RGlkQ2hhbmdlOmlzUGxheWluZ107Ci19Ci0KIHN0YXRpYyBfV0tBdXRvcGxheUV2ZW50RmxhZ3Mg
dG9XS0F1dG9wbGF5RXZlbnRGbGFncyhPcHRpb25TZXQ8V2ViQ29yZTo6QXV0b3BsYXlFdmVudEZs
YWdzPiBmbGFncykKIHsKICAgICBfV0tBdXRvcGxheUV2ZW50RmxhZ3Mgd2tGbGFncyA9IF9XS0F1
dG9wbGF5RXZlbnRGbGFnc05vbmU7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
UGFnZUNsaWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvUGFnZUNsaWVudEltcGwuaAkocmV2aXNpb24gMjIxNDY3KQorKysgU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDggKzIz
LDcgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVm
IFBhZ2VDbGllbnRJbXBsX2gKLSNkZWZpbmUgUGFnZUNsaWVudEltcGxfaAorI3ByYWdtYSBvbmNl
CiAKICNpZiBQTEFURk9STShNQUMpCiAKQEAgLTkwLDYgKzg5LDggQEAgcHJpdmF0ZToKICAgICB2
b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBvdmVycmlkZTsKICAgICB2b2lk
IHNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29sKSBvdmVycmlkZTsKICAgICB2b2lk
IGRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJp
YnV0ZXMmKSBvdmVycmlkZTsKKyAgICB2b2lkIGlzUGxheWluZ0F1ZGlvV2lsbENoYW5nZSgpIGZp
bmFsOworICAgIHZvaWQgaXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2UoKSBmaW5hbDsKIAogICAgIHZv
aWQgcmVnaXN0ZXJFZGl0Q29tbWFuZChSZWY8V2ViRWRpdENvbW1hbmRQcm94eT4mJiwgV2ViUGFn
ZVByb3h5OjpVbmRvT3JSZWRvKSBvdmVycmlkZTsKICAgICB2b2lkIGNsZWFyQWxsRWRpdENvbW1h
bmRzKCkgb3ZlcnJpZGU7CkBAIC0yNTgsNSArMjU5LDMgQEAgcHJpdmF0ZToKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQotCi0jZW5kaWYgLy8gUGFnZUNs
aWVudEltcGxfaApJbmRleDogU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMjE0NjcpCisrKyBTb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMTgzLDYgKzExODMs
NyBAQAogCQk1QzIwQ0JBMDFCQjFFQ0Q4MDA4OTVCQjEgLyogTmV0d29ya1Nlc3Npb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMjBDQjlFMUJCMERE
MTgwMDg5NUJCMSAvKiBOZXR3b3JrU2Vzc2lvbi5oICovOyB9OwogCQk1QzI5OERBMDFDM0RGMDIx
MDA0NzBBRkUgLyogUGVuZGluZ0Rvd25sb2FkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1QzI5OEQ5RTFDM0RFRjI5MDA0NzBBRkUgLyogUGVuZGluZ0Rv
d25sb2FkLmggKi87IH07CiAJCTVDNjJGREY5MUVGQzI3MUMwMENFMDcyRSAvKiBXS1VSTFNjaGVt
ZVRhc2tQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1QzYyRkRGODFFRkMyNjNDMDBDRTA3MkUgLyogV0tVUkxTY2hlbWVUYXNrUHJpdmF0ZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTVDNkNF
NkQxMUY1OUJDN0EwMDA3QzZDQiAvKiBQYWdlQ2xpZW50SW1wbENvY29hLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM2Q0U2RDAxRjU5QkM0NjAwMDdD
NkNCIC8qIFBhZ2VDbGllbnRJbXBsQ29jb2EubW0gKi87IH07CiAJCTVDNzcwNjc0MUQxMTM4Mzgw
MDEyNzAwRiAvKiBXZWJTb2NrZXRQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Qzc3MDY3MzFEMTExRDhCMDAxMjcwMEYgLyogV2ViU29j
a2V0UHJvdmlkZXIuY3BwICovOyB9OwogCQk1Qzg1Qzc4ODFDM0YyM0NFMDA2MUE0RkEgLyogUGVu
ZGluZ0Rvd25sb2FkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDVDODVDNzg2MUMzRjIzQzUwMDYxQTRGQSAvKiBQZW5kaW5nRG93bmxvYWQuY3BwICov
OyB9OwogCQk1QzlFNTY4MjFERjdGMUFCMDBDOUVFMzMgLyogV0tXZWJzaXRlUG9saWNpZXMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM5RTU2ODAx
REY3RjA1NTAwQzlFRTMzIC8qIFdLV2Vic2l0ZVBvbGljaWVzLmNwcCAqLzsgfTsKQEAgLTM1MDks
NiArMzUxMCw3IEBACiAJCTVDMjBDQjlFMUJCMEREMTgwMDg5NUJCMSAvKiBOZXR3b3JrU2Vzc2lv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrU2Vzc2lvbi5oOyBw
YXRoID0gTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNUMyOThEOUUxQzNERUYyOTAwNDcwQUZFIC8qIFBlbmRpbmdEb3dubG9hZC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQZW5kaW5nRG93bmxvYWQuaDsgcGF0
aCA9IE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9QZW5kaW5nRG93bmxvYWQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM2MkZERjgxRUZDMjYzQzAwQ0UwNzJFIC8qIFdLVVJMU2No
ZW1lVGFza1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tVUkxTY2hlbWVUYXNrUHJpdmF0ZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1QzZDRTZEMDFGNTlCQzQ2MDAwN0M2Q0Ig
LyogUGFnZUNsaWVudEltcGxDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFBhZ2VDbGllbnRJbXBsQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTVDNzcwNjczMUQxMTFEOEIwMDEyNzAwRiAvKiBXZWJTb2NrZXRQcm92aWRlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJTb2NrZXRQcm92aWRlci5j
cHA7IHBhdGggPSBOZXR3b3JrL1dlYlNvY2tldFByb3ZpZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNUM3Qzg4REMxRDBGNDFBMDAwOUQyRjZEIC8qIFdlYlNvY2tldFByb3Zp
ZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYlNvY2tldFByb3ZpZGVy
Lmg7IHBhdGggPSBOZXR3b3JrL1dlYlNvY2tldFByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTVDODVDNzg2MUMzRjIzQzUwMDYxQTRGQSAvKiBQZW5kaW5nRG93bmxvYWQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUGVuZGluZ0Rvd25sb2Fk
LmNwcDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9QZW5kaW5nRG93bmxvYWQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTI3Myw2ICs1Mjc1LDcgQEAKIAkJCQk3
QTgyMUY0RDFFMkY2NzlFMDA2MDQ1NzcgLyogTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xp
ZW50Lm1tICovLAogCQkJCTFBQkMzREY0MTg5OUU0MzcwMDRGMDYyNiAvKiBOYXZpZ2F0aW9uU3Rh
dGUuaCAqLywKIAkJCQkxQUJDM0RGMzE4OTlFNDM3MDA0RjA2MjYgLyogTmF2aWdhdGlvblN0YXRl
Lm1tICovLAorCQkJCTVDNkNFNkQwMUY1OUJDNDYwMDA3QzZDQiAvKiBQYWdlQ2xpZW50SW1wbENv
Y29hLm1tICovLAogCQkJCUNEQTI5QTFFMUNCRUI1RkIwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Np
b25NYW5hZ2VyUHJveHkuaCAqLywKIAkJCQlDREEyOUEyMjFDQkVCNjFBMDA5MDFDQ0YgLyogUGxh
eWJhY2tTZXNzaW9uTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCUNEQTI5QTFGMUNC
RUI1RkIwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkubW0gKi8sCkBAIC0x
MDIwMCw2ICsxMDIwMyw3IEBACiAJCQkJN0MzODc0MzQxNzJGNTYxNTAwMUJEODhBIC8qIFBhZ2VC
YW5uZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M2RDM3RkMxNzJGNTU1RjAwOUQyODQ3IC8q
IFBhZ2VCYW5uZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkwRkNCNEU2MzE4QkJFM0Q5MDAw
RkNGQzkgLyogUGFnZUNsaWVudEltcGwubW0gaW4gU291cmNlcyAqLywKKwkJCQk1QzZDRTZEMTFG
NTlCQzdBMDAwN0M2Q0IgLyogUGFnZUNsaWVudEltcGxDb2NvYS5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTBGQ0I0RTQ3MThCQkUwNDQwMDBGQ0ZDOSAvKiBQYWdlQ2xpZW50SW1wbElPUy5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTFBQzc1MzdCMTgzQTlGREIwMDcyQ0IxNSAvKiBQYWdlTG9hZFN0YXRl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM1NzRBNTgyMTJFNjY2ODEwMDJERkU5OCAvKiBQYXN0
ZWJvYXJkVHlwZXMubW0gaW4gU291cmNlcyAqLywKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMTQ3MikKKysrIFRvb2xzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE3LTA4LTMxICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVwbGFj
ZSBXS1VJRGVsZWdhdGVQcml2YXRlJ3MgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2Ugd2l0aCBLVk8g
X2lzUGxheWluZ0F1ZGlvIG9uIFdLV2ViVmlldworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MjEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VJ
RGVsZWdhdGUubW06CisgICAgICAgICgtW0F1ZGlvT2JzZXJ2ZXIgb2JzZXJ2ZVZhbHVlRm9yS2V5
UGF0aDpvZk9iamVjdDpjaGFuZ2U6Y29udGV4dDpdKToKKyAgICAgICAgKFRFU1QpOgorICAgICAg
ICAoLVtNZWRpYURlbGVnYXRlIF93ZWJWaWV3OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlOl0pOiBE
ZWxldGVkLgorCiAyMDE3LTA4LTMxICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAK
ICAgICAgICAgV1NMIHNob3VsZCBzdXBwb3J0IGxvYWRpbmcgZnJvbSBhcnJheXMKSW5kZXg6IFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVUlEZWxlZ2F0ZS5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VJRGVsZWdhdGUu
bW0JKHJldmlzaW9uIDIyMTQ2NykKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvVUlEZWxlZ2F0ZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjcsOCArMjcsNiBAQAogCiAj
aWYgV0tfQVBJX0VOQUJMRUQKIAotI2lmIFBMQVRGT1JNKE1BQykKLQogI2ltcG9ydCAiVGVzdFdL
V2ViVmlldy5oIgogI2ltcG9ydCAiVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdDb25m
aWd1cmF0aW9uRXh0cmFzLmgiCkBAIC0zOSwxMiArMzcsNDIgQEAKICNpbXBvcnQgPHd0Zi9SZXRh
aW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9u
cy5oPgogCitzdGF0aWMgYm9vbCBkb25lOworCitAaW50ZXJmYWNlIEF1ZGlvT2JzZXJ2ZXIgOiBO
U09iamVjdAorQGVuZAorCitAaW1wbGVtZW50YXRpb24gQXVkaW9PYnNlcnZlcgorCistICh2b2lk
KW9ic2VydmVWYWx1ZUZvcktleVBhdGg6KE5TU3RyaW5nICopa2V5UGF0aCBvZk9iamVjdDooaWQp
b2JqZWN0IGNoYW5nZTooTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqKWNoYW5nZSBjb250
ZXh0Oih2b2lkICopY29udGV4dAoreworICAgIEVYUEVDVF9UUlVFKFtrZXlQYXRoIGlzRXF1YWxU
b1N0cmluZzpOU1N0cmluZ0Zyb21TZWxlY3RvcihAc2VsZWN0b3IoX2lzUGxheWluZ0F1ZGlvKSld
KTsKKyAgICBFWFBFQ1RfVFJVRShbW29iamVjdCBjbGFzc10gaXNFcXVhbDpbVGVzdFdLV2ViVmll
dyBjbGFzc11dKTsKKyAgICBFWFBFQ1RfRkFMU0UoW1tjaGFuZ2Ugb2JqZWN0Rm9yS2V5Ok5TS2V5
VmFsdWVDaGFuZ2VPbGRLZXldIGJvb2xWYWx1ZV0pOworICAgIEVYUEVDVF9UUlVFKFtbY2hhbmdl
IG9iamVjdEZvcktleTpOU0tleVZhbHVlQ2hhbmdlTmV3S2V5XSBib29sVmFsdWVdKTsKKyAgICBF
WFBFQ1RfVFJVRShjb250ZXh0ID09IG51bGxwdHIpOworICAgIGRvbmUgPSB0cnVlOworfQorCitA
ZW5kCisKK1RFU1QoV2ViS2l0MiwgV0tXZWJWaWV3SXNQbGF5aW5nQXVkaW8pCit7CisgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpbW1tXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIGFsbG9jXSBpbml0XSBhdXRvcmVsZWFzZV1dKTsKKyAgICBhdXRvIG9ic2VydmVy
ID0gYWRvcHROUyhbW0F1ZGlvT2JzZXJ2ZXIgYWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmlldyBh
ZGRPYnNlcnZlcjpvYnNlcnZlci5nZXQoKSBmb3JLZXlQYXRoOkAiX2lzUGxheWluZ0F1ZGlvIiBv
cHRpb25zOk5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25OZXcgfCBOU0tleVZhbHVlT2JzZXJ2aW5n
T3B0aW9uT2xkIGNvbnRleHQ6bmlsXTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRl
c3RQYWdlTmFtZWQ6QCJmaWxlLXdpdGgtdmlkZW8iXTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUph
dmFTY3JpcHQ6QCJwbGF5VmlkZW8oKSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworfQorCisjaWYgUExBVEZPUk0oTUFDKQorCiBA
Y2xhc3MgVUlUZXN0RGVsZWdhdGU7CiAKIHN0YXRpYyBSZXRhaW5QdHI8V0tXZWJWaWV3PiB3ZWJW
aWV3RnJvbURlbGVnYXRlQ2FsbGJhY2s7CiBzdGF0aWMgUmV0YWluUHRyPFdLV2ViVmlldz4gY3Jl
YXRlZFdlYlZpZXc7CiBzdGF0aWMgUmV0YWluUHRyPFVJVGVzdERlbGVnYXRlPiBkZWxlZ2F0ZTsK
LXN0YXRpYyBib29sIGRvbmU7CiAKIEBpbnRlcmZhY2UgVUlUZXN0RGVsZWdhdGUgOiBOU09iamVj
dCA8V0tVSURlbGVnYXRlUHJpdmF0ZSwgV0tVUkxTY2hlbWVIYW5kbGVyPgogQGVuZApAQCAtOTEs
MjkgKzExOSw2IEBAIFRFU1QoV2ViS2l0MiwgU2hvd1dlYlZpZXcpCiAgICAgQVNTRVJUX0VRKHdl
YlZpZXdGcm9tRGVsZWdhdGVDYWxsYmFjaywgY3JlYXRlZFdlYlZpZXcpOwogfQogCi1AaW50ZXJm
YWNlIE1lZGlhRGVsZWdhdGUgOiBOU09iamVjdCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4KLUBlbmQK
LQotQGltcGxlbWVudGF0aW9uIE1lZGlhRGVsZWdhdGUKLQotLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBpc1BsYXlpbmdNZWRpYURpZENoYW5nZTooQk9PTClwbGF5aW5nTWVk
aWEKLXsKLSAgICBBU1NFUlRfVFJVRShwbGF5aW5nTWVkaWEpOwotICAgIGRvbmUgPSB0cnVlOwot
fQotCi1AZW5kCi0KLVRFU1QoV2ViS2l0MiwgV0tXZWJWaWV3SXNQbGF5aW5nTWVkaWEpCi17Ci0g
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpbW1tXS1dlYlZp
ZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSBhdXRvcmVsZWFzZV1dKTsKLSAgICBhdXRvIGRl
bGVnYXRlID0gYWRvcHROUyhbW01lZGlhRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKLSAgICBbd2Vi
VmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKLSAgICBbd2ViVmlldyBzeW5jaHJv
bm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJmaWxlLXdpdGgtdmlkZW8iXTsKLSAgICBbd2ViVmll
dyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJwbGF5VmlkZW8oKSIgY29tcGxldGlvbkhhbmRsZXI6bmls
XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwotfQotCiBzdGF0aWMgYm9v
bCByZWFkeUZvckNsaWNrOwogCiBAaW50ZXJmYWNlIEF1dG9GaWxsRGVsZWdhdGUgOiBOU09iamVj
dCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319613</attachid>
            <date>2017-09-01 10:45:45 -0700</date>
            <delta_ts>2017-09-01 11:03:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176212-20170901104543.patch</filename>
            <type>text/plain</type>
            <size>25933</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjE0NjcpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDE3LTA4LTMxICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVwbGFjZSBXS1VJ
RGVsZWdhdGVQcml2YXRlJ3MgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2Ugd2l0aCBLVk8gX2lzUGxh
eWluZ0F1ZGlvIG9uIFdLV2ViVmlldworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTc2MjEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRGFuIHN1Z2dlc3RlZCB0aGlzIGluIGJ1ZyAxNzYyMDMsIEkgdGhpbmsg
aXQncyBhIGdvb2QgaWRlYSwKKyAgICAgICAgYW5kIEknbGwgbmVlZCB0byBhZGQgbW9yZSBLVk8g
cHJvcGVydGllcyBzb29uIGFueXdheXMgc28gSSdkIGJldHRlciBsZWFybiBob3cuCisgICAgICAg
IERldGVybWluaW5nIGlmIGF1ZGlvIHBsYXlpbmcgY2hhbmdlZCBpcyBpbXBvcnRhbnQgZm9yIFNh
ZmFyaSwgc28gV0tQYWdlVUlDbGllbnQncworICAgICAgICBpc1BsYXlpbmdBdWRpb0RpZENoYW5n
ZSB3YXMgY29ycmVjdGx5IG5hbWVkIGJ1dCBpbmNvcnJlY3RseSBmaXJlZCBpZiBlaXRoZXIgYXVk
aW8KKyAgICAgICAgb3IgdmlkZW8gcGxheWluZyBjaGFuZ2VkIGFuZCBoYWQgeW91IGNoZWNrIGlm
IGF1ZGlvIHdhcyBwbGF5aW5nLCBwb3NzaWJseSB0b28gb2Z0ZW4uCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6CisgICAgICAgIChBUEk6OlVJQ2xpZW50Ojppc1BsYXlp
bmdNZWRpYURpZENoYW5nZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6
CisgICAgICAgIChXS1BhZ2VTZXRQYWdlVUlDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2lzUGxheWluZ0F1ZGlv
XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpzZXREZWxlZ2F0
ZSk6CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50Ojppc1BsYXlpbmdNZWRp
YURpZENoYW5nZSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aXNQbGF5aW5nQXVkaW9XaWxsQ2hhbmdlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmlzUGxheWluZ01lZGlh
RGlkQ2hhbmdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbToKKyAgICAgICAgKFdlYktp
dDo6UGFnZUNsaWVudEltcGw6OmlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlKToKKyAgICAgICAgKFdl
YktpdDo6UGFnZUNsaWVudEltcGw6OmlzUGxheWluZ0F1ZGlvV2lsbENoYW5nZSk6CisKIDIwMTct
MDgtMzEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAg
ICAgICBBZGQgV0tVSURlbGVnYXRlUHJpdmF0ZSBlcXVpdmFsZW50IG9mIFdLUGFnZVVJQ2xpZW50
J3MgaXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2UKSW5kZXg6IFNvdXJjZS9XZWJLaXQvUGxhdGZvcm1N
YWMuY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9QbGF0Zm9ybU1hYy5jbWFrZQko
cmV2aXNpb24gMjIxNDY3KQorKysgU291cmNlL1dlYktpdC9QbGF0Zm9ybU1hYy5jbWFrZQkod29y
a2luZyBjb3B5KQpAQCAtMjUyLDYgKzI1Miw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNF
UwogICAgIFVJUHJvY2Vzcy9Db2NvYS9JY29uTG9hZGluZ0RlbGVnYXRlLm1tCiAgICAgVUlQcm9j
ZXNzL0NvY29hL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudC5tbQogICAgIFVJUHJv
Y2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KKyAgICBVSVByb2Nlc3MvQ29jb2EvUGFnZUNs
aWVudEltcGxDb2NvYS5tbQogICAgIFVJUHJvY2Vzcy9Db2NvYS9SZW1vdGVMYXllclRyZWVTY3Jv
bGxpbmdQZXJmb3JtYW5jZURhdGEubW0KICAgICBVSVByb2Nlc3MvQ29jb2EvU2Vzc2lvblN0YXRl
Q29kaW5nLm1tCiAgICAgVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgJKHJldmlzaW9uIDIyMTQ2NykKKysrIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzQ0LDYgKzM0
NCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlv
bkZvck1haW5GcmFtZShTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSkgPSAwOwogCiAgICAgdmly
dHVhbCB2b2lkIGRpZENoYW5nZUJhY2tncm91bmRDb2xvcigpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgaXNQbGF5aW5nQXVkaW9XaWxsQ2hhbmdlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBpc1Bs
YXlpbmdBdWRpb0RpZENoYW5nZSgpID0gMDsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2aXJ0
dWFsIHZvaWQgZGlkUGVyZm9ybUltbWVkaWF0ZUFjdGlvbkhpdFRlc3QoY29uc3QgV2ViSGl0VGVz
dFJlc3VsdERhdGEmLCBib29sIGNvbnRlbnRQcmV2ZW50c0RlZmF1bHQsIEFQSTo6T2JqZWN0Kikg
PSAwOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCShyZXZp
c2lvbiAyMjE0NjcpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02NTQ5LDI1ICs2NTQ5LDMxIEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpuYXZpZ2F0aW9uR2VzdHVyZVNuYXAKICAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRS
ZW1vdmVOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90KCp0aGlzKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVG
bGFncyBzdGF0ZSwgdWludDY0X3Qgc291cmNlRWxlbWVudElEKQordm9pZCBXZWJQYWdlUHJveHk6
OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBu
ZXdTdGF0ZSwgdWludDY0X3Qgc291cmNlRWxlbWVudElEKQogewogI2lmIEVOQUJMRShNRURJQV9T
RVNTSU9OKQogICAgIFdlYk1lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlciogZm9jdXNNYW5hZ2VyID0g
cHJvY2VzcygpLnByb2Nlc3NQb29sKCkuc3VwcGxlbWVudDxXZWJNZWRpYVNlc3Npb25Gb2N1c01h
bmFnZXI+KCk7CiAgICAgQVNTRVJUKGZvY3VzTWFuYWdlcik7Ci0gICAgZm9jdXNNYW5hZ2VyLT51
cGRhdGVQbGF5YmFja0F0dHJpYnV0ZXNGcm9tTWVkaWFTdGF0ZSh0aGlzLCBzb3VyY2VFbGVtZW50
SUQsIHN0YXRlKTsKKyAgICBmb2N1c01hbmFnZXItPnVwZGF0ZVBsYXliYWNrQXR0cmlidXRlc0Zy
b21NZWRpYVN0YXRlKHRoaXMsIHNvdXJjZUVsZW1lbnRJRCwgbmV3U3RhdGUpOwogI2VuZGlmCiAK
LSAgICBpZiAoc3RhdGUgPT0gbV9tZWRpYVN0YXRlKQorICAgIGlmIChuZXdTdGF0ZSA9PSBtX21l
ZGlhU3RhdGUpCiAgICAgICAgIHJldHVybjsKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAg
ICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG9sZE1lZGlhQ2FwdHVy
ZVN0YXRlID0gbV9tZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0
dXJlTWFzazsKLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbmV3
TWVkaWFDYXB0dXJlU3RhdGUgPSBzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlh
Q2FwdHVyZU1hc2s7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
IG5ld01lZGlhQ2FwdHVyZVN0YXRlID0gbmV3U3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNZWRpYUNhcHR1cmVNYXNrOwogI2VuZGlmCiAKICAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlRmxhZ3MgcGxheWluZ01lZGlhTWFzayA9IE1lZGlhUHJvZHVjZXI6OklzUGxheWluZ0F1ZGlv
IHwgTWVkaWFQcm9kdWNlcjo6SXNQbGF5aW5nVmlkZW87CiAgICAgTWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZUZsYWdzIG9sZFN0YXRlID0gbV9tZWRpYVN0YXRlOwotICAgIG1fbWVkaWFTdGF0ZSA9
IHN0YXRlOworCisgICAgYm9vbCBwbGF5aW5nQXVkaW9DaGFuZ2VzID0gKG9sZFN0YXRlICYgTWVk
aWFQcm9kdWNlcjo6SXNQbGF5aW5nQXVkaW8pICE9IChuZXdTdGF0ZSAmIE1lZGlhUHJvZHVjZXI6
OklzUGxheWluZ0F1ZGlvKTsKKyAgICBpZiAocGxheWluZ0F1ZGlvQ2hhbmdlcykKKyAgICAgICAg
bV9wYWdlQ2xpZW50LmlzUGxheWluZ0F1ZGlvV2lsbENoYW5nZSgpOworICAgIG1fbWVkaWFTdGF0
ZSA9IG5ld1N0YXRlOworICAgIGlmIChwbGF5aW5nQXVkaW9DaGFuZ2VzKQorICAgICAgICBtX3Bh
Z2VDbGllbnQuaXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2UoKTsKIAogI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCiAgICAgaWYgKG9sZE1lZGlhQ2FwdHVyZVN0YXRlICE9IG5ld01lZGlhQ2FwdHVyZVN0
YXRlKSB7CkBAIC02NTgwLDcgKzY1ODYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aXNQbGF5aW5n
TWVkaWFEaWRDaGFuCiAKICAgICBwbGF5aW5nTWVkaWFNYXNrIHw9IFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhQ2FwdHVyZU1hc2s7CiAgICAgaWYgKChvbGRTdGF0ZSAmIHBsYXlpbmdNZWRp
YU1hc2spICE9IChtX21lZGlhU3RhdGUgJiBwbGF5aW5nTWVkaWFNYXNrKSkKLSAgICAgICAgbV91
aUNsaWVudC0+aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoKnRoaXMsIChtX21lZGlhU3RhdGUgJiBw
bGF5aW5nTWVkaWFNYXNrKSk7CisgICAgICAgIG1fdWlDbGllbnQtPmlzUGxheWluZ01lZGlhRGlk
Q2hhbmdlKCp0aGlzKTsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBpZiAoKG9sZFN0YXRlICYg
TWVkaWFQcm9kdWNlcjo6SGFzQXVkaW9PclZpZGVvKSAhPSAobV9tZWRpYVN0YXRlICYgTWVkaWFQ
cm9kdWNlcjo6SGFzQXVkaW9PclZpZGVvKSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElVSUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElVSUNsaWVudC5oCShyZXZpc2lvbiAyMjE0NjcpCisrKyBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ2LDcgKzE0Niw3
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBwaW5uZWRTdGF0ZURpZENoYW5nZShXZWJL
aXQ6OldlYlBhZ2VQcm94eSYpIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGlzUGxheWluZ01lZGlh
RGlkQ2hhbmdlKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgYm9vbCkgeyB9CisgICAgdmlydHVhbCB2
b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYktpdDo6V2ViUGFnZVByb3h5JikgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykgeyB9CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUF1
dG9wbGF5RXZlbnQoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJDb3JlOjpBdXRvcGxheUV2ZW50
LCBPcHRpb25TZXQ8V2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdzPikgeyB9CiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAkocmV2aXNpb24gMjIxNDY3KQor
KysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjA1OSw3ICsyMDU5LDcgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdl
UmVmIHBhZwogICAgICAgICAgICAgbV9jbGllbnQucGlubmVkU3RhdGVEaWRDaGFuZ2UodG9BUEko
JnBhZ2UpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogICAgICAgICB9CiAKLSAgICAgICAg
dm9pZCBpc1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJQYWdlUHJveHkmIHBhZ2UsIGJvb2wpIGZp
bmFsCisgICAgICAgIHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViUGFnZVByb3h5JiBw
YWdlKSBmaW5hbAogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmlzUGxheWlu
Z0F1ZGlvRGlkQ2hhbmdlKQogICAgICAgICAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZh
dGUuaAkocmV2aXNpb24gMjIxNDY3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ5LDcgKzE0OSw2
IEBAIHN0cnVjdCBVSUVkZ2VJbnNldHM7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IHRha2VGb2N1czooX1dLRm9jdXNEaXJlY3Rpb24pZGlyZWN0aW9uIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgZGlkTm90SGFuZGxlV2hlZWxFdmVudDooTlNFdmVudCAqKWV2ZW50IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgaGFuZGxlQXV0b3BsYXlFdmVudDooX1dLQXV0b3BsYXlFdmVudClldmVudCB3
aXRoRmxhZ3M6KF9XS0F1dG9wbGF5RXZlbnRGbGFncylmbGFncyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlOihCT09MKXBsYXlpbmdNZWRpYSBXS19BUElfQVZBSUxB
QkxFKG1hY29zeChXS19NQUNfVEJBKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IGRpZENsaWNrQXV0b0ZpbGxCdXR0b25XaXRoVXNlckluZm86KGlkIDxOU1NlY3VyZUNv
ZGluZz4pdXNlckluZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwogLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzYXZlRGF0YVRvRmlsZTooTlNEYXRh
ICopZGF0YSBzdWdnZXN0ZWRGaWxlbmFtZTooTlNTdHJpbmcgKilzdWdnZXN0ZWRGaWxlbmFtZSBt
aW1lVHlwZTooTlNTdHJpbmcgKiltaW1lVHlwZSBvcmlnaW5hdGluZ1VSTDooTlNVUkwgKil1cmwg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwogLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBkaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VMaW1pdFdoaWxl
SW5Gb3JlZ3JvdW5kOihfV0tSZXNvdXJjZUxpbWl0KWxpbWl0IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbQkocmV2aXNpb24gMjIxNDY3KQorKysgU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtNDUxMiw2
ICs0NTEyLDExIEBAIC0gKEJPT0wpX2lzRGlzcGxheWluZ1N0YW5kYWxvbmVNZWRpYURvY3UKICAg
ICByZXR1cm4gTk87CiB9CiAKKy0gKEJPT0wpX2lzUGxheWluZ0F1ZGlvCit7CisgICAgcmV0dXJu
IF9wYWdlLT5pc1BsYXlpbmdBdWRpbygpOworfQorCiAtIChCT09MKV9pc1Nob3dpbmdOYXZpZ2F0
aW9uR2VzdHVyZVNuYXBzaG90CiB7CiAgICAgcmV0dXJuIF9wYWdlLT5pc1Nob3dpbmdOYXZpZ2F0
aW9uR2VzdHVyZVNuYXBzaG90KCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgJKHJldmlzaW9uIDIyMTQ2NykKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEyMCw2ICsxMjAsOCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2Vy
LCBfV0tJbW1lZGlhdGVBCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5n
ICpfTUlNRVR5cGU7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICpf
dXNlckFnZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCitA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1faXNQbGF5aW5nQXVkaW8pIEJP
T0wgX3BsYXlpbmdBdWRpbyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKKwogQHByb3BlcnR5IChjb3B5LCBzZXR0ZXI9X3NldEFwcGxpY2F0aW9u
TmFtZUZvclVzZXJBZ2VudDopIE5TU3RyaW5nICpfYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50
OwogQHByb3BlcnR5IChjb3B5LCBzZXR0ZXI9X3NldEN1c3RvbVVzZXJBZ2VudDopIE5TU3RyaW5n
ICpfY3VzdG9tVXNlckFnZW50OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRVSUNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwCShyZXZpc2lvbiAyMjE0NjcpCisrKyBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTIxNyw3ICsyMTcsNyBAQCBwcml2YXRlOgogICAgICAgICB3ZWJraXRXZWJW
aWV3UnVuQXNNb2RhbChtX3dlYlZpZXcpOwogICAgIH0KIAotICAgIHZvaWQgaXNQbGF5aW5nTWVk
aWFEaWRDaGFuZ2UoV2ViUGFnZVByb3h5JiwgYm9vbCkgZmluYWwKKyAgICB2b2lkIGlzUGxheWlu
Z01lZGlhRGlkQ2hhbmdlKFdlYlBhZ2VQcm94eSYpIGZpbmFsCiAgICAgewogICAgICAgICB3ZWJr
aXRXZWJWaWV3SXNQbGF5aW5nQXVkaW9DaGFuZ2VkKG1fd2ViVmlldyk7CiAgICAgfQpJbmRleDog
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaAko
cmV2aXNpb24gMjIxNDY3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdl
Q2xpZW50SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw4ICsyNiw3IEBACiAgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBQYWdlQ2xpZW50SW1wbF9o
Ci0jZGVmaW5lIFBhZ2VDbGllbnRJbXBsX2gKKyNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRGVm
YXVsdFVuZG9Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiUGFnZUNsaWVudC5oIgpAQCAtMTM5LDYg
KzEzOCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZXJlZlZpZXcoKSBvdmVycmlkZTsKIAogICAg
IHZvaWQgZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkgb3ZlcnJpZGUgeyB9CisgICAgdm9pZCBp
c1BsYXlpbmdBdWRpb1dpbGxDaGFuZ2UoKSBmaW5hbCB7IH0KKyAgICB2b2lkIGlzUGxheWluZ0F1
ZGlvRGlkQ2hhbmdlKCkgZmluYWwgeyB9CiAKICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShHU1RS
RUFNRVIpCiAgICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2lu
c1Blcm1pc3Npb25SZXF1ZXN0KEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJl
cXVlc3QmKSBvdmVycmlkZTsKQEAgLTE1NCw1ICsxNTUsMyBAQCBwcml2YXRlOgogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBQYWdlQ2xpZW50SW1wbF9oCkluZGV4OiBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QYWdlQ2xpZW50SW1wbENvY29hLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BhZ2VDbGllbnRJbXBsQ29j
b2EubW0JKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGFn
ZUNsaWVudEltcGxDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ4IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJQYWdlQ2xpZW50SW1wbC5oIgor
CisjaW1wb3J0ICJQYWdlQ2xpZW50SW1wbElPUy5oIgorI2ltcG9ydCAiV0tXZWJWaWV3UHJpdmF0
ZS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6aXNQbGF5
aW5nQXVkaW9XaWxsQ2hhbmdlKCkKK3sKKyNpZiBXS19BUElfRU5BQkxFRAorICAgIFttX3dlYlZp
ZXcgd2lsbENoYW5nZVZhbHVlRm9yS2V5Ok5TU3RyaW5nRnJvbVNlbGVjdG9yKEBzZWxlY3Rvcihf
aXNQbGF5aW5nQXVkaW8pKV07CisjZW5kaWYKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6aXNQ
bGF5aW5nQXVkaW9EaWRDaGFuZ2UoKQoreworI2lmIFdLX0FQSV9FTkFCTEVECisgICAgW21fd2Vi
VmlldyBkaWRDaGFuZ2VWYWx1ZUZvcktleTpOU1N0cmluZ0Zyb21TZWxlY3RvcihAc2VsZWN0b3Io
X2lzUGxheWluZ0F1ZGlvKSldOworI2VuZGlmCit9CisgICAgCit9CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCShyZXZpc2lvbiAyMjE0NjcpCisrKyBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEwMCw3ICsxMDAsNiBAQCBwcml2YXRlOgogICAgICAgICB2b2lkIHRha2VGb2N1cyhXZWJQ
YWdlUHJveHkqLCBXS0ZvY3VzRGlyZWN0aW9uKSBmaW5hbDsKICAgICAgICAgdm9pZCBmb2N1cyhX
ZWJQYWdlUHJveHkqKSBmaW5hbDsKICAgICAgICAgdm9pZCB1bmZvY3VzKFdlYlBhZ2VQcm94eSop
IGZpbmFsOwotICAgICAgICB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYktpdDo6V2Vi
UGFnZVByb3h5JiwgYm9vbCkgZmluYWw7CiAgICAgICAgIHZvaWQgZGlkTm90SGFuZGxlV2hlZWxF
dmVudChXZWJQYWdlUHJveHkqLCBjb25zdCBOYXRpdmVXZWJXaGVlbEV2ZW50JikgZmluYWw7CiAg
ICAgICAgIHZvaWQgaGFuZGxlQXV0b3BsYXlFdmVudChXZWJQYWdlUHJveHkmLCBXZWJDb3JlOjpB
dXRvcGxheUV2ZW50LCBPcHRpb25TZXQ8V2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdzPikgZmlu
YWw7CiAgICAgICAgIHZvaWQgZGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbihXZWJQYWdlUHJveHkmLCBB
UEk6Ok9iamVjdCopIGZpbmFsOwpAQCAtMTUxLDcgKzE1MCw2IEBAIHByaXZhdGU6CiAgICAgICAg
IGJvb2wgdW5mb2N1c1dlYlZpZXcgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdUYWtlRm9jdXMg
OiAxOwogICAgICAgICBib29sIHdlYlZpZXdEaWROb3RIYW5kbGVXaGVlbEV2ZW50IDogMTsKLSAg
ICAgICAgYm9vbCB3ZWJWaWV3SXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UgOiAxOwogICAgICAgICBi
b29sIHdlYlZpZXdIYW5kbGVBdXRvcGxheUV2ZW50V2l0aEZsYWdzIDogMTsKICAgICAgICAgYm9v
bCB3ZWJWaWV3RGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbldpdGhVc2VySW5mbyA6IDE7CiAgICAgICAg
IGJvb2wgd2ViVmlld0RpZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJjZUxpbWl0V2hpbGVJbkZvcmVn
cm91bmQgOiAxOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0
ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVn
YXRlLm1tCShyZXZpc2lvbiAyMjE0NjcpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMDcsNyArMTA3LDYgQEAgdm9pZCBV
SURlbGVnYXRlOjpzZXREZWxlZ2F0ZShpZCA8V0tVSURlbAogICAgIG1fZGVsZWdhdGVNZXRob2Rz
LnVuZm9jdXNXZWJWaWV3ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Io
X3VuZm9jdXNXZWJWaWV3OildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdUYWtlRm9j
dXMgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzp0YWtl
Rm9jdXM6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZE5vdEhhbmRsZVdoZWVs
RXZlbnQgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpk
aWROb3RIYW5kbGVXaGVlbEV2ZW50OildOwotICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdJ
c1BsYXlpbmdNZWRpYURpZENoYW5nZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKF93ZWJWaWV3OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlOildOwogICAgIG1fZGVsZWdh
dGVNZXRob2RzLndlYlZpZXdIYW5kbGVBdXRvcGxheUV2ZW50V2l0aEZsYWdzID0gW2RlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6aGFuZGxlQXV0b3BsYXlFdmVu
dDp3aXRoRmxhZ3M6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZENsaWNrQXV0
b0ZpbGxCdXR0b25XaXRoVXNlckluZm8gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3Rvcihfd2ViVmlldzpkaWRDbGlja0F1dG9GaWxsQnV0dG9uV2l0aFVzZXJJbmZvOildOwog
ICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VM
aW1pdFdoaWxlSW5Gb3JlZ3JvdW5kID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3IoX3dlYlZpZXc6ZGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9y
ZWdyb3VuZDopXTsKQEAgLTQ2NiwxOCArNDY1LDYgQEAgdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVu
dDo6ZGlkTm90SGFuZGxlVwogICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRl
IF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcgZGlkTm90SGFuZGxlV2hlZWxFdmVudDpl
dmVudC5uYXRpdmVFdmVudCgpXTsKIH0KIAotdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6aXNQ
bGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBib29sIGlzUGxheWlu
ZykKLXsKLSAgICBpZiAoIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3SXNQ
bGF5aW5nTWVkaWFEaWRDaGFuZ2UpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBhdXRvIGRl
bGVnYXRlID0gbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCk7Ci0gICAgaWYgKCFkZWxlZ2F0
ZSkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+
KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcgaXNQbGF5aW5nTWVkaWFE
aWRDaGFuZ2U6aXNQbGF5aW5nXTsKLX0KLQogc3RhdGljIF9XS0F1dG9wbGF5RXZlbnRGbGFncyB0
b1dLQXV0b3BsYXlFdmVudEZsYWdzKE9wdGlvblNldDxXZWJDb3JlOjpBdXRvcGxheUV2ZW50Rmxh
Z3M+IGZsYWdzKQogewogICAgIF9XS0F1dG9wbGF5RXZlbnRGbGFncyB3a0ZsYWdzID0gX1dLQXV0
b3BsYXlFdmVudEZsYWdzTm9uZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCShyZXZpc2lvbiAyMjE0NjcpCisrKyBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAkod29ya2luZyBjb3B5KQpAQCAt
MTk0LDYgKzE5NCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZXJlZlZpZXcoKSBvdmVycmlkZTsK
IAogICAgIHZvaWQgZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkgb3ZlcnJpZGU7CisgICAgdm9p
ZCBpc1BsYXlpbmdBdWRpb1dpbGxDaGFuZ2UoKSBmaW5hbDsKKyAgICB2b2lkIGlzUGxheWluZ0F1
ZGlvRGlkQ2hhbmdlKCkgZmluYWw7CiAKICAgICBXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0
RGlyZWN0aW9uIHVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oKSBvdmVycmlkZTsKIApJbmRl
eDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmgJKHJldmlz
aW9uIDIyMTQ2NykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1w
bC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBQYWdlQ2xpZW50SW1wbF9oCi0jZGVmaW5l
IFBhZ2VDbGllbnRJbXBsX2gKKyNwcmFnbWEgb25jZQogCiAjaWYgUExBVEZPUk0oTUFDKQogCkBA
IC05MCw2ICs4OSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRDdXJzb3IoY29uc3QgV2ViQ29y
ZTo6Q3Vyc29yJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNl
TW92ZXMoYm9vbCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRp
ZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJikgb3ZlcnJpZGU7CisgICAgdm9p
ZCBpc1BsYXlpbmdBdWRpb1dpbGxDaGFuZ2UoKSBmaW5hbDsKKyAgICB2b2lkIGlzUGxheWluZ0F1
ZGlvRGlkQ2hhbmdlKCkgZmluYWw7CiAKICAgICB2b2lkIHJlZ2lzdGVyRWRpdENvbW1hbmQoUmVm
PFdlYkVkaXRDb21tYW5kUHJveHk+JiYsIFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbykgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBjbGVhckFsbEVkaXRDb21tYW5kcygpIG92ZXJyaWRlOwpAQCAtMjU4LDUg
KzI1OSwzIEBAIHByaXZhdGU6CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBM
QVRGT1JNKE1BQykKLQotI2VuZGlmIC8vIFBhZ2VDbGllbnRJbXBsX2gKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjIx
NDY3KQorKysgU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
d29ya2luZyBjb3B5KQpAQCAtMTE4Myw2ICsxMTgzLDcgQEAKIAkJNUMyMENCQTAxQkIxRUNEODAw
ODk1QkIxIC8qIE5ldHdvcmtTZXNzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1QzIwQ0I5RTFCQjBERDE4MDA4OTVCQjEgLyogTmV0d29ya1Nlc3Np
b24uaCAqLzsgfTsKIAkJNUMyOThEQTAxQzNERjAyMTAwNDcwQUZFIC8qIFBlbmRpbmdEb3dubG9h
ZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMyOThE
OUUxQzNERUYyOTAwNDcwQUZFIC8qIFBlbmRpbmdEb3dubG9hZC5oICovOyB9OwogCQk1QzYyRkRG
OTFFRkMyNzFDMDBDRTA3MkUgLyogV0tVUkxTY2hlbWVUYXNrUHJpdmF0ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM2MkZERjgxRUZDMjYzQzAwQ0Uw
NzJFIC8qIFdLVVJMU2NoZW1lVGFza1ByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1QzZDRTZEMTFGNTlCQzdBMDAwN0M2Q0IgLyogUGFn
ZUNsaWVudEltcGxDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDVDNkNFNkQwMUY1OUJDNDYwMDA3QzZDQiAvKiBQYWdlQ2xpZW50SW1wbENvY29h
Lm1tICovOyB9OwogCQk1Qzc3MDY3NDFEMTEzODM4MDAxMjcwMEYgLyogV2ViU29ja2V0UHJvdmlk
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM3
NzA2NzMxRDExMUQ4QjAwMTI3MDBGIC8qIFdlYlNvY2tldFByb3ZpZGVyLmNwcCAqLzsgfTsKIAkJ
NUM4NUM3ODgxQzNGMjNDRTAwNjFBNEZBIC8qIFBlbmRpbmdEb3dubG9hZC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Qzg1Qzc4NjFDM0YyM0M1MDA2
MUE0RkEgLyogUGVuZGluZ0Rvd25sb2FkLmNwcCAqLzsgfTsKIAkJNUM5RTU2ODIxREY3RjFBQjAw
QzlFRTMzIC8qIFdLV2Vic2l0ZVBvbGljaWVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDOUU1NjgwMURGN0YwNTUwMEM5RUUzMyAvKiBXS1dlYnNp
dGVQb2xpY2llcy5jcHAgKi87IH07CkBAIC0zNTA5LDYgKzM1MTAsNyBAQAogCQk1QzIwQ0I5RTFC
QjBERDE4MDA4OTVCQjEgLyogTmV0d29ya1Nlc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gTmV0d29ya1Nlc3Npb24uaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtTZXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDMjk4RDlFMUMzREVG
MjkwMDQ3MEFGRSAvKiBQZW5kaW5nRG93bmxvYWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gUGVuZGluZ0Rvd25sb2FkLmg7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9h
ZHMvUGVuZGluZ0Rvd25sb2FkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDNjJG
REY4MUVGQzI2M0MwMENFMDcyRSAvKiBXS1VSTFNjaGVtZVRhc2tQcml2YXRlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdLVVJMU2NoZW1lVGFza1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNUM2Q0U2RDAxRjU5QkM0NjAwMDdDNkNCIC8qIFBhZ2VDbGllbnRJbXBsQ29jb2EubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQYWdlQ2xpZW50SW1wbENv
Y29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Qzc3MDY3MzFEMTExRDhCMDAx
MjcwMEYgLyogV2ViU29ja2V0UHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gV2ViU29ja2V0UHJvdmlkZXIuY3BwOyBwYXRoID0gTmV0d29yay9XZWJTb2Nr
ZXRQcm92aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDN0M4OERDMUQw
RjQxQTAwMDlEMkY2RCAvKiBXZWJTb2NrZXRQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBXZWJTb2NrZXRQcm92aWRlci5oOyBwYXRoID0gTmV0d29yay9XZWJTb2Nr
ZXRQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Qzg1Qzc4NjFDM0Yy
M0M1MDA2MUE0RkEgLyogUGVuZGluZ0Rvd25sb2FkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFBlbmRpbmdEb3dubG9hZC5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vz
cy9Eb3dubG9hZHMvUGVuZGluZ0Rvd25sb2FkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTUyNzMsNiArNTI3NSw3IEBACiAJCQkJN0E4MjFGNEQxRTJGNjc5RTAwNjA0NTc3IC8q
IExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudC5tbSAqLywKIAkJCQkxQUJDM0RGNDE4
OTlFNDM3MDA0RjA2MjYgLyogTmF2aWdhdGlvblN0YXRlLmggKi8sCiAJCQkJMUFCQzNERjMxODk5
RTQzNzAwNEYwNjI2IC8qIE5hdmlnYXRpb25TdGF0ZS5tbSAqLywKKwkJCQk1QzZDRTZEMDFGNTlC
QzQ2MDAwN0M2Q0IgLyogUGFnZUNsaWVudEltcGxDb2NvYS5tbSAqLywKIAkJCQlDREEyOUExRTFD
QkVCNUZCMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5LmggKi8sCiAJCQkJ
Q0RBMjlBMjIxQ0JFQjYxQTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5t
ZXNzYWdlcy5pbiAqLywKIAkJCQlDREEyOUExRjFDQkVCNUZCMDA5MDFDQ0YgLyogUGxheWJhY2tT
ZXNzaW9uTWFuYWdlclByb3h5Lm1tICovLApAQCAtMTAyMDAsNiArMTAyMDMsNyBAQAogCQkJCTdD
Mzg3NDM0MTcyRjU2MTUwMDFCRDg4QSAvKiBQYWdlQmFubmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTdDNkQzN0ZDMTcyRjU1NUYwMDlEMjg0NyAvKiBQYWdlQmFubmVyTWFjLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEZDQjRFNjMxOEJCRTNEOTAwMEZDRkM5IC8qIFBhZ2VDbGllbnRJbXBsLm1t
IGluIFNvdXJjZXMgKi8sCisJCQkJNUM2Q0U2RDExRjU5QkM3QTAwMDdDNkNCIC8qIFBhZ2VDbGll
bnRJbXBsQ29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQkwRkNCNEU0NzE4QkJFMDQ0MDAwRkNG
QzkgLyogUGFnZUNsaWVudEltcGxJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQUM3NTM3QjE4
M0E5RkRCMDA3MkNCMTUgLyogUGFnZUxvYWRTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlD
NTc0QTU4MjEyRTY2NjgxMDAyREZFOTggLyogUGFzdGVib2FyZFR5cGVzLm1tIGluIFNvdXJjZXMg
Ki8sCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMjE0NzIpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxNSBAQAorMjAxNy0wOC0zMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgorCisgICAgICAgIFJlcGxhY2UgV0tVSURlbGVnYXRlUHJpdmF0ZSdzIGlz
UGxheWluZ01lZGlhRGlkQ2hhbmdlIHdpdGggS1ZPIF9pc1BsYXlpbmdBdWRpbyBvbiBXS1dlYlZp
ZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjIx
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoLVtB
dWRpb09ic2VydmVyIG9ic2VydmVWYWx1ZUZvcktleVBhdGg6b2ZPYmplY3Q6Y2hhbmdlOmNvbnRl
eHQ6XSk6CisgICAgICAgIChURVNUKToKKyAgICAgICAgKC1bTWVkaWFEZWxlZ2F0ZSBfd2ViVmll
dzppc1BsYXlpbmdNZWRpYURpZENoYW5nZTpdKTogRGVsZXRlZC4KKwogMjAxNy0wOC0zMSAgRmls
aXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIFdTTCBzaG91bGQgc3VwcG9y
dCBsb2FkaW5nIGZyb20gYXJyYXlzCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1VJRGVsZWdhdGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9VSURlbGVnYXRlLm1tCShyZXZpc2lvbiAyMjE0NjcpCisrKyBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VJRGVsZWdhdGUubW0JKHdvcmtp
bmcgY29weSkKQEAgLTI3LDggKzI3LDYgQEAKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKLSNpZiBQ
TEFURk9STShNQUMpCi0KICNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKICNpbXBvcnQgIlV0aWxp
dGllcy5oIgogI2ltcG9ydCAiV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5oIgpAQCAtMzks
MTIgKzM3LDQyIEBACiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3dGYvbWFj
L0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAorc3RhdGljIGJvb2wgZG9uZTsK
KworQGludGVyZmFjZSBBdWRpb09ic2VydmVyIDogTlNPYmplY3QKK0BlbmQKKworQGltcGxlbWVu
dGF0aW9uIEF1ZGlvT2JzZXJ2ZXIKKworLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOihO
U1N0cmluZyAqKWtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE5TRGljdGlvbmFy
eTxOU1N0cmluZyAqLCBpZD4gKiljaGFuZ2UgY29udGV4dDoodm9pZCAqKWNvbnRleHQKK3sKKyAg
ICBFWFBFQ1RfVFJVRShba2V5UGF0aCBpc0VxdWFsVG9TdHJpbmc6TlNTdHJpbmdGcm9tU2VsZWN0
b3IoQHNlbGVjdG9yKF9pc1BsYXlpbmdBdWRpbykpXSk7CisgICAgRVhQRUNUX1RSVUUoW1tvYmpl
Y3QgY2xhc3NdIGlzRXF1YWw6W1Rlc3RXS1dlYlZpZXcgY2xhc3NdXSk7CisgICAgRVhQRUNUX0ZB
TFNFKFtbY2hhbmdlIG9iamVjdEZvcktleTpOU0tleVZhbHVlQ2hhbmdlT2xkS2V5XSBib29sVmFs
dWVdKTsKKyAgICBFWFBFQ1RfVFJVRShbW2NoYW5nZSBvYmplY3RGb3JLZXk6TlNLZXlWYWx1ZUNo
YW5nZU5ld0tleV0gYm9vbFZhbHVlXSk7CisgICAgRVhQRUNUX1RSVUUoY29udGV4dCA9PSBudWxs
cHRyKTsKKyAgICBkb25lID0gdHJ1ZTsKK30KKworQGVuZAorCitURVNUKFdlYktpdDIsIFdLV2Vi
Vmlld0lzUGxheWluZ0F1ZGlvKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgODAwLCA2MDAp
IGNvbmZpZ3VyYXRpb246W1tbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0gYXV0
b3JlbGVhc2VdXSk7CisgICAgYXV0byBvYnNlcnZlciA9IGFkb3B0TlMoW1tBdWRpb09ic2VydmVy
IGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXcgYWRkT2JzZXJ2ZXI6b2JzZXJ2ZXIuZ2V0KCkg
Zm9yS2V5UGF0aDpAIl9pc1BsYXlpbmdBdWRpbyIgb3B0aW9uczpOU0tleVZhbHVlT2JzZXJ2aW5n
T3B0aW9uTmV3IHwgTlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbk9sZCBjb250ZXh0Om5pbF07Cisg
ICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAiZmlsZS13aXRoLXZp
ZGVvIl07CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAicGxheVZpZGVvKCkiIGNv
bXBsZXRpb25IYW5kbGVyOm5pbF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25l
KTsKK30KKworI2lmIFBMQVRGT1JNKE1BQykKKwogQGNsYXNzIFVJVGVzdERlbGVnYXRlOwogCiBz
dGF0aWMgUmV0YWluUHRyPFdLV2ViVmlldz4gd2ViVmlld0Zyb21EZWxlZ2F0ZUNhbGxiYWNrOwog
c3RhdGljIFJldGFpblB0cjxXS1dlYlZpZXc+IGNyZWF0ZWRXZWJWaWV3Owogc3RhdGljIFJldGFp
blB0cjxVSVRlc3REZWxlZ2F0ZT4gZGVsZWdhdGU7Ci1zdGF0aWMgYm9vbCBkb25lOwogCiBAaW50
ZXJmYWNlIFVJVGVzdERlbGVnYXRlIDogTlNPYmplY3QgPFdLVUlEZWxlZ2F0ZVByaXZhdGUsIFdL
VVJMU2NoZW1lSGFuZGxlcj4KIEBlbmQKQEAgLTkxLDI5ICsxMTksNiBAQCBURVNUKFdlYktpdDIs
IFNob3dXZWJWaWV3KQogICAgIEFTU0VSVF9FUSh3ZWJWaWV3RnJvbURlbGVnYXRlQ2FsbGJhY2ss
IGNyZWF0ZWRXZWJWaWV3KTsKIH0KIAotQGludGVyZmFjZSBNZWRpYURlbGVnYXRlIDogTlNPYmpl
Y3QgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+Ci1AZW5kCi0KLUBpbXBsZW1lbnRhdGlvbiBNZWRpYURl
bGVnYXRlCi0KLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgaXNQbGF5aW5n
TWVkaWFEaWRDaGFuZ2U6KEJPT0wpcGxheWluZ01lZGlhCi17Ci0gICAgQVNTRVJUX1RSVUUocGxh
eWluZ01lZGlhKTsKLSAgICBkb25lID0gdHJ1ZTsKLX0KLQotQGVuZAotCi1URVNUKFdlYktpdDIs
IFdLV2ViVmlld0lzUGxheWluZ01lZGlhKQotewotICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMo
W1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgODAw
LCA2MDApIGNvbmZpZ3VyYXRpb246W1tbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5p
dF0gYXV0b3JlbGVhc2VdXSk7Ci0gICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tNZWRpYURl
bGVnYXRlIGFsbG9jXSBpbml0XSk7Ci0gICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0
ZS5nZXQoKV07Ci0gICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAi
ZmlsZS13aXRoLXZpZGVvIl07Ci0gICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAicGxh
eVZpZGVvKCkiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKLX0KLQogc3RhdGljIGJvb2wgcmVhZHlGb3JDbGljazsKIAogQGludGVy
ZmFjZSBBdXRvRmlsbERlbGVnYXRlIDogTlNPYmplY3QgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319621</attachid>
            <date>2017-09-01 11:03:47 -0700</date>
            <delta_ts>2017-09-01 11:42:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176212-20170901110347.patch</filename>
            <type>text/plain</type>
            <size>26153</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjE0NjcpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDE3LTA5LTAxICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVwbGFjZSBXS1VJ
RGVsZWdhdGVQcml2YXRlJ3MgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2Ugd2l0aCBLVk8gX2lzUGxh
eWluZ0F1ZGlvIG9uIFdLV2ViVmlldworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTc2MjEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRGFuIHN1Z2dlc3RlZCB0aGlzIGluIGJ1ZyAxNzYyMDMsIEkgdGhpbmsg
aXQncyBhIGdvb2QgaWRlYSwKKyAgICAgICAgYW5kIEknbGwgbmVlZCB0byBhZGQgbW9yZSBLVk8g
cHJvcGVydGllcyBzb29uIGFueXdheXMgc28gSSdkIGJldHRlciBsZWFybiBob3cuCisgICAgICAg
IERldGVybWluaW5nIGlmIGF1ZGlvIHBsYXlpbmcgY2hhbmdlZCBpcyBpbXBvcnRhbnQgZm9yIFNh
ZmFyaSwgc28gV0tQYWdlVUlDbGllbnQncworICAgICAgICBpc1BsYXlpbmdBdWRpb0RpZENoYW5n
ZSB3YXMgY29ycmVjdGx5IG5hbWVkIGJ1dCBpbmNvcnJlY3RseSBmaXJlZCBpZiBlaXRoZXIgYXVk
aW8KKyAgICAgICAgb3IgdmlkZW8gcGxheWluZyBjaGFuZ2VkIGFuZCBoYWQgeW91IGNoZWNrIGlm
IGF1ZGlvIHdhcyBwbGF5aW5nLCBwb3NzaWJseSB0b28gb2Z0ZW4uCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6CisgICAgICAgIChBUEk6OlVJQ2xpZW50Ojppc1BsYXlp
bmdNZWRpYURpZENoYW5nZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6
CisgICAgICAgIChXS1BhZ2VTZXRQYWdlVUlDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2lzUGxheWluZ0F1ZGlv
XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpzZXREZWxlZ2F0
ZSk6CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50Ojppc1BsYXlpbmdNZWRp
YURpZENoYW5nZSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aXNQbGF5aW5nQXVkaW9XaWxsQ2hhbmdlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmlzUGxheWluZ01lZGlh
RGlkQ2hhbmdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbToKKyAgICAgICAgKFdlYktp
dDo6UGFnZUNsaWVudEltcGw6OmlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlKToKKyAgICAgICAgKFdl
YktpdDo6UGFnZUNsaWVudEltcGw6OmlzUGxheWluZ0F1ZGlvV2lsbENoYW5nZSk6CisKIDIwMTct
MDgtMzEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAg
ICAgICBBZGQgV0tVSURlbGVnYXRlUHJpdmF0ZSBlcXVpdmFsZW50IG9mIFdLUGFnZVVJQ2xpZW50
J3MgaXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2UKSW5kZXg6IFNvdXJjZS9XZWJLaXQvUGxhdGZvcm1N
YWMuY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9QbGF0Zm9ybU1hYy5jbWFrZQko
cmV2aXNpb24gMjIxNDY3KQorKysgU291cmNlL1dlYktpdC9QbGF0Zm9ybU1hYy5jbWFrZQkod29y
a2luZyBjb3B5KQpAQCAtMjUyLDYgKzI1Miw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNF
UwogICAgIFVJUHJvY2Vzcy9Db2NvYS9JY29uTG9hZGluZ0RlbGVnYXRlLm1tCiAgICAgVUlQcm9j
ZXNzL0NvY29hL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudC5tbQogICAgIFVJUHJv
Y2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KKyAgICBVSVByb2Nlc3MvQ29jb2EvUGFnZUNs
aWVudEltcGxDb2NvYS5tbQogICAgIFVJUHJvY2Vzcy9Db2NvYS9SZW1vdGVMYXllclRyZWVTY3Jv
bGxpbmdQZXJmb3JtYW5jZURhdGEubW0KICAgICBVSVByb2Nlc3MvQ29jb2EvU2Vzc2lvblN0YXRl
Q29kaW5nLm1tCiAgICAgVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgJKHJldmlzaW9uIDIyMTQ2NykKKysrIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzQ0LDYgKzM0
NCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlv
bkZvck1haW5GcmFtZShTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSkgPSAwOwogCiAgICAgdmly
dHVhbCB2b2lkIGRpZENoYW5nZUJhY2tncm91bmRDb2xvcigpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgaXNQbGF5aW5nQXVkaW9XaWxsQ2hhbmdlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBpc1Bs
YXlpbmdBdWRpb0RpZENoYW5nZSgpID0gMDsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2aXJ0
dWFsIHZvaWQgZGlkUGVyZm9ybUltbWVkaWF0ZUFjdGlvbkhpdFRlc3QoY29uc3QgV2ViSGl0VGVz
dFJlc3VsdERhdGEmLCBib29sIGNvbnRlbnRQcmV2ZW50c0RlZmF1bHQsIEFQSTo6T2JqZWN0Kikg
PSAwOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCShyZXZp
c2lvbiAyMjE0NjcpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02NTQ5LDI1ICs2NTQ5LDMxIEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpuYXZpZ2F0aW9uR2VzdHVyZVNuYXAKICAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRS
ZW1vdmVOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90KCp0aGlzKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVG
bGFncyBzdGF0ZSwgdWludDY0X3Qgc291cmNlRWxlbWVudElEKQordm9pZCBXZWJQYWdlUHJveHk6
OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBu
ZXdTdGF0ZSwgdWludDY0X3Qgc291cmNlRWxlbWVudElEKQogewogI2lmIEVOQUJMRShNRURJQV9T
RVNTSU9OKQogICAgIFdlYk1lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlciogZm9jdXNNYW5hZ2VyID0g
cHJvY2VzcygpLnByb2Nlc3NQb29sKCkuc3VwcGxlbWVudDxXZWJNZWRpYVNlc3Npb25Gb2N1c01h
bmFnZXI+KCk7CiAgICAgQVNTRVJUKGZvY3VzTWFuYWdlcik7Ci0gICAgZm9jdXNNYW5hZ2VyLT51
cGRhdGVQbGF5YmFja0F0dHJpYnV0ZXNGcm9tTWVkaWFTdGF0ZSh0aGlzLCBzb3VyY2VFbGVtZW50
SUQsIHN0YXRlKTsKKyAgICBmb2N1c01hbmFnZXItPnVwZGF0ZVBsYXliYWNrQXR0cmlidXRlc0Zy
b21NZWRpYVN0YXRlKHRoaXMsIHNvdXJjZUVsZW1lbnRJRCwgbmV3U3RhdGUpOwogI2VuZGlmCiAK
LSAgICBpZiAoc3RhdGUgPT0gbV9tZWRpYVN0YXRlKQorICAgIGlmIChuZXdTdGF0ZSA9PSBtX21l
ZGlhU3RhdGUpCiAgICAgICAgIHJldHVybjsKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAg
ICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG9sZE1lZGlhQ2FwdHVy
ZVN0YXRlID0gbV9tZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0
dXJlTWFzazsKLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbmV3
TWVkaWFDYXB0dXJlU3RhdGUgPSBzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlh
Q2FwdHVyZU1hc2s7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
IG5ld01lZGlhQ2FwdHVyZVN0YXRlID0gbmV3U3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNZWRpYUNhcHR1cmVNYXNrOwogI2VuZGlmCiAKICAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlRmxhZ3MgcGxheWluZ01lZGlhTWFzayA9IE1lZGlhUHJvZHVjZXI6OklzUGxheWluZ0F1ZGlv
IHwgTWVkaWFQcm9kdWNlcjo6SXNQbGF5aW5nVmlkZW87CiAgICAgTWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZUZsYWdzIG9sZFN0YXRlID0gbV9tZWRpYVN0YXRlOwotICAgIG1fbWVkaWFTdGF0ZSA9
IHN0YXRlOworCisgICAgYm9vbCBwbGF5aW5nQXVkaW9DaGFuZ2VzID0gKG9sZFN0YXRlICYgTWVk
aWFQcm9kdWNlcjo6SXNQbGF5aW5nQXVkaW8pICE9IChuZXdTdGF0ZSAmIE1lZGlhUHJvZHVjZXI6
OklzUGxheWluZ0F1ZGlvKTsKKyAgICBpZiAocGxheWluZ0F1ZGlvQ2hhbmdlcykKKyAgICAgICAg
bV9wYWdlQ2xpZW50LmlzUGxheWluZ0F1ZGlvV2lsbENoYW5nZSgpOworICAgIG1fbWVkaWFTdGF0
ZSA9IG5ld1N0YXRlOworICAgIGlmIChwbGF5aW5nQXVkaW9DaGFuZ2VzKQorICAgICAgICBtX3Bh
Z2VDbGllbnQuaXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2UoKTsKIAogI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCiAgICAgaWYgKG9sZE1lZGlhQ2FwdHVyZVN0YXRlICE9IG5ld01lZGlhQ2FwdHVyZVN0
YXRlKSB7CkBAIC02NTgwLDcgKzY1ODYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aXNQbGF5aW5n
TWVkaWFEaWRDaGFuCiAKICAgICBwbGF5aW5nTWVkaWFNYXNrIHw9IFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhQ2FwdHVyZU1hc2s7CiAgICAgaWYgKChvbGRTdGF0ZSAmIHBsYXlpbmdNZWRp
YU1hc2spICE9IChtX21lZGlhU3RhdGUgJiBwbGF5aW5nTWVkaWFNYXNrKSkKLSAgICAgICAgbV91
aUNsaWVudC0+aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoKnRoaXMsIChtX21lZGlhU3RhdGUgJiBw
bGF5aW5nTWVkaWFNYXNrKSk7CisgICAgICAgIG1fdWlDbGllbnQtPmlzUGxheWluZ01lZGlhRGlk
Q2hhbmdlKCp0aGlzKTsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBpZiAoKG9sZFN0YXRlICYg
TWVkaWFQcm9kdWNlcjo6SGFzQXVkaW9PclZpZGVvKSAhPSAobV9tZWRpYVN0YXRlICYgTWVkaWFQ
cm9kdWNlcjo6SGFzQXVkaW9PclZpZGVvKSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElVSUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElVSUNsaWVudC5oCShyZXZpc2lvbiAyMjE0NjcpCisrKyBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ2LDcgKzE0Niw3
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBwaW5uZWRTdGF0ZURpZENoYW5nZShXZWJL
aXQ6OldlYlBhZ2VQcm94eSYpIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGlzUGxheWluZ01lZGlh
RGlkQ2hhbmdlKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgYm9vbCkgeyB9CisgICAgdmlydHVhbCB2
b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYktpdDo6V2ViUGFnZVByb3h5JikgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykgeyB9CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUF1
dG9wbGF5RXZlbnQoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJDb3JlOjpBdXRvcGxheUV2ZW50
LCBPcHRpb25TZXQ8V2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdzPikgeyB9CiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAkocmV2aXNpb24gMjIxNDY3KQor
KysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjA1OSw3ICsyMDU5LDcgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdl
UmVmIHBhZwogICAgICAgICAgICAgbV9jbGllbnQucGlubmVkU3RhdGVEaWRDaGFuZ2UodG9BUEko
JnBhZ2UpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogICAgICAgICB9CiAKLSAgICAgICAg
dm9pZCBpc1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJQYWdlUHJveHkmIHBhZ2UsIGJvb2wpIGZp
bmFsCisgICAgICAgIHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViUGFnZVByb3h5JiBw
YWdlKSBmaW5hbAogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmlzUGxheWlu
Z0F1ZGlvRGlkQ2hhbmdlKQogICAgICAgICAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZh
dGUuaAkocmV2aXNpb24gMjIxNDY3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ5LDcgKzE0OSw2
IEBAIHN0cnVjdCBVSUVkZ2VJbnNldHM7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IHRha2VGb2N1czooX1dLRm9jdXNEaXJlY3Rpb24pZGlyZWN0aW9uIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgZGlkTm90SGFuZGxlV2hlZWxFdmVudDooTlNFdmVudCAqKWV2ZW50IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgaGFuZGxlQXV0b3BsYXlFdmVudDooX1dLQXV0b3BsYXlFdmVudClldmVudCB3
aXRoRmxhZ3M6KF9XS0F1dG9wbGF5RXZlbnRGbGFncylmbGFncyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlOihCT09MKXBsYXlpbmdNZWRpYSBXS19BUElfQVZBSUxB
QkxFKG1hY29zeChXS19NQUNfVEJBKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IGRpZENsaWNrQXV0b0ZpbGxCdXR0b25XaXRoVXNlckluZm86KGlkIDxOU1NlY3VyZUNv
ZGluZz4pdXNlckluZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwogLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzYXZlRGF0YVRvRmlsZTooTlNEYXRh
ICopZGF0YSBzdWdnZXN0ZWRGaWxlbmFtZTooTlNTdHJpbmcgKilzdWdnZXN0ZWRGaWxlbmFtZSBt
aW1lVHlwZTooTlNTdHJpbmcgKiltaW1lVHlwZSBvcmlnaW5hdGluZ1VSTDooTlNVUkwgKil1cmwg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwogLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBkaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VMaW1pdFdoaWxl
SW5Gb3JlZ3JvdW5kOihfV0tSZXNvdXJjZUxpbWl0KWxpbWl0IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbQkocmV2aXNpb24gMjIxNDY3KQorKysgU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtNDUxMiw2
ICs0NTEyLDExIEBAIC0gKEJPT0wpX2lzRGlzcGxheWluZ1N0YW5kYWxvbmVNZWRpYURvY3UKICAg
ICByZXR1cm4gTk87CiB9CiAKKy0gKEJPT0wpX2lzUGxheWluZ0F1ZGlvCit7CisgICAgcmV0dXJu
IF9wYWdlLT5pc1BsYXlpbmdBdWRpbygpOworfQorCiAtIChCT09MKV9pc1Nob3dpbmdOYXZpZ2F0
aW9uR2VzdHVyZVNuYXBzaG90CiB7CiAgICAgcmV0dXJuIF9wYWdlLT5pc1Nob3dpbmdOYXZpZ2F0
aW9uR2VzdHVyZVNuYXBzaG90KCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgJKHJldmlzaW9uIDIyMTQ2NykKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEyMCw2ICsxMjAsOCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2Vy
LCBfV0tJbW1lZGlhdGVBCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5n
ICpfTUlNRVR5cGU7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICpf
dXNlckFnZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCitA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1faXNQbGF5aW5nQXVkaW8pIEJP
T0wgX3BsYXlpbmdBdWRpbyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKKwogQHByb3BlcnR5IChjb3B5LCBzZXR0ZXI9X3NldEFwcGxpY2F0aW9u
TmFtZUZvclVzZXJBZ2VudDopIE5TU3RyaW5nICpfYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50
OwogQHByb3BlcnR5IChjb3B5LCBzZXR0ZXI9X3NldEN1c3RvbVVzZXJBZ2VudDopIE5TU3RyaW5n
ICpfY3VzdG9tVXNlckFnZW50OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRVSUNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwCShyZXZpc2lvbiAyMjE0NjcpCisrKyBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTIxNyw3ICsyMTcsNyBAQCBwcml2YXRlOgogICAgICAgICB3ZWJraXRXZWJW
aWV3UnVuQXNNb2RhbChtX3dlYlZpZXcpOwogICAgIH0KIAotICAgIHZvaWQgaXNQbGF5aW5nTWVk
aWFEaWRDaGFuZ2UoV2ViUGFnZVByb3h5JiwgYm9vbCkgZmluYWwKKyAgICB2b2lkIGlzUGxheWlu
Z01lZGlhRGlkQ2hhbmdlKFdlYlBhZ2VQcm94eSYpIGZpbmFsCiAgICAgewogICAgICAgICB3ZWJr
aXRXZWJWaWV3SXNQbGF5aW5nQXVkaW9DaGFuZ2VkKG1fd2ViVmlldyk7CiAgICAgfQpJbmRleDog
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaAko
cmV2aXNpb24gMjIxNDY3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdl
Q2xpZW50SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw4ICsyNiw3IEBACiAgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBQYWdlQ2xpZW50SW1wbF9o
Ci0jZGVmaW5lIFBhZ2VDbGllbnRJbXBsX2gKKyNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRGVm
YXVsdFVuZG9Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiUGFnZUNsaWVudC5oIgpAQCAtMTM5LDYg
KzEzOCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZXJlZlZpZXcoKSBvdmVycmlkZTsKIAogICAg
IHZvaWQgZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkgb3ZlcnJpZGUgeyB9CisgICAgdm9pZCBp
c1BsYXlpbmdBdWRpb1dpbGxDaGFuZ2UoKSBmaW5hbCB7IH0KKyAgICB2b2lkIGlzUGxheWluZ0F1
ZGlvRGlkQ2hhbmdlKCkgZmluYWwgeyB9CiAKICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShHU1RS
RUFNRVIpCiAgICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2lu
c1Blcm1pc3Npb25SZXF1ZXN0KEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJl
cXVlc3QmKSBvdmVycmlkZTsKQEAgLTE1NCw1ICsxNTUsMyBAQCBwcml2YXRlOgogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBQYWdlQ2xpZW50SW1wbF9oCkluZGV4OiBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QYWdlQ2xpZW50SW1wbENvY29hLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BhZ2VDbGllbnRJbXBsQ29j
b2EubW0JKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGFn
ZUNsaWVudEltcGxDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ4IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJQYWdlQ2xpZW50SW1wbC5oIgor
CisjaW1wb3J0ICJQYWdlQ2xpZW50SW1wbElPUy5oIgorI2ltcG9ydCAiV0tXZWJWaWV3UHJpdmF0
ZS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6aXNQbGF5
aW5nQXVkaW9XaWxsQ2hhbmdlKCkKK3sKKyNpZiBXS19BUElfRU5BQkxFRAorICAgIFttX3dlYlZp
ZXcgd2lsbENoYW5nZVZhbHVlRm9yS2V5Ok5TU3RyaW5nRnJvbVNlbGVjdG9yKEBzZWxlY3Rvcihf
aXNQbGF5aW5nQXVkaW8pKV07CisjZW5kaWYKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6aXNQ
bGF5aW5nQXVkaW9EaWRDaGFuZ2UoKQoreworI2lmIFdLX0FQSV9FTkFCTEVECisgICAgW21fd2Vi
VmlldyBkaWRDaGFuZ2VWYWx1ZUZvcktleTpOU1N0cmluZ0Zyb21TZWxlY3RvcihAc2VsZWN0b3Io
X2lzUGxheWluZ0F1ZGlvKSldOworI2VuZGlmCit9CisgICAgCit9CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCShyZXZpc2lvbiAyMjE0NjcpCisrKyBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEwMCw3ICsxMDAsNiBAQCBwcml2YXRlOgogICAgICAgICB2b2lkIHRha2VGb2N1cyhXZWJQ
YWdlUHJveHkqLCBXS0ZvY3VzRGlyZWN0aW9uKSBmaW5hbDsKICAgICAgICAgdm9pZCBmb2N1cyhX
ZWJQYWdlUHJveHkqKSBmaW5hbDsKICAgICAgICAgdm9pZCB1bmZvY3VzKFdlYlBhZ2VQcm94eSop
IGZpbmFsOwotICAgICAgICB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYktpdDo6V2Vi
UGFnZVByb3h5JiwgYm9vbCkgZmluYWw7CiAgICAgICAgIHZvaWQgZGlkTm90SGFuZGxlV2hlZWxF
dmVudChXZWJQYWdlUHJveHkqLCBjb25zdCBOYXRpdmVXZWJXaGVlbEV2ZW50JikgZmluYWw7CiAg
ICAgICAgIHZvaWQgaGFuZGxlQXV0b3BsYXlFdmVudChXZWJQYWdlUHJveHkmLCBXZWJDb3JlOjpB
dXRvcGxheUV2ZW50LCBPcHRpb25TZXQ8V2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdzPikgZmlu
YWw7CiAgICAgICAgIHZvaWQgZGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbihXZWJQYWdlUHJveHkmLCBB
UEk6Ok9iamVjdCopIGZpbmFsOwpAQCAtMTUxLDcgKzE1MCw2IEBAIHByaXZhdGU6CiAgICAgICAg
IGJvb2wgdW5mb2N1c1dlYlZpZXcgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdUYWtlRm9jdXMg
OiAxOwogICAgICAgICBib29sIHdlYlZpZXdEaWROb3RIYW5kbGVXaGVlbEV2ZW50IDogMTsKLSAg
ICAgICAgYm9vbCB3ZWJWaWV3SXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UgOiAxOwogICAgICAgICBi
b29sIHdlYlZpZXdIYW5kbGVBdXRvcGxheUV2ZW50V2l0aEZsYWdzIDogMTsKICAgICAgICAgYm9v
bCB3ZWJWaWV3RGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbldpdGhVc2VySW5mbyA6IDE7CiAgICAgICAg
IGJvb2wgd2ViVmlld0RpZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJjZUxpbWl0V2hpbGVJbkZvcmVn
cm91bmQgOiAxOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0
ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVn
YXRlLm1tCShyZXZpc2lvbiAyMjE0NjcpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMDcsNyArMTA3LDYgQEAgdm9pZCBV
SURlbGVnYXRlOjpzZXREZWxlZ2F0ZShpZCA8V0tVSURlbAogICAgIG1fZGVsZWdhdGVNZXRob2Rz
LnVuZm9jdXNXZWJWaWV3ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Io
X3VuZm9jdXNXZWJWaWV3OildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdUYWtlRm9j
dXMgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzp0YWtl
Rm9jdXM6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZE5vdEhhbmRsZVdoZWVs
RXZlbnQgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpk
aWROb3RIYW5kbGVXaGVlbEV2ZW50OildOwotICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdJ
c1BsYXlpbmdNZWRpYURpZENoYW5nZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKF93ZWJWaWV3OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlOildOwogICAgIG1fZGVsZWdh
dGVNZXRob2RzLndlYlZpZXdIYW5kbGVBdXRvcGxheUV2ZW50V2l0aEZsYWdzID0gW2RlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6aGFuZGxlQXV0b3BsYXlFdmVu
dDp3aXRoRmxhZ3M6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZENsaWNrQXV0
b0ZpbGxCdXR0b25XaXRoVXNlckluZm8gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3Rvcihfd2ViVmlldzpkaWRDbGlja0F1dG9GaWxsQnV0dG9uV2l0aFVzZXJJbmZvOildOwog
ICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VM
aW1pdFdoaWxlSW5Gb3JlZ3JvdW5kID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3IoX3dlYlZpZXc6ZGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9y
ZWdyb3VuZDopXTsKQEAgLTQ2NiwxOCArNDY1LDYgQEAgdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVu
dDo6ZGlkTm90SGFuZGxlVwogICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRl
IF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcgZGlkTm90SGFuZGxlV2hlZWxFdmVudDpl
dmVudC5uYXRpdmVFdmVudCgpXTsKIH0KIAotdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6aXNQ
bGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBib29sIGlzUGxheWlu
ZykKLXsKLSAgICBpZiAoIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3SXNQ
bGF5aW5nTWVkaWFEaWRDaGFuZ2UpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBhdXRvIGRl
bGVnYXRlID0gbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCk7Ci0gICAgaWYgKCFkZWxlZ2F0
ZSkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+
KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcgaXNQbGF5aW5nTWVkaWFE
aWRDaGFuZ2U6aXNQbGF5aW5nXTsKLX0KLQogc3RhdGljIF9XS0F1dG9wbGF5RXZlbnRGbGFncyB0
b1dLQXV0b3BsYXlFdmVudEZsYWdzKE9wdGlvblNldDxXZWJDb3JlOjpBdXRvcGxheUV2ZW50Rmxh
Z3M+IGZsYWdzKQogewogICAgIF9XS0F1dG9wbGF5RXZlbnRGbGFncyB3a0ZsYWdzID0gX1dLQXV0
b3BsYXlFdmVudEZsYWdzTm9uZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCShyZXZpc2lvbiAyMjE0NjcpCisrKyBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAkod29ya2luZyBjb3B5KQpAQCAt
MTk0LDYgKzE5NCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZXJlZlZpZXcoKSBvdmVycmlkZTsK
IAogICAgIHZvaWQgZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkgb3ZlcnJpZGU7CisgICAgdm9p
ZCBpc1BsYXlpbmdBdWRpb1dpbGxDaGFuZ2UoKSBmaW5hbDsKKyAgICB2b2lkIGlzUGxheWluZ0F1
ZGlvRGlkQ2hhbmdlKCkgZmluYWw7CiAKICAgICBXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0
RGlyZWN0aW9uIHVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oKSBvdmVycmlkZTsKIApJbmRl
eDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmgJKHJldmlz
aW9uIDIyMTQ2NykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1w
bC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBQYWdlQ2xpZW50SW1wbF9oCi0jZGVmaW5l
IFBhZ2VDbGllbnRJbXBsX2gKKyNwcmFnbWEgb25jZQogCiAjaWYgUExBVEZPUk0oTUFDKQogCkBA
IC05MCw2ICs4OSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRDdXJzb3IoY29uc3QgV2ViQ29y
ZTo6Q3Vyc29yJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNl
TW92ZXMoYm9vbCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRp
ZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJikgb3ZlcnJpZGU7CisgICAgdm9p
ZCBpc1BsYXlpbmdBdWRpb1dpbGxDaGFuZ2UoKSBmaW5hbDsKKyAgICB2b2lkIGlzUGxheWluZ0F1
ZGlvRGlkQ2hhbmdlKCkgZmluYWw7CiAKICAgICB2b2lkIHJlZ2lzdGVyRWRpdENvbW1hbmQoUmVm
PFdlYkVkaXRDb21tYW5kUHJveHk+JiYsIFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbykgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBjbGVhckFsbEVkaXRDb21tYW5kcygpIG92ZXJyaWRlOwpAQCAtMjU4LDUg
KzI1OSwzIEBAIHByaXZhdGU6CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBM
QVRGT1JNKE1BQykKLQotI2VuZGlmIC8vIFBhZ2VDbGllbnRJbXBsX2gKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjIx
NDY3KQorKysgU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
d29ya2luZyBjb3B5KQpAQCAtMTE4Myw2ICsxMTgzLDcgQEAKIAkJNUMyMENCQTAxQkIxRUNEODAw
ODk1QkIxIC8qIE5ldHdvcmtTZXNzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1QzIwQ0I5RTFCQjBERDE4MDA4OTVCQjEgLyogTmV0d29ya1Nlc3Np
b24uaCAqLzsgfTsKIAkJNUMyOThEQTAxQzNERjAyMTAwNDcwQUZFIC8qIFBlbmRpbmdEb3dubG9h
ZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMyOThE
OUUxQzNERUYyOTAwNDcwQUZFIC8qIFBlbmRpbmdEb3dubG9hZC5oICovOyB9OwogCQk1QzYyRkRG
OTFFRkMyNzFDMDBDRTA3MkUgLyogV0tVUkxTY2hlbWVUYXNrUHJpdmF0ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM2MkZERjgxRUZDMjYzQzAwQ0Uw
NzJFIC8qIFdLVVJMU2NoZW1lVGFza1ByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1QzZDRTZEMTFGNTlCQzdBMDAwN0M2Q0IgLyogUGFn
ZUNsaWVudEltcGxDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDVDNkNFNkQwMUY1OUJDNDYwMDA3QzZDQiAvKiBQYWdlQ2xpZW50SW1wbENvY29h
Lm1tICovOyB9OwogCQk1Qzc3MDY3NDFEMTEzODM4MDAxMjcwMEYgLyogV2ViU29ja2V0UHJvdmlk
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM3
NzA2NzMxRDExMUQ4QjAwMTI3MDBGIC8qIFdlYlNvY2tldFByb3ZpZGVyLmNwcCAqLzsgfTsKIAkJ
NUM4NUM3ODgxQzNGMjNDRTAwNjFBNEZBIC8qIFBlbmRpbmdEb3dubG9hZC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Qzg1Qzc4NjFDM0YyM0M1MDA2
MUE0RkEgLyogUGVuZGluZ0Rvd25sb2FkLmNwcCAqLzsgfTsKIAkJNUM5RTU2ODIxREY3RjFBQjAw
QzlFRTMzIC8qIFdLV2Vic2l0ZVBvbGljaWVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDOUU1NjgwMURGN0YwNTUwMEM5RUUzMyAvKiBXS1dlYnNp
dGVQb2xpY2llcy5jcHAgKi87IH07CkBAIC0zNTA5LDYgKzM1MTAsNyBAQAogCQk1QzIwQ0I5RTFC
QjBERDE4MDA4OTVCQjEgLyogTmV0d29ya1Nlc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gTmV0d29ya1Nlc3Npb24uaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtTZXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDMjk4RDlFMUMzREVG
MjkwMDQ3MEFGRSAvKiBQZW5kaW5nRG93bmxvYWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gUGVuZGluZ0Rvd25sb2FkLmg7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9h
ZHMvUGVuZGluZ0Rvd25sb2FkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDNjJG
REY4MUVGQzI2M0MwMENFMDcyRSAvKiBXS1VSTFNjaGVtZVRhc2tQcml2YXRlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdLVVJMU2NoZW1lVGFza1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNUM2Q0U2RDAxRjU5QkM0NjAwMDdDNkNCIC8qIFBhZ2VDbGllbnRJbXBsQ29jb2EubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQYWdlQ2xpZW50SW1wbENv
Y29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Qzc3MDY3MzFEMTExRDhCMDAx
MjcwMEYgLyogV2ViU29ja2V0UHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gV2ViU29ja2V0UHJvdmlkZXIuY3BwOyBwYXRoID0gTmV0d29yay9XZWJTb2Nr
ZXRQcm92aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDN0M4OERDMUQw
RjQxQTAwMDlEMkY2RCAvKiBXZWJTb2NrZXRQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBXZWJTb2NrZXRQcm92aWRlci5oOyBwYXRoID0gTmV0d29yay9XZWJTb2Nr
ZXRQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Qzg1Qzc4NjFDM0Yy
M0M1MDA2MUE0RkEgLyogUGVuZGluZ0Rvd25sb2FkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFBlbmRpbmdEb3dubG9hZC5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vz
cy9Eb3dubG9hZHMvUGVuZGluZ0Rvd25sb2FkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTUyNzMsNiArNTI3NSw3IEBACiAJCQkJN0E4MjFGNEQxRTJGNjc5RTAwNjA0NTc3IC8q
IExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudC5tbSAqLywKIAkJCQkxQUJDM0RGNDE4
OTlFNDM3MDA0RjA2MjYgLyogTmF2aWdhdGlvblN0YXRlLmggKi8sCiAJCQkJMUFCQzNERjMxODk5
RTQzNzAwNEYwNjI2IC8qIE5hdmlnYXRpb25TdGF0ZS5tbSAqLywKKwkJCQk1QzZDRTZEMDFGNTlC
QzQ2MDAwN0M2Q0IgLyogUGFnZUNsaWVudEltcGxDb2NvYS5tbSAqLywKIAkJCQlDREEyOUExRTFD
QkVCNUZCMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5LmggKi8sCiAJCQkJ
Q0RBMjlBMjIxQ0JFQjYxQTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5t
ZXNzYWdlcy5pbiAqLywKIAkJCQlDREEyOUExRjFDQkVCNUZCMDA5MDFDQ0YgLyogUGxheWJhY2tT
ZXNzaW9uTWFuYWdlclByb3h5Lm1tICovLApAQCAtMTAyMDAsNiArMTAyMDMsNyBAQAogCQkJCTdD
Mzg3NDM0MTcyRjU2MTUwMDFCRDg4QSAvKiBQYWdlQmFubmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTdDNkQzN0ZDMTcyRjU1NUYwMDlEMjg0NyAvKiBQYWdlQmFubmVyTWFjLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEZDQjRFNjMxOEJCRTNEOTAwMEZDRkM5IC8qIFBhZ2VDbGllbnRJbXBsLm1t
IGluIFNvdXJjZXMgKi8sCisJCQkJNUM2Q0U2RDExRjU5QkM3QTAwMDdDNkNCIC8qIFBhZ2VDbGll
bnRJbXBsQ29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQkwRkNCNEU0NzE4QkJFMDQ0MDAwRkNG
QzkgLyogUGFnZUNsaWVudEltcGxJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQUM3NTM3QjE4
M0E5RkRCMDA3MkNCMTUgLyogUGFnZUxvYWRTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlD
NTc0QTU4MjEyRTY2NjgxMDAyREZFOTggLyogUGFzdGVib2FyZFR5cGVzLm1tIGluIFNvdXJjZXMg
Ki8sCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMjE0ODIpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxNSBAQAorMjAxNy0wOS0wMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgorCisgICAgICAgIFJlcGxhY2UgV0tVSURlbGVnYXRlUHJpdmF0ZSdzIGlz
UGxheWluZ01lZGlhRGlkQ2hhbmdlIHdpdGggS1ZPIF9pc1BsYXlpbmdBdWRpbyBvbiBXS1dlYlZp
ZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjIx
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoLVtB
dWRpb09ic2VydmVyIG9ic2VydmVWYWx1ZUZvcktleVBhdGg6b2ZPYmplY3Q6Y2hhbmdlOmNvbnRl
eHQ6XSk6CisgICAgICAgIChURVNUKToKKyAgICAgICAgKC1bTWVkaWFEZWxlZ2F0ZSBfd2ViVmll
dzppc1BsYXlpbmdNZWRpYURpZENoYW5nZTpdKTogRGVsZXRlZC4KKwogMjAxNy0wOC0zMSAgQ2Fy
bG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10g
SW1wcm92ZSB0aGUgd2F5IHVuaXQgdGVzdCBhcmUgcnVuIGFuZCB0aGUgcmVzdWx0cyByZXBvcnRl
ZApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9VSURlbGVnYXRl
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
VUlEZWxlZ2F0ZS5tbQkocmV2aXNpb24gMjIxNDY3KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9VSURlbGVnYXRlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNywyNCAr
MjcsNTUgQEAKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKLSNpZiBQTEFURk9STShNQUMpCi0KICNp
bXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKICNpbXBvcnQgIlV0aWxpdGllcy5oIgogI2ltcG9ydCAi
V0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5oIgotI2ltcG9ydCA8Q2FyYm9uL0NhcmJvbi5o
PgogI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJL
aXQvV0tVSURlbGVnYXRlUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZh
dGUuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworI2lmIFBMQVRGT1JNKE1BQykKKyNp
bXBvcnQgPENhcmJvbi9DYXJib24uaD4KICNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJp
bGl0eURlY2xhcmF0aW9ucy5oPgorI2VuZGlmCisKK3N0YXRpYyBib29sIGRvbmU7CisKK0BpbnRl
cmZhY2UgQXVkaW9PYnNlcnZlciA6IE5TT2JqZWN0CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBB
dWRpb09ic2VydmVyCisKKy0gKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDooTlNTdHJpbmcg
KilrZXlQYXRoIG9mT2JqZWN0OihpZClvYmplY3QgY2hhbmdlOihOU0RpY3Rpb25hcnk8TlNTdHJp
bmcgKiwgaWQ+ICopY2hhbmdlIGNvbnRleHQ6KHZvaWQgKiljb250ZXh0Cit7CisgICAgRVhQRUNU
X1RSVUUoW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOk5TU3RyaW5nRnJvbVNlbGVjdG9yKEBzZWxl
Y3RvcihfaXNQbGF5aW5nQXVkaW8pKV0pOworICAgIEVYUEVDVF9UUlVFKFtbb2JqZWN0IGNsYXNz
XSBpc0VxdWFsOltUZXN0V0tXZWJWaWV3IGNsYXNzXV0pOworICAgIEVYUEVDVF9GQUxTRShbW2No
YW5nZSBvYmplY3RGb3JLZXk6TlNLZXlWYWx1ZUNoYW5nZU9sZEtleV0gYm9vbFZhbHVlXSk7Cisg
ICAgRVhQRUNUX1RSVUUoW1tjaGFuZ2Ugb2JqZWN0Rm9yS2V5Ok5TS2V5VmFsdWVDaGFuZ2VOZXdL
ZXldIGJvb2xWYWx1ZV0pOworICAgIEVYUEVDVF9UUlVFKGNvbnRleHQgPT0gbnVsbHB0cik7Cisg
ICAgZG9uZSA9IHRydWU7Cit9CisKK0BlbmQKKworVEVTVChXZWJLaXQyLCBXS1dlYlZpZXdJc1Bs
YXlpbmdBdWRpbykKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAwKSBjb25maWd1
cmF0aW9uOltbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNl
XV0pOworICAgIGF1dG8gb2JzZXJ2ZXIgPSBhZG9wdE5TKFtbQXVkaW9PYnNlcnZlciBhbGxvY10g
aW5pdF0pOworICAgIFt3ZWJWaWV3IGFkZE9ic2VydmVyOm9ic2VydmVyLmdldCgpIGZvcktleVBh
dGg6QCJfaXNQbGF5aW5nQXVkaW8iIG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbk5l
dyB8IE5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25PbGQgY29udGV4dDpuaWxdOworICAgIFt3ZWJW
aWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpAImZpbGUtd2l0aC12aWRlbyJdOwor
ICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInBsYXlWaWRlbygpIiBjb21wbGV0aW9u
SGFuZGxlcjpuaWxdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Cit9CisK
KyNpZiBQTEFURk9STShNQUMpCiAKIEBjbGFzcyBVSVRlc3REZWxlZ2F0ZTsKIAogc3RhdGljIFJl
dGFpblB0cjxXS1dlYlZpZXc+IHdlYlZpZXdGcm9tRGVsZWdhdGVDYWxsYmFjazsKIHN0YXRpYyBS
ZXRhaW5QdHI8V0tXZWJWaWV3PiBjcmVhdGVkV2ViVmlldzsKIHN0YXRpYyBSZXRhaW5QdHI8VUlU
ZXN0RGVsZWdhdGU+IGRlbGVnYXRlOwotc3RhdGljIGJvb2wgZG9uZTsKIAogQGludGVyZmFjZSBV
SVRlc3REZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS1VJRGVsZWdhdGVQcml2YXRlLCBXS1VSTFNjaGVt
ZUhhbmRsZXI+CiBAZW5kCkBAIC05MSwyOSArMTIyLDYgQEAgVEVTVChXZWJLaXQyLCBTaG93V2Vi
VmlldykKICAgICBBU1NFUlRfRVEod2ViVmlld0Zyb21EZWxlZ2F0ZUNhbGxiYWNrLCBjcmVhdGVk
V2ViVmlldyk7CiB9CiAKLUBpbnRlcmZhY2UgTWVkaWFEZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS1VJ
RGVsZWdhdGVQcml2YXRlPgotQGVuZAotCi1AaW1wbGVtZW50YXRpb24gTWVkaWFEZWxlZ2F0ZQot
Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGlzUGxheWluZ01lZGlhRGlk
Q2hhbmdlOihCT09MKXBsYXlpbmdNZWRpYQotewotICAgIEFTU0VSVF9UUlVFKHBsYXlpbmdNZWRp
YSk7Ci0gICAgZG9uZSA9IHRydWU7Ci19Ci0KLUBlbmQKLQotVEVTVChXZWJLaXQyLCBXS1dlYlZp
ZXdJc1BsYXlpbmdNZWRpYSkKLXsKLSAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAwKSBj
b25maWd1cmF0aW9uOltbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdIGF1dG9y
ZWxlYXNlXV0pOwotICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbTWVkaWFEZWxlZ2F0ZSBh
bGxvY10gaW5pdF0pOwotICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCld
OwotICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpAImZpbGUtd2l0
aC12aWRlbyJdOwotICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInBsYXlWaWRlbygp
IiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZG9uZSk7Ci19Ci0KIHN0YXRpYyBib29sIHJlYWR5Rm9yQ2xpY2s7CiAKIEBpbnRlcmZhY2UgQXV0
b0ZpbGxEZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS1VJRGVsZWdhdGVQcml2YXRlPgo=
</data>
<flag name="review"
          id="339866"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>