<?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>184640</bug_id>
          
          <creation_ts>2018-04-15 15:32:34 -0700</creation_ts>
          <short_desc>Move more WindowProxy-related logic from ScriptController to WindowProxyController</short_desc>
          <delta_ts>2018-04-16 12:03: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>Bindings</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>
          <dependson>184591</dependson>
          <blocked>184515</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1414717</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-04-15 15:32:34 -0700</bug_when>
    <thetext>Move for WindowProxy related logic from ScriptController to WindowProxyController.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414720</commentid>
    <comment_count>1</comment_count>
      <attachid>337982</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-04-15 15:36:59 -0700</bug_when>
    <thetext>Created attachment 337982
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414721</commentid>
    <comment_count>2</comment_count>
      <attachid>337983</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-04-15 15:38:20 -0700</bug_when>
    <thetext>Created attachment 337983
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414858</commentid>
    <comment_count>3</comment_count>
      <attachid>337983</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-04-16 12:02:46 -0700</bug_when>
    <thetext>Comment on attachment 337983
Patch

Clearing flags on attachment: 337983

Committed r230676: &lt;https://trac.webkit.org/changeset/230676&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414859</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-04-16 12:02:47 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414860</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-04-16 12:03:31 -0700</bug_when>
    <thetext>&lt;rdar://problem/39464715&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337982</attachid>
            <date>2018-04-15 15:36:59 -0700</date>
            <delta_ts>2018-04-15 15:38:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184640-20180415153658.patch</filename>
            <type>text/plain</type>
            <size>20606</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwNjQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzk4NGM3NjVlN2M3YzIy
YzY3MzRhYWUyMTNmMmE0ZmM2M2UxMjM3ZC4uOWJmZDA2NjM3YzJmZTlhNGQxZWE5YjA2YmI4ZGE3
ZjFmMjdjOTEzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE4LTA0LTE1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBmb3IgV2luZG93UHJv
eHkgcmVsYXRlZCBsb2dpYyBmcm9tIFNjcmlwdENvbnRyb2xsZXIgdG8gV2luZG93UHJveHlDb250
cm9sbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
ODQ2NDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBN
b3ZlIGZvciBXaW5kb3dQcm94eSByZWxhdGVkIGxvZ2ljIGZyb20gU2NyaXB0Q29udHJvbGxlciB0
byBXaW5kb3dQcm94eUNvbnRyb2xsZXIsCisgICAgICAgIGZvciBjbGFyaXR5LgorCisgICAgICAg
ICogYmluZGluZ3MvanMvSlNET01XaW5kb3dQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpK
U0RPTVdpbmRvd1Byb3h5OjphdHRhY2hEZWJ1Z2dlcik6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNET01XaW5kb3dQcm94eS5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENhY2hlZEZy
YW1lRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDYWNoZWRGcmFtZURhdGE6OlNj
cmlwdENhY2hlZEZyYW1lRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDYWNoZWRGcmFt
ZURhdGE6OnJlc3RvcmUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6flNjcmlwdENvbnRyb2xs
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6aW5pdFNjcmlwdEZvcldp
bmRvd1Byb3h5KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpleGlzdGluZ0NhY2hlYWJsZUJpbmRp
bmdSb290T2JqZWN0IGNvbnN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XaW5kb3dQcm94eUNv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29sbGVjdEdhcmJhZ2VBZnRlcldpbmRv
d1Byb3h5RGVzdHJ1Y3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6V2luZG93UHJveHlDb250cm9s
bGVyOjp+V2luZG93UHJveHlDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldpbmRvd1By
b3h5Q29udHJvbGxlcjo6Y2xlYXJXaW5kb3dQcm94aWVzTm90TWF0Y2hpbmdET01XaW5kb3cpOgor
ICAgICAgICAoV2ViQ29yZTo6V2luZG93UHJveHlDb250cm9sbGVyOjpzZXRET01XaW5kb3dGb3JX
aW5kb3dQcm94eSk6CisgICAgICAgIChXZWJDb3JlOjpXaW5kb3dQcm94eUNvbnRyb2xsZXI6OmF0
dGFjaERlYnVnZ2VyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XaW5kb3dQcm94eUNvbnRyb2xs
ZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXI6OmNsZWFyKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZTo6c2V0RGVidWdnZXIpOgorCiAyMDE4LTA0LTEzICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgU3BsaXQgV2luZG93UHJveHkgaGFuZGxp
bmcgb3V0IG9mIFNjcmlwdENvbnRyb2xsZXIgYW5kIGludG8gYSBuZXcgY2xhc3Mgb3duZWQgYnkg
QWJzdHJhY3RGcmFtZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01XaW5kb3dQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d1Byb3h5LmNwcAppbmRleCA4NWYzM2MyYmNiN2MwZDhlOGJkNjYwYzEwZDA3MjVmYTlkNjdjM2Ji
Li4zOWRmNWJlOGI4MDM3OGQzNTgxN2Q0OGZlMTJiY2EyOWNmNzdkM2E1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1Byb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1Byb3h5LmNwcApAQCAtMTA1LDYgKzEw
NSwxNyBAQCB2b2lkIEpTRE9NV2luZG93UHJveHk6OnNldFdpbmRvdyhET01XaW5kb3cmIGRvbVdp
bmRvdykKICAgICBBU1NFUlQocHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSA9PSAmd2luZG93KTsK
IH0KIAordm9pZCBKU0RPTVdpbmRvd1Byb3h5OjphdHRhY2hEZWJ1Z2dlcihKU0M6OkRlYnVnZ2Vy
KiBkZWJ1Z2dlcikKK3sKKyAgICBhdXRvKiBnbG9iYWxPYmplY3QgPSB3aW5kb3coKTsKKyAgICBK
U0xvY2tIb2xkZXIgbG9jayhnbG9iYWxPYmplY3QtPnZtKCkpOworCisgICAgaWYgKGRlYnVnZ2Vy
KQorICAgICAgICBkZWJ1Z2dlci0+YXR0YWNoKGdsb2JhbE9iamVjdCk7CisgICAgZWxzZSBpZiAo
YXV0byogY3VycmVudERlYnVnZ2VyID0gZ2xvYmFsT2JqZWN0LT5kZWJ1Z2dlcigpKQorICAgICAg
ICBjdXJyZW50RGVidWdnZXItPmRldGFjaChnbG9iYWxPYmplY3QsIEpTQzo6RGVidWdnZXI6OlRl
cm1pbmF0aW5nRGVidWdnaW5nU2Vzc2lvbik7Cit9CisKIERPTVdpbmRvdyYgSlNET01XaW5kb3dQ
cm94eTo6d3JhcHBlZCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHdpbmRvdygpLT53cmFwcGVkKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1Byb3h5
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1Byb3h5LmgKaW5kZXgg
NWRiZjBlZGRiMmJkNTVhMjBhMGQ4Mjc1YmViOWMwYWE2NWQ4NTZlMy4uN2U1NTQ5N2IwNGYwZDlk
YTdmNzJiMDc0ODQwMDUzODk2ZGEzYTM5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93UHJveHkuaApAQCAtMzEsNiArMzEsMTAgQEAKICNpbmNsdWRlICJKU0RP
TVdpbmRvdy5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUHJveHkuaD4KIAorbmFtZXNw
YWNlIEpTQyB7CitjbGFzcyBEZWJ1Z2dlcjsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBGcmFtZTsKQEAgLTUyLDYgKzU2LDggQEAgcHVibGljOgogCiAgICAgRE9NV3JhcHBlcldv
cmxkJiB3b3JsZCgpIHsgcmV0dXJuIG1fd29ybGQ7IH0KIAorICAgIHZvaWQgYXR0YWNoRGVidWdn
ZXIoSlNDOjpEZWJ1Z2dlciopOworCiBwcml2YXRlOgogICAgIEpTRE9NV2luZG93UHJveHkoSlND
OjpWTSYsIEpTQzo6U3RydWN0dXJlJiwgRE9NV3JhcHBlcldvcmxkJik7CiAgICAgdm9pZCBmaW5p
c2hDcmVhdGlvbihKU0M6OlZNJiwgRE9NV2luZG93Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWNoZWRGcmFtZURhdGEuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmNwcAppbmRleCA0NWQxZTM4NDZi
NGZmNGUzZDZlN2M5MjVmNjE0YWQ2YTA5OWJjOGU1Li44NjQ1NmE3MjNiM2YxMDc2MTJjYzE1N2Ey
Mjc4MzI2YmM3YTIxODkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRDYWNoZWRGcmFtZURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdENhY2hlZEZyYW1lRGF0YS5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgU2NyaXB0Q2FjaGVk
RnJhbWVEYXRhOjpTY3JpcHRDYWNoZWRGcmFtZURhdGEoRnJhbWUmIGZyYW1lKQogICAgICAgICB3
aW5kb3ctPnNldENvbnNvbGVDbGllbnQobnVsbHB0cik7CiAgICAgfQogCi0gICAgZnJhbWUuc2Ny
aXB0KCkuYXR0YWNoRGVidWdnZXIobnVsbHB0cik7CisgICAgZnJhbWUud2luZG93UHJveHlDb250
cm9sbGVyKCkuYXR0YWNoRGVidWdnZXIobnVsbHB0cik7CiB9CiAKIFNjcmlwdENhY2hlZEZyYW1l
RGF0YTo6flNjcmlwdENhY2hlZEZyYW1lRGF0YSgpCkBAIC03MCw3ICs3MCw2IEBAIHZvaWQgU2Ny
aXB0Q2FjaGVkRnJhbWVEYXRhOjpyZXN0b3JlKEZyYW1lJiBmcmFtZSkKICAgICBKU0xvY2tIb2xk
ZXIgbG9jayhjb21tb25WTSgpKTsKIAogICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS5wYWdlKCk7Ci0g
ICAgYXV0byYgc2NyaXB0Q29udHJvbGxlciA9IGZyYW1lLnNjcmlwdCgpOwogCiAgICAgZm9yIChh
dXRvIHdpbmRvd1Byb3h5IDogZnJhbWUud2luZG93UHJveHlDb250cm9sbGVyKCkud2luZG93UHJv
eGllc0FzVmVjdG9yKCkpIHsKICAgICAgICAgYXV0byogd29ybGQgPSAmd2luZG93UHJveHktPndv
cmxkKCk7CkBAIC04Niw3ICs4NSw3IEBAIHZvaWQgU2NyaXB0Q2FjaGVkRnJhbWVEYXRhOjpyZXN0
b3JlKEZyYW1lJiBmcmFtZSkKICAgICAgICAgICAgIHdpbmRvd1Byb3h5LT5zZXRXaW5kb3coZG9t
V2luZG93KTsKIAogICAgICAgICAgICAgaWYgKHBhZ2UpIHsKLSAgICAgICAgICAgICAgICBzY3Jp
cHRDb250cm9sbGVyLmF0dGFjaERlYnVnZ2VyKHdpbmRvd1Byb3h5LmdldCgpLCBwYWdlLT5kZWJ1
Z2dlcigpKTsKKyAgICAgICAgICAgICAgICB3aW5kb3dQcm94eS0+YXR0YWNoRGVidWdnZXIocGFn
ZS0+ZGVidWdnZXIoKSk7CiAgICAgICAgICAgICAgICAgd2luZG93UHJveHktPndpbmRvdygpLT5z
ZXRQcm9maWxlR3JvdXAocGFnZS0+Z3JvdXAoKS5pZGVudGlmaWVyKCkpOwogICAgICAgICAgICAg
fQogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRy
b2xsZXIuY3BwCmluZGV4IGU5MmFjYWFmYzliOWVmYzZjNDljYjY2Yjg0NGE3NmEzY2RjNzRmM2Iu
LmJiNThjMDgwZmMyZTA2MDRiNDdmN2U5YmUyMzgyMWJjZDI4YmIzYzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC0yMywxNCArMjMs
MTIgQEAKIAogI2luY2x1ZGUgIkJyaWRnZUpTQy5oIgogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdEZl
dGNoZXIuaCIKLSNpbmNsdWRlICJDb21tb25WTS5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0
eVBvbGljeS5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRXZlbnQu
aCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVk
ZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKLSNpbmNsdWRlICJHQ0NvbnRyb2xsZXIuaCIKICNpbmNs
dWRlICJIVE1MUGx1Z0luRWxlbWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZ1NlY3VyaXR5LmgiCkBAIC02Niw3ICs2NCw2
IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNTY3JpcHRGZXRjaGVyLmg+CiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvU2NyaXB0Q2FsbFN0YWNrLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvU3Ryb25nSW5saW5lcy5oPgotI2luY2x1ZGUgPHd0Zi9NZW1vcnlQcmVzc3VyZUhhbmRs
ZXIuaD4KICNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFk
aW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFBvc2l0aW9uLmg+CkBAIC03NCwxOCArNzEs
NiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAotc3RhdGlj
IHZvaWQgY29sbGVjdEdhcmJhZ2VBZnRlcldpbmRvd1Byb3h5RGVzdHJ1Y3Rpb24oKQotewotICAg
IC8vIE1ha2Ugc3VyZSB0byBHQyBFeHRyYSBTb29uKHRtKSBkdXJpbmcgbWVtb3J5IHByZXNzdXJl
IGNvbmRpdGlvbnMKLSAgICAvLyB0byBzb2Z0ZW4gaGlnaCBwZWFrcyBvZiBtZW1vcnkgdXNhZ2Ug
ZHVyaW5nIG5hdmlnYXRpb24uCi0gICAgaWYgKE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2luZ2xl
dG9uKCkuaXNVbmRlck1lbW9yeVByZXNzdXJlKCkpIHsKLSAgICAgICAgLy8gTk9URTogV2UgZG8g
dGhlIGNvbGxlY3Rpb24gb24gbmV4dCBydW5sb29wIHRvIGVuc3VyZSB0aGF0IHRoZXJlJ3Mgbm8g
cG9pbnRlcgotICAgICAgICAvLyAgICAgICB0byB0aGUgd2luZG93IG9iamVjdCBvbiB0aGUgc3Rh
Y2suCi0gICAgICAgIEdDQ29udHJvbGxlcjo6c2luZ2xldG9uKCkuZ2FyYmFnZUNvbGxlY3RPbk5l
eHRSdW5Mb29wKCk7Ci0gICAgfSBlbHNlCi0gICAgICAgIEdDQ29udHJvbGxlcjo6c2luZ2xldG9u
KCkuZ2FyYmFnZUNvbGxlY3RTb29uKCk7Ci19Ci0KIHZvaWQgU2NyaXB0Q29udHJvbGxlcjo6aW5p
dGlhbGl6ZVRocmVhZGluZygpCiB7CiAjaWYgIVBMQVRGT1JNKElPUykKQEAgLTExNiwxNiArMTAx
LDYgQEAgU2NyaXB0Q29udHJvbGxlcjo6flNjcmlwdENvbnRyb2xsZXIoKQogICAgICAgICBtX2Nh
Y2hlYWJsZUJpbmRpbmdSb290T2JqZWN0LT5pbnZhbGlkYXRlKCk7CiAgICAgICAgIG1fY2FjaGVh
YmxlQmluZGluZ1Jvb3RPYmplY3QgPSBudWxscHRyOwogICAgIH0KLQotICAgIC8vIEl0J3MgbGlr
ZWx5IHRoYXQgZGVzdHJveWluZyB3aW5kb3dQcm94aWVzIHdpbGwgY3JlYXRlIGEgbG90IG9mIGdh
cmJhZ2UuCi0gICAgaWYgKCF3aW5kb3dQcm94eUNvbnRyb2xsZXIoKS53aW5kb3dQcm94aWVzKCku
aXNFbXB0eSgpKSB7Ci0gICAgICAgIHdoaWxlICghd2luZG93UHJveHlDb250cm9sbGVyKCkud2lu
ZG93UHJveGllcygpLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgYXV0byB3aW5kb3dQcm94eSA9
ICp3aW5kb3dQcm94eUNvbnRyb2xsZXIoKS53aW5kb3dQcm94aWVzKCkuYmVnaW4oKTsKLSAgICAg
ICAgICAgIHdpbmRvd1Byb3h5LmdldCgpLT53aW5kb3coKS0+c2V0Q29uc29sZUNsaWVudChudWxs
cHRyKTsKLSAgICAgICAgICAgIHdpbmRvd1Byb3h5Q29udHJvbGxlcigpLmRlc3Ryb3lXaW5kb3dQ
cm94eSh3aW5kb3dQcm94eS5nZXQoKS0+d29ybGQoKSk7Ci0gICAgICAgIH0KLSAgICAgICAgY29s
bGVjdEdhcmJhZ2VBZnRlcldpbmRvd1Byb3h5RGVzdHJ1Y3Rpb24oKTsKLSAgICB9CiB9CiAKIEpT
VmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVJbldvcmxkKGNvbnN0IFNjcmlwdFNvdXJj
ZUNvZGUmIHNvdXJjZUNvZGUsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIEV4Y2VwdGlvbkRldGFp
bHMqIGV4Y2VwdGlvbkRldGFpbHMpCkBAIC0yNjUsNTcgKzI0MCw2IEBAIHZvaWQgU2NyaXB0Q29u
dHJvbGxlcjo6Z2V0QWxsV29ybGRzKFZlY3RvcjxSZWY8RE9NV3JhcHBlcldvcmxkPj4mIHdvcmxk
cykKICAgICBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KGNvbW1vblZNKCkuY2xpZW50RGF0
YSktPmdldEFsbFdvcmxkcyh3b3JsZHMpOwogfQogCi12b2lkIFNjcmlwdENvbnRyb2xsZXI6OmNs
ZWFyV2luZG93UHJveGllc05vdE1hdGNoaW5nRE9NV2luZG93KERPTVdpbmRvdyogbmV3RE9NV2lu
ZG93LCBib29sIGdvaW5nSW50b1BhZ2VDYWNoZSkKLXsKLSAgICBpZiAod2luZG93UHJveHlDb250
cm9sbGVyKCkud2luZG93UHJveGllcygpLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgSlNMb2NrSG9sZGVyIGxvY2soY29tbW9uVk0oKSk7Ci0KLSAgICBmb3IgKGF1dG8mIHdpbmRv
d1Byb3h5IDogd2luZG93UHJveHlDb250cm9sbGVyKCkud2luZG93UHJveGllc0FzVmVjdG9yKCkp
IHsKLSAgICAgICAgaWYgKCZ3aW5kb3dQcm94eS0+d3JhcHBlZCgpID09IG5ld0RPTVdpbmRvdykK
LSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIC8vIENsZWFyIHRoZSBkZWJ1Z2dlciBh
bmQgY29uc29sZSBmcm9tIHRoZSBjdXJyZW50IHdpbmRvdyBiZWZvcmUgc2V0dGluZyB0aGUgbmV3
IHdpbmRvdy4KLSAgICAgICAgYXR0YWNoRGVidWdnZXIod2luZG93UHJveHkuZ2V0KCksIG51bGxw
dHIpOwotICAgICAgICB3aW5kb3dQcm94eS0+d2luZG93KCktPnNldENvbnNvbGVDbGllbnQobnVs
bHB0cik7Ci0gICAgICAgIHdpbmRvd1Byb3h5LT53aW5kb3coKS0+d2lsbFJlbW92ZUZyb21XaW5k
b3dQcm94eSgpOwotICAgIH0KLQotICAgIC8vIEl0J3MgbGlrZWx5IHRoYXQgcmVzZXR0aW5nIG91
ciB3aW5kb3dzIGNyZWF0ZWQgYSBsb3Qgb2YgZ2FyYmFnZSwgdW5sZXNzCi0gICAgLy8gaXQgd2Vu
dCBpbiBhIGJhY2svZm9yd2FyZCBjYWNoZS4KLSAgICBpZiAoIWdvaW5nSW50b1BhZ2VDYWNoZSkK
LSAgICAgICAgY29sbGVjdEdhcmJhZ2VBZnRlcldpbmRvd1Byb3h5RGVzdHJ1Y3Rpb24oKTsKLX0K
LQotdm9pZCBTY3JpcHRDb250cm9sbGVyOjpzZXRET01XaW5kb3dGb3JXaW5kb3dQcm94eShET01X
aW5kb3cqIG5ld0RPTVdpbmRvdykKLXsKLSAgICBBU1NFUlQobmV3RE9NV2luZG93KTsKLQotICAg
IGlmICh3aW5kb3dQcm94eUNvbnRyb2xsZXIoKS53aW5kb3dQcm94aWVzKCkuaXNFbXB0eSgpKQot
ICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgSlNMb2NrSG9sZGVyIGxvY2soY29tbW9uVk0oKSk7
Ci0gICAgCi0gICAgZm9yIChhdXRvJiB3aW5kb3dQcm94eSA6IHdpbmRvd1Byb3h5Q29udHJvbGxl
cigpLndpbmRvd1Byb3hpZXNBc1ZlY3RvcigpKSB7Ci0gICAgICAgIGlmICgmd2luZG93UHJveHkt
PndyYXBwZWQoKSA9PSBuZXdET01XaW5kb3cpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAg
ICAgCi0gICAgICAgIHdpbmRvd1Byb3h5LT5zZXRXaW5kb3coKm5ld0RPTVdpbmRvdyk7Ci0gICAg
ICAgIAotICAgICAgICAvLyBBbiBtX2NhY2hlYWJsZUJpbmRpbmdSb290T2JqZWN0IHBlcnNpc3Rz
IGJldHdlZW4gcGFnZSBuYXZpZ2F0aW9ucwotICAgICAgICAvLyBzbyBuZWVkcyB0byBrbm93IGFi
b3V0IHRoZSBuZXcgSlNET01XaW5kb3cuCi0gICAgICAgIGlmIChtX2NhY2hlYWJsZUJpbmRpbmdS
b290T2JqZWN0KQotICAgICAgICAgICAgbV9jYWNoZWFibGVCaW5kaW5nUm9vdE9iamVjdC0+dXBk
YXRlR2xvYmFsT2JqZWN0KHdpbmRvd1Byb3h5LT53aW5kb3coKSk7Ci0KLSAgICAgICAgaWYgKFBh
Z2UqIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKSkgewotICAgICAgICAgICAgYXR0YWNoRGVidWdnZXIo
d2luZG93UHJveHkuZ2V0KCksIHBhZ2UtPmRlYnVnZ2VyKCkpOwotICAgICAgICAgICAgd2luZG93
UHJveHktPndpbmRvdygpLT5zZXRQcm9maWxlR3JvdXAocGFnZS0+Z3JvdXAoKS5pZGVudGlmaWVy
KCkpOwotICAgICAgICAgICAgd2luZG93UHJveHktPndpbmRvdygpLT5zZXRDb25zb2xlQ2xpZW50
KCZwYWdlLT5jb25zb2xlKCkpOwotICAgICAgICB9Ci0gICAgfQotfQotCiB2b2lkIFNjcmlwdENv
bnRyb2xsZXI6OmluaXRTY3JpcHRGb3JXaW5kb3dQcm94eShKU0RPTVdpbmRvd1Byb3h5JiB3aW5k
b3dQcm94eSkKIHsKICAgICBhdXRvJiB3b3JsZCA9IHdpbmRvd1Byb3h5LndvcmxkKCk7CkBAIC0z
MjYsNyArMjUwLDcgQEAgdm9pZCBTY3JpcHRDb250cm9sbGVyOjppbml0U2NyaXB0Rm9yV2luZG93
UHJveHkoSlNET01XaW5kb3dQcm94eSYgd2luZG93UHJveHkpCiAgICAgICAgIGRvY3VtZW50LT5j
b250ZW50U2VjdXJpdHlQb2xpY3koKS0+ZGlkQ3JlYXRlV2luZG93UHJveHkod2luZG93UHJveHkp
OwogCiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKSkgewotICAgICAgICBhdHRh
Y2hEZWJ1Z2dlcigmd2luZG93UHJveHksIHBhZ2UtPmRlYnVnZ2VyKCkpOworICAgICAgICB3aW5k
b3dQcm94eS5hdHRhY2hEZWJ1Z2dlcihwYWdlLT5kZWJ1Z2dlcigpKTsKICAgICAgICAgd2luZG93
UHJveHkud2luZG93KCktPnNldFByb2ZpbGVHcm91cChwYWdlLT5ncm91cCgpLmlkZW50aWZpZXIo
KSk7CiAgICAgICAgIHdpbmRvd1Byb3h5LndpbmRvdygpLT5zZXRDb25zb2xlQ2xpZW50KCZwYWdl
LT5jb25zb2xlKCkpOwogICAgIH0KQEAgLTQ1NywyNiArMzgxLDYgQEAgYm9vbCBTY3JpcHRDb250
cm9sbGVyOjpjYW5BY2Nlc3NGcm9tQ3VycmVudE9yaWdpbihGcmFtZSogZnJhbWUpCiAgICAgcmV0
dXJuIEJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0ZyYW1lKHN0YXRlLCBmcmFt
ZSk7CiB9CiAKLXZvaWQgU2NyaXB0Q29udHJvbGxlcjo6YXR0YWNoRGVidWdnZXIoSlNDOjpEZWJ1
Z2dlciogZGVidWdnZXIpCi17Ci0gICAgZm9yIChhdXRvJiB3aW5kb3dQcm94eSA6IHdpbmRvd1By
b3h5Q29udHJvbGxlcigpLndpbmRvd1Byb3hpZXMoKSkKLSAgICAgICAgYXR0YWNoRGVidWdnZXIo
d2luZG93UHJveHkuZ2V0KCksIGRlYnVnZ2VyKTsKLX0KLQotdm9pZCBTY3JpcHRDb250cm9sbGVy
OjphdHRhY2hEZWJ1Z2dlcihKU0RPTVdpbmRvd1Byb3h5KiBwcm94eSwgSlNDOjpEZWJ1Z2dlciog
ZGVidWdnZXIpCi17Ci0gICAgaWYgKCFwcm94eSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXV0
byogZ2xvYmFsT2JqZWN0ID0gcHJveHktPndpbmRvdygpOwotICAgIEpTTG9ja0hvbGRlciBsb2Nr
KGdsb2JhbE9iamVjdC0+dm0oKSk7Ci0KLSAgICBpZiAoZGVidWdnZXIpCi0gICAgICAgIGRlYnVn
Z2VyLT5hdHRhY2goZ2xvYmFsT2JqZWN0KTsKLSAgICBlbHNlIGlmIChhdXRvKiBjdXJyZW50RGVi
dWdnZXIgPSBnbG9iYWxPYmplY3QtPmRlYnVnZ2VyKCkpCi0gICAgICAgIGN1cnJlbnREZWJ1Z2dl
ci0+ZGV0YWNoKGdsb2JhbE9iamVjdCwgSlNDOjpEZWJ1Z2dlcjo6VGVybWluYXRpbmdEZWJ1Z2dp
bmdTZXNzaW9uKTsKLX0KLQogdm9pZCBTY3JpcHRDb250cm9sbGVyOjp1cGRhdGVEb2N1bWVudCgp
CiB7CiAgICAgZm9yIChhdXRvJiB3aW5kb3dQcm94eSA6IHdpbmRvd1Byb3h5Q29udHJvbGxlcigp
LndpbmRvd1Byb3hpZXNBc1ZlY3RvcigpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRDb250cm9sbGVyLmgKaW5kZXggNTFjYzE3OGMzNzRlY2EyMjQzYjc5ZmJlOGNkOGZi
MjJlNjFiNzAxMi4uMGI1MWEwODQ2MTUzMDU1OTdhODIzNDlmMDYwODgzYmRkZTgxZGY0ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaApAQCAtMTIz
LDE3ICsxMjMsMTEgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGNhbkFjY2Vzc0Zyb21DdXJy
ZW50T3JpZ2luKEZyYW1lKik7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBjYW5FeGVjdXRlU2Ny
aXB0cyhSZWFzb25Gb3JDYWxsaW5nQ2FuRXhlY3V0ZVNjcmlwdHMpOwogCi0gICAgLy8gRGVidWdn
ZXIgY2FuIGJlIDAgdG8gZGV0YWNoIGFueSBleGlzdGluZyBEZWJ1Z2dlci4KLSAgICB2b2lkIGF0
dGFjaERlYnVnZ2VyKEpTQzo6RGVidWdnZXIqKTsgLy8gQXR0YWNoZXMvZGV0YWNoZXMgaW4gYWxs
IHdvcmxkcy93aW5kb3cgcHJveGllcy4KLSAgICB2b2lkIGF0dGFjaERlYnVnZ2VyKEpTRE9NV2lu
ZG93UHJveHkqLCBKU0M6OkRlYnVnZ2VyKik7Ci0KICAgICB2b2lkIHNldFBhdXNlZChib29sIGIp
IHsgbV9wYXVzZWQgPSBiOyB9CiAgICAgYm9vbCBpc1BhdXNlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
cGF1c2VkOyB9CiAKICAgICBjb25zdCBTdHJpbmcqIHNvdXJjZVVSTCgpIGNvbnN0IHsgcmV0dXJu
IG1fc291cmNlVVJMOyB9IC8vIDAgaWYgd2UgYXJlIG5vdCBldmFsdWF0aW5nIGFueSBzY3JpcHQK
IAotICAgIHZvaWQgY2xlYXJXaW5kb3dQcm94aWVzTm90TWF0Y2hpbmdET01XaW5kb3coRE9NV2lu
ZG93KiwgYm9vbCBnb2luZ0ludG9QYWdlQ2FjaGUpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0RE9NV2luZG93Rm9yV2luZG93UHJveHkoRE9NV2luZG93Kik7CiAgICAgdm9pZCB1cGRhdGVE
b2N1bWVudCgpOwogCiAgICAgdm9pZCBuYW1lZEl0ZW1BZGRlZChIVE1MRG9jdW1lbnQqLCBjb25z
dCBBdG9taWNTdHJpbmcmKSB7IH0KQEAgLTE0Nyw2ICsxNDEsNyBAQCBwdWJsaWM6CiAgICAgUmVm
UHRyPEpTQzo6QmluZGluZ3M6Okluc3RhbmNlPiAgY3JlYXRlU2NyaXB0SW5zdGFuY2VGb3JXaWRn
ZXQoV2lkZ2V0Kik7CiAgICAgV0VCQ09SRV9FWFBPUlQgSlNDOjpCaW5kaW5nczo6Um9vdE9iamVj
dCogYmluZGluZ1Jvb3RPYmplY3QoKTsKICAgICBKU0M6OkJpbmRpbmdzOjpSb290T2JqZWN0KiBj
YWNoZWFibGVCaW5kaW5nUm9vdE9iamVjdCgpOworICAgIEpTQzo6QmluZGluZ3M6OlJvb3RPYmpl
Y3QqIGV4aXN0aW5nQ2FjaGVhYmxlQmluZGluZ1Jvb3RPYmplY3QoKSBjb25zdCB7IHJldHVybiBt
X2NhY2hlYWJsZUJpbmRpbmdSb290T2JqZWN0LmdldCgpOyB9CiAKICAgICBXRUJDT1JFX0VYUE9S
VCBSZWY8SlNDOjpCaW5kaW5nczo6Um9vdE9iamVjdD4gY3JlYXRlUm9vdE9iamVjdCh2b2lkKiBu
YXRpdmVIYW5kbGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9X
aW5kb3dQcm94eUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2lu
ZG93UHJveHlDb250cm9sbGVyLmNwcAppbmRleCAzM2ZkOThkZmUxN2JhOWRlN2JkZWY3Y2ZlOWVi
NjAwNzNiZWYyYWNmLi4wZmU0N2Q0NjdmMWEyYWIyMTU1MTkzZDVmYjBhODU3NjAwZjE5Y2QxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XaW5kb3dQcm94eUNvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dpbmRvd1Byb3h5Q29udHJv
bGxlci5jcHAKQEAgLTIxLDE4ICsyMSw1MCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIldpbmRvd1Byb3h5Q29udHJvbGxlci5oIgogCisjaW5jbHVkZSAiQ29tbW9uVk0uaCIKICNp
bmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkdDQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIlBh
Z2UuaCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZUNsaWVudC5oIgorI2luY2x1ZGUgIlBhZ2VHcm91
cC5oIgogI2luY2x1ZGUgIlJlbW90ZUZyYW1lLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxl
ci5oIgorI2luY2x1ZGUgInJ1bnRpbWVfcm9vdC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0pTTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgdm9pZCBjb2xsZWN0R2FyYmFnZUFmdGVyV2luZG93
UHJveHlEZXN0cnVjdGlvbigpCit7CisgICAgLy8gTWFrZSBzdXJlIHRvIEdDIEV4dHJhIFNvb24o
dG0pIGR1cmluZyBtZW1vcnkgcHJlc3N1cmUgY29uZGl0aW9ucworICAgIC8vIHRvIHNvZnRlbiBo
aWdoIHBlYWtzIG9mIG1lbW9yeSB1c2FnZSBkdXJpbmcgbmF2aWdhdGlvbi4KKyAgICBpZiAoTWVt
b3J5UHJlc3N1cmVIYW5kbGVyOjpzaW5nbGV0b24oKS5pc1VuZGVyTWVtb3J5UHJlc3N1cmUoKSkg
eworICAgICAgICAvLyBOT1RFOiBXZSBkbyB0aGUgY29sbGVjdGlvbiBvbiBuZXh0IHJ1bmxvb3Ag
dG8gZW5zdXJlIHRoYXQgdGhlcmUncyBubyBwb2ludGVyCisgICAgICAgIC8vICAgICAgIHRvIHRo
ZSB3aW5kb3cgb2JqZWN0IG9uIHRoZSBzdGFjay4KKyAgICAgICAgR0NDb250cm9sbGVyOjpzaW5n
bGV0b24oKS5nYXJiYWdlQ29sbGVjdE9uTmV4dFJ1bkxvb3AoKTsKKyAgICB9IGVsc2UKKyAgICAg
ICAgR0NDb250cm9sbGVyOjpzaW5nbGV0b24oKS5nYXJiYWdlQ29sbGVjdFNvb24oKTsKK30KKwog
V2luZG93UHJveHlDb250cm9sbGVyOjpXaW5kb3dQcm94eUNvbnRyb2xsZXIoQWJzdHJhY3RGcmFt
ZSYgZnJhbWUpCiAgICAgOiBtX2ZyYW1lKGZyYW1lKQogewogfQogCitXaW5kb3dQcm94eUNvbnRy
b2xsZXI6On5XaW5kb3dQcm94eUNvbnRyb2xsZXIoKQoreworICAgIC8vIEl0J3MgbGlrZWx5IHRo
YXQgZGVzdHJveWluZyB3aW5kb3dQcm94aWVzIHdpbGwgY3JlYXRlIGEgbG90IG9mIGdhcmJhZ2Uu
CisgICAgaWYgKCFtX3dpbmRvd1Byb3hpZXMuaXNFbXB0eSgpKSB7CisgICAgICAgIHdoaWxlICgh
bV93aW5kb3dQcm94aWVzLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgYXV0byBpdCA9IG1fd2lu
ZG93UHJveGllcy5iZWdpbigpOworICAgICAgICAgICAgaXQtPnZhbHVlLT53aW5kb3coKS0+c2V0
Q29uc29sZUNsaWVudChudWxscHRyKTsKKyAgICAgICAgICAgIGRlc3Ryb3lXaW5kb3dQcm94eSgq
aXQtPmtleSk7CisgICAgICAgIH0KKyAgICAgICAgY29sbGVjdEdhcmJhZ2VBZnRlcldpbmRvd1By
b3h5RGVzdHJ1Y3Rpb24oKTsKKyAgICB9Cit9CisKIHZvaWQgV2luZG93UHJveHlDb250cm9sbGVy
OjpkZXN0cm95V2luZG93UHJveHkoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKIHsKICAgICBBU1NF
UlQobV93aW5kb3dQcm94aWVzLmNvbnRhaW5zKCZ3b3JsZCkpOwpAQCAtNzEsNCArMTAzLDcxIEBA
IEpTRE9NV2luZG93UHJveHkmIFdpbmRvd1Byb3h5Q29udHJvbGxlcjo6Y3JlYXRlV2luZG93UHJv
eHlXaXRoSW5pdGlhbGl6ZWRTY3JpcHQoCiAgICAgcmV0dXJuIHdpbmRvd1Byb3h5OwogfQogCit2
b2lkIFdpbmRvd1Byb3h5Q29udHJvbGxlcjo6Y2xlYXJXaW5kb3dQcm94aWVzTm90TWF0Y2hpbmdE
T01XaW5kb3coQWJzdHJhY3RET01XaW5kb3cqIG5ld0RPTVdpbmRvdywgYm9vbCBnb2luZ0ludG9Q
YWdlQ2FjaGUpCit7CisgICAgaWYgKG1fd2luZG93UHJveGllcy5pc0VtcHR5KCkpCisgICAgICAg
IHJldHVybjsKKworICAgIEpTTG9ja0hvbGRlciBsb2NrKGNvbW1vblZNKCkpOworCisgICAgZm9y
IChhdXRvJiB3aW5kb3dQcm94eSA6IHdpbmRvd1Byb3hpZXNBc1ZlY3RvcigpKSB7CisgICAgICAg
IGlmICgmd2luZG93UHJveHktPndyYXBwZWQoKSA9PSBuZXdET01XaW5kb3cpCisgICAgICAgICAg
ICBjb250aW51ZTsKKworICAgICAgICAvLyBDbGVhciB0aGUgZGVidWdnZXIgYW5kIGNvbnNvbGUg
ZnJvbSB0aGUgY3VycmVudCB3aW5kb3cgYmVmb3JlIHNldHRpbmcgdGhlIG5ldyB3aW5kb3cuCisg
ICAgICAgIHdpbmRvd1Byb3h5LT5hdHRhY2hEZWJ1Z2dlcihudWxscHRyKTsKKyAgICAgICAgd2lu
ZG93UHJveHktPndpbmRvdygpLT5zZXRDb25zb2xlQ2xpZW50KG51bGxwdHIpOworICAgICAgICB3
aW5kb3dQcm94eS0+d2luZG93KCktPndpbGxSZW1vdmVGcm9tV2luZG93UHJveHkoKTsKKyAgICB9
CisKKyAgICAvLyBJdCdzIGxpa2VseSB0aGF0IHJlc2V0dGluZyBvdXIgd2luZG93cyBjcmVhdGVk
IGEgbG90IG9mIGdhcmJhZ2UsIHVubGVzcworICAgIC8vIGl0IHdlbnQgaW4gYSBiYWNrL2Zvcndh
cmQgY2FjaGUuCisgICAgaWYgKCFnb2luZ0ludG9QYWdlQ2FjaGUpCisgICAgICAgIGNvbGxlY3RH
YXJiYWdlQWZ0ZXJXaW5kb3dQcm94eURlc3RydWN0aW9uKCk7Cit9CisKK3ZvaWQgV2luZG93UHJv
eHlDb250cm9sbGVyOjpzZXRET01XaW5kb3dGb3JXaW5kb3dQcm94eShBYnN0cmFjdERPTVdpbmRv
dyogbmV3RE9NV2luZG93KQoreworICAgIEFTU0VSVChuZXdET01XaW5kb3cpOworCisgICAgaWYg
KG1fd2luZG93UHJveGllcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIEpTTG9j
a0hvbGRlciBsb2NrKGNvbW1vblZNKCkpOworCisgICAgZm9yIChhdXRvJiB3aW5kb3dQcm94eSA6
IHdpbmRvd1Byb3hpZXNBc1ZlY3RvcigpKSB7CisgICAgICAgIGlmICgmd2luZG93UHJveHktPndy
YXBwZWQoKSA9PSBuZXdET01XaW5kb3cpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAg
ICAvLyBGSVhNRTogV2UgZG8gbm90IHN1cHBvcnQgc2V0dGluZyBhIFJlbW90ZURPTVdpbmRvdyB5
ZXQuCisgICAgICAgIEFTU0VSVChpczxET01XaW5kb3c+KG5ld0RPTVdpbmRvdykpOworCisgICAg
ICAgIHdpbmRvd1Byb3h5LT5zZXRXaW5kb3coKmRvd25jYXN0PERPTVdpbmRvdz4obmV3RE9NV2lu
ZG93KSk7CisKKyAgICAgICAgU2NyaXB0Q29udHJvbGxlciogc2NyaXB0Q29udHJvbGxlciA9IG51
bGxwdHI7CisgICAgICAgIFBhZ2UqIHBhZ2UgPSBudWxscHRyOworICAgICAgICBpZiAoaXM8RnJh
bWU+KG1fZnJhbWUpKSB7CisgICAgICAgICAgICBhdXRvJiBmcmFtZSA9IGRvd25jYXN0PEZyYW1l
PihtX2ZyYW1lKTsKKyAgICAgICAgICAgIHNjcmlwdENvbnRyb2xsZXIgPSAmZnJhbWUuc2NyaXB0
KCk7CisgICAgICAgICAgICBwYWdlID0gZnJhbWUucGFnZSgpOworICAgICAgICB9CisKKyAgICAg
ICAgLy8gU2NyaXB0Q29udHJvbGxlcidzIG1fY2FjaGVhYmxlQmluZGluZ1Jvb3RPYmplY3QgcGVy
c2lzdHMgYmV0d2VlbiBwYWdlIG5hdmlnYXRpb25zCisgICAgICAgIC8vIHNvIG5lZWRzIHRvIGtu
b3cgYWJvdXQgdGhlIG5ldyBKU0RPTVdpbmRvdy4KKyAgICAgICAgaWYgKGF1dG8qIGNhY2hlYWJs
ZUJpbmRpbmdSb290T2JqZWN0ID0gc2NyaXB0Q29udHJvbGxlciA/IHNjcmlwdENvbnRyb2xsZXIt
PmV4aXN0aW5nQ2FjaGVhYmxlQmluZGluZ1Jvb3RPYmplY3QoKSA6IG51bGxwdHIpCisgICAgICAg
ICAgICBjYWNoZWFibGVCaW5kaW5nUm9vdE9iamVjdC0+dXBkYXRlR2xvYmFsT2JqZWN0KHdpbmRv
d1Byb3h5LT53aW5kb3coKSk7CisKKyAgICAgICAgd2luZG93UHJveHktPmF0dGFjaERlYnVnZ2Vy
KHBhZ2UgPyBwYWdlLT5kZWJ1Z2dlcigpIDogbnVsbHB0cik7CisgICAgICAgIGlmIChwYWdlKQor
ICAgICAgICAgICAgd2luZG93UHJveHktPndpbmRvdygpLT5zZXRQcm9maWxlR3JvdXAocGFnZS0+
Z3JvdXAoKS5pZGVudGlmaWVyKCkpOworICAgICAgICB3aW5kb3dQcm94eS0+d2luZG93KCktPnNl
dENvbnNvbGVDbGllbnQocGFnZSA/ICZwYWdlLT5jb25zb2xlKCkgOiBudWxscHRyKTsKKyAgICB9
Cit9CisKK3ZvaWQgV2luZG93UHJveHlDb250cm9sbGVyOjphdHRhY2hEZWJ1Z2dlcihKU0M6OkRl
YnVnZ2VyKiBkZWJ1Z2dlcikKK3sKKyAgICBmb3IgKGF1dG8mIHdpbmRvd1Byb3h5IDogbV93aW5k
b3dQcm94aWVzLnZhbHVlcygpKQorICAgICAgICB3aW5kb3dQcm94eS0+YXR0YWNoRGVidWdnZXIo
ZGVidWdnZXIpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XaW5kb3dQcm94eUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1dpbmRvd1Byb3h5Q29udHJvbGxlci5oCmluZGV4IGI1NmRjOWJk
NWUyMTkxYWU0ODQ5YTIzNjE1NDU2ZDRlYjdkMTA2NjMuLmYwNmY0ODEzODhmNGNkNGFhOTE0ZmUz
YjExN2RiOWE1MWQ4OGMwNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dpbmRvd1Byb3h5Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dpbmRvd1Byb3h5Q29udHJvbGxlci5oCkBAIC0yNCw2ICsyNCwxMCBAQAogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL1N0cm9uZy5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKK25hbWVz
cGFjZSBKU0MgeworY2xhc3MgRGVidWdnZXI7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgQWJzdHJhY3RGcmFtZTsKQEAgLTM0LDYgKzM4LDcgQEAgcHVibGljOgogICAgIHVzaW5n
IFByb3h5TWFwID0gSGFzaE1hcDxSZWZQdHI8RE9NV3JhcHBlcldvcmxkPiwgSlNDOjpTdHJvbmc8
SlNET01XaW5kb3dQcm94eT4+OwogCiAgICAgZXhwbGljaXQgV2luZG93UHJveHlDb250cm9sbGVy
KEFic3RyYWN0RnJhbWUmKTsKKyAgICB+V2luZG93UHJveHlDb250cm9sbGVyKCk7CiAKICAgICB2
b2lkIGRlc3Ryb3lXaW5kb3dQcm94eShET01XcmFwcGVyV29ybGQmKTsKIApAQCAtNjMsNiArNjgs
MTMgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gd2luZG93UHJveHkod29ybGQpLndpbmRvdygp
OwogICAgIH0KIAorICAgIHZvaWQgY2xlYXJXaW5kb3dQcm94aWVzTm90TWF0Y2hpbmdET01XaW5k
b3coQWJzdHJhY3RET01XaW5kb3cqLCBib29sIGdvaW5nSW50b1BhZ2VDYWNoZSk7CisKKyAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldERPTVdpbmRvd0ZvcldpbmRvd1Byb3h5KEFic3RyYWN0RE9N
V2luZG93Kik7CisKKyAgICAvLyBEZWJ1Z2dlciBjYW4gYmUgbnVsbHB0ciB0byBkZXRhY2ggYW55
IGV4aXN0aW5nIERlYnVnZ2VyLgorICAgIHZvaWQgYXR0YWNoRGVidWdnZXIoSlNDOjpEZWJ1Z2dl
ciopOyAvLyBBdHRhY2hlcy9kZXRhY2hlcyBpbiBhbGwgd29ybGRzL3dpbmRvdyBwcm94aWVzLgor
CiBwcml2YXRlOgogICAgIEpTRE9NV2luZG93UHJveHkmIGNyZWF0ZVdpbmRvd1Byb3h5KERPTVdy
YXBwZXJXb3JsZCYpOwogICAgIFdFQkNPUkVfRVhQT1JUIEpTRE9NV2luZG93UHJveHkmIGNyZWF0
ZVdpbmRvd1Byb3h5V2l0aEluaXRpYWxpemVkU2NyaXB0KERPTVdyYXBwZXJXb3JsZCYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggNWNhYTExYjk0ZjE0NDQyNzdjZDNh
MjhhZjFkZmJkY2U2MjVhN2NjMS4uODYzZDU5YzdkNGE4ZDIwMWUxMzMwNjRmYjBmY2NkZDAyMWRl
ZDM0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC02MjksNyArNjI5
LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2xlYXIoRG9jdW1lbnQqIG5ld0RvY3VtZW50LCBib29s
IGNsZWFyV2luZG93UHJvcGVydGllcywgYm9vbAogICAgIGlmIChjbGVhcldpbmRvd1Byb3BlcnRp
ZXMpIHsKICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZVdpbmRvd0Rpc2Nh
cmRlZChtX2ZyYW1lLCBtX2ZyYW1lLmRvY3VtZW50KCktPmRvbVdpbmRvdygpKTsKICAgICAgICAg
bV9mcmFtZS5kb2N1bWVudCgpLT5kb21XaW5kb3coKS0+cmVzZXRVbmxlc3NTdXNwZW5kZWRGb3JE
b2N1bWVudFN1c3BlbnNpb24oKTsKLSAgICAgICAgbV9mcmFtZS5zY3JpcHQoKS5jbGVhcldpbmRv
d1Byb3hpZXNOb3RNYXRjaGluZ0RPTVdpbmRvdyhuZXdEb2N1bWVudC0+ZG9tV2luZG93KCksIG1f
ZnJhbWUuZG9jdW1lbnQoKS0+cGFnZUNhY2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6QWJvdXRUb0Vu
dGVyUGFnZUNhY2hlKTsKKyAgICAgICAgbV9mcmFtZS53aW5kb3dQcm94eUNvbnRyb2xsZXIoKS5j
bGVhcldpbmRvd1Byb3hpZXNOb3RNYXRjaGluZ0RPTVdpbmRvdyhuZXdEb2N1bWVudC0+ZG9tV2lu
ZG93KCksIG1fZnJhbWUuZG9jdW1lbnQoKS0+cGFnZUNhY2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6
QWJvdXRUb0VudGVyUGFnZUNhY2hlKTsKIAogICAgICAgICBpZiAoc2hvdWxkQ2xlYXJXaW5kb3dO
YW1lKG1fZnJhbWUsICpuZXdEb2N1bWVudCkpCiAgICAgICAgICAgICBtX2ZyYW1lLnRyZWUoKS5z
ZXROYW1lKG51bGxBdG9tKCkpOwpAQCAtNjQ4LDcgKzY0OCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6
OmNsZWFyKERvY3VtZW50KiBuZXdEb2N1bWVudCwgYm9vbCBjbGVhcldpbmRvd1Byb3BlcnRpZXMs
IGJvb2wKICAgICBzdWJmcmFtZUxvYWRlcigpLmNsZWFyKCk7CiAKICAgICBpZiAoY2xlYXJXaW5k
b3dQcm9wZXJ0aWVzKQotICAgICAgICBtX2ZyYW1lLnNjcmlwdCgpLnNldERPTVdpbmRvd0Zvcldp
bmRvd1Byb3h5KG5ld0RvY3VtZW50LT5kb21XaW5kb3coKSk7CisgICAgICAgIG1fZnJhbWUud2lu
ZG93UHJveHlDb250cm9sbGVyKCkuc2V0RE9NV2luZG93Rm9yV2luZG93UHJveHkobmV3RG9jdW1l
bnQtPmRvbVdpbmRvdygpKTsKIAogICAgIGlmIChjbGVhclNjcmlwdE9iamVjdHMpCiAgICAgICAg
IG1fZnJhbWUuc2NyaXB0KCkuY2xlYXJTY3JpcHRPYmplY3RzKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApp
bmRleCBjNTAwMGU3YWNlNjVhMmMzM2M1NzMyZjM4MjVkNjFmM2YyNTM0NjdkLi4zNjI0ODc2OTQ2
YzJjMjBlN2RiOGY5OTA5MDI3ZDViYmYyNGYyNGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTEy
NTcsNyArMTI1Nyw3IEBAIHZvaWQgUGFnZTo6c2V0RGVidWdnZXIoSlNDOjpEZWJ1Z2dlciogZGVi
dWdnZXIpCiAgICAgbV9kZWJ1Z2dlciA9IGRlYnVnZ2VyOwogCiAgICAgZm9yIChGcmFtZSogZnJh
bWUgPSAmbV9tYWluRnJhbWUuZ2V0KCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJh
dmVyc2VOZXh0KCkpCi0gICAgICAgIGZyYW1lLT5zY3JpcHQoKS5hdHRhY2hEZWJ1Z2dlcihtX2Rl
YnVnZ2VyKTsKKyAgICAgICAgZnJhbWUtPndpbmRvd1Byb3h5Q29udHJvbGxlcigpLmF0dGFjaERl
YnVnZ2VyKG1fZGVidWdnZXIpOwogfQogCiBTdG9yYWdlTmFtZXNwYWNlKiBQYWdlOjpzZXNzaW9u
U3RvcmFnZShib29sIG9wdGlvbmFsQ3JlYXRlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337983</attachid>
            <date>2018-04-15 15:38:20 -0700</date>
            <delta_ts>2018-04-16 12:02:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184640-20180415153819.patch</filename>
            <type>text/plain</type>
            <size>20608</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwNjQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzk4NGM3NjVlN2M3YzIy
YzY3MzRhYWUyMTNmMmE0ZmM2M2UxMjM3ZC4uN2U4ZjY3MGQ4MTlmMzliZTVmZjlmYzk3MDM1NzU2
NWYyYThkY2I5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE4LTA0LTE1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBtb3JlIFdpbmRvd1By
b3h5LXJlbGF0ZWQgbG9naWMgZnJvbSBTY3JpcHRDb250cm9sbGVyIHRvIFdpbmRvd1Byb3h5Q29u
dHJvbGxlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTg0NjQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TW92ZSBtb3JlIFdpbmRvd1Byb3h5LXJlbGF0ZWQgbG9naWMgZnJvbSBTY3JpcHRDb250cm9sbGVy
IHRvIFdpbmRvd1Byb3h5Q29udHJvbGxlciwKKyAgICAgICAgZm9yIGNsYXJpdHkuCisKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkpTRE9NV2luZG93UHJveHk6OmF0dGFjaERlYnVnZ2VyKToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd1Byb3h5Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q2FjaGVk
RnJhbWVEYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENhY2hlZEZyYW1lRGF0YTo6
U2NyaXB0Q2FjaGVkRnJhbWVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENhY2hlZEZy
YW1lRGF0YTo6cmVzdG9yZSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjp+U2NyaXB0Q29udHJv
bGxlcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjppbml0U2NyaXB0Rm9y
V2luZG93UHJveHkpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmV4aXN0aW5nQ2FjaGVhYmxlQmlu
ZGluZ1Jvb3RPYmplY3QgY29uc3QpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dpbmRvd1Byb3h5
Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb2xsZWN0R2FyYmFnZUFmdGVyV2lu
ZG93UHJveHlEZXN0cnVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpXaW5kb3dQcm94eUNvbnRy
b2xsZXI6On5XaW5kb3dQcm94eUNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2luZG93
UHJveHlDb250cm9sbGVyOjpjbGVhcldpbmRvd1Byb3hpZXNOb3RNYXRjaGluZ0RPTVdpbmRvdyk6
CisgICAgICAgIChXZWJDb3JlOjpXaW5kb3dQcm94eUNvbnRyb2xsZXI6OnNldERPTVdpbmRvd0Zv
cldpbmRvd1Byb3h5KToKKyAgICAgICAgKFdlYkNvcmU6OldpbmRvd1Byb3h5Q29udHJvbGxlcjo6
YXR0YWNoRGVidWdnZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dpbmRvd1Byb3h5Q29udHJv
bGxlci5oOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlcjo6Y2xlYXIpOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlOjpzZXREZWJ1Z2dlcik6CisKIDIwMTgtMDQtMTMgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTcGxpdCBXaW5kb3dQcm94eSBoYW5k
bGluZyBvdXQgb2YgU2NyaXB0Q29udHJvbGxlciBhbmQgaW50byBhIG5ldyBjbGFzcyBvd25lZCBi
eSBBYnN0cmFjdEZyYW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93UHJveHkuY3BwCmluZGV4IDg1ZjMzYzJiY2I3YzBkOGU4YmQ2NjBjMTBkMDcyNWZhOWQ2N2Mz
YmIuLjM5ZGY1YmU4YjgwMzc4ZDM1ODE3ZDQ4ZmUxMmJjYTI5Y2Y3N2QzYTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93UHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93UHJveHkuY3BwCkBAIC0xMDUsNiAr
MTA1LDE3IEBAIHZvaWQgSlNET01XaW5kb3dQcm94eTo6c2V0V2luZG93KERPTVdpbmRvdyYgZG9t
V2luZG93KQogICAgIEFTU0VSVChwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpID09ICZ3aW5kb3cp
OwogfQogCit2b2lkIEpTRE9NV2luZG93UHJveHk6OmF0dGFjaERlYnVnZ2VyKEpTQzo6RGVidWdn
ZXIqIGRlYnVnZ2VyKQoreworICAgIGF1dG8qIGdsb2JhbE9iamVjdCA9IHdpbmRvdygpOworICAg
IEpTTG9ja0hvbGRlciBsb2NrKGdsb2JhbE9iamVjdC0+dm0oKSk7CisKKyAgICBpZiAoZGVidWdn
ZXIpCisgICAgICAgIGRlYnVnZ2VyLT5hdHRhY2goZ2xvYmFsT2JqZWN0KTsKKyAgICBlbHNlIGlm
IChhdXRvKiBjdXJyZW50RGVidWdnZXIgPSBnbG9iYWxPYmplY3QtPmRlYnVnZ2VyKCkpCisgICAg
ICAgIGN1cnJlbnREZWJ1Z2dlci0+ZGV0YWNoKGdsb2JhbE9iamVjdCwgSlNDOjpEZWJ1Z2dlcjo6
VGVybWluYXRpbmdEZWJ1Z2dpbmdTZXNzaW9uKTsKK30KKwogRE9NV2luZG93JiBKU0RPTVdpbmRv
d1Byb3h5Ojp3cmFwcGVkKCkgY29uc3QKIHsKICAgICByZXR1cm4gd2luZG93KCktPndyYXBwZWQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93UHJv
eHkuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93UHJveHkuaAppbmRl
eCA1ZGJmMGVkZGIyYmQ1NWEyMGEwZDgyNzViZWI5YzBhYTY1ZDg1NmUzLi43ZTU1NDk3YjA0ZjBk
OWRhN2Y3MmIwNzQ4NDAwNTM4OTZkYTNhMzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd1Byb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dQcm94eS5oCkBAIC0zMSw2ICszMSwxMCBAQAogI2luY2x1ZGUgIkpT
RE9NV2luZG93LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNQcm94eS5oPgogCituYW1l
c3BhY2UgSlNDIHsKK2NsYXNzIERlYnVnZ2VyOworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIEZyYW1lOwpAQCAtNTIsNiArNTYsOCBAQCBwdWJsaWM6CiAKICAgICBET01XcmFwcGVy
V29ybGQmIHdvcmxkKCkgeyByZXR1cm4gbV93b3JsZDsgfQogCisgICAgdm9pZCBhdHRhY2hEZWJ1
Z2dlcihKU0M6OkRlYnVnZ2VyKik7CisKIHByaXZhdGU6CiAgICAgSlNET01XaW5kb3dQcm94eShK
U0M6OlZNJiwgSlNDOjpTdHJ1Y3R1cmUmLCBET01XcmFwcGVyV29ybGQmKTsKICAgICB2b2lkIGZp
bmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBET01XaW5kb3cmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhY2hlZEZyYW1lRGF0YS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWNoZWRGcmFtZURhdGEuY3BwCmluZGV4IDQ1ZDFlMzg0
NmI0ZmY0ZTNkNmU3YzkyNWY2MTRhZDZhMDk5YmM4ZTUuLjg2NDU2YTcyM2IzZjEwNzYxMmNjMTU3
YTIyNzgzMjZiYzdhMjE4OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdENhY2hlZEZyYW1lRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmNwcApAQCAtNTcsNyArNTcsNyBAQCBTY3JpcHRDYWNo
ZWRGcmFtZURhdGE6OlNjcmlwdENhY2hlZEZyYW1lRGF0YShGcmFtZSYgZnJhbWUpCiAgICAgICAg
IHdpbmRvdy0+c2V0Q29uc29sZUNsaWVudChudWxscHRyKTsKICAgICB9CiAKLSAgICBmcmFtZS5z
Y3JpcHQoKS5hdHRhY2hEZWJ1Z2dlcihudWxscHRyKTsKKyAgICBmcmFtZS53aW5kb3dQcm94eUNv
bnRyb2xsZXIoKS5hdHRhY2hEZWJ1Z2dlcihudWxscHRyKTsKIH0KIAogU2NyaXB0Q2FjaGVkRnJh
bWVEYXRhOjp+U2NyaXB0Q2FjaGVkRnJhbWVEYXRhKCkKQEAgLTcwLDcgKzcwLDYgQEAgdm9pZCBT
Y3JpcHRDYWNoZWRGcmFtZURhdGE6OnJlc3RvcmUoRnJhbWUmIGZyYW1lKQogICAgIEpTTG9ja0hv
bGRlciBsb2NrKGNvbW1vblZNKCkpOwogCiAgICAgUGFnZSogcGFnZSA9IGZyYW1lLnBhZ2UoKTsK
LSAgICBhdXRvJiBzY3JpcHRDb250cm9sbGVyID0gZnJhbWUuc2NyaXB0KCk7CiAKICAgICBmb3Ig
KGF1dG8gd2luZG93UHJveHkgOiBmcmFtZS53aW5kb3dQcm94eUNvbnRyb2xsZXIoKS53aW5kb3dQ
cm94aWVzQXNWZWN0b3IoKSkgewogICAgICAgICBhdXRvKiB3b3JsZCA9ICZ3aW5kb3dQcm94eS0+
d29ybGQoKTsKQEAgLTg2LDcgKzg1LDcgQEAgdm9pZCBTY3JpcHRDYWNoZWRGcmFtZURhdGE6OnJl
c3RvcmUoRnJhbWUmIGZyYW1lKQogICAgICAgICAgICAgd2luZG93UHJveHktPnNldFdpbmRvdyhk
b21XaW5kb3cpOwogCiAgICAgICAgICAgICBpZiAocGFnZSkgewotICAgICAgICAgICAgICAgIHNj
cmlwdENvbnRyb2xsZXIuYXR0YWNoRGVidWdnZXIod2luZG93UHJveHkuZ2V0KCksIHBhZ2UtPmRl
YnVnZ2VyKCkpOworICAgICAgICAgICAgICAgIHdpbmRvd1Byb3h5LT5hdHRhY2hEZWJ1Z2dlcihw
YWdlLT5kZWJ1Z2dlcigpKTsKICAgICAgICAgICAgICAgICB3aW5kb3dQcm94eS0+d2luZG93KCkt
PnNldFByb2ZpbGVHcm91cChwYWdlLT5ncm91cCgpLmlkZW50aWZpZXIoKSk7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29u
dHJvbGxlci5jcHAKaW5kZXggZTkyYWNhYWZjOWI5ZWZjNmM0OWNiNjZiODQ0YTc2YTNjZGM3NGYz
Yi4uYmI1OGMwODBmYzJlMDYwNGI0N2Y3ZTliZTIzODIxYmNkMjhiYjNjOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTIzLDE0ICsy
MywxMiBAQAogCiAjaW5jbHVkZSAiQnJpZGdlSlNDLmgiCiAjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0
RmV0Y2hlci5oIgotI2luY2x1ZGUgIkNvbW1vblZNLmgiCiAjaW5jbHVkZSAiQ29udGVudFNlY3Vy
aXR5UG9saWN5LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJFdmVu
dC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNs
dWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgotI2luY2x1ZGUgIkdDQ29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgIkhUTUxQbHVnSW5FbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nU2VjdXJpdHkuaCIKQEAgLTY2LDcgKzY0
LDYgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1NjcmlwdEZldGNoZXIuaD4KICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9TdHJvbmdJbmxpbmVzLmg+Ci0jaW5jbHVkZSA8d3RmL01lbW9yeVByZXNzdXJlSGFu
ZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogI2luY2x1ZGUgPHd0Zi9UaHJl
YWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0UG9zaXRpb24uaD4KQEAgLTc0LDE4ICs3
MSw2IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCi1zdGF0
aWMgdm9pZCBjb2xsZWN0R2FyYmFnZUFmdGVyV2luZG93UHJveHlEZXN0cnVjdGlvbigpCi17Ci0g
ICAgLy8gTWFrZSBzdXJlIHRvIEdDIEV4dHJhIFNvb24odG0pIGR1cmluZyBtZW1vcnkgcHJlc3N1
cmUgY29uZGl0aW9ucwotICAgIC8vIHRvIHNvZnRlbiBoaWdoIHBlYWtzIG9mIG1lbW9yeSB1c2Fn
ZSBkdXJpbmcgbmF2aWdhdGlvbi4KLSAgICBpZiAoTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzaW5n
bGV0b24oKS5pc1VuZGVyTWVtb3J5UHJlc3N1cmUoKSkgewotICAgICAgICAvLyBOT1RFOiBXZSBk
byB0aGUgY29sbGVjdGlvbiBvbiBuZXh0IHJ1bmxvb3AgdG8gZW5zdXJlIHRoYXQgdGhlcmUncyBu
byBwb2ludGVyCi0gICAgICAgIC8vICAgICAgIHRvIHRoZSB3aW5kb3cgb2JqZWN0IG9uIHRoZSBz
dGFjay4KLSAgICAgICAgR0NDb250cm9sbGVyOjpzaW5nbGV0b24oKS5nYXJiYWdlQ29sbGVjdE9u
TmV4dFJ1bkxvb3AoKTsKLSAgICB9IGVsc2UKLSAgICAgICAgR0NDb250cm9sbGVyOjpzaW5nbGV0
b24oKS5nYXJiYWdlQ29sbGVjdFNvb24oKTsKLX0KLQogdm9pZCBTY3JpcHRDb250cm9sbGVyOjpp
bml0aWFsaXplVGhyZWFkaW5nKCkKIHsKICNpZiAhUExBVEZPUk0oSU9TKQpAQCAtMTE2LDE2ICsx
MDEsNiBAQCBTY3JpcHRDb250cm9sbGVyOjp+U2NyaXB0Q29udHJvbGxlcigpCiAgICAgICAgIG1f
Y2FjaGVhYmxlQmluZGluZ1Jvb3RPYmplY3QtPmludmFsaWRhdGUoKTsKICAgICAgICAgbV9jYWNo
ZWFibGVCaW5kaW5nUm9vdE9iamVjdCA9IG51bGxwdHI7CiAgICAgfQotCi0gICAgLy8gSXQncyBs
aWtlbHkgdGhhdCBkZXN0cm95aW5nIHdpbmRvd1Byb3hpZXMgd2lsbCBjcmVhdGUgYSBsb3Qgb2Yg
Z2FyYmFnZS4KLSAgICBpZiAoIXdpbmRvd1Byb3h5Q29udHJvbGxlcigpLndpbmRvd1Byb3hpZXMo
KS5pc0VtcHR5KCkpIHsKLSAgICAgICAgd2hpbGUgKCF3aW5kb3dQcm94eUNvbnRyb2xsZXIoKS53
aW5kb3dQcm94aWVzKCkuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBhdXRvIHdpbmRvd1Byb3h5
ID0gKndpbmRvd1Byb3h5Q29udHJvbGxlcigpLndpbmRvd1Byb3hpZXMoKS5iZWdpbigpOwotICAg
ICAgICAgICAgd2luZG93UHJveHkuZ2V0KCktPndpbmRvdygpLT5zZXRDb25zb2xlQ2xpZW50KG51
bGxwdHIpOwotICAgICAgICAgICAgd2luZG93UHJveHlDb250cm9sbGVyKCkuZGVzdHJveVdpbmRv
d1Byb3h5KHdpbmRvd1Byb3h5LmdldCgpLT53b3JsZCgpKTsKLSAgICAgICAgfQotICAgICAgICBj
b2xsZWN0R2FyYmFnZUFmdGVyV2luZG93UHJveHlEZXN0cnVjdGlvbigpOwotICAgIH0KIH0KIAog
SlNWYWx1ZSBTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZUluV29ybGQoY29uc3QgU2NyaXB0U291
cmNlQ29kZSYgc291cmNlQ29kZSwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgRXhjZXB0aW9uRGV0
YWlscyogZXhjZXB0aW9uRGV0YWlscykKQEAgLTI2NSw1NyArMjQwLDYgQEAgdm9pZCBTY3JpcHRD
b250cm9sbGVyOjpnZXRBbGxXb3JsZHMoVmVjdG9yPFJlZjxET01XcmFwcGVyV29ybGQ+PiYgd29y
bGRzKQogICAgIHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4oY29tbW9uVk0oKS5jbGllbnRE
YXRhKS0+Z2V0QWxsV29ybGRzKHdvcmxkcyk7CiB9CiAKLXZvaWQgU2NyaXB0Q29udHJvbGxlcjo6
Y2xlYXJXaW5kb3dQcm94aWVzTm90TWF0Y2hpbmdET01XaW5kb3coRE9NV2luZG93KiBuZXdET01X
aW5kb3csIGJvb2wgZ29pbmdJbnRvUGFnZUNhY2hlKQotewotICAgIGlmICh3aW5kb3dQcm94eUNv
bnRyb2xsZXIoKS53aW5kb3dQcm94aWVzKCkuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBKU0xvY2tIb2xkZXIgbG9jayhjb21tb25WTSgpKTsKLQotICAgIGZvciAoYXV0byYgd2lu
ZG93UHJveHkgOiB3aW5kb3dQcm94eUNvbnRyb2xsZXIoKS53aW5kb3dQcm94aWVzQXNWZWN0b3Io
KSkgewotICAgICAgICBpZiAoJndpbmRvd1Byb3h5LT53cmFwcGVkKCkgPT0gbmV3RE9NV2luZG93
KQotICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgLy8gQ2xlYXIgdGhlIGRlYnVnZ2Vy
IGFuZCBjb25zb2xlIGZyb20gdGhlIGN1cnJlbnQgd2luZG93IGJlZm9yZSBzZXR0aW5nIHRoZSBu
ZXcgd2luZG93LgotICAgICAgICBhdHRhY2hEZWJ1Z2dlcih3aW5kb3dQcm94eS5nZXQoKSwgbnVs
bHB0cik7Ci0gICAgICAgIHdpbmRvd1Byb3h5LT53aW5kb3coKS0+c2V0Q29uc29sZUNsaWVudChu
dWxscHRyKTsKLSAgICAgICAgd2luZG93UHJveHktPndpbmRvdygpLT53aWxsUmVtb3ZlRnJvbVdp
bmRvd1Byb3h5KCk7Ci0gICAgfQotCi0gICAgLy8gSXQncyBsaWtlbHkgdGhhdCByZXNldHRpbmcg
b3VyIHdpbmRvd3MgY3JlYXRlZCBhIGxvdCBvZiBnYXJiYWdlLCB1bmxlc3MKLSAgICAvLyBpdCB3
ZW50IGluIGEgYmFjay9mb3J3YXJkIGNhY2hlLgotICAgIGlmICghZ29pbmdJbnRvUGFnZUNhY2hl
KQotICAgICAgICBjb2xsZWN0R2FyYmFnZUFmdGVyV2luZG93UHJveHlEZXN0cnVjdGlvbigpOwot
fQotCi12b2lkIFNjcmlwdENvbnRyb2xsZXI6OnNldERPTVdpbmRvd0ZvcldpbmRvd1Byb3h5KERP
TVdpbmRvdyogbmV3RE9NV2luZG93KQotewotICAgIEFTU0VSVChuZXdET01XaW5kb3cpOwotCi0g
ICAgaWYgKHdpbmRvd1Byb3h5Q29udHJvbGxlcigpLndpbmRvd1Byb3hpZXMoKS5pc0VtcHR5KCkp
Ci0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBKU0xvY2tIb2xkZXIgbG9jayhjb21tb25WTSgp
KTsKLSAgICAKLSAgICBmb3IgKGF1dG8mIHdpbmRvd1Byb3h5IDogd2luZG93UHJveHlDb250cm9s
bGVyKCkud2luZG93UHJveGllc0FzVmVjdG9yKCkpIHsKLSAgICAgICAgaWYgKCZ3aW5kb3dQcm94
eS0+d3JhcHBlZCgpID09IG5ld0RPTVdpbmRvdykKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAg
ICAgICAKLSAgICAgICAgd2luZG93UHJveHktPnNldFdpbmRvdygqbmV3RE9NV2luZG93KTsKLSAg
ICAgICAgCi0gICAgICAgIC8vIEFuIG1fY2FjaGVhYmxlQmluZGluZ1Jvb3RPYmplY3QgcGVyc2lz
dHMgYmV0d2VlbiBwYWdlIG5hdmlnYXRpb25zCi0gICAgICAgIC8vIHNvIG5lZWRzIHRvIGtub3cg
YWJvdXQgdGhlIG5ldyBKU0RPTVdpbmRvdy4KLSAgICAgICAgaWYgKG1fY2FjaGVhYmxlQmluZGlu
Z1Jvb3RPYmplY3QpCi0gICAgICAgICAgICBtX2NhY2hlYWJsZUJpbmRpbmdSb290T2JqZWN0LT51
cGRhdGVHbG9iYWxPYmplY3Qod2luZG93UHJveHktPndpbmRvdygpKTsKLQotICAgICAgICBpZiAo
UGFnZSogcGFnZSA9IG1fZnJhbWUucGFnZSgpKSB7Ci0gICAgICAgICAgICBhdHRhY2hEZWJ1Z2dl
cih3aW5kb3dQcm94eS5nZXQoKSwgcGFnZS0+ZGVidWdnZXIoKSk7Ci0gICAgICAgICAgICB3aW5k
b3dQcm94eS0+d2luZG93KCktPnNldFByb2ZpbGVHcm91cChwYWdlLT5ncm91cCgpLmlkZW50aWZp
ZXIoKSk7Ci0gICAgICAgICAgICB3aW5kb3dQcm94eS0+d2luZG93KCktPnNldENvbnNvbGVDbGll
bnQoJnBhZ2UtPmNvbnNvbGUoKSk7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KIHZvaWQgU2NyaXB0
Q29udHJvbGxlcjo6aW5pdFNjcmlwdEZvcldpbmRvd1Byb3h5KEpTRE9NV2luZG93UHJveHkmIHdp
bmRvd1Byb3h5KQogewogICAgIGF1dG8mIHdvcmxkID0gd2luZG93UHJveHkud29ybGQoKTsKQEAg
LTMyNiw3ICsyNTAsNyBAQCB2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmluaXRTY3JpcHRGb3JXaW5k
b3dQcm94eShKU0RPTVdpbmRvd1Byb3h5JiB3aW5kb3dQcm94eSkKICAgICAgICAgZG9jdW1lbnQt
PmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5kaWRDcmVhdGVXaW5kb3dQcm94eSh3aW5kb3dQcm94
eSk7CiAKICAgICBpZiAoUGFnZSogcGFnZSA9IG1fZnJhbWUucGFnZSgpKSB7Ci0gICAgICAgIGF0
dGFjaERlYnVnZ2VyKCZ3aW5kb3dQcm94eSwgcGFnZS0+ZGVidWdnZXIoKSk7CisgICAgICAgIHdp
bmRvd1Byb3h5LmF0dGFjaERlYnVnZ2VyKHBhZ2UtPmRlYnVnZ2VyKCkpOwogICAgICAgICB3aW5k
b3dQcm94eS53aW5kb3coKS0+c2V0UHJvZmlsZUdyb3VwKHBhZ2UtPmdyb3VwKCkuaWRlbnRpZmll
cigpKTsKICAgICAgICAgd2luZG93UHJveHkud2luZG93KCktPnNldENvbnNvbGVDbGllbnQoJnBh
Z2UtPmNvbnNvbGUoKSk7CiAgICAgfQpAQCAtNDU3LDI2ICszODEsNiBAQCBib29sIFNjcmlwdENv
bnRyb2xsZXI6OmNhbkFjY2Vzc0Zyb21DdXJyZW50T3JpZ2luKEZyYW1lKiBmcmFtZSkKICAgICBy
ZXR1cm4gQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRnJhbWUoc3RhdGUsIGZy
YW1lKTsKIH0KIAotdm9pZCBTY3JpcHRDb250cm9sbGVyOjphdHRhY2hEZWJ1Z2dlcihKU0M6OkRl
YnVnZ2VyKiBkZWJ1Z2dlcikKLXsKLSAgICBmb3IgKGF1dG8mIHdpbmRvd1Byb3h5IDogd2luZG93
UHJveHlDb250cm9sbGVyKCkud2luZG93UHJveGllcygpKQotICAgICAgICBhdHRhY2hEZWJ1Z2dl
cih3aW5kb3dQcm94eS5nZXQoKSwgZGVidWdnZXIpOwotfQotCi12b2lkIFNjcmlwdENvbnRyb2xs
ZXI6OmF0dGFjaERlYnVnZ2VyKEpTRE9NV2luZG93UHJveHkqIHByb3h5LCBKU0M6OkRlYnVnZ2Vy
KiBkZWJ1Z2dlcikKLXsKLSAgICBpZiAoIXByb3h5KQotICAgICAgICByZXR1cm47Ci0KLSAgICBh
dXRvKiBnbG9iYWxPYmplY3QgPSBwcm94eS0+d2luZG93KCk7Ci0gICAgSlNMb2NrSG9sZGVyIGxv
Y2soZ2xvYmFsT2JqZWN0LT52bSgpKTsKLQotICAgIGlmIChkZWJ1Z2dlcikKLSAgICAgICAgZGVi
dWdnZXItPmF0dGFjaChnbG9iYWxPYmplY3QpOwotICAgIGVsc2UgaWYgKGF1dG8qIGN1cnJlbnRE
ZWJ1Z2dlciA9IGdsb2JhbE9iamVjdC0+ZGVidWdnZXIoKSkKLSAgICAgICAgY3VycmVudERlYnVn
Z2VyLT5kZXRhY2goZ2xvYmFsT2JqZWN0LCBKU0M6OkRlYnVnZ2VyOjpUZXJtaW5hdGluZ0RlYnVn
Z2luZ1Nlc3Npb24pOwotfQotCiB2b2lkIFNjcmlwdENvbnRyb2xsZXI6OnVwZGF0ZURvY3VtZW50
KCkKIHsKICAgICBmb3IgKGF1dG8mIHdpbmRvd1Byb3h5IDogd2luZG93UHJveHlDb250cm9sbGVy
KCkud2luZG93UHJveGllc0FzVmVjdG9yKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdENvbnRyb2xsZXIuaAppbmRleCA1MWNjMTc4YzM3NGVjYTIyNDNiNzlmYmU4Y2Q4
ZmIyMmU2MWI3MDEyLi4wYjUxYTA4NDYxNTMwNTU5N2E4MjM0OWYwNjA4ODNiZGRlODFkZjRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oCkBAIC0x
MjMsMTcgKzEyMywxMSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgY2FuQWNjZXNzRnJvbUN1
cnJlbnRPcmlnaW4oRnJhbWUqKTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNhbkV4ZWN1dGVT
Y3JpcHRzKFJlYXNvbkZvckNhbGxpbmdDYW5FeGVjdXRlU2NyaXB0cyk7CiAKLSAgICAvLyBEZWJ1
Z2dlciBjYW4gYmUgMCB0byBkZXRhY2ggYW55IGV4aXN0aW5nIERlYnVnZ2VyLgotICAgIHZvaWQg
YXR0YWNoRGVidWdnZXIoSlNDOjpEZWJ1Z2dlciopOyAvLyBBdHRhY2hlcy9kZXRhY2hlcyBpbiBh
bGwgd29ybGRzL3dpbmRvdyBwcm94aWVzLgotICAgIHZvaWQgYXR0YWNoRGVidWdnZXIoSlNET01X
aW5kb3dQcm94eSosIEpTQzo6RGVidWdnZXIqKTsKLQogICAgIHZvaWQgc2V0UGF1c2VkKGJvb2wg
YikgeyBtX3BhdXNlZCA9IGI7IH0KICAgICBib29sIGlzUGF1c2VkKCkgY29uc3QgeyByZXR1cm4g
bV9wYXVzZWQ7IH0KIAogICAgIGNvbnN0IFN0cmluZyogc291cmNlVVJMKCkgY29uc3QgeyByZXR1
cm4gbV9zb3VyY2VVUkw7IH0gLy8gMCBpZiB3ZSBhcmUgbm90IGV2YWx1YXRpbmcgYW55IHNjcmlw
dAogCi0gICAgdm9pZCBjbGVhcldpbmRvd1Byb3hpZXNOb3RNYXRjaGluZ0RPTVdpbmRvdyhET01X
aW5kb3cqLCBib29sIGdvaW5nSW50b1BhZ2VDYWNoZSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRET01XaW5kb3dGb3JXaW5kb3dQcm94eShET01XaW5kb3cqKTsKICAgICB2b2lkIHVwZGF0
ZURvY3VtZW50KCk7CiAKICAgICB2b2lkIG5hbWVkSXRlbUFkZGVkKEhUTUxEb2N1bWVudCosIGNv
bnN0IEF0b21pY1N0cmluZyYpIHsgfQpAQCAtMTQ3LDYgKzE0MSw3IEBAIHB1YmxpYzoKICAgICBS
ZWZQdHI8SlNDOjpCaW5kaW5nczo6SW5zdGFuY2U+ICBjcmVhdGVTY3JpcHRJbnN0YW5jZUZvcldp
ZGdldChXaWRnZXQqKTsKICAgICBXRUJDT1JFX0VYUE9SVCBKU0M6OkJpbmRpbmdzOjpSb290T2Jq
ZWN0KiBiaW5kaW5nUm9vdE9iamVjdCgpOwogICAgIEpTQzo6QmluZGluZ3M6OlJvb3RPYmplY3Qq
IGNhY2hlYWJsZUJpbmRpbmdSb290T2JqZWN0KCk7CisgICAgSlNDOjpCaW5kaW5nczo6Um9vdE9i
amVjdCogZXhpc3RpbmdDYWNoZWFibGVCaW5kaW5nUm9vdE9iamVjdCgpIGNvbnN0IHsgcmV0dXJu
IG1fY2FjaGVhYmxlQmluZGluZ1Jvb3RPYmplY3QuZ2V0KCk7IH0KIAogICAgIFdFQkNPUkVfRVhQ
T1JUIFJlZjxKU0M6OkJpbmRpbmdzOjpSb290T2JqZWN0PiBjcmVhdGVSb290T2JqZWN0KHZvaWQq
IG5hdGl2ZUhhbmRsZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dpbmRvd1Byb3h5Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9X
aW5kb3dQcm94eUNvbnRyb2xsZXIuY3BwCmluZGV4IDMzZmQ5OGRmZTE3YmE5ZGU3YmRlZjdjZmU5
ZWI2MDA3M2JlZjJhY2YuLjBmZTQ3ZDQ2N2YxYTJhYjIxNTUxOTNkNWZiMGE4NTc2MDBmMTljZDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dpbmRvd1Byb3h5Q29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2luZG93UHJveHlDb250
cm9sbGVyLmNwcApAQCAtMjEsMTggKzIxLDUwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiV2luZG93UHJveHlDb250cm9sbGVyLmgiCiAKKyNpbmNsdWRlICJDb21tb25WTS5oIgog
I2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiR0NDb250cm9sbGVyLmgiCisjaW5jbHVkZSAi
UGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25zb2xlQ2xpZW50LmgiCisjaW5jbHVkZSAiUGFnZUdy
b3VwLmgiCiAjaW5jbHVkZSAiUmVtb3RlRnJhbWUuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9s
bGVyLmgiCisjaW5jbHVkZSAicnVudGltZV9yb290LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvSlNMb2NrLmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyB2b2lkIGNvbGxlY3RHYXJiYWdlQWZ0ZXJXaW5k
b3dQcm94eURlc3RydWN0aW9uKCkKK3sKKyAgICAvLyBNYWtlIHN1cmUgdG8gR0MgRXh0cmEgU29v
bih0bSkgZHVyaW5nIG1lbW9yeSBwcmVzc3VyZSBjb25kaXRpb25zCisgICAgLy8gdG8gc29mdGVu
IGhpZ2ggcGVha3Mgb2YgbWVtb3J5IHVzYWdlIGR1cmluZyBuYXZpZ2F0aW9uLgorICAgIGlmIChN
ZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRvbigpLmlzVW5kZXJNZW1vcnlQcmVzc3VyZSgp
KSB7CisgICAgICAgIC8vIE5PVEU6IFdlIGRvIHRoZSBjb2xsZWN0aW9uIG9uIG5leHQgcnVubG9v
cCB0byBlbnN1cmUgdGhhdCB0aGVyZSdzIG5vIHBvaW50ZXIKKyAgICAgICAgLy8gICAgICAgdG8g
dGhlIHdpbmRvdyBvYmplY3Qgb24gdGhlIHN0YWNrLgorICAgICAgICBHQ0NvbnRyb2xsZXI6OnNp
bmdsZXRvbigpLmdhcmJhZ2VDb2xsZWN0T25OZXh0UnVuTG9vcCgpOworICAgIH0gZWxzZQorICAg
ICAgICBHQ0NvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmdhcmJhZ2VDb2xsZWN0U29vbigpOworfQor
CiBXaW5kb3dQcm94eUNvbnRyb2xsZXI6OldpbmRvd1Byb3h5Q29udHJvbGxlcihBYnN0cmFjdEZy
YW1lJiBmcmFtZSkKICAgICA6IG1fZnJhbWUoZnJhbWUpCiB7CiB9CiAKK1dpbmRvd1Byb3h5Q29u
dHJvbGxlcjo6fldpbmRvd1Byb3h5Q29udHJvbGxlcigpCit7CisgICAgLy8gSXQncyBsaWtlbHkg
dGhhdCBkZXN0cm95aW5nIHdpbmRvd1Byb3hpZXMgd2lsbCBjcmVhdGUgYSBsb3Qgb2YgZ2FyYmFn
ZS4KKyAgICBpZiAoIW1fd2luZG93UHJveGllcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgd2hpbGUg
KCFtX3dpbmRvd1Byb3hpZXMuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBhdXRvIGl0ID0gbV93
aW5kb3dQcm94aWVzLmJlZ2luKCk7CisgICAgICAgICAgICBpdC0+dmFsdWUtPndpbmRvdygpLT5z
ZXRDb25zb2xlQ2xpZW50KG51bGxwdHIpOworICAgICAgICAgICAgZGVzdHJveVdpbmRvd1Byb3h5
KCppdC0+a2V5KTsKKyAgICAgICAgfQorICAgICAgICBjb2xsZWN0R2FyYmFnZUFmdGVyV2luZG93
UHJveHlEZXN0cnVjdGlvbigpOworICAgIH0KK30KKwogdm9pZCBXaW5kb3dQcm94eUNvbnRyb2xs
ZXI6OmRlc3Ryb3lXaW5kb3dQcm94eShET01XcmFwcGVyV29ybGQmIHdvcmxkKQogewogICAgIEFT
U0VSVChtX3dpbmRvd1Byb3hpZXMuY29udGFpbnMoJndvcmxkKSk7CkBAIC03MSw0ICsxMDMsNzEg
QEAgSlNET01XaW5kb3dQcm94eSYgV2luZG93UHJveHlDb250cm9sbGVyOjpjcmVhdGVXaW5kb3dQ
cm94eVdpdGhJbml0aWFsaXplZFNjcmlwdCgKICAgICByZXR1cm4gd2luZG93UHJveHk7CiB9CiAK
K3ZvaWQgV2luZG93UHJveHlDb250cm9sbGVyOjpjbGVhcldpbmRvd1Byb3hpZXNOb3RNYXRjaGlu
Z0RPTVdpbmRvdyhBYnN0cmFjdERPTVdpbmRvdyogbmV3RE9NV2luZG93LCBib29sIGdvaW5nSW50
b1BhZ2VDYWNoZSkKK3sKKyAgICBpZiAobV93aW5kb3dQcm94aWVzLmlzRW1wdHkoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgSlNMb2NrSG9sZGVyIGxvY2soY29tbW9uVk0oKSk7CisKKyAgICBm
b3IgKGF1dG8mIHdpbmRvd1Byb3h5IDogd2luZG93UHJveGllc0FzVmVjdG9yKCkpIHsKKyAgICAg
ICAgaWYgKCZ3aW5kb3dQcm94eS0+d3JhcHBlZCgpID09IG5ld0RPTVdpbmRvdykKKyAgICAgICAg
ICAgIGNvbnRpbnVlOworCisgICAgICAgIC8vIENsZWFyIHRoZSBkZWJ1Z2dlciBhbmQgY29uc29s
ZSBmcm9tIHRoZSBjdXJyZW50IHdpbmRvdyBiZWZvcmUgc2V0dGluZyB0aGUgbmV3IHdpbmRvdy4K
KyAgICAgICAgd2luZG93UHJveHktPmF0dGFjaERlYnVnZ2VyKG51bGxwdHIpOworICAgICAgICB3
aW5kb3dQcm94eS0+d2luZG93KCktPnNldENvbnNvbGVDbGllbnQobnVsbHB0cik7CisgICAgICAg
IHdpbmRvd1Byb3h5LT53aW5kb3coKS0+d2lsbFJlbW92ZUZyb21XaW5kb3dQcm94eSgpOworICAg
IH0KKworICAgIC8vIEl0J3MgbGlrZWx5IHRoYXQgcmVzZXR0aW5nIG91ciB3aW5kb3dzIGNyZWF0
ZWQgYSBsb3Qgb2YgZ2FyYmFnZSwgdW5sZXNzCisgICAgLy8gaXQgd2VudCBpbiBhIGJhY2svZm9y
d2FyZCBjYWNoZS4KKyAgICBpZiAoIWdvaW5nSW50b1BhZ2VDYWNoZSkKKyAgICAgICAgY29sbGVj
dEdhcmJhZ2VBZnRlcldpbmRvd1Byb3h5RGVzdHJ1Y3Rpb24oKTsKK30KKwordm9pZCBXaW5kb3dQ
cm94eUNvbnRyb2xsZXI6OnNldERPTVdpbmRvd0ZvcldpbmRvd1Byb3h5KEFic3RyYWN0RE9NV2lu
ZG93KiBuZXdET01XaW5kb3cpCit7CisgICAgQVNTRVJUKG5ld0RPTVdpbmRvdyk7CisKKyAgICBp
ZiAobV93aW5kb3dQcm94aWVzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgSlNM
b2NrSG9sZGVyIGxvY2soY29tbW9uVk0oKSk7CisKKyAgICBmb3IgKGF1dG8mIHdpbmRvd1Byb3h5
IDogd2luZG93UHJveGllc0FzVmVjdG9yKCkpIHsKKyAgICAgICAgaWYgKCZ3aW5kb3dQcm94eS0+
d3JhcHBlZCgpID09IG5ld0RPTVdpbmRvdykKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAg
ICAgIC8vIEZJWE1FOiBXZSBkbyBub3Qgc3VwcG9ydCBzZXR0aW5nIGEgUmVtb3RlRE9NV2luZG93
IHlldC4KKyAgICAgICAgQVNTRVJUKGlzPERPTVdpbmRvdz4obmV3RE9NV2luZG93KSk7CisKKyAg
ICAgICAgd2luZG93UHJveHktPnNldFdpbmRvdygqZG93bmNhc3Q8RE9NV2luZG93PihuZXdET01X
aW5kb3cpKTsKKworICAgICAgICBTY3JpcHRDb250cm9sbGVyKiBzY3JpcHRDb250cm9sbGVyID0g
bnVsbHB0cjsKKyAgICAgICAgUGFnZSogcGFnZSA9IG51bGxwdHI7CisgICAgICAgIGlmIChpczxG
cmFtZT4obV9mcmFtZSkpIHsKKyAgICAgICAgICAgIGF1dG8mIGZyYW1lID0gZG93bmNhc3Q8RnJh
bWU+KG1fZnJhbWUpOworICAgICAgICAgICAgc2NyaXB0Q29udHJvbGxlciA9ICZmcmFtZS5zY3Jp
cHQoKTsKKyAgICAgICAgICAgIHBhZ2UgPSBmcmFtZS5wYWdlKCk7CisgICAgICAgIH0KKworICAg
ICAgICAvLyBTY3JpcHRDb250cm9sbGVyJ3MgbV9jYWNoZWFibGVCaW5kaW5nUm9vdE9iamVjdCBw
ZXJzaXN0cyBiZXR3ZWVuIHBhZ2UgbmF2aWdhdGlvbnMKKyAgICAgICAgLy8gc28gbmVlZHMgdG8g
a25vdyBhYm91dCB0aGUgbmV3IEpTRE9NV2luZG93LgorICAgICAgICBpZiAoYXV0byogY2FjaGVh
YmxlQmluZGluZ1Jvb3RPYmplY3QgPSBzY3JpcHRDb250cm9sbGVyID8gc2NyaXB0Q29udHJvbGxl
ci0+ZXhpc3RpbmdDYWNoZWFibGVCaW5kaW5nUm9vdE9iamVjdCgpIDogbnVsbHB0cikKKyAgICAg
ICAgICAgIGNhY2hlYWJsZUJpbmRpbmdSb290T2JqZWN0LT51cGRhdGVHbG9iYWxPYmplY3Qod2lu
ZG93UHJveHktPndpbmRvdygpKTsKKworICAgICAgICB3aW5kb3dQcm94eS0+YXR0YWNoRGVidWdn
ZXIocGFnZSA/IHBhZ2UtPmRlYnVnZ2VyKCkgOiBudWxscHRyKTsKKyAgICAgICAgaWYgKHBhZ2Up
CisgICAgICAgICAgICB3aW5kb3dQcm94eS0+d2luZG93KCktPnNldFByb2ZpbGVHcm91cChwYWdl
LT5ncm91cCgpLmlkZW50aWZpZXIoKSk7CisgICAgICAgIHdpbmRvd1Byb3h5LT53aW5kb3coKS0+
c2V0Q29uc29sZUNsaWVudChwYWdlID8gJnBhZ2UtPmNvbnNvbGUoKSA6IG51bGxwdHIpOworICAg
IH0KK30KKwordm9pZCBXaW5kb3dQcm94eUNvbnRyb2xsZXI6OmF0dGFjaERlYnVnZ2VyKEpTQzo6
RGVidWdnZXIqIGRlYnVnZ2VyKQoreworICAgIGZvciAoYXV0byYgd2luZG93UHJveHkgOiBtX3dp
bmRvd1Byb3hpZXMudmFsdWVzKCkpCisgICAgICAgIHdpbmRvd1Byb3h5LT5hdHRhY2hEZWJ1Z2dl
cihkZWJ1Z2dlcik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dpbmRvd1Byb3h5Q29udHJvbGxlci5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV2luZG93UHJveHlDb250cm9sbGVyLmgKaW5kZXggYjU2ZGM5
YmQ1ZTIxOTFhZTQ4NDlhMjM2MTU0NTZkNGViN2QxMDY2My4uZjA2ZjQ4MTM4OGY0Y2Q0YWE5MTRm
ZTNiMTE3ZGI5YTUxZDg4YzA3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV2luZG93UHJveHlDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV2luZG93UHJveHlDb250cm9sbGVyLmgKQEAgLTI0LDYgKzI0LDEwIEBACiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvU3Ryb25nLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KIAorbmFt
ZXNwYWNlIEpTQyB7CitjbGFzcyBEZWJ1Z2dlcjsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBBYnN0cmFjdEZyYW1lOwpAQCAtMzQsNiArMzgsNyBAQCBwdWJsaWM6CiAgICAgdXNp
bmcgUHJveHlNYXAgPSBIYXNoTWFwPFJlZlB0cjxET01XcmFwcGVyV29ybGQ+LCBKU0M6OlN0cm9u
ZzxKU0RPTVdpbmRvd1Byb3h5Pj47CiAKICAgICBleHBsaWNpdCBXaW5kb3dQcm94eUNvbnRyb2xs
ZXIoQWJzdHJhY3RGcmFtZSYpOworICAgIH5XaW5kb3dQcm94eUNvbnRyb2xsZXIoKTsKIAogICAg
IHZvaWQgZGVzdHJveVdpbmRvd1Byb3h5KERPTVdyYXBwZXJXb3JsZCYpOwogCkBAIC02Myw2ICs2
OCwxMyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiB3aW5kb3dQcm94eSh3b3JsZCkud2luZG93
KCk7CiAgICAgfQogCisgICAgdm9pZCBjbGVhcldpbmRvd1Byb3hpZXNOb3RNYXRjaGluZ0RPTVdp
bmRvdyhBYnN0cmFjdERPTVdpbmRvdyosIGJvb2wgZ29pbmdJbnRvUGFnZUNhY2hlKTsKKworICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RE9NV2luZG93Rm9yV2luZG93UHJveHkoQWJzdHJhY3RE
T01XaW5kb3cqKTsKKworICAgIC8vIERlYnVnZ2VyIGNhbiBiZSBudWxscHRyIHRvIGRldGFjaCBh
bnkgZXhpc3RpbmcgRGVidWdnZXIuCisgICAgdm9pZCBhdHRhY2hEZWJ1Z2dlcihKU0M6OkRlYnVn
Z2VyKik7IC8vIEF0dGFjaGVzL2RldGFjaGVzIGluIGFsbCB3b3JsZHMvd2luZG93IHByb3hpZXMu
CisKIHByaXZhdGU6CiAgICAgSlNET01XaW5kb3dQcm94eSYgY3JlYXRlV2luZG93UHJveHkoRE9N
V3JhcHBlcldvcmxkJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgSlNET01XaW5kb3dQcm94eSYgY3Jl
YXRlV2luZG93UHJveHlXaXRoSW5pdGlhbGl6ZWRTY3JpcHQoRE9NV3JhcHBlcldvcmxkJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCA1Y2FhMTFiOTRmMTQ0NDI3N2Nk
M2EyOGFmMWRmYmRjZTYyNWE3Y2MxLi44NjNkNTljN2Q0YThkMjAxZTEzMzA2NGZiMGZjY2RkMDIx
ZGVkMzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTYyOSw3ICs2
MjksNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjbGVhcihEb2N1bWVudCogbmV3RG9jdW1lbnQsIGJv
b2wgY2xlYXJXaW5kb3dQcm9wZXJ0aWVzLCBib29sCiAgICAgaWYgKGNsZWFyV2luZG93UHJvcGVy
dGllcykgewogICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lV2luZG93RGlz
Y2FyZGVkKG1fZnJhbWUsIG1fZnJhbWUuZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpOwogICAgICAg
ICBtX2ZyYW1lLmRvY3VtZW50KCktPmRvbVdpbmRvdygpLT5yZXNldFVubGVzc1N1c3BlbmRlZEZv
ckRvY3VtZW50U3VzcGVuc2lvbigpOwotICAgICAgICBtX2ZyYW1lLnNjcmlwdCgpLmNsZWFyV2lu
ZG93UHJveGllc05vdE1hdGNoaW5nRE9NV2luZG93KG5ld0RvY3VtZW50LT5kb21XaW5kb3coKSwg
bV9mcmFtZS5kb2N1bWVudCgpLT5wYWdlQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpBYm91dFRv
RW50ZXJQYWdlQ2FjaGUpOworICAgICAgICBtX2ZyYW1lLndpbmRvd1Byb3h5Q29udHJvbGxlcigp
LmNsZWFyV2luZG93UHJveGllc05vdE1hdGNoaW5nRE9NV2luZG93KG5ld0RvY3VtZW50LT5kb21X
aW5kb3coKSwgbV9mcmFtZS5kb2N1bWVudCgpLT5wYWdlQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50
OjpBYm91dFRvRW50ZXJQYWdlQ2FjaGUpOwogCiAgICAgICAgIGlmIChzaG91bGRDbGVhcldpbmRv
d05hbWUobV9mcmFtZSwgKm5ld0RvY3VtZW50KSkKICAgICAgICAgICAgIG1fZnJhbWUudHJlZSgp
LnNldE5hbWUobnVsbEF0b20oKSk7CkBAIC02NDgsNyArNjQ4LDcgQEAgdm9pZCBGcmFtZUxvYWRl
cjo6Y2xlYXIoRG9jdW1lbnQqIG5ld0RvY3VtZW50LCBib29sIGNsZWFyV2luZG93UHJvcGVydGll
cywgYm9vbAogICAgIHN1YmZyYW1lTG9hZGVyKCkuY2xlYXIoKTsKIAogICAgIGlmIChjbGVhcldp
bmRvd1Byb3BlcnRpZXMpCi0gICAgICAgIG1fZnJhbWUuc2NyaXB0KCkuc2V0RE9NV2luZG93Rm9y
V2luZG93UHJveHkobmV3RG9jdW1lbnQtPmRvbVdpbmRvdygpKTsKKyAgICAgICAgbV9mcmFtZS53
aW5kb3dQcm94eUNvbnRyb2xsZXIoKS5zZXRET01XaW5kb3dGb3JXaW5kb3dQcm94eShuZXdEb2N1
bWVudC0+ZG9tV2luZG93KCkpOwogCiAgICAgaWYgKGNsZWFyU2NyaXB0T2JqZWN0cykKICAgICAg
ICAgbV9mcmFtZS5zY3JpcHQoKS5jbGVhclNjcmlwdE9iamVjdHMoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
CmluZGV4IGM1MDAwZTdhY2U2NWEyYzMzYzU3MzJmMzgyNWQ2MWYzZjI1MzQ2N2QuLjM2MjQ4NzY5
NDZjMmMyMGU3ZGI4Zjk5MDkwMjdkNWJiZjI0ZjI0YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAt
MTI1Nyw3ICsxMjU3LDcgQEAgdm9pZCBQYWdlOjpzZXREZWJ1Z2dlcihKU0M6OkRlYnVnZ2VyKiBk
ZWJ1Z2dlcikKICAgICBtX2RlYnVnZ2VyID0gZGVidWdnZXI7CiAKICAgICBmb3IgKEZyYW1lKiBm
cmFtZSA9ICZtX21haW5GcmFtZS5nZXQoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50
cmF2ZXJzZU5leHQoKSkKLSAgICAgICAgZnJhbWUtPnNjcmlwdCgpLmF0dGFjaERlYnVnZ2VyKG1f
ZGVidWdnZXIpOworICAgICAgICBmcmFtZS0+d2luZG93UHJveHlDb250cm9sbGVyKCkuYXR0YWNo
RGVidWdnZXIobV9kZWJ1Z2dlcik7CiB9CiAKIFN0b3JhZ2VOYW1lc3BhY2UqIFBhZ2U6OnNlc3Np
b25TdG9yYWdlKGJvb2wgb3B0aW9uYWxDcmVhdGUpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>