<?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>130744</bug_id>
          
          <creation_ts>2014-03-25 15:16:08 -0700</creation_ts>
          <short_desc>Add a WebFrame::fromCoreFrame static member function and use it where possible</short_desc>
          <delta_ts>2014-03-25 15:35:10 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>994366</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-03-25 15:16:08 -0700</bug_when>
    <thetext>Add a WebFrame::fromCoreFrame static member function and use it where possible</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994367</commentid>
    <comment_count>1</comment_count>
      <attachid>227805</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-03-25 15:16:21 -0700</bug_when>
    <thetext>Created attachment 227805
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994402</commentid>
    <comment_count>2</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-03-25 15:35:10 -0700</bug_when>
    <thetext>Committed r166262: &lt;http://trac.webkit.org/changeset/166262&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227805</attachid>
            <date>2014-03-25 15:16:21 -0700</date>
            <delta_ts>2014-03-25 15:30:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130744-20140325151603.patch</filename>
            <type>text/plain</type>
            <size>29869</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2MjUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzRjYjRiZDlmM2QyNTg5
MzM4M2Y5ZWVjMWZkMDUyZTM4YzQ4MWU0Ni4uNzkzOGY5MDAxZmI5YWUwNDJhYjU5ZTgwZGRlNGRk
Mzk2MTI5MjY4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU4IEBACiAyMDE0LTAzLTI1ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgQWRkIGEgV2ViRnJh
bWU6OmZyb21Db3JlRnJhbWUgc3RhdGljIG1lbWJlciBmdW5jdGlvbiBhbmQgdXNlIGl0IHdoZXJl
IHBvc3NpYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzA3NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFdlYlByb2Nlc3MvR2VvbG9jYXRpb24vR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcjo6c3RhcnRSZXF1ZXN0Rm9yR2VvbG9jYXRpb24pOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6ZG9jdW1lbnRGcmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6aHRtbEZyYW1lRWxlbWVu
dENvbnRlbnRGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlTm9kZUhhbmRs
ZTo6aHRtbElGcmFtZUVsZW1lbnRDb250ZW50RnJhbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmpl
Y3RlZEJ1bmRsZTo6b3ZlcnJpZGVCb29sUHJlZmVyZW5jZUZvclRlc3RSdW5uZXIpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVET01XaW5kb3dFeHRl
bnNpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZURPTVdpbmRvd0V4dGVu
c2lvbjo6ZnJhbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5k
bGVIaXRUZXN0UmVzdWx0OjpmcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxl
SGl0VGVzdFJlc3VsdDo6dGFyZ2V0RnJhbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5WaWV3LmNwcDoKKyAgICAgICAgKFdlYktpdDo6d2ViUGFnZSk6CisgICAgICAgIChX
ZWJLaXQ6OlBsdWdpblZpZXc6OnBlcmZvcm1GcmFtZUxvYWRVUkxSZXF1ZXN0KToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Zm9jdXNlZEVsZW1lbnRDaGFuZ2VkKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpmb2N1c2VkRnJhbWVDaGFuZ2VkKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwp
OgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0p
OgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRQcm9tcHQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnByaW50KToKKyAgICAgICAgKFdl
YktpdDo6V2ViQ2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFiYXNlUXVvdGEpOgorICAgICAgICAo
V2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnJ1bk9wZW5QYW5lbCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJFZGl0b3JDbGllbnQ6OnRleHRGaWVsZERpZEJlZ2luRWRpdGluZyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkVkaXRvckNsaWVudDo6dGV4dEZpZWxkRGlkRW5kRWRpdGluZyk6CisgICAgICAg
IChXZWJLaXQ6OldlYkVkaXRvckNsaWVudDo6dGV4dERpZENoYW5nZUluVGV4dEZpZWxkKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50Ojp0ZXh0RGlkQ2hhbmdlSW5UZXh0QXJlYSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkVkaXRvckNsaWVudDo6ZG9UZXh0RmllbGRDb21tYW5kRnJv
bUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50Ojp0ZXh0V2lsbEJlRGVs
ZXRlZEluVGV4dEZpZWxkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAg
IChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxTZW5kU3VibWl0RXZl
bnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxs
U3VibWl0Rm9ybSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6OmZyb21Db3JlRnJhbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGcmFtZTo6Y29udGVudHNBc1N0cmluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkZy
YW1lOjpwYXJlbnRGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjpjaGlsZEZyYW1l
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjpmcmFtZUZvckNvbnRleHQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJGcmFtZTo6d2ViQXJjaGl2ZURhdGEpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJGcmFtZS5oOgorCisyMDE0LTAzLTI1ICBBbmRlcnMgQ2FybHNzb24gIDxh
bmRlcnNjYUBhcHBsZS5jb20+CisKICAgICAgICAgQWRkIG1vcmUgcHJvcGVydGllcyB0byBXS1dp
bmRvd0ZlYXR1cmVzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzA3MzgKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9s
b2NhdGlvbi9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmNwcAppbmRleCBjNDBjZjY2ODFkNjAyNTkwZDI3OTBjNTU1ODJkOWEzMDdjMzA2
OTg5Li41ODVhZTZiZThiODQ3MjRiNWIyZjBkNjhlMDlkNDk5NjdmMzM1MGViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dl
b2xvY2F0aW9uL0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApAQCAtNjEs
OCArNjEsNyBAQCB2b2lkIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpzdGFy
dFJlcXVlc3RGb3JHZW9sb2NhdGlvbihHZW9sb2NhdGlvbgogCiAgICAgRnJhbWUqIGZyYW1lID0g
Z2VvbG9jYXRpb24tPmZyYW1lKCk7CiAKLSAgICBXZWJGcmFtZUxvYWRlckNsaWVudCogd2ViRnJh
bWVMb2FkZXJDbGllbnQgPSB0b1dlYkZyYW1lTG9hZGVyQ2xpZW50KGZyYW1lLT5sb2FkZXIoKS5j
bGllbnQoKSk7Ci0gICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gd2ViRnJhbWVMb2FkZXJDbGllbnQg
PyB3ZWJGcmFtZUxvYWRlckNsaWVudC0+d2ViRnJhbWUoKSA6IDA7CisgICAgV2ViRnJhbWUqIHdl
YkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmZyYW1lKTsKICAgICBBU1NFUlQod2Vi
RnJhbWUpOwogCiAgICAgU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiA9IGZyYW1lLT5kb2N1bWVudCgp
LT5zZWN1cml0eU9yaWdpbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9k
ZUhhbmRsZS5jcHAKaW5kZXggY2NmZjJiMzZmMzAxNzMyMjgwYzMxYThkYTZiYWExZTc5MjlmOTRi
ZC4uMGNkM2EyZmY5ZGI0ODMxMjEzZmVjNzBlMzFhODAzMzk2Y2FjYzllMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5k
bGVOb2RlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwCkBAIC0yMjYsNDAgKzIyNiwz
NyBAQCBQYXNzUmVmUHRyPEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZT4gSW5qZWN0ZWRCdW5kbGVO
b2RlSGFuZGxlOjpodG1sVGFibGVDZWxsRWxlbQogUGFzc1JlZlB0cjxXZWJGcmFtZT4gSW5qZWN0
ZWRCdW5kbGVOb2RlSGFuZGxlOjpkb2N1bWVudEZyYW1lKCkKIHsKICAgICBpZiAoIW1fbm9kZS0+
aXNEb2N1bWVudE5vZGUoKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxs
cHRyOwogCiAgICAgRnJhbWUqIGZyYW1lID0gc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihtX25vZGUu
Z2V0KCkpLT5mcmFtZSgpOwogICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiAwOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIFdlYkZyYW1lTG9hZGVyQ2xpZW50KiB3ZWJGcmFt
ZUxvYWRlckNsaWVudCA9IHRvV2ViRnJhbWVMb2FkZXJDbGllbnQoZnJhbWUtPmxvYWRlcigpLmNs
aWVudCgpKTsKLSAgICByZXR1cm4gd2ViRnJhbWVMb2FkZXJDbGllbnQgPyB3ZWJGcmFtZUxvYWRl
ckNsaWVudC0+d2ViRnJhbWUoKSA6IDA7CisgICAgcmV0dXJuIFdlYkZyYW1lOjpmcm9tQ29yZUZy
YW1lKCpmcmFtZSk7CiB9CiAKIFBhc3NSZWZQdHI8V2ViRnJhbWU+IEluamVjdGVkQnVuZGxlTm9k
ZUhhbmRsZTo6aHRtbEZyYW1lRWxlbWVudENvbnRlbnRGcmFtZSgpCiB7CiAgICAgaWYgKCFtX25v
ZGUtPmhhc1RhZ05hbWUoZnJhbWVUYWcpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKICAgICBGcmFtZSogZnJhbWUgPSBzdGF0aWNfY2FzdDxIVE1MRnJhbWVF
bGVtZW50Kj4obV9ub2RlLmdldCgpKS0+Y29udGVudEZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkK
LSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgV2ViRnJh
bWVMb2FkZXJDbGllbnQqIHdlYkZyYW1lTG9hZGVyQ2xpZW50ID0gdG9XZWJGcmFtZUxvYWRlckNs
aWVudChmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkpOwotICAgIHJldHVybiB3ZWJGcmFtZUxvYWRl
ckNsaWVudCA/IHdlYkZyYW1lTG9hZGVyQ2xpZW50LT53ZWJGcmFtZSgpIDogMDsKKyAgICByZXR1
cm4gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmZyYW1lKTsKIH0KIAogUGFzc1JlZlB0cjxXZWJG
cmFtZT4gSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlOjpodG1sSUZyYW1lRWxlbWVudENvbnRlbnRG
cmFtZSgpCiB7CiAgICAgaWYgKCFtX25vZGUtPmhhc1RhZ05hbWUoaWZyYW1lVGFnKSkKLSAgICAg
ICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgRnJhbWUqIGZyYW1l
ID0gdG9IVE1MSUZyYW1lRWxlbWVudChtX25vZGUuZ2V0KCkpLT5jb250ZW50RnJhbWUoKTsKICAg
ICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKLSAgICBXZWJGcmFtZUxvYWRlckNsaWVudCogd2ViRnJhbWVMb2FkZXJDbGllbnQgPSB0b1dl
YkZyYW1lTG9hZGVyQ2xpZW50KGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKSk7Ci0gICAgcmV0dXJu
IHdlYkZyYW1lTG9hZGVyQ2xpZW50ID8gd2ViRnJhbWVMb2FkZXJDbGllbnQtPndlYkZyYW1lKCkg
OiAwOworICAgIHJldHVybiBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggNzdlYjUzN2I1
NDdiNjBiMTAxNWQxN2VmYWE0MWY3NjZhOTEyNDdlMC4uMTUzYjY3MmY3MWQ5YTU5ODk3OGQyMDdj
YmEzNWNmMjA3N2UzN2RiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTE1Nyw0NSArMTU3
LDMzIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6Om92ZXJyaWRlQm9vbFByZWZlcmVuY2VGb3JUZXN0
UnVubmVyKFdlYlBhZ2VHcm91cFByb3h5KiBwYWdlCiAKICAgICBpZiAocHJlZmVyZW5jZSA9PSAi
V2ViS2l0VGFiVG9MaW5rc1ByZWZlcmVuY2VLZXkiKSB7CiAgICAgICAgIFdlYlByZWZlcmVuY2Vz
U3RvcmU6Om92ZXJyaWRlQm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojp0YWJzVG9M
aW5rc0tleSgpLCBlbmFibGVkKTsKLSAgICAgICAgZm9yIChIYXNoU2V0PFBhZ2UqPjo6aXRlcmF0
b3IgaSA9IHBhZ2VzLmJlZ2luKCk7IGkgIT0gcGFnZXMuZW5kKCk7ICsraSkgewotICAgICAgICAg
ICAgV2ViRnJhbWVMb2FkZXJDbGllbnQqIHdlYkZyYW1lTG9hZGVyQ2xpZW50ID0gdG9XZWJGcmFt
ZUxvYWRlckNsaWVudCgoKmkpLT5tYWluRnJhbWUoKS5sb2FkZXIoKS5jbGllbnQoKSk7Ci0gICAg
ICAgICAgICBBU1NFUlQod2ViRnJhbWVMb2FkZXJDbGllbnQpOwotICAgICAgICAgICAgd2ViRnJh
bWVMb2FkZXJDbGllbnQtPndlYkZyYW1lKCktPnBhZ2UoKS0+c2V0VGFiVG9MaW5rc0VuYWJsZWQo
ZW5hYmxlZCk7Ci0gICAgICAgIH0KKyAgICAgICAgZm9yIChhdXRvKiBwYWdlIDogcGFnZXMpCisg
ICAgICAgICAgICBXZWJQYWdlOjpmcm9tQ29yZVBhZ2UocGFnZSktPnNldFRhYlRvTGlua3NFbmFi
bGVkKGVuYWJsZWQpOwogICAgIH0KIAogICAgIGlmIChwcmVmZXJlbmNlID09ICJXZWJLaXQyQXN5
bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVkIikgewogICAgICAgICBXZWJQcmVm
ZXJlbmNlc1N0b3JlOjpvdmVycmlkZUJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6
YXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVkS2V5KCksIGVuYWJsZWQpOwot
ICAgICAgICBmb3IgKEhhc2hTZXQ8UGFnZSo+OjppdGVyYXRvciBpID0gcGFnZXMuYmVnaW4oKTsg
aSAhPSBwYWdlcy5lbmQoKTsgKytpKSB7Ci0gICAgICAgICAgICBXZWJGcmFtZUxvYWRlckNsaWVu
dCogd2ViRnJhbWVMb2FkZXJDbGllbnQgPSB0b1dlYkZyYW1lTG9hZGVyQ2xpZW50KCgqaSktPm1h
aW5GcmFtZSgpLmxvYWRlcigpLmNsaWVudCgpKTsKLSAgICAgICAgICAgIEFTU0VSVCh3ZWJGcmFt
ZUxvYWRlckNsaWVudCk7Ci0gICAgICAgICAgICB3ZWJGcmFtZUxvYWRlckNsaWVudC0+d2ViRnJh
bWUoKS0+cGFnZSgpLT5zZXRBc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbkVuYWJsZWQo
ZW5hYmxlZCk7Ci0gICAgICAgIH0KKyAgICAgICAgZm9yIChhdXRvKiBwYWdlIDogcGFnZXMpCisg
ICAgICAgICAgICBXZWJQYWdlOjpmcm9tQ29yZVBhZ2UocGFnZSktPnNldEFzeW5jaHJvbm91c1Bs
dWdpbkluaXRpYWxpemF0aW9uRW5hYmxlZChlbmFibGVkKTsKICAgICB9CiAKICAgICBpZiAocHJl
ZmVyZW5jZSA9PSAiV2ViS2l0MkFzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uRW5hYmxl
ZEZvckFsbFBsdWdpbnMiKSB7CiAgICAgICAgIFdlYlByZWZlcmVuY2VzU3RvcmU6Om92ZXJyaWRl
Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojphc3luY2hyb25vdXNQbHVnaW5Jbml0
aWFsaXphdGlvbkVuYWJsZWRGb3JBbGxQbHVnaW5zS2V5KCksIGVuYWJsZWQpOwotICAgICAgICBm
b3IgKEhhc2hTZXQ8UGFnZSo+OjppdGVyYXRvciBpID0gcGFnZXMuYmVnaW4oKTsgaSAhPSBwYWdl
cy5lbmQoKTsgKytpKSB7Ci0gICAgICAgICAgICBXZWJGcmFtZUxvYWRlckNsaWVudCogd2ViRnJh
bWVMb2FkZXJDbGllbnQgPSB0b1dlYkZyYW1lTG9hZGVyQ2xpZW50KCgqaSktPm1haW5GcmFtZSgp
LmxvYWRlcigpLmNsaWVudCgpKTsKLSAgICAgICAgICAgIEFTU0VSVCh3ZWJGcmFtZUxvYWRlckNs
aWVudCk7Ci0gICAgICAgICAgICB3ZWJGcmFtZUxvYWRlckNsaWVudC0+d2ViRnJhbWUoKS0+cGFn
ZSgpLT5zZXRBc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbkVuYWJsZWRGb3JBbGxQbHVn
aW5zKGVuYWJsZWQpOwotICAgICAgICB9CisgICAgICAgIGZvciAoYXV0byogcGFnZSA6IHBhZ2Vz
KQorICAgICAgICAgICAgV2ViUGFnZTo6ZnJvbUNvcmVQYWdlKHBhZ2UpLT5zZXRBc3luY2hyb25v
dXNQbHVnaW5Jbml0aWFsaXphdGlvbkVuYWJsZWRGb3JBbGxQbHVnaW5zKGVuYWJsZWQpOwogICAg
IH0KIAogICAgIGlmIChwcmVmZXJlbmNlID09ICJXZWJLaXQyQXJ0aWZpY2lhbFBsdWdpbkluaXRp
YWxpemF0aW9uRGVsYXlFbmFibGVkIikgewogICAgICAgICBXZWJQcmVmZXJlbmNlc1N0b3JlOjpv
dmVycmlkZUJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6YXJ0aWZpY2lhbFBsdWdp
bkluaXRpYWxpemF0aW9uRGVsYXlFbmFibGVkS2V5KCksIGVuYWJsZWQpOwotICAgICAgICBmb3Ig
KEhhc2hTZXQ8UGFnZSo+OjppdGVyYXRvciBpID0gcGFnZXMuYmVnaW4oKTsgaSAhPSBwYWdlcy5l
bmQoKTsgKytpKSB7Ci0gICAgICAgICAgICBXZWJGcmFtZUxvYWRlckNsaWVudCogd2ViRnJhbWVM
b2FkZXJDbGllbnQgPSB0b1dlYkZyYW1lTG9hZGVyQ2xpZW50KCgqaSktPm1haW5GcmFtZSgpLmxv
YWRlcigpLmNsaWVudCgpKTsKLSAgICAgICAgICAgIEFTU0VSVCh3ZWJGcmFtZUxvYWRlckNsaWVu
dCk7Ci0gICAgICAgICAgICB3ZWJGcmFtZUxvYWRlckNsaWVudC0+d2ViRnJhbWUoKS0+cGFnZSgp
LT5zZXRBcnRpZmljaWFsUGx1Z2luSW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQoZW5hYmxlZCk7
Ci0gICAgICAgIH0KKyAgICAgICAgZm9yIChhdXRvKiBwYWdlIDogcGFnZXMpCisgICAgICAgICAg
ICBXZWJQYWdlOjpmcm9tQ29yZVBhZ2UocGFnZSktPnNldEFydGlmaWNpYWxQbHVnaW5Jbml0aWFs
aXphdGlvbkRlbGF5RW5hYmxlZChlbmFibGVkKTsKICAgICB9CiAKICNpZiBFTkFCTEUoSU1BR0Vf
Q09OVFJPTFMpCiAgICAgaWYgKHByZWZlcmVuY2UgPT0gIldlYktpdEltYWdlQ29udHJvbHNFbmFi
bGVkIikgewogICAgICAgICBXZWJQcmVmZXJlbmNlc1N0b3JlOjpvdmVycmlkZUJvb2xWYWx1ZUZv
cktleShXZWJQcmVmZXJlbmNlc0tleTo6aW1hZ2VDb250cm9sc0VuYWJsZWRLZXkoKSwgZW5hYmxl
ZCk7Ci0gICAgICAgIGZvciAoSGFzaFNldDxQYWdlKj46Oml0ZXJhdG9yIGl0ZXIgPSBwYWdlcy5i
ZWdpbigpOyBpdGVyICE9IHBhZ2VzLmVuZCgpOyArK2l0ZXIpCi0gICAgICAgICAgICAoKml0ZXIp
LT5zZXR0aW5ncygpLnNldEltYWdlQ29udHJvbHNFbmFibGVkKGVuYWJsZWQpOworICAgICAgICBm
b3IgKGF1dG8qIHBhZ2UgOiBwYWdlcykKKyAgICAgICAgICAgIHBhZ2UtPnNldHRpbmdzKCkuc2V0
SW1hZ2VDb250cm9sc0VuYWJsZWQoZW5hYmxlZCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGVET01XaW5kb3dFeHRlbnNpb24uY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZURPTVdpbmRvd0V4dGVuc2lv
bi5jcHAKaW5kZXggNTEwOGU4MDc1YmRlZDUwYzEwM2FiMjdiNTc4MzBlMDljMThmN2MxYy4uY2Y4
Y2U2MjczZDU4Y2ViMDM1NTkyYjVlNGZmOGQxOTI0MTlmNzQxNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZURPTVdpbmRv
d0V4dGVuc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5jcHAKQEAgLTczLDggKzczLDEw
IEBAIEluamVjdGVkQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uOjp+SW5qZWN0ZWRCdW5kbGVET01X
aW5kb3dFeHRlbnNpb24oKQogV2ViRnJhbWUqIEluamVjdGVkQnVuZGxlRE9NV2luZG93RXh0ZW5z
aW9uOjpmcmFtZSgpIGNvbnN0CiB7CiAgICAgRnJhbWUqIGZyYW1lID0gbV9jb3JlRXh0ZW5zaW9u
LT5mcmFtZSgpOwotICAgIFdlYkZyYW1lTG9hZGVyQ2xpZW50KiB3ZWJGcmFtZUxvYWRlckNsaWVu
dCA9IGZyYW1lID8gdG9XZWJGcmFtZUxvYWRlckNsaWVudChmcmFtZS0+bG9hZGVyKCkuY2xpZW50
KCkpIDogMDsKLSAgICByZXR1cm4gd2ViRnJhbWVMb2FkZXJDbGllbnQgPyB3ZWJGcmFtZUxvYWRl
ckNsaWVudC0+d2ViRnJhbWUoKSA6IDA7CisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisKKyAgICByZXR1cm4gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmZyYW1lKTsK
IH0KIAogSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZCogSW5qZWN0ZWRCdW5kbGVET01XaW5kb3dF
eHRlbnNpb246OndvcmxkKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVIaXRU
ZXN0UmVzdWx0LmNwcAppbmRleCBlZjkyZDliNjhkNzdmZTNlOTI1ODE4Yzc0ZDJiZmU3ZGFlNTlj
NjcxLi44ZDEzMmRmODA2MmEzNGY5YTMyMGFhMDRmMzQwZjQzYjA0ZTZmMjZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
SGl0VGVzdFJlc3VsdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuY3BwCkBAIC01NSwyNCArNTUsMjIg
QEAgV2ViRnJhbWUqIEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdDo6ZnJhbWUoKSBjb25zdAog
ewogICAgIE5vZGUqIG5vZGUgPSBtX2hpdFRlc3RSZXN1bHQuaW5uZXJOb25TaGFyZWROb2RlKCk7
CiAgICAgaWYgKCFub2RlKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKICAgICBGcmFtZSogZnJhbWUgPSBub2RlLT5kb2N1bWVudCgpLmZyYW1lKCk7CiAgICAg
aWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwog
Ci0gICAgV2ViRnJhbWVMb2FkZXJDbGllbnQqIHdlYkZyYW1lTG9hZGVyQ2xpZW50ID0gdG9XZWJG
cmFtZUxvYWRlckNsaWVudChmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkpOwotICAgIHJldHVybiB3
ZWJGcmFtZUxvYWRlckNsaWVudCA/IHdlYkZyYW1lTG9hZGVyQ2xpZW50LT53ZWJGcmFtZSgpIDog
MDsKKyAgICByZXR1cm4gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmZyYW1lKTsKIH0KIAogV2Vi
RnJhbWUqIEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdDo6dGFyZ2V0RnJhbWUoKSBjb25zdAog
ewogICAgIEZyYW1lKiBmcmFtZSA9IG1faGl0VGVzdFJlc3VsdC50YXJnZXRGcmFtZSgpOwogICAg
IGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAotICAgIFdlYkZyYW1lTG9hZGVyQ2xpZW50KiB3ZWJGcmFtZUxvYWRlckNsaWVudCA9IHRvV2Vi
RnJhbWVMb2FkZXJDbGllbnQoZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpKTsKLSAgICByZXR1cm4g
d2ViRnJhbWVMb2FkZXJDbGllbnQgPyB3ZWJGcmFtZUxvYWRlckNsaWVudC0+d2ViRnJhbWUoKSA6
IDA7CisgICAgcmV0dXJuIFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSk7CiB9CiAKIFN0
cmluZyBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQ6OmFic29sdXRlSW1hZ2VVUkwoKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZp
ZXcuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3Bw
CmluZGV4IDkzYjBiYWQ5ZGU1ZGJlYmM0OTI3M2Q1M2NhMzRmN2U0YTdjOGEyYzAuLmQ3NWFjMTNk
YTk2MmIzYmU0YmE4MjgwYTVlNzUzNTljNmM5ZWU1MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTI2MywxMSArMjYzLDExIEBA
IHN0YXRpYyBpbmxpbmUgV2ViUGFnZSogd2ViUGFnZShIVE1MUGx1Z0luRWxlbWVudCogcGx1Z2lu
RWxlbWVudCkKICAgICBGcmFtZSogZnJhbWUgPSBwbHVnaW5FbGVtZW50LT5kb2N1bWVudCgpLmZy
YW1lKCk7CiAgICAgQVNTRVJUKGZyYW1lKTsKIAotICAgIFdlYkZyYW1lTG9hZGVyQ2xpZW50KiB3
ZWJGcmFtZUxvYWRlckNsaWVudCA9IHRvV2ViRnJhbWVMb2FkZXJDbGllbnQoZnJhbWUtPmxvYWRl
cigpLmNsaWVudCgpKTsKLSAgICBXZWJQYWdlKiB3ZWJQYWdlID0gd2ViRnJhbWVMb2FkZXJDbGll
bnQgPyB3ZWJGcmFtZUxvYWRlckNsaWVudC0+d2ViRnJhbWUoKS0+cGFnZSgpIDogMDsKLSAgICBB
U1NFUlQod2ViUGFnZSk7CisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21D
b3JlRnJhbWUoKmZyYW1lKTsKKyAgICBpZiAoIXdlYkZyYW1lKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIAotICAgIHJldHVybiB3ZWJQYWdlOworICAgIHJldHVybiB3ZWJGcmFtZS0+cGFnZSgp
OwogfQogCiBQYXNzUmVmUHRyPFBsdWdpblZpZXc+IFBsdWdpblZpZXc6OmNyZWF0ZShQYXNzUmVm
UHRyPEhUTUxQbHVnSW5FbGVtZW50PiBwbHVnaW5FbGVtZW50LCBQYXNzUmVmUHRyPFBsdWdpbj4g
cGx1Z2luLCBjb25zdCBQbHVnaW46OlBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCkBAIC0xMTQ5LDgg
KzExNDksNyBAQCB2b2lkIFBsdWdpblZpZXc6OnBlcmZvcm1GcmFtZUxvYWRVUkxSZXF1ZXN0KFVS
TFJlcXVlc3QqIHJlcXVlc3QpCiAgICAgLy8gTm93IGFzayB0aGUgZnJhbWUgdG8gbG9hZCB0aGUg
cmVxdWVzdC4KICAgICB0YXJnZXRGcmFtZS0+bG9hZGVyKCkubG9hZChGcmFtZUxvYWRSZXF1ZXN0
KHRhcmdldEZyYW1lLCByZXF1ZXN0LT5yZXF1ZXN0KCkpKTsKIAotICAgIFdlYkZyYW1lTG9hZGVy
Q2xpZW50KiB3ZWJGcmFtZUxvYWRlckNsaWVudCA9IHRvV2ViRnJhbWVMb2FkZXJDbGllbnQodGFy
Z2V0RnJhbWUtPmxvYWRlcigpLmNsaWVudCgpKTsKLSAgICBXZWJGcmFtZSogdGFyZ2V0V2ViRnJh
bWUgPSB3ZWJGcmFtZUxvYWRlckNsaWVudCA/IHdlYkZyYW1lTG9hZGVyQ2xpZW50LT53ZWJGcmFt
ZSgpIDogMDsKKyAgICBhdXRvKiB0YXJnZXRXZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZy
YW1lKCp0YXJnZXRGcmFtZSk7CiAgICAgQVNTRVJUKHRhcmdldFdlYkZyYW1lKTsKIAogICAgIGlm
IChXZWJGcmFtZTo6TG9hZExpc3RlbmVyKiBsb2FkTGlzdGVuZXIgPSB0YXJnZXRXZWJGcmFtZS0+
bG9hZExpc3RlbmVyKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAwY2Q5MzM5MDQw
MzlmMTNmNGE5MzdlNTI0MTJhMTBmMGIyYTUwN2Y0Li43YTk1ODBiNmYzZDY5Zjk1MzMwZmIwNzhh
NDIyNWE4M2E1ZDIxOTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0xODMsMTYgKzE4
MywxNCBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Zm9jdXNlZEVsZW1lbnRDaGFuZ2VkKEVsZW1l
bnQqIGVsZW1lbnQpCiAgICAgaWYgKCFpbnB1dEVsZW1lbnQtPmlzVGV4dCgpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBXZWJGcmFtZUxvYWRlckNsaWVudCogd2ViRnJhbWVMb2FkZXJDbGllbnQg
PSB0b1dlYkZyYW1lTG9hZGVyQ2xpZW50KGVsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKS0+bG9h
ZGVyKCkuY2xpZW50KCkpOwotICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IHdlYkZyYW1lTG9hZGVy
Q2xpZW50ID8gd2ViRnJhbWVMb2FkZXJDbGllbnQtPndlYkZyYW1lKCkgOiAwOworICAgIFdlYkZy
YW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCplbGVtZW50LT5kb2N1bWVu
dCgpLmZyYW1lKCkpOwogICAgIEFTU0VSVCh3ZWJGcmFtZSk7CiAgICAgbV9wYWdlLT5pbmplY3Rl
ZEJ1bmRsZUZvcm1DbGllbnQoKS5kaWRGb2N1c1RleHRGaWVsZChtX3BhZ2UsIGlucHV0RWxlbWVu
dCwgd2ViRnJhbWUpOwogfQogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6Zm9jdXNlZEZyYW1lQ2hh
bmdlZChGcmFtZSogZnJhbWUpCiB7Ci0gICAgV2ViRnJhbWVMb2FkZXJDbGllbnQqIHdlYkZyYW1l
TG9hZGVyQ2xpZW50ID0gZnJhbWUgPyB0b1dlYkZyYW1lTG9hZGVyQ2xpZW50KGZyYW1lLT5sb2Fk
ZXIoKS5jbGllbnQoKSkgOiAwOwotICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IHdlYkZyYW1lTG9h
ZGVyQ2xpZW50ID8gd2ViRnJhbWVMb2FkZXJDbGllbnQtPndlYkZyYW1lKCkgOiAwOworICAgIFdl
YkZyYW1lKiB3ZWJGcmFtZSA9IGZyYW1lID8gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmZyYW1l
KSA6IG51bGxwdHI7CiAKICAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5wYXJlbnRQcm9jZXNzQ29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkZvY3VzZWRGcmFtZUNoYW5n
ZWQod2ViRnJhbWUgPyB3ZWJGcmFtZS0+ZnJhbWVJRCgpIDogMCksIG1fcGFnZS0+cGFnZUlEKCkp
OwogfQpAQCAtMzIxLDkgKzMxOSw3IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpjYW5SdW5CZWZv
cmVVbmxvYWRDb25maXJtUGFuZWwoKQogCiBib29sIFdlYkNocm9tZUNsaWVudDo6cnVuQmVmb3Jl
VW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUqIGZyYW1lKQog
ewotICAgIFdlYkZyYW1lTG9hZGVyQ2xpZW50KiB3ZWJGcmFtZUxvYWRlckNsaWVudCA9IHRvV2Vi
RnJhbWVMb2FkZXJDbGllbnQoZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpKTsKLSAgICBXZWJGcmFt
ZSogd2ViRnJhbWUgPSB3ZWJGcmFtZUxvYWRlckNsaWVudCA/IHdlYkZyYW1lTG9hZGVyQ2xpZW50
LT53ZWJGcmFtZSgpIDogMDsKLSAgICBBU1NFUlQod2ViRnJhbWUpOworICAgIFdlYkZyYW1lKiB3
ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSk7CiAKICAgICBib29sIHNo
b3VsZENsb3NlID0gZmFsc2U7CiAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQoKS5wYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5C
ZWZvcmVVbmxvYWRDb25maXJtUGFuZWwobWVzc2FnZSwgd2ViRnJhbWUtPmZyYW1lSUQoKSksIE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbDo6UmVwbHko
c2hvdWxkQ2xvc2UpLCBtX3BhZ2UtPnBhZ2VJRCgpKSkKQEAgLTM1Myw4ICszNDksNyBAQCB2b2lk
IFdlYkNocm9tZUNsaWVudDo6Y2xvc2VXaW5kb3dTb29uKCkKIAogdm9pZCBXZWJDaHJvbWVDbGll
bnQ6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgYWxlcnRU
ZXh0KQogewotICAgIFdlYkZyYW1lTG9hZGVyQ2xpZW50KiB3ZWJGcmFtZUxvYWRlckNsaWVudCA9
IHRvV2ViRnJhbWVMb2FkZXJDbGllbnQoZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpKTsKLSAgICBX
ZWJGcmFtZSogd2ViRnJhbWUgPSB3ZWJGcmFtZUxvYWRlckNsaWVudCA/IHdlYkZyYW1lTG9hZGVy
Q2xpZW50LT53ZWJGcmFtZSgpIDogMDsKKyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFt
ZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUpOwogICAgIEFTU0VSVCh3ZWJGcmFtZSk7CiAKICAgICAv
LyBOb3RpZnkgdGhlIGJ1bmRsZSBjbGllbnQuCkBAIC0zNjcsOCArMzYyLDcgQEAgdm9pZCBXZWJD
aHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmlu
ZyYgYWxlcnRUZXh0KQogCiBib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZp
cm0oRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAgV2ViRnJhbWVM
b2FkZXJDbGllbnQqIHdlYkZyYW1lTG9hZGVyQ2xpZW50ID0gdG9XZWJGcmFtZUxvYWRlckNsaWVu
dChmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkpOwotICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IHdl
YkZyYW1lTG9hZGVyQ2xpZW50ID8gd2ViRnJhbWVMb2FkZXJDbGllbnQtPndlYkZyYW1lKCkgOiAw
OworICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFt
ZSk7CiAgICAgQVNTRVJUKHdlYkZyYW1lKTsKIAogICAgIC8vIE5vdGlmeSB0aGUgYnVuZGxlIGNs
aWVudC4KQEAgLTM4NSw4ICszNzksNyBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNj
cmlwdENvbmZpcm0oRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAKIGJvb2wg
V2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lKiBmcmFtZSwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1
bHQpCiB7Ci0gICAgV2ViRnJhbWVMb2FkZXJDbGllbnQqIHdlYkZyYW1lTG9hZGVyQ2xpZW50ID0g
dG9XZWJGcmFtZUxvYWRlckNsaWVudChmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkpOwotICAgIFdl
YkZyYW1lKiB3ZWJGcmFtZSA9IHdlYkZyYW1lTG9hZGVyQ2xpZW50ID8gd2ViRnJhbWVMb2FkZXJD
bGllbnQtPndlYkZyYW1lKCkgOiAwOworICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1l
Ojpmcm9tQ29yZUZyYW1lKCpmcmFtZSk7CiAgICAgQVNTRVJUKHdlYkZyYW1lKTsKIAogICAgIC8v
IE5vdGlmeSB0aGUgYnVuZGxlIGNsaWVudC4KQEAgLTU5Nyw4ICs1OTAsNyBAQCB2b2lkIFdlYkNo
cm9tZUNsaWVudDo6c2V0VG9vbFRpcChjb25zdCBTdHJpbmcmIHRvb2xUaXAsIFRleHREaXJlY3Rp
b24pCiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpwcmludChGcmFtZSogZnJhbWUpCiB7Ci0gICAg
V2ViRnJhbWVMb2FkZXJDbGllbnQqIHdlYkZyYW1lTG9hZGVyQ2xpZW50ID0gdG9XZWJGcmFtZUxv
YWRlckNsaWVudChmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkpOwotICAgIFdlYkZyYW1lKiB3ZWJG
cmFtZSA9IHdlYkZyYW1lTG9hZGVyQ2xpZW50ID8gd2ViRnJhbWVMb2FkZXJDbGllbnQtPndlYkZy
YW1lKCkgOiAwOworICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZy
YW1lKCpmcmFtZSk7CiAgICAgQVNTRVJUKHdlYkZyYW1lKTsKIAogI2lmIFBMQVRGT1JNKEdUSykg
JiYgZGVmaW5lZChIQVZFX0dUS19VTklYX1BSSU5USU5HKQpAQCAtNjE3LDggKzYwOSw3IEBAIHZv
aWQgV2ViQ2hyb21lQ2xpZW50OjpwcmludChGcmFtZSogZnJhbWUpCiAjaWYgRU5BQkxFKFNRTF9E
QVRBQkFTRSkKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJh
bWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgRGF0YWJhc2VEZXRhaWxzIGRl
dGFpbHMpCiB7Ci0gICAgV2ViRnJhbWVMb2FkZXJDbGllbnQqIHdlYkZyYW1lTG9hZGVyQ2xpZW50
ID0gdG9XZWJGcmFtZUxvYWRlckNsaWVudChmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkpOwotICAg
IFdlYkZyYW1lKiB3ZWJGcmFtZSA9IHdlYkZyYW1lTG9hZGVyQ2xpZW50ID8gd2ViRnJhbWVMb2Fk
ZXJDbGllbnQtPndlYkZyYW1lKCkgOiAwOworICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZy
YW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSk7CiAgICAgQVNTRVJUKHdlYkZyYW1lKTsKICAgICAK
ICAgICBTZWN1cml0eU9yaWdpbiogb3JpZ2luID0gZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5
T3JpZ2luKCk7CkBAIC02OTAsOCArNjgxLDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bk9w
ZW5QYW5lbChGcmFtZSogZnJhbWUsIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+IHBycEZpbGUKIAog
ICAgIG1fcGFnZS0+c2V0QWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIoV2ViT3BlblBhbmVs
UmVzdWx0TGlzdGVuZXI6OmNyZWF0ZShtX3BhZ2UsIGZpbGVDaG9vc2VyLmdldCgpKSk7CiAKLSAg
ICBXZWJGcmFtZUxvYWRlckNsaWVudCogd2ViRnJhbWVMb2FkZXJDbGllbnQgPSB0b1dlYkZyYW1l
TG9hZGVyQ2xpZW50KGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKSk7Ci0gICAgV2ViRnJhbWUqIHdl
YkZyYW1lID0gd2ViRnJhbWVMb2FkZXJDbGllbnQgPyB3ZWJGcmFtZUxvYWRlckNsaWVudC0+d2Vi
RnJhbWUoKSA6IDA7CisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3Jl
RnJhbWUoKmZyYW1lKTsKICAgICBBU1NFUlQod2ViRnJhbWUpOwogCiAgICAgbV9wYWdlLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bk9wZW5QYW5lbCh3ZWJGcmFtZS0+ZnJhbWVJRCgp
LCBmaWxlQ2hvb3Nlci0+c2V0dGluZ3MoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCmluZGV4
IGIyMDBmNTU1ZTQwNTE4NWZmMTRiYzk5NzJiM2FkYzdjOGZhYzg4ODMuLjYwMmYxYjQ4OTFmZGI1
MjY1YTk4MTI0YTk0NjQ5YTgzMDgxNGUzZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKQEAg
LTI4LDcgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkVkaXRvclN0YXRlLmgiCiAjaW5jbHVkZSAiV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgiCi0jaW5jbHVkZSAiV2ViRnJhbWVMb2FkZXJDbGllbnQuaCIK
KyNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlICJX
ZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgpAQCAtMjk2
LDggKzI5Niw3IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojp0ZXh0RmllbGREaWRCZWdpbkVkaXRp
bmcoRWxlbWVudCogZWxlbWVudCkKICAgICBpZiAoIWlzSFRNTElucHV0RWxlbWVudChlbGVtZW50
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgV2ViRnJhbWVMb2FkZXJDbGllbnQqIHdlYkZyYW1l
TG9hZGVyQ2xpZW50ID0gdG9XZWJGcmFtZUxvYWRlckNsaWVudChlbGVtZW50LT5kb2N1bWVudCgp
LmZyYW1lKCktPmxvYWRlcigpLmNsaWVudCgpKTsKLSAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSB3
ZWJGcmFtZUxvYWRlckNsaWVudCA/IHdlYkZyYW1lTG9hZGVyQ2xpZW50LT53ZWJGcmFtZSgpIDog
MDsKKyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZWxl
bWVudC0+ZG9jdW1lbnQoKS5mcmFtZSgpKTsKICAgICBBU1NFUlQod2ViRnJhbWUpOwogCiAgICAg
bV9wYWdlLT5pbmplY3RlZEJ1bmRsZUZvcm1DbGllbnQoKS50ZXh0RmllbGREaWRCZWdpbkVkaXRp
bmcobV9wYWdlLCB0b0hUTUxJbnB1dEVsZW1lbnQoZWxlbWVudCksIHdlYkZyYW1lKTsKQEAgLTMw
OCw4ICszMDcsNyBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6dGV4dEZpZWxkRGlkRW5kRWRpdGlu
ZyhFbGVtZW50KiBlbGVtZW50KQogICAgIGlmICghaXNIVE1MSW5wdXRFbGVtZW50KGVsZW1lbnQp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBXZWJGcmFtZUxvYWRlckNsaWVudCogd2ViRnJhbWVM
b2FkZXJDbGllbnQgPSB0b1dlYkZyYW1lTG9hZGVyQ2xpZW50KGVsZW1lbnQtPmRvY3VtZW50KCku
ZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50KCkpOwotICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IHdl
YkZyYW1lTG9hZGVyQ2xpZW50ID8gd2ViRnJhbWVMb2FkZXJDbGllbnQtPndlYkZyYW1lKCkgOiAw
OworICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCplbGVt
ZW50LT5kb2N1bWVudCgpLmZyYW1lKCkpOwogICAgIEFTU0VSVCh3ZWJGcmFtZSk7CiAKICAgICBt
X3BhZ2UtPmluamVjdGVkQnVuZGxlRm9ybUNsaWVudCgpLnRleHRGaWVsZERpZEVuZEVkaXRpbmco
bV9wYWdlLCB0b0hUTUxJbnB1dEVsZW1lbnQoZWxlbWVudCksIHdlYkZyYW1lKTsKQEAgLTMyMyw4
ICszMjEsNyBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6dGV4dERpZENoYW5nZUluVGV4dEZpZWxk
KEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgaWYgKCFVc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvcjo6
cHJvY2Vzc2luZ1VzZXJUeXBpbmdHZXN0dXJlKCkgfHwgVXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0
b3I6OmZvY3VzZWRFbGVtZW50QXRHZXN0dXJlU3RhcnQoKSAhPSBlbGVtZW50KQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBXZWJGcmFtZUxvYWRlckNsaWVudCogd2ViRnJhbWVMb2FkZXJDbGllbnQg
PSB0b1dlYkZyYW1lTG9hZGVyQ2xpZW50KGVsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKS0+bG9h
ZGVyKCkuY2xpZW50KCkpOwotICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IHdlYkZyYW1lTG9hZGVy
Q2xpZW50ID8gd2ViRnJhbWVMb2FkZXJDbGllbnQtPndlYkZyYW1lKCkgOiAwOworICAgIFdlYkZy
YW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCplbGVtZW50LT5kb2N1bWVu
dCgpLmZyYW1lKCkpOwogICAgIEFTU0VSVCh3ZWJGcmFtZSk7CiAKICAgICBtX3BhZ2UtPmluamVj
dGVkQnVuZGxlRm9ybUNsaWVudCgpLnRleHREaWRDaGFuZ2VJblRleHRGaWVsZChtX3BhZ2UsIHRv
SFRNTElucHV0RWxlbWVudChlbGVtZW50KSwgd2ViRnJhbWUpOwpAQCAtMzM1LDggKzMzMiw3IEBA
IHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojp0ZXh0RGlkQ2hhbmdlSW5UZXh0QXJlYShFbGVtZW50KiBl
bGVtZW50KQogICAgIGlmICghaXNIVE1MVGV4dEFyZWFFbGVtZW50KGVsZW1lbnQpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBXZWJGcmFtZUxvYWRlckNsaWVudCogd2ViRnJhbWVMb2FkZXJDbGll
bnQgPSB0b1dlYkZyYW1lTG9hZGVyQ2xpZW50KGVsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKS0+
bG9hZGVyKCkuY2xpZW50KCkpOwotICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IHdlYkZyYW1lTG9h
ZGVyQ2xpZW50ID8gd2ViRnJhbWVMb2FkZXJDbGllbnQtPndlYkZyYW1lKCkgOiAwOworICAgIFdl
YkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCplbGVtZW50LT5kb2N1
bWVudCgpLmZyYW1lKCkpOwogICAgIEFTU0VSVCh3ZWJGcmFtZSk7CiAKICAgICBtX3BhZ2UtPmlu
amVjdGVkQnVuZGxlRm9ybUNsaWVudCgpLnRleHREaWRDaGFuZ2VJblRleHRBcmVhKG1fcGFnZSwg
dG9IVE1MVGV4dEFyZWFFbGVtZW50KGVsZW1lbnQpLCB3ZWJGcmFtZSk7CkBAIC0zNzMsOCArMzY5
LDcgQEAgYm9vbCBXZWJFZGl0b3JDbGllbnQ6OmRvVGV4dEZpZWxkQ29tbWFuZEZyb21FdmVudChF
bGVtZW50KiBlbGVtZW50LCBLZXlib2FyZEV2ZW4KICAgICBpZiAoIWdldEFjdGlvblR5cGVGb3JL
ZXlFdmVudChldmVudCwgYWN0aW9uVHlwZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAg
IFdlYkZyYW1lTG9hZGVyQ2xpZW50KiB3ZWJGcmFtZUxvYWRlckNsaWVudCA9IHRvV2ViRnJhbWVM
b2FkZXJDbGllbnQoZWxlbWVudC0+ZG9jdW1lbnQoKS5mcmFtZSgpLT5sb2FkZXIoKS5jbGllbnQo
KSk7Ci0gICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gd2ViRnJhbWVMb2FkZXJDbGllbnQgPyB3ZWJG
cmFtZUxvYWRlckNsaWVudC0+d2ViRnJhbWUoKSA6IDA7CisgICAgV2ViRnJhbWUqIHdlYkZyYW1l
ID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmVsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKSk7
CiAgICAgQVNTRVJUKHdlYkZyYW1lKTsKIAogICAgIHJldHVybiBtX3BhZ2UtPmluamVjdGVkQnVu
ZGxlRm9ybUNsaWVudCgpLnNob3VsZFBlcmZvcm1BY3Rpb25JblRleHRGaWVsZChtX3BhZ2UsIHRv
SFRNTElucHV0RWxlbWVudChlbGVtZW50KSwgYWN0aW9uVHlwZSwgd2ViRnJhbWUpOwpAQCAtMzg1
LDggKzM4MCw3IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojp0ZXh0V2lsbEJlRGVsZXRlZEluVGV4
dEZpZWxkKEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgaWYgKCFpc0hUTUxJbnB1dEVsZW1lbnQoZWxl
bWVudCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdlYkZyYW1lTG9hZGVyQ2xpZW50KiB3ZWJG
cmFtZUxvYWRlckNsaWVudCA9IHRvV2ViRnJhbWVMb2FkZXJDbGllbnQoZWxlbWVudC0+ZG9jdW1l
bnQoKS5mcmFtZSgpLT5sb2FkZXIoKS5jbGllbnQoKSk7Ci0gICAgV2ViRnJhbWUqIHdlYkZyYW1l
ID0gd2ViRnJhbWVMb2FkZXJDbGllbnQgPyB3ZWJGcmFtZUxvYWRlckNsaWVudC0+d2ViRnJhbWUo
KSA6IDA7CisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUo
KmVsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKSk7CiAgICAgQVNTRVJUKHdlYkZyYW1lKTsKIAog
ICAgIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVGb3JtQ2xpZW50KCkuc2hvdWxkUGVyZm9ybUFjdGlv
bkluVGV4dEZpZWxkKG1fcGFnZSwgdG9IVE1MSW5wdXRFbGVtZW50KGVsZW1lbnQpLCBXS0lucHV0
RmllbGRBY3Rpb25UeXBlSW5zZXJ0RGVsZXRlLCB3ZWJGcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwCmluZGV4IDJjODkwN2JkM2YxMTM5N2VjYWI0NDQ1MGRmYWQ5ODg5NmJl
MDcyNDQuLjgzMDE2OTU3OWVjMTVhMmRlZDVkMDY4M2IyNWI0NTg4NWQwMTc4MWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC03MjgsMTAgKzcyOCw4IEBAIHZvaWQgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
bihjb25zdCBOYXZpZ2F0CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTmF2aWdhdGlvblR5cGVG
b3JtU3VibWl0dGVkOgogICAgIGNhc2UgTmF2aWdhdGlvblR5cGVGb3JtUmVzdWJtaXR0ZWQ6Ci0g
ICAgICAgIGlmIChmb3JtU3RhdGUpIHsKLSAgICAgICAgICAgIGlmIChXZWJGcmFtZUxvYWRlckNs
aWVudCogb3JpZ2luYXRpbmdGcmFtZUxvYWRlckNsaWVudCA9IHRvV2ViRnJhbWVMb2FkZXJDbGll
bnQoZm9ybVN0YXRlLT5zb3VyY2VEb2N1bWVudCgpLT5mcmFtZSgpLT5sb2FkZXIoKS5jbGllbnQo
KSkpCi0gICAgICAgICAgICAgICAgb3JpZ2luYXRpbmdGcmFtZSA9IG9yaWdpbmF0aW5nRnJhbWVM
b2FkZXJDbGllbnQtPndlYkZyYW1lKCk7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKGZvcm1TdGF0
ZSkKKyAgICAgICAgICAgIG9yaWdpbmF0aW5nRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFt
ZSgqZm9ybVN0YXRlLT5zb3VyY2VEb2N1bWVudCgpLT5mcmFtZSgpKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBOYXZpZ2F0aW9uVHlwZUJhY2tGb3J3YXJkOgogICAgIGNhc2UgTmF2aWdhdGlv
blR5cGVSZWxvYWQ6CkBAIC03ODIsOCArNzgwLDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hXaWxsU2VuZFN1Ym1pdEV2ZW50KFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiBwcnAK
ICAgICBSZWZQdHI8Rm9ybVN0YXRlPiBmb3JtU3RhdGUgPSBwcnBGb3JtU3RhdGU7CiAgICAgSFRN
TEZvcm1FbGVtZW50KiBmb3JtID0gZm9ybVN0YXRlLT5mb3JtKCk7CiAKLSAgICBXZWJGcmFtZUxv
YWRlckNsaWVudCogd2ViRnJhbWVMb2FkZXJDbGllbnQgPSB0b1dlYkZyYW1lTG9hZGVyQ2xpZW50
KGZvcm1TdGF0ZS0+c291cmNlRG9jdW1lbnQoKS0+ZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50KCkp
OwotICAgIFdlYkZyYW1lKiBzb3VyY2VGcmFtZSA9IHdlYkZyYW1lTG9hZGVyQ2xpZW50ID8gd2Vi
RnJhbWVMb2FkZXJDbGllbnQtPndlYkZyYW1lKCkgOiAwOworICAgIFdlYkZyYW1lKiBzb3VyY2VG
cmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmb3JtU3RhdGUtPnNvdXJjZURvY3VtZW50
KCktPmZyYW1lKCkpOwogICAgIEFTU0VSVChzb3VyY2VGcmFtZSk7CiAKICAgICB3ZWJQYWdlLT5p
bmplY3RlZEJ1bmRsZUZvcm1DbGllbnQoKS53aWxsU2VuZFN1Ym1pdEV2ZW50KHdlYlBhZ2UsIGZv
cm0sIG1fZnJhbWUsIHNvdXJjZUZyYW1lLCBmb3JtU3RhdGUtPnRleHRGaWVsZFZhbHVlcygpKTsK
QEAgLTgwMCw4ICs3OTcsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdp
bGxTdWJtaXRGb3JtKFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiBwcnBGb3JtUwogICAgIAogICAgIEhU
TUxGb3JtRWxlbWVudCogZm9ybSA9IGZvcm1TdGF0ZS0+Zm9ybSgpOwogCi0gICAgV2ViRnJhbWVM
b2FkZXJDbGllbnQqIHdlYkZyYW1lTG9hZGVyQ2xpZW50ID0gdG9XZWJGcmFtZUxvYWRlckNsaWVu
dChmb3JtU3RhdGUtPnNvdXJjZURvY3VtZW50KCktPmZyYW1lKCktPmxvYWRlcigpLmNsaWVudCgp
KTsKLSAgICBXZWJGcmFtZSogc291cmNlRnJhbWUgPSB3ZWJGcmFtZUxvYWRlckNsaWVudCA/IHdl
YkZyYW1lTG9hZGVyQ2xpZW50LT53ZWJGcmFtZSgpIDogMDsKKyAgICBXZWJGcmFtZSogc291cmNl
RnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZm9ybVN0YXRlLT5zb3VyY2VEb2N1bWVu
dCgpLT5mcmFtZSgpKTsKICAgICBBU1NFUlQoc291cmNlRnJhbWUpOwogCiAgICAgY29uc3QgVmVj
dG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+JiB2YWx1ZXMgPSBmb3JtU3RhdGUtPnRleHRG
aWVsZFZhbHVlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJG
cmFtZS5jcHAKaW5kZXggMTMxNWExMzc3MTYyYmI5ZmJhNmUyY2ExZWFjOWY2NTdhMjJlNWQ3ZS4u
ZjQxOGQwOTUwNDBjZGEwYmM3MmQ4M2RmYTUzMjFhOTE3YmMwNzUwZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCkBAIC0xNzgsNiArMTc4LDE1
IEBAIFdlYlBhZ2UqIFdlYkZyYW1lOjpwYWdlKCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAor
V2ViRnJhbWUqIFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKEZyYW1lJiBmcmFtZSkKK3sKKyAgICBh
dXRvKiB3ZWJGcmFtZUxvYWRlckNsaWVudCA9IHRvV2ViRnJhbWVMb2FkZXJDbGllbnQoZnJhbWUu
bG9hZGVyKCkuY2xpZW50KCkpOworICAgIGlmICghd2ViRnJhbWVMb2FkZXJDbGllbnQpCisgICAg
ICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0dXJuIHdlYkZyYW1lTG9hZGVyQ2xpZW50LT53
ZWJGcmFtZSgpOworfQorCiB2b2lkIFdlYkZyYW1lOjppbnZhbGlkYXRlKCkKIHsKICAgICBXZWJQ
cm9jZXNzOjpzaGFyZWQoKS5yZW1vdmVXZWJGcmFtZShtX2ZyYW1lSUQpOwpAQCAtMzA2LDggKzMx
NSw3IEBAIFN0cmluZyBXZWJGcmFtZTo6Y29udGVudHNBc1N0cmluZygpIGNvbnN0CiAgICAgICAg
ICAgICBpZiAoIWJ1aWxkZXIuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKCcgJyk7CiAKLSAgICAgICAgICAgIFdlYkZyYW1lTG9hZGVyQ2xpZW50KiB3ZWJGcmFtZUxv
YWRlckNsaWVudCA9IHRvV2ViRnJhbWVMb2FkZXJDbGllbnQoY2hpbGQtPmxvYWRlcigpLmNsaWVu
dCgpKTsKLSAgICAgICAgICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IHdlYkZyYW1lTG9hZGVyQ2xp
ZW50ID8gd2ViRnJhbWVMb2FkZXJDbGllbnQtPndlYkZyYW1lKCkgOiAwOworICAgICAgICAgICAg
V2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmNoaWxkKTsKICAg
ICAgICAgICAgIEFTU0VSVCh3ZWJGcmFtZSk7CiAKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KHdlYkZyYW1lLT5jb250ZW50c0FzU3RyaW5nKCkpOwpAQCAtNDA5LDggKzQxNyw3IEBAIFdlYkZy
YW1lKiBXZWJGcmFtZTo6cGFyZW50RnJhbWUoKSBjb25zdAogICAgIGlmICghbV9jb3JlRnJhbWUg
fHwgIW1fY29yZUZyYW1lLT5vd25lckVsZW1lbnQoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAg
ICBXZWJGcmFtZUxvYWRlckNsaWVudCogd2ViRnJhbWVMb2FkZXJDbGllbnQgPSB0b1dlYkZyYW1l
TG9hZGVyQ2xpZW50KG1fY29yZUZyYW1lLT5vd25lckVsZW1lbnQoKS0+ZG9jdW1lbnQoKS5mcmFt
ZSgpLT5sb2FkZXIoKS5jbGllbnQoKSk7Ci0gICAgcmV0dXJuIHdlYkZyYW1lTG9hZGVyQ2xpZW50
ID8gd2ViRnJhbWVMb2FkZXJDbGllbnQtPndlYkZyYW1lKCkgOiAwOworICAgIHJldHVybiBXZWJG
cmFtZTo6ZnJvbUNvcmVGcmFtZSgqbV9jb3JlRnJhbWUtPm93bmVyRWxlbWVudCgpLT5kb2N1bWVu
dCgpLmZyYW1lKCkpOwogfQogCiBQYXNzUmVmUHRyPEFQSTo6QXJyYXk+IFdlYkZyYW1lOjpjaGls
ZEZyYW1lcygpCkBAIC00MjYsOCArNDMzLDcgQEAgUGFzc1JlZlB0cjxBUEk6OkFycmF5PiBXZWJG
cmFtZTo6Y2hpbGRGcmFtZXMoKQogICAgIHZlY3Rvci5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHNp
emUpOwogCiAgICAgZm9yIChGcmFtZSogY2hpbGQgPSBtX2NvcmVGcmFtZS0+dHJlZSgpLmZpcnN0
Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPnRyZWUoKS5uZXh0U2libGluZygpKSB7Ci0g
ICAgICAgIFdlYkZyYW1lTG9hZGVyQ2xpZW50KiB3ZWJGcmFtZUxvYWRlckNsaWVudCA9IHRvV2Vi
RnJhbWVMb2FkZXJDbGllbnQoY2hpbGQtPmxvYWRlcigpLmNsaWVudCgpKTsKLSAgICAgICAgV2Vi
RnJhbWUqIHdlYkZyYW1lID0gd2ViRnJhbWVMb2FkZXJDbGllbnQgPyB3ZWJGcmFtZUxvYWRlckNs
aWVudC0+d2ViRnJhbWUoKSA6IDA7CisgICAgICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZy
YW1lOjpmcm9tQ29yZUZyYW1lKCpjaGlsZCk7CiAgICAgICAgIEFTU0VSVCh3ZWJGcmFtZSk7CiAg
ICAgICAgIHZlY3Rvci51bmNoZWNrZWRBcHBlbmQod2ViRnJhbWUpOwogICAgIH0KQEAgLTYyOSwx
MCArNjM1LDggQEAgV2ViRnJhbWUqIFdlYkZyYW1lOjpmcmFtZUZvckNvbnRleHQoSlNDb250ZXh0
UmVmIGNvbnRleHQpCiAgICAgaWYgKHN0cmNtcChnbG9iYWxPYmplY3RPYmotPmNsYXNzSW5mbygp
LT5jbGFzc05hbWUsICJKU0RPTVdpbmRvd1NoZWxsIikgIT0gMCkKICAgICAgICAgcmV0dXJuIDA7
CiAKLSAgICBGcmFtZSogY29yZUZyYW1lID0gc3RhdGljX2Nhc3Q8SlNET01XaW5kb3dTaGVsbCo+
KGdsb2JhbE9iamVjdE9iaiktPndpbmRvdygpLT5pbXBsKCkuZnJhbWUoKTsKLQotICAgIFdlYkZy
YW1lTG9hZGVyQ2xpZW50KiB3ZWJGcmFtZUxvYWRlckNsaWVudCA9IHRvV2ViRnJhbWVMb2FkZXJD
bGllbnQoY29yZUZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKSk7Ci0gICAgcmV0dXJuIHdlYkZyYW1l
TG9hZGVyQ2xpZW50ID8gd2ViRnJhbWVMb2FkZXJDbGllbnQtPndlYkZyYW1lKCkgOiAwOworICAg
IEZyYW1lKiBmcmFtZSA9IHN0YXRpY19jYXN0PEpTRE9NV2luZG93U2hlbGwqPihnbG9iYWxPYmpl
Y3RPYmopLT53aW5kb3coKS0+aW1wbCgpLmZyYW1lKCk7CisgICAgcmV0dXJuIFdlYkZyYW1lOjpm
cm9tQ29yZUZyYW1lKCpmcmFtZSk7CiB9CiAKIEpTVmFsdWVSZWYgV2ViRnJhbWU6OmpzV3JhcHBl
ckZvcldvcmxkKEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZSogbm9kZUhhbmRsZSwgSW5qZWN0ZWRC
dW5kbGVTY3JpcHRXb3JsZCogd29ybGQpCkBAIC03NDEsOCArNzQ1LDcgQEAgUmV0YWluUHRyPENG
RGF0YVJlZj4gV2ViRnJhbWU6OndlYkFyY2hpdmVEYXRhKEZyYW1lRmlsdGVyRnVuY3Rpb24gY2Fs
bGJhY2ssIHZvaWQKICAgICAgICAgaWYgKCFjYWxsYmFjaykKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogCi0gICAgICAgIFdlYkZyYW1lTG9hZGVyQ2xpZW50KiB3ZWJGcmFtZUxvYWRlckNsaWVu
dCA9IHRvV2ViRnJhbWVMb2FkZXJDbGllbnQoZnJhbWUubG9hZGVyKCkuY2xpZW50KCkpOwotICAg
ICAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSB3ZWJGcmFtZUxvYWRlckNsaWVudCA/IHdlYkZyYW1l
TG9hZGVyQ2xpZW50LT53ZWJGcmFtZSgpIDogMDsKKyAgICAgICAgV2ViRnJhbWUqIHdlYkZyYW1l
ID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoZnJhbWUpOwogICAgICAgICBBU1NFUlQod2ViRnJh
bWUpOwogCiAgICAgICAgIHJldHVybiBjYWxsYmFjayh0b0FQSSh0aGlzKSwgdG9BUEkod2ViRnJh
bWUpLCBjb250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJGcmFtZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZy
YW1lLmgKaW5kZXggY2U2MWU4ZDZhZDU1MDI4YzQ2Mjg0NTNkN2E5NjFkOGZhMWVkMTg0My4uNzcx
OTViOWIwMjYwNzU5Mjg4NTkwNGRjOWUzZTM5YjA3ZWRlZGE2NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKQEAgLTY4LDYgKzY4LDggQEAgcHVibGlj
OgogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwogCiAgICAgV2ViUGFnZSogcGFnZSgpIGNvbnN0Owor
CisgICAgc3RhdGljIFdlYkZyYW1lKiBmcm9tQ29yZUZyYW1lKFdlYkNvcmU6OkZyYW1lJik7CiAg
ICAgV2ViQ29yZTo6RnJhbWUqIGNvcmVGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29yZUZyYW1l
OyB9CiAKICAgICB1aW50NjRfdCBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9
Cg==
</data>
<flag name="review"
          id="252043"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>