<?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>176274</bug_id>
          
          <creation_ts>2017-09-02 01:25:09 -0700</creation_ts>
          <short_desc>Add WKUIDelegatePrivate equivalent of WKPageUIClient&apos;s unavailablePluginButtonClicked</short_desc>
          <delta_ts>2017-09-27 12:53:31 -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>darin</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1344782</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-09-02 01:25:09 -0700</bug_when>
    <thetext>Add WKUIDelegatePrivate equivalent of WKPageUIClient&apos;s unavailablePluginButtonClicked</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344783</commentid>
    <comment_count>1</comment_count>
      <attachid>319709</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-09-02 01:25:57 -0700</bug_when>
    <thetext>Created attachment 319709
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344822</commentid>
    <comment_count>2</comment_count>
      <attachid>319709</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-09-02 10:56:37 -0700</bug_when>
    <thetext>Comment on attachment 319709
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h:120
&gt; +#if !TARGET_OS_IOS

I think this should be written in the affirmative, #if TARGET_OS_MAC (whatever the right name for that is), because the default for any new target should be no plugins.

Also, in the past I thought the official name was &quot;plug-in&quot;, not &quot;plugin&quot;, and therefore the &quot;I&quot; would be capitalized in public identifiers like _plugInsEnabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1345331</commentid>
    <comment_count>3</comment_count>
      <attachid>319873</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-09-04 21:32:08 -0700</bug_when>
    <thetext>Created attachment 319873
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1345340</commentid>
    <comment_count>4</comment_count>
      <attachid>319877</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-09-04 22:14:48 -0700</bug_when>
    <thetext>Created attachment 319877
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1345342</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-09-04 22:26:00 -0700</bug_when>
    <thetext>TARGET_OS_OSX didn&apos;t seem to work and it isn&apos;t used anywhere else.  I changed it to !if !TARGET_OS_IPHONE which seems to mean just Mac, not phones, tablets, watches, tvs, or anything else so far.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1345506</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-09-05 10:37:05 -0700</bug_when>
    <thetext>http://trac.webkit.org/r221621</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353713</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-27 12:53:31 -0700</bug_when>
    <thetext>&lt;rdar://problem/34694218&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319709</attachid>
            <date>2017-09-02 01:25:57 -0700</date>
            <delta_ts>2017-09-04 21:32:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176274-20170902012556.patch</filename>
            <type>text/plain</type>
            <size>17252</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjE1MDMpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDE3LTA5LTAyICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIFdLVUlEZWxl
Z2F0ZVByaXZhdGUgZXF1aXZhbGVudCBvZiBXS1BhZ2VVSUNsaWVudCdzIHVuYXZhaWxhYmxlUGx1
Z2luQnV0dG9uQ2xpY2tlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTc2Mjc0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yOTI3MDAzNT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQVBJVUlDbGllbnQuaDoKKyAgICAgICAgKEFQSTo6VUlDbGllbnQ6OnVuYXZhaWxhYmxlUGx1
Z2luQnV0dG9uQ2xpY2tlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6
CisgICAgICAgIChXS1BhZ2VTZXRQYWdlVUlDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfc2V0
UGx1Z2luc0VuYWJsZWQ6XSk6CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX3BsdWdpbnNFbmFi
bGVkXSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0
ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6
OnNldERlbGVnYXRlKToKKyAgICAgICAgKFdlYktpdDo6dG9XS1BsdWdpblVuYXZhaWxhYmlsaXR5
UmVhc29uKToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnVuYXZhaWxh
YmxlUGx1Z2luQnV0dG9uQ2xpY2tlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dW5hdmFpbGFibGVQbHVnaW5C
dXR0b25DbGlja2VkKToKKwogMjAxNy0wOS0wMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBXS1VJRGVsZWdhdGVQcml2YXRlIGVxdWl2
YWxlbnQgb2YgV0tQYWdlVUlDbGllbnQncyB0b29sYmFyc0FyZVZpc2libGUKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkocmV2aXNpb24gMjIxNTAzKQorKysg
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDAxNSwxMCArNDAxNSw5IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp1bmF2YWlsYWJsZVBsdWdp
bkJ1dHQKICAgICBNRVNTQUdFX0NIRUNLX1VSTChmcmFtZVVSTFN0cmluZyk7CiAgICAgTUVTU0FH
RV9DSEVDS19VUkwocGFnZVVSTFN0cmluZyk7CiAKLSAgICBSZWZQdHI8QVBJOjpEaWN0aW9uYXJ5
PiBwbHVnaW5JbmZvcm1hdGlvbjsKICAgICBTdHJpbmcgbmV3TWltZVR5cGUgPSBtaW1lVHlwZTsK
ICAgICBQbHVnaW5Nb2R1bGVJbmZvIHBsdWdpbiA9IG1fcHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5w
bHVnaW5JbmZvU3RvcmUoKS5maW5kUGx1Z2luKG5ld01pbWVUeXBlLCBVUkwoVVJMKCksIHBsdWdp
blVSTFN0cmluZykpOwotICAgIHBsdWdpbkluZm9ybWF0aW9uID0gY3JlYXRlUGx1Z2luSW5mb3Jt
YXRpb25EaWN0aW9uYXJ5KHBsdWdpbiwgZnJhbWVVUkxTdHJpbmcsIG1pbWVUeXBlLCBwYWdlVVJM
U3RyaW5nLCBwbHVnaW5zcGFnZUF0dHJpYnV0ZVVSTFN0cmluZywgcGx1Z2luVVJMU3RyaW5nKTsK
KyAgICBhdXRvIHBsdWdpbkluZm9ybWF0aW9uID0gY3JlYXRlUGx1Z2luSW5mb3JtYXRpb25EaWN0
aW9uYXJ5KHBsdWdpbiwgZnJhbWVVUkxTdHJpbmcsIG1pbWVUeXBlLCBwYWdlVVJMU3RyaW5nLCBw
bHVnaW5zcGFnZUF0dHJpYnV0ZVVSTFN0cmluZywgcGx1Z2luVVJMU3RyaW5nKTsKIAogICAgIFdL
UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gPSBr
V0tQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvblBsdWdpbk1pc3Npbmc7CiAgICAgc3dpdGNoIChz
dGF0aWNfY2FzdDxSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFz
b24+KG9wYXF1ZVBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSkgewpAQCAtNDAzNSw3ICs0MDM0
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnVuYXZhaWxhYmxlUGx1Z2luQnV0dAogICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAKLSAgICBtX3VpQ2xpZW50LT51bmF2YWlsYWJs
ZVBsdWdpbkJ1dHRvbkNsaWNrZWQodGhpcywgcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24sIHBs
dWdpbkluZm9ybWF0aW9uLmdldCgpKTsKKyAgICBtX3VpQ2xpZW50LT51bmF2YWlsYWJsZVBsdWdp
bkJ1dHRvbkNsaWNrZWQoKnRoaXMsIHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uLCBwbHVnaW5J
bmZvcm1hdGlvbi5nZXQoKSk7CiB9CiAjZW5kaWYgLy8gRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9B
UEkpCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCShy
ZXZpc2lvbiAyMjE1MDMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGll
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtOTMsNyArOTMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIHNldFN0YXR1c1RleHQoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBjb25zdCBXVEY6OlN0
cmluZyYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChXZWJL
aXQ6OldlYlBhZ2VQcm94eSosIGNvbnN0IFdlYktpdDo6V2ViSGl0VGVzdFJlc3VsdERhdGEmLCBX
ZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcnMsIE9iamVjdCopIHsgfQogI2lmIEVOQUJMRShORVRT
Q0FQRV9QTFVHSU5fQVBJKQotICAgIHZpcnR1YWwgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRv
bkNsaWNrZWQoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBXS1BsdWdpblVuYXZhaWxhYmlsaXR5UmVh
c29uLCBEaWN0aW9uYXJ5KikgeyB9CisgICAgdmlydHVhbCB2b2lkIHVuYXZhaWxhYmxlUGx1Z2lu
QnV0dG9uQ2xpY2tlZChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdLUGx1Z2luVW5hdmFpbGFiaWxp
dHlSZWFzb24sIERpY3Rpb25hcnkmKSB7IH0KICNlbmRpZiAvLyBFTkFCTEUoTkVUU0NBUEVfUExV
R0lOX0FQSSkKIAogICAgIHZpcnR1YWwgdm9pZCBkaWROb3RIYW5kbGVLZXlFdmVudChXZWJLaXQ6
OldlYlBhZ2VQcm94eSosIGNvbnN0IFdlYktpdDo6TmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYpIHsg
fQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCShyZXZpc2lv
biAyMjE1MDMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xNzg4LDMyICsxNzg4LDMyIEBAIHZvaWQgV0tQYWdlU2V0UGFnZVVJ
Q2xpZW50KFdLUGFnZVJlZiBwYWcKICAgICAgICAgfQogCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BM
VUdJTl9BUEkpCi0gICAgICAgIHZvaWQgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKFdl
YlBhZ2VQcm94eSogcGFnZSwgV0tQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiBwbHVnaW5VbmF2
YWlsYWJpbGl0eVJlYXNvbiwgQVBJOjpEaWN0aW9uYXJ5KiBwbHVnaW5JbmZvcm1hdGlvbikgZmlu
YWwKKyAgICAgICAgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoV2ViUGFnZVBy
b3h5JiBwYWdlLCBXS1BsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uIHBsdWdpblVuYXZhaWxhYmls
aXR5UmVhc29uLCBBUEk6OkRpY3Rpb25hcnkmIHBsdWdpbkluZm9ybWF0aW9uKSBmaW5hbAogICAg
ICAgICB7CiAgICAgICAgICAgICBpZiAocGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gPT0ga1dL
UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb25QbHVnaW5NaXNzaW5nKSB7CiAgICAgICAgICAgICAg
ICAgaWYgKG1fY2xpZW50Lm1pc3NpbmdQbHVnaW5CdXR0b25DbGlja2VkX2RlcHJlY2F0ZWRGb3JV
c2VXaXRoVjApCiAgICAgICAgICAgICAgICAgICAgIG1fY2xpZW50Lm1pc3NpbmdQbHVnaW5CdXR0
b25DbGlja2VkX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAoCi0gICAgICAgICAgICAgICAgICAgICAg
ICB0b0FQSShwYWdlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHRvQVBJKHBsdWdpbkluZm9y
bWF0aW9uLT5nZXQ8QVBJOjpTdHJpbmc+KHBsdWdpbkluZm9ybWF0aW9uTUlNRVR5cGVLZXkoKSkp
LAotICAgICAgICAgICAgICAgICAgICAgICAgdG9BUEkocGx1Z2luSW5mb3JtYXRpb24tPmdldDxB
UEk6OlN0cmluZz4ocGx1Z2luSW5mb3JtYXRpb25QbHVnaW5VUkxLZXkoKSkpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgdG9BUEkocGx1Z2luSW5mb3JtYXRpb24tPmdldDxBUEk6OlN0cmluZz4o
cGx1Z2luSW5mb3JtYXRpb25QbHVnaW5zcGFnZUF0dHJpYnV0ZVVSTEtleSgpKSksCisgICAgICAg
ICAgICAgICAgICAgICAgICB0b0FQSSgmcGFnZSksCisgICAgICAgICAgICAgICAgICAgICAgICB0
b0FQSShwbHVnaW5JbmZvcm1hdGlvbi5nZXQ8QVBJOjpTdHJpbmc+KHBsdWdpbkluZm9ybWF0aW9u
TUlNRVR5cGVLZXkoKSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgdG9BUEkocGx1Z2luSW5m
b3JtYXRpb24uZ2V0PEFQSTo6U3RyaW5nPihwbHVnaW5JbmZvcm1hdGlvblBsdWdpblVSTEtleSgp
KSksCisgICAgICAgICAgICAgICAgICAgICAgICB0b0FQSShwbHVnaW5JbmZvcm1hdGlvbi5nZXQ8
QVBJOjpTdHJpbmc+KHBsdWdpbkluZm9ybWF0aW9uUGx1Z2luc3BhZ2VBdHRyaWJ1dGVVUkxLZXko
KSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsK
ICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKG1fY2xpZW50LnVuYXZhaWxhYmxlUGx1
Z2luQnV0dG9uQ2xpY2tlZF9kZXByZWNhdGVkRm9yVXNlV2l0aFYxKQogICAgICAgICAgICAgICAg
IG1fY2xpZW50LnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZF9kZXByZWNhdGVkRm9yVXNl
V2l0aFYxKAotICAgICAgICAgICAgICAgICAgICB0b0FQSShwYWdlKSwKKyAgICAgICAgICAgICAg
ICAgICAgdG9BUEkoJnBhZ2UpLAogICAgICAgICAgICAgICAgICAgICBwbHVnaW5VbmF2YWlsYWJp
bGl0eVJlYXNvbiwKLSAgICAgICAgICAgICAgICAgICAgdG9BUEkocGx1Z2luSW5mb3JtYXRpb24t
PmdldDxBUEk6OlN0cmluZz4ocGx1Z2luSW5mb3JtYXRpb25NSU1FVHlwZUtleSgpKSksCi0gICAg
ICAgICAgICAgICAgICAgIHRvQVBJKHBsdWdpbkluZm9ybWF0aW9uLT5nZXQ8QVBJOjpTdHJpbmc+
KHBsdWdpbkluZm9ybWF0aW9uUGx1Z2luVVJMS2V5KCkpKSwKLSAgICAgICAgICAgICAgICAgICAg
dG9BUEkocGx1Z2luSW5mb3JtYXRpb24tPmdldDxBUEk6OlN0cmluZz4ocGx1Z2luSW5mb3JtYXRp
b25QbHVnaW5zcGFnZUF0dHJpYnV0ZVVSTEtleSgpKSksCisgICAgICAgICAgICAgICAgICAgIHRv
QVBJKHBsdWdpbkluZm9ybWF0aW9uLmdldDxBUEk6OlN0cmluZz4ocGx1Z2luSW5mb3JtYXRpb25N
SU1FVHlwZUtleSgpKSksCisgICAgICAgICAgICAgICAgICAgIHRvQVBJKHBsdWdpbkluZm9ybWF0
aW9uLmdldDxBUEk6OlN0cmluZz4ocGx1Z2luSW5mb3JtYXRpb25QbHVnaW5VUkxLZXkoKSkpLAor
ICAgICAgICAgICAgICAgICAgICB0b0FQSShwbHVnaW5JbmZvcm1hdGlvbi5nZXQ8QVBJOjpTdHJp
bmc+KHBsdWdpbkluZm9ybWF0aW9uUGx1Z2luc3BhZ2VBdHRyaWJ1dGVVUkxLZXkoKSkpLAogICAg
ICAgICAgICAgICAgICAgICBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogCiAgICAgICAgICAg
ICBpZiAobV9jbGllbnQudW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKQogICAgICAgICAg
ICAgICAgIG1fY2xpZW50LnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZCgKLSAgICAgICAg
ICAgICAgICAgICAgdG9BUEkocGFnZSksCisgICAgICAgICAgICAgICAgICAgIHRvQVBJKCZwYWdl
KSwKICAgICAgICAgICAgICAgICAgICAgcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24sCi0gICAg
ICAgICAgICAgICAgICAgIHRvQVBJKHBsdWdpbkluZm9ybWF0aW9uKSwKKyAgICAgICAgICAgICAg
ICAgICAgdG9BUEkoJnBsdWdpbkluZm9ybWF0aW9uKSwKICAgICAgICAgICAgICAgICAgICAgbV9j
bGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICAgICAgfQogI2VuZGlmIC8vIEVOQUJMRShORVRT
Q0FQRV9QTFVHSU5fQVBJKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJlZmVyZW5jZXMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0JKHJldmlzaW9uIDIyMTQ2NykKKysrIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC02MzcsNiArNjM3LDE2IEBAIC0gKHZvaWQpX3NldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlw
Ym9hcmQKICAgICBfcHJlZmVyZW5jZXMtPnNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQo
amF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCk7CiB9CiAKKy0gKHZvaWQpX3NldFBsdWdpbnNF
bmFibGVkOihCT09MKWVuYWJsZWQKK3sKKyAgICBfcHJlZmVyZW5jZXMtPnNldFBsdWdpbnNFbmFi
bGVkKGVuYWJsZWQpOworfQorCistIChCT09MKV9wbHVnaW5zRW5hYmxlZAoreworICAgIHJldHVy
biBfcHJlZmVyZW5jZXMtPnBsdWdpbnNFbmFibGVkKCk7Cit9CisKIC0gKEJPT0wpX2phdmFTY3Jp
cHRDYW5BY2Nlc3NDbGlwYm9hcmQKIHsKICAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5qYXZhU2Ny
aXB0Q2FuQWNjZXNzQ2xpcGJvYXJkKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAkocmV2aXNpb24g
MjIxNDY3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5j
ZXNQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTExNyw2ICsxMTcsMTAgQEAgdHlwZWRlZiBO
U19PUFRJT05TKE5TVUludGVnZXIsIF9XS0phdmFTYwogLSAoQk9PTClfaXNFbmFibGVkRm9yRmVh
dHVyZTooX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqKWZlYXR1cmUgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwogLSAodm9pZClfc2V0RW5hYmxlZDooQk9PTCl2YWx1
ZSBmb3JGZWF0dXJlOihfV0tFeHBlcmltZW50YWxGZWF0dXJlICopZmVhdHVyZSBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7CiAKKyNpZiAhVEFSR0VUX09TX0lPUwor
QHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UGx1Z2luc0VuYWJsZWQ6KSBCT09MIF9w
bHVnaW5zRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CisjZW5k
aWYKKwogQGVuZAogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAkocmV2aXNpb24gMjIxNTAz
KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZh
dGUuaAkod29ya2luZyBjb3B5KQpAQCAtNjQsNiArNjQsMTIgQEAgdHlwZWRlZiBOU19FTlVNKE5T
SW50ZWdlciwgX1dLUmVzb3VyY2VMaQogICAgIF9XS1Jlc291cmNlTGltaXRDUFUsCiB9IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKIAordHlwZWRlZiBOU19FTlVNKE5TSW50
ZWdlciwgX1dLUGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIHsKKyAgICBfV0tQbHVnaW5VbmF2
YWlsYWJpbGl0eVJlYXNvblBsdWdpbk1pc3NpbmcsCisgICAgX1dLUGx1Z2luVW5hdmFpbGFiaWxp
dHlSZWFzb25QbHVnaW5DcmFzaGVkLAorICAgIF9XS1BsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29u
SW5zZWN1cmVQbHVnaW5WZXJzaW9uCit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpKTsKKwogdHlwZWRlZiBOU19PUFRJT05TKE5TSW50ZWdlciwgX1dLQXV0b3BsYXlFdmVudEZs
YWdzKSB7CiAgICAgX1dLQXV0b3BsYXlFdmVudEZsYWdzTm9uZSA9IDAsCiAgICAgX1dLQXV0b3Bs
YXlFdmVudEZsYWdzSGFzQXVkaW8gPSAxIDw8IDAsCkBAIC0xNTMsNiArMTU5LDcgQEAgc3RydWN0
IFVJRWRnZUluc2V0czsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZ2V0
VG9vbGJhcnNBcmVWaXNpYmxlV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKEJPT0wpKWNv
bXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKIC0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc2F2ZURhdGFUb0ZpbGU6KE5TRGF0
YSAqKWRhdGEgc3VnZ2VzdGVkRmlsZW5hbWU6KE5TU3RyaW5nICopc3VnZ2VzdGVkRmlsZW5hbWUg
bWltZVR5cGU6KE5TU3RyaW5nICopbWltZVR5cGUgb3JpZ2luYXRpbmdVUkw6KE5TVVJMICopdXJs
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKIC0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGls
ZUluRm9yZWdyb3VuZDooX1dLUmVzb3VyY2VMaW1pdClsaW1pdCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZFdpdGhSZWFzb246KF9XS1BsdWdpblVuYXZh
aWxhYmlsaXR5UmVhc29uKXJlYXNvbiBwbHVnaW5JbmZvOihOU0RpY3Rpb25hcnkgKilwbHVnaW5J
bmZvOwogLSAoTlNNZW51ICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29udGV4dE1l
bnU6KE5TTWVudSAqKW1lbnUgZm9yRWxlbWVudDooX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mbyAq
KWVsZW1lbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpKTsKIC0gKE5TTWVudSAqKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbnRleHRNZW51OihOU01lbnUgKiltZW51IGZv
ckVsZW1lbnQ6KF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8gKillbGVtZW50IHVzZXJJbmZvOihp
ZCA8TlNTZWN1cmVDb2Rpbmc+KXVzZXJJbmZvIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEy
KSk7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVn
YXRlLmgJKHJldmlzaW9uIDIyMTUwMykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VJRGVsZWdhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTAyLDYgKzEwMiw3IEBAIHByaXZhdGU6
CiAgICAgICAgIHZvaWQgdW5mb2N1cyhXZWJQYWdlUHJveHkqKSBmaW5hbDsKICAgICAgICAgdm9p
ZCBkaWROb3RIYW5kbGVXaGVlbEV2ZW50KFdlYlBhZ2VQcm94eSosIGNvbnN0IE5hdGl2ZVdlYldo
ZWVsRXZlbnQmKSBmaW5hbDsKICAgICAgICAgdm9pZCBoYW5kbGVBdXRvcGxheUV2ZW50KFdlYlBh
Z2VQcm94eSYsIFdlYkNvcmU6OkF1dG9wbGF5RXZlbnQsIE9wdGlvblNldDxXZWJDb3JlOjpBdXRv
cGxheUV2ZW50RmxhZ3M+KSBmaW5hbDsKKyAgICAgICAgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1
dHRvbkNsaWNrZWQoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXS1BsdWdpblVuYXZhaWxhYmlsaXR5
UmVhc29uLCBBUEk6OkRpY3Rpb25hcnkmKSBmaW5hbDsKICAgICAgICAgdm9pZCBkaWRDbGlja0F1
dG9GaWxsQnV0dG9uKFdlYlBhZ2VQcm94eSYsIEFQSTo6T2JqZWN0KikgZmluYWw7CiAgICAgICAg
IHZvaWQgdG9vbGJhcnNBcmVWaXNpYmxlKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgRnVuY3Rpb248
dm9pZChib29sKT4mJikgZmluYWw7CiAgICAgICAgIGJvb2wgcnVuT3BlblBhbmVsKFdlYlBhZ2VQ
cm94eSosIFdlYkZyYW1lUHJveHkqLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
LCBBUEk6Ok9wZW5QYW5lbFBhcmFtZXRlcnMqLCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclBy
b3h5KikgZmluYWw7CkBAIC0xNTIsNiArMTUzLDcgQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCB3
ZWJWaWV3VGFrZUZvY3VzIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkTm90SGFuZGxlV2hl
ZWxFdmVudCA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld0hhbmRsZUF1dG9wbGF5RXZlbnRXaXRo
RmxhZ3MgOiAxOworICAgICAgICBib29sIHdlYlZpZXdVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNs
aWNrZWQgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdEaWRDbGlja0F1dG9GaWxsQnV0dG9uV2l0
aFVzZXJJbmZvIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3R2V0VG9vbGJhcnNBcmVWaXNpYmxl
V2l0aENvbXBsZXRpb25IYW5kbGVyIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkRXhjZWVk
QmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZCA6IDE7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0JKHJldmlzaW9uIDIyMTUw
MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0JKHdvcmtp
bmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAKICNpbXBvcnQgIlVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkuaCIKICNpbXBvcnQgIldLRnJhbWVJbmZvSW50ZXJuYWwuaCIKICNpbXBvcnQg
IldLTlNEYXRhLmgiCisjaW1wb3J0ICJXS05TRGljdGlvbmFyeS5oIgogI2ltcG9ydCAiV0tOYXZp
Z2F0aW9uQWN0aW9uSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLT3BlblBhbmVsUGFyYW1ldGVyc0lu
dGVybmFsLmgiCiAjaW1wb3J0ICJXS1NlY3VyaXR5T3JpZ2luSW50ZXJuYWwuaCIKQEAgLTEwOCw2
ICsxMDksNyBAQCB2b2lkIFVJRGVsZWdhdGU6OnNldERlbGVnYXRlKGlkIDxXS1VJRGVsCiAgICAg
bV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1Rha2VGb2N1cyA9IFtkZWxlZ2F0ZSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnRha2VGb2N1czopXTsKICAgICBtX2RlbGVnYXRl
TWV0aG9kcy53ZWJWaWV3R2V0VG9vbGJhcnNBcmVWaXNpYmxlV2l0aENvbXBsZXRpb25IYW5kbGVy
ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6Z2V0VG9v
bGJhcnNBcmVWaXNpYmxlV2l0aENvbXBsZXRpb25IYW5kbGVyOildOwogICAgIG1fZGVsZWdhdGVN
ZXRob2RzLndlYlZpZXdEaWROb3RIYW5kbGVXaGVlbEV2ZW50ID0gW2RlbGVnYXRlIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkTm90SGFuZGxlV2hlZWxFdmVudDopXTsK
KyAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3VW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlj
a2VkID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6dW5h
dmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkV2l0aFJlYXNvbjpwbHVnaW5JbmZvOildOwogICAg
IG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdIYW5kbGVBdXRvcGxheUV2ZW50V2l0aEZsYWdzID0g
W2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6aGFuZGxlQXV0
b3BsYXlFdmVudDp3aXRoRmxhZ3M6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0Rp
ZENsaWNrQXV0b0ZpbGxCdXR0b25XaXRoVXNlckluZm8gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1Nl
bGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpkaWRDbGlja0F1dG9GaWxsQnV0dG9uV2l0aFVzZXJJ
bmZvOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRFeGNlZWRCYWNrZ3JvdW5k
UmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRX
aGlsZUluRm9yZWdyb3VuZDopXTsKQEAgLTQzMCw2ICs0MzIsMzIgQEAgdm9pZCBVSURlbGVnYXRl
OjpVSUNsaWVudDo6dW5mb2N1cyhXZWJLaQogICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+
KWRlbGVnYXRlIF91bmZvY3VzV2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJWaWV3XTsKIH0KIAor
c3RhdGljIF9XS1BsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uIHRvV0tQbHVnaW5VbmF2YWlsYWJp
bGl0eVJlYXNvbihXS1BsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uIHJlYXNvbikKK3sKKyAgICBz
d2l0Y2ggKHJlYXNvbikgeworICAgIGNhc2Uga1dLUGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb25Q
bHVnaW5NaXNzaW5nOgorICAgICAgICByZXR1cm4gX1dLUGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFz
b25QbHVnaW5NaXNzaW5nOworICAgIGNhc2Uga1dLUGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb25Q
bHVnaW5DcmFzaGVkOgorICAgICAgICByZXR1cm4gX1dLUGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFz
b25QbHVnaW5DcmFzaGVkOworICAgIGNhc2Uga1dLUGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb25J
bnNlY3VyZVBsdWdpblZlcnNpb246CisgICAgICAgIHJldHVybiBfV0tQbHVnaW5VbmF2YWlsYWJp
bGl0eVJlYXNvbkluc2VjdXJlUGx1Z2luVmVyc2lvbjsKKyAgICB9CisgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgcmV0dXJuIF9XS1BsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uUGx1Z2lu
TWlzc2luZzsKK30KKyAgICAKK3ZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnVuYXZhaWxhYmxl
UGx1Z2luQnV0dG9uQ2xpY2tlZChXZWJQYWdlUHJveHkmLCBXS1BsdWdpblVuYXZhaWxhYmlsaXR5
UmVhc29uIHJlYXNvbiwgQVBJOjpEaWN0aW9uYXJ5JiBwbHVnaW5JbmZvKQoreworICAgIGlmICgh
bV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdVbmF2YWlsYWJsZVBsdWdpbkJ1
dHRvbkNsaWNrZWQpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBhdXRvIGRlbGVnYXRlID0g
bV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCk7CisgICAgaWYgKCFkZWxlZ2F0ZSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dl
YlZpZXc6bV91aURlbGVnYXRlLm1fd2ViVmlldyB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNr
ZWRXaXRoUmVhc29uOnRvV0tQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbihyZWFzb24pIHBsdWdp
bkluZm86d3JhcHBlcihwbHVnaW5JbmZvKV07Cit9CisgICAgCiBzdGF0aWMgX1dLUmVzb3VyY2VM
aW1pdCB0b1dLUmVzb3VyY2VMaW1pdChXS1Jlc291cmNlTGltaXQgbGltaXQpCiB7CiAgICAgc3dp
dGNoIChsaW1pdCkgewpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L0NoYW5nZUxvZwkocmV2aXNpb24gMjIxNTI3KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMDktMDIgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgV0tVSURlbGVnYXRlUHJpdmF0
ZSBlcXVpdmFsZW50IG9mIFdLUGFnZVVJQ2xpZW50J3MgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25D
bGlja2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzYyNzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI5MjcwMDM1PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoLVtQbHVnaW5EZWxlZ2F0ZSBfd2Vi
Vmlldzp1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRXaXRoUmVhc29uOnBsdWdpbkluZm86
XSk6CisgICAgICAgIChURVNUKToKKwogMjAxNy0wOS0wMSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9A
YXBwbGUuY29tPgogCiAgICAgICAgIFdTTCBzaG91bGQgY2hlY2sgdW5yZWFjaGFibGUgY29kZSBh
bmQgbm8gcmV0dXJucwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9VSURlbGVnYXRlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvVUlEZWxlZ2F0ZS5tbQkocmV2aXNpb24gMjIxNTA1KQorKysgVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9VSURlbGVnYXRlLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0zMCw3ICszMCw5IEBACiAjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCiAjaW1wb3J0ICJV
dGlsaXRpZXMuaCIKICNpbXBvcnQgIldLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMuaCIKKyNp
bXBvcnQgPFdlYktpdC9XS0NvbnRleHRQcml2YXRlTWFjLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQ
cmVmZXJlbmNlc1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1JldGFpblB0ci5oPgogI2lt
cG9ydCA8V2ViS2l0L1dLVUlEZWxlZ2F0ZVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dl
YlZpZXdQcml2YXRlLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CkBAIC0xMjIsNiArMTI0
LDMzIEBAIFRFU1QoV2ViS2l0LCBTaG93V2ViVmlldykKICAgICBBU1NFUlRfRVEod2ViVmlld0Zy
b21EZWxlZ2F0ZUNhbGxiYWNrLCBjcmVhdGVkV2ViVmlldyk7CiB9CiAKKworQGludGVyZmFjZSBQ
bHVnaW5EZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS1VJRGVsZWdhdGVQcml2YXRlPgorQGVuZAorCitA
aW1wbGVtZW50YXRpb24gUGx1Z2luRGVsZWdhdGUKKworLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRXaXRoUmVhc29uOihf
V0tQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbilyZWFzb24gcGx1Z2luSW5mbzooTlNEaWN0aW9u
YXJ5ICopcGx1Z2luSW5mbworeworICAgIEFTU0VSVF9FUShfV0tQbHVnaW5VbmF2YWlsYWJpbGl0
eVJlYXNvblBsdWdpbk1pc3NpbmcsIHJlYXNvbik7CisgICAgQVNTRVJUX1RSVUUoW0AiYXBwbGlj
YXRpb24veC1zaG9ja3dhdmUtZmxhc2giIGlzRXF1YWxUb1N0cmluZzpbcGx1Z2luSW5mbyBvYmpl
Y3RGb3JLZXk6QCJQbHVnaW5JbmZvcm1hdGlvbk1JTUVUeXBlIl1dKTsKKyAgICBkb25lID0gdHJ1
ZTsKK30KKworQGVuZAorCitURVNUKFdlYktpdCwgVW5hdmFpbGFibGVQbHVnaW4pCit7CisgICAg
YXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxs
b2NdIGluaXRdKTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRQbHVnaW5z
RW5hYmxlZDpZRVNdOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbUGx1Z2luRGVsZWdh
dGUgYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAwKSBjb25m
aWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbd2ViVmlldyBzZXRVSURlbGVn
YXRlOmRlbGVnYXRlLmdldCgpXTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxT
dHJpbmc6QCI8b2JqZWN0IHR5cGU9J2FwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoJy8+Il07
CisgICAgW3dlYlZpZXcgc2VuZENsaWNrc0F0UG9pbnQ6TlNNYWtlUG9pbnQoMjEwLCA2MDAgLSA4
MCkgbnVtYmVyT2ZDbGlja3M6MV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25l
KTsKK30KKwogYm9vbCBmaXJzdFRvb2xiYXJEb25lOwogCiBAaW50ZXJmYWNlIFRvb2xiYXJEZWxl
Z2F0ZSA6IE5TT2JqZWN0IDxXS1VJRGVsZWdhdGVQcml2YXRlPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319873</attachid>
            <date>2017-09-04 21:32:08 -0700</date>
            <delta_ts>2017-09-04 22:14:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176274-20170904213207.patch</filename>
            <type>text/plain</type>
            <size>17271</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjE1MDMpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDE3LTA5LTAyICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIFdLVUlEZWxl
Z2F0ZVByaXZhdGUgZXF1aXZhbGVudCBvZiBXS1BhZ2VVSUNsaWVudCdzIHVuYXZhaWxhYmxlUGx1
Z2luQnV0dG9uQ2xpY2tlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTc2Mjc0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yOTI3MDAzNT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
QVBJVUlDbGllbnQuaDoKKyAgICAgICAgKEFQSTo6VUlDbGllbnQ6OnVuYXZhaWxhYmxlUGx1Z2lu
QnV0dG9uQ2xpY2tlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6Cisg
ICAgICAgIChXS1BhZ2VTZXRQYWdlVUlDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfc2V0UGx1
Z2luc0VuYWJsZWQ6XSk6CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX3BsdWdpbnNFbmFibGVk
XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OnNl
dERlbGVnYXRlKToKKyAgICAgICAgKFdlYktpdDo6dG9XS1BsdWdpblVuYXZhaWxhYmlsaXR5UmVh
c29uKToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnVuYXZhaWxhYmxl
UGx1Z2luQnV0dG9uQ2xpY2tlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dW5hdmFpbGFibGVQbHVnaW5CdXR0
b25DbGlja2VkKToKKwogMjAxNy0wOS0wMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBXS1VJRGVsZWdhdGVQcml2YXRlIGVxdWl2YWxl
bnQgb2YgV0tQYWdlVUlDbGllbnQncyB0b29sYmFyc0FyZVZpc2libGUKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkocmV2aXNpb24gMjIxNTAzKQorKysgU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDAxNSwxMCArNDAxNSw5IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp1bmF2YWlsYWJsZVBsdWdpbkJ1
dHQKICAgICBNRVNTQUdFX0NIRUNLX1VSTChmcmFtZVVSTFN0cmluZyk7CiAgICAgTUVTU0FHRV9D
SEVDS19VUkwocGFnZVVSTFN0cmluZyk7CiAKLSAgICBSZWZQdHI8QVBJOjpEaWN0aW9uYXJ5PiBw
bHVnaW5JbmZvcm1hdGlvbjsKICAgICBTdHJpbmcgbmV3TWltZVR5cGUgPSBtaW1lVHlwZTsKICAg
ICBQbHVnaW5Nb2R1bGVJbmZvIHBsdWdpbiA9IG1fcHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5wbHVn
aW5JbmZvU3RvcmUoKS5maW5kUGx1Z2luKG5ld01pbWVUeXBlLCBVUkwoVVJMKCksIHBsdWdpblVS
TFN0cmluZykpOwotICAgIHBsdWdpbkluZm9ybWF0aW9uID0gY3JlYXRlUGx1Z2luSW5mb3JtYXRp
b25EaWN0aW9uYXJ5KHBsdWdpbiwgZnJhbWVVUkxTdHJpbmcsIG1pbWVUeXBlLCBwYWdlVVJMU3Ry
aW5nLCBwbHVnaW5zcGFnZUF0dHJpYnV0ZVVSTFN0cmluZywgcGx1Z2luVVJMU3RyaW5nKTsKKyAg
ICBhdXRvIHBsdWdpbkluZm9ybWF0aW9uID0gY3JlYXRlUGx1Z2luSW5mb3JtYXRpb25EaWN0aW9u
YXJ5KHBsdWdpbiwgZnJhbWVVUkxTdHJpbmcsIG1pbWVUeXBlLCBwYWdlVVJMU3RyaW5nLCBwbHVn
aW5zcGFnZUF0dHJpYnV0ZVVSTFN0cmluZywgcGx1Z2luVVJMU3RyaW5nKTsKIAogICAgIFdLUGx1
Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gPSBrV0tQ
bHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvblBsdWdpbk1pc3Npbmc7CiAgICAgc3dpdGNoIChzdGF0
aWNfY2FzdDxSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24+
KG9wYXF1ZVBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSkgewpAQCAtNDAzNSw3ICs0MDM0LDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OnVuYXZhaWxhYmxlUGx1Z2luQnV0dAogICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAKLSAgICBtX3VpQ2xpZW50LT51bmF2YWlsYWJsZVBs
dWdpbkJ1dHRvbkNsaWNrZWQodGhpcywgcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24sIHBsdWdp
bkluZm9ybWF0aW9uLmdldCgpKTsKKyAgICBtX3VpQ2xpZW50LT51bmF2YWlsYWJsZVBsdWdpbkJ1
dHRvbkNsaWNrZWQoKnRoaXMsIHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uLCBwbHVnaW5JbmZv
cm1hdGlvbi5nZXQoKSk7CiB9CiAjZW5kaWYgLy8gRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkp
CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCShyZXZp
c2lvbiAyMjE1MDMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtOTMsNyArOTMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHNldFN0YXR1c1RleHQoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBjb25zdCBXVEY6OlN0cmlu
ZyYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChXZWJLaXQ6
OldlYlBhZ2VQcm94eSosIGNvbnN0IFdlYktpdDo6V2ViSGl0VGVzdFJlc3VsdERhdGEmLCBXZWJL
aXQ6OldlYkV2ZW50OjpNb2RpZmllcnMsIE9iamVjdCopIHsgfQogI2lmIEVOQUJMRShORVRTQ0FQ
RV9QTFVHSU5fQVBJKQotICAgIHZpcnR1YWwgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNs
aWNrZWQoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBXS1BsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29u
LCBEaWN0aW9uYXJ5KikgeyB9CisgICAgdmlydHVhbCB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0
dG9uQ2xpY2tlZChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdLUGx1Z2luVW5hdmFpbGFiaWxpdHlS
ZWFzb24sIERpY3Rpb25hcnkmKSB7IH0KICNlbmRpZiAvLyBFTkFCTEUoTkVUU0NBUEVfUExVR0lO
X0FQSSkKIAogICAgIHZpcnR1YWwgdm9pZCBkaWROb3RIYW5kbGVLZXlFdmVudChXZWJLaXQ6Oldl
YlBhZ2VQcm94eSosIGNvbnN0IFdlYktpdDo6TmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYpIHsgfQpJ
bmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCShyZXZpc2lvbiAy
MjE1MDMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNzg4LDMyICsxNzg4LDMyIEBAIHZvaWQgV0tQYWdlU2V0UGFnZVVJQ2xp
ZW50KFdLUGFnZVJlZiBwYWcKICAgICAgICAgfQogCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJ
Tl9BUEkpCi0gICAgICAgIHZvaWQgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKFdlYlBh
Z2VQcm94eSogcGFnZSwgV0tQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiBwbHVnaW5VbmF2YWls
YWJpbGl0eVJlYXNvbiwgQVBJOjpEaWN0aW9uYXJ5KiBwbHVnaW5JbmZvcm1hdGlvbikgZmluYWwK
KyAgICAgICAgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoV2ViUGFnZVByb3h5
JiBwYWdlLCBXS1BsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uIHBsdWdpblVuYXZhaWxhYmlsaXR5
UmVhc29uLCBBUEk6OkRpY3Rpb25hcnkmIHBsdWdpbkluZm9ybWF0aW9uKSBmaW5hbAogICAgICAg
ICB7CiAgICAgICAgICAgICBpZiAocGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gPT0ga1dLUGx1
Z2luVW5hdmFpbGFiaWxpdHlSZWFzb25QbHVnaW5NaXNzaW5nKSB7CiAgICAgICAgICAgICAgICAg
aWYgKG1fY2xpZW50Lm1pc3NpbmdQbHVnaW5CdXR0b25DbGlja2VkX2RlcHJlY2F0ZWRGb3JVc2VX
aXRoVjApCiAgICAgICAgICAgICAgICAgICAgIG1fY2xpZW50Lm1pc3NpbmdQbHVnaW5CdXR0b25D
bGlja2VkX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAoCi0gICAgICAgICAgICAgICAgICAgICAgICB0
b0FQSShwYWdlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHRvQVBJKHBsdWdpbkluZm9ybWF0
aW9uLT5nZXQ8QVBJOjpTdHJpbmc+KHBsdWdpbkluZm9ybWF0aW9uTUlNRVR5cGVLZXkoKSkpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgdG9BUEkocGx1Z2luSW5mb3JtYXRpb24tPmdldDxBUEk6
OlN0cmluZz4ocGx1Z2luSW5mb3JtYXRpb25QbHVnaW5VUkxLZXkoKSkpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgdG9BUEkocGx1Z2luSW5mb3JtYXRpb24tPmdldDxBUEk6OlN0cmluZz4ocGx1
Z2luSW5mb3JtYXRpb25QbHVnaW5zcGFnZUF0dHJpYnV0ZVVSTEtleSgpKSksCisgICAgICAgICAg
ICAgICAgICAgICAgICB0b0FQSSgmcGFnZSksCisgICAgICAgICAgICAgICAgICAgICAgICB0b0FQ
SShwbHVnaW5JbmZvcm1hdGlvbi5nZXQ8QVBJOjpTdHJpbmc+KHBsdWdpbkluZm9ybWF0aW9uTUlN
RVR5cGVLZXkoKSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgdG9BUEkocGx1Z2luSW5mb3Jt
YXRpb24uZ2V0PEFQSTo6U3RyaW5nPihwbHVnaW5JbmZvcm1hdGlvblBsdWdpblVSTEtleSgpKSks
CisgICAgICAgICAgICAgICAgICAgICAgICB0b0FQSShwbHVnaW5JbmZvcm1hdGlvbi5nZXQ8QVBJ
OjpTdHJpbmc+KHBsdWdpbkluZm9ybWF0aW9uUGx1Z2luc3BhZ2VBdHRyaWJ1dGVVUkxLZXkoKSkp
LAogICAgICAgICAgICAgICAgICAgICAgICAgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAg
ICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKG1fY2xpZW50LnVuYXZhaWxhYmxlUGx1Z2lu
QnV0dG9uQ2xpY2tlZF9kZXByZWNhdGVkRm9yVXNlV2l0aFYxKQogICAgICAgICAgICAgICAgIG1f
Y2xpZW50LnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZF9kZXByZWNhdGVkRm9yVXNlV2l0
aFYxKAotICAgICAgICAgICAgICAgICAgICB0b0FQSShwYWdlKSwKKyAgICAgICAgICAgICAgICAg
ICAgdG9BUEkoJnBhZ2UpLAogICAgICAgICAgICAgICAgICAgICBwbHVnaW5VbmF2YWlsYWJpbGl0
eVJlYXNvbiwKLSAgICAgICAgICAgICAgICAgICAgdG9BUEkocGx1Z2luSW5mb3JtYXRpb24tPmdl
dDxBUEk6OlN0cmluZz4ocGx1Z2luSW5mb3JtYXRpb25NSU1FVHlwZUtleSgpKSksCi0gICAgICAg
ICAgICAgICAgICAgIHRvQVBJKHBsdWdpbkluZm9ybWF0aW9uLT5nZXQ8QVBJOjpTdHJpbmc+KHBs
dWdpbkluZm9ybWF0aW9uUGx1Z2luVVJMS2V5KCkpKSwKLSAgICAgICAgICAgICAgICAgICAgdG9B
UEkocGx1Z2luSW5mb3JtYXRpb24tPmdldDxBUEk6OlN0cmluZz4ocGx1Z2luSW5mb3JtYXRpb25Q
bHVnaW5zcGFnZUF0dHJpYnV0ZVVSTEtleSgpKSksCisgICAgICAgICAgICAgICAgICAgIHRvQVBJ
KHBsdWdpbkluZm9ybWF0aW9uLmdldDxBUEk6OlN0cmluZz4ocGx1Z2luSW5mb3JtYXRpb25NSU1F
VHlwZUtleSgpKSksCisgICAgICAgICAgICAgICAgICAgIHRvQVBJKHBsdWdpbkluZm9ybWF0aW9u
LmdldDxBUEk6OlN0cmluZz4ocGx1Z2luSW5mb3JtYXRpb25QbHVnaW5VUkxLZXkoKSkpLAorICAg
ICAgICAgICAgICAgICAgICB0b0FQSShwbHVnaW5JbmZvcm1hdGlvbi5nZXQ8QVBJOjpTdHJpbmc+
KHBsdWdpbkluZm9ybWF0aW9uUGx1Z2luc3BhZ2VBdHRyaWJ1dGVVUkxLZXkoKSkpLAogICAgICAg
ICAgICAgICAgICAgICBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogCiAgICAgICAgICAgICBp
ZiAobV9jbGllbnQudW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKQogICAgICAgICAgICAg
ICAgIG1fY2xpZW50LnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZCgKLSAgICAgICAgICAg
ICAgICAgICAgdG9BUEkocGFnZSksCisgICAgICAgICAgICAgICAgICAgIHRvQVBJKCZwYWdlKSwK
ICAgICAgICAgICAgICAgICAgICAgcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24sCi0gICAgICAg
ICAgICAgICAgICAgIHRvQVBJKHBsdWdpbkluZm9ybWF0aW9uKSwKKyAgICAgICAgICAgICAgICAg
ICAgdG9BUEkoJnBsdWdpbkluZm9ybWF0aW9uKSwKICAgICAgICAgICAgICAgICAgICAgbV9jbGll
bnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICAgICAgfQogI2VuZGlmIC8vIEVOQUJMRShORVRTQ0FQ
RV9QTFVHSU5fQVBJKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJlZmVyZW5jZXMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJlZmVyZW5jZXMubW0JKHJldmlzaW9uIDIyMTQ2NykKKysrIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC02MzcsNiArNjM3LDE2IEBAIC0gKHZvaWQpX3NldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9h
cmQKICAgICBfcHJlZmVyZW5jZXMtPnNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoamF2
YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCk7CiB9CiAKKy0gKHZvaWQpX3NldFBsdWdJbnNFbmFi
bGVkOihCT09MKWVuYWJsZWQKK3sKKyAgICBfcHJlZmVyZW5jZXMtPnNldFBsdWdpbnNFbmFibGVk
KGVuYWJsZWQpOworfQorCistIChCT09MKV9wbHVnSW5zRW5hYmxlZAoreworICAgIHJldHVybiBf
cHJlZmVyZW5jZXMtPnBsdWdpbnNFbmFibGVkKCk7Cit9CisKIC0gKEJPT0wpX2phdmFTY3JpcHRD
YW5BY2Nlc3NDbGlwYm9hcmQKIHsKICAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5qYXZhU2NyaXB0
Q2FuQWNjZXNzQ2xpcGJvYXJkKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAkocmV2aXNpb24gMjIx
NDY3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQ
cml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTExNyw2ICsxMTcsMTAgQEAgdHlwZWRlZiBOU19P
UFRJT05TKE5TVUludGVnZXIsIF9XS0phdmFTYwogLSAoQk9PTClfaXNFbmFibGVkRm9yRmVhdHVy
ZTooX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqKWZlYXR1cmUgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTIpLCBpb3MoMTAuMCkpOwogLSAodm9pZClfc2V0RW5hYmxlZDooQk9PTCl2YWx1ZSBm
b3JGZWF0dXJlOihfV0tFeHBlcmltZW50YWxGZWF0dXJlICopZmVhdHVyZSBXS19BUElfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7CiAKKyNpZiBkZWZpbmVkKFRBUkdFVF9PU19P
U1gpICYmIFRBUkdFVF9PU19PU1gKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFBs
dWdJbnNFbmFibGVkOikgQk9PTCBfcGx1Z0luc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goV0tfTUFDX1RCQSkpOworI2VuZGlmCisKIEBlbmQKIAogI2VuZGlmCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2
YXRlLmgJKHJldmlzaW9uIDIyMTUwMykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTY0LDYgKzY0LDEy
IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS1Jlc291cmNlTGkKICAgICBfV0tSZXNv
dXJjZUxpbWl0Q1BVLAogfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CiAK
K3R5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS1BsdWdJblVuYXZhaWxhYmlsaXR5UmVhc29u
KSB7CisgICAgX1dLUGx1Z0luVW5hdmFpbGFiaWxpdHlSZWFzb25QbHVnaW5NaXNzaW5nLAorICAg
IF9XS1BsdWdJblVuYXZhaWxhYmlsaXR5UmVhc29uUGx1Z2luQ3Jhc2hlZCwKKyAgICBfV0tQbHVn
SW5VbmF2YWlsYWJpbGl0eVJlYXNvbkluc2VjdXJlUGx1Z2luVmVyc2lvbgorfSBXS19BUElfQVZB
SUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CisKIHR5cGVkZWYgTlNfT1BUSU9OUyhOU0ludGVn
ZXIsIF9XS0F1dG9wbGF5RXZlbnRGbGFncykgewogICAgIF9XS0F1dG9wbGF5RXZlbnRGbGFnc05v
bmUgPSAwLAogICAgIF9XS0F1dG9wbGF5RXZlbnRGbGFnc0hhc0F1ZGlvID0gMSA8PCAwLApAQCAt
MTUzLDYgKzE1OSw3IEBAIHN0cnVjdCBVSUVkZ2VJbnNldHM7CiAtICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IGdldFRvb2xiYXJzQXJlVmlzaWJsZVdpdGhDb21wbGV0aW9uSGFu
ZGxlcjoodm9pZCheKShCT09MKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IHNhdmVEYXRhVG9GaWxlOihOU0RhdGEgKilkYXRhIHN1Z2dlc3RlZEZpbGVuYW1lOihOU1N0cmlu
ZyAqKXN1Z2dlc3RlZEZpbGVuYW1lIG1pbWVUeXBlOihOU1N0cmluZyAqKW1pbWVUeXBlIG9yaWdp
bmF0aW5nVVJMOihOU1VSTCAqKXVybCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJB
KSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEV4Y2VlZEJhY2tn
cm91bmRSZXNvdXJjZUxpbWl0V2hpbGVJbkZvcmVncm91bmQ6KF9XS1Jlc291cmNlTGltaXQpbGlt
aXQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOworLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyB1bmF2YWlsYWJsZVBsdWdJbkJ1dHRvbkNsaWNrZWRXaXRo
UmVhc29uOihfV0tQbHVnSW5VbmF2YWlsYWJpbGl0eVJlYXNvbilyZWFzb24gcGx1Z0luSW5mbzoo
TlNEaWN0aW9uYXJ5ICopcGx1Z0luSW5mbzsKIC0gKE5TTWVudSAqKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IGNvbnRleHRNZW51OihOU01lbnUgKiltZW51IGZvckVsZW1lbnQ6KF9XS0Nv
bnRleHRNZW51RWxlbWVudEluZm8gKillbGVtZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEw
LjEyKSk7CiAtIChOU01lbnUgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjb250ZXh0
TWVudTooTlNNZW51ICopbWVudSBmb3JFbGVtZW50OihfV0tDb250ZXh0TWVudUVsZW1lbnRJbmZv
ICopZWxlbWVudCB1c2VySW5mbzooaWQgPE5TU2VjdXJlQ29kaW5nPil1c2VySW5mbyBXS19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMikpOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCShyZXZpc2lvbiAyMjE1MDMpCisrKyBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEw
Miw2ICsxMDIsNyBAQCBwcml2YXRlOgogICAgICAgICB2b2lkIHVuZm9jdXMoV2ViUGFnZVByb3h5
KikgZmluYWw7CiAgICAgICAgIHZvaWQgZGlkTm90SGFuZGxlV2hlZWxFdmVudChXZWJQYWdlUHJv
eHkqLCBjb25zdCBOYXRpdmVXZWJXaGVlbEV2ZW50JikgZmluYWw7CiAgICAgICAgIHZvaWQgaGFu
ZGxlQXV0b3BsYXlFdmVudChXZWJQYWdlUHJveHkmLCBXZWJDb3JlOjpBdXRvcGxheUV2ZW50LCBP
cHRpb25TZXQ8V2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdzPikgZmluYWw7CisgICAgICAgIHZv
aWQgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKFdlYktpdDo6V2ViUGFnZVByb3h5Jiwg
V0tQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiwgQVBJOjpEaWN0aW9uYXJ5JikgZmluYWw7CiAg
ICAgICAgIHZvaWQgZGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbihXZWJQYWdlUHJveHkmLCBBUEk6Ok9i
amVjdCopIGZpbmFsOwogICAgICAgICB2b2lkIHRvb2xiYXJzQXJlVmlzaWJsZShXZWJLaXQ6Oldl
YlBhZ2VQcm94eSYsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwogICAgICAgICBib29s
IHJ1bk9wZW5QYW5lbChXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgQVBJOjpPcGVuUGFuZWxQYXJhbWV0ZXJzKiwgV2ViT3Bl
blBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eSopIGZpbmFsOwpAQCAtMTUyLDYgKzE1Myw3IEBAIHBy
aXZhdGU6CiAgICAgICAgIGJvb2wgd2ViVmlld1Rha2VGb2N1cyA6IDE7CiAgICAgICAgIGJvb2wg
d2ViVmlld0RpZE5vdEhhbmRsZVdoZWVsRXZlbnQgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdI
YW5kbGVBdXRvcGxheUV2ZW50V2l0aEZsYWdzIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3VW5h
dmFpbGFibGVQbHVnSW5CdXR0b25DbGlja2VkIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGlk
Q2xpY2tBdXRvRmlsbEJ1dHRvbldpdGhVc2VySW5mbyA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmll
d0dldFRvb2xiYXJzQXJlVmlzaWJsZVdpdGhDb21wbGV0aW9uSGFuZGxlciA6IDE7CiAgICAgICAg
IGJvb2wgd2ViVmlld0RpZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJjZUxpbWl0V2hpbGVJbkZvcmVn
cm91bmQgOiAxOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0
ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVn
YXRlLm1tCShyZXZpc2lvbiAyMjE1MDMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBACiAjaW1wb3J0
ICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCiAjaW1wb3J0ICJXS0ZyYW1lSW5m
b0ludGVybmFsLmgiCiAjaW1wb3J0ICJXS05TRGF0YS5oIgorI2ltcG9ydCAiV0tOU0RpY3Rpb25h
cnkuaCIKICNpbXBvcnQgIldLTmF2aWdhdGlvbkFjdGlvbkludGVybmFsLmgiCiAjaW1wb3J0ICJX
S09wZW5QYW5lbFBhcmFtZXRlcnNJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tTZWN1cml0eU9yaWdp
bkludGVybmFsLmgiCkBAIC0xMDgsNiArMTA5LDcgQEAgdm9pZCBVSURlbGVnYXRlOjpzZXREZWxl
Z2F0ZShpZCA8V0tVSURlbAogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdUYWtlRm9jdXMg
PSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzp0YWtlRm9j
dXM6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0dldFRvb2xiYXJzQXJlVmlzaWJs
ZVdpdGhDb21wbGV0aW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKF93ZWJWaWV3OmdldFRvb2xiYXJzQXJlVmlzaWJsZVdpdGhDb21wbGV0aW9uSGFuZGxl
cjopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkTm90SGFuZGxlV2hlZWxFdmVu
dCA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRpZE5v
dEhhbmRsZVdoZWVsRXZlbnQ6KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1VuYXZh
aWxhYmxlUGx1Z0luQnV0dG9uQ2xpY2tlZCA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6
QHNlbGVjdG9yKF93ZWJWaWV3OnVuYXZhaWxhYmxlUGx1Z0luQnV0dG9uQ2xpY2tlZFdpdGhSZWFz
b246cGx1Z0luSW5mbzopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3SGFuZGxlQXV0
b3BsYXlFdmVudFdpdGhGbGFncyA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKF93ZWJWaWV3OmhhbmRsZUF1dG9wbGF5RXZlbnQ6d2l0aEZsYWdzOildOwogICAgIG1fZGVs
ZWdhdGVNZXRob2RzLndlYlZpZXdEaWRDbGlja0F1dG9GaWxsQnV0dG9uV2l0aFVzZXJJbmZvID0g
W2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkQ2xpY2tB
dXRvRmlsbEJ1dHRvbldpdGhVc2VySW5mbzopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJW
aWV3RGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZCA9IFtk
ZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRpZEV4Y2VlZEJh
Y2tncm91bmRSZXNvdXJjZUxpbWl0V2hpbGVJbkZvcmVncm91bmQ6KV07CkBAIC00MzAsNiArNDMy
LDMyIEBAIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnVuZm9jdXMoV2ViS2kKICAgICBbKGlk
IDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfdW5mb2N1c1dlYlZpZXc6bV91aURlbGVn
YXRlLm1fd2ViVmlld107CiB9CiAKK3N0YXRpYyBfV0tQbHVnSW5VbmF2YWlsYWJpbGl0eVJlYXNv
biB0b1dLUGx1Z0luVW5hdmFpbGFiaWxpdHlSZWFzb24oV0tQbHVnaW5VbmF2YWlsYWJpbGl0eVJl
YXNvbiByZWFzb24pCit7CisgICAgc3dpdGNoIChyZWFzb24pIHsKKyAgICBjYXNlIGtXS1BsdWdp
blVuYXZhaWxhYmlsaXR5UmVhc29uUGx1Z2luTWlzc2luZzoKKyAgICAgICAgcmV0dXJuIF9XS1Bs
dWdJblVuYXZhaWxhYmlsaXR5UmVhc29uUGx1Z2luTWlzc2luZzsKKyAgICBjYXNlIGtXS1BsdWdp
blVuYXZhaWxhYmlsaXR5UmVhc29uUGx1Z2luQ3Jhc2hlZDoKKyAgICAgICAgcmV0dXJuIF9XS1Bs
dWdJblVuYXZhaWxhYmlsaXR5UmVhc29uUGx1Z2luQ3Jhc2hlZDsKKyAgICBjYXNlIGtXS1BsdWdp
blVuYXZhaWxhYmlsaXR5UmVhc29uSW5zZWN1cmVQbHVnaW5WZXJzaW9uOgorICAgICAgICByZXR1
cm4gX1dLUGx1Z0luVW5hdmFpbGFiaWxpdHlSZWFzb25JbnNlY3VyZVBsdWdpblZlcnNpb247Cisg
ICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBfV0tQbHVnSW5VbmF2
YWlsYWJpbGl0eVJlYXNvblBsdWdpbk1pc3Npbmc7Cit9CisgICAgCit2b2lkIFVJRGVsZWdhdGU6
OlVJQ2xpZW50Ojp1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoV2ViUGFnZVByb3h5Jiwg
V0tQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiByZWFzb24sIEFQSTo6RGljdGlvbmFyeSYgcGx1
Z0luSW5mbykKK3sKKyAgICBpZiAoIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJW
aWV3VW5hdmFpbGFibGVQbHVnSW5CdXR0b25DbGlja2VkKQorICAgICAgICByZXR1cm47CisgICAg
CisgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpOworICAg
IGlmICghZGVsZWdhdGUpCisgICAgICAgIHJldHVybjsKKworICAgIFsoaWQgPFdLVUlEZWxlZ2F0
ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcgdW5hdmFp
bGFibGVQbHVnSW5CdXR0b25DbGlja2VkV2l0aFJlYXNvbjp0b1dLUGx1Z0luVW5hdmFpbGFiaWxp
dHlSZWFzb24ocmVhc29uKSBwbHVnSW5JbmZvOndyYXBwZXIocGx1Z0luSW5mbyldOworfQorICAg
IAogc3RhdGljIF9XS1Jlc291cmNlTGltaXQgdG9XS1Jlc291cmNlTGltaXQoV0tSZXNvdXJjZUxp
bWl0IGxpbWl0KQogewogICAgIHN3aXRjaCAobGltaXQpIHsKSW5kZXg6IFRvb2xzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMTUyNykKKysrIFRv
b2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE3LTA5LTAy
ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
QWRkIFdLVUlEZWxlZ2F0ZVByaXZhdGUgZXF1aXZhbGVudCBvZiBXS1BhZ2VVSUNsaWVudCdzIHVu
YXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2Mjc0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yOTI3
MDAzNT4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1b
UGx1Z2luRGVsZWdhdGUgX3dlYlZpZXc6dW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkV2l0
aFJlYXNvbjpwbHVnaW5JbmZvOl0pOgorICAgICAgICAoVEVTVCk6CisKIDIwMTctMDktMDEgIEZp
bGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBXU0wgc2hvdWxkIGNoZWNr
IHVucmVhY2hhYmxlIGNvZGUgYW5kIG5vIHJldHVybnMKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvVUlEZWxlZ2F0ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VJRGVsZWdhdGUubW0JKHJldmlzaW9uIDIy
MTUwNSkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVUlEZWxlZ2F0
ZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsOSBAQAogI2ltcG9ydCAiVGVzdFdLV2Vi
Vmlldy5oIgogI2ltcG9ydCAiVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdDb25maWd1
cmF0aW9uRXh0cmFzLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tDb250ZXh0UHJpdmF0ZU1hYy5oPgog
I2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQv
V0tSZXRhaW5QdHIuaD4KICNpbXBvcnQgPFdlYktpdC9XS1VJRGVsZWdhdGVQcml2YXRlLmg+CiAj
aW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0
ci5oPgpAQCAtMTIyLDYgKzEyNCwzMyBAQCBURVNUKFdlYktpdCwgU2hvd1dlYlZpZXcpCiAgICAg
QVNTRVJUX0VRKHdlYlZpZXdGcm9tRGVsZWdhdGVDYWxsYmFjaywgY3JlYXRlZFdlYlZpZXcpOwog
fQogCisKK0BpbnRlcmZhY2UgUGx1Z0luRGVsZWdhdGUgOiBOU09iamVjdCA8V0tVSURlbGVnYXRl
UHJpdmF0ZT4KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFBsdWdJbkRlbGVnYXRlCisKKy0gKHZv
aWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgdW5hdmFpbGFibGVQbHVnSW5CdXR0b25D
bGlja2VkV2l0aFJlYXNvbjooX1dLUGx1Z0luVW5hdmFpbGFiaWxpdHlSZWFzb24pcmVhc29uIHBs
dWdJbkluZm86KE5TRGljdGlvbmFyeSAqKXBsdWdJbkluZm8KK3sKKyAgICBBU1NFUlRfRVEoX1dL
UGx1Z0luVW5hdmFpbGFiaWxpdHlSZWFzb25QbHVnaW5NaXNzaW5nLCByZWFzb24pOworICAgIEFT
U0VSVF9UUlVFKFtAImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoIiBpc0VxdWFsVG9TdHJp
bmc6W3BsdWdJbkluZm8gb2JqZWN0Rm9yS2V5OkAiUGx1Z2luSW5mb3JtYXRpb25NSU1FVHlwZSJd
XSk7CisgICAgZG9uZSA9IHRydWU7Cit9CisKK0BlbmQKKworVEVTVChXZWJLaXQsIFVuYXZhaWxh
YmxlUGx1Z0luKQoreworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZp
ZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZl
cmVuY2VzXSBfc2V0UGx1Z0luc0VuYWJsZWQ6WUVTXTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRv
cHROUyhbW1BsdWdJbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgYXV0byB3ZWJWaWV3ID0g
YWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgw
LCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAg
W3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisgICAgW3dlYlZpZXcgc3lu
Y2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPG9iamVjdCB0eXBlPSdhcHBsaWNhdGlvbi94LXNo
b2Nrd2F2ZS1mbGFzaCcvPiJdOworICAgIFt3ZWJWaWV3IHNlbmRDbGlja3NBdFBvaW50Ok5TTWFr
ZVBvaW50KDIxMCwgNjAwIC0gODApIG51bWJlck9mQ2xpY2tzOjFdOworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZSk7Cit9CisKIGJvb2wgZmlyc3RUb29sYmFyRG9uZTsKIAogQGlu
dGVyZmFjZSBUb29sYmFyRGVsZWdhdGUgOiBOU09iamVjdCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319877</attachid>
            <date>2017-09-04 22:14:48 -0700</date>
            <delta_ts>2017-09-04 22:18:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176274-20170904221447.patch</filename>
            <type>text/plain</type>
            <size>17249</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjE1MDMpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDE3LTA5LTA0ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIFdLVUlEZWxl
Z2F0ZVByaXZhdGUgZXF1aXZhbGVudCBvZiBXS1BhZ2VVSUNsaWVudCdzIHVuYXZhaWxhYmxlUGx1
Z2luQnV0dG9uQ2xpY2tlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTc2Mjc0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yOTI3MDAzNT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
QVBJVUlDbGllbnQuaDoKKyAgICAgICAgKEFQSTo6VUlDbGllbnQ6OnVuYXZhaWxhYmxlUGx1Z2lu
QnV0dG9uQ2xpY2tlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6Cisg
ICAgICAgIChXS1BhZ2VTZXRQYWdlVUlDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfc2V0UGx1
Z2luc0VuYWJsZWQ6XSk6CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX3BsdWdpbnNFbmFibGVk
XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OnNl
dERlbGVnYXRlKToKKyAgICAgICAgKFdlYktpdDo6dG9XS1BsdWdpblVuYXZhaWxhYmlsaXR5UmVh
c29uKToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnVuYXZhaWxhYmxl
UGx1Z2luQnV0dG9uQ2xpY2tlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dW5hdmFpbGFibGVQbHVnaW5CdXR0
b25DbGlja2VkKToKKwogMjAxNy0wOS0wMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBXS1VJRGVsZWdhdGVQcml2YXRlIGVxdWl2YWxl
bnQgb2YgV0tQYWdlVUlDbGllbnQncyB0b29sYmFyc0FyZVZpc2libGUKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkocmV2aXNpb24gMjIxNTAzKQorKysgU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDAxNSwxMCArNDAxNSw5IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp1bmF2YWlsYWJsZVBsdWdpbkJ1
dHQKICAgICBNRVNTQUdFX0NIRUNLX1VSTChmcmFtZVVSTFN0cmluZyk7CiAgICAgTUVTU0FHRV9D
SEVDS19VUkwocGFnZVVSTFN0cmluZyk7CiAKLSAgICBSZWZQdHI8QVBJOjpEaWN0aW9uYXJ5PiBw
bHVnaW5JbmZvcm1hdGlvbjsKICAgICBTdHJpbmcgbmV3TWltZVR5cGUgPSBtaW1lVHlwZTsKICAg
ICBQbHVnaW5Nb2R1bGVJbmZvIHBsdWdpbiA9IG1fcHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5wbHVn
aW5JbmZvU3RvcmUoKS5maW5kUGx1Z2luKG5ld01pbWVUeXBlLCBVUkwoVVJMKCksIHBsdWdpblVS
TFN0cmluZykpOwotICAgIHBsdWdpbkluZm9ybWF0aW9uID0gY3JlYXRlUGx1Z2luSW5mb3JtYXRp
b25EaWN0aW9uYXJ5KHBsdWdpbiwgZnJhbWVVUkxTdHJpbmcsIG1pbWVUeXBlLCBwYWdlVVJMU3Ry
aW5nLCBwbHVnaW5zcGFnZUF0dHJpYnV0ZVVSTFN0cmluZywgcGx1Z2luVVJMU3RyaW5nKTsKKyAg
ICBhdXRvIHBsdWdpbkluZm9ybWF0aW9uID0gY3JlYXRlUGx1Z2luSW5mb3JtYXRpb25EaWN0aW9u
YXJ5KHBsdWdpbiwgZnJhbWVVUkxTdHJpbmcsIG1pbWVUeXBlLCBwYWdlVVJMU3RyaW5nLCBwbHVn
aW5zcGFnZUF0dHJpYnV0ZVVSTFN0cmluZywgcGx1Z2luVVJMU3RyaW5nKTsKIAogICAgIFdLUGx1
Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gPSBrV0tQ
bHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvblBsdWdpbk1pc3Npbmc7CiAgICAgc3dpdGNoIChzdGF0
aWNfY2FzdDxSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24+
KG9wYXF1ZVBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSkgewpAQCAtNDAzNSw3ICs0MDM0LDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OnVuYXZhaWxhYmxlUGx1Z2luQnV0dAogICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAKLSAgICBtX3VpQ2xpZW50LT51bmF2YWlsYWJsZVBs
dWdpbkJ1dHRvbkNsaWNrZWQodGhpcywgcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24sIHBsdWdp
bkluZm9ybWF0aW9uLmdldCgpKTsKKyAgICBtX3VpQ2xpZW50LT51bmF2YWlsYWJsZVBsdWdpbkJ1
dHRvbkNsaWNrZWQoKnRoaXMsIHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uLCBwbHVnaW5JbmZv
cm1hdGlvbi5nZXQoKSk7CiB9CiAjZW5kaWYgLy8gRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkp
CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCShyZXZp
c2lvbiAyMjE1MDMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtOTMsNyArOTMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHNldFN0YXR1c1RleHQoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBjb25zdCBXVEY6OlN0cmlu
ZyYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChXZWJLaXQ6
OldlYlBhZ2VQcm94eSosIGNvbnN0IFdlYktpdDo6V2ViSGl0VGVzdFJlc3VsdERhdGEmLCBXZWJL
aXQ6OldlYkV2ZW50OjpNb2RpZmllcnMsIE9iamVjdCopIHsgfQogI2lmIEVOQUJMRShORVRTQ0FQ
RV9QTFVHSU5fQVBJKQotICAgIHZpcnR1YWwgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNs
aWNrZWQoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBXS1BsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29u
LCBEaWN0aW9uYXJ5KikgeyB9CisgICAgdmlydHVhbCB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0
dG9uQ2xpY2tlZChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdLUGx1Z2luVW5hdmFpbGFiaWxpdHlS
ZWFzb24sIERpY3Rpb25hcnkmKSB7IH0KICNlbmRpZiAvLyBFTkFCTEUoTkVUU0NBUEVfUExVR0lO
X0FQSSkKIAogICAgIHZpcnR1YWwgdm9pZCBkaWROb3RIYW5kbGVLZXlFdmVudChXZWJLaXQ6Oldl
YlBhZ2VQcm94eSosIGNvbnN0IFdlYktpdDo6TmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYpIHsgfQpJ
bmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCShyZXZpc2lvbiAy
MjE1MDMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNzg4LDMyICsxNzg4LDMyIEBAIHZvaWQgV0tQYWdlU2V0UGFnZVVJQ2xp
ZW50KFdLUGFnZVJlZiBwYWcKICAgICAgICAgfQogCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJ
Tl9BUEkpCi0gICAgICAgIHZvaWQgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKFdlYlBh
Z2VQcm94eSogcGFnZSwgV0tQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiBwbHVnaW5VbmF2YWls
YWJpbGl0eVJlYXNvbiwgQVBJOjpEaWN0aW9uYXJ5KiBwbHVnaW5JbmZvcm1hdGlvbikgZmluYWwK
KyAgICAgICAgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoV2ViUGFnZVByb3h5
JiBwYWdlLCBXS1BsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uIHBsdWdpblVuYXZhaWxhYmlsaXR5
UmVhc29uLCBBUEk6OkRpY3Rpb25hcnkmIHBsdWdpbkluZm9ybWF0aW9uKSBmaW5hbAogICAgICAg
ICB7CiAgICAgICAgICAgICBpZiAocGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gPT0ga1dLUGx1
Z2luVW5hdmFpbGFiaWxpdHlSZWFzb25QbHVnaW5NaXNzaW5nKSB7CiAgICAgICAgICAgICAgICAg
aWYgKG1fY2xpZW50Lm1pc3NpbmdQbHVnaW5CdXR0b25DbGlja2VkX2RlcHJlY2F0ZWRGb3JVc2VX
aXRoVjApCiAgICAgICAgICAgICAgICAgICAgIG1fY2xpZW50Lm1pc3NpbmdQbHVnaW5CdXR0b25D
bGlja2VkX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAoCi0gICAgICAgICAgICAgICAgICAgICAgICB0
b0FQSShwYWdlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHRvQVBJKHBsdWdpbkluZm9ybWF0
aW9uLT5nZXQ8QVBJOjpTdHJpbmc+KHBsdWdpbkluZm9ybWF0aW9uTUlNRVR5cGVLZXkoKSkpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgdG9BUEkocGx1Z2luSW5mb3JtYXRpb24tPmdldDxBUEk6
OlN0cmluZz4ocGx1Z2luSW5mb3JtYXRpb25QbHVnaW5VUkxLZXkoKSkpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgdG9BUEkocGx1Z2luSW5mb3JtYXRpb24tPmdldDxBUEk6OlN0cmluZz4ocGx1
Z2luSW5mb3JtYXRpb25QbHVnaW5zcGFnZUF0dHJpYnV0ZVVSTEtleSgpKSksCisgICAgICAgICAg
ICAgICAgICAgICAgICB0b0FQSSgmcGFnZSksCisgICAgICAgICAgICAgICAgICAgICAgICB0b0FQ
SShwbHVnaW5JbmZvcm1hdGlvbi5nZXQ8QVBJOjpTdHJpbmc+KHBsdWdpbkluZm9ybWF0aW9uTUlN
RVR5cGVLZXkoKSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgdG9BUEkocGx1Z2luSW5mb3Jt
YXRpb24uZ2V0PEFQSTo6U3RyaW5nPihwbHVnaW5JbmZvcm1hdGlvblBsdWdpblVSTEtleSgpKSks
CisgICAgICAgICAgICAgICAgICAgICAgICB0b0FQSShwbHVnaW5JbmZvcm1hdGlvbi5nZXQ8QVBJ
OjpTdHJpbmc+KHBsdWdpbkluZm9ybWF0aW9uUGx1Z2luc3BhZ2VBdHRyaWJ1dGVVUkxLZXkoKSkp
LAogICAgICAgICAgICAgICAgICAgICAgICAgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAg
ICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKG1fY2xpZW50LnVuYXZhaWxhYmxlUGx1Z2lu
QnV0dG9uQ2xpY2tlZF9kZXByZWNhdGVkRm9yVXNlV2l0aFYxKQogICAgICAgICAgICAgICAgIG1f
Y2xpZW50LnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZF9kZXByZWNhdGVkRm9yVXNlV2l0
aFYxKAotICAgICAgICAgICAgICAgICAgICB0b0FQSShwYWdlKSwKKyAgICAgICAgICAgICAgICAg
ICAgdG9BUEkoJnBhZ2UpLAogICAgICAgICAgICAgICAgICAgICBwbHVnaW5VbmF2YWlsYWJpbGl0
eVJlYXNvbiwKLSAgICAgICAgICAgICAgICAgICAgdG9BUEkocGx1Z2luSW5mb3JtYXRpb24tPmdl
dDxBUEk6OlN0cmluZz4ocGx1Z2luSW5mb3JtYXRpb25NSU1FVHlwZUtleSgpKSksCi0gICAgICAg
ICAgICAgICAgICAgIHRvQVBJKHBsdWdpbkluZm9ybWF0aW9uLT5nZXQ8QVBJOjpTdHJpbmc+KHBs
dWdpbkluZm9ybWF0aW9uUGx1Z2luVVJMS2V5KCkpKSwKLSAgICAgICAgICAgICAgICAgICAgdG9B
UEkocGx1Z2luSW5mb3JtYXRpb24tPmdldDxBUEk6OlN0cmluZz4ocGx1Z2luSW5mb3JtYXRpb25Q
bHVnaW5zcGFnZUF0dHJpYnV0ZVVSTEtleSgpKSksCisgICAgICAgICAgICAgICAgICAgIHRvQVBJ
KHBsdWdpbkluZm9ybWF0aW9uLmdldDxBUEk6OlN0cmluZz4ocGx1Z2luSW5mb3JtYXRpb25NSU1F
VHlwZUtleSgpKSksCisgICAgICAgICAgICAgICAgICAgIHRvQVBJKHBsdWdpbkluZm9ybWF0aW9u
LmdldDxBUEk6OlN0cmluZz4ocGx1Z2luSW5mb3JtYXRpb25QbHVnaW5VUkxLZXkoKSkpLAorICAg
ICAgICAgICAgICAgICAgICB0b0FQSShwbHVnaW5JbmZvcm1hdGlvbi5nZXQ8QVBJOjpTdHJpbmc+
KHBsdWdpbkluZm9ybWF0aW9uUGx1Z2luc3BhZ2VBdHRyaWJ1dGVVUkxLZXkoKSkpLAogICAgICAg
ICAgICAgICAgICAgICBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogCiAgICAgICAgICAgICBp
ZiAobV9jbGllbnQudW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKQogICAgICAgICAgICAg
ICAgIG1fY2xpZW50LnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZCgKLSAgICAgICAgICAg
ICAgICAgICAgdG9BUEkocGFnZSksCisgICAgICAgICAgICAgICAgICAgIHRvQVBJKCZwYWdlKSwK
ICAgICAgICAgICAgICAgICAgICAgcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24sCi0gICAgICAg
ICAgICAgICAgICAgIHRvQVBJKHBsdWdpbkluZm9ybWF0aW9uKSwKKyAgICAgICAgICAgICAgICAg
ICAgdG9BUEkoJnBsdWdpbkluZm9ybWF0aW9uKSwKICAgICAgICAgICAgICAgICAgICAgbV9jbGll
bnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICAgICAgfQogI2VuZGlmIC8vIEVOQUJMRShORVRTQ0FQ
RV9QTFVHSU5fQVBJKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJlZmVyZW5jZXMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJlZmVyZW5jZXMubW0JKHJldmlzaW9uIDIyMTQ2NykKKysrIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC02MzcsNiArNjM3LDE2IEBAIC0gKHZvaWQpX3NldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9h
cmQKICAgICBfcHJlZmVyZW5jZXMtPnNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoamF2
YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCk7CiB9CiAKKy0gKHZvaWQpX3NldFBsdWdJbnNFbmFi
bGVkOihCT09MKWVuYWJsZWQKK3sKKyAgICBfcHJlZmVyZW5jZXMtPnNldFBsdWdpbnNFbmFibGVk
KGVuYWJsZWQpOworfQorCistIChCT09MKV9wbHVnSW5zRW5hYmxlZAoreworICAgIHJldHVybiBf
cHJlZmVyZW5jZXMtPnBsdWdpbnNFbmFibGVkKCk7Cit9CisKIC0gKEJPT0wpX2phdmFTY3JpcHRD
YW5BY2Nlc3NDbGlwYm9hcmQKIHsKICAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5qYXZhU2NyaXB0
Q2FuQWNjZXNzQ2xpcGJvYXJkKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAkocmV2aXNpb24gMjIx
NDY3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQ
cml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTExNyw2ICsxMTcsMTAgQEAgdHlwZWRlZiBOU19P
UFRJT05TKE5TVUludGVnZXIsIF9XS0phdmFTYwogLSAoQk9PTClfaXNFbmFibGVkRm9yRmVhdHVy
ZTooX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqKWZlYXR1cmUgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTIpLCBpb3MoMTAuMCkpOwogLSAodm9pZClfc2V0RW5hYmxlZDooQk9PTCl2YWx1ZSBm
b3JGZWF0dXJlOihfV0tFeHBlcmltZW50YWxGZWF0dXJlICopZmVhdHVyZSBXS19BUElfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7CiAKKyNpZiAhVEFSR0VUX09TX0lQSE9ORQor
QHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UGx1Z0luc0VuYWJsZWQ6KSBCT09MIF9w
bHVnSW5zRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CisjZW5k
aWYKKwogQGVuZAogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAkocmV2aXNpb24gMjIxNTAz
KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZh
dGUuaAkod29ya2luZyBjb3B5KQpAQCAtNjQsNiArNjQsMTIgQEAgdHlwZWRlZiBOU19FTlVNKE5T
SW50ZWdlciwgX1dLUmVzb3VyY2VMaQogICAgIF9XS1Jlc291cmNlTGltaXRDUFUsCiB9IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKIAordHlwZWRlZiBOU19FTlVNKE5TSW50
ZWdlciwgX1dLUGx1Z0luVW5hdmFpbGFiaWxpdHlSZWFzb24pIHsKKyAgICBfV0tQbHVnSW5VbmF2
YWlsYWJpbGl0eVJlYXNvblBsdWdpbk1pc3NpbmcsCisgICAgX1dLUGx1Z0luVW5hdmFpbGFiaWxp
dHlSZWFzb25QbHVnaW5DcmFzaGVkLAorICAgIF9XS1BsdWdJblVuYXZhaWxhYmlsaXR5UmVhc29u
SW5zZWN1cmVQbHVnaW5WZXJzaW9uCit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpKTsKKwogdHlwZWRlZiBOU19PUFRJT05TKE5TSW50ZWdlciwgX1dLQXV0b3BsYXlFdmVudEZs
YWdzKSB7CiAgICAgX1dLQXV0b3BsYXlFdmVudEZsYWdzTm9uZSA9IDAsCiAgICAgX1dLQXV0b3Bs
YXlFdmVudEZsYWdzSGFzQXVkaW8gPSAxIDw8IDAsCkBAIC0xNTMsNiArMTU5LDcgQEAgc3RydWN0
IFVJRWRnZUluc2V0czsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZ2V0
VG9vbGJhcnNBcmVWaXNpYmxlV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKEJPT0wpKWNv
bXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKIC0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc2F2ZURhdGFUb0ZpbGU6KE5TRGF0
YSAqKWRhdGEgc3VnZ2VzdGVkRmlsZW5hbWU6KE5TU3RyaW5nICopc3VnZ2VzdGVkRmlsZW5hbWUg
bWltZVR5cGU6KE5TU3RyaW5nICopbWltZVR5cGUgb3JpZ2luYXRpbmdVUkw6KE5TVVJMICopdXJs
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKIC0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGls
ZUluRm9yZWdyb3VuZDooX1dLUmVzb3VyY2VMaW1pdClsaW1pdCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IHVuYXZhaWxhYmxlUGx1Z0luQnV0dG9uQ2xpY2tlZFdpdGhSZWFzb246KF9XS1BsdWdJblVuYXZh
aWxhYmlsaXR5UmVhc29uKXJlYXNvbiBwbHVnSW5JbmZvOihOU0RpY3Rpb25hcnkgKilwbHVnSW5J
bmZvOwogLSAoTlNNZW51ICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29udGV4dE1l
bnU6KE5TTWVudSAqKW1lbnUgZm9yRWxlbWVudDooX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mbyAq
KWVsZW1lbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpKTsKIC0gKE5TTWVudSAqKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbnRleHRNZW51OihOU01lbnUgKiltZW51IGZv
ckVsZW1lbnQ6KF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8gKillbGVtZW50IHVzZXJJbmZvOihp
ZCA8TlNTZWN1cmVDb2Rpbmc+KXVzZXJJbmZvIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEy
KSk7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVn
YXRlLmgJKHJldmlzaW9uIDIyMTUwMykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VJRGVsZWdhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTAyLDYgKzEwMiw3IEBAIHByaXZhdGU6
CiAgICAgICAgIHZvaWQgdW5mb2N1cyhXZWJQYWdlUHJveHkqKSBmaW5hbDsKICAgICAgICAgdm9p
ZCBkaWROb3RIYW5kbGVXaGVlbEV2ZW50KFdlYlBhZ2VQcm94eSosIGNvbnN0IE5hdGl2ZVdlYldo
ZWVsRXZlbnQmKSBmaW5hbDsKICAgICAgICAgdm9pZCBoYW5kbGVBdXRvcGxheUV2ZW50KFdlYlBh
Z2VQcm94eSYsIFdlYkNvcmU6OkF1dG9wbGF5RXZlbnQsIE9wdGlvblNldDxXZWJDb3JlOjpBdXRv
cGxheUV2ZW50RmxhZ3M+KSBmaW5hbDsKKyAgICAgICAgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1
dHRvbkNsaWNrZWQoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXS1BsdWdpblVuYXZhaWxhYmlsaXR5
UmVhc29uLCBBUEk6OkRpY3Rpb25hcnkmKSBmaW5hbDsKICAgICAgICAgdm9pZCBkaWRDbGlja0F1
dG9GaWxsQnV0dG9uKFdlYlBhZ2VQcm94eSYsIEFQSTo6T2JqZWN0KikgZmluYWw7CiAgICAgICAg
IHZvaWQgdG9vbGJhcnNBcmVWaXNpYmxlKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgRnVuY3Rpb248
dm9pZChib29sKT4mJikgZmluYWw7CiAgICAgICAgIGJvb2wgcnVuT3BlblBhbmVsKFdlYlBhZ2VQ
cm94eSosIFdlYkZyYW1lUHJveHkqLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
LCBBUEk6Ok9wZW5QYW5lbFBhcmFtZXRlcnMqLCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclBy
b3h5KikgZmluYWw7CkBAIC0xNTIsNiArMTUzLDcgQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCB3
ZWJWaWV3VGFrZUZvY3VzIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkTm90SGFuZGxlV2hl
ZWxFdmVudCA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld0hhbmRsZUF1dG9wbGF5RXZlbnRXaXRo
RmxhZ3MgOiAxOworICAgICAgICBib29sIHdlYlZpZXdVbmF2YWlsYWJsZVBsdWdJbkJ1dHRvbkNs
aWNrZWQgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdEaWRDbGlja0F1dG9GaWxsQnV0dG9uV2l0
aFVzZXJJbmZvIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3R2V0VG9vbGJhcnNBcmVWaXNpYmxl
V2l0aENvbXBsZXRpb25IYW5kbGVyIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkRXhjZWVk
QmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZCA6IDE7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0JKHJldmlzaW9uIDIyMTUw
MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0JKHdvcmtp
bmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAKICNpbXBvcnQgIlVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkuaCIKICNpbXBvcnQgIldLRnJhbWVJbmZvSW50ZXJuYWwuaCIKICNpbXBvcnQg
IldLTlNEYXRhLmgiCisjaW1wb3J0ICJXS05TRGljdGlvbmFyeS5oIgogI2ltcG9ydCAiV0tOYXZp
Z2F0aW9uQWN0aW9uSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLT3BlblBhbmVsUGFyYW1ldGVyc0lu
dGVybmFsLmgiCiAjaW1wb3J0ICJXS1NlY3VyaXR5T3JpZ2luSW50ZXJuYWwuaCIKQEAgLTEwOCw2
ICsxMDksNyBAQCB2b2lkIFVJRGVsZWdhdGU6OnNldERlbGVnYXRlKGlkIDxXS1VJRGVsCiAgICAg
bV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1Rha2VGb2N1cyA9IFtkZWxlZ2F0ZSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnRha2VGb2N1czopXTsKICAgICBtX2RlbGVnYXRl
TWV0aG9kcy53ZWJWaWV3R2V0VG9vbGJhcnNBcmVWaXNpYmxlV2l0aENvbXBsZXRpb25IYW5kbGVy
ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6Z2V0VG9v
bGJhcnNBcmVWaXNpYmxlV2l0aENvbXBsZXRpb25IYW5kbGVyOildOwogICAgIG1fZGVsZWdhdGVN
ZXRob2RzLndlYlZpZXdEaWROb3RIYW5kbGVXaGVlbEV2ZW50ID0gW2RlbGVnYXRlIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkTm90SGFuZGxlV2hlZWxFdmVudDopXTsK
KyAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3VW5hdmFpbGFibGVQbHVnSW5CdXR0b25DbGlj
a2VkID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6dW5h
dmFpbGFibGVQbHVnSW5CdXR0b25DbGlja2VkV2l0aFJlYXNvbjpwbHVnSW5JbmZvOildOwogICAg
IG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdIYW5kbGVBdXRvcGxheUV2ZW50V2l0aEZsYWdzID0g
W2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6aGFuZGxlQXV0
b3BsYXlFdmVudDp3aXRoRmxhZ3M6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0Rp
ZENsaWNrQXV0b0ZpbGxCdXR0b25XaXRoVXNlckluZm8gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1Nl
bGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpkaWRDbGlja0F1dG9GaWxsQnV0dG9uV2l0aFVzZXJJ
bmZvOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRFeGNlZWRCYWNrZ3JvdW5k
UmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRX
aGlsZUluRm9yZWdyb3VuZDopXTsKQEAgLTQzMCw2ICs0MzIsMzIgQEAgdm9pZCBVSURlbGVnYXRl
OjpVSUNsaWVudDo6dW5mb2N1cyhXZWJLaQogICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+
KWRlbGVnYXRlIF91bmZvY3VzV2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJWaWV3XTsKIH0KIAor
c3RhdGljIF9XS1BsdWdJblVuYXZhaWxhYmlsaXR5UmVhc29uIHRvV0tQbHVnSW5VbmF2YWlsYWJp
bGl0eVJlYXNvbihXS1BsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uIHJlYXNvbikKK3sKKyAgICBz
d2l0Y2ggKHJlYXNvbikgeworICAgIGNhc2Uga1dLUGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb25Q
bHVnaW5NaXNzaW5nOgorICAgICAgICByZXR1cm4gX1dLUGx1Z0luVW5hdmFpbGFiaWxpdHlSZWFz
b25QbHVnaW5NaXNzaW5nOworICAgIGNhc2Uga1dLUGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb25Q
bHVnaW5DcmFzaGVkOgorICAgICAgICByZXR1cm4gX1dLUGx1Z0luVW5hdmFpbGFiaWxpdHlSZWFz
b25QbHVnaW5DcmFzaGVkOworICAgIGNhc2Uga1dLUGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb25J
bnNlY3VyZVBsdWdpblZlcnNpb246CisgICAgICAgIHJldHVybiBfV0tQbHVnSW5VbmF2YWlsYWJp
bGl0eVJlYXNvbkluc2VjdXJlUGx1Z2luVmVyc2lvbjsKKyAgICB9CisgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgcmV0dXJuIF9XS1BsdWdJblVuYXZhaWxhYmlsaXR5UmVhc29uUGx1Z2lu
TWlzc2luZzsKK30KKyAgICAKK3ZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnVuYXZhaWxhYmxl
UGx1Z2luQnV0dG9uQ2xpY2tlZChXZWJQYWdlUHJveHkmLCBXS1BsdWdpblVuYXZhaWxhYmlsaXR5
UmVhc29uIHJlYXNvbiwgQVBJOjpEaWN0aW9uYXJ5JiBwbHVnSW5JbmZvKQoreworICAgIGlmICgh
bV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdVbmF2YWlsYWJsZVBsdWdJbkJ1
dHRvbkNsaWNrZWQpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBhdXRvIGRlbGVnYXRlID0g
bV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCk7CisgICAgaWYgKCFkZWxlZ2F0ZSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dl
YlZpZXc6bV91aURlbGVnYXRlLm1fd2ViVmlldyB1bmF2YWlsYWJsZVBsdWdJbkJ1dHRvbkNsaWNr
ZWRXaXRoUmVhc29uOnRvV0tQbHVnSW5VbmF2YWlsYWJpbGl0eVJlYXNvbihyZWFzb24pIHBsdWdJ
bkluZm86d3JhcHBlcihwbHVnSW5JbmZvKV07Cit9CisgICAgCiBzdGF0aWMgX1dLUmVzb3VyY2VM
aW1pdCB0b1dLUmVzb3VyY2VMaW1pdChXS1Jlc291cmNlTGltaXQgbGltaXQpCiB7CiAgICAgc3dp
dGNoIChsaW1pdCkgewpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L0NoYW5nZUxvZwkocmV2aXNpb24gMjIxNTI3KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMDktMDQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgV0tVSURlbGVnYXRlUHJpdmF0
ZSBlcXVpdmFsZW50IG9mIFdLUGFnZVVJQ2xpZW50J3MgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25D
bGlja2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzYyNzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI5MjcwMDM1PgorCisgICAgICAgIFJldmll
d2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoLVtQbHVnaW5EZWxlZ2F0ZSBfd2ViVmll
dzp1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRXaXRoUmVhc29uOnBsdWdpbkluZm86XSk6
CisgICAgICAgIChURVNUKToKKwogMjAxNy0wOS0wMSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBw
bGUuY29tPgogCiAgICAgICAgIFdTTCBzaG91bGQgY2hlY2sgdW5yZWFjaGFibGUgY29kZSBhbmQg
bm8gcmV0dXJucwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9V
SURlbGVnYXRlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvVUlEZWxlZ2F0ZS5tbQkocmV2aXNpb24gMjIxNTA1KQorKysgVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9VSURlbGVnYXRlLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0zMCw3ICszMCw5IEBACiAjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCiAjaW1wb3J0ICJVdGls
aXRpZXMuaCIKICNpbXBvcnQgIldLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMuaCIKKyNpbXBv
cnQgPFdlYktpdC9XS0NvbnRleHRQcml2YXRlTWFjLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQcmVm
ZXJlbmNlc1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1JldGFpblB0ci5oPgogI2ltcG9y
dCA8V2ViS2l0L1dLVUlEZWxlZ2F0ZVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZp
ZXdQcml2YXRlLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CkBAIC0xMjIsNiArMTI0LDMz
IEBAIFRFU1QoV2ViS2l0LCBTaG93V2ViVmlldykKICAgICBBU1NFUlRfRVEod2ViVmlld0Zyb21E
ZWxlZ2F0ZUNhbGxiYWNrLCBjcmVhdGVkV2ViVmlldyk7CiB9CiAKKworQGludGVyZmFjZSBQbHVn
SW5EZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS1VJRGVsZWdhdGVQcml2YXRlPgorQGVuZAorCitAaW1w
bGVtZW50YXRpb24gUGx1Z0luRGVsZWdhdGUKKworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyB1bmF2YWlsYWJsZVBsdWdJbkJ1dHRvbkNsaWNrZWRXaXRoUmVhc29uOihfV0tQ
bHVnSW5VbmF2YWlsYWJpbGl0eVJlYXNvbilyZWFzb24gcGx1Z0luSW5mbzooTlNEaWN0aW9uYXJ5
ICopcGx1Z0luSW5mbworeworICAgIEFTU0VSVF9FUShfV0tQbHVnSW5VbmF2YWlsYWJpbGl0eVJl
YXNvblBsdWdpbk1pc3NpbmcsIHJlYXNvbik7CisgICAgQVNTRVJUX1RSVUUoW0AiYXBwbGljYXRp
b24veC1zaG9ja3dhdmUtZmxhc2giIGlzRXF1YWxUb1N0cmluZzpbcGx1Z0luSW5mbyBvYmplY3RG
b3JLZXk6QCJQbHVnaW5JbmZvcm1hdGlvbk1JTUVUeXBlIl1dKTsKKyAgICBkb25lID0gdHJ1ZTsK
K30KKworQGVuZAorCitURVNUKFdlYktpdCwgVW5hdmFpbGFibGVQbHVnSW4pCit7CisgICAgYXV0
byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2Nd
IGluaXRdKTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRQbHVnSW5zRW5h
YmxlZDpZRVNdOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbUGx1Z0luRGVsZWdhdGUg
YWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAwKSBjb25maWd1
cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRl
OmRlbGVnYXRlLmdldCgpXTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJp
bmc6QCI8b2JqZWN0IHR5cGU9J2FwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoJy8+Il07Cisg
ICAgW3dlYlZpZXcgc2VuZENsaWNrc0F0UG9pbnQ6TlNNYWtlUG9pbnQoMjEwLCA2MDAgLSA4MCkg
bnVtYmVyT2ZDbGlja3M6MV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsK
K30KKwogYm9vbCBmaXJzdFRvb2xiYXJEb25lOwogCiBAaW50ZXJmYWNlIFRvb2xiYXJEZWxlZ2F0
ZSA6IE5TT2JqZWN0IDxXS1VJRGVsZWdhdGVQcml2YXRlPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>