<?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>190887</bug_id>
          
          <creation_ts>2018-10-24 14:22:17 -0700</creation_ts>
          <short_desc>Clean up some obsolete macOS version guards</short_desc>
          <delta_ts>2018-10-24 17:20:27 -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>WebKit Misc.</component>
          <version>Other</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="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>mitz</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1471933</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2018-10-24 14:22:17 -0700</bug_when>
    <thetext>Not building for 10.11 any more.

Can&apos;t do iOS yet, because most of the obsolete guards actually act as checks for iOS proper (as opposed to watchOS et al.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471938</commentid>
    <comment_count>1</comment_count>
      <attachid>353055</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2018-10-24 14:36:04 -0700</bug_when>
    <thetext>Created attachment 353055
proposed patch

This should be no-op, except for the change in Source/WebKit/PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in.

In that file, we have some rules guarded with &quot;__MAC_OS_X_VERSION_MIN_REQUIRED &lt; 101240&quot;. MIN_REQUIRED doesn&apos;t change with SDK, so the code was actually still built on macOS Sierra even after 10.12.4 update. But looks like the intention was that it wouldn&apos;t be included, so I removed it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471940</commentid>
    <comment_count>2</comment_count>
    <who name="">mitz</who>
    <bug_when>2018-10-24 14:49:46 -0700</bug_when>
    <thetext>WebKitAvailability.h is a public header. Are these changes source-compatible with projects targeting 10.10 and earlier?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471950</commentid>
    <comment_count>3</comment_count>
      <attachid>353055</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2018-10-24 15:15:51 -0700</bug_when>
    <thetext>Comment on attachment 353055
proposed patch

Good catch. I&apos;ll undo this part if I can get r+ on the rest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471958</commentid>
    <comment_count>4</comment_count>
      <attachid>353061</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2018-10-24 15:53:37 -0700</bug_when>
    <thetext>Created attachment 353061
proposed patch

Had to fix Windows build, so also addressed Dan&apos;s comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471965</commentid>
    <comment_count>5</comment_count>
      <attachid>353061</attachid>
    <who name="">mitz</who>
    <bug_when>2018-10-24 16:40:27 -0700</bug_when>
    <thetext>Comment on attachment 353061
proposed patch

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

r=me

&gt; Source/WebKit/PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in:-333
&gt; -#if __MAC_OS_X_VERSION_MIN_REQUIRED &lt; 101240

It’s not clear if we’re gaining anything at this point from changing the code from “as shipped and tested” to “as intended”. For clarity and safety, we could just change this to &lt; 101300.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471970</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2018-10-24 16:50:15 -0700</bug_when>
    <thetext>Looking at history of related issues, I agree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471976</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2018-10-24 17:19:35 -0700</bug_when>
    <thetext>Committed http://trac.webkit.org/r237405</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471977</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-10-24 17:20:27 -0700</bug_when>
    <thetext>&lt;rdar://problem/45539674&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353055</attachid>
            <date>2018-10-24 14:36:04 -0700</date>
            <delta_ts>2018-10-24 15:53:37 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>ObsoleteMac.txt</filename>
            <type>text/plain</type>
            <size>22856</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjM3Mzk5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBA
CisyMDE4LTEwLTI0ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAg
ICAgIENsZWFuIHVwIHNvbWUgb2Jzb2xldGUgbWFjT1MgdmVyc2lvbiBndWFyZHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDg4NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQVBJL1dlYktpdEF2YWls
YWJpbGl0eS5oOgorCiAyMDE4LTEwLTIyICBLZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNv
bT4KIAogICAgICAgICBVc2UgTG9jYXRpb24gPSAiUmVsYXRpdmUgdG8gQnVpbGQgUHJvZHVjdHMi
IHJhdGhlciB0aGFuICJSZWxhdGl2ZSB0byBHcm91cCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvV2ViS2l0QXZhaWxhYmlsaXR5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9XZWJLaXRBdmFpbGFiaWxpdHkuaAkocmV2aXNpb24gMjM3MzYwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9XZWJLaXRBdmFpbGFiaWxpdHkuaAkod29ya2luZyBj
b3B5KQpAQCAtMzEsNDMgKzMxLDYgQEAKICNpbmNsdWRlIDxBdmFpbGFiaWxpdHlNYWNyb3MuaD4K
ICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgogCi0jaWYgIVRBUkdF
VF9PU19JUEhPTkUgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTEwMAot
LyogVG8gc3VwcG9ydCBhdmFpbGFiaWxpdHkgbWFjcm9zIHRoYXQgbWVudGlvbiBuZXdlciBPUyBY
IHZlcnNpb25zIHdoZW4gYnVpbGRpbmcgb24gb2xkZXIgT1MgWCB2ZXJzaW9ucywKLSAgIHdlIHBy
b3ZpZGUgb3VyIG93biBkZWZpbml0aW9ucyBvZiB0aGUgdW5kZXJseWluZyBtYWNyb3MgdGhhdCB0
aGUgYXZhaWxhYmlsaXR5IG1hY3JvcyBleHBhbmQgdG8uIFdlJ3JlCi0gICBmcmVlIHRvIGV4cGFu
ZCB0aGUgbWFjcm9zIGFzIG5vLW9wcyBzaW5jZSBmcmFtZXdvcmtzIGJ1aWx0IG9uIG9sZGVyIE9T
IFggdmVyc2lvbnMgb25seSBzaGlwIGJ1bmRsZWQgd2l0aAotICAgYW4gYXBwbGljYXRpb24gcmF0
aGVyIHRoYW4gYXMgcGFydCBvZiB0aGUgc3lzdGVtLgotKi8KLQotI2lmbmRlZiBfX05TaV8xMF8x
MCAvLyBCdWlsZGluZyBmcm9tIHRydW5rIHJhdGhlciB0aGFuIFNESy4KLSNkZWZpbmUgX19OU2lf
MTBfMTAgaW50cm9kdWNlZD0xMC4wIC8vIFVzZSAxMC4wIHRvIGluZGljYXRlIHRoYXQgZXZlcnl0
aGluZyBpcyBhdmFpbGFibGUuCi0jZW5kaWYKLQotI2lmbmRlZiBfX05TaV8xMF8xMSAvLyBCdWls
ZGluZyBmcm9tIHRydW5rIHJhdGhlciB0aGFuIFNESy4KLSNkZWZpbmUgX19OU2lfMTBfMTEgaW50
cm9kdWNlZD0xMC4wIC8vIFVzZSAxMC4wIHRvIGluZGljYXRlIHRoYXQgZXZlcnl0aGluZyBpcyBh
dmFpbGFibGUuCi0jZW5kaWYKLQotI2lmbmRlZiBfX05TaV8xMF8xMiAvLyBCdWlsZGluZyBmcm9t
IHRydW5rIHJhdGhlciB0aGFuIFNESy4KLSNkZWZpbmUgX19OU2lfMTBfMTIgaW50cm9kdWNlZD0x
MC4wIC8vIFVzZSAxMC4wIHRvIGluZGljYXRlIHRoYXQgZXZlcnl0aGluZyBpcyBhdmFpbGFibGUu
Ci0jZW5kaWYKLQotI2lmbmRlZiBfX0FWQUlMQUJJTElUWV9JTlRFUk5BTF9fTUFDXzEwXzkKLSNk
ZWZpbmUgX19BVkFJTEFCSUxJVFlfSU5URVJOQUxfX01BQ18xMF85Ci0jZW5kaWYKLQotI2lmbmRl
ZiBfX0FWQUlMQUJJTElUWV9JTlRFUk5BTF9fTUFDXzEwXzEwCi0jZGVmaW5lIF9fQVZBSUxBQklM
SVRZX0lOVEVSTkFMX19NQUNfMTBfMTAKLSNlbmRpZgotCi0jaWZuZGVmIEFWQUlMQUJMRV9NQUNf
T1NfWF9WRVJTSU9OXzEwXzlfQU5EX0xBVEVSCi0jZGVmaW5lIEFWQUlMQUJMRV9NQUNfT1NfWF9W
RVJTSU9OXzEwXzlfQU5EX0xBVEVSCi0jZW5kaWYKLQotI2lmbmRlZiBBVkFJTEFCTEVfTUFDX09T
X1hfVkVSU0lPTl8xMF8xMF9BTkRfTEFURVIKLSNkZWZpbmUgQVZBSUxBQkxFX01BQ19PU19YX1ZF
UlNJT05fMTBfMTBfQU5EX0xBVEVSCi0jZW5kaWYKLQotI2VuZGlmIC8qICFUQVJHRVRfT1NfSVBI
T05FICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCAxMDExMDAgKi8KLQogI2lm
IGRlZmluZWQoQlVJTERJTkdfR1RLX18pCiAjdW5kZWYgSlNDX0FQSV9BVkFJTEFCTEUKICNkZWZp
bmUgSlNDX0FQSV9BVkFJTEFCTEUoLi4uKQpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjM3MzYw
KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTggQEAKKzIwMTgtMTAtMjQgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisK
KyAgICAgICAgQ2xlYW4gdXAgc29tZSBvYnNvbGV0ZSBtYWNPUyB2ZXJzaW9uIGd1YXJkcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwODg3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6Y3JlYXRlQVZBc3NldEZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjptYXhpbXVtRHVyYXRpb25Ub0NhY2hlTWVkaWFUaW1l
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OmRpZFBhc3NDT1JTQWNjZXNzQ2hlY2sgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6d291bGRUYWludE9yaWdpbiBjb25z
dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6ZGlzcGxheVAzQ29sb3JTcGFjZVJlZik6CisKIDIwMTgtMTAt
MjMgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjIzNzI4MC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwkocmV2aXNp
b24gMjM3MzYwKQorKysgU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDEyIEBACisyMDE4LTEwLTI0ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBA
YXBwbGUuY29tPgorCisgICAgICAgIENsZWFuIHVwIHNvbWUgb2Jzb2xldGUgbWFjT1MgdmVyc2lv
biBndWFyZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5MDg4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogcGFsL3NwaS9tYWMvVFVDYWxsU1BJLmg6CisKIDIwMTgtMTAtMjMgIFJ5YW4gSGFkZGFkICA8
cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjIzNzI4MC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9UVUNhbGxTUEku
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvVFVDYWxsU1BJ
LmgJKHJldmlzaW9uIDIzNzM2MCkKKysrIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9U
VUNhbGxTUEkuaAkod29ya2luZyBjb3B5KQpAQCAtMjMsNyArMjMsNyBAQAogICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwMTAwMAorI2lmIFBMQVRGT1JNKE1BQykKIAogI2ltcG9ydCA8b2JqYy9y
dW50aW1lLmg+CiAjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5tbQkocmV2aXNpb24gMjM3MzYwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5tbQkod29ya2luZyBjb3B5KQpAQCAtOTY1LDcgKzk2NSw2IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzoKICAgICBBVkFzc2V0UmVzb3VyY2VMb2FkZXIgKnJl
c291cmNlTG9hZGVyID0gbV9hdkFzc2V0LmdldCgpLnJlc291cmNlTG9hZGVyOwogICAgIFtyZXNv
dXJjZUxvYWRlciBzZXREZWxlZ2F0ZTptX2xvYWRlckRlbGVnYXRlLmdldCgpIHF1ZXVlOmdsb2Jh
bExvYWRlckRlbGVnYXRlUXVldWUoKV07CiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKSB8fCBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID4gMTAxMTAwCiAgICAgaWYgKERlcHJlY2F0
ZWRHbG9iYWxTZXR0aW5nczo6aXNBVkZvdW5kYXRpb25OU1VSTFNlc3Npb25FbmFibGVkKCkKICAg
ICAgICAgJiYgW3Jlc291cmNlTG9hZGVyIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2V0
VVJMU2Vzc2lvbjopXQogICAgICAgICAmJiBbcmVzb3VyY2VMb2FkZXIgcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3RvcihVUkxTZXNzaW9uRGF0YURlbGVnYXRlKV0KQEAgLTk3NCw3ICs5NzMsNiBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6CiAgICAgICAgIGlmICht
ZWRpYVJlc291cmNlTG9hZGVyKQogICAgICAgICAgICAgcmVzb3VyY2VMb2FkZXIuVVJMU2Vzc2lv
biA9IChOU1VSTFNlc3Npb24gKilbW1tXZWJDb3JlTlNVUkxTZXNzaW9uIGFsbG9jXSBpbml0V2l0
aFJlc291cmNlTG9hZGVyOiptZWRpYVJlc291cmNlTG9hZGVyIGRlbGVnYXRlOnJlc291cmNlTG9h
ZGVyLlVSTFNlc3Npb25EYXRhRGVsZWdhdGUgZGVsZWdhdGVRdWV1ZTpyZXNvdXJjZUxvYWRlci5V
UkxTZXNzaW9uRGF0YURlbGVnYXRlUXVldWVdIGF1dG9yZWxlYXNlXTsKICAgICB9Ci0jZW5kaWYK
IAogI2VuZGlmCiAKQEAgLTE4NTAsMTEgKzE4NDgsNyBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uCiAKIGRvdWJsZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjptYXhpbXVtRHVyYXRpb25Ub0NhY2hlTWVkaWFUaW1lKCkgY29uc3QKIHsKLSNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKSB8fCBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTAKICAgICByZXR1cm4gMDsKLSNlbHNlCi0gICAgcmV0dXJuIDU7Ci0jZW5kaWYKIH0KIAog
dm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVWaWRlb0xheWVy
R3Jhdml0eSgpCkBAIC0yMjAzLDcgKzIxOTcsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6ZGlkUGFzc0NPUlNBY2Nlc3NDaGVjaygpIGNvbnN0CiB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkgfHwgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+IDEwMTEwMAogICAgIEFW
QXNzZXRSZXNvdXJjZUxvYWRlciAqcmVzb3VyY2VMb2FkZXIgPSBtX2F2QXNzZXQuZ2V0KCkucmVz
b3VyY2VMb2FkZXI7CiAgICAgaWYgKCFEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OmlzQVZGb3Vu
ZGF0aW9uTlNVUkxTZXNzaW9uRW5hYmxlZCgpCiAgICAgICAgIHx8ICFbcmVzb3VyY2VMb2FkZXIg
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihVUkxTZXNzaW9uKV0pCkBAIC0yMjEyLDEzICsy
MjA1LDEyIEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzoKICAgICBX
ZWJDb3JlTlNVUkxTZXNzaW9uICpzZXNzaW9uID0gKFdlYkNvcmVOU1VSTFNlc3Npb24gKilyZXNv
dXJjZUxvYWRlci5VUkxTZXNzaW9uOwogICAgIGlmIChbc2Vzc2lvbiBpc0tpbmRPZkNsYXNzOltX
ZWJDb3JlTlNVUkxTZXNzaW9uIGNsYXNzXV0pCiAgICAgICAgIHJldHVybiBzZXNzaW9uLmRpZFBh
c3NDT1JTQWNjZXNzQ2hlY2tzOwotI2VuZGlmCisKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKIHN0
ZDo6b3B0aW9uYWw8Ym9vbD4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6d291
bGRUYWludE9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiYgb3JpZ2luKSBjb25zdAogewotI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
PiAxMDExMDAKICAgICBBVkFzc2V0UmVzb3VyY2VMb2FkZXIgKnJlc291cmNlTG9hZGVyID0gbV9h
dkFzc2V0LmdldCgpLnJlc291cmNlTG9hZGVyOwogICAgIGlmICghRGVwcmVjYXRlZEdsb2JhbFNl
dHRpbmdzOjppc0FWRm91bmRhdGlvbk5TVVJMU2Vzc2lvbkVuYWJsZWQoKQogICAgICAgICB8fCAh
W3Jlc291cmNlTG9hZGVyIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoVVJMU2Vzc2lvbild
KQpAQCAtMjIyNyw3ICsyMjE5LDcgQEAgc3RkOjpvcHRpb25hbDxib29sPiBNZWRpYVBsYXllclBy
aXZhdGVBVgogICAgIFdlYkNvcmVOU1VSTFNlc3Npb24gKnNlc3Npb24gPSAoV2ViQ29yZU5TVVJM
U2Vzc2lvbiAqKXJlc291cmNlTG9hZGVyLlVSTFNlc3Npb247CiAgICAgaWYgKFtzZXNzaW9uIGlz
S2luZE9mQ2xhc3M6W1dlYkNvcmVOU1VSTFNlc3Npb24gY2xhc3NdXSkKICAgICAgICAgcmV0dXJu
IFtzZXNzaW9uIHdvdWxkVGFpbnRPcmlnaW46b3JpZ2luXTsKLSNlbmRpZgorCiAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAkocmV2aXNpb24gMjM3
MzYwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250
ZXh0Q0cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjksMTEgKzEyOSw3IEBAIENHQ29sb3JTcGFj
ZVJlZiBkaXNwbGF5UDNDb2xvclNwYWNlUmVmKCkKICAgICBzdGF0aWMgQ0dDb2xvclNwYWNlUmVm
IGRpc3BsYXlQM0NvbG9yU3BhY2U7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFn
OwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+IDEwMTEwMCkKICAgICAgICAgZGlzcGxheVAzQ29sb3JTcGFjZSA9IENHQ29sb3JTcGFjZUNy
ZWF0ZVdpdGhOYW1lKGtDR0NvbG9yU3BhY2VEaXNwbGF5UDMpOwotI2Vsc2UKLSAgICAgICAgZGlz
cGxheVAzQ29sb3JTcGFjZSA9IHNSR0JDb2xvclNwYWNlUmVmKCk7Ci0jZW5kaWYKICAgICB9KTsK
ICAgICByZXR1cm4gZGlzcGxheVAzQ29sb3JTcGFjZTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lv
biAyMzczNjApCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDE0IEBACisyMDE4LTEwLTI0ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUu
Y29tPgorCisgICAgICAgIENsZWFuIHVwIHNvbWUgb2Jzb2xldGUgbWFjT1MgdmVyc2lvbiBndWFy
ZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDg4
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGx1
Z2luUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5wbHVnaW4tY29tbW9uLnNiLmluOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisK
IDIwMTgtMTAtMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBb
UFNPTl0gQWRkIHN1cHBvcnQgZm9yIGNyb3NzLXNpdGUgY2xpZW50LXNpZGUgcmVkaXJlY3RzCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQucGx1
Z2luLWNvbW1vbi5zYi5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nl
c3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQucGx1Z2luLWNvbW1vbi5zYi5pbgkocmV2aXNpb24gMjM3
MzYwKQorKysgU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0
LnBsdWdpbi1jb21tb24uc2IuaW4JKHdvcmtpbmcgY29weSkKQEAgLTMzMCwyMiArMzMwLDYgQEAK
IAogICAgIChob21lLWxpdGVyYWwgIi9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5sb29r
dXAuc2hhcmVkLnBsaXN0IikpCiAKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
IDwgMTAxMjQwCi07OyBGSVhNRTogVGhpcyBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIDxyZGFyOi8v
cHJvYmxlbS8xMDQ3OTY4NT4gaXMgZml4ZWQuCi07OyBSZXN0cmljdCBBcHBTYW5kYm94ZWQgcHJv
Y2Vzc2VzIGZyb20gY3JlYXRpbmcgL0xpYnJhcnkvS2V5Y2hhaW5zLCBidXQgYWxsb3cgYWNjZXNz
IHRvIHRoZSBjb250ZW50cyBvZiAvTGlicmFyeS9LZXljaGFpbnM6Ci0oYWxsb3cgZmlsZS1yZWFk
LWRhdGEgZmlsZS1yZWFkLW1ldGFkYXRhIGZpbGUtd3JpdGUtZGF0YQotICAgIChzdWJwYXRoICIv
TGlicmFyeS9LZXljaGFpbnMiKSkKLQotOzsgRG8gcGVybWl0IGNyZWF0aW5nIHBlci11c2VyIGtl
eWNoYWlucwotKGFsbG93IGZpbGUtcmVhZCogZmlsZS13cml0ZSoKLSAgICAoaG9tZS1saWJyYXJ5
LXN1YnBhdGggIi9LZXljaGFpbnMiKSkKLQotOzsgRXhjZXB0IGRlbnkgYWNjZXNzIHRvIG5ldy1z
dHlsZSBpT1MgS2V5Y2hhaW4gZm9sZGVycyB3aGljaCBhcmUgVVVJRHMuCi0oZGVueSBmaWxlLXJl
YWQqIGZpbGUtd3JpdGUqCi0gICAgKHJlZ2V4IChzdHJpbmctYXBwZW5kICIvTGlicmFyeS9LZXlj
aGFpbnMvIiAodXVpZC1yZWdleC1zdHJpbmcpICIoL3wkKSIpKQotICAgIChob21lLWxpYnJhcnkt
cmVnZXggKHN0cmluZy1hcHBlbmQgIi9LZXljaGFpbnMvIiAodXVpZC1yZWdleC1zdHJpbmcpICIo
L3wkKSIpKSkKLSNlbmRpZgotCiA7OyBTZWN1cml0eSBmcmFtZXdvcmsKIChhbGxvdyBtYWNoLWxv
b2t1cCAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5vY3NwZCIpKQogKGFsbG93IGZpbGUtcmVhZCoK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2Eu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vz
c1Bvb2xDb2NvYS5tbQkocmV2aXNpb24gMjM3MzYwKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjA1LDE0
ICsyMDUsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXCiAgICAg
cGFyYW1ldGVycy5mb250V2hpdGVsaXN0ID0gbV9mb250V2hpdGVsaXN0OwogCiAgICAgaWYgKG1f
YnVuZGxlUGFyYW1ldGVycykgewotI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPCAxMDEyMDApCi0gICAgICAgIGF1dG8gZGF0YSA9IGFkb3B0TlMo
W1tOU011dGFibGVEYXRhIGFsbG9jXSBpbml0XSk7Ci0gICAgICAgIGF1dG8ga2V5ZWRBcmNoaXZl
ciA9IGFkb3B0TlMoW1tOU0tleWVkQXJjaGl2ZXIgYWxsb2NdIGluaXRGb3JXcml0aW5nV2l0aE11
dGFibGVEYXRhOmRhdGEuZ2V0KCldKTsKLQotICAgICAgICBba2V5ZWRBcmNoaXZlciBzZXRSZXF1
aXJlc1NlY3VyZUNvZGluZzpZRVNdOwotI2Vsc2UKICAgICAgICAgYXV0byBrZXllZEFyY2hpdmVy
ID0gc2VjdXJlQXJjaGl2ZXIoKTsKLSNlbmRpZgogCiAgICAgICAgIEB0cnkgewogICAgICAgICAg
ICAgW2tleWVkQXJjaGl2ZXIgZW5jb2RlT2JqZWN0Om1fYnVuZGxlUGFyYW1ldGVycy5nZXQoKSBm
b3JLZXk6QCJwYXJhbWV0ZXJzIl07CkBAIC0yMjEsOSArMjE0LDcgQEAgdm9pZCBXZWJQcm9jZXNz
UG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplVwogICAgICAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQg
dG8gZW5jb2RlIGJ1bmRsZSBwYXJhbWV0ZXJzOiAlQCIsIGV4Y2VwdGlvbik7CiAgICAgICAgIH0K
IAotI2lmICghUExBVEZPUk0oTUFDKSB8fCBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwMTIwMCkKICAgICAgICAgYXV0byBkYXRhID0ga2V5ZWRBcmNoaXZlci5nZXQoKS5lbmNv
ZGVkRGF0YTsKLSNlbmRpZgogCiAgICAgICAgIHBhcmFtZXRlcnMuYnVuZGxlUGFyYW1ldGVyRGF0
YSA9IEFQSTo6RGF0YTo6Y3JlYXRlV2l0aG91dENvcHlpbmcoV1RGTW92ZShkYXRhKSk7CiAgICAg
fQpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gMjM3MzYwKQorKysg
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMjAgQEAKKzIwMTgtMTAtMjQgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+
CisKKyAgICAgICAgQ2xlYW4gdXAgc29tZSBvYnNvbGV0ZSBtYWNPUyB2ZXJzaW9uIGd1YXJkcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwODg3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNaXNjL1dl
Yk5TUGFzdGVib2FyZEV4dHJhcy5tbToKKyAgICAgICAgKCtbTlNQYXN0ZWJvYXJkIF93ZWJfZHJh
Z1R5cGVzRm9yVVJMXSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1t
OgorICAgICAgICAoUG9wdXBNZW51TWFjOjpzaG93KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQubW06CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnJlc3BvbmRUb0NoYW5nZWRTZWxl
Y3Rpb24pOgorICAgICAgICAqIFdlYlZpZXcvV2ViUERGVmlldy5tbToKKyAgICAgICAgKC1bV2Vi
UERGVmlldyBfY2xpcFZpZXdGb3JQREZEb2N1bWVudFZpZXddKToKKwogMjAxOC0xMC0xOCAgQWxl
eGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBTd2l0Y2ggZnJvbSBQ
TEFURk9STShJT1MpIHRvIFBMQVRGT1JNKElPU19GQU1JTFkpCkluZGV4OiBTb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbQkocmV2
aXNpb24gMjM3MzYwKQorKysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU1Bhc3Rl
Ym9hcmRFeHRyYXMubW0JKHdvcmtpbmcgY29weSkKQEAgLTExMyw5ICsxMTMsNyBAQCArIChOU0Fy
cmF5ICopX3dlYl9kcmFnVHlwZXNGb3JVUkwKICAgICAgICAgV2ViVVJMTmFtZVBib2FyZFR5cGUs
CiAgICAgICAgIGxlZ2FjeVN0cmluZ1Bhc3RlYm9hcmRUeXBlKCksCiAgICAgICAgIGxlZ2FjeUZp
bGVuYW1lc1Bhc3RlYm9hcmRUeXBlKCksCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDEyMDAKICAgICAgICAgbGVnYWN5RmlsZXNQcm9taXNlUGFzdGVib2FyZFR5cGUo
KSwKLSNlbmRpZgogICAgICAgICBuaWxdOwogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tCShyZXZpc2lv
biAyMzczNjApCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1
cE1lbnVNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTE2NywyMyArMTY3LDE1IEBAIHZvaWQgUG9w
dXBNZW51TWFjOjpzaG93KGNvbnN0IEludFJlY3QmIHIKICAgICAgICAgYXV0byBkZWZhdWx0Rm9u
dCA9IGFkb3B0Q0YoQ1RGb250Q3JlYXRlVUlGb250Rm9yTGFuZ3VhZ2Uoa0NURm9udFVJRm9udFN5
c3RlbSwgQ1RGb250R2V0U2l6ZShmb250KSwgbmlsKSk7CiAgICAgICAgIHZlcnRPZmZzZXQgKz0g
Q1RGb250R2V0RGVzY2VudChmb250KSAtIENURm9udEdldERlc2NlbnQoZGVmYXVsdEZvbnQuZ2V0
KCkpOwogICAgICAgICB2ZXJ0T2Zmc2V0ID0gZm1pbmYoTlNIZWlnaHQociksIHZlcnRPZmZzZXQp
OwotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMjAwCiAgICAgICAg
IGlmICh0ZXh0RGlyZWN0aW9uID09IFRleHREaXJlY3Rpb246OkxUUikKICAgICAgICAgICAgIGxv
Y2F0aW9uID0gTlNNYWtlUG9pbnQoTlNNaW5YKHIpICsgcG9wT3Zlckhvcml6b250YWxBZGp1c3Qs
IE5TTWF4WShyKSAtIHZlcnRPZmZzZXQpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBsb2Nh
dGlvbiA9IE5TTWFrZVBvaW50KE5TTWF4WChyKSAtIHBvcE92ZXJIb3Jpem9udGFsQWRqdXN0LCBO
U01heFkocikgLSB2ZXJ0T2Zmc2V0KTsKLSNlbHNlCi0gICAgICAgIGxvY2F0aW9uID0gTlNNYWtl
UG9pbnQoTlNNaW5YKHIpICsgcG9wT3Zlckhvcml6b250YWxBZGp1c3QsIE5TTWF4WShyKSAtIHZl
cnRPZmZzZXQpOwotI2VuZGlmCiAgICAgfSBlbHNlIHsKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwMTIwMAogICAgICAgICBpZiAodGV4dERpcmVjdGlvbiA9PSBUZXh0
RGlyZWN0aW9uOjpMVFIpCiAgICAgICAgICAgICBsb2NhdGlvbiA9IE5TTWFrZVBvaW50KE5TTWlu
WChyKSArIHBvcFVuZGVySG9yaXpvbnRhbEFkanVzdCwgTlNNYXhZKHIpICsgcG9wVW5kZXJWZXJ0
aWNhbEFkanVzdCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGxvY2F0aW9uID0gTlNNYWtl
UG9pbnQoTlNNYXhYKHIpIC0gcG9wVW5kZXJIb3Jpem9udGFsQWRqdXN0LCBOU01heFkocikgKyBw
b3BVbmRlclZlcnRpY2FsQWRqdXN0KTsKLSNlbHNlCi0gICAgICAgIGxvY2F0aW9uID0gTlNNYWtl
UG9pbnQoTlNNaW5YKHIpICsgcG9wVW5kZXJIb3Jpem9udGFsQWRqdXN0LCBOU01heFkocikgKyBw
b3BVbmRlclZlcnRpY2FsQWRqdXN0KTsKLSNlbmRpZgogICAgIH0KICAgICAvLyBTYXZlIHRoZSBj
dXJyZW50IGV2ZW50IHRoYXQgdHJpZ2dlcmVkIHRoZSBwb3B1cCwgc28gd2UgY2FuIGNsZWFuIHVw
IG91ciBldmVudAogICAgIC8vIHN0YXRlIGFmdGVyIHRoZSBOU01lbnUgZ29lcyBhd2F5LgpJbmRl
eDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50LmgJKHJldmlzaW9uIDIzNzM2MCkKKysrIFNvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xNjUsNyArMTY1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUo
Ym9vbCBlbmFibGVkKSBmaW5hbDsKICAgICB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdl
YkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpWaXNpYmxlU2VsZWN0
aW9uJiBjdXJyZW50U2VsZWN0aW9uKSBmaW5hbDsKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEyMDAKKyNpZiBQTEFURk9STShNQUMp
CiAgICAgdm9pZCByZXF1ZXN0Q2FuZGlkYXRlc0ZvclNlbGVjdGlvbihjb25zdCBXZWJDb3JlOjpW
aXNpYmxlU2VsZWN0aW9uJikgZmluYWw7CiAgICAgdm9pZCBoYW5kbGVSZXF1ZXN0ZWRDYW5kaWRh
dGVzKE5TSW50ZWdlciwgTlNBcnJheTxOU1RleHRDaGVja2luZ1Jlc3VsdCAqPiAqKTsKICAgICB2
b2lkIGhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlV2l0aFNvZnRTcGFjZXMoV2ViQ29yZTo6VGV4dENo
ZWNraW5nUmVzdWx0KSBmaW5hbDsKQEAgLTE4NSw3ICsxODUsNyBAQCBwcml2YXRlOgogCiAgICAg
V2ViQ29yZTo6VmlzaWJsZVNlbGVjdGlvbiBtX2xhc3RTZWxlY3Rpb25Gb3JSZXF1ZXN0ZWRDYW5k
aWRhdGVzOwogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTIwMAorI2lmIFBMQVRGT1JNKE1BQykKICAgICBSZXRhaW5QdHI8TlNTdHJp
bmc+IG1fcGFyYWdyYXBoQ29udGV4dEZvckNhbmRpZGF0ZVJlcXVlc3Q7CiAgICAgTlNSYW5nZSBt
X3JhbmdlRm9yQ2FuZGlkYXRlczsKICAgICBOU0ludGVnZXIgbV9sYXN0Q2FuZGlkYXRlUmVxdWVz
dFNlcXVlbmNlTnVtYmVyOwpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQkocmV2aXNpb24gMjM3MzYw
KQorKysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNzksNyArMzc5LDcgQEAgdm9pZCBXZWJFZGl0b3JD
bGllbnQ6OnJlc3BvbmRUb0NoYW5nZWRTZQogICAgICAgICBXZWJUaHJlYWRQb3N0Tm90aWZpY2F0
aW9uKFdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24sIG1fd2ViVmlldywgbmls
KTsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwMTIwMAorI2lmIFBMQVRGT1JNKE1BQykKICAgICBpZiAoZnJhbWUtPmVk
aXRvcigpLmNhbkVkaXQoKSkKICAgICAgICAgcmVxdWVzdENhbmRpZGF0ZXNGb3JTZWxlY3Rpb24o
ZnJhbWUtPnNlbGVjdGlvbigpLnNlbGVjdGlvbigpKTsKICNlbmRpZgpAQCAtMTE5NCw3ICsxMTk0
LDcgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnNldElucHV0TWV0aG9kU3RhdAogewogfQogCi0j
aWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
MTIwMAorI2lmIFBMQVRGT1JNKE1BQykKIAogdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RD
YW5kaWRhdGVzRm9yU2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbikK
IHsKQEAgLTEyOTIsNyArMTI5Miw3IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpoYW5kbGVBY2Nl
cHRlZENhbmQKICAgICBmcmFtZS0+ZWRpdG9yKCkuaGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGUoYWNj
ZXB0ZWRDYW5kaWRhdGUpOwogfQogCi0jZW5kaWYgLy8gUExBVEZPUk0oTUFDKSAmJiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIwMAorI2VuZGlmIC8vIFBMQVRGT1JNKE1B
QykKIAogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogCkluZGV4OiBTb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tCShyZXZpc2lvbiAyMzczNjApCisrKyBT
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTEwNjQsMTEgKzEwNjQsNyBAQCBJR05PUkVfV0FSTklOR1NfRU5ECiAKIC0gKE5TQ2xp
cFZpZXcgKilfY2xpcFZpZXdGb3JQREZEb2N1bWVudFZpZXcKIHsKLSNpZiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIwMAogICAgIE5TQ2xpcFZpZXcgKmNsaXBWaWV3ID0g
KE5TQ2xpcFZpZXcgKilbW1BERlN1YnZpZXcgZG9jdW1lbnRTY3JvbGxWaWV3XSBjb250ZW50Vmll
d107Ci0jZWxzZQotICAgIE5TQ2xpcFZpZXcgKmNsaXBWaWV3ID0gKE5TQ2xpcFZpZXcgKilbW1BE
RlN1YnZpZXcgZG9jdW1lbnRWaWV3XSBfd2ViX3N1cGVydmlld09mQ2xhc3M6W05TQ2xpcFZpZXcg
Y2xhc3NdXTsKLSNlbmRpZgogICAgIEFTU0VSVChjbGlwVmlldyk7CiAgICAgcmV0dXJuIGNsaXBW
aWV3OwogfQpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5n
ZUxvZwkocmV2aXNpb24gMjM3Mzk5KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTggQEAKKzIwMTgtMTAtMjQgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBh
cHBsZS5jb20+CisKKyAgICAgICAgQ2xlYW4gdXAgc29tZSBvYnNvbGV0ZSBtYWNPUyB2ZXJzaW9u
IGd1YXJkcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTkwODg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW06CisgICAgICAgIChfX3NpbXVs
YXRlZF9mb3JjZUNsaWNrQXNzb2NpYXRlZEV2ZW50c01hc2spOgorICAgICAgICAoLVtUZXN0V0tX
ZWJWaWV3SG9zdFdpbmRvdyBfbW91c2VEb3duQXRQb2ludDpzaW11bGF0ZVByZXNzdXJlOmNsaWNr
Q291bnQ6XSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxl
ckNvY29hLm1tOgorICAgICAgICAoV1RSOjppbml0aWFsaXplV2ViVmlld0NvbmZpZ3VyYXRpb24p
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50U2VuZGVyUHJveHkubW06Cisg
ICAgICAgICgtW0V2ZW50U2VuZGVyU3ludGhldGljRXZlbnQgaW5pdFByZXNzdXJlRXZlbnRBdExv
Y2F0aW9uOmdsb2JhbExvY2F0aW9uOnN0YWdlOnByZXNzdXJlOnN0YWdlVHJhbnNpdGlvbjpwaGFz
ZTp0aW1lOmV2ZW50TnVtYmVyOndpbmRvdzpdKToKKwogMjAxOC0xMC0yNCAgUGFibG8gU2FhdmVk
cmEgIDxwc2FhdmVkcmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV1BFXSBGaXggQ01ha2UgcnVs
ZXMgaW4gZm9yIFRlc3RXZWJLaXRBUElCYXNlIGxpYnJhcnkgYnVpbGRpbmcgaW4gZGV2ZWxvcGVy
IG1vZGUKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0J
KHJldmlzaW9uIDIzNzM2MCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2Vi
Vmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTAzLDI0ICsxMDMsMTggQEAgQGludGVyZmFjZSBU
ZXN0V0tXZWJWaWV3SG9zdFdpbmRvdyA6IFVJVwogI2lmIFBMQVRGT1JNKE1BQykKIHN0YXRpYyBp
bnQgZ0V2ZW50TnVtYmVyID0gMTsKIAotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxMDAzCiBOU0V2ZW50TWFzayBfX3NpbXVsYXRlZF9mb3JjZUNsaWNrQXNzb2NpYXRl
ZEV2ZW50c01hc2soaWQgc2VsZiwgU0VMIF9jbWQpCiB7CiAgICAgcmV0dXJuIE5TRXZlbnRNYXNr
UHJlc3N1cmUgfCBOU0V2ZW50TWFza0xlZnRNb3VzZURvd24gfCBOU0V2ZW50TWFza0xlZnRNb3Vz
ZVVwIHwgTlNFdmVudE1hc2tMZWZ0TW91c2VEcmFnZ2VkOwogfQotI2VuZGlmCiAKIC0gKHZvaWQp
X21vdXNlRG93bkF0UG9pbnQ6KE5TUG9pbnQpcG9pbnQgc2ltdWxhdGVQcmVzc3VyZTooQk9PTClz
aW11bGF0ZVByZXNzdXJlIGNsaWNrQ291bnQ6KE5TVUludGVnZXIpY2xpY2tDb3VudAogewogICAg
IE5TRXZlbnRUeXBlIG1vdXNlRXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOwog
CiAgICAgTlNFdmVudE1hc2sgbW9kaWZpZXJGbGFncyA9IDA7Ci0jaWYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDMKICAgICBpZiAoc2ltdWxhdGVQcmVzc3VyZSkKICAg
ICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0V2ZW50TWFza1ByZXNzdXJlOwotI2Vsc2UKLSAgICBz
aW11bGF0ZVByZXNzdXJlID0gTk87Ci0jZW5kaWYKIAogICAgIE5TRXZlbnQgKmV2ZW50ID0gW05T
RXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOm1vdXNlRXZlbnRUeXBlIGxvY2F0aW9uOnBvaW50IG1v
ZGlmaWVyRmxhZ3M6bW9kaWZpZXJGbGFncyB0aW1lc3RhbXA6R2V0Q3VycmVudEV2ZW50VGltZSgp
IHdpbmRvd051bWJlcjpzZWxmLndpbmRvd051bWJlciBjb250ZXh0OltOU0dyYXBoaWNzQ29udGV4
dCBjdXJyZW50Q29udGV4dF0gZXZlbnROdW1iZXI6KytnRXZlbnROdW1iZXIgY2xpY2tDb3VudDpj
bGlja0NvdW50IHByZXNzdXJlOnNpbXVsYXRlUHJlc3N1cmVdOwogICAgIGlmICghc2ltdWxhdGVQ
cmVzc3VyZSkgewpAQCAtMTI4LDcgKzEyMiw2IEBAIC0gKHZvaWQpX21vdXNlRG93bkF0UG9pbnQ6
KE5TUG9pbnQpcG9pbnQKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotI2lmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAzCiAgICAgSU1QIHNpbXVsYXRlZEFzc29jaWF0
ZWRFdmVudHNNYXNrSW1wbCA9IChJTVApX19zaW11bGF0ZWRfZm9yY2VDbGlja0Fzc29jaWF0ZWRF
dmVudHNNYXNrOwogICAgIE1ldGhvZCBhc3NvY2lhdGVkRXZlbnRzTWFza01ldGhvZCA9IGNsYXNz
X2dldEluc3RhbmNlTWV0aG9kKFtOU0V2ZW50IGNsYXNzXSwgQHNlbGVjdG9yKGFzc29jaWF0ZWRF
dmVudHNNYXNrKSk7CiAgICAgSU1QIG9yaWdpbmFsQXNzb2NpYXRlZEV2ZW50c01hc2tJbXBsID0g
bWV0aG9kX3NldEltcGxlbWVudGF0aW9uKGFzc29jaWF0ZWRFdmVudHNNYXNrTWV0aG9kLCBzaW11
bGF0ZWRBc3NvY2lhdGVkRXZlbnRzTWFza0ltcGwpOwpAQCAtMTM5LDcgKzEzMiw2IEBAIC0gKHZv
aWQpX21vdXNlRG93bkF0UG9pbnQ6KE5TUG9pbnQpcG9pbnQKICAgICAgICAgLy8gdG8gcHJldmVu
dCBzdWJzZXF1ZW50IGV2ZW50IHNlbmRpbmcgdGVzdHMgZnJvbSBiZWluZyBhZmZlY3RlZC4KICAg
ICAgICAgbWV0aG9kX3NldEltcGxlbWVudGF0aW9uKGFzc29jaWF0ZWRFdmVudHNNYXNrTWV0aG9k
LCBvcmlnaW5hbEFzc29jaWF0ZWRFdmVudHNNYXNrSW1wbCk7CiAgICAgfQotI2VuZGlmCiB9CiAK
IC0gKHZvaWQpX21vdXNlVXBBdFBvaW50OihOU1BvaW50KXBvaW50IGNsaWNrQ291bnQ6KE5TVUlu
dGVnZXIpY2xpY2tDb3VudApJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0
Q29udHJvbGxlckNvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
Y29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQkocmV2aXNpb24gMjM3MzYwKQorKysgVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC02Niw5ICs2Niw3IEBAIHZvaWQgaW5pdGlhbGl6ZVdlYlZpZXdDb25maWd1cmF0aW9u
KGNvbnMKICAgICBnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi5fYWxsb3dVbml2ZXJzYWxBY2Nl
c3NGcm9tRmlsZVVSTHMgPSBZRVM7CiAgICAgZ2xvYmFsV2ViVmlld0NvbmZpZ3VyYXRpb24uX2Fw
cGxlUGF5RW5hYmxlZCA9IFlFUzsKIAotI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMzAwKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKQog
ICAgIFdLQ29va2llTWFuYWdlclNldFN0b3JhZ2VBY2Nlc3NBUElFbmFibGVkKFdLQ29udGV4dEdl
dENvb2tpZU1hbmFnZXIoY29udGV4dCksIHRydWUpOwotI2VuZGlmCiAKICAgICBXS1dlYnNpdGVE
YXRhU3RvcmUqIHBvb2xXZWJzaXRlRGF0YVN0b3JlID0gKF9fYnJpZGdlIFdLV2Vic2l0ZURhdGFT
dG9yZSAqKVdLQ29udGV4dEdldFdlYnNpdGVEYXRhU3RvcmUoKF9fYnJpZGdlIFdLQ29udGV4dFJl
ZilnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbCk7CiAgICAgW3Bvb2xXZWJz
aXRlRGF0YVN0b3JlIF9zZXRDYWNoZVN0b3JhZ2VQZXJPcmlnaW5RdW90YTogNDAwICogMTAyNF07
CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9FdmVudFNlbmRlclByb3h5Lm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50U2VuZGVyUHJveHku
bW0JKHJldmlzaW9uIDIzNzM2MCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50
U2VuZGVyUHJveHkubW0JKHdvcmtpbmcgY29weSkKQEAgLTg1LDcgKzg1LDcgQEAgLSAoaWQpaW5p
dFByZXNzdXJlRXZlbnRBdExvY2F0aW9uOihOU1BvaQogICAgIF9ldmVudFNlbmRlcl90aW1lc3Rh
bXAgPSB0aW1lOwogICAgIF9ldmVudFNlbmRlcl9ldmVudE51bWJlciA9IGV2ZW50TnVtYmVyOwog
ICAgIF9ldmVudFNlbmRlcl93aW5kb3cgPSB3aW5kb3c7Ci0jaWYgZGVmaW5lZChfX0xQNjRfXykg
JiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDMKKyNpZiBkZWZpbmVk
KF9fTFA2NF9fKQogICAgIHNlbGYtPl90eXBlID0gTlNFdmVudFR5cGVQcmVzc3VyZTsKICAgICBf
ZXZlbnRTZW5kZXJfdHlwZSA9IE5TRXZlbnRUeXBlUHJlc3N1cmU7CiAjZW5kaWYKQEAgLTMyNSw3
ICszMjUsNyBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlVXAodW5zaWduZWQgCiAgICAg
bV9jbGlja1Bvc2l0aW9uID0gbV9wb3NpdGlvbjsKIH0KIAotI2lmIGRlZmluZWQoX19MUDY0X18p
ICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAzCisjaWYgZGVmaW5l
ZChfX0xQNjRfXykKIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6c2VuZE1vdXNlRG93blRvU3RhcnRQ
cmVzc3VyZUV2ZW50cygpCiB7CiAgICAgdXBkYXRlQ2xpY2tDb3VudEZvckJ1dHRvbigwKTsKQEAg
LTU3Myw3ICs1NzMsNyBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlRm9yY2VDbGljaygp
CiB2b2lkIEV2ZW50U2VuZGVyUHJveHk6OnN0YXJ0QW5kQ2FuY2VsTW91c2VGb3JjZUNsaWNrKCkK
IHsKIH0KLSNlbmRpZiAvLyBkZWZpbmVkKF9fTFA2NF9fKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwMTAwMworI2VuZGlmIC8vIGRlZmluZWQoX19MUDY0X18pCiAKIHZv
aWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VNb3ZlVG8oZG91YmxlIHgsIGRvdWJsZSB5KQogewo=
</data>
<flag name="commit-queue"
          id="370277"
          type_id="3"
          status="-"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353061</attachid>
            <date>2018-10-24 15:53:37 -0700</date>
            <delta_ts>2018-10-24 16:40:27 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>ObsoleteMac.txt</filename>
            <type>text/plain</type>
            <size>20269</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzNzM2MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDE4LTEwLTI0ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIENsZWFuIHVwIHNvbWUgb2Jz
b2xldGUgbWFjT1MgdmVyc2lvbiBndWFyZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5MDg4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWQXNzZXRGb3JVUkwp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
bWF4aW11bUR1cmF0aW9uVG9DYWNoZU1lZGlhVGltZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpkaWRQYXNzQ09SU0FjY2Vzc0No
ZWNrIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OndvdWxkVGFpbnRPcmlnaW4gY29uc3QpOgorCiAyMDE4LTEwLTIzICBSeWFuIEhh
ZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxp
bmcgb3V0IHIyMzcyODAuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzNzM2MCkK
KysrIFNvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxMiBAQAorMjAxOC0xMC0yNCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4K
KworICAgICAgICBDbGVhbiB1cCBzb21lIG9ic29sZXRlIG1hY09TIHZlcnNpb24gZ3VhcmRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA4ODcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhbC9zcGkv
bWFjL1RVQ2FsbFNQSS5oOgorCiAyMDE4LTEwLTIzICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRA
YXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMzcyODAuCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvVFVDYWxsU1BJLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL1RVQ2FsbFNQSS5oCShyZXZpc2lv
biAyMzczNjApCisrKyBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvVFVDYWxsU1BJLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTIzLDcgKzIzLDcgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KICAqLwogCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDEwMDAKKyNpZiBQTEFURk9STShNQUMpCiAKICNpbXBvcnQgPG9iamMvcnVudGltZS5oPgog
I2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0J
KHJldmlzaW9uIDIzNzM2MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0JKHdv
cmtpbmcgY29weSkKQEAgLTk2NSw3ICs5NjUsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6CiAgICAgQVZBc3NldFJlc291cmNlTG9hZGVyICpyZXNvdXJjZUxvYWRl
ciA9IG1fYXZBc3NldC5nZXQoKS5yZXNvdXJjZUxvYWRlcjsKICAgICBbcmVzb3VyY2VMb2FkZXIg
c2V0RGVsZWdhdGU6bV9sb2FkZXJEZWxlZ2F0ZS5nZXQoKSBxdWV1ZTpnbG9iYWxMb2FkZXJEZWxl
Z2F0ZVF1ZXVlKCldOwogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+IDEwMTEwMAogICAgIGlmIChEZXByZWNhdGVkR2xvYmFsU2V0
dGluZ3M6OmlzQVZGb3VuZGF0aW9uTlNVUkxTZXNzaW9uRW5hYmxlZCgpCiAgICAgICAgICYmIFty
ZXNvdXJjZUxvYWRlciByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNldFVSTFNlc3Npb246
KV0KICAgICAgICAgJiYgW3Jlc291cmNlTG9hZGVyIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IoVVJMU2Vzc2lvbkRhdGFEZWxlZ2F0ZSldCkBAIC05NzQsNyArOTczLDYgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOgogICAgICAgICBpZiAobWVkaWFSZXNvdXJj
ZUxvYWRlcikKICAgICAgICAgICAgIHJlc291cmNlTG9hZGVyLlVSTFNlc3Npb24gPSAoTlNVUkxT
ZXNzaW9uICopW1tbV2ViQ29yZU5TVVJMU2Vzc2lvbiBhbGxvY10gaW5pdFdpdGhSZXNvdXJjZUxv
YWRlcjoqbWVkaWFSZXNvdXJjZUxvYWRlciBkZWxlZ2F0ZTpyZXNvdXJjZUxvYWRlci5VUkxTZXNz
aW9uRGF0YURlbGVnYXRlIGRlbGVnYXRlUXVldWU6cmVzb3VyY2VMb2FkZXIuVVJMU2Vzc2lvbkRh
dGFEZWxlZ2F0ZVF1ZXVlXSBhdXRvcmVsZWFzZV07CiAgICAgfQotI2VuZGlmCiAKICNlbmRpZgog
CkBAIC0xODUwLDExICsxODQ4LDcgQEAgTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbgogCiBkb3VibGUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWF4
aW11bUR1cmF0aW9uVG9DYWNoZU1lZGlhVGltZSgpIGNvbnN0CiB7Ci0jaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkgfHwgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwCiAgICAg
cmV0dXJuIDA7Ci0jZWxzZQotICAgIHJldHVybiA1OwotI2VuZGlmCiB9CiAKIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlVmlkZW9MYXllckdyYXZpdHkoKQpA
QCAtMjIwMyw3ICsyMTk3LDYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOgogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmRpZFBhc3ND
T1JTQWNjZXNzQ2hlY2soKSBjb25zdAogewotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPiAxMDExMDAKICAgICBBVkFzc2V0UmVzb3Vy
Y2VMb2FkZXIgKnJlc291cmNlTG9hZGVyID0gbV9hdkFzc2V0LmdldCgpLnJlc291cmNlTG9hZGVy
OwogICAgIGlmICghRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjppc0FWRm91bmRhdGlvbk5TVVJM
U2Vzc2lvbkVuYWJsZWQoKQogICAgICAgICB8fCAhW3Jlc291cmNlTG9hZGVyIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3IoVVJMU2Vzc2lvbildKQpAQCAtMjIxMiwxMyArMjIwNSwxMiBAQCBi
b29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6CiAgICAgV2ViQ29yZU5TVVJM
U2Vzc2lvbiAqc2Vzc2lvbiA9IChXZWJDb3JlTlNVUkxTZXNzaW9uICopcmVzb3VyY2VMb2FkZXIu
VVJMU2Vzc2lvbjsKICAgICBpZiAoW3Nlc3Npb24gaXNLaW5kT2ZDbGFzczpbV2ViQ29yZU5TVVJM
U2Vzc2lvbiBjbGFzc11dKQogICAgICAgICByZXR1cm4gc2Vzc2lvbi5kaWRQYXNzQ09SU0FjY2Vz
c0NoZWNrczsKLSNlbmRpZgorCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCiBzdGQ6Om9wdGlvbmFs
PGJvb2w+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OndvdWxkVGFpbnRPcmln
aW4oY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9yaWdpbikgY29uc3QKIHsKLSNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKSB8fCBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID4gMTAxMTAwCiAg
ICAgQVZBc3NldFJlc291cmNlTG9hZGVyICpyZXNvdXJjZUxvYWRlciA9IG1fYXZBc3NldC5nZXQo
KS5yZXNvdXJjZUxvYWRlcjsKICAgICBpZiAoIURlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6aXNB
VkZvdW5kYXRpb25OU1VSTFNlc3Npb25FbmFibGVkKCkKICAgICAgICAgfHwgIVtyZXNvdXJjZUxv
YWRlciByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKFVSTFNlc3Npb24pXSkKQEAgLTIyMjcs
NyArMjIxOSw3IEBAIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gTWVkaWFQbGF5ZXJQcml2YXRlQVYKICAg
ICBXZWJDb3JlTlNVUkxTZXNzaW9uICpzZXNzaW9uID0gKFdlYkNvcmVOU1VSTFNlc3Npb24gKily
ZXNvdXJjZUxvYWRlci5VUkxTZXNzaW9uOwogICAgIGlmIChbc2Vzc2lvbiBpc0tpbmRPZkNsYXNz
OltXZWJDb3JlTlNVUkxTZXNzaW9uIGNsYXNzXV0pCiAgICAgICAgIHJldHVybiBbc2Vzc2lvbiB3
b3VsZFRhaW50T3JpZ2luOm9yaWdpbl07Ci0jZW5kaWYKKwogICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBo
aWNzQ29udGV4dENHLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAJKHJldmlzaW9uIDIzNzM2MCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTI5LDcgKzEyOSw3IEBAIENHQ29sb3JTcGFjZVJlZiBkaXNwbGF5
UDNDb2xvclNwYWNlUmVmKCkKICAgICBzdGF0aWMgQ0dDb2xvclNwYWNlUmVmIGRpc3BsYXlQM0Nv
bG9yU3BhY2U7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwogICAgIHN0ZDo6
Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgKFBM
QVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+IDEwMTEwMCkK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSB8fCBQTEFURk9STShNQUMpCiAgICAgICAgIGRpc3Bs
YXlQM0NvbG9yU3BhY2UgPSBDR0NvbG9yU3BhY2VDcmVhdGVXaXRoTmFtZShrQ0dDb2xvclNwYWNl
RGlzcGxheVAzKTsKICNlbHNlCiAgICAgICAgIGRpc3BsYXlQM0NvbG9yU3BhY2UgPSBzUkdCQ29s
b3JTcGFjZVJlZigpOwpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzNzM2MCkKKysrIFNvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTgtMTAt
MjQgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYW4g
dXAgc29tZSBvYnNvbGV0ZSBtYWNPUyB2ZXJzaW9uIGd1YXJkcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwODg3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL21hYy9jb20uYXBw
bGUuV2ViS2l0LnBsdWdpbi1jb21tb24uc2IuaW46CisgICAgICAgICogVUlQcm9jZXNzL0NvY29h
L1dlYlByb2Nlc3NQb29sQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29s
OjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKwogMjAxOC0xMC0yMyAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtQU09OXSBBZGQgc3VwcG9ydCBmb3Ig
Y3Jvc3Mtc2l0ZSBjbGllbnQtc2lkZSByZWRpcmVjdHMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvUGx1
Z2luUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5wbHVnaW4tY29tbW9uLnNiLmluCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktp
dC5wbHVnaW4tY29tbW9uLnNiLmluCShyZXZpc2lvbiAyMzczNjApCisrKyBTb3VyY2UvV2ViS2l0
L1BsdWdpblByb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQucGx1Z2luLWNvbW1vbi5zYi5pbgko
d29ya2luZyBjb3B5KQpAQCAtMzMwLDIyICszMzAsNiBAQAogCiAgICAgKGhvbWUtbGl0ZXJhbCAi
L0xpYnJhcnkvUHJlZmVyZW5jZXMvY29tLmFwcGxlLmxvb2t1cC5zaGFyZWQucGxpc3QiKSkKIAot
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCAxMDEyNDAKLTs7IEZJWE1FOiBU
aGlzIHNob3VsZCBiZSByZW1vdmVkIHdoZW4gPHJkYXI6Ly9wcm9ibGVtLzEwNDc5Njg1PiBpcyBm
aXhlZC4KLTs7IFJlc3RyaWN0IEFwcFNhbmRib3hlZCBwcm9jZXNzZXMgZnJvbSBjcmVhdGluZyAv
TGlicmFyeS9LZXljaGFpbnMsIGJ1dCBhbGxvdyBhY2Nlc3MgdG8gdGhlIGNvbnRlbnRzIG9mIC9M
aWJyYXJ5L0tleWNoYWluczoKLShhbGxvdyBmaWxlLXJlYWQtZGF0YSBmaWxlLXJlYWQtbWV0YWRh
dGEgZmlsZS13cml0ZS1kYXRhCi0gICAgKHN1YnBhdGggIi9MaWJyYXJ5L0tleWNoYWlucyIpKQot
Ci07OyBEbyBwZXJtaXQgY3JlYXRpbmcgcGVyLXVzZXIga2V5Y2hhaW5zCi0oYWxsb3cgZmlsZS1y
ZWFkKiBmaWxlLXdyaXRlKgotICAgIChob21lLWxpYnJhcnktc3VicGF0aCAiL0tleWNoYWlucyIp
KQotCi07OyBFeGNlcHQgZGVueSBhY2Nlc3MgdG8gbmV3LXN0eWxlIGlPUyBLZXljaGFpbiBmb2xk
ZXJzIHdoaWNoIGFyZSBVVUlEcy4KLShkZW55IGZpbGUtcmVhZCogZmlsZS13cml0ZSoKLSAgICAo
cmVnZXggKHN0cmluZy1hcHBlbmQgIi9MaWJyYXJ5L0tleWNoYWlucy8iICh1dWlkLXJlZ2V4LXN0
cmluZykgIigvfCQpIikpCi0gICAgKGhvbWUtbGlicmFyeS1yZWdleCAoc3RyaW5nLWFwcGVuZCAi
L0tleWNoYWlucy8iICh1dWlkLXJlZ2V4LXN0cmluZykgIigvfCQpIikpKQotI2VuZGlmCi0KIDs7
IFNlY3VyaXR5IGZyYW1ld29yawogKGFsbG93IG1hY2gtbG9va3VwIChnbG9iYWwtbmFtZSAiY29t
LmFwcGxlLm9jc3BkIikpCiAoYWxsb3cgZmlsZS1yZWFkKgpJbmRleDogU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCShyZXZpc2lv
biAyMzczNjApCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9v
bENvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMDUsMTQgKzIwNSw3IEBAIHZvaWQgV2ViUHJv
Y2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVcKICAgICBwYXJhbWV0ZXJzLmZvbnRXaGl0ZWxp
c3QgPSBtX2ZvbnRXaGl0ZWxpc3Q7CiAKICAgICBpZiAobV9idW5kbGVQYXJhbWV0ZXJzKSB7Ci0j
aWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEw
MTIwMCkKLSAgICAgICAgYXV0byBkYXRhID0gYWRvcHROUyhbW05TTXV0YWJsZURhdGEgYWxsb2Nd
IGluaXRdKTsKLSAgICAgICAgYXV0byBrZXllZEFyY2hpdmVyID0gYWRvcHROUyhbW05TS2V5ZWRB
cmNoaXZlciBhbGxvY10gaW5pdEZvcldyaXRpbmdXaXRoTXV0YWJsZURhdGE6ZGF0YS5nZXQoKV0p
OwotCi0gICAgICAgIFtrZXllZEFyY2hpdmVyIHNldFJlcXVpcmVzU2VjdXJlQ29kaW5nOllFU107
Ci0jZWxzZQogICAgICAgICBhdXRvIGtleWVkQXJjaGl2ZXIgPSBzZWN1cmVBcmNoaXZlcigpOwot
I2VuZGlmCiAKICAgICAgICAgQHRyeSB7CiAgICAgICAgICAgICBba2V5ZWRBcmNoaXZlciBlbmNv
ZGVPYmplY3Q6bV9idW5kbGVQYXJhbWV0ZXJzLmdldCgpIGZvcktleTpAInBhcmFtZXRlcnMiXTsK
QEAgLTIyMSw5ICsyMTQsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxp
emVXCiAgICAgICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBlbmNvZGUgYnVuZGxlIHBhcmFt
ZXRlcnM6ICVAIiwgZXhjZXB0aW9uKTsKICAgICAgICAgfQogCi0jaWYgKCFQTEFURk9STShNQUMp
IHx8IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMjAwKQogICAgICAgICBh
dXRvIGRhdGEgPSBrZXllZEFyY2hpdmVyLmdldCgpLmVuY29kZWREYXRhOwotI2VuZGlmCiAKICAg
ICAgICAgcGFyYW1ldGVycy5idW5kbGVQYXJhbWV0ZXJEYXRhID0gQVBJOjpEYXRhOjpjcmVhdGVX
aXRob3V0Q29weWluZyhXVEZNb3ZlKGRhdGEpKTsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzczNjApCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMCBAQAorMjAxOC0xMC0yNCAg
QWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAgICBDbGVhbiB1cCBz
b21lIG9ic29sZXRlIG1hY09TIHZlcnNpb24gZ3VhcmRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA4ODcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1pc2MvV2ViTlNQYXN0ZWJvYXJkRXh0cmFzLm1t
OgorICAgICAgICAoK1tOU1Bhc3RlYm9hcmQgX3dlYl9kcmFnVHlwZXNGb3JVUkxdKToKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW06CisgICAgICAgIChQb3B1cE1lbnVN
YWM6OnNob3cpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbToKKyAgICAgICAgKFdl
YkVkaXRvckNsaWVudDo6cmVzcG9uZFRvQ2hhbmdlZFNlbGVjdGlvbik6CisgICAgICAgICogV2Vi
Vmlldy9XZWJQREZWaWV3Lm1tOgorICAgICAgICAoLVtXZWJQREZWaWV3IF9jbGlwVmlld0ZvclBE
RkRvY3VtZW50Vmlld10pOgorCiAyMDE4LTEwLTE4ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBA
YXBwbGUuY29tPgogCiAgICAgICAgIFN3aXRjaCBmcm9tIFBMQVRGT1JNKElPUykgdG8gUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViTlNQ
YXN0ZWJvYXJkRXh0cmFzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L01pc2MvV2ViTlNQYXN0ZWJvYXJkRXh0cmFzLm1tCShyZXZpc2lvbiAyMzczNjApCisrKyBTb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMTEzLDkgKzExMyw3IEBAICsgKE5TQXJyYXkgKilfd2ViX2RyYWdUeXBlc0Zv
clVSTAogICAgICAgICBXZWJVUkxOYW1lUGJvYXJkVHlwZSwKICAgICAgICAgbGVnYWN5U3RyaW5n
UGFzdGVib2FyZFR5cGUoKSwKICAgICAgICAgbGVnYWN5RmlsZW5hbWVzUGFzdGVib2FyZFR5cGUo
KSwKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIwMAogICAgICAg
ICBsZWdhY3lGaWxlc1Byb21pc2VQYXN0ZWJvYXJkVHlwZSgpLAotI2VuZGlmCiAgICAgICAgIG5p
bF07CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1Bv
cHVwTWVudU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0JKHJldmlzaW9uIDIzNzM2MCkKKysrIFNvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbQkod29ya2luZyBj
b3B5KQpAQCAtMTY3LDIzICsxNjcsMTUgQEAgdm9pZCBQb3B1cE1lbnVNYWM6OnNob3coY29uc3Qg
SW50UmVjdCYgcgogICAgICAgICBhdXRvIGRlZmF1bHRGb250ID0gYWRvcHRDRihDVEZvbnRDcmVh
dGVVSUZvbnRGb3JMYW5ndWFnZShrQ1RGb250VUlGb250U3lzdGVtLCBDVEZvbnRHZXRTaXplKGZv
bnQpLCBuaWwpKTsKICAgICAgICAgdmVydE9mZnNldCArPSBDVEZvbnRHZXREZXNjZW50KGZvbnQp
IC0gQ1RGb250R2V0RGVzY2VudChkZWZhdWx0Rm9udC5nZXQoKSk7CiAgICAgICAgIHZlcnRPZmZz
ZXQgPSBmbWluZihOU0hlaWdodChyKSwgdmVydE9mZnNldCk7Ci0jaWYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDEyMDAKICAgICAgICAgaWYgKHRleHREaXJlY3Rpb24gPT0g
VGV4dERpcmVjdGlvbjo6TFRSKQogICAgICAgICAgICAgbG9jYXRpb24gPSBOU01ha2VQb2ludChO
U01pblgocikgKyBwb3BPdmVySG9yaXpvbnRhbEFkanVzdCwgTlNNYXhZKHIpIC0gdmVydE9mZnNl
dCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGxvY2F0aW9uID0gTlNNYWtlUG9pbnQoTlNN
YXhYKHIpIC0gcG9wT3Zlckhvcml6b250YWxBZGp1c3QsIE5TTWF4WShyKSAtIHZlcnRPZmZzZXQp
OwotI2Vsc2UKLSAgICAgICAgbG9jYXRpb24gPSBOU01ha2VQb2ludChOU01pblgocikgKyBwb3BP
dmVySG9yaXpvbnRhbEFkanVzdCwgTlNNYXhZKHIpIC0gdmVydE9mZnNldCk7Ci0jZW5kaWYKICAg
ICB9IGVsc2UgewotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMjAw
CiAgICAgICAgIGlmICh0ZXh0RGlyZWN0aW9uID09IFRleHREaXJlY3Rpb246OkxUUikKICAgICAg
ICAgICAgIGxvY2F0aW9uID0gTlNNYWtlUG9pbnQoTlNNaW5YKHIpICsgcG9wVW5kZXJIb3Jpem9u
dGFsQWRqdXN0LCBOU01heFkocikgKyBwb3BVbmRlclZlcnRpY2FsQWRqdXN0KTsKICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgbG9jYXRpb24gPSBOU01ha2VQb2ludChOU01heFgocikgLSBwb3BV
bmRlckhvcml6b250YWxBZGp1c3QsIE5TTWF4WShyKSArIHBvcFVuZGVyVmVydGljYWxBZGp1c3Qp
OwotI2Vsc2UKLSAgICAgICAgbG9jYXRpb24gPSBOU01ha2VQb2ludChOU01pblgocikgKyBwb3BV
bmRlckhvcml6b250YWxBZGp1c3QsIE5TTWF4WShyKSArIHBvcFVuZGVyVmVydGljYWxBZGp1c3Qp
OwotI2VuZGlmCiAgICAgfQogICAgIC8vIFNhdmUgdGhlIGN1cnJlbnQgZXZlbnQgdGhhdCB0cmln
Z2VyZWQgdGhlIHBvcHVwLCBzbyB3ZSBjYW4gY2xlYW4gdXAgb3VyIGV2ZW50CiAgICAgLy8gc3Rh
dGUgYWZ0ZXIgdGhlIE5TTWVudSBnb2VzIGF3YXkuCkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAkocmV2
aXNpb24gMjM3MzYwKQorKysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE2NSw3ICsxNjUsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpIGZpbmFsOwog
ICAgIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6VGV4dENoZWNraW5nUmVx
dWVzdCYsIGNvbnN0IFdlYkNvcmU6OlZpc2libGVTZWxlY3Rpb24mIGN1cnJlbnRTZWxlY3Rpb24p
IGZpbmFsOwogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTIwMAorI2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lkIHJlcXVlc3RDYW5k
aWRhdGVzRm9yU2VsZWN0aW9uKGNvbnN0IFdlYkNvcmU6OlZpc2libGVTZWxlY3Rpb24mKSBmaW5h
bDsKICAgICB2b2lkIGhhbmRsZVJlcXVlc3RlZENhbmRpZGF0ZXMoTlNJbnRlZ2VyLCBOU0FycmF5
PE5TVGV4dENoZWNraW5nUmVzdWx0ICo+ICopOwogICAgIHZvaWQgaGFuZGxlQWNjZXB0ZWRDYW5k
aWRhdGVXaXRoU29mdFNwYWNlcyhXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQpIGZpbmFsOwpA
QCAtMTg1LDcgKzE4NSw3IEBAIHByaXZhdGU6CiAKICAgICBXZWJDb3JlOjpWaXNpYmxlU2VsZWN0
aW9uIG1fbGFzdFNlbGVjdGlvbkZvclJlcXVlc3RlZENhbmRpZGF0ZXM7CiAKLSNpZiBQTEFURk9S
TShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMjAwCisjaWYg
UExBVEZPUk0oTUFDKQogICAgIFJldGFpblB0cjxOU1N0cmluZz4gbV9wYXJhZ3JhcGhDb250ZXh0
Rm9yQ2FuZGlkYXRlUmVxdWVzdDsKICAgICBOU1JhbmdlIG1fcmFuZ2VGb3JDYW5kaWRhdGVzOwog
ICAgIE5TSW50ZWdlciBtX2xhc3RDYW5kaWRhdGVSZXF1ZXN0U2VxdWVuY2VOdW1iZXI7CkluZGV4
OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50Lm1tCShyZXZpc2lvbiAyMzczNjApCisrKyBTb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0JKHdvcmtpbmcgY29weSkK
QEAgLTM3OSw3ICszNzksNyBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6cmVzcG9uZFRvQ2hhbmdl
ZFNlCiAgICAgICAgIFdlYlRocmVhZFBvc3ROb3RpZmljYXRpb24oV2ViVmlld0RpZENoYW5nZVNl
bGVjdGlvbk5vdGlmaWNhdGlvbiwgbV93ZWJWaWV3LCBuaWwpOwogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMjAwCisj
aWYgUExBVEZPUk0oTUFDKQogICAgIGlmIChmcmFtZS0+ZWRpdG9yKCkuY2FuRWRpdCgpKQogICAg
ICAgICByZXF1ZXN0Q2FuZGlkYXRlc0ZvclNlbGVjdGlvbihmcmFtZS0+c2VsZWN0aW9uKCkuc2Vs
ZWN0aW9uKCkpOwogI2VuZGlmCkBAIC0xMTk0LDcgKzExOTQsNyBAQCB2b2lkIFdlYkVkaXRvckNs
aWVudDo6c2V0SW5wdXRNZXRob2RTdGF0CiB7CiB9CiAKLSNpZiBQTEFURk9STShNQUMpICYmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMjAwCisjaWYgUExBVEZPUk0oTUFD
KQogCiB2b2lkIFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENhbmRpZGF0ZXNGb3JTZWxlY3Rpb24o
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQogewpAQCAtMTI5Miw3ICsxMjkyLDcg
QEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OmhhbmRsZUFjY2VwdGVkQ2FuZAogICAgIGZyYW1lLT5l
ZGl0b3IoKS5oYW5kbGVBY2NlcHRlZENhbmRpZGF0ZShhY2NlcHRlZENhbmRpZGF0ZSk7CiB9CiAK
LSNlbmRpZiAvLyBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxMjAwCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCiAjaWYgIVBMQVRGT1JNKElP
U19GQU1JTFkpCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUERG
Vmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlBERlZpZXcubW0JKHJldmlzaW9uIDIzNzM2MCkKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViUERGVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTA2NCwxMSArMTA2NCw3
IEBAIElHTk9SRV9XQVJOSU5HU19FTkQKIAogLSAoTlNDbGlwVmlldyAqKV9jbGlwVmlld0ZvclBE
RkRvY3VtZW50VmlldwogewotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTAxMjAwCiAgICAgTlNDbGlwVmlldyAqY2xpcFZpZXcgPSAoTlNDbGlwVmlldyAqKVtbUERGU3Vi
dmlldyBkb2N1bWVudFNjcm9sbFZpZXddIGNvbnRlbnRWaWV3XTsKLSNlbHNlCi0gICAgTlNDbGlw
VmlldyAqY2xpcFZpZXcgPSAoTlNDbGlwVmlldyAqKVtbUERGU3VidmlldyBkb2N1bWVudFZpZXdd
IF93ZWJfc3VwZXJ2aWV3T2ZDbGFzczpbTlNDbGlwVmlldyBjbGFzc11dOwotI2VuZGlmCiAgICAg
QVNTRVJUKGNsaXBWaWV3KTsKICAgICByZXR1cm4gY2xpcFZpZXc7CiB9CkluZGV4OiBUb29scy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzczOTkp
CisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBAQAorMjAx
OC0xMC0yNCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAgICBD
bGVhbiB1cCBzb21lIG9ic29sZXRlIG1hY09TIHZlcnNpb24gZ3VhcmRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA4ODcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvY29jb2Ev
VGVzdFdLV2ViVmlldy5tbToKKyAgICAgICAgKF9fc2ltdWxhdGVkX2ZvcmNlQ2xpY2tBc3NvY2lh
dGVkRXZlbnRzTWFzayk6CisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXdIb3N0V2luZG93IF9tb3Vz
ZURvd25BdFBvaW50OnNpbXVsYXRlUHJlc3N1cmU6Y2xpY2tDb3VudDpdKToKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW06CisgICAgICAgIChX
VFI6OmluaXRpYWxpemVXZWJWaWV3Q29uZmlndXJhdGlvbik6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9tYWMvRXZlbnRTZW5kZXJQcm94eS5tbToKKyAgICAgICAgKC1bRXZlbnRTZW5kZXJT
eW50aGV0aWNFdmVudCBpbml0UHJlc3N1cmVFdmVudEF0TG9jYXRpb246Z2xvYmFsTG9jYXRpb246
c3RhZ2U6cHJlc3N1cmU6c3RhZ2VUcmFuc2l0aW9uOnBoYXNlOnRpbWU6ZXZlbnROdW1iZXI6d2lu
ZG93Ol0pOgorCiAyMDE4LTEwLTI0ICBQYWJsbyBTYWF2ZWRyYSAgPHBzYWF2ZWRyYUBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtXUEVdIEZpeCBDTWFrZSBydWxlcyBpbiBmb3IgVGVzdFdlYktpdEFQ
SUJhc2UgbGlicmFyeSBidWlsZGluZyBpbiBkZXZlbG9wZXIgbW9kZQpJbmRleDogVG9vbHMvVGVz
dFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQkocmV2aXNpb24gMjM3MzYwKQorKysg
VG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDMsMjQgKzEwMywxOCBAQCBAaW50ZXJmYWNlIFRlc3RXS1dlYlZpZXdIb3N0V2luZG93
IDogVUlXCiAjaWYgUExBVEZPUk0oTUFDKQogc3RhdGljIGludCBnRXZlbnROdW1iZXIgPSAxOwog
Ci0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDMKIE5TRXZlbnRN
YXNrIF9fc2ltdWxhdGVkX2ZvcmNlQ2xpY2tBc3NvY2lhdGVkRXZlbnRzTWFzayhpZCBzZWxmLCBT
RUwgX2NtZCkKIHsKICAgICByZXR1cm4gTlNFdmVudE1hc2tQcmVzc3VyZSB8IE5TRXZlbnRNYXNr
TGVmdE1vdXNlRG93biB8IE5TRXZlbnRNYXNrTGVmdE1vdXNlVXAgfCBOU0V2ZW50TWFza0xlZnRN
b3VzZURyYWdnZWQ7CiB9Ci0jZW5kaWYKIAogLSAodm9pZClfbW91c2VEb3duQXRQb2ludDooTlNQ
b2ludClwb2ludCBzaW11bGF0ZVByZXNzdXJlOihCT09MKXNpbXVsYXRlUHJlc3N1cmUgY2xpY2tD
b3VudDooTlNVSW50ZWdlciljbGlja0NvdW50CiB7CiAgICAgTlNFdmVudFR5cGUgbW91c2VFdmVu
dFR5cGUgPSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd247CiAKICAgICBOU0V2ZW50TWFzayBtb2Rp
ZmllckZsYWdzID0gMDsKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
MTAwMwogICAgIGlmIChzaW11bGF0ZVByZXNzdXJlKQogICAgICAgICBtb2RpZmllckZsYWdzIHw9
IE5TRXZlbnRNYXNrUHJlc3N1cmU7Ci0jZWxzZQotICAgIHNpbXVsYXRlUHJlc3N1cmUgPSBOTzsK
LSNlbmRpZgogCiAgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5
cGU6bW91c2VFdmVudFR5cGUgbG9jYXRpb246cG9pbnQgbW9kaWZpZXJGbGFnczptb2RpZmllckZs
YWdzIHRpbWVzdGFtcDpHZXRDdXJyZW50RXZlbnRUaW1lKCkgd2luZG93TnVtYmVyOnNlbGYud2lu
ZG93TnVtYmVyIGNvbnRleHQ6W05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBldmVu
dE51bWJlcjorK2dFdmVudE51bWJlciBjbGlja0NvdW50OmNsaWNrQ291bnQgcHJlc3N1cmU6c2lt
dWxhdGVQcmVzc3VyZV07CiAgICAgaWYgKCFzaW11bGF0ZVByZXNzdXJlKSB7CkBAIC0xMjgsNyAr
MTIyLDYgQEAgLSAodm9pZClfbW91c2VEb3duQXRQb2ludDooTlNQb2ludClwb2ludAogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDEwMDMKICAgICBJTVAgc2ltdWxhdGVkQXNzb2NpYXRlZEV2ZW50c01hc2tJbXBsID0gKElN
UClfX3NpbXVsYXRlZF9mb3JjZUNsaWNrQXNzb2NpYXRlZEV2ZW50c01hc2s7CiAgICAgTWV0aG9k
IGFzc29jaWF0ZWRFdmVudHNNYXNrTWV0aG9kID0gY2xhc3NfZ2V0SW5zdGFuY2VNZXRob2QoW05T
RXZlbnQgY2xhc3NdLCBAc2VsZWN0b3IoYXNzb2NpYXRlZEV2ZW50c01hc2spKTsKICAgICBJTVAg
b3JpZ2luYWxBc3NvY2lhdGVkRXZlbnRzTWFza0ltcGwgPSBtZXRob2Rfc2V0SW1wbGVtZW50YXRp
b24oYXNzb2NpYXRlZEV2ZW50c01hc2tNZXRob2QsIHNpbXVsYXRlZEFzc29jaWF0ZWRFdmVudHNN
YXNrSW1wbCk7CkBAIC0xMzksNyArMTMyLDYgQEAgLSAodm9pZClfbW91c2VEb3duQXRQb2ludDoo
TlNQb2ludClwb2ludAogICAgICAgICAvLyB0byBwcmV2ZW50IHN1YnNlcXVlbnQgZXZlbnQgc2Vu
ZGluZyB0ZXN0cyBmcm9tIGJlaW5nIGFmZmVjdGVkLgogICAgICAgICBtZXRob2Rfc2V0SW1wbGVt
ZW50YXRpb24oYXNzb2NpYXRlZEV2ZW50c01hc2tNZXRob2QsIG9yaWdpbmFsQXNzb2NpYXRlZEV2
ZW50c01hc2tJbXBsKTsKICAgICB9Ci0jZW5kaWYKIH0KIAogLSAodm9pZClfbW91c2VVcEF0UG9p
bnQ6KE5TUG9pbnQpcG9pbnQgY2xpY2tDb3VudDooTlNVSW50ZWdlciljbGlja0NvdW50CkluZGV4
OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNv
Y29hLm1tCShyZXZpc2lvbiAyMzczNjApCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29h
L1Rlc3RDb250cm9sbGVyQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTY2LDkgKzY2LDcgQEAg
dm9pZCBpbml0aWFsaXplV2ViVmlld0NvbmZpZ3VyYXRpb24oY29ucwogICAgIGdsb2JhbFdlYlZp
ZXdDb25maWd1cmF0aW9uLl9hbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyA9IFlFUzsK
ICAgICBnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi5fYXBwbGVQYXlFbmFibGVkID0gWUVTOwog
Ci0jaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDEzMDApIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgV0tDb29raWVNYW5hZ2VyU2V0
U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQoV0tDb250ZXh0R2V0Q29va2llTWFuYWdlcihjb250ZXh0
KSwgdHJ1ZSk7Ci0jZW5kaWYKIAogICAgIFdLV2Vic2l0ZURhdGFTdG9yZSogcG9vbFdlYnNpdGVE
YXRhU3RvcmUgPSAoX19icmlkZ2UgV0tXZWJzaXRlRGF0YVN0b3JlICopV0tDb250ZXh0R2V0V2Vi
c2l0ZURhdGFTdG9yZSgoX19icmlkZ2UgV0tDb250ZXh0UmVmKWdsb2JhbFdlYlZpZXdDb25maWd1
cmF0aW9uLnByb2Nlc3NQb29sKTsKICAgICBbcG9vbFdlYnNpdGVEYXRhU3RvcmUgX3NldENhY2hl
U3RvcmFnZVBlck9yaWdpblF1b3RhOiA0MDAgKiAxMDI0XTsKSW5kZXg6IFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvbWFjL0V2ZW50U2VuZGVyUHJveHkubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9tYWMvRXZlbnRTZW5kZXJQcm94eS5tbQkocmV2aXNpb24gMjM3MzYwKQor
KysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvRXZlbnRTZW5kZXJQcm94eS5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtODUsNyArODUsNyBAQCAtIChpZClpbml0UHJlc3N1cmVFdmVudEF0TG9jYXRp
b246KE5TUG9pCiAgICAgX2V2ZW50U2VuZGVyX3RpbWVzdGFtcCA9IHRpbWU7CiAgICAgX2V2ZW50
U2VuZGVyX2V2ZW50TnVtYmVyID0gZXZlbnROdW1iZXI7CiAgICAgX2V2ZW50U2VuZGVyX3dpbmRv
dyA9IHdpbmRvdzsKLSNpZiBkZWZpbmVkKF9fTFA2NF9fKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwMTAwMworI2lmIGRlZmluZWQoX19MUDY0X18pCiAgICAgc2VsZi0+
X3R5cGUgPSBOU0V2ZW50VHlwZVByZXNzdXJlOwogICAgIF9ldmVudFNlbmRlcl90eXBlID0gTlNF
dmVudFR5cGVQcmVzc3VyZTsKICNlbmRpZgpAQCAtMzI1LDcgKzMyNSw3IEBAIHZvaWQgRXZlbnRT
ZW5kZXJQcm94eTo6bW91c2VVcCh1bnNpZ25lZCAKICAgICBtX2NsaWNrUG9zaXRpb24gPSBtX3Bv
c2l0aW9uOwogfQogCi0jaWYgZGVmaW5lZChfX0xQNjRfXykgJiYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDEwMDMKKyNpZiBkZWZpbmVkKF9fTFA2NF9fKQogdm9pZCBFdmVu
dFNlbmRlclByb3h5OjpzZW5kTW91c2VEb3duVG9TdGFydFByZXNzdXJlRXZlbnRzKCkKIHsKICAg
ICB1cGRhdGVDbGlja0NvdW50Rm9yQnV0dG9uKDApOwpAQCAtNTczLDcgKzU3Myw3IEBAIHZvaWQg
RXZlbnRTZW5kZXJQcm94eTo6bW91c2VGb3JjZUNsaWNrKCkKIHZvaWQgRXZlbnRTZW5kZXJQcm94
eTo6c3RhcnRBbmRDYW5jZWxNb3VzZUZvcmNlQ2xpY2soKQogewogfQotI2VuZGlmIC8vIGRlZmlu
ZWQoX19MUDY0X18pICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAz
CisjZW5kaWYgLy8gZGVmaW5lZChfX0xQNjRfXykKIAogdm9pZCBFdmVudFNlbmRlclByb3h5Ojpt
b3VzZU1vdmVUbyhkb3VibGUgeCwgZG91YmxlIHkpCiB7Cg==
</data>
<flag name="review"
          id="370281"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>