<?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>176642</bug_id>
          
          <creation_ts>2017-09-08 17:52:55 -0700</creation_ts>
          <short_desc>Add WKUIDelegatePrivate equivalent of WKPageUIClient&apos;s decidePolicyForGeolocationPermissionRequest</short_desc>
          <delta_ts>2017-09-27 12:33:34 -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>darin</cc>
    
    <cc>gustavo</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1347022</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-09-08 17:52:55 -0700</bug_when>
    <thetext>Add WKUIDelegatePrivate equivalent of WKPageUIClient&apos;s decidePolicyForGeolocationPermissionRequest</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347023</commentid>
    <comment_count>1</comment_count>
      <attachid>320321</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-09-08 17:54:15 -0700</bug_when>
    <thetext>Created attachment 320321
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347156</commentid>
    <comment_count>2</comment_count>
      <attachid>320358</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-09-09 14:31:56 -0700</bug_when>
    <thetext>Created attachment 320358
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347290</commentid>
    <comment_count>3</comment_count>
      <attachid>320358</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-09-10 14:54:57 -0700</bug_when>
    <thetext>Comment on attachment 320358
Patch

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

&gt; Source/WebKit/UIProcess/Cocoa/UIDelegate.mm:337
&gt; +Function&lt;void(bool)&gt; UIDelegate::UIClient::decidePolicyForGeolocationPermissionRequest(WebKit::WebPageProxy&amp;, WebKit::WebFrameProxy&amp; frame, API::SecurityOrigin&amp; securityOrigin, Function&lt;void(bool)&gt;&amp;&amp; completionHandler)

As I mentioned in the other patch, I see no reason for the return value. We pass in a reference to a completion handler, and we null it out / move it out if we call it, so no need to also move it into a return value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347522</commentid>
    <comment_count>4</comment_count>
      <attachid>320451</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-09-11 11:54:37 -0700</bug_when>
    <thetext>Created attachment 320451
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347524</commentid>
    <comment_count>5</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-11 11:55:34 -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>1347576</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-09-11 13:45:40 -0700</bug_when>
    <thetext>http://trac.webkit.org/r221873</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353472</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-27 12:33:34 -0700</bug_when>
    <thetext>&lt;rdar://problem/34693485&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320321</attachid>
            <date>2017-09-08 17:54:15 -0700</date>
            <delta_ts>2017-09-09 14:31:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176642-20170908175414.patch</filename>
            <type>text/plain</type>
            <size>14413</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjE3NzcpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE3LTA5LTA4ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIFdLVUlEZWxl
Z2F0ZVByaXZhdGUgZXF1aXZhbGVudCBvZiBXS1BhZ2VVSUNsaWVudCdzIGRlY2lkZVBvbGljeUZv
ckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjY0MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjky
NzAwMzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9V
SURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpzZXREZWxlZ2F0ZSk6
CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJv
bXB0KToKKyAgICAgICAgKFdlYktpdDo6RnVuY3Rpb248dm9pZCk6CisKIDIwMTctMDktMDcgIEFu
ZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIFVwc3RyZWFtIFFU
S2l0LXJlbGF0ZWQgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucwpJbmRleDogU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJp
dmF0ZS5oCShyZXZpc2lvbiAyMjE3NjkpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDUsNiArMTA1
LDcgQEAgc3RydWN0IFVJRWRnZUluc2V0czsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6KF9XS01lZGlhQ2FwdHVyZVN0YXRl
KXN0YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOwogLSAoV0tEcmFnRGVzdGluYXRpb25BY3Rpb24pX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTWFza0ZvckRyYWdnaW5nSW5mbzooaWQpZHJhZ2dp
bmdJbmZvIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjcmVhdGVXZWJWaWV3
V2l0aENvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9u
IGZvck5hdmlnYXRpb25BY3Rpb246KFdLTmF2aWdhdGlvbkFjdGlvbiAqKW5hdmlnYXRpb25BY3Rp
b24gd2luZG93RmVhdHVyZXM6KFdLV2luZG93RmVhdHVyZXMgKil3aW5kb3dGZWF0dXJlcyBjb21w
bGV0aW9uSGFuZGxlcjoodm9pZCAoXikoV0tXZWJWaWV3ICp3ZWJWaWV3KSljb21wbGV0aW9uSGFu
ZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdEdlb2xvY2F0
aW9uUGVybWlzc2lvbkZvckZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGRlY2lzaW9uSGFuZGxl
cjoodm9pZCAoXikoQk9PTCBhbGxvd2VkKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsV2l0aE1l
c3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBpbml0aWF0ZWRCeUZyYW1lOihXS0ZyYW1lSW5mbyAq
KWZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShCT09MIHJlc3VsdCkpY29tcGxldGlv
bkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGVkaXRvclN0YXRl
RGlkQ2hhbmdlOihOU0RpY3Rpb25hcnkgKillZGl0b3JTdGF0ZSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgJKHJldmlzaW9uIDIyMTc3MSkKKysrIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAkod29ya2luZyBjb3B5KQpAQCAt
ODYsNyArODYsOCBAQCBwcml2YXRlOgogICAgICAgICB2b2lkIGRpZEV4aXRGdWxsc2NyZWVuKFdl
YlBhZ2VQcm94eSopIGZpbmFsOwogICAgICAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXZWJQ
YWdlUHJveHkqLCBjb25zdCBXVEY6OlN0cmluZyYsIFdlYkZyYW1lUHJveHkqLCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpIGZpbmFsOwogICAgICAgICB2b2lkIHJ1bkphdmFTY3JpcHRDb25maXJtKFdlYlBhZ2VQ
cm94eSosIGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViRnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpIGZpbmFsOwotICAgICAgICB2b2lkIHJ1bkphdmFTY3JpcHRQcm9tcHQoV2ViUGFnZVBy
b3h5KiwgY29uc3QgV1RGOjpTdHJpbmcmLCBjb25zdCBXVEY6OlN0cmluZyYsIFdlYkZyYW1lUHJv
eHkqLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBGdW5jdGlvbjx2b2lkKGNv
bnN0IFdURjo6U3RyaW5nJik+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsOworICAgICAgICB2
b2lkIHJ1bkphdmFTY3JpcHRQcm9tcHQoV2ViUGFnZVByb3h5KiwgY29uc3QgV1RGOjpTdHJpbmcm
LCBjb25zdCBXVEY6OlN0cmluZyYsIFdlYkZyYW1lUHJveHkqLCBjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmLCBGdW5jdGlvbjx2b2lkKGNvbnN0IFdURjo6U3RyaW5nJik+JiYpIGZp
bmFsOworICAgICAgICBGdW5jdGlvbjx2b2lkKGJvb2wpPiBkZWNpZGVQb2xpY3lGb3JHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmLCBBUEk6
OlNlY3VyaXR5T3JpZ2luJiwgRnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikgZmluYWw7CiAgICAgICAgIGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCkg
Y29uc3QgZmluYWw7CiAgICAgICAgIHZvaWQgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKFdl
YlBhZ2VQcm94eSosIGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViRnJhbWVQcm94eSosIGNvbnN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpIGZpbmFsOwogICAgICAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShX
ZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgQVBJOjpTZWN1cml0eU9yaWdpbiosIGNvbnN0
IFdURjo6U3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFdURjo6U3RyaW5nJiBkaXNwbGF5TmFt
ZSwgdW5zaWduZWQgbG9uZyBsb25nIGN1cnJlbnRRdW90YSwgdW5zaWduZWQgbG9uZyBsb25nIGN1
cnJlbnRPcmlnaW5Vc2FnZSwgdW5zaWduZWQgbG9uZyBsb25nIGN1cnJlbnRVc2FnZSwgdW5zaWdu
ZWQgbG9uZyBsb25nIGV4cGVjdGVkVXNhZ2UsIEZ1bmN0aW9uPHZvaWQodW5zaWduZWQgbG9uZyBs
b25nKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWw7CkBAIC05OSwxMCArMTAwLDEwIEBAIHBy
aXZhdGU6CiAgICAgICAgIHZvaWQgcGFnZURpZFNjcm9sbChXZWJQYWdlUHJveHkqKSBmaW5hbDsK
ICAgICAgICAgdm9pZCBkaWROb3RIYW5kbGVXaGVlbEV2ZW50KFdlYlBhZ2VQcm94eSosIGNvbnN0
IE5hdGl2ZVdlYldoZWVsRXZlbnQmKSBmaW5hbDsKICAgICAgICAgdm9pZCBoYW5kbGVBdXRvcGxh
eUV2ZW50KFdlYlBhZ2VQcm94eSYsIFdlYkNvcmU6OkF1dG9wbGF5RXZlbnQsIE9wdGlvblNldDxX
ZWJDb3JlOjpBdXRvcGxheUV2ZW50RmxhZ3M+KSBmaW5hbDsKLSAgICAgICAgdm9pZCB1bmF2YWls
YWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXS1BsdWdpblVu
YXZhaWxhYmlsaXR5UmVhc29uLCBBUEk6OkRpY3Rpb25hcnkmKSBmaW5hbDsKKyAgICAgICAgdm9p
ZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoV2ViUGFnZVByb3h5JiwgV0tQbHVnaW5V
bmF2YWlsYWJpbGl0eVJlYXNvbiwgQVBJOjpEaWN0aW9uYXJ5JikgZmluYWw7CiAgICAgICAgIHZv
aWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoV2ViUGFnZVByb3h5JiwgY29uc3QgV2ViSGl0VGVz
dFJlc3VsdERhdGEmLCBXZWJFdmVudDo6TW9kaWZpZXJzLCBBUEk6Ok9iamVjdCopOwogICAgICAg
ICB2b2lkIGRpZENsaWNrQXV0b0ZpbGxCdXR0b24oV2ViUGFnZVByb3h5JiwgQVBJOjpPYmplY3Qq
KSBmaW5hbDsKLSAgICAgICAgdm9pZCB0b29sYmFyc0FyZVZpc2libGUoV2ViS2l0OjpXZWJQYWdl
UHJveHkmLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKKyAgICAgICAgdm9pZCB0b29s
YmFyc0FyZVZpc2libGUoV2ViUGFnZVByb3h5JiwgRnVuY3Rpb248dm9pZChib29sKT4mJikgZmlu
YWw7CiAgICAgICAgIGJvb2wgcnVuT3BlblBhbmVsKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJv
eHkqLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBBUEk6Ok9wZW5QYW5lbFBh
cmFtZXRlcnMqLCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5KikgZmluYWw7CiAgICAg
ICAgIHZvaWQgZGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3Vu
ZChXZWJQYWdlUHJveHkmLCBXS1Jlc291cmNlTGltaXQpIGZpbmFsOwogICAgICAgICB2b2lkIHNh
dmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXIoV2ViUGFnZVByb3h5KiwgY29uc3QgV1RGOjpT
dHJpbmcmLCBjb25zdCBXVEY6OlN0cmluZyYsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIEFQSTo6RGF0
YSYpIGZpbmFsOwpAQCAtMTQ0LDYgKzE0NSw3IEBAIHByaXZhdGU6CiAgICAgICAgIGJvb2wgd2Vi
Vmlld1J1bkphdmFTY3JpcHRDb25maXJtUGFuZWxXaXRoTWVzc2FnZUluaXRpYXRlZEJ5RnJhbWVD
b21wbGV0aW9uSGFuZGxlciA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld1J1bkphdmFTY3JpcHRU
ZXh0SW5wdXRQYW5lbFdpdGhQcm9tcHREZWZhdWx0VGV4dEluaXRpYXRlZEJ5RnJhbWVDb21wbGV0
aW9uSGFuZGxlciA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld1J1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbFdpdGhNZXNzYWdlSW5pdGlhdGVkQnlGcmFtZUNvbXBsZXRpb25IYW5kbGVyIDogMTsK
KyAgICAgICAgYm9vbCB3ZWJWaWV3UmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1l
RGVjaXNpb25IYW5kbGVyIDogMTsKICNpZiBQTEFURk9STShNQUMpCiAgICAgICAgIGJvb2wgc2hv
d1dlYlZpZXcgOiAxOwogICAgICAgICBib29sIGZvY3VzV2ViVmlldyA6IDE7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0JKHJldmlzaW9uIDIyMTc3
MSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0JKHdvcmtp
bmcgY29weSkKQEAgLTEwMyw2ICsxMDMsNyBAQCB2b2lkIFVJRGVsZWdhdGU6OnNldERlbGVnYXRl
KGlkIDxXS1VJRGVsCiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1J1bkphdmFTY3JpcHRD
b25maXJtUGFuZWxXaXRoTWVzc2FnZUluaXRpYXRlZEJ5RnJhbWVDb21wbGV0aW9uSGFuZGxlciA9
IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlZpZXc6cnVuSmF2YVNj
cmlwdENvbmZpcm1QYW5lbFdpdGhNZXNzYWdlOmluaXRpYXRlZEJ5RnJhbWU6Y29tcGxldGlvbkhh
bmRsZXI6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1J1bkphdmFTY3JpcHRUZXh0
SW5wdXRQYW5lbFdpdGhQcm9tcHREZWZhdWx0VGV4dEluaXRpYXRlZEJ5RnJhbWVDb21wbGV0aW9u
SGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlZpZXc6
cnVuSmF2YVNjcmlwdFRleHRJbnB1dFBhbmVsV2l0aFByb21wdDpkZWZhdWx0VGV4dDppbml0aWF0
ZWRCeUZyYW1lOmNvbXBsZXRpb25IYW5kbGVyOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndl
YlZpZXdSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxXaXRoTWVzc2FnZUluaXRpYXRlZEJ5RnJh
bWVDb21wbGV0aW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKF93ZWJWaWV3OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbFdpdGhNZXNzYWdlOmluaXRp
YXRlZEJ5RnJhbWU6Y29tcGxldGlvbkhhbmRsZXI6KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMu
d2ViVmlld1JlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZURlY2lzaW9uSGFuZGxl
ciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnJlcXVl
c3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZTpkZWNpc2lvbkhhbmRsZXI6KV07CiAKICNp
ZiBQTEFURk9STShNQUMpCiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMuc2hvd1dlYlZpZXcgPSBbZGVs
ZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfc2hvd1dlYlZpZXc6KV07CkBAIC0y
OTMsNyArMjk0LDcgQEAgdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6cnVuSmF2YVNjcmlwdAog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgUmVmUHRyPENvbXBsZXRpb25IYW5kbGVyQ2Fs
bENoZWNrZXI+IGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUo
ZGVsZWdhdGUuZ2V0KCksIEBzZWxlY3Rvcih3ZWJWaWV3OnJ1bkphdmFTY3JpcHRUZXh0SW5wdXRQ
YW5lbFdpdGhQcm9tcHQ6ZGVmYXVsdFRleHQ6aW5pdGlhdGVkQnlGcmFtZTpjb21wbGV0aW9uSGFu
ZGxlcjopKTsKKyAgICBhdXRvIGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2Vy
OjpjcmVhdGUoZGVsZWdhdGUuZ2V0KCksIEBzZWxlY3Rvcih3ZWJWaWV3OnJ1bkphdmFTY3JpcHRU
ZXh0SW5wdXRQYW5lbFdpdGhQcm9tcHQ6ZGVmYXVsdFRleHQ6aW5pdGlhdGVkQnlGcmFtZTpjb21w
bGV0aW9uSGFuZGxlcjopKTsKICAgICBbZGVsZWdhdGUgd2ViVmlldzptX3VpRGVsZWdhdGUubV93
ZWJWaWV3IHJ1bkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbFdpdGhQcm9tcHQ6bWVzc2FnZSBkZWZh
dWx0VGV4dDpkZWZhdWx0VmFsdWUgaW5pdGlhdGVkQnlGcmFtZTp3cmFwcGVyKEFQSTo6RnJhbWVJ
bmZvOjpjcmVhdGUoKndlYkZyYW1lUHJveHksIHNlY3VyaXR5T3JpZ2luRGF0YS5zZWN1cml0eU9y
aWdpbigpKSkgY29tcGxldGlvbkhhbmRsZXI6QmxvY2tQdHI8dm9pZCAoTlNTdHJpbmcgKik+Ojpm
cm9tQ2FsbGFibGUoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
ciksIGNoZWNrZXIgPSBXVEZNb3ZlKGNoZWNrZXIpXShOU1N0cmluZyAqcmVzdWx0KSB7CiAgICAg
ICAgIGlmIChjaGVja2VyLT5jb21wbGV0aW9uSGFuZGxlckhhc0JlZW5DYWxsZWQoKSkKICAgICAg
ICAgICAgIHJldHVybjsKQEAgLTMwMiw2ICszMDMsMjUgQEAgdm9pZCBVSURlbGVnYXRlOjpVSUNs
aWVudDo6cnVuSmF2YVNjcmlwdAogICAgIH0pLmdldCgpXTsKIH0KIAorRnVuY3Rpb248dm9pZChi
b29sKT4gVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJv
eHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiBzZWN1cml0eU9yaWdpbiwgRnVuY3Rpb248
dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIW1fdWlEZWxlZ2F0
ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZv
ckZyYW1lRGVjaXNpb25IYW5kbGVyKQorICAgICAgICByZXR1cm4gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcik7CisgICAgCisgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVn
YXRlLmdldCgpOworICAgIGlmICghZGVsZWdhdGUpCisgICAgICAgIHJldHVybiBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKTsKKworICAgIGF1dG8gY2hlY2tlciA9IENvbXBsZXRpb25IYW5kbGVy
Q2FsbENoZWNrZXI6OmNyZWF0ZShkZWxlZ2F0ZS5nZXQoKSwgQHNlbGVjdG9yKF93ZWJWaWV3OnJl
cXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZTpkZWNpc2lvbkhhbmRsZXI6KSk7Cisg
ICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6bV91aURlbGVn
YXRlLm1fd2ViVmlldyByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWU6d3JhcHBl
cihBUEk6OkZyYW1lSW5mbzo6Y3JlYXRlKGZyYW1lLCBzZWN1cml0eU9yaWdpbi5zZWN1cml0eU9y
aWdpbigpKSkgZGVjaXNpb25IYW5kbGVyOkJsb2NrUHRyPHZvaWQoQk9PTCk+Ojpmcm9tQ2FsbGFi
bGUoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGNoZWNr
ZXIgPSBXVEZNb3ZlKGNoZWNrZXIpXShCT09MIHJlc3VsdCkgeworICAgICAgICBpZiAoY2hlY2tl
ci0+Y29tcGxldGlvbkhhbmRsZXJIYXNCZWVuQ2FsbGVkKCkpCisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIGNoZWNrZXItPmRpZENhbGxDb21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihyZXN1bHQpOworICAgIH0pLmdldCgpXTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKwogYm9vbCBVSURlbGVnYXRlOjpVSUNsaWVudDo6Y2FuUnVuQmVmb3JlVW5sb2Fk
Q29uZmlybVBhbmVsKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV91aURlbGVnYXRlLm1fZGVsZWdh
dGVNZXRob2RzLndlYlZpZXdSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxXaXRoTWVzc2FnZUlu
aXRpYXRlZEJ5RnJhbWVDb21wbGV0aW9uSGFuZGxlcjsKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMTgwNCkKKysrIFRvb2xz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE3LTA5LTA4ICBB
bGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRk
IFdLVUlEZWxlZ2F0ZVByaXZhdGUgZXF1aXZhbGVudCBvZiBXS1BhZ2VVSUNsaWVudCdzIGRlY2lk
ZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjY0MgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMjkyNzAwMzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VJRGVsZWdhdGUubW06
CisgICAgICAgICgtW0dlb2xvY2F0aW9uRGVsZWdhdGUgaW5pdFdpdGhBbGxvd0dlb2xvY2F0aW9u
Ol0pOgorICAgICAgICAoLVtHZW9sb2NhdGlvbkRlbGVnYXRlIF93ZWJWaWV3OnJlcXVlc3RHZW9s
b2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZTpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgICgt
W0dlb2xvY2F0aW9uRGVsZWdhdGUgd2ViVmlldzpydW5KYXZhU2NyaXB0QWxlcnRQYW5lbFdpdGhN
ZXNzYWdlOmluaXRpYXRlZEJ5RnJhbWU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgIChU
RVNUKToKKwogMjAxNy0wOS0wOCAgTHVjYXMgRm9yc2NobGVyICA8bGZvcnNjaGxlckBhcHBsZS5j
b20+CiAKICAgICAgICAgYmlzZWN0LWJ1aWxkcyBkb2Vzbid0IHdvcmsgZHVlIHRvIG1pc3Npbmcg
cmVxdWVzdHMgbW9kdWxlCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1VJRGVsZWdhdGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9VSURlbGVnYXRlLm1tCShyZXZpc2lvbiAyMjE3NjkpCisrKyBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VJRGVsZWdhdGUubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKKyNpbXBvcnQgIlBs
YXRmb3JtVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCiAjaW1wb3J0ICJV
dGlsaXRpZXMuaCIKICNpbXBvcnQgIldLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMuaCIKQEAg
LTcyLDYgKzczLDc5IEBAIFRFU1QoV2ViS2l0LCBXS1dlYlZpZXdJc1BsYXlpbmdBdWRpbykKICAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwogfQogCitAaW50ZXJmYWNlIEdlb2xv
Y2F0aW9uRGVsZWdhdGUgOiBOU09iamVjdCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4geworICAgIGJv
b2wgX2FsbG93R2VvbG9jYXRpb247Cit9CisKKy0gKGlkKWluaXRXaXRoQWxsb3dHZW9sb2NhdGlv
bjooYm9vbClhbGxvd0dlb2xvY2F0aW9uOworCitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBHZW9s
b2NhdGlvbkRlbGVnYXRlCisKKy0gKGlkKWluaXRXaXRoQWxsb3dHZW9sb2NhdGlvbjooYm9vbClh
bGxvd0dlb2xvY2F0aW9uCit7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisgICAg
ICAgIHJldHVybiBuaWw7CisgICAgX2FsbG93R2VvbG9jYXRpb24gPSBhbGxvd0dlb2xvY2F0aW9u
OworICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZTooV0tGcmFtZUluZm8g
KilmcmFtZSBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYWxsb3dlZCkpZGVjaXNpb25I
YW5kbGVyCit7CisgICAgRVhQRUNUX1RSVUUoZnJhbWUuaXNNYWluRnJhbWUpOworICAgIEVYUEVD
VF9TVFJFUShmcmFtZS5yZXF1ZXN0LlVSTC5hYnNvbHV0ZVN0cmluZy5VVEY4U3RyaW5nLCBfYWxs
b3dHZW9sb2NhdGlvbiA/ICJodHRwczovL2V4YW1wbGUub3JnLyIgOiAiaHR0cHM6Ly9leGFtcGxl
LmNvbS8iKTsKKyAgICBFWFBFQ1RfRVEoZnJhbWUuc2VjdXJpdHlPcmlnaW4ucG9ydCwgMCk7Cisg
ICAgRVhQRUNUX1NUUkVRKGZyYW1lLnNlY3VyaXR5T3JpZ2luLnByb3RvY29sLlVURjhTdHJpbmcs
ICJodHRwcyIpOworICAgIEVYUEVDVF9TVFJFUShmcmFtZS5zZWN1cml0eU9yaWdpbi5ob3N0LlVU
RjhTdHJpbmcsIF9hbGxvd0dlb2xvY2F0aW9uID8gImV4YW1wbGUub3JnIiA6ICJleGFtcGxlLmNv
bSIpOworICAgIGRlY2lzaW9uSGFuZGxlcihfYWxsb3dHZW9sb2NhdGlvbik7Cit9CisKKy0gKHZv
aWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBydW5KYXZhU2NyaXB0QWxlcnRQYW5lbFdp
dGhNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgaW5pdGlhdGVkQnlGcmFtZTooV0tGcmFtZUlu
Zm8gKilmcmFtZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhh
bmRsZXIKK3sKKyAgICBpZiAoX2FsbG93R2VvbG9jYXRpb24pCisgICAgICAgIEVYUEVDVF9TVFJF
UShtZXNzYWdlLlVURjhTdHJpbmcsICJwb3NpdGlvbiA1MC42NDQzNTggMy4zNDU0NTMiKTsKKyAg
ICBlbHNlCisgICAgICAgIEVYUEVDVF9TVFJFUShtZXNzYWdlLlVURjhTdHJpbmcsICJlcnJvciAx
IFVzZXIgZGVuaWVkIEdlb2xvY2F0aW9uIik7CisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAg
ICBkb25lID0gdHJ1ZTsKK30KKworQGVuZAorCitURVNUKFdlYktpdCwgR2VvbG9jYXRpb25QZXJt
aXNzaW9uKQoreworICAgIE5TU3RyaW5nICpodG1sID0gQCI8c2NyaXB0Pm5hdmlnYXRvci5nZW9s
b2NhdGlvbi53YXRjaFBvc2l0aW9uKCIKKyAgICAgICAgImZ1bmN0aW9uKHApIHsgYWxlcnQoJ3Bv
c2l0aW9uICcgKyBwLmNvb3Jkcy5sYXRpdHVkZSArICcgJyArIHAuY29vcmRzLmxvbmdpdHVkZSkg
fSwiCisgICAgICAgICJmdW5jdGlvbihlKSB7IGFsZXJ0KCdlcnJvciAnICsgZS5jb2RlICsgJyAn
ICsgZS5tZXNzYWdlKSB9KSIKKyAgICAiPC9zY3JpcHQ+IjsKKworICAgIGF1dG8gcG9vbCA9IGFk
b3B0TlMoW1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBpbml0XSk7CisgICAgCisgICAgV0tHZW9sb2Nh
dGlvblByb3ZpZGVyVjEgcHJvdmlkZXJDYWxsYmFjazsKKyAgICBtZW1zZXQoJnByb3ZpZGVyQ2Fs
bGJhY2ssIDAsIHNpemVvZihXS0dlb2xvY2F0aW9uUHJvdmlkZXJWMSkpOworICAgIHByb3ZpZGVy
Q2FsbGJhY2suYmFzZS52ZXJzaW9uID0gMTsKKyAgICBwcm92aWRlckNhbGxiYWNrLnN0YXJ0VXBk
YXRpbmcgPSBbXSAoV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgbWFuYWdlciwgY29uc3Qgdm9pZCop
IHsKKyAgICAgICAgV0tHZW9sb2NhdGlvbk1hbmFnZXJQcm92aWRlckRpZENoYW5nZVBvc2l0aW9u
KG1hbmFnZXIsIGFkb3B0V0soV0tHZW9sb2NhdGlvblBvc2l0aW9uQ3JlYXRlKDAsIDUwLjY0NDM1
OCwgMy4zNDU0NTMsIDIuNTMpKS5nZXQoKSk7CisgICAgfTsKKyAgICBXS0dlb2xvY2F0aW9uTWFu
YWdlclNldFByb3ZpZGVyKFdLQ29udGV4dEdldEdlb2xvY2F0aW9uTWFuYWdlcigoV0tDb250ZXh0
UmVmKXBvb2wuZ2V0KCkpLCAmcHJvdmlkZXJDYWxsYmFjay5iYXNlKTsKKworICAgIGF1dG8gY29u
ZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0
XSk7CisgICAgY29uZmlndXJhdGlvbi5nZXQoKS5wcm9jZXNzUG9vbCA9IHBvb2wuZ2V0KCk7Cisg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0
aW9uLmdldCgpXSk7CisgICAgYXV0byBkZWxlZ2F0ZTEgPSBhZG9wdE5TKFtbR2VvbG9jYXRpb25E
ZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhBbGxvd0dlb2xvY2F0aW9uOmZhbHNlXSk7CisgICAgW3dl
YlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZTEuZ2V0KCldOworICAgIFt3ZWJWaWV3IGxvYWRI
VE1MU3RyaW5nOmh0bWwgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHBzOi8vZXhh
bXBsZS5jb20vIl1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAg
ICBkb25lID0gZmFsc2U7CisgICAgYXV0byBkZWxlZ2F0ZTIgPSBhZG9wdE5TKFtbR2VvbG9jYXRp
b25EZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhBbGxvd0dlb2xvY2F0aW9uOnRydWVdKTsKKyAgICBb
d2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlMi5nZXQoKV07CisgICAgW3dlYlZpZXcgbG9h
ZEhUTUxTdHJpbmc6aHRtbCBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cHM6Ly9l
eGFtcGxlLm9yZy8iXV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKK30K
KworCiAjaWYgUExBVEZPUk0oTUFDKQogCiBAY2xhc3MgVUlUZXN0RGVsZWdhdGU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320358</attachid>
            <date>2017-09-09 14:31:56 -0700</date>
            <delta_ts>2017-09-11 11:54:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176642-20170909143156.patch</filename>
            <type>text/plain</type>
            <size>14660</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjE4MjcpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE3LTA5LTA5ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIFdLVUlEZWxl
Z2F0ZVByaXZhdGUgZXF1aXZhbGVudCBvZiBXS1BhZ2VVSUNsaWVudCdzIGRlY2lkZVBvbGljeUZv
ckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjY0MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjky
NzAwMzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9V
SURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpzZXREZWxlZ2F0ZSk6
CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJv
bXB0KToKKyAgICAgICAgKFdlYktpdDo6RnVuY3Rpb248dm9pZCk6CisKIDIwMTctMDktMDkgIE1h
cmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEF2b2lkIGR1cGxpY2F0ZSBj
b21wdXRhdGlvbnMgb2YgRXhlY1N0YXRlOjp2bSgpLgpJbmRleDogU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCShyZXZp
c2lvbiAyMjE4MjcpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURl
bGVnYXRlUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDUsNiArMTA1LDcgQEAgc3RydWN0
IFVJRWRnZUluc2V0czsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgbWVk
aWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6KF9XS01lZGlhQ2FwdHVyZVN0YXRlKXN0YXRlIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogLSAoV0tE
cmFnRGVzdGluYXRpb25BY3Rpb24pX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZHJhZ0Rl
c3RpbmF0aW9uQWN0aW9uTWFza0ZvckRyYWdnaW5nSW5mbzooaWQpZHJhZ2dpbmdJbmZvIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogLSAodm9p
ZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjcmVhdGVXZWJWaWV3V2l0aENvbmZpZ3Vy
YXRpb246KFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uIGZvck5hdmlnYXRp
b25BY3Rpb246KFdLTmF2aWdhdGlvbkFjdGlvbiAqKW5hdmlnYXRpb25BY3Rpb24gd2luZG93RmVh
dHVyZXM6KFdLV2luZG93RmVhdHVyZXMgKil3aW5kb3dGZWF0dXJlcyBjb21wbGV0aW9uSGFuZGxl
cjoodm9pZCAoXikoV0tXZWJWaWV3ICp3ZWJWaWV3KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElf
QVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQp
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lv
bkZvckZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXiko
Qk9PTCBhbGxvd2VkKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsV2l0aE1lc3NhZ2U6KE5TU3Ry
aW5nICopbWVzc2FnZSBpbml0aWF0ZWRCeUZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGNvbXBs
ZXRpb25IYW5kbGVyOih2b2lkICheKShCT09MIHJlc3VsdCkpY29tcGxldGlvbkhhbmRsZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAtICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGVkaXRvclN0YXRlRGlkQ2hhbmdlOihO
U0RpY3Rpb25hcnkgKillZGl0b3JTdGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1VJRGVsZWdhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9VSURlbGVnYXRlLmgJKHJldmlzaW9uIDIyMTgyNykKKysrIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtOTAsNyArOTAsOCBA
QCBwcml2YXRlOgogICAgICAgICB2b2lkIGRpZEV4aXRGdWxsc2NyZWVuKFdlYlBhZ2VQcm94eSop
IGZpbmFsOwogICAgICAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXZWJQYWdlUHJveHkqLCBj
b25zdCBXVEY6OlN0cmluZyYsIFdlYkZyYW1lUHJveHkqLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmLCBGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFs
OwogICAgICAgICB2b2lkIHJ1bkphdmFTY3JpcHRDb25maXJtKFdlYlBhZ2VQcm94eSosIGNvbnN0
IFdURjo6U3RyaW5nJiwgV2ViRnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFs
OwotICAgICAgICB2b2lkIHJ1bkphdmFTY3JpcHRQcm9tcHQoV2ViUGFnZVByb3h5KiwgY29uc3Qg
V1RGOjpTdHJpbmcmLCBjb25zdCBXVEY6OlN0cmluZyYsIFdlYkZyYW1lUHJveHkqLCBjb25zdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBGdW5jdGlvbjx2b2lkKGNvbnN0IFdURjo6U3Ry
aW5nJik+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsOworICAgICAgICB2b2lkIHJ1bkphdmFT
Y3JpcHRQcm9tcHQoV2ViUGFnZVByb3h5KiwgY29uc3QgV1RGOjpTdHJpbmcmLCBjb25zdCBXVEY6
OlN0cmluZyYsIFdlYkZyYW1lUHJveHkqLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEmLCBGdW5jdGlvbjx2b2lkKGNvbnN0IFdURjo6U3RyaW5nJik+JiYpIGZpbmFsOworICAgICAg
ICBGdW5jdGlvbjx2b2lkKGJvb2wpPiBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3Jp
Z2luJiwgRnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWw7CiAg
ICAgICAgIGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCkgY29uc3QgZmluYWw7
CiAgICAgICAgIHZvaWQgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKFdlYlBhZ2VQcm94eSos
IGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViRnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
IGZpbmFsOwogICAgICAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJQYWdlUHJveHkq
LCBXZWJGcmFtZVByb3h5KiwgQVBJOjpTZWN1cml0eU9yaWdpbiosIGNvbnN0IFdURjo6U3RyaW5n
JiBkYXRhYmFzZU5hbWUsIGNvbnN0IFdURjo6U3RyaW5nJiBkaXNwbGF5TmFtZSwgdW5zaWduZWQg
bG9uZyBsb25nIGN1cnJlbnRRdW90YSwgdW5zaWduZWQgbG9uZyBsb25nIGN1cnJlbnRPcmlnaW5V
c2FnZSwgdW5zaWduZWQgbG9uZyBsb25nIGN1cnJlbnRVc2FnZSwgdW5zaWduZWQgbG9uZyBsb25n
IGV4cGVjdGVkVXNhZ2UsIEZ1bmN0aW9uPHZvaWQodW5zaWduZWQgbG9uZyBsb25nKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikgZmluYWw7CkBAIC0xMDMsMTAgKzEwNCwxMCBAQCBwcml2YXRlOgogICAg
ICAgICB2b2lkIHBhZ2VEaWRTY3JvbGwoV2ViUGFnZVByb3h5KikgZmluYWw7CiAgICAgICAgIHZv
aWQgZGlkTm90SGFuZGxlV2hlZWxFdmVudChXZWJQYWdlUHJveHkqLCBjb25zdCBOYXRpdmVXZWJX
aGVlbEV2ZW50JikgZmluYWw7CiAgICAgICAgIHZvaWQgaGFuZGxlQXV0b3BsYXlFdmVudChXZWJQ
YWdlUHJveHkmLCBXZWJDb3JlOjpBdXRvcGxheUV2ZW50LCBPcHRpb25TZXQ8V2ViQ29yZTo6QXV0
b3BsYXlFdmVudEZsYWdzPikgZmluYWw7Ci0gICAgICAgIHZvaWQgdW5hdmFpbGFibGVQbHVnaW5C
dXR0b25DbGlja2VkKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV0tQbHVnaW5VbmF2YWlsYWJpbGl0
eVJlYXNvbiwgQVBJOjpEaWN0aW9uYXJ5JikgZmluYWw7CisgICAgICAgIHZvaWQgdW5hdmFpbGFi
bGVQbHVnaW5CdXR0b25DbGlja2VkKFdlYlBhZ2VQcm94eSYsIFdLUGx1Z2luVW5hdmFpbGFiaWxp
dHlSZWFzb24sIEFQSTo6RGljdGlvbmFyeSYpIGZpbmFsOwogICAgICAgICB2b2lkIG1vdXNlRGlk
TW92ZU92ZXJFbGVtZW50KFdlYlBhZ2VQcm94eSYsIGNvbnN0IFdlYkhpdFRlc3RSZXN1bHREYXRh
JiwgV2ViRXZlbnQ6Ok1vZGlmaWVycywgQVBJOjpPYmplY3QqKTsKICAgICAgICAgdm9pZCBkaWRD
bGlja0F1dG9GaWxsQnV0dG9uKFdlYlBhZ2VQcm94eSYsIEFQSTo6T2JqZWN0KikgZmluYWw7Ci0g
ICAgICAgIHZvaWQgdG9vbGJhcnNBcmVWaXNpYmxlKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgRnVu
Y3Rpb248dm9pZChib29sKT4mJikgZmluYWw7CisgICAgICAgIHZvaWQgdG9vbGJhcnNBcmVWaXNp
YmxlKFdlYlBhZ2VQcm94eSYsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwogICAgICAg
ICBib29sIHJ1bk9wZW5QYW5lbChXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgQVBJOjpPcGVuUGFuZWxQYXJhbWV0ZXJzKiwg
V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eSopIGZpbmFsOwogICAgICAgICB2b2lkIGRp
ZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJjZUxpbWl0V2hpbGVJbkZvcmVncm91bmQoV2ViUGFnZVBy
b3h5JiwgV0tSZXNvdXJjZUxpbWl0KSBmaW5hbDsKICAgICAgICAgdm9pZCBzYXZlRGF0YVRvRmls
ZUluRG93bmxvYWRzRm9sZGVyKFdlYlBhZ2VQcm94eSosIGNvbnN0IFdURjo6U3RyaW5nJiwgY29u
c3QgV1RGOjpTdHJpbmcmLCBjb25zdCBXZWJDb3JlOjpVUkwmLCBBUEk6OkRhdGEmKSBmaW5hbDsK
QEAgLTE0OCw2ICsxNDksNyBAQCBwcml2YXRlOgogICAgICAgICBib29sIHdlYlZpZXdSdW5KYXZh
U2NyaXB0Q29uZmlybVBhbmVsV2l0aE1lc3NhZ2VJbml0aWF0ZWRCeUZyYW1lQ29tcGxldGlvbkhh
bmRsZXIgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdSdW5KYXZhU2NyaXB0VGV4dElucHV0UGFu
ZWxXaXRoUHJvbXB0RGVmYXVsdFRleHRJbml0aWF0ZWRCeUZyYW1lQ29tcGxldGlvbkhhbmRsZXIg
OiAxOwogICAgICAgICBib29sIHdlYlZpZXdSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxXaXRo
TWVzc2FnZUluaXRpYXRlZEJ5RnJhbWVDb21wbGV0aW9uSGFuZGxlciA6IDE7CisgICAgICAgIGJv
b2wgd2ViVmlld1JlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZURlY2lzaW9uSGFu
ZGxlciA6IDE7CiAjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICBib29sIHNob3dXZWJWaWV3IDog
MTsKICAgICAgICAgYm9vbCBmb2N1c1dlYlZpZXcgOiAxOwpJbmRleDogU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCShyZXZpc2lvbiAyMjE4MjcpCisrKyBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0xMDMsNiArMTAzLDcgQEAgdm9pZCBVSURlbGVnYXRlOjpzZXREZWxlZ2F0ZShpZCA8V0tVSURl
bAogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSdW5KYXZhU2NyaXB0Q29uZmlybVBhbmVs
V2l0aE1lc3NhZ2VJbml0aWF0ZWRCeUZyYW1lQ29tcGxldGlvbkhhbmRsZXIgPSBbZGVsZWdhdGUg
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3OnJ1bkphdmFTY3JpcHRDb25maXJt
UGFuZWxXaXRoTWVzc2FnZTppbml0aWF0ZWRCeUZyYW1lOmNvbXBsZXRpb25IYW5kbGVyOildOwog
ICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSdW5KYXZhU2NyaXB0VGV4dElucHV0UGFuZWxX
aXRoUHJvbXB0RGVmYXVsdFRleHRJbml0aWF0ZWRCeUZyYW1lQ29tcGxldGlvbkhhbmRsZXIgPSBb
ZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3OnJ1bkphdmFTY3Jp
cHRUZXh0SW5wdXRQYW5lbFdpdGhQcm9tcHQ6ZGVmYXVsdFRleHQ6aW5pdGlhdGVkQnlGcmFtZTpj
b21wbGV0aW9uSGFuZGxlcjopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UnVuQmVm
b3JlVW5sb2FkQ29uZmlybVBhbmVsV2l0aE1lc3NhZ2VJbml0aWF0ZWRCeUZyYW1lQ29tcGxldGlv
bkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmll
dzpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxXaXRoTWVzc2FnZTppbml0aWF0ZWRCeUZyYW1l
OmNvbXBsZXRpb25IYW5kbGVyOildOworICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXF1
ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWVEZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdh
dGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0R2VvbG9jYXRp
b25QZXJtaXNzaW9uRm9yRnJhbWU6ZGVjaXNpb25IYW5kbGVyOildOwogCiAjaWYgUExBVEZPUk0o
TUFDKQogICAgIG1fZGVsZWdhdGVNZXRob2RzLnNob3dXZWJWaWV3ID0gW2RlbGVnYXRlIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3Nob3dXZWJWaWV3OildOwpAQCAtMzI0LDcgKzMyNSw3
IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnJ1bkphdmFTY3JpcHQKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIFJlZlB0cjxDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyPiBj
aGVja2VyID0gQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlcjo6Y3JlYXRlKGRlbGVnYXRlLmdl
dCgpLCBAc2VsZWN0b3Iod2ViVmlldzpydW5KYXZhU2NyaXB0VGV4dElucHV0UGFuZWxXaXRoUHJv
bXB0OmRlZmF1bHRUZXh0OmluaXRpYXRlZEJ5RnJhbWU6Y29tcGxldGlvbkhhbmRsZXI6KSk7Cisg
ICAgYXV0byBjaGVja2VyID0gQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlcjo6Y3JlYXRlKGRl
bGVnYXRlLmdldCgpLCBAc2VsZWN0b3Iod2ViVmlldzpydW5KYXZhU2NyaXB0VGV4dElucHV0UGFu
ZWxXaXRoUHJvbXB0OmRlZmF1bHRUZXh0OmluaXRpYXRlZEJ5RnJhbWU6Y29tcGxldGlvbkhhbmRs
ZXI6KSk7CiAgICAgW2RlbGVnYXRlIHdlYlZpZXc6bV91aURlbGVnYXRlLm1fd2ViVmlldyBydW5K
YXZhU2NyaXB0VGV4dElucHV0UGFuZWxXaXRoUHJvbXB0Om1lc3NhZ2UgZGVmYXVsdFRleHQ6ZGVm
YXVsdFZhbHVlIGluaXRpYXRlZEJ5RnJhbWU6d3JhcHBlcihBUEk6OkZyYW1lSW5mbzo6Y3JlYXRl
KCp3ZWJGcmFtZVByb3h5LCBzZWN1cml0eU9yaWdpbkRhdGEuc2VjdXJpdHlPcmlnaW4oKSkpIGNv
bXBsZXRpb25IYW5kbGVyOkJsb2NrUHRyPHZvaWQgKE5TU3RyaW5nICopPjo6ZnJvbUNhbGxhYmxl
KFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBjaGVja2Vy
ID0gV1RGTW92ZShjaGVja2VyKV0oTlNTdHJpbmcgKnJlc3VsdCkgewogICAgICAgICBpZiAoY2hl
Y2tlci0+Y29tcGxldGlvbkhhbmRsZXJIYXNCZWVuQ2FsbGVkKCkpCiAgICAgICAgICAgICByZXR1
cm47CkBAIC0zMzMsNiArMzM0LDI1IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnJ1bkph
dmFTY3JpcHQKICAgICB9KS5nZXQoKV07CiB9CiAKK0Z1bmN0aW9uPHZvaWQoYm9vbCk+IFVJRGVs
ZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiBmcmFtZSwg
QVBJOjpTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlPcmlnaW4sIEZ1bmN0aW9uPHZvaWQoYm9vbCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0
ZU1ldGhvZHMud2ViVmlld1JlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZURlY2lz
aW9uSGFuZGxlcikKKyAgICAgICAgcmV0dXJuIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpOwor
ICAgIAorICAgIGF1dG8gZGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKTsK
KyAgICBpZiAoIWRlbGVnYXRlKQorICAgICAgICByZXR1cm4gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcik7CisKKyAgICBhdXRvIGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2Vy
OjpjcmVhdGUoZGVsZWdhdGUuZ2V0KCksIEBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0R2VvbG9j
YXRpb25QZXJtaXNzaW9uRm9yRnJhbWU6ZGVjaXNpb25IYW5kbGVyOikpOworICAgIFsoaWQgPFdL
VUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5tX3dlYlZp
ZXcgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lOndyYXBwZXIoQVBJOjpGcmFt
ZUluZm86OmNyZWF0ZShmcmFtZSwgc2VjdXJpdHlPcmlnaW4uc2VjdXJpdHlPcmlnaW4oKSkpIGRl
Y2lzaW9uSGFuZGxlcjpCbG9ja1B0cjx2b2lkKEJPT0wpPjo6ZnJvbUNhbGxhYmxlKFtjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBjaGVja2VyID0gV1RGTW92
ZShjaGVja2VyKV0oQk9PTCByZXN1bHQpIHsKKyAgICAgICAgaWYgKGNoZWNrZXItPmNvbXBsZXRp
b25IYW5kbGVySGFzQmVlbkNhbGxlZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBj
aGVja2VyLT5kaWRDYWxsQ29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIocmVzdWx0KTsKKyAgICB9KS5nZXQoKV07CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
IGJvb2wgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5l
bCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53
ZWJWaWV3UnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsV2l0aE1lc3NhZ2VJbml0aWF0ZWRCeUZy
YW1lQ29tcGxldGlvbkhhbmRsZXI7CkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjE4MjcpCisrKyBUb29scy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxNy0wOS0wOSAgQWxleCBDaHJpc3Rl
bnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBXS1VJRGVsZWdh
dGVQcml2YXRlIGVxdWl2YWxlbnQgb2YgV0tQYWdlVUlDbGllbnQncyBkZWNpZGVQb2xpY3lGb3JH
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNzY2NDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI5Mjcw
MDM1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAo
LVtHZW9sb2NhdGlvbkRlbGVnYXRlIGluaXRXaXRoQWxsb3dHZW9sb2NhdGlvbjpdKToKKyAgICAg
ICAgKC1bR2VvbG9jYXRpb25EZWxlZ2F0ZSBfd2ViVmlldzpyZXF1ZXN0R2VvbG9jYXRpb25QZXJt
aXNzaW9uRm9yRnJhbWU6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtHZW9sb2NhdGlv
bkRlbGVnYXRlIHdlYlZpZXc6cnVuSmF2YVNjcmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2FnZTppbml0
aWF0ZWRCeUZyYW1lOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoVEVTVCk6CisKIDIw
MTctMDktMDkgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtHVEtdIFVucmV2aWV3ZWQsIGZpeCB0eXBvIGZvcndhZCAtPiBmb3J3YXJkCkluZGV4
OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VJRGVsZWdhdGUubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9VSURlbGVn
YXRlLm1tCShyZXZpc2lvbiAyMjE4MjcpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1VJRGVsZWdhdGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTI3LDEwICsyNywxNCBA
QAogCiAjaWYgV0tfQVBJX0VOQUJMRUQKIAorI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIK
ICNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKICNpbXBvcnQgIlV0aWxpdGllcy5oIgogI2ltcG9y
dCAiV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLQ29u
dGV4dC5oPgogI2ltcG9ydCA8V2ViS2l0L1dLQ29udGV4dFByaXZhdGVNYWMuaD4KKyNpbXBvcnQg
PFdlYktpdC9XS0dlb2xvY2F0aW9uTWFuYWdlci5oPgorI2ltcG9ydCA8V2ViS2l0L1dLR2VvbG9j
YXRpb25Qb3NpdGlvbi5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+
CiAjaW1wb3J0IDxXZWJLaXQvV0tSZXRhaW5QdHIuaD4KICNpbXBvcnQgPFdlYktpdC9XS1VJRGVs
ZWdhdGVQcml2YXRlLmg+CkBAIC03Miw2ICs3Niw3OSBAQCBURVNUKFdlYktpdCwgV0tXZWJWaWV3
SXNQbGF5aW5nQXVkaW8pCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKIH0K
IAorQGludGVyZmFjZSBHZW9sb2NhdGlvbkRlbGVnYXRlIDogTlNPYmplY3QgPFdLVUlEZWxlZ2F0
ZVByaXZhdGU+IHsKKyAgICBib29sIF9hbGxvd0dlb2xvY2F0aW9uOworfQorCistIChpZClpbml0
V2l0aEFsbG93R2VvbG9jYXRpb246KGJvb2wpYWxsb3dHZW9sb2NhdGlvbjsKKworQGVuZAorCitA
aW1wbGVtZW50YXRpb24gR2VvbG9jYXRpb25EZWxlZ2F0ZQorCistIChpZClpbml0V2l0aEFsbG93
R2VvbG9jYXRpb246KGJvb2wpYWxsb3dHZW9sb2NhdGlvbgoreworICAgIGlmICghKHNlbGYgPSBb
c3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4gbmlsOworICAgIF9hbGxvd0dlb2xvY2F0aW9u
ID0gYWxsb3dHZW9sb2NhdGlvbjsKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9y
RnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09M
IGFsbG93ZWQpKWRlY2lzaW9uSGFuZGxlcgoreworICAgIEVYUEVDVF9UUlVFKGZyYW1lLmlzTWFp
bkZyYW1lKTsKKyAgICBFWFBFQ1RfU1RSRVEoZnJhbWUucmVxdWVzdC5VUkwuYWJzb2x1dGVTdHJp
bmcuVVRGOFN0cmluZywgX2FsbG93R2VvbG9jYXRpb24gPyAiaHR0cHM6Ly9leGFtcGxlLm9yZy8i
IDogImh0dHBzOi8vZXhhbXBsZS5jb20vIik7CisgICAgRVhQRUNUX0VRKGZyYW1lLnNlY3VyaXR5
T3JpZ2luLnBvcnQsIDApOworICAgIEVYUEVDVF9TVFJFUShmcmFtZS5zZWN1cml0eU9yaWdpbi5w
cm90b2NvbC5VVEY4U3RyaW5nLCAiaHR0cHMiKTsKKyAgICBFWFBFQ1RfU1RSRVEoZnJhbWUuc2Vj
dXJpdHlPcmlnaW4uaG9zdC5VVEY4U3RyaW5nLCBfYWxsb3dHZW9sb2NhdGlvbiA/ICJleGFtcGxl
Lm9yZyIgOiAiZXhhbXBsZS5jb20iKTsKKyAgICBkZWNpc2lvbkhhbmRsZXIoX2FsbG93R2VvbG9j
YXRpb24pOworfQorCistICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcnVuSmF2
YVNjcmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGluaXRpYXRl
ZEJ5RnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4p
KHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAgaWYgKF9hbGxvd0dlb2xvY2F0aW9uKQor
ICAgICAgICBFWFBFQ1RfU1RSRVEobWVzc2FnZS5VVEY4U3RyaW5nLCAicG9zaXRpb24gNTAuNjQ0
MzU4IDMuMzQ1NDUzIik7CisgICAgZWxzZQorICAgICAgICBFWFBFQ1RfU1RSRVEobWVzc2FnZS5V
VEY4U3RyaW5nLCAiZXJyb3IgMSBVc2VyIGRlbmllZCBHZW9sb2NhdGlvbiIpOworICAgIGNvbXBs
ZXRpb25IYW5kbGVyKCk7CisgICAgZG9uZSA9IHRydWU7Cit9CisKK0BlbmQKKworVEVTVChXZWJL
aXQsIEdlb2xvY2F0aW9uUGVybWlzc2lvbikKK3sKKyAgICBOU1N0cmluZyAqaHRtbCA9IEAiPHNj
cmlwdD5uYXZpZ2F0b3IuZ2VvbG9jYXRpb24ud2F0Y2hQb3NpdGlvbigiCisgICAgICAgICJmdW5j
dGlvbihwKSB7IGFsZXJ0KCdwb3NpdGlvbiAnICsgcC5jb29yZHMubGF0aXR1ZGUgKyAnICcgKyBw
LmNvb3Jkcy5sb25naXR1ZGUpIH0sIgorICAgICAgICAiZnVuY3Rpb24oZSkgeyBhbGVydCgnZXJy
b3IgJyArIGUuY29kZSArICcgJyArIGUubWVzc2FnZSkgfSkiCisgICAgIjwvc2NyaXB0PiI7CisK
KyAgICBhdXRvIHBvb2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gaW5pdF0pOwor
ICAgIAorICAgIFdLR2VvbG9jYXRpb25Qcm92aWRlclYxIHByb3ZpZGVyQ2FsbGJhY2s7CisgICAg
bWVtc2V0KCZwcm92aWRlckNhbGxiYWNrLCAwLCBzaXplb2YoV0tHZW9sb2NhdGlvblByb3ZpZGVy
VjEpKTsKKyAgICBwcm92aWRlckNhbGxiYWNrLmJhc2UudmVyc2lvbiA9IDE7CisgICAgcHJvdmlk
ZXJDYWxsYmFjay5zdGFydFVwZGF0aW5nID0gW10gKFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVmIG1h
bmFnZXIsIGNvbnN0IHZvaWQqKSB7CisgICAgICAgIFdLR2VvbG9jYXRpb25NYW5hZ2VyUHJvdmlk
ZXJEaWRDaGFuZ2VQb3NpdGlvbihtYW5hZ2VyLCBhZG9wdFdLKFdLR2VvbG9jYXRpb25Qb3NpdGlv
bkNyZWF0ZSgwLCA1MC42NDQzNTgsIDMuMzQ1NDUzLCAyLjUzKSkuZ2V0KCkpOworICAgIH07Cisg
ICAgV0tHZW9sb2NhdGlvbk1hbmFnZXJTZXRQcm92aWRlcihXS0NvbnRleHRHZXRHZW9sb2NhdGlv
bk1hbmFnZXIoKFdLQ29udGV4dFJlZilwb29sLmdldCgpKSwgJnByb3ZpZGVyQ2FsbGJhY2suYmFz
ZSk7CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkucHJvY2Vzc1Bv
b2wgPSBwb29sLmdldCgpOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgODAwLCA2MDApIGNvbmZp
Z3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIGF1dG8gZGVsZWdhdGUxID0gYWRv
cHROUyhbW0dlb2xvY2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoQWxsb3dHZW9sb2NhdGlv
bjpmYWxzZV0pOworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUxLmdldCgpXTsK
KyAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpodG1sIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhT
dHJpbmc6QCJodHRwczovL2V4YW1wbGUuY29tLyJdXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRvbmUpOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIGF1dG8gZGVsZWdhdGUyID0g
YWRvcHROUyhbW0dlb2xvY2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoQWxsb3dHZW9sb2Nh
dGlvbjp0cnVlXSk7CisgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZTIuZ2V0KCld
OworICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOmh0bWwgYmFzZVVSTDpbTlNVUkwgVVJMV2l0
aFN0cmluZzpAImh0dHBzOi8vZXhhbXBsZS5vcmcvIl1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7Cit9CisKKwogI2lmIFBMQVRGT1JNKE1BQykKIAogQGNsYXNzIFVJVGVz
dERlbGVnYXRlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320451</attachid>
            <date>2017-09-11 11:54:37 -0700</date>
            <delta_ts>2017-09-11 11:58:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176642-20170911115437.patch</filename>
            <type>text/plain</type>
            <size>23045</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjE3NzcpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE3LTA5LTExICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIFdLVUlEZWxl
Z2F0ZVByaXZhdGUgZXF1aXZhbGVudCBvZiBXS1BhZ2VVSUNsaWVudCdzIGRlY2lkZVBvbGljeUZv
ckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjY0MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjky
NzAwMzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURl
bGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpzZXREZWxlZ2F0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJvbXB0
KToKKyAgICAgICAgKFdlYktpdDo6RnVuY3Rpb248dm9pZCk6CisKIDIwMTctMDktMDcgIEFuZHkg
RXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIFVwc3RyZWFtIFFUS2l0
LXJlbGF0ZWQgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucwpJbmRleDogU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1BhZ2VDbGllbnQuaAkocmV2aXNpb24gMjIxNzY5KQorKysgU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDMsNyArMTQzLDcg
QEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIC8vIEZJWE1FOiBBZG9wdCB0aGUg
V0tVSURlbGVnYXRlUHJpdmF0ZSBjYWxsYmFjayBvbiBpT1MgYW5kIHJlbW92ZSB0aGlzLgotICAg
IHZpcnR1YWwgRnVuY3Rpb248dm9pZChib29sKT4gZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdChXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIEZ1
bmN0aW9uPHZvaWQoYm9vbCk+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVjaWRlUG9saWN5
Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1
cml0eU9yaWdpbiYsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JikgPSAwOwogI2VuZGlmCiAKICAgICB2
aXJ0dWFsIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JNYWluRnJhbWUoKSB7IH07Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDIy
MTc3MSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTU4MTEsMTAgKzU4MTEsMTAgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVl
c3RHZW9sb2NhdGlvblBlcgogICAgIC8vIGFuZCBtYWtlIGl0IG9uZSBVSUNsaWVudCBjYWxsIHRo
YXQgY2FsbHMgdGhlIGNvbXBsZXRpb25IYW5kbGVyIHdpdGggZmFsc2UKICAgICAvLyBpZiB0aGVy
ZSBpcyBubyBkZWxlZ2F0ZSBpbnN0ZWFkIG9mIHJldHVybmluZyB0aGUgY29tcGxldGlvbkhhbmRs
ZXIKICAgICAvLyBmb3Igb3RoZXIgY29kZSBwYXRocyB0byB0cnkuCi0gICAgY29tcGxldGlvbkhh
bmRsZXIgPSBtX3VpQ2xpZW50LT5kZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0KCp0aGlzLCAqZnJhbWUsIG9yaWdpbi5nZXQoKSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOworICAgIG1fdWlDbGllbnQtPmRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3QoKnRoaXMsICpmcmFtZSwgb3JpZ2luLmdldCgpLCBjb21wbGV0aW9uSGFuZGxl
cik7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIGlmIChjb21wbGV0aW9uSGFuZGxlcikKLSAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIgPSBtX3BhZ2VDbGllbnQuZGVjaWRlUG9saWN5Rm9yR2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdCgqZnJhbWUsIG9yaWdpbi5nZXQoKSwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOworICAgICAgICBtX3BhZ2VDbGllbnQuZGVjaWRlUG9saWN5Rm9yR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdCgqZnJhbWUsIG9yaWdpbi5nZXQoKSwgY29tcGxldGlv
bkhhbmRsZXIpOwogI2VuZGlmCiAgICAgaWYgKGNvbXBsZXRpb25IYW5kbGVyKQogICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJVUlDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJVUlDbGllbnQuaAkocmV2aXNpb24gMjIxNzcxKQorKysgU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEyNCw3ICsxMjQsNyBA
QCBwdWJsaWM6CiAgICAgfQogCiAgICAgdmlydHVhbCBib29sIHJ1bk9wZW5QYW5lbChXZWJLaXQ6
OldlYlBhZ2VQcm94eSosIFdlYktpdDo6V2ViRnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYsIE9wZW5QYW5lbFBhcmFtZXRlcnMqLCBXZWJLaXQ6OldlYk9wZW5Q
YW5lbFJlc3VsdExpc3RlbmVyUHJveHkqKSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwg
RnVuY3Rpb248dm9pZChib29sKT4gZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIFNl
Y3VyaXR5T3JpZ2luJiwgRnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikg
eyByZXR1cm4gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcik7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
ZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBh
Z2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwgRnVuY3Rp
b248dm9pZChib29sKT4mKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgZGVjaWRlUG9saWN5Rm9yVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6Oldl
YkZyYW1lUHJveHkmLCBTZWN1cml0eU9yaWdpbiYsIFNlY3VyaXR5T3JpZ2luJiwgV2ViS2l0OjpV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2
aXJ0dWFsIGJvb2wgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYktpdDo6V2Vi
UGFnZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgU2VjdXJpdHlPcmlnaW4mLCBTZWN1
cml0eU9yaWdpbiYsIFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmKSB7IHJl
dHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSosIFNlY3VyaXR5T3JpZ2lu
KiwgV2ViS2l0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCopIHsgcmV0dXJuIGZhbHNl
OyB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAJKHJldmlz
aW9uIDIyMTc3MSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE5NTMsMTMgKzE5NTMsMTIgQEAgdm9pZCBXS1BhZ2VTZXRQYWdl
VUlDbGllbnQoV0tQYWdlUmVmIHBhZwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IH0KIAotICAgICAgICBGdW5jdGlvbjx2b2lkKGJvb2wpPiBkZWNpZGVQb2xpY3lGb3JHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYg
ZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgRnVuY3Rpb248dm9pZChib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwKKyAgICAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JH
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQ
cm94eSYgZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgRnVuY3Rpb248dm9pZChi
b29sKT4mIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbAogICAgICAgICB7CiAgICAgICAgICAgICBp
ZiAoIW1fY2xpZW50LmRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpOworICAg
ICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAgbV9jbGllbnQuZGVjaWRlUG9saWN5
Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdCh0b0FQSSgmcGFnZSksIHRvQVBJKCZmcmFt
ZSksIHRvQVBJKCZvcmlnaW4pLCB0b0FQSShHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Ojpj
cmVhdGUoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpLnB0cigpKSwgbV9jbGllbnQuYmFzZS5j
bGllbnRJbmZvKTsKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICAgICAgbV9j
bGllbnQuZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdCh0b0FQSSgm
cGFnZSksIHRvQVBJKCZmcmFtZSksIHRvQVBJKCZvcmlnaW4pLCB0b0FQSShHZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0OjpjcmVhdGUoc3RkOjpleGNoYW5nZShjb21wbGV0aW9uSGFuZGxlciwg
bnVsbHB0cikpLnB0cigpKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICAgICAgfQog
CiAgICAgICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qo
V2ViUGFnZVByb3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9y
aWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExl
dmVsRG9jdW1lbnRPcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHBlcm1p
c3Npb25SZXF1ZXN0KSBmaW5hbApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCShyZXZpc2lvbiAyMjE3Njkp
CisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDUsNiArMTA1LDcgQEAgc3RydWN0IFVJRWRnZUluc2V0
czsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgbWVkaWFDYXB0dXJlU3Rh
dGVEaWRDaGFuZ2U6KF9XS01lZGlhQ2FwdHVyZVN0YXRlKXN0YXRlIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogLSAoV0tEcmFnRGVzdGluYXRp
b25BY3Rpb24pX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZHJhZ0Rlc3RpbmF0aW9uQWN0
aW9uTWFza0ZvckRyYWdnaW5nSW5mbzooaWQpZHJhZ2dpbmdJbmZvIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBjcmVhdGVXZWJWaWV3V2l0aENvbmZpZ3VyYXRpb246KFdLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uIGZvck5hdmlnYXRpb25BY3Rpb246KFdL
TmF2aWdhdGlvbkFjdGlvbiAqKW5hdmlnYXRpb25BY3Rpb24gd2luZG93RmVhdHVyZXM6KFdLV2lu
ZG93RmVhdHVyZXMgKil3aW5kb3dGZWF0dXJlcyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXiko
V0tXZWJWaWV3ICp3ZWJWaWV3KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lOihX
S0ZyYW1lSW5mbyAqKWZyYW1lIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhbGxvd2Vk
KSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CiAKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsV2l0aE1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2Fn
ZSBpbml0aWF0ZWRCeUZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGNvbXBsZXRpb25IYW5kbGVy
Oih2b2lkICheKShCT09MIHJlc3VsdCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAtICh2b2lkKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IGVkaXRvclN0YXRlRGlkQ2hhbmdlOihOU0RpY3Rpb25hcnkg
KillZGl0b3JTdGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFVJQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRVSUNsaWVudC5jcHAJKHJldmlzaW9uIDIyMTc3MSkKKysrIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTgyLDExICsxODIsMTAgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogCi0gICAgRnVuY3Rpb248dm9pZChib29sKT4gZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1
cml0eU9yaWdpbiYsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZp
bmFsCisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
KFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgRnVu
Y3Rpb248dm9pZChib29sKT4mIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbAogICAgIHsKLSAgICAg
ICAgR1JlZlB0cjxXZWJLaXRHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0PiBnZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0ID0gYWRvcHRHUmVmKHdlYmtpdEdlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RDcmVhdGUoR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdDo6Y3JlYXRlKFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKS5wdHIoKSkpOworICAgICAgICBHUmVmUHRyPFdlYktpdEdl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q+IGdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qg
PSBhZG9wdEdSZWYod2Via2l0R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdENyZWF0ZShHZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0OjpjcmVhdGUoc3RkOjpleGNoYW5nZShjb21wbGV0aW9u
SGFuZGxlciwgbnVsbHB0cikpLnB0cigpKSk7CiAgICAgICAgIHdlYmtpdFdlYlZpZXdNYWtlUGVy
bWlzc2lvblJlcXVlc3QobV93ZWJWaWV3LCBXRUJLSVRfUEVSTUlTU0lPTl9SRVFVRVNUKGdlb2xv
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3QuZ2V0KCkpKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgfQogCiAgICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdChXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYg
dXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9j
dW1lbnRPcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHBlcm1pc3Npb25S
ZXF1ZXN0KSBvdmVycmlkZQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlE
ZWxlZ2F0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJ
RGVsZWdhdGUuaAkocmV2aXNpb24gMjIxNzcxKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVUlEZWxlZ2F0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC04Niw3ICs4Niw4IEBAIHByaXZh
dGU6CiAgICAgICAgIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4oV2ViUGFnZVByb3h5KikgZmluYWw7
CiAgICAgICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdlYlBhZ2VQcm94eSosIGNvbnN0IFdU
Rjo6U3RyaW5nJiwgV2ViRnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYsIEZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWw7CiAgICAg
ICAgIHZvaWQgcnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViUGFnZVByb3h5KiwgY29uc3QgV1RGOjpT
dHJpbmcmLCBXZWJGcmFtZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiwgRnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWw7Ci0gICAg
ICAgIHZvaWQgcnVuSmF2YVNjcmlwdFByb21wdChXZWJQYWdlUHJveHkqLCBjb25zdCBXVEY6OlN0
cmluZyYsIGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViRnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYsIEZ1bmN0aW9uPHZvaWQoY29uc3QgV1RGOjpTdHJpbmcmKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWw7CisgICAgICAgIHZvaWQgcnVuSmF2YVNjcmlwdFBy
b21wdChXZWJQYWdlUHJveHkqLCBjb25zdCBXVEY6OlN0cmluZyYsIGNvbnN0IFdURjo6U3RyaW5n
JiwgV2ViRnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIEZ1
bmN0aW9uPHZvaWQoY29uc3QgV1RGOjpTdHJpbmcmKT4mJikgZmluYWw7CisgICAgICAgIHZvaWQg
ZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkm
LCBXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIEZ1bmN0aW9uPHZvaWQoYm9v
bCk+JikgZmluYWw7CiAgICAgICAgIGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
KCkgY29uc3QgZmluYWw7CiAgICAgICAgIHZvaWQgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
KFdlYlBhZ2VQcm94eSosIGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViRnJhbWVQcm94eSosIGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpIGZpbmFsOwogICAgICAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90
YShXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgQVBJOjpTZWN1cml0eU9yaWdpbiosIGNv
bnN0IFdURjo6U3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFdURjo6U3RyaW5nJiBkaXNwbGF5
TmFtZSwgdW5zaWduZWQgbG9uZyBsb25nIGN1cnJlbnRRdW90YSwgdW5zaWduZWQgbG9uZyBsb25n
IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdW5zaWduZWQgbG9uZyBsb25nIGN1cnJlbnRVc2FnZSwgdW5z
aWduZWQgbG9uZyBsb25nIGV4cGVjdGVkVXNhZ2UsIEZ1bmN0aW9uPHZvaWQodW5zaWduZWQgbG9u
ZyBsb25nKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWw7CkBAIC05OSwxMCArMTAwLDEwIEBA
IHByaXZhdGU6CiAgICAgICAgIHZvaWQgcGFnZURpZFNjcm9sbChXZWJQYWdlUHJveHkqKSBmaW5h
bDsKICAgICAgICAgdm9pZCBkaWROb3RIYW5kbGVXaGVlbEV2ZW50KFdlYlBhZ2VQcm94eSosIGNv
bnN0IE5hdGl2ZVdlYldoZWVsRXZlbnQmKSBmaW5hbDsKICAgICAgICAgdm9pZCBoYW5kbGVBdXRv
cGxheUV2ZW50KFdlYlBhZ2VQcm94eSYsIFdlYkNvcmU6OkF1dG9wbGF5RXZlbnQsIE9wdGlvblNl
dDxXZWJDb3JlOjpBdXRvcGxheUV2ZW50RmxhZ3M+KSBmaW5hbDsKLSAgICAgICAgdm9pZCB1bmF2
YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXS1BsdWdp
blVuYXZhaWxhYmlsaXR5UmVhc29uLCBBUEk6OkRpY3Rpb25hcnkmKSBmaW5hbDsKKyAgICAgICAg
dm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoV2ViUGFnZVByb3h5JiwgV0tQbHVn
aW5VbmF2YWlsYWJpbGl0eVJlYXNvbiwgQVBJOjpEaWN0aW9uYXJ5JikgZmluYWw7CiAgICAgICAg
IHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoV2ViUGFnZVByb3h5JiwgY29uc3QgV2ViSGl0
VGVzdFJlc3VsdERhdGEmLCBXZWJFdmVudDo6TW9kaWZpZXJzLCBBUEk6Ok9iamVjdCopOwogICAg
ICAgICB2b2lkIGRpZENsaWNrQXV0b0ZpbGxCdXR0b24oV2ViUGFnZVByb3h5JiwgQVBJOjpPYmpl
Y3QqKSBmaW5hbDsKLSAgICAgICAgdm9pZCB0b29sYmFyc0FyZVZpc2libGUoV2ViS2l0OjpXZWJQ
YWdlUHJveHkmLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKKyAgICAgICAgdm9pZCB0
b29sYmFyc0FyZVZpc2libGUoV2ViUGFnZVByb3h5JiwgRnVuY3Rpb248dm9pZChib29sKT4mJikg
ZmluYWw7CiAgICAgICAgIGJvb2wgcnVuT3BlblBhbmVsKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1l
UHJveHkqLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBBUEk6Ok9wZW5QYW5l
bFBhcmFtZXRlcnMqLCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5KikgZmluYWw7CiAg
ICAgICAgIHZvaWQgZGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdy
b3VuZChXZWJQYWdlUHJveHkmLCBXS1Jlc291cmNlTGltaXQpIGZpbmFsOwogICAgICAgICB2b2lk
IHNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXIoV2ViUGFnZVByb3h5KiwgY29uc3QgV1RG
OjpTdHJpbmcmLCBjb25zdCBXVEY6OlN0cmluZyYsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIEFQSTo6
RGF0YSYpIGZpbmFsOwpAQCAtMTQ0LDYgKzE0NSw3IEBAIHByaXZhdGU6CiAgICAgICAgIGJvb2wg
d2ViVmlld1J1bkphdmFTY3JpcHRDb25maXJtUGFuZWxXaXRoTWVzc2FnZUluaXRpYXRlZEJ5RnJh
bWVDb21wbGV0aW9uSGFuZGxlciA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld1J1bkphdmFTY3Jp
cHRUZXh0SW5wdXRQYW5lbFdpdGhQcm9tcHREZWZhdWx0VGV4dEluaXRpYXRlZEJ5RnJhbWVDb21w
bGV0aW9uSGFuZGxlciA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld1J1bkJlZm9yZVVubG9hZENv
bmZpcm1QYW5lbFdpdGhNZXNzYWdlSW5pdGlhdGVkQnlGcmFtZUNvbXBsZXRpb25IYW5kbGVyIDog
MTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3UmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZy
YW1lRGVjaXNpb25IYW5kbGVyIDogMTsKICNpZiBQTEFURk9STShNQUMpCiAgICAgICAgIGJvb2wg
c2hvd1dlYlZpZXcgOiAxOwogICAgICAgICBib29sIGZvY3VzV2ViVmlldyA6IDE7CkluZGV4OiBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0JKHJldmlzaW9uIDIy
MTc3MSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0JKHdv
cmtpbmcgY29weSkKQEAgLTEwMyw2ICsxMDMsNyBAQCB2b2lkIFVJRGVsZWdhdGU6OnNldERlbGVn
YXRlKGlkIDxXS1VJRGVsCiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1J1bkphdmFTY3Jp
cHRDb25maXJtUGFuZWxXaXRoTWVzc2FnZUluaXRpYXRlZEJ5RnJhbWVDb21wbGV0aW9uSGFuZGxl
ciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlZpZXc6cnVuSmF2
YVNjcmlwdENvbmZpcm1QYW5lbFdpdGhNZXNzYWdlOmluaXRpYXRlZEJ5RnJhbWU6Y29tcGxldGlv
bkhhbmRsZXI6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1J1bkphdmFTY3JpcHRU
ZXh0SW5wdXRQYW5lbFdpdGhQcm9tcHREZWZhdWx0VGV4dEluaXRpYXRlZEJ5RnJhbWVDb21wbGV0
aW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlZp
ZXc6cnVuSmF2YVNjcmlwdFRleHRJbnB1dFBhbmVsV2l0aFByb21wdDpkZWZhdWx0VGV4dDppbml0
aWF0ZWRCeUZyYW1lOmNvbXBsZXRpb25IYW5kbGVyOildOwogICAgIG1fZGVsZWdhdGVNZXRob2Rz
LndlYlZpZXdSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxXaXRoTWVzc2FnZUluaXRpYXRlZEJ5
RnJhbWVDb21wbGV0aW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKF93ZWJWaWV3OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbFdpdGhNZXNzYWdlOmlu
aXRpYXRlZEJ5RnJhbWU6Y29tcGxldGlvbkhhbmRsZXI6KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhv
ZHMud2ViVmlld1JlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZURlY2lzaW9uSGFu
ZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnJl
cXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZTpkZWNpc2lvbkhhbmRsZXI6KV07CiAK
ICNpZiBQTEFURk9STShNQUMpCiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMuc2hvd1dlYlZpZXcgPSBb
ZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfc2hvd1dlYlZpZXc6KV07CkBA
IC0yOTMsNyArMjk0LDcgQEAgdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6cnVuSmF2YVNjcmlw
dAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgUmVmUHRyPENvbXBsZXRpb25IYW5kbGVy
Q2FsbENoZWNrZXI+IGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVh
dGUoZGVsZWdhdGUuZ2V0KCksIEBzZWxlY3Rvcih3ZWJWaWV3OnJ1bkphdmFTY3JpcHRUZXh0SW5w
dXRQYW5lbFdpdGhQcm9tcHQ6ZGVmYXVsdFRleHQ6aW5pdGlhdGVkQnlGcmFtZTpjb21wbGV0aW9u
SGFuZGxlcjopKTsKKyAgICBhdXRvIGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVj
a2VyOjpjcmVhdGUoZGVsZWdhdGUuZ2V0KCksIEBzZWxlY3Rvcih3ZWJWaWV3OnJ1bkphdmFTY3Jp
cHRUZXh0SW5wdXRQYW5lbFdpdGhQcm9tcHQ6ZGVmYXVsdFRleHQ6aW5pdGlhdGVkQnlGcmFtZTpj
b21wbGV0aW9uSGFuZGxlcjopKTsKICAgICBbZGVsZWdhdGUgd2ViVmlldzptX3VpRGVsZWdhdGUu
bV93ZWJWaWV3IHJ1bkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbFdpdGhQcm9tcHQ6bWVzc2FnZSBk
ZWZhdWx0VGV4dDpkZWZhdWx0VmFsdWUgaW5pdGlhdGVkQnlGcmFtZTp3cmFwcGVyKEFQSTo6RnJh
bWVJbmZvOjpjcmVhdGUoKndlYkZyYW1lUHJveHksIHNlY3VyaXR5T3JpZ2luRGF0YS5zZWN1cml0
eU9yaWdpbigpKSkgY29tcGxldGlvbkhhbmRsZXI6QmxvY2tQdHI8dm9pZCAoTlNTdHJpbmcgKik+
Ojpmcm9tQ2FsbGFibGUoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlciksIGNoZWNrZXIgPSBXVEZNb3ZlKGNoZWNrZXIpXShOU1N0cmluZyAqcmVzdWx0KSB7CiAg
ICAgICAgIGlmIChjaGVja2VyLT5jb21wbGV0aW9uSGFuZGxlckhhc0JlZW5DYWxsZWQoKSkKICAg
ICAgICAgICAgIHJldHVybjsKQEAgLTMwMiw2ICszMDMsMjQgQEAgdm9pZCBVSURlbGVnYXRlOjpV
SUNsaWVudDo6cnVuSmF2YVNjcmlwdAogICAgIH0pLmdldCgpXTsKIH0KIAordm9pZCBVSURlbGVn
YXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQ
STo6U2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2luLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYg
Y29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1l
dGhvZHMud2ViVmlld1JlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZURlY2lzaW9u
SGFuZGxlcikKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIGF1dG8gZGVsZWdhdGUgPSBtX3Vp
RGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKTsKKyAgICBpZiAoIWRlbGVnYXRlKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBhdXRvIGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2Vy
OjpjcmVhdGUoZGVsZWdhdGUuZ2V0KCksIEBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0R2VvbG9j
YXRpb25QZXJtaXNzaW9uRm9yRnJhbWU6ZGVjaXNpb25IYW5kbGVyOikpOworICAgIFsoaWQgPFdL
VUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5tX3dlYlZp
ZXcgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lOndyYXBwZXIoQVBJOjpGcmFt
ZUluZm86OmNyZWF0ZShmcmFtZSwgc2VjdXJpdHlPcmlnaW4uc2VjdXJpdHlPcmlnaW4oKSkpIGRl
Y2lzaW9uSGFuZGxlcjpCbG9ja1B0cjx2b2lkKEJPT0wpPjo6ZnJvbUNhbGxhYmxlKFtjb21wbGV0
aW9uSGFuZGxlciA9IHN0ZDo6ZXhjaGFuZ2UoY29tcGxldGlvbkhhbmRsZXIsIG51bGxwdHIpLCBj
aGVja2VyID0gV1RGTW92ZShjaGVja2VyKV0oQk9PTCByZXN1bHQpIHsKKyAgICAgICAgaWYgKGNo
ZWNrZXItPmNvbXBsZXRpb25IYW5kbGVySGFzQmVlbkNhbGxlZCgpKQorICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICBjaGVja2VyLT5kaWRDYWxsQ29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIocmVzdWx0KTsKKyAgICB9KS5nZXQoKV07Cit9CisKIGJvb2wg
VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3
UnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsV2l0aE1lc3NhZ2VJbml0aWF0ZWRCeUZyYW1lQ29t
cGxldGlvbkhhbmRsZXI7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MuaAkocmV2aXNpb24gMjIxNzY5KQorKysgU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgJKHdvcmtpbmcgY29weSkKQEAgLTYzLDcg
KzYzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBhZ2VDbG9zZWQoKSBvdmVycmlkZTsKICAgICB2
b2lkIHByZWZlcmVuY2VzRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCB0b29sVGlwQ2hh
bmdlZChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKLSAgICBGdW5jdGlv
bjx2b2lkKGJvb2wpPiBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
KFdlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgRnVuY3Rpb248dm9pZChib29s
KT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0KFdlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgRnVuY3Rp
b248dm9pZChib29sKT4mKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxM
b2FkRm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxM
b2FkRm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRDb21taXRMb2FkRm9yTWFp
bkZyYW1lKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgdXNlQ3VzdG9tQ29udGVudFByb3Zp
ZGVyKSBvdmVycmlkZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MubW0JKHJldmlzaW9uIDIyMTc2OSkKKysrIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjM3
LDEwICsyMzcsOSBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRDb21wbGV0ZVN5bnRoZXRpCiAg
ICAgW21fY29udGVudFZpZXcgX2RpZENvbXBsZXRlU3ludGhldGljQ2xpY2tdOwogfQogCi1GdW5j
dGlvbjx2b2lkKGJvb2wpPiBQYWdlQ2xpZW50SW1wbDo6ZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdChXZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9y
aWdpbiYgb3JpZ2luLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
dm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdChXZWJGcmFtZVByb3h5JiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgb3JpZ2lu
LCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgW1t3cmFw
cGVyKG1fd2ViVmlldy0+X3BhZ2UtPnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpKSBfZ2VvbG9jYXRp
b25Qcm92aWRlcl0gZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25SZXF1ZXN0RnJvbU9yaWdpbjpv
cmlnaW4uc2VjdXJpdHlPcmlnaW4oKSBmcmFtZTpmcmFtZSBjb21wbGV0aW9uSGFuZGxlcjpXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSB2aWV3Om1fd2ViVmlld107Ci0gICAgcmV0dXJuIG51bGxw
dHI7CisgICAgW1t3cmFwcGVyKG1fd2ViVmlldy0+X3BhZ2UtPnByb2Nlc3MoKS5wcm9jZXNzUG9v
bCgpKSBfZ2VvbG9jYXRpb25Qcm92aWRlcl0gZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25SZXF1
ZXN0RnJvbU9yaWdpbjpvcmlnaW4uc2VjdXJpdHlPcmlnaW4oKSBmcmFtZTpmcmFtZSBjb21wbGV0
aW9uSGFuZGxlcjpzdGQ6OmV4Y2hhbmdlKGNvbXBsZXRpb25IYW5kbGVyLCBudWxscHRyKSB2aWV3
Om1fd2ViVmlld107CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFN0YXJ0UHJvdmlzaW9u
YWxMb2FkRm9yTWFpbkZyYW1lKCkKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMTgwNCkKKysrIFRvb2xzL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE3LTA5LTExICBBbGV4IENocmlzdGVu
c2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIFdLVUlEZWxlZ2F0
ZVByaXZhdGUgZXF1aXZhbGVudCBvZiBXS1BhZ2VVSUNsaWVudCdzIGRlY2lkZVBvbGljeUZvckdl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3NjY0MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjkyNzAw
MzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VJRGVsZWdhdGUubW06CisgICAgICAgICgtW0dl
b2xvY2F0aW9uRGVsZWdhdGUgaW5pdFdpdGhBbGxvd0dlb2xvY2F0aW9uOl0pOgorICAgICAgICAo
LVtHZW9sb2NhdGlvbkRlbGVnYXRlIF93ZWJWaWV3OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Np
b25Gb3JGcmFtZTpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW0dlb2xvY2F0aW9uRGVs
ZWdhdGUgd2ViVmlldzpydW5KYXZhU2NyaXB0QWxlcnRQYW5lbFdpdGhNZXNzYWdlOmluaXRpYXRl
ZEJ5RnJhbWU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgIChURVNUKToKKwogMjAxNy0w
OS0wOCAgTHVjYXMgRm9yc2NobGVyICA8bGZvcnNjaGxlckBhcHBsZS5jb20+CiAKICAgICAgICAg
YmlzZWN0LWJ1aWxkcyBkb2Vzbid0IHdvcmsgZHVlIHRvIG1pc3NpbmcgcmVxdWVzdHMgbW9kdWxl
CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VJRGVsZWdhdGUu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9V
SURlbGVnYXRlLm1tCShyZXZpc2lvbiAyMjE3NjkpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1VJRGVsZWdhdGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTI3LDEwICsy
NywxNCBAQAogCiAjaWYgV0tfQVBJX0VOQUJMRUQKIAorI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRp
ZXMuaCIKICNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKICNpbXBvcnQgIlV0aWxpdGllcy5oIgog
I2ltcG9ydCAiV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5oIgorI2ltcG9ydCA8V2ViS2l0
L1dLQ29udGV4dC5oPgogI2ltcG9ydCA8V2ViS2l0L1dLQ29udGV4dFByaXZhdGVNYWMuaD4KKyNp
bXBvcnQgPFdlYktpdC9XS0dlb2xvY2F0aW9uTWFuYWdlci5oPgorI2ltcG9ydCA8V2ViS2l0L1dL
R2VvbG9jYXRpb25Qb3NpdGlvbi5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2
YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tSZXRhaW5QdHIuaD4KICNpbXBvcnQgPFdlYktpdC9X
S1VJRGVsZWdhdGVQcml2YXRlLmg+CkBAIC03Miw2ICs3Niw3OSBAQCBURVNUKFdlYktpdCwgV0tX
ZWJWaWV3SXNQbGF5aW5nQXVkaW8pCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25l
KTsKIH0KIAorQGludGVyZmFjZSBHZW9sb2NhdGlvbkRlbGVnYXRlIDogTlNPYmplY3QgPFdLVUlE
ZWxlZ2F0ZVByaXZhdGU+IHsKKyAgICBib29sIF9hbGxvd0dlb2xvY2F0aW9uOworfQorCistIChp
ZClpbml0V2l0aEFsbG93R2VvbG9jYXRpb246KGJvb2wpYWxsb3dHZW9sb2NhdGlvbjsKKworQGVu
ZAorCitAaW1wbGVtZW50YXRpb24gR2VvbG9jYXRpb25EZWxlZ2F0ZQorCistIChpZClpbml0V2l0
aEFsbG93R2VvbG9jYXRpb246KGJvb2wpYWxsb3dHZW9sb2NhdGlvbgoreworICAgIGlmICghKHNl
bGYgPSBbc3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4gbmlsOworICAgIF9hbGxvd0dlb2xv
Y2F0aW9uID0gYWxsb3dHZW9sb2NhdGlvbjsKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9p
ZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNz
aW9uRm9yRnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgZGVjaXNpb25IYW5kbGVyOih2b2lkIChe
KShCT09MIGFsbG93ZWQpKWRlY2lzaW9uSGFuZGxlcgoreworICAgIEVYUEVDVF9UUlVFKGZyYW1l
LmlzTWFpbkZyYW1lKTsKKyAgICBFWFBFQ1RfU1RSRVEoZnJhbWUucmVxdWVzdC5VUkwuYWJzb2x1
dGVTdHJpbmcuVVRGOFN0cmluZywgX2FsbG93R2VvbG9jYXRpb24gPyAiaHR0cHM6Ly9leGFtcGxl
Lm9yZy8iIDogImh0dHBzOi8vZXhhbXBsZS5jb20vIik7CisgICAgRVhQRUNUX0VRKGZyYW1lLnNl
Y3VyaXR5T3JpZ2luLnBvcnQsIDApOworICAgIEVYUEVDVF9TVFJFUShmcmFtZS5zZWN1cml0eU9y
aWdpbi5wcm90b2NvbC5VVEY4U3RyaW5nLCAiaHR0cHMiKTsKKyAgICBFWFBFQ1RfU1RSRVEoZnJh
bWUuc2VjdXJpdHlPcmlnaW4uaG9zdC5VVEY4U3RyaW5nLCBfYWxsb3dHZW9sb2NhdGlvbiA/ICJl
eGFtcGxlLm9yZyIgOiAiZXhhbXBsZS5jb20iKTsKKyAgICBkZWNpc2lvbkhhbmRsZXIoX2FsbG93
R2VvbG9jYXRpb24pOworfQorCistICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
cnVuSmF2YVNjcmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGlu
aXRpYXRlZEJ5RnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgY29tcGxldGlvbkhhbmRsZXI6KHZv
aWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAgaWYgKF9hbGxvd0dlb2xvY2F0
aW9uKQorICAgICAgICBFWFBFQ1RfU1RSRVEobWVzc2FnZS5VVEY4U3RyaW5nLCAicG9zaXRpb24g
NTAuNjQ0MzU4IDMuMzQ1NDUzIik7CisgICAgZWxzZQorICAgICAgICBFWFBFQ1RfU1RSRVEobWVz
c2FnZS5VVEY4U3RyaW5nLCAiZXJyb3IgMSBVc2VyIGRlbmllZCBHZW9sb2NhdGlvbiIpOworICAg
IGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgZG9uZSA9IHRydWU7Cit9CisKK0BlbmQKKworVEVT
VChXZWJLaXQsIEdlb2xvY2F0aW9uUGVybWlzc2lvbikKK3sKKyAgICBOU1N0cmluZyAqaHRtbCA9
IEAiPHNjcmlwdD5uYXZpZ2F0b3IuZ2VvbG9jYXRpb24ud2F0Y2hQb3NpdGlvbigiCisgICAgICAg
ICJmdW5jdGlvbihwKSB7IGFsZXJ0KCdwb3NpdGlvbiAnICsgcC5jb29yZHMubGF0aXR1ZGUgKyAn
ICcgKyBwLmNvb3Jkcy5sb25naXR1ZGUpIH0sIgorICAgICAgICAiZnVuY3Rpb24oZSkgeyBhbGVy
dCgnZXJyb3IgJyArIGUuY29kZSArICcgJyArIGUubWVzc2FnZSkgfSkiCisgICAgIjwvc2NyaXB0
PiI7CisKKyAgICBhdXRvIHBvb2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gaW5p
dF0pOworICAgIAorICAgIFdLR2VvbG9jYXRpb25Qcm92aWRlclYxIHByb3ZpZGVyQ2FsbGJhY2s7
CisgICAgbWVtc2V0KCZwcm92aWRlckNhbGxiYWNrLCAwLCBzaXplb2YoV0tHZW9sb2NhdGlvblBy
b3ZpZGVyVjEpKTsKKyAgICBwcm92aWRlckNhbGxiYWNrLmJhc2UudmVyc2lvbiA9IDE7CisgICAg
cHJvdmlkZXJDYWxsYmFjay5zdGFydFVwZGF0aW5nID0gW10gKFdLR2VvbG9jYXRpb25NYW5hZ2Vy
UmVmIG1hbmFnZXIsIGNvbnN0IHZvaWQqKSB7CisgICAgICAgIFdLR2VvbG9jYXRpb25NYW5hZ2Vy
UHJvdmlkZXJEaWRDaGFuZ2VQb3NpdGlvbihtYW5hZ2VyLCBhZG9wdFdLKFdLR2VvbG9jYXRpb25Q
b3NpdGlvbkNyZWF0ZSgwLCA1MC42NDQzNTgsIDMuMzQ1NDUzLCAyLjUzKSkuZ2V0KCkpOworICAg
IH07CisgICAgV0tHZW9sb2NhdGlvbk1hbmFnZXJTZXRQcm92aWRlcihXS0NvbnRleHRHZXRHZW9s
b2NhdGlvbk1hbmFnZXIoKFdLQ29udGV4dFJlZilwb29sLmdldCgpKSwgJnByb3ZpZGVyQ2FsbGJh
Y2suYmFzZSk7CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkucHJv
Y2Vzc1Bvb2wgPSBwb29sLmdldCgpOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgODAwLCA2MDAp
IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIGF1dG8gZGVsZWdhdGUx
ID0gYWRvcHROUyhbW0dlb2xvY2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoQWxsb3dHZW9s
b2NhdGlvbjpmYWxzZV0pOworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUxLmdl
dCgpXTsKKyAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpodG1sIGJhc2VVUkw6W05TVVJMIFVS
TFdpdGhTdHJpbmc6QCJodHRwczovL2V4YW1wbGUuY29tLyJdXTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIGF1dG8gZGVsZWdh
dGUyID0gYWRvcHROUyhbW0dlb2xvY2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoQWxsb3dH
ZW9sb2NhdGlvbjp0cnVlXSk7CisgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZTIu
Z2V0KCldOworICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOmh0bWwgYmFzZVVSTDpbTlNVUkwg
VVJMV2l0aFN0cmluZzpAImh0dHBzOi8vZXhhbXBsZS5vcmcvIl1dOworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZSk7Cit9CisKKwogI2lmIFBMQVRGT1JNKE1BQykKIAogQGNsYXNz
IFVJVGVzdERlbGVnYXRlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>