<?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>175317</bug_id>
          
          <creation_ts>2017-08-08 05:18:06 -0700</creation_ts>
          <short_desc>[TexMap] Drop GraphicsContext3D usage from BitmapTextureGL</short_desc>
          <delta_ts>2017-08-10 00:20:23 -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>WebKitGTK</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>174776</dependson>
          <blocked>174860</blocked>
    
    <blocked>175319</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>magomez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1336434</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-08-08 05:18:06 -0700</bug_when>
    <thetext>[TexMap] Drop GraphicsContext3D usage from BitmapTextureGL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1336435</commentid>
    <comment_count>1</comment_count>
      <attachid>317561</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-08-08 05:19:25 -0700</bug_when>
    <thetext>Created attachment 317561
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1336457</commentid>
    <comment_count>2</comment_count>
      <attachid>317565</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-08-08 06:42:55 -0700</bug_when>
    <thetext>Created attachment 317565
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337328</commentid>
    <comment_count>3</comment_count>
      <attachid>317565</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-08-10 00:20:19 -0700</bug_when>
    <thetext>Comment on attachment 317565
Patch

Clearing flags on attachment: 317565

Committed r220519: &lt;http://trac.webkit.org/changeset/220519&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337329</commentid>
    <comment_count>4</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-08-10 00:20:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>317561</attachid>
            <date>2017-08-08 05:19:25 -0700</date>
            <delta_ts>2017-08-08 06:42:52 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-175317-20170808141923.patch</filename>
            <type>text/plain</type>
            <size>23424</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIwMzk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTdiZmRkODU4YzZkM2Jl
YWU5MjQyM2IzMjJjZDI2Zjk0ZmYwZGRkOC4uY2JiYTlhMzM0MDMyNzZmYmFkZjU4Y2JmNzgyYjgw
YWQwNDk0NjkwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM4IEBACiAyMDE3LTA4LTA4ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAorICAgICAgICBbVGV4TWFwXSBEcm9w
IEdyYXBoaWNzQ29udGV4dDNEIHVzYWdlIGZyb20gQml0bWFwVGV4dHVyZUdMCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzUzMTcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMh
KS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lckJhc2U6OnB1c2hUZXh0dXJlVG9Db21wb3NpdG9yKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkJpdG1hcFRleHR1cmVHTDo6Qml0bWFwVGV4dHVyZUdMKToKKyAgICAgICAgKFdlYkNv
cmU6OkJpdG1hcFRleHR1cmVHTDo6ZGlkUmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFw
VGV4dHVyZUdMOjp1cGRhdGVDb250ZW50c05vU3dpenpsZSk6CisgICAgICAgIChXZWJDb3JlOjpC
aXRtYXBUZXh0dXJlR0w6OnVwZGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1h
cFRleHR1cmVHTDo6aW5pdGlhbGl6ZVN0ZW5jaWwpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFw
VGV4dHVyZUdMOjppbml0aWFsaXplRGVwdGhCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6Qml0
bWFwVGV4dHVyZUdMOjpjbGVhcklmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRl
eHR1cmVHTDo6Y3JlYXRlRmJvSWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4
dHVyZUdMOjpiaW5kQXNTdXJmYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVH
TDo6fkJpdG1hcFRleHR1cmVHTCk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlR0w6
OmNvcHlGcm9tRXh0ZXJuYWxUZXh0dXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmg6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJl
R0w6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlR0w6OnRleHR1cmVU
YXJnZXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUdMOjppbnRlcm5h
bEZvcm1hdCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1h
cFRleHR1cmVQb29sLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVQb29sOjpj
cmVhdGVUZXh0dXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlckdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJHTDo6YmluZFN1
cmZhY2UpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckdMOjpjcmVhdGVUZXh0dXJl
KToKKworMjAxNy0wOC0wOCAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CisK
ICAgICAgICAgW1RleE1hcF0gSXNvbGF0ZSB0aGUgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQ
cm94eVByb3ZpZGVyIGNsYXNzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzUzMTYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lckJhc2UuY3BwCmluZGV4IGU4ODMzNWM3YWE5NjJmMzU5YTIwMzFjZWM1YTI3
NWU2Mjg5YWM2NTEuLmQ5Yjc2MmIyNjMxN2JkMTJiN2JlNDRlMTJjODdhYTgwYjc5ZmEzZTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5j
cHAKQEAgLTYyMyw3ICs2MjMsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJh
c2U6OnB1c2hUZXh0dXJlVG9Db21wb3NpdG9yKCkKICAgICAgICAgVGV4dHVyZU1hcHBlckNvbnRl
eHRBdHRyaWJ1dGVzIGNvbnRleHRBdHRyaWJ1dGVzOwogICAgICAgICBjb250ZXh0QXR0cmlidXRl
cy5pbml0aWFsaXplKCk7CiAKLSAgICAgICAgYXV0byB0ZXh0dXJlID0gQml0bWFwVGV4dHVyZUdM
OjpjcmVhdGUoY29udGV4dEF0dHJpYnV0ZXMsICptX2NvbnRleHQzRCk7CisgICAgICAgIGF1dG8g
dGV4dHVyZSA9IEJpdG1hcFRleHR1cmVHTDo6Y3JlYXRlKGNvbnRleHRBdHRyaWJ1dGVzKTsKICAg
ICAgICAgdGV4dHVyZS0+cmVzZXQoc2l6ZSwgR1NUX1ZJREVPX0lORk9fSEFTX0FMUEhBKCZ2aWRl
b0luZm8pID8gQml0bWFwVGV4dHVyZTo6U3VwcG9ydHNBbHBoYSA6IEJpdG1hcFRleHR1cmU6Ok5v
RmxhZyk7CiAgICAgICAgIGJ1ZmZlciA9IHN0ZDo6bWFrZV91bmlxdWU8VGV4dHVyZU1hcHBlclBs
YXRmb3JtTGF5ZXJCdWZmZXI+KFdURk1vdmUodGV4dHVyZSkpOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1
cmVHTC5jcHAKaW5kZXggY2Y1NmViMjdlZDhiNGZhNzBjODk3MWExZmY5YjM2NzU0NTc0OTJlOC4u
ZWYyOTIyZDQ4MjBkNGJjYjI1ODljMTA2NTZjNGU2YjQwNTE0NjU1YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1
cmVHTC5jcHAKQEAgLTI2LDcgKzI2LDYgQEAKIAogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5oIgog
I2luY2x1ZGUgIkZpbHRlck9wZXJhdGlvbnMuaCIKLSNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQu
aCIKICNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIkxlbmd0aEZ1bmN0aW9ucy5oIgogI2lu
Y2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCkBAIC01NywyNyArNTYsMjcgQEAgQml0bWFwVGV4dHVy
ZUdMKiB0b0JpdG1hcFRleHR1cmVHTChCaXRtYXBUZXh0dXJlKiB0ZXh0dXJlKQogICAgIHJldHVy
biBzdGF0aWNfY2FzdDxCaXRtYXBUZXh0dXJlR0wqPih0ZXh0dXJlKTsKIH0KIAotQml0bWFwVGV4
dHVyZUdMOjpCaXRtYXBUZXh0dXJlR0woY29uc3QgVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1
dGVzJiBjb250ZXh0QXR0cmlidXRlcywgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiYmIGNvbnRl
eHQzRCwgY29uc3QgRmxhZ3MgZmxhZ3MsIEdDM0RpbnQgaW50ZXJuYWxGb3JtYXQpCitCaXRtYXBU
ZXh0dXJlR0w6OkJpdG1hcFRleHR1cmVHTChjb25zdCBUZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJp
YnV0ZXMmIGNvbnRleHRBdHRyaWJ1dGVzLCBjb25zdCBGbGFncyBmbGFncywgR0xpbnQgaW50ZXJu
YWxGb3JtYXQpCiAgICAgOiBtX2NvbnRleHRBdHRyaWJ1dGVzKGNvbnRleHRBdHRyaWJ1dGVzKQot
ICAgICwgbV9jb250ZXh0M0QoV1RGTW92ZShjb250ZXh0M0QpKQorICAgICwgbV9jb250ZXh0M0Qo
R3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZUZvckN1cnJlbnRHTENvbnRleHQoKSkKIHsKLSAgICBp
ZiAoaW50ZXJuYWxGb3JtYXQgIT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRPTlRfQ0FSRSkgeworICAg
IGlmIChpbnRlcm5hbEZvcm1hdCAhPSBHTF9ET05UX0NBUkUpIHsKICAgICAgICAgbV9pbnRlcm5h
bEZvcm1hdCA9IG1fZm9ybWF0ID0gaW50ZXJuYWxGb3JtYXQ7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKICAgICBpZiAoZmxhZ3MgJiBGQk9BdHRhY2htZW50KQotICAgICAgICBtX2ludGVybmFs
Rm9ybWF0ID0gbV9mb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQTsKKyAgICAgICAgbV9p
bnRlcm5hbEZvcm1hdCA9IG1fZm9ybWF0ID0gR0xfUkdCQTsKICAgICBlbHNlIHsKICAgICAgICAg
Ly8gSWYgR0xfRVhUX3RleHR1cmVfZm9ybWF0X0JHUkE4ODg4IGlzIHN1cHBvcnRlZCBpbiB0aGUg
T3BlbkdMRVMKICAgICAgICAgLy8gaW50ZXJuYWwgYW5kIGV4dGVybmFsIGZvcm1hdHMgbmVlZCB0
byBiZSBCR1JBCi0gICAgICAgIG1faW50ZXJuYWxGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6
UkdCQTsKLSAgICAgICAgbV9mb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6QkdSQTsKKyAgICAg
ICAgbV9pbnRlcm5hbEZvcm1hdCA9IEdMX1JHQkE7CisgICAgICAgIG1fZm9ybWF0ID0gR0xfQkdS
QTsKICAgICAgICAgaWYgKG1fY29udGV4dEF0dHJpYnV0ZXMuaXNHTEVTMkNvbXBsaWFudCkgewog
ICAgICAgICAgICAgaWYgKG1fY29udGV4dEF0dHJpYnV0ZXMuc3VwcG9ydHNCR1JBODg4OCkKLSAg
ICAgICAgICAgICAgICBtX2ludGVybmFsRm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkJHUkE7
CisgICAgICAgICAgICAgICAgbV9pbnRlcm5hbEZvcm1hdCA9IEdMX0JHUkE7CiAgICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgICAgbV9mb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6UkdC
QTsKKyAgICAgICAgICAgICAgICBtX2Zvcm1hdCA9IEdMX1JHQkE7CiAgICAgICAgIH0KICAgICB9
CiB9CkBAIC05NSw0OCArOTQsNDggQEAgc3RhdGljIHZvaWQgc3dpenpsZUJHUkFUb1JHQkEodWlu
dDMyX3QqIGRhdGEsIGNvbnN0IEludFJlY3QmIHJlY3QsIGludCBzdHJpZGUgPQogdm9pZCBCaXRt
YXBUZXh0dXJlR0w6OmRpZFJlc2V0KCkKIHsKICAgICBpZiAoIW1faWQpCi0gICAgICAgIG1faWQg
PSBtX2NvbnRleHQzRC0+Y3JlYXRlVGV4dHVyZSgpOworICAgICAgICBnbEdlblRleHR1cmVzKDEs
ICZtX2lkKTsKIAogICAgIG1fc2hvdWxkQ2xlYXIgPSB0cnVlOwogICAgIGlmIChtX3RleHR1cmVT
aXplID09IGNvbnRlbnRTaXplKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fdGV4dHVyZVNp
emUgPSBjb250ZW50U2l6ZSgpOwotICAgIG1fY29udGV4dDNELT5iaW5kVGV4dHVyZShHcmFwaGlj
c0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgbV9pZCk7Ci0gICAgbV9jb250ZXh0M0QtPnRleFBhcmFt
ZXRlcmkoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpU
RVhUVVJFX01JTl9GSUxURVIsIEdyYXBoaWNzQ29udGV4dDNEOjpMSU5FQVIpOwotICAgIG1fY29u
dGV4dDNELT50ZXhQYXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFw
aGljc0NvbnRleHQzRDo6VEVYVFVSRV9NQUdfRklMVEVSLCBHcmFwaGljc0NvbnRleHQzRDo6TElO
RUFSKTsKLSAgICBtX2NvbnRleHQzRC0+dGV4UGFyYW1ldGVyaShHcmFwaGljc0NvbnRleHQzRDo6
VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9TLCBHcmFwaGljc0Nv
bnRleHQzRDo6Q0xBTVBfVE9fRURHRSk7Ci0gICAgbV9jb250ZXh0M0QtPnRleFBhcmFtZXRlcmko
R3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJF
X1dSQVBfVCwgR3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VER0UpOworICAgIGdsQmluZFRl
eHR1cmUoR0xfVEVYVFVSRV8yRCwgbV9pZCk7CisgICAgZ2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRV
UkVfMkQsIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xfTElORUFSKTsKKyAgICBnbFRleFBhcmFt
ZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9NQUdfRklMVEVSLCBHTF9MSU5FQVIpOwor
ICAgIGdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX1dSQVBfUywgR0xf
Q0xBTVBfVE9fRURHRSk7CisgICAgZ2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RF
WFRVUkVfV1JBUF9ULCBHTF9DTEFNUF9UT19FREdFKTsKIAotICAgIG1fY29udGV4dDNELT50ZXhJ
bWFnZTJERGlyZWN0KEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCAwLCBtX2ludGVybmFs
Rm9ybWF0LCBtX3RleHR1cmVTaXplLndpZHRoKCksIG1fdGV4dHVyZVNpemUuaGVpZ2h0KCksIDAs
IG1fZm9ybWF0LCBtX3R5cGUsIDApOworICAgIGdsVGV4SW1hZ2UyRChHTF9URVhUVVJFXzJELCAw
LCBtX2ludGVybmFsRm9ybWF0LCBtX3RleHR1cmVTaXplLndpZHRoKCksIG1fdGV4dHVyZVNpemUu
aGVpZ2h0KCksIDAsIG1fZm9ybWF0LCBtX3R5cGUsIDApOwogfQogCi12b2lkIEJpdG1hcFRleHR1
cmVHTDo6dXBkYXRlQ29udGVudHNOb1N3aXp6bGUoY29uc3Qgdm9pZCogc3JjRGF0YSwgY29uc3Qg
SW50UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgSW50UG9pbnQmIHNvdXJjZU9mZnNldCwgaW50IGJ5
dGVzUGVyTGluZSwgdW5zaWduZWQgYnl0ZXNQZXJQaXhlbCwgUGxhdGZvcm0zRE9iamVjdCBnbEZv
cm1hdCkKK3ZvaWQgQml0bWFwVGV4dHVyZUdMOjp1cGRhdGVDb250ZW50c05vU3dpenpsZShjb25z
dCB2b2lkKiBzcmNEYXRhLCBjb25zdCBJbnRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBJbnRQb2lu
dCYgc291cmNlT2Zmc2V0LCBpbnQgYnl0ZXNQZXJMaW5lLCB1bnNpZ25lZCBieXRlc1BlclBpeGVs
LCBHTHVpbnQgZ2xGb3JtYXQpCiB7CiAgICAgLy8gRm9yIEVTIGRyaXZlcnMgdGhhdCBkb24ndCBz
dXBwb3J0IHN1Yi1pbWFnZXMuCiAgICAgYm9vbCBjb250ZXh0U3VwcG9ydHNVbnBhY2tTdWJpbWFn
ZSA9IG1fY29udGV4dEF0dHJpYnV0ZXMuc3VwcG9ydHNVbnBhY2tTdWJpbWFnZTsKIAotICAgIG1f
Y29udGV4dDNELT5iaW5kVGV4dHVyZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgbV9p
ZCk7CisgICAgZ2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCBtX2lkKTsKIAogICAgIGlmIChj
b250ZXh0U3VwcG9ydHNVbnBhY2tTdWJpbWFnZSkgewogICAgICAgICAvLyBVc2UgdGhlIE9wZW5H
TCBzdWItaW1hZ2UgZXh0ZW5zaW9uLCBub3cgdGhhdCB3ZSBrbm93IGl0J3MgYXZhaWxhYmxlLgot
ICAgICAgICBtX2NvbnRleHQzRC0+cGl4ZWxTdG9yZWkoR3JhcGhpY3NDb250ZXh0M0Q6OlVOUEFD
S19ST1dfTEVOR1RILCBieXRlc1BlckxpbmUgLyBieXRlc1BlclBpeGVsKTsKLSAgICAgICAgbV9j
b250ZXh0M0QtPnBpeGVsU3RvcmVpKEdyYXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tfU0tJUF9ST1dT
LCBzb3VyY2VPZmZzZXQueSgpKTsKLSAgICAgICAgbV9jb250ZXh0M0QtPnBpeGVsU3RvcmVpKEdy
YXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tfU0tJUF9QSVhFTFMsIHNvdXJjZU9mZnNldC54KCkpOwor
ICAgICAgICBnbFBpeGVsU3RvcmVpKEdMX1VOUEFDS19ST1dfTEVOR1RILCBieXRlc1BlckxpbmUg
LyBieXRlc1BlclBpeGVsKTsKKyAgICAgICAgZ2xQaXhlbFN0b3JlaShHTF9VTlBBQ0tfU0tJUF9S
T1dTLCBzb3VyY2VPZmZzZXQueSgpKTsKKyAgICAgICAgZ2xQaXhlbFN0b3JlaShHTF9VTlBBQ0tf
U0tJUF9QSVhFTFMsIHNvdXJjZU9mZnNldC54KCkpOwogICAgIH0KIAotICAgIG1fY29udGV4dDNE
LT50ZXhTdWJJbWFnZTJEKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCAwLCB0YXJnZXRS
ZWN0LngoKSwgdGFyZ2V0UmVjdC55KCksIHRhcmdldFJlY3Qud2lkdGgoKSwgdGFyZ2V0UmVjdC5o
ZWlnaHQoKSwgZ2xGb3JtYXQsIG1fdHlwZSwgc3JjRGF0YSk7CisgICAgZ2xUZXhTdWJJbWFnZTJE
KEdMX1RFWFRVUkVfMkQsIDAsIHRhcmdldFJlY3QueCgpLCB0YXJnZXRSZWN0LnkoKSwgdGFyZ2V0
UmVjdC53aWR0aCgpLCB0YXJnZXRSZWN0LmhlaWdodCgpLCBnbEZvcm1hdCwgbV90eXBlLCBzcmNE
YXRhKTsKIAogICAgIGlmIChjb250ZXh0U3VwcG9ydHNVbnBhY2tTdWJpbWFnZSkgewotICAgICAg
ICBtX2NvbnRleHQzRC0+cGl4ZWxTdG9yZWkoR3JhcGhpY3NDb250ZXh0M0Q6OlVOUEFDS19ST1df
TEVOR1RILCAwKTsKLSAgICAgICAgbV9jb250ZXh0M0QtPnBpeGVsU3RvcmVpKEdyYXBoaWNzQ29u
dGV4dDNEOjpVTlBBQ0tfU0tJUF9ST1dTLCAwKTsKLSAgICAgICAgbV9jb250ZXh0M0QtPnBpeGVs
U3RvcmVpKEdyYXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tfU0tJUF9QSVhFTFMsIDApOworICAgICAg
ICBnbFBpeGVsU3RvcmVpKEdMX1VOUEFDS19ST1dfTEVOR1RILCAwKTsKKyAgICAgICAgZ2xQaXhl
bFN0b3JlaShHTF9VTlBBQ0tfU0tJUF9ST1dTLCAwKTsKKyAgICAgICAgZ2xQaXhlbFN0b3JlaShH
TF9VTlBBQ0tfU0tJUF9QSVhFTFMsIDApOwogICAgIH0KIH0KIAogdm9pZCBCaXRtYXBUZXh0dXJl
R0w6OnVwZGF0ZUNvbnRlbnRzKGNvbnN0IHZvaWQqIHNyY0RhdGEsIGNvbnN0IEludFJlY3QmIHRh
cmdldFJlY3QsIGNvbnN0IEludFBvaW50JiBzb3VyY2VPZmZzZXQsIGludCBieXRlc1BlckxpbmUs
IFVwZGF0ZUNvbnRlbnRzRmxhZyB1cGRhdGVDb250ZW50c0ZsYWcpCiB7Ci0gICAgbV9jb250ZXh0
M0QtPmJpbmRUZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBtX2lkKTsKKyAg
ICBnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIG1faWQpOwogCiAgICAgY29uc3QgdW5zaWdu
ZWQgYnl0ZXNQZXJQaXhlbCA9IDQ7CiAgICAgY2hhciogZGF0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8
Y2hhcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KHNyY0RhdGEpKTsKQEAgLTE0OCw3ICsxNDcsNyBAQCB2
b2lkIEJpdG1hcFRleHR1cmVHTDo6dXBkYXRlQ29udGVudHMoY29uc3Qgdm9pZCogc3JjRGF0YSwg
Y29uc3QgSW50UmVjdCYgdGFyZ2V0UgogICAgICAgICAmJiAhKGJ5dGVzUGVyTGluZSA9PSBzdGF0
aWNfY2FzdDxpbnQ+KHRhcmdldFJlY3Qud2lkdGgoKSAqIGJ5dGVzUGVyUGl4ZWwpICYmIGFkanVz
dGVkU291cmNlT2Zmc2V0ID09IEludFBvaW50Ojp6ZXJvKCkpOwogCiAgICAgLy8gcHJlcGFyZSB0
ZW1wb3JhcnlEYXRhIGlmIG5lY2Vzc2FyeQotICAgIGlmICgobV9mb3JtYXQgPT0gR3JhcGhpY3ND
b250ZXh0M0Q6OlJHQkEgJiYgdXBkYXRlQ29udGVudHNGbGFnID09IFVwZGF0ZUNhbm5vdE1vZGlm
eU9yaWdpbmFsSW1hZ2VEYXRhKSB8fCByZXF1aXJlU3ViSW1hZ2VCdWZmZXIpIHsKKyAgICBpZiAo
KG1fZm9ybWF0ID09IEdMX1JHQkEgJiYgdXBkYXRlQ29udGVudHNGbGFnID09IFVwZGF0ZUNhbm5v
dE1vZGlmeU9yaWdpbmFsSW1hZ2VEYXRhKSB8fCByZXF1aXJlU3ViSW1hZ2VCdWZmZXIpIHsKICAg
ICAgICAgdGVtcG9yYXJ5RGF0YS5yZXNpemUodGFyZ2V0UmVjdC53aWR0aCgpICogdGFyZ2V0UmVj
dC5oZWlnaHQoKSAqIGJ5dGVzUGVyUGl4ZWwpOwogICAgICAgICBkYXRhID0gdGVtcG9yYXJ5RGF0
YS5kYXRhKCk7CiAgICAgICAgIGNvbnN0IGNoYXIqIGJpdHMgPSBzdGF0aWNfY2FzdDxjb25zdCBj
aGFyKj4oc3JjRGF0YSk7CkBAIC0xNjUsNyArMTY0LDcgQEAgdm9pZCBCaXRtYXBUZXh0dXJlR0w6
OnVwZGF0ZUNvbnRlbnRzKGNvbnN0IHZvaWQqIHNyY0RhdGEsIGNvbnN0IEludFJlY3QmIHRhcmdl
dFIKICAgICAgICAgYWRqdXN0ZWRTb3VyY2VPZmZzZXQgPSBJbnRQb2ludCgwLCAwKTsKICAgICB9
CiAKLSAgICBpZiAobV9mb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEpCisgICAgaWYg
KG1fZm9ybWF0ID09IEdMX1JHQkEpCiAgICAgICAgIHN3aXp6bGVCR1JBVG9SR0JBKHJlaW50ZXJw
cmV0X2Nhc3RfcHRyPHVpbnQzMl90Kj4oZGF0YSksIEludFJlY3QoYWRqdXN0ZWRTb3VyY2VPZmZz
ZXQsIHRhcmdldFJlY3Quc2l6ZSgpKSwgYnl0ZXNQZXJMaW5lIC8gYnl0ZXNQZXJQaXhlbCk7CiAK
ICAgICB1cGRhdGVDb250ZW50c05vU3dpenpsZShkYXRhLCB0YXJnZXRSZWN0LCBhZGp1c3RlZFNv
dXJjZU9mZnNldCwgYnl0ZXNQZXJMaW5lLCBieXRlc1BlclBpeGVsLCBtX2Zvcm1hdCk7CkBAIC0y
NjEsMTMgKzI2MCwxMyBAQCB2b2lkIEJpdG1hcFRleHR1cmVHTDo6aW5pdGlhbGl6ZVN0ZW5jaWwo
KQogICAgIGlmIChtX3JibykKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9yYm8gPSBtX2NvbnRl
eHQzRC0+Y3JlYXRlUmVuZGVyYnVmZmVyKCk7Ci0gICAgbV9jb250ZXh0M0QtPmJpbmRSZW5kZXJi
dWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUiwgbV9yYm8pOwotICAgIG1fY29u
dGV4dDNELT5yZW5kZXJidWZmZXJTdG9yYWdlKEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJCVUZG
RVIsIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0lOREVYOCwgbV90ZXh0dXJlU2l6ZS53aWR0
aCgpLCBtX3RleHR1cmVTaXplLmhlaWdodCgpKTsKLSAgICBtX2NvbnRleHQzRC0+YmluZFJlbmRl
cmJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSQlVGRkVSLCAwKTsKLSAgICBtX2NvbnRl
eHQzRC0+ZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVG
RkVSLCBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9BVFRBQ0hNRU5ULCBHcmFwaGljc0NvbnRl
eHQzRDo6UkVOREVSQlVGRkVSLCBtX3Jibyk7Ci0gICAgbV9jb250ZXh0M0QtPmNsZWFyU3RlbmNp
bCgwKTsKLSAgICBtX2NvbnRleHQzRC0+Y2xlYXIoR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxf
QlVGRkVSX0JJVCk7CisgICAgZ2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX3Jibyk7CisgICAgZ2xC
aW5kUmVuZGVyYnVmZmVyKEdMX1JFTkRFUkJVRkZFUiwgbV9yYm8pOworICAgIGdsUmVuZGVyYnVm
ZmVyU3RvcmFnZShHTF9SRU5ERVJCVUZGRVIsIEdMX1NURU5DSUxfSU5ERVg4LCBtX3RleHR1cmVT
aXplLndpZHRoKCksIG1fdGV4dHVyZVNpemUuaGVpZ2h0KCkpOworICAgIGdsQmluZFJlbmRlcmJ1
ZmZlcihHTF9SRU5ERVJCVUZGRVIsIDApOworICAgIGdsRnJhbWVidWZmZXJSZW5kZXJidWZmZXIo
R0xfRlJBTUVCVUZGRVIsIEdMX1NURU5DSUxfQVRUQUNITUVOVCwgR0xfUkVOREVSQlVGRkVSLCBt
X3Jibyk7CisgICAgZ2xDbGVhclN0ZW5jaWwoMCk7CisgICAgZ2xDbGVhcihHTF9TVEVOQ0lMX0JV
RkZFUl9CSVQpOwogfQogCiB2b2lkIEJpdG1hcFRleHR1cmVHTDo6aW5pdGlhbGl6ZURlcHRoQnVm
ZmVyKCkKQEAgLTI3NSwxMSArMjc0LDExIEBAIHZvaWQgQml0bWFwVGV4dHVyZUdMOjppbml0aWFs
aXplRGVwdGhCdWZmZXIoKQogICAgIGlmIChtX2RlcHRoQnVmZmVyT2JqZWN0KQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBtX2RlcHRoQnVmZmVyT2JqZWN0ID0gbV9jb250ZXh0M0QtPmNyZWF0ZVJl
bmRlcmJ1ZmZlcigpOwotICAgIG1fY29udGV4dDNELT5iaW5kUmVuZGVyYnVmZmVyKEdyYXBoaWNz
Q29udGV4dDNEOjpSRU5ERVJCVUZGRVIsIG1fZGVwdGhCdWZmZXJPYmplY3QpOwotICAgIG1fY29u
dGV4dDNELT5yZW5kZXJidWZmZXJTdG9yYWdlKEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJCVUZG
RVIsIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9DT01QT05FTlQxNiwgbV90ZXh0dXJlU2l6ZS53
aWR0aCgpLCBtX3RleHR1cmVTaXplLmhlaWdodCgpKTsKLSAgICBtX2NvbnRleHQzRC0+YmluZFJl
bmRlcmJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSQlVGRkVSLCAwKTsKLSAgICBtX2Nv
bnRleHQzRC0+ZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1F
QlVGRkVSLCBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQVRUQUNITUVOVCwgR3JhcGhpY3NDb250
ZXh0M0Q6OlJFTkRFUkJVRkZFUiwgbV9kZXB0aEJ1ZmZlck9iamVjdCk7CisgICAgZ2xHZW5SZW5k
ZXJidWZmZXJzKDEsICZtX2RlcHRoQnVmZmVyT2JqZWN0KTsKKyAgICBnbEJpbmRSZW5kZXJidWZm
ZXIoR0xfUkVOREVSQlVGRkVSLCBtX2RlcHRoQnVmZmVyT2JqZWN0KTsKKyAgICBnbFJlbmRlcmJ1
ZmZlclN0b3JhZ2UoR0xfUkVOREVSQlVGRkVSLCBHTF9ERVBUSF9DT01QT05FTlQxNiwgbV90ZXh0
dXJlU2l6ZS53aWR0aCgpLCBtX3RleHR1cmVTaXplLmhlaWdodCgpKTsKKyAgICBnbEJpbmRSZW5k
ZXJidWZmZXIoR0xfUkVOREVSQlVGRkVSLCAwKTsKKyAgICBnbEZyYW1lYnVmZmVyUmVuZGVyYnVm
ZmVyKEdMX0ZSQU1FQlVGRkVSLCBHTF9ERVBUSF9BVFRBQ0hNRU5ULCBHTF9SRU5ERVJCVUZGRVIs
IG1fZGVwdGhCdWZmZXJPYmplY3QpOwogfQogCiB2b2lkIEJpdG1hcFRleHR1cmVHTDo6Y2xlYXJJ
Zk5lZWRlZCgpCkBAIC0yODksOCArMjg4LDggQEAgdm9pZCBCaXRtYXBUZXh0dXJlR0w6OmNsZWFy
SWZOZWVkZWQoKQogCiAgICAgbV9jbGlwU3RhY2sucmVzZXQoSW50UmVjdChJbnRQb2ludDo6emVy
bygpLCBtX3RleHR1cmVTaXplKSwgQ2xpcFN0YWNrOjpZQXhpc01vZGU6OkRlZmF1bHQpOwogICAg
IG1fY2xpcFN0YWNrLmFwcGx5SWZOZWVkZWQoKm1fY29udGV4dDNEKTsKLSAgICBtX2NvbnRleHQz
RC0+Y2xlYXJDb2xvcigwLCAwLCAwLCAwKTsKLSAgICBtX2NvbnRleHQzRC0+Y2xlYXIoR3JhcGhp
Y3NDb250ZXh0M0Q6OkNPTE9SX0JVRkZFUl9CSVQpOworICAgIGdsQ2xlYXJDb2xvcigwLCAwLCAw
LCAwKTsKKyAgICBnbENsZWFyKEdMX0NPTE9SX0JVRkZFUl9CSVQpOwogICAgIG1fc2hvdWxkQ2xl
YXIgPSBmYWxzZTsKIH0KIApAQCAtMjk5LDE4ICsyOTgsMTggQEAgdm9pZCBCaXRtYXBUZXh0dXJl
R0w6OmNyZWF0ZUZib0lmTmVlZGVkKCkKICAgICBpZiAobV9mYm8pCiAgICAgICAgIHJldHVybjsK
IAotICAgIG1fZmJvID0gbV9jb250ZXh0M0QtPmNyZWF0ZUZyYW1lYnVmZmVyKCk7Ci0gICAgbV9j
b250ZXh0M0QtPmJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIs
IG1fZmJvKTsKLSAgICBtX2NvbnRleHQzRC0+ZnJhbWVidWZmZXJUZXh0dXJlMkQoR3JhcGhpY3ND
b250ZXh0M0Q6OkZSQU1FQlVGRkVSLCBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQVRUQUNITUVO
VDAsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBpZCgpLCAwKTsKKyAgICBnbEdlbkZy
YW1lYnVmZmVycygxLCAmbV9mYm8pOworICAgIGdsQmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVG
RkVSLCBtX2Zibyk7CisgICAgZ2xGcmFtZWJ1ZmZlclRleHR1cmUyRChHTF9GUkFNRUJVRkZFUiwg
R0xfQ09MT1JfQVRUQUNITUVOVDAsIEdMX1RFWFRVUkVfMkQsIGlkKCksIDApOwogICAgIG1fc2hv
dWxkQ2xlYXIgPSB0cnVlOwogfQogCi12b2lkIEJpdG1hcFRleHR1cmVHTDo6YmluZEFzU3VyZmFj
ZShHcmFwaGljc0NvbnRleHQzRCogY29udGV4dDNEKQordm9pZCBCaXRtYXBUZXh0dXJlR0w6OmJp
bmRBc1N1cmZhY2UoKQogewotICAgIGNvbnRleHQzRC0+YmluZFRleHR1cmUoR3JhcGhpY3NDb250
ZXh0M0Q6OlRFWFRVUkVfMkQsIDApOworICAgIGdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwg
MCk7CiAgICAgY3JlYXRlRmJvSWZOZWVkZWQoKTsKLSAgICBjb250ZXh0M0QtPmJpbmRGcmFtZWJ1
ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIG1fZmJvKTsKLSAgICBjb250ZXh0
M0QtPnZpZXdwb3J0KDAsIDAsIG1fdGV4dHVyZVNpemUud2lkdGgoKSwgbV90ZXh0dXJlU2l6ZS5o
ZWlnaHQoKSk7CisgICAgZ2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fZmJvKTsK
KyAgICBnbFZpZXdwb3J0KDAsIDAsIG1fdGV4dHVyZVNpemUud2lkdGgoKSwgbV90ZXh0dXJlU2l6
ZS5oZWlnaHQoKSk7CiAgICAgY2xlYXJJZk5lZWRlZCgpOwogICAgIG1fY2xpcFN0YWNrLmFwcGx5
KCptX2NvbnRleHQzRCk7CiB9CkBAIC0zMTgsMTYgKzMxNywxNiBAQCB2b2lkIEJpdG1hcFRleHR1
cmVHTDo6YmluZEFzU3VyZmFjZShHcmFwaGljc0NvbnRleHQzRCogY29udGV4dDNEKQogQml0bWFw
VGV4dHVyZUdMOjp+Qml0bWFwVGV4dHVyZUdMKCkKIHsKICAgICBpZiAobV9pZCkKLSAgICAgICAg
bV9jb250ZXh0M0QtPmRlbGV0ZVRleHR1cmUobV9pZCk7CisgICAgICAgIGdsRGVsZXRlVGV4dHVy
ZXMoMSwgJm1faWQpOwogCiAgICAgaWYgKG1fZmJvKQotICAgICAgICBtX2NvbnRleHQzRC0+ZGVs
ZXRlRnJhbWVidWZmZXIobV9mYm8pOworICAgICAgICBnbERlbGV0ZUZyYW1lYnVmZmVycygxLCAm
bV9mYm8pOwogCiAgICAgaWYgKG1fcmJvKQotICAgICAgICBtX2NvbnRleHQzRC0+ZGVsZXRlUmVu
ZGVyYnVmZmVyKG1fcmJvKTsKKyAgICAgICAgZ2xEZWxldGVSZW5kZXJidWZmZXJzKDEsICZtX3Ji
byk7CiAKICAgICBpZiAobV9kZXB0aEJ1ZmZlck9iamVjdCkKLSAgICAgICAgbV9jb250ZXh0M0Qt
PmRlbGV0ZVJlbmRlcmJ1ZmZlcihtX2RlcHRoQnVmZmVyT2JqZWN0KTsKKyAgICAgICAgZ2xEZWxl
dGVSZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoQnVmZmVyT2JqZWN0KTsKIH0KIAogYm9vbCBCaXRt
YXBUZXh0dXJlR0w6OmlzVmFsaWQoKSBjb25zdApAQCAtMzQxLDMxICszNDAsMzIgQEAgSW50U2l6
ZSBCaXRtYXBUZXh0dXJlR0w6OnNpemUoKSBjb25zdAogfQogCiAKLXZvaWQgQml0bWFwVGV4dHVy
ZUdMOjpjb3B5RnJvbUV4dGVybmFsVGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0IHNvdXJjZVRleHR1
cmVJRCkKK3ZvaWQgQml0bWFwVGV4dHVyZUdMOjpjb3B5RnJvbUV4dGVybmFsVGV4dHVyZShHTHVp
bnQgc291cmNlVGV4dHVyZUlEKQogewotICAgIEdDM0RpbnQgYm91bmRUZXh0dXJlID0gMDsKLSAg
ICBHQzNEaW50IGJvdW5kRnJhbWVidWZmZXIgPSAwOwotICAgIEdDM0RpbnQgYm91bmRBY3RpdmVU
ZXh0dXJlID0gMDsKLQotICAgIG1fY29udGV4dDNELT5nZXRJbnRlZ2VydihHcmFwaGljc0NvbnRl
eHQzRDo6VEVYVFVSRV9CSU5ESU5HXzJELCAmYm91bmRUZXh0dXJlKTsKLSAgICBtX2NvbnRleHQz
RC0+Z2V0SW50ZWdlcnYoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0JJTkRJTkcsICZi
b3VuZEZyYW1lYnVmZmVyKTsKLSAgICBtX2NvbnRleHQzRC0+Z2V0SW50ZWdlcnYoR3JhcGhpY3ND
b250ZXh0M0Q6OkFDVElWRV9URVhUVVJFLCAmYm91bmRBY3RpdmVUZXh0dXJlKTsKLQotICAgIG1f
Y29udGV4dDNELT5iaW5kVGV4dHVyZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgc291
cmNlVGV4dHVyZUlEKTsKLQotICAgIFBsYXRmb3JtM0RPYmplY3QgY29weUZibyA9IG1fY29udGV4
dDNELT5jcmVhdGVGcmFtZWJ1ZmZlcigpOwotICAgIG1fY29udGV4dDNELT5iaW5kRnJhbWVidWZm
ZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSLCBjb3B5RmJvKTsKLSAgICBtX2NvbnRl
eHQzRC0+ZnJhbWVidWZmZXJUZXh0dXJlMkQoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVS
LCBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQVRUQUNITUVOVDAsIEdyYXBoaWNzQ29udGV4dDNE
OjpURVhUVVJFXzJELCBzb3VyY2VUZXh0dXJlSUQsIDApOwotCi0gICAgbV9jb250ZXh0M0QtPmFj
dGl2ZVRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkUwKTsKLSAgICBtX2NvbnRleHQz
RC0+YmluZFRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIGlkKCkpOwotICAg
IG1fY29udGV4dDNELT5jb3B5VGV4U3ViSW1hZ2UyRChHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVS
RV8yRCwgMCwgMCwgMCwgMCwgMCwgbV90ZXh0dXJlU2l6ZS53aWR0aCgpLCBtX3RleHR1cmVTaXpl
LmhlaWdodCgpKTsKLQotICAgIG1fY29udGV4dDNELT5iaW5kVGV4dHVyZShHcmFwaGljc0NvbnRl
eHQzRDo6VEVYVFVSRV8yRCwgYm91bmRUZXh0dXJlKTsKLSAgICBtX2NvbnRleHQzRC0+YmluZEZy
YW1lYnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUiwgYm91bmRGcmFtZWJ1ZmZl
cik7Ci0gICAgbV9jb250ZXh0M0QtPmJpbmRUZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEOjpURVhU
VVJFXzJELCBib3VuZFRleHR1cmUpOwotICAgIG1fY29udGV4dDNELT5hY3RpdmVUZXh0dXJlKGJv
dW5kQWN0aXZlVGV4dHVyZSk7Ci0gICAgbV9jb250ZXh0M0QtPmRlbGV0ZUZyYW1lYnVmZmVyKGNv
cHlGYm8pOworICAgIEdMaW50IGJvdW5kVGV4dHVyZSA9IDA7CisgICAgR0xpbnQgYm91bmRGcmFt
ZWJ1ZmZlciA9IDA7CisgICAgR0xpbnQgYm91bmRBY3RpdmVUZXh0dXJlID0gMDsKKworICAgIGds
R2V0SW50ZWdlcnYoR0xfVEVYVFVSRV9CSU5ESU5HXzJELCAmYm91bmRUZXh0dXJlKTsKKyAgICBn
bEdldEludGVnZXJ2KEdMX0ZSQU1FQlVGRkVSX0JJTkRJTkcsICZib3VuZEZyYW1lYnVmZmVyKTsK
KyAgICBnbEdldEludGVnZXJ2KEdMX0FDVElWRV9URVhUVVJFLCAmYm91bmRBY3RpdmVUZXh0dXJl
KTsKKworICAgIGdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgc291cmNlVGV4dHVyZUlEKTsK
KworICAgIEdMdWludCBjb3B5RmJvID0gMDsKKyAgICBnbEdlbkZyYW1lYnVmZmVycygxLCAmY29w
eUZibyk7CisgICAgZ2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIGNvcHlGYm8pOwor
ICAgIGdsRnJhbWVidWZmZXJUZXh0dXJlMkQoR0xfRlJBTUVCVUZGRVIsIEdMX0NPTE9SX0FUVEFD
SE1FTlQwLCBHTF9URVhUVVJFXzJELCBzb3VyY2VUZXh0dXJlSUQsIDApOworCisgICAgZ2xBY3Rp
dmVUZXh0dXJlKEdMX1RFWFRVUkUwKTsKKyAgICBnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQs
IGlkKCkpOworICAgIGdsQ29weVRleFN1YkltYWdlMkQoR0xfVEVYVFVSRV8yRCwgMCwgMCwgMCwg
MCwgMCwgbV90ZXh0dXJlU2l6ZS53aWR0aCgpLCBtX3RleHR1cmVTaXplLmhlaWdodCgpKTsKKwor
ICAgIGdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgYm91bmRUZXh0dXJlKTsKKyAgICBnbEJp
bmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgYm91bmRGcmFtZWJ1ZmZlcik7CisgICAgZ2xC
aW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCBib3VuZFRleHR1cmUpOworICAgIGdsQWN0aXZlVGV4
dHVyZShib3VuZEFjdGl2ZVRleHR1cmUpOworICAgIGdsRGVsZXRlRnJhbWVidWZmZXJzKDEsICZj
b3B5RmJvKTsKIH0KIAogfTsgLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuaApp
bmRleCAzZWI0OGEzNDkxMDM2ZDRkOTBlMDlhZjI2N2Q2YmIwZjZlZTg2MTMxLi40ZTlhODE5ZTVl
NWFmMTgwNGU4MGI4MzM3NDJiNzI0OWU0YmUwYzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5oCkBAIC0y
NiwxMCArMjYsMTAgQEAKICNpbmNsdWRlICJCaXRtYXBUZXh0dXJlLmgiCiAjaW5jbHVkZSAiQ2xp
cFN0YWNrLmgiCiAjaW5jbHVkZSAiRmlsdGVyT3BlcmF0aW9uLmgiCi0jaW5jbHVkZSAiR3JhcGhp
Y3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSAiVGV4dHVyZU1h
cHBlckNvbnRleHRBdHRyaWJ1dGVzLmgiCiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlckdMLmgiCisj
aW5jbHVkZSAiVGV4dHVyZU1hcHBlckdMSGVhZGVycy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTM3LDExICszNywxNCBAQCBjbGFzcyBUZXh0dXJlTWFwcGVyOwogY2xhc3MgVGV4dHVy
ZU1hcHBlckdMOwogY2xhc3MgRmlsdGVyT3BlcmF0aW9uOwogCisvLyBGSVhNRTogUmVtb3ZlIG9u
Y2UgQ2xpcFN0YWNrIGRyb3BzIEdyYXBoaWNzQ29udGV4dDNEIHVzYWdlLgorY2xhc3MgR3JhcGhp
Y3NDb250ZXh0M0Q7CisKIGNsYXNzIEJpdG1hcFRleHR1cmVHTCA6IHB1YmxpYyBCaXRtYXBUZXh0
dXJlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEJpdG1hcFRleHR1cmU+IGNyZWF0ZShjb25z
dCBUZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXMmIGNvbnRleHRBdHRyaWJ1dGVzLCBSZWY8
R3JhcGhpY3NDb250ZXh0M0Q+JiYgY29udGV4dDNELCBjb25zdCBGbGFncyBmbGFncyA9IE5vRmxh
ZywgR0MzRGludCBpbnRlcm5hbEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpET05UX0NBUkUp
CisgICAgc3RhdGljIFJlZjxCaXRtYXBUZXh0dXJlPiBjcmVhdGUoY29uc3QgVGV4dHVyZU1hcHBl
ckNvbnRleHRBdHRyaWJ1dGVzJiBjb250ZXh0QXR0cmlidXRlcywgY29uc3QgRmxhZ3MgZmxhZ3Mg
PSBOb0ZsYWcsIEdMaW50IGludGVybmFsRm9ybWF0ID0gR0xfRE9OVF9DQVJFKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQml0bWFwVGV4dHVyZUdMKGNvbnRleHRBdHRyaWJ1
dGVzLCBXVEZNb3ZlKGNvbnRleHQzRCksIGZsYWdzLCBpbnRlcm5hbEZvcm1hdCkpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBCaXRtYXBUZXh0dXJlR0woY29udGV4dEF0dHJpYnV0ZXMs
IGZsYWdzLCBpbnRlcm5hbEZvcm1hdCkpOwogICAgIH0KIAogICAgIHZpcnR1YWwgfkJpdG1hcFRl
eHR1cmVHTCgpOwpAQCAtNDksMTUgKzUyLDE1IEBAIHB1YmxpYzoKICAgICBJbnRTaXplIHNpemUo
KSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzVmFsaWQoKSBjb25zdCBvdmVycmlkZTsKICAg
ICB2b2lkIGRpZFJlc2V0KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBiaW5kQXNTdXJmYWNlKEdyYXBo
aWNzQ29udGV4dDNEKik7CisgICAgdm9pZCBiaW5kQXNTdXJmYWNlKCk7CiAgICAgdm9pZCBpbml0
aWFsaXplU3RlbmNpbCgpOwogICAgIHZvaWQgaW5pdGlhbGl6ZURlcHRoQnVmZmVyKCk7CiAgICAg
dmlydHVhbCB1aW50MzJfdCBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KLSAgICB1aW50MzJf
dCB0ZXh0dXJlVGFyZ2V0KCkgY29uc3QgeyByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRV
UkVfMkQ7IH0KKyAgICB1aW50MzJfdCB0ZXh0dXJlVGFyZ2V0KCkgY29uc3QgeyByZXR1cm4gR0xf
VEVYVFVSRV8yRDsgfQogICAgIEludFNpemUgdGV4dHVyZVNpemUoKSBjb25zdCB7IHJldHVybiBt
X3RleHR1cmVTaXplOyB9CiAgICAgdm9pZCB1cGRhdGVDb250ZW50cyhJbWFnZSosIGNvbnN0IElu
dFJlY3QmLCBjb25zdCBJbnRQb2ludCYsIFVwZGF0ZUNvbnRlbnRzRmxhZykgb3ZlcnJpZGU7CiAg
ICAgdm9pZCB1cGRhdGVDb250ZW50cyhjb25zdCB2b2lkKiwgY29uc3QgSW50UmVjdCYgdGFyZ2V0
LCBjb25zdCBJbnRQb2ludCYgc291cmNlT2Zmc2V0LCBpbnQgYnl0ZXNQZXJMaW5lLCBVcGRhdGVD
b250ZW50c0ZsYWcpIG92ZXJyaWRlOwotICAgIHZvaWQgdXBkYXRlQ29udGVudHNOb1N3aXp6bGUo
Y29uc3Qgdm9pZCosIGNvbnN0IEludFJlY3QmIHRhcmdldCwgY29uc3QgSW50UG9pbnQmIHNvdXJj
ZU9mZnNldCwgaW50IGJ5dGVzUGVyTGluZSwgdW5zaWduZWQgYnl0ZXNQZXJQaXhlbCA9IDQsIFBs
YXRmb3JtM0RPYmplY3QgZ2xGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSk7CisgICAg
dm9pZCB1cGRhdGVDb250ZW50c05vU3dpenpsZShjb25zdCB2b2lkKiwgY29uc3QgSW50UmVjdCYg
dGFyZ2V0LCBjb25zdCBJbnRQb2ludCYgc291cmNlT2Zmc2V0LCBpbnQgYnl0ZXNQZXJMaW5lLCB1
bnNpZ25lZCBieXRlc1BlclBpeGVsID0gNCwgR0x1aW50IGdsRm9ybWF0ID0gR0xfUkdCQSk7CiAg
ICAgYm9vbCBpc0JhY2tlZEJ5T3BlbkdMKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsg
fQogCiAgICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+IGFwcGx5RmlsdGVycyhUZXh0dXJlTWFwcGVy
JiwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYpIG92ZXJyaWRlOwpAQCAtNzUsMTkgKzc4LDE5IEBA
IHB1YmxpYzoKICAgICBjb25zdCBGaWx0ZXJJbmZvKiBmaWx0ZXJJbmZvKCkgY29uc3QgeyByZXR1
cm4gJm1fZmlsdGVySW5mbzsgfQogICAgIENsaXBTdGFjayYgY2xpcFN0YWNrKCkgeyByZXR1cm4g
bV9jbGlwU3RhY2s7IH0KIAotICAgIEdDM0RpbnQgaW50ZXJuYWxGb3JtYXQoKSBjb25zdCB7IHJl
dHVybiBtX2ludGVybmFsRm9ybWF0OyB9CisgICAgR0xpbnQgaW50ZXJuYWxGb3JtYXQoKSBjb25z
dCB7IHJldHVybiBtX2ludGVybmFsRm9ybWF0OyB9CiAKLSAgICB2b2lkIGNvcHlGcm9tRXh0ZXJu
YWxUZXh0dXJlKFBsYXRmb3JtM0RPYmplY3QgdGV4dHVyZUlEKTsKKyAgICB2b2lkIGNvcHlGcm9t
RXh0ZXJuYWxUZXh0dXJlKEdMdWludCB0ZXh0dXJlSUQpOwogCiBwcml2YXRlOgotICAgIEJpdG1h
cFRleHR1cmVHTChjb25zdCBUZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXMmLCBSZWZQdHI8
R3JhcGhpY3NDb250ZXh0M0Q+JiYsIGNvbnN0IEZsYWdzLCBHQzNEaW50IGludGVybmFsRm9ybWF0
KTsKKyAgICBCaXRtYXBUZXh0dXJlR0woY29uc3QgVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1
dGVzJiwgY29uc3QgRmxhZ3MsIEdMaW50IGludGVybmFsRm9ybWF0KTsKIAotICAgIFBsYXRmb3Jt
M0RPYmplY3QgbV9pZCB7IDAgfTsKKyAgICBHTHVpbnQgbV9pZCB7IDAgfTsKICAgICBJbnRTaXpl
IG1fdGV4dHVyZVNpemU7CiAgICAgSW50UmVjdCBtX2RpcnR5UmVjdDsKLSAgICBQbGF0Zm9ybTNE
T2JqZWN0IG1fZmJvIHsgMCB9OwotICAgIFBsYXRmb3JtM0RPYmplY3QgbV9yYm8geyAwIH07Ci0g
ICAgUGxhdGZvcm0zRE9iamVjdCBtX2RlcHRoQnVmZmVyT2JqZWN0IHsgMCB9OworICAgIEdMdWlu
dCBtX2ZibyB7IDAgfTsKKyAgICBHTHVpbnQgbV9yYm8geyAwIH07CisgICAgR0x1aW50IG1fZGVw
dGhCdWZmZXJPYmplY3QgeyAwIH07CiAgICAgYm9vbCBtX3Nob3VsZENsZWFyIHsgdHJ1ZSB9Owog
ICAgIENsaXBTdGFjayBtX2NsaXBTdGFjazsKICAgICBUZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJp
YnV0ZXMgbV9jb250ZXh0QXR0cmlidXRlczsKQEAgLTk4LDEzICsxMDEsMTMgQEAgcHJpdmF0ZToK
IAogICAgIEZpbHRlckluZm8gbV9maWx0ZXJJbmZvOwogCi0gICAgR0MzRGludCBtX2ludGVybmFs
Rm9ybWF0OwotICAgIEdDM0RlbnVtIG1fZm9ybWF0OwotICAgIEdDM0RlbnVtIG1fdHlwZSB7Cisg
ICAgR0xpbnQgbV9pbnRlcm5hbEZvcm1hdDsKKyAgICBHTGVudW0gbV9mb3JtYXQ7CisgICAgR0xl
bnVtIG1fdHlwZSB7CiAjaWYgT1MoREFSV0lOKQogICAgICAgICBHTF9VTlNJR05FRF9JTlRfOF84
XzhfOF9SRVYKICNlbHNlCi0gICAgICAgIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRF
CisgICAgICAgIEdMX1VOU0lHTkVEX0JZVEUKICNlbmRpZgogICAgIH07CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVQ
b29sLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBU
ZXh0dXJlUG9vbC5jcHAKaW5kZXggYjhhMWU1NDgzOWRmNzBjYmMxODJkMTYwZjYwZjE4YTU2NTFi
YWY5My4uYTQxZDBjOWU1YzVmNzYwZmU5OWFkOWQ4OTM1OWNiZmQxZDQ5YmVmMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVQ
b29sLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0
bWFwVGV4dHVyZVBvb2wuY3BwCkBAIC05NCw3ICs5NCw3IEBAIHZvaWQgQml0bWFwVGV4dHVyZVBv
b2w6OnJlbGVhc2VVbnVzZWRUZXh0dXJlc1RpbWVyRmlyZWQoKQogUmVmUHRyPEJpdG1hcFRleHR1
cmU+IEJpdG1hcFRleHR1cmVQb29sOjpjcmVhdGVUZXh0dXJlKGNvbnN0IEJpdG1hcFRleHR1cmU6
OkZsYWdzIGZsYWdzKQogewogI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKLSAgICByZXR1cm4g
Qml0bWFwVGV4dHVyZUdMOjpjcmVhdGUobV9jb250ZXh0QXR0cmlidXRlcywgKm1fY29udGV4dDNE
LCBmbGFncyk7CisgICAgcmV0dXJuIEJpdG1hcFRleHR1cmVHTDo6Y3JlYXRlKG1fY29udGV4dEF0
dHJpYnV0ZXMsIGZsYWdzKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGZsYWdzKTsKICAgICBy
ZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKaW5kZXggMzlhNzQ3YjVhYmNhNmU3
OTkyNmViMzg4MTNhYzJiZjc1ZWMyNzY3Mi4uMzY5MGYwYTc2MzEyNGZhZDUyMmQyMmE4NjZhOWRh
ZTBmYTI2MGQwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKQEAgLTY2NCw3ICs2NjQsNyBAQCB2
b2lkIFRleHR1cmVNYXBwZXJHTDo6YmluZFN1cmZhY2UoQml0bWFwVGV4dHVyZSAqc3VyZmFjZSkK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHN0YXRpY19jYXN0PEJpdG1hcFRleHR1cmVH
TCo+KHN1cmZhY2UpLT5iaW5kQXNTdXJmYWNlKG1fY29udGV4dDNELmdldCgpKTsKKyAgICBzdGF0
aWNfY2FzdDxCaXRtYXBUZXh0dXJlR0wqPihzdXJmYWNlKS0+YmluZEFzU3VyZmFjZSgpOwogICAg
IGRhdGEoKS5wcm9qZWN0aW9uTWF0cml4ID0gY3JlYXRlUHJvamVjdGlvbk1hdHJpeChzdXJmYWNl
LT5zaXplKCksIHRydWUgLyogbWlycm9yZWQgKi8pOwogICAgIGRhdGEoKS5jdXJyZW50U3VyZmFj
ZSA9IHN1cmZhY2U7CiB9CkBAIC03NjAsNyArNzYwLDcgQEAgSW50UmVjdCBUZXh0dXJlTWFwcGVy
R0w6OmNsaXBCb3VuZHMoKQogCiBSZWY8Qml0bWFwVGV4dHVyZT4gVGV4dHVyZU1hcHBlckdMOjpj
cmVhdGVUZXh0dXJlKEdDM0RpbnQgaW50ZXJuYWxGb3JtYXQpCiB7Ci0gICAgcmV0dXJuIEJpdG1h
cFRleHR1cmVHTDo6Y3JlYXRlKG1fY29udGV4dEF0dHJpYnV0ZXMsICptX2NvbnRleHQzRCwgaW50
ZXJuYWxGb3JtYXQpOworICAgIHJldHVybiBCaXRtYXBUZXh0dXJlR0w6OmNyZWF0ZShtX2NvbnRl
eHRBdHRyaWJ1dGVzLCBpbnRlcm5hbEZvcm1hdCk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxUZXh0
dXJlTWFwcGVyPiBUZXh0dXJlTWFwcGVyOjpwbGF0Zm9ybUNyZWF0ZUFjY2VsZXJhdGVkKCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>317565</attachid>
            <date>2017-08-08 06:42:55 -0700</date>
            <delta_ts>2017-08-10 00:20:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-175317-20170808154254.patch</filename>
            <type>text/plain</type>
            <size>24423</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIwNDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTU3MDRiYTQ4MzcxNWZk
ZDQzNWM1MGYyZWI3YzdhNGMwNmUxMzEzNi4uNzM2ZWZlYTU0Mzg3NjA5MDdhN2FkOGJkZmRmMzFh
N2E0NjdjM2UwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU1IEBACiAyMDE3LTA4LTA4ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAorICAgICAgICBbVGV4TWFwXSBEcm9w
IEdyYXBoaWNzQ29udGV4dDNEIHVzYWdlIGZyb20gQml0bWFwVGV4dHVyZUdMCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzUzMTcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIYXZlIEJpdG1hcFRleHR1cmVH
TCB1c2UgZGlyZWN0IE9wZW5HTCBBUEkgZW50cnlwb2ludHMgYW5kIGNvbnN0YW50cworICAgICAg
ICBpbnN0ZWFkIG9mIGxldmVyYWdpbmcgdGhlIEdyYXBoaWNzQ29udGV4dDNEIGNsYXNzLiBBbnkg
R3JhcGhpY3NDb250ZXh0M0QKKyAgICAgICAgb2JqZWN0IHBhc3NlZCB0byBCaXRtYXBUZXh0dXJl
R0wgd291bGQgYXNzdW1lIHJlbmRlcmluZyB0byB0aGUgR0wgY29udGV4dAorICAgICAgICB0aGF0
J3MgY3VycmVudCBvbiB0aGF0IHRocmVhZCwgdHJhbnNsYXRpbmcgbWV0aG9kIGludm9jYXRpb25z
IHRvIHRoZQorICAgICAgICBPcGVuR0wgQVBJLiBXZSBjYW4gZG8gdGhpcyBieSBvdXJzZWx2ZXMg
YW5kIGJlbmVmaXQgYnkgYXZvaWRpbmcgYWxsb2NhdGluZworICAgICAgICBHcmFwaGljc0NvbnRl
eHQzRCByZXNvdXJjZXMgbGlrZSB0aGUgQU5HTEUgY29tcGlsZXIgdGhhdCBhcmUgYnkgbW9zdCB1
c2VmdWwKKyAgICAgICAgZm9yIFdlYkdMLgorCisgICAgICAgIEJpdG1hcFRleHR1cmVHTDo6Y3Jl
YXRlKCkgY2FsbCBzaXRlcyBhcmUgYWRqdXN0ZWQgdG8gc3RvcCBwYXNzaW5nIGEKKyAgICAgICAg
R3JhcGhpY3NDb250ZXh0M0QgcmVmZXJlbmNlLiBCaXRtYXBUZXh0dXJlR0w6OmJpbmRBc1N1cmZh
Y2UoKSBkb2Vzbid0IG5lZWQKKyAgICAgICAgYSByZXBsYWNlbWVudCBmb3IgdGhlIHBhc3NlZC1p
biBHcmFwaGljc0NvbnRleHQzRCBvYmplY3Qgc2luY2UgdGhhdCBvYmplY3QKKyAgICAgICAgb3Jp
Z2luYXRlZCBmcm9tIHRoZSBUZXh0dXJlTWFwcGVyR0wgaW5zdGFuY2UsIHdob3NlIEdyYXBoaWNz
Q29udGV4dDNEIGlzIGJ5CisgICAgICAgIGRlZmF1bHQgb2YgdGhlIHJlbmRlci10by1jdXJyZW50
LWNvbnRleHQgbmF0dXJlLiBPdGhlciBjaGFuZ2VzIGFyZSBkaXJlY3QKKyAgICAgICAgdHJhbnNs
YXRpb25zIG9mIEdyYXBoaWNzQ29udGV4dDNEIG1ldGhvZHMgdG8gT3BlbkdMIEFQSSBjYWxscywg
b3Igb2YKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0M0QgdmFsdWVzIHRvIE9wZW5HTCBBUEkgY29u
c3RhbnRzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAtLSBubyBjaGFuZ2UgaW4gYmVoYXZpb3Iu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJCYXNlOjpwdXNoVGV4dHVyZVRvQ29tcG9zaXRvcik6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHA6CisgICAgICAgIEFsc28g
cmVtb3ZlIGFuIHVubmVjZXNzYXJ5IEdyYXBoaWNzQ29udGV4dC5oIGhlYWRlciBpbmNsdXNpb24u
CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlR0w6OkJpdG1hcFRleHR1cmVHTCk6Cisg
ICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlR0w6OmRpZFJlc2V0KToKKyAgICAgICAgKFdl
YkNvcmU6OkJpdG1hcFRleHR1cmVHTDo6dXBkYXRlQ29udGVudHNOb1N3aXp6bGUpOgorICAgICAg
ICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUdMOjp1cGRhdGVDb250ZW50cyk6CisgICAgICAgIChX
ZWJDb3JlOjpCaXRtYXBUZXh0dXJlR0w6OmluaXRpYWxpemVTdGVuY2lsKToKKyAgICAgICAgKFdl
YkNvcmU6OkJpdG1hcFRleHR1cmVHTDo6aW5pdGlhbGl6ZURlcHRoQnVmZmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkJpdG1hcFRleHR1cmVHTDo6Y2xlYXJJZk5lZWRlZCk6CisgICAgICAgIChXZWJD
b3JlOjpCaXRtYXBUZXh0dXJlR0w6OmNyZWF0ZUZib0lmTmVlZGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OkJpdG1hcFRleHR1cmVHTDo6YmluZEFzU3VyZmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpC
aXRtYXBUZXh0dXJlR0w6On5CaXRtYXBUZXh0dXJlR0wpOgorICAgICAgICAoV2ViQ29yZTo6Qml0
bWFwVGV4dHVyZUdMOjpjb3B5RnJvbUV4dGVybmFsVGV4dHVyZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5oOgorICAgICAgICAoV2ViQ29yZTo6
Qml0bWFwVGV4dHVyZUdMOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVy
ZUdMOjp0ZXh0dXJlVGFyZ2V0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1
cmVHTDo6aW50ZXJuYWxGb3JtYXQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9CaXRtYXBUZXh0dXJlUG9vbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBU
ZXh0dXJlUG9vbDo6Y3JlYXRlVGV4dHVyZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFw
cGVyR0w6OmJpbmRTdXJmYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJHTDo6
Y3JlYXRlVGV4dHVyZSk6CisKKzIwMTctMDgtMDggIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0Bp
Z2FsaWEuY29tPgorCiAgICAgICAgIFtHU3RyZWFtZXJdIERvbid0IHVzZSBHcmFwaGljc0NvbnRl
eHQzRCBpbiBWaWRlb1RleHR1cmVDb3BlckdTdHJlYW1lcgogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0Nzc0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXJCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcAppbmRleCBlODgzMzVjN2FhOTYy
ZjM1OWEyMDMxY2VjNWEyNzVlNjI4OWFjNjUxLi5kOWI3NjJiMjYzMTdiZDEyYjdiZTQ0ZTEyYzg3
YWE4MGI3OWZhM2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lckJhc2UuY3BwCkBAIC02MjMsNyArNjIzLDcgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJCYXNlOjpwdXNoVGV4dHVyZVRvQ29tcG9zaXRvcigpCiAgICAgICAgIFRl
eHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcyBjb250ZXh0QXR0cmlidXRlczsKICAgICAgICAg
Y29udGV4dEF0dHJpYnV0ZXMuaW5pdGlhbGl6ZSgpOwogCi0gICAgICAgIGF1dG8gdGV4dHVyZSA9
IEJpdG1hcFRleHR1cmVHTDo6Y3JlYXRlKGNvbnRleHRBdHRyaWJ1dGVzLCAqbV9jb250ZXh0M0Qp
OworICAgICAgICBhdXRvIHRleHR1cmUgPSBCaXRtYXBUZXh0dXJlR0w6OmNyZWF0ZShjb250ZXh0
QXR0cmlidXRlcyk7CiAgICAgICAgIHRleHR1cmUtPnJlc2V0KHNpemUsIEdTVF9WSURFT19JTkZP
X0hBU19BTFBIQSgmdmlkZW9JbmZvKSA/IEJpdG1hcFRleHR1cmU6OlN1cHBvcnRzQWxwaGEgOiBC
aXRtYXBUZXh0dXJlOjpOb0ZsYWcpOwogICAgICAgICBidWZmZXIgPSBzdGQ6Om1ha2VfdW5pcXVl
PFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyPihXVEZNb3ZlKHRleHR1cmUpKTsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
Qml0bWFwVGV4dHVyZUdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9CaXRtYXBUZXh0dXJlR0wuY3BwCmluZGV4IDI2MmI5ZGYxNDlhNDMxOTkyYTBiMDczNGQ3
ZDJlZjFmMDhiN2ExNTkuLjRhNWUzYjI4ZTVjMWRlM2M4MDJiMTI1Mjk1OTNhNDY0MWIwNmRmODAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRt
YXBUZXh0dXJlR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9CaXRtYXBUZXh0dXJlR0wuY3BwCkBAIC0yNiw3ICsyNiw2IEBACiAKICNpbmNsdWRlICJF
eHRlbnNpb25zM0QuaCIKICNpbmNsdWRlICJGaWx0ZXJPcGVyYXRpb25zLmgiCi0jaW5jbHVkZSAi
R3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJMZW5ndGhG
dW5jdGlvbnMuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgpAQCAtNTcsMjcgKzU2LDI2
IEBAIEJpdG1hcFRleHR1cmVHTCogdG9CaXRtYXBUZXh0dXJlR0woQml0bWFwVGV4dHVyZSogdGV4
dHVyZSkKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Qml0bWFwVGV4dHVyZUdMKj4odGV4dHVyZSk7
CiB9CiAKLUJpdG1hcFRleHR1cmVHTDo6Qml0bWFwVGV4dHVyZUdMKGNvbnN0IFRleHR1cmVNYXBw
ZXJDb250ZXh0QXR0cmlidXRlcyYgY29udGV4dEF0dHJpYnV0ZXMsIFJlZlB0cjxHcmFwaGljc0Nv
bnRleHQzRD4mJiBjb250ZXh0M0QsIGNvbnN0IEZsYWdzIGZsYWdzLCBHQzNEaW50IGludGVybmFs
Rm9ybWF0KQorQml0bWFwVGV4dHVyZUdMOjpCaXRtYXBUZXh0dXJlR0woY29uc3QgVGV4dHVyZU1h
cHBlckNvbnRleHRBdHRyaWJ1dGVzJiBjb250ZXh0QXR0cmlidXRlcywgY29uc3QgRmxhZ3MgZmxh
Z3MsIEdMaW50IGludGVybmFsRm9ybWF0KQogICAgIDogbV9jb250ZXh0QXR0cmlidXRlcyhjb250
ZXh0QXR0cmlidXRlcykKLSAgICAsIG1fY29udGV4dDNEKFdURk1vdmUoY29udGV4dDNEKSkKIHsK
LSAgICBpZiAoaW50ZXJuYWxGb3JtYXQgIT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRPTlRfQ0FSRSkg
eworICAgIGlmIChpbnRlcm5hbEZvcm1hdCAhPSBHTF9ET05UX0NBUkUpIHsKICAgICAgICAgbV9p
bnRlcm5hbEZvcm1hdCA9IG1fZm9ybWF0ID0gaW50ZXJuYWxGb3JtYXQ7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKICAgICBpZiAoZmxhZ3MgJiBGQk9BdHRhY2htZW50KQotICAgICAgICBtX2lu
dGVybmFsRm9ybWF0ID0gbV9mb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQTsKKyAgICAg
ICAgbV9pbnRlcm5hbEZvcm1hdCA9IG1fZm9ybWF0ID0gR0xfUkdCQTsKICAgICBlbHNlIHsKICAg
ICAgICAgLy8gSWYgR0xfRVhUX3RleHR1cmVfZm9ybWF0X0JHUkE4ODg4IGlzIHN1cHBvcnRlZCBp
biB0aGUgT3BlbkdMRVMKICAgICAgICAgLy8gaW50ZXJuYWwgYW5kIGV4dGVybmFsIGZvcm1hdHMg
bmVlZCB0byBiZSBCR1JBCi0gICAgICAgIG1faW50ZXJuYWxGb3JtYXQgPSBHcmFwaGljc0NvbnRl
eHQzRDo6UkdCQTsKLSAgICAgICAgbV9mb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6QkdSQTsK
KyAgICAgICAgbV9pbnRlcm5hbEZvcm1hdCA9IEdMX1JHQkE7CisgICAgICAgIG1fZm9ybWF0ID0g
R0xfQkdSQTsKICAgICAgICAgaWYgKG1fY29udGV4dEF0dHJpYnV0ZXMuaXNHTEVTMkNvbXBsaWFu
dCkgewogICAgICAgICAgICAgaWYgKG1fY29udGV4dEF0dHJpYnV0ZXMuc3VwcG9ydHNCR1JBODg4
OCkKLSAgICAgICAgICAgICAgICBtX2ludGVybmFsRm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6
OkJHUkE7CisgICAgICAgICAgICAgICAgbV9pbnRlcm5hbEZvcm1hdCA9IEdMX0JHUkE7CiAgICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgbV9mb3JtYXQgPSBHcmFwaGljc0NvbnRleHQz
RDo6UkdCQTsKKyAgICAgICAgICAgICAgICBtX2Zvcm1hdCA9IEdMX1JHQkE7CiAgICAgICAgIH0K
ICAgICB9CiB9CkBAIC05NSw0OCArOTMsNDggQEAgc3RhdGljIHZvaWQgc3dpenpsZUJHUkFUb1JH
QkEodWludDMyX3QqIGRhdGEsIGNvbnN0IEludFJlY3QmIHJlY3QsIGludCBzdHJpZGUgPQogdm9p
ZCBCaXRtYXBUZXh0dXJlR0w6OmRpZFJlc2V0KCkKIHsKICAgICBpZiAoIW1faWQpCi0gICAgICAg
IG1faWQgPSBtX2NvbnRleHQzRC0+Y3JlYXRlVGV4dHVyZSgpOworICAgICAgICBnbEdlblRleHR1
cmVzKDEsICZtX2lkKTsKIAogICAgIG1fc2hvdWxkQ2xlYXIgPSB0cnVlOwogICAgIGlmIChtX3Rl
eHR1cmVTaXplID09IGNvbnRlbnRTaXplKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fdGV4
dHVyZVNpemUgPSBjb250ZW50U2l6ZSgpOwotICAgIG1fY29udGV4dDNELT5iaW5kVGV4dHVyZShH
cmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgbV9pZCk7Ci0gICAgbV9jb250ZXh0M0QtPnRl
eFBhcmFtZXRlcmkoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4
dDNEOjpURVhUVVJFX01JTl9GSUxURVIsIEdyYXBoaWNzQ29udGV4dDNEOjpMSU5FQVIpOwotICAg
IG1fY29udGV4dDNELT50ZXhQYXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJE
LCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9NQUdfRklMVEVSLCBHcmFwaGljc0NvbnRleHQz
RDo6TElORUFSKTsKLSAgICBtX2NvbnRleHQzRC0+dGV4UGFyYW1ldGVyaShHcmFwaGljc0NvbnRl
eHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9TLCBHcmFw
aGljc0NvbnRleHQzRDo6Q0xBTVBfVE9fRURHRSk7Ci0gICAgbV9jb250ZXh0M0QtPnRleFBhcmFt
ZXRlcmkoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpU
RVhUVVJFX1dSQVBfVCwgR3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VER0UpOworICAgIGds
QmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgbV9pZCk7CisgICAgZ2xUZXhQYXJhbWV0ZXJpKEdM
X1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xfTElORUFSKTsKKyAgICBnbFRl
eFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9NQUdfRklMVEVSLCBHTF9MSU5F
QVIpOworICAgIGdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX1dSQVBf
UywgR0xfQ0xBTVBfVE9fRURHRSk7CisgICAgZ2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQs
IEdMX1RFWFRVUkVfV1JBUF9ULCBHTF9DTEFNUF9UT19FREdFKTsKIAotICAgIG1fY29udGV4dDNE
LT50ZXhJbWFnZTJERGlyZWN0KEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCAwLCBtX2lu
dGVybmFsRm9ybWF0LCBtX3RleHR1cmVTaXplLndpZHRoKCksIG1fdGV4dHVyZVNpemUuaGVpZ2h0
KCksIDAsIG1fZm9ybWF0LCBtX3R5cGUsIDApOworICAgIGdsVGV4SW1hZ2UyRChHTF9URVhUVVJF
XzJELCAwLCBtX2ludGVybmFsRm9ybWF0LCBtX3RleHR1cmVTaXplLndpZHRoKCksIG1fdGV4dHVy
ZVNpemUuaGVpZ2h0KCksIDAsIG1fZm9ybWF0LCBtX3R5cGUsIDApOwogfQogCi12b2lkIEJpdG1h
cFRleHR1cmVHTDo6dXBkYXRlQ29udGVudHNOb1N3aXp6bGUoY29uc3Qgdm9pZCogc3JjRGF0YSwg
Y29uc3QgSW50UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgSW50UG9pbnQmIHNvdXJjZU9mZnNldCwg
aW50IGJ5dGVzUGVyTGluZSwgdW5zaWduZWQgYnl0ZXNQZXJQaXhlbCwgUGxhdGZvcm0zRE9iamVj
dCBnbEZvcm1hdCkKK3ZvaWQgQml0bWFwVGV4dHVyZUdMOjp1cGRhdGVDb250ZW50c05vU3dpenps
ZShjb25zdCB2b2lkKiBzcmNEYXRhLCBjb25zdCBJbnRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBJ
bnRQb2ludCYgc291cmNlT2Zmc2V0LCBpbnQgYnl0ZXNQZXJMaW5lLCB1bnNpZ25lZCBieXRlc1Bl
clBpeGVsLCBHTHVpbnQgZ2xGb3JtYXQpCiB7CiAgICAgLy8gRm9yIEVTIGRyaXZlcnMgdGhhdCBk
b24ndCBzdXBwb3J0IHN1Yi1pbWFnZXMuCiAgICAgYm9vbCBjb250ZXh0U3VwcG9ydHNVbnBhY2tT
dWJpbWFnZSA9IG1fY29udGV4dEF0dHJpYnV0ZXMuc3VwcG9ydHNVbnBhY2tTdWJpbWFnZTsKIAot
ICAgIG1fY29udGV4dDNELT5iaW5kVGV4dHVyZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8y
RCwgbV9pZCk7CisgICAgZ2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCBtX2lkKTsKIAogICAg
IGlmIChjb250ZXh0U3VwcG9ydHNVbnBhY2tTdWJpbWFnZSkgewogICAgICAgICAvLyBVc2UgdGhl
IE9wZW5HTCBzdWItaW1hZ2UgZXh0ZW5zaW9uLCBub3cgdGhhdCB3ZSBrbm93IGl0J3MgYXZhaWxh
YmxlLgotICAgICAgICBtX2NvbnRleHQzRC0+cGl4ZWxTdG9yZWkoR3JhcGhpY3NDb250ZXh0M0Q6
OlVOUEFDS19ST1dfTEVOR1RILCBieXRlc1BlckxpbmUgLyBieXRlc1BlclBpeGVsKTsKLSAgICAg
ICAgbV9jb250ZXh0M0QtPnBpeGVsU3RvcmVpKEdyYXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tfU0tJ
UF9ST1dTLCBzb3VyY2VPZmZzZXQueSgpKTsKLSAgICAgICAgbV9jb250ZXh0M0QtPnBpeGVsU3Rv
cmVpKEdyYXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tfU0tJUF9QSVhFTFMsIHNvdXJjZU9mZnNldC54
KCkpOworICAgICAgICBnbFBpeGVsU3RvcmVpKEdMX1VOUEFDS19ST1dfTEVOR1RILCBieXRlc1Bl
ckxpbmUgLyBieXRlc1BlclBpeGVsKTsKKyAgICAgICAgZ2xQaXhlbFN0b3JlaShHTF9VTlBBQ0tf
U0tJUF9ST1dTLCBzb3VyY2VPZmZzZXQueSgpKTsKKyAgICAgICAgZ2xQaXhlbFN0b3JlaShHTF9V
TlBBQ0tfU0tJUF9QSVhFTFMsIHNvdXJjZU9mZnNldC54KCkpOwogICAgIH0KIAotICAgIG1fY29u
dGV4dDNELT50ZXhTdWJJbWFnZTJEKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCAwLCB0
YXJnZXRSZWN0LngoKSwgdGFyZ2V0UmVjdC55KCksIHRhcmdldFJlY3Qud2lkdGgoKSwgdGFyZ2V0
UmVjdC5oZWlnaHQoKSwgZ2xGb3JtYXQsIG1fdHlwZSwgc3JjRGF0YSk7CisgICAgZ2xUZXhTdWJJ
bWFnZTJEKEdMX1RFWFRVUkVfMkQsIDAsIHRhcmdldFJlY3QueCgpLCB0YXJnZXRSZWN0LnkoKSwg
dGFyZ2V0UmVjdC53aWR0aCgpLCB0YXJnZXRSZWN0LmhlaWdodCgpLCBnbEZvcm1hdCwgbV90eXBl
LCBzcmNEYXRhKTsKIAogICAgIGlmIChjb250ZXh0U3VwcG9ydHNVbnBhY2tTdWJpbWFnZSkgewot
ICAgICAgICBtX2NvbnRleHQzRC0+cGl4ZWxTdG9yZWkoR3JhcGhpY3NDb250ZXh0M0Q6OlVOUEFD
S19ST1dfTEVOR1RILCAwKTsKLSAgICAgICAgbV9jb250ZXh0M0QtPnBpeGVsU3RvcmVpKEdyYXBo
aWNzQ29udGV4dDNEOjpVTlBBQ0tfU0tJUF9ST1dTLCAwKTsKLSAgICAgICAgbV9jb250ZXh0M0Qt
PnBpeGVsU3RvcmVpKEdyYXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tfU0tJUF9QSVhFTFMsIDApOwor
ICAgICAgICBnbFBpeGVsU3RvcmVpKEdMX1VOUEFDS19ST1dfTEVOR1RILCAwKTsKKyAgICAgICAg
Z2xQaXhlbFN0b3JlaShHTF9VTlBBQ0tfU0tJUF9ST1dTLCAwKTsKKyAgICAgICAgZ2xQaXhlbFN0
b3JlaShHTF9VTlBBQ0tfU0tJUF9QSVhFTFMsIDApOwogICAgIH0KIH0KIAogdm9pZCBCaXRtYXBU
ZXh0dXJlR0w6OnVwZGF0ZUNvbnRlbnRzKGNvbnN0IHZvaWQqIHNyY0RhdGEsIGNvbnN0IEludFJl
Y3QmIHRhcmdldFJlY3QsIGNvbnN0IEludFBvaW50JiBzb3VyY2VPZmZzZXQsIGludCBieXRlc1Bl
ckxpbmUsIFVwZGF0ZUNvbnRlbnRzRmxhZyB1cGRhdGVDb250ZW50c0ZsYWcpCiB7Ci0gICAgbV9j
b250ZXh0M0QtPmJpbmRUZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBtX2lk
KTsKKyAgICBnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIG1faWQpOwogCiAgICAgY29uc3Qg
dW5zaWduZWQgYnl0ZXNQZXJQaXhlbCA9IDQ7CiAgICAgY2hhciogZGF0YSA9IHJlaW50ZXJwcmV0
X2Nhc3Q8Y2hhcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KHNyY0RhdGEpKTsKQEAgLTE0OCw3ICsxNDYs
NyBAQCB2b2lkIEJpdG1hcFRleHR1cmVHTDo6dXBkYXRlQ29udGVudHMoY29uc3Qgdm9pZCogc3Jj
RGF0YSwgY29uc3QgSW50UmVjdCYgdGFyZ2V0UgogICAgICAgICAmJiAhKGJ5dGVzUGVyTGluZSA9
PSBzdGF0aWNfY2FzdDxpbnQ+KHRhcmdldFJlY3Qud2lkdGgoKSAqIGJ5dGVzUGVyUGl4ZWwpICYm
IGFkanVzdGVkU291cmNlT2Zmc2V0ID09IEludFBvaW50Ojp6ZXJvKCkpOwogCiAgICAgLy8gcHJl
cGFyZSB0ZW1wb3JhcnlEYXRhIGlmIG5lY2Vzc2FyeQotICAgIGlmICgobV9mb3JtYXQgPT0gR3Jh
cGhpY3NDb250ZXh0M0Q6OlJHQkEgJiYgdXBkYXRlQ29udGVudHNGbGFnID09IFVwZGF0ZUNhbm5v
dE1vZGlmeU9yaWdpbmFsSW1hZ2VEYXRhKSB8fCByZXF1aXJlU3ViSW1hZ2VCdWZmZXIpIHsKKyAg
ICBpZiAoKG1fZm9ybWF0ID09IEdMX1JHQkEgJiYgdXBkYXRlQ29udGVudHNGbGFnID09IFVwZGF0
ZUNhbm5vdE1vZGlmeU9yaWdpbmFsSW1hZ2VEYXRhKSB8fCByZXF1aXJlU3ViSW1hZ2VCdWZmZXIp
IHsKICAgICAgICAgdGVtcG9yYXJ5RGF0YS5yZXNpemUodGFyZ2V0UmVjdC53aWR0aCgpICogdGFy
Z2V0UmVjdC5oZWlnaHQoKSAqIGJ5dGVzUGVyUGl4ZWwpOwogICAgICAgICBkYXRhID0gdGVtcG9y
YXJ5RGF0YS5kYXRhKCk7CiAgICAgICAgIGNvbnN0IGNoYXIqIGJpdHMgPSBzdGF0aWNfY2FzdDxj
b25zdCBjaGFyKj4oc3JjRGF0YSk7CkBAIC0xNjUsNyArMTYzLDcgQEAgdm9pZCBCaXRtYXBUZXh0
dXJlR0w6OnVwZGF0ZUNvbnRlbnRzKGNvbnN0IHZvaWQqIHNyY0RhdGEsIGNvbnN0IEludFJlY3Qm
IHRhcmdldFIKICAgICAgICAgYWRqdXN0ZWRTb3VyY2VPZmZzZXQgPSBJbnRQb2ludCgwLCAwKTsK
ICAgICB9CiAKLSAgICBpZiAobV9mb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEpCisg
ICAgaWYgKG1fZm9ybWF0ID09IEdMX1JHQkEpCiAgICAgICAgIHN3aXp6bGVCR1JBVG9SR0JBKHJl
aW50ZXJwcmV0X2Nhc3RfcHRyPHVpbnQzMl90Kj4oZGF0YSksIEludFJlY3QoYWRqdXN0ZWRTb3Vy
Y2VPZmZzZXQsIHRhcmdldFJlY3Quc2l6ZSgpKSwgYnl0ZXNQZXJMaW5lIC8gYnl0ZXNQZXJQaXhl
bCk7CiAKICAgICB1cGRhdGVDb250ZW50c05vU3dpenpsZShkYXRhLCB0YXJnZXRSZWN0LCBhZGp1
c3RlZFNvdXJjZU9mZnNldCwgYnl0ZXNQZXJMaW5lLCBieXRlc1BlclBpeGVsLCBtX2Zvcm1hdCk7
CkBAIC0yNjEsMTMgKzI1OSwxMyBAQCB2b2lkIEJpdG1hcFRleHR1cmVHTDo6aW5pdGlhbGl6ZVN0
ZW5jaWwoKQogICAgIGlmIChtX3JibykKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9yYm8gPSBt
X2NvbnRleHQzRC0+Y3JlYXRlUmVuZGVyYnVmZmVyKCk7Ci0gICAgbV9jb250ZXh0M0QtPmJpbmRS
ZW5kZXJidWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUiwgbV9yYm8pOwotICAg
IG1fY29udGV4dDNELT5yZW5kZXJidWZmZXJTdG9yYWdlKEdyYXBoaWNzQ29udGV4dDNEOjpSRU5E
RVJCVUZGRVIsIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0lOREVYOCwgbV90ZXh0dXJlU2l6
ZS53aWR0aCgpLCBtX3RleHR1cmVTaXplLmhlaWdodCgpKTsKLSAgICBtX2NvbnRleHQzRC0+Ymlu
ZFJlbmRlcmJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSQlVGRkVSLCAwKTsKLSAgICBt
X2NvbnRleHQzRC0+ZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkZS
QU1FQlVGRkVSLCBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9BVFRBQ0hNRU5ULCBHcmFwaGlj
c0NvbnRleHQzRDo6UkVOREVSQlVGRkVSLCBtX3Jibyk7Ci0gICAgbV9jb250ZXh0M0QtPmNsZWFy
U3RlbmNpbCgwKTsKLSAgICBtX2NvbnRleHQzRC0+Y2xlYXIoR3JhcGhpY3NDb250ZXh0M0Q6OlNU
RU5DSUxfQlVGRkVSX0JJVCk7CisgICAgZ2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX3Jibyk7Cisg
ICAgZ2xCaW5kUmVuZGVyYnVmZmVyKEdMX1JFTkRFUkJVRkZFUiwgbV9yYm8pOworICAgIGdsUmVu
ZGVyYnVmZmVyU3RvcmFnZShHTF9SRU5ERVJCVUZGRVIsIEdMX1NURU5DSUxfSU5ERVg4LCBtX3Rl
eHR1cmVTaXplLndpZHRoKCksIG1fdGV4dHVyZVNpemUuaGVpZ2h0KCkpOworICAgIGdsQmluZFJl
bmRlcmJ1ZmZlcihHTF9SRU5ERVJCVUZGRVIsIDApOworICAgIGdsRnJhbWVidWZmZXJSZW5kZXJi
dWZmZXIoR0xfRlJBTUVCVUZGRVIsIEdMX1NURU5DSUxfQVRUQUNITUVOVCwgR0xfUkVOREVSQlVG
RkVSLCBtX3Jibyk7CisgICAgZ2xDbGVhclN0ZW5jaWwoMCk7CisgICAgZ2xDbGVhcihHTF9TVEVO
Q0lMX0JVRkZFUl9CSVQpOwogfQogCiB2b2lkIEJpdG1hcFRleHR1cmVHTDo6aW5pdGlhbGl6ZURl
cHRoQnVmZmVyKCkKQEAgLTI3NSwxMSArMjczLDExIEBAIHZvaWQgQml0bWFwVGV4dHVyZUdMOjpp
bml0aWFsaXplRGVwdGhCdWZmZXIoKQogICAgIGlmIChtX2RlcHRoQnVmZmVyT2JqZWN0KQogICAg
ICAgICByZXR1cm47CiAKLSAgICBtX2RlcHRoQnVmZmVyT2JqZWN0ID0gbV9jb250ZXh0M0QtPmNy
ZWF0ZVJlbmRlcmJ1ZmZlcigpOwotICAgIG1fY29udGV4dDNELT5iaW5kUmVuZGVyYnVmZmVyKEdy
YXBoaWNzQ29udGV4dDNEOjpSRU5ERVJCVUZGRVIsIG1fZGVwdGhCdWZmZXJPYmplY3QpOwotICAg
IG1fY29udGV4dDNELT5yZW5kZXJidWZmZXJTdG9yYWdlKEdyYXBoaWNzQ29udGV4dDNEOjpSRU5E
RVJCVUZGRVIsIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9DT01QT05FTlQxNiwgbV90ZXh0dXJl
U2l6ZS53aWR0aCgpLCBtX3RleHR1cmVTaXplLmhlaWdodCgpKTsKLSAgICBtX2NvbnRleHQzRC0+
YmluZFJlbmRlcmJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSQlVGRkVSLCAwKTsKLSAg
ICBtX2NvbnRleHQzRC0+ZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6
OkZSQU1FQlVGRkVSLCBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQVRUQUNITUVOVCwgR3JhcGhp
Y3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUiwgbV9kZXB0aEJ1ZmZlck9iamVjdCk7CisgICAgZ2xH
ZW5SZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoQnVmZmVyT2JqZWN0KTsKKyAgICBnbEJpbmRSZW5k
ZXJidWZmZXIoR0xfUkVOREVSQlVGRkVSLCBtX2RlcHRoQnVmZmVyT2JqZWN0KTsKKyAgICBnbFJl
bmRlcmJ1ZmZlclN0b3JhZ2UoR0xfUkVOREVSQlVGRkVSLCBHTF9ERVBUSF9DT01QT05FTlQxNiwg
bV90ZXh0dXJlU2l6ZS53aWR0aCgpLCBtX3RleHR1cmVTaXplLmhlaWdodCgpKTsKKyAgICBnbEJp
bmRSZW5kZXJidWZmZXIoR0xfUkVOREVSQlVGRkVSLCAwKTsKKyAgICBnbEZyYW1lYnVmZmVyUmVu
ZGVyYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBHTF9ERVBUSF9BVFRBQ0hNRU5ULCBHTF9SRU5ERVJC
VUZGRVIsIG1fZGVwdGhCdWZmZXJPYmplY3QpOwogfQogCiB2b2lkIEJpdG1hcFRleHR1cmVHTDo6
Y2xlYXJJZk5lZWRlZCgpCkBAIC0yODksOCArMjg3LDggQEAgdm9pZCBCaXRtYXBUZXh0dXJlR0w6
OmNsZWFySWZOZWVkZWQoKQogCiAgICAgbV9jbGlwU3RhY2sucmVzZXQoSW50UmVjdChJbnRQb2lu
dDo6emVybygpLCBtX3RleHR1cmVTaXplKSwgQ2xpcFN0YWNrOjpZQXhpc01vZGU6OkRlZmF1bHQp
OwogICAgIG1fY2xpcFN0YWNrLmFwcGx5SWZOZWVkZWQoKTsKLSAgICBtX2NvbnRleHQzRC0+Y2xl
YXJDb2xvcigwLCAwLCAwLCAwKTsKLSAgICBtX2NvbnRleHQzRC0+Y2xlYXIoR3JhcGhpY3NDb250
ZXh0M0Q6OkNPTE9SX0JVRkZFUl9CSVQpOworICAgIGdsQ2xlYXJDb2xvcigwLCAwLCAwLCAwKTsK
KyAgICBnbENsZWFyKEdMX0NPTE9SX0JVRkZFUl9CSVQpOwogICAgIG1fc2hvdWxkQ2xlYXIgPSBm
YWxzZTsKIH0KIApAQCAtMjk5LDE4ICsyOTcsMTggQEAgdm9pZCBCaXRtYXBUZXh0dXJlR0w6OmNy
ZWF0ZUZib0lmTmVlZGVkKCkKICAgICBpZiAobV9mYm8pCiAgICAgICAgIHJldHVybjsKIAotICAg
IG1fZmJvID0gbV9jb250ZXh0M0QtPmNyZWF0ZUZyYW1lYnVmZmVyKCk7Ci0gICAgbV9jb250ZXh0
M0QtPmJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIG1fZmJv
KTsKLSAgICBtX2NvbnRleHQzRC0+ZnJhbWVidWZmZXJUZXh0dXJlMkQoR3JhcGhpY3NDb250ZXh0
M0Q6OkZSQU1FQlVGRkVSLCBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQVRUQUNITUVOVDAsIEdy
YXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBpZCgpLCAwKTsKKyAgICBnbEdlbkZyYW1lYnVm
ZmVycygxLCAmbV9mYm8pOworICAgIGdsQmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBt
X2Zibyk7CisgICAgZ2xGcmFtZWJ1ZmZlclRleHR1cmUyRChHTF9GUkFNRUJVRkZFUiwgR0xfQ09M
T1JfQVRUQUNITUVOVDAsIEdMX1RFWFRVUkVfMkQsIGlkKCksIDApOwogICAgIG1fc2hvdWxkQ2xl
YXIgPSB0cnVlOwogfQogCi12b2lkIEJpdG1hcFRleHR1cmVHTDo6YmluZEFzU3VyZmFjZShHcmFw
aGljc0NvbnRleHQzRCogY29udGV4dDNEKQordm9pZCBCaXRtYXBUZXh0dXJlR0w6OmJpbmRBc1N1
cmZhY2UoKQogewotICAgIGNvbnRleHQzRC0+YmluZFRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0Q6
OlRFWFRVUkVfMkQsIDApOworICAgIGdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgMCk7CiAg
ICAgY3JlYXRlRmJvSWZOZWVkZWQoKTsKLSAgICBjb250ZXh0M0QtPmJpbmRGcmFtZWJ1ZmZlcihH
cmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIG1fZmJvKTsKLSAgICBjb250ZXh0M0QtPnZp
ZXdwb3J0KDAsIDAsIG1fdGV4dHVyZVNpemUud2lkdGgoKSwgbV90ZXh0dXJlU2l6ZS5oZWlnaHQo
KSk7CisgICAgZ2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fZmJvKTsKKyAgICBn
bFZpZXdwb3J0KDAsIDAsIG1fdGV4dHVyZVNpemUud2lkdGgoKSwgbV90ZXh0dXJlU2l6ZS5oZWln
aHQoKSk7CiAgICAgY2xlYXJJZk5lZWRlZCgpOwogICAgIG1fY2xpcFN0YWNrLmFwcGx5KCk7CiB9
CkBAIC0zMTgsMTYgKzMxNiwxNiBAQCB2b2lkIEJpdG1hcFRleHR1cmVHTDo6YmluZEFzU3VyZmFj
ZShHcmFwaGljc0NvbnRleHQzRCogY29udGV4dDNEKQogQml0bWFwVGV4dHVyZUdMOjp+Qml0bWFw
VGV4dHVyZUdMKCkKIHsKICAgICBpZiAobV9pZCkKLSAgICAgICAgbV9jb250ZXh0M0QtPmRlbGV0
ZVRleHR1cmUobV9pZCk7CisgICAgICAgIGdsRGVsZXRlVGV4dHVyZXMoMSwgJm1faWQpOwogCiAg
ICAgaWYgKG1fZmJvKQotICAgICAgICBtX2NvbnRleHQzRC0+ZGVsZXRlRnJhbWVidWZmZXIobV9m
Ym8pOworICAgICAgICBnbERlbGV0ZUZyYW1lYnVmZmVycygxLCAmbV9mYm8pOwogCiAgICAgaWYg
KG1fcmJvKQotICAgICAgICBtX2NvbnRleHQzRC0+ZGVsZXRlUmVuZGVyYnVmZmVyKG1fcmJvKTsK
KyAgICAgICAgZ2xEZWxldGVSZW5kZXJidWZmZXJzKDEsICZtX3Jibyk7CiAKICAgICBpZiAobV9k
ZXB0aEJ1ZmZlck9iamVjdCkKLSAgICAgICAgbV9jb250ZXh0M0QtPmRlbGV0ZVJlbmRlcmJ1ZmZl
cihtX2RlcHRoQnVmZmVyT2JqZWN0KTsKKyAgICAgICAgZ2xEZWxldGVSZW5kZXJidWZmZXJzKDEs
ICZtX2RlcHRoQnVmZmVyT2JqZWN0KTsKIH0KIAogYm9vbCBCaXRtYXBUZXh0dXJlR0w6OmlzVmFs
aWQoKSBjb25zdApAQCAtMzQxLDMxICszMzksMzIgQEAgSW50U2l6ZSBCaXRtYXBUZXh0dXJlR0w6
OnNpemUoKSBjb25zdAogfQogCiAKLXZvaWQgQml0bWFwVGV4dHVyZUdMOjpjb3B5RnJvbUV4dGVy
bmFsVGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0IHNvdXJjZVRleHR1cmVJRCkKK3ZvaWQgQml0bWFw
VGV4dHVyZUdMOjpjb3B5RnJvbUV4dGVybmFsVGV4dHVyZShHTHVpbnQgc291cmNlVGV4dHVyZUlE
KQogewotICAgIEdDM0RpbnQgYm91bmRUZXh0dXJlID0gMDsKLSAgICBHQzNEaW50IGJvdW5kRnJh
bWVidWZmZXIgPSAwOwotICAgIEdDM0RpbnQgYm91bmRBY3RpdmVUZXh0dXJlID0gMDsKLQotICAg
IG1fY29udGV4dDNELT5nZXRJbnRlZ2VydihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9CSU5E
SU5HXzJELCAmYm91bmRUZXh0dXJlKTsKLSAgICBtX2NvbnRleHQzRC0+Z2V0SW50ZWdlcnYoR3Jh
cGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0JJTkRJTkcsICZib3VuZEZyYW1lYnVmZmVyKTsK
LSAgICBtX2NvbnRleHQzRC0+Z2V0SW50ZWdlcnYoR3JhcGhpY3NDb250ZXh0M0Q6OkFDVElWRV9U
RVhUVVJFLCAmYm91bmRBY3RpdmVUZXh0dXJlKTsKLQotICAgIG1fY29udGV4dDNELT5iaW5kVGV4
dHVyZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgc291cmNlVGV4dHVyZUlEKTsKLQot
ICAgIFBsYXRmb3JtM0RPYmplY3QgY29weUZibyA9IG1fY29udGV4dDNELT5jcmVhdGVGcmFtZWJ1
ZmZlcigpOwotICAgIG1fY29udGV4dDNELT5iaW5kRnJhbWVidWZmZXIoR3JhcGhpY3NDb250ZXh0
M0Q6OkZSQU1FQlVGRkVSLCBjb3B5RmJvKTsKLSAgICBtX2NvbnRleHQzRC0+ZnJhbWVidWZmZXJU
ZXh0dXJlMkQoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSLCBHcmFwaGljc0NvbnRleHQz
RDo6Q09MT1JfQVRUQUNITUVOVDAsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBzb3Vy
Y2VUZXh0dXJlSUQsIDApOwotCi0gICAgbV9jb250ZXh0M0QtPmFjdGl2ZVRleHR1cmUoR3JhcGhp
Y3NDb250ZXh0M0Q6OlRFWFRVUkUwKTsKLSAgICBtX2NvbnRleHQzRC0+YmluZFRleHR1cmUoR3Jh
cGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIGlkKCkpOwotICAgIG1fY29udGV4dDNELT5jb3B5
VGV4U3ViSW1hZ2UyRChHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgMCwgMCwgMCwgMCwg
MCwgbV90ZXh0dXJlU2l6ZS53aWR0aCgpLCBtX3RleHR1cmVTaXplLmhlaWdodCgpKTsKLQotICAg
IG1fY29udGV4dDNELT5iaW5kVGV4dHVyZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwg
Ym91bmRUZXh0dXJlKTsKLSAgICBtX2NvbnRleHQzRC0+YmluZEZyYW1lYnVmZmVyKEdyYXBoaWNz
Q29udGV4dDNEOjpGUkFNRUJVRkZFUiwgYm91bmRGcmFtZWJ1ZmZlcik7Ci0gICAgbV9jb250ZXh0
M0QtPmJpbmRUZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBib3VuZFRleHR1
cmUpOwotICAgIG1fY29udGV4dDNELT5hY3RpdmVUZXh0dXJlKGJvdW5kQWN0aXZlVGV4dHVyZSk7
Ci0gICAgbV9jb250ZXh0M0QtPmRlbGV0ZUZyYW1lYnVmZmVyKGNvcHlGYm8pOworICAgIEdMaW50
IGJvdW5kVGV4dHVyZSA9IDA7CisgICAgR0xpbnQgYm91bmRGcmFtZWJ1ZmZlciA9IDA7CisgICAg
R0xpbnQgYm91bmRBY3RpdmVUZXh0dXJlID0gMDsKKworICAgIGdsR2V0SW50ZWdlcnYoR0xfVEVY
VFVSRV9CSU5ESU5HXzJELCAmYm91bmRUZXh0dXJlKTsKKyAgICBnbEdldEludGVnZXJ2KEdMX0ZS
QU1FQlVGRkVSX0JJTkRJTkcsICZib3VuZEZyYW1lYnVmZmVyKTsKKyAgICBnbEdldEludGVnZXJ2
KEdMX0FDVElWRV9URVhUVVJFLCAmYm91bmRBY3RpdmVUZXh0dXJlKTsKKworICAgIGdsQmluZFRl
eHR1cmUoR0xfVEVYVFVSRV8yRCwgc291cmNlVGV4dHVyZUlEKTsKKworICAgIEdMdWludCBjb3B5
RmJvID0gMDsKKyAgICBnbEdlbkZyYW1lYnVmZmVycygxLCAmY29weUZibyk7CisgICAgZ2xCaW5k
RnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIGNvcHlGYm8pOworICAgIGdsRnJhbWVidWZmZXJU
ZXh0dXJlMkQoR0xfRlJBTUVCVUZGRVIsIEdMX0NPTE9SX0FUVEFDSE1FTlQwLCBHTF9URVhUVVJF
XzJELCBzb3VyY2VUZXh0dXJlSUQsIDApOworCisgICAgZ2xBY3RpdmVUZXh0dXJlKEdMX1RFWFRV
UkUwKTsKKyAgICBnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIGlkKCkpOworICAgIGdsQ29w
eVRleFN1YkltYWdlMkQoR0xfVEVYVFVSRV8yRCwgMCwgMCwgMCwgMCwgMCwgbV90ZXh0dXJlU2l6
ZS53aWR0aCgpLCBtX3RleHR1cmVTaXplLmhlaWdodCgpKTsKKworICAgIGdsQmluZFRleHR1cmUo
R0xfVEVYVFVSRV8yRCwgYm91bmRUZXh0dXJlKTsKKyAgICBnbEJpbmRGcmFtZWJ1ZmZlcihHTF9G
UkFNRUJVRkZFUiwgYm91bmRGcmFtZWJ1ZmZlcik7CisgICAgZ2xCaW5kVGV4dHVyZShHTF9URVhU
VVJFXzJELCBib3VuZFRleHR1cmUpOworICAgIGdsQWN0aXZlVGV4dHVyZShib3VuZEFjdGl2ZVRl
eHR1cmUpOworICAgIGdsRGVsZXRlRnJhbWVidWZmZXJzKDEsICZjb3B5RmJvKTsKIH0KIAogfTsg
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuaAppbmRleCAzZWI0OGEzNDkxMDM2
ZDRkOTBlMDlhZjI2N2Q2YmIwZjZlZTg2MTMxLi43NDA5MGE0ZGQyYmMyNGVjODk4NWYwZGFiMGQ4
OWU2YWZmYmRlZmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5oCkBAIC0yNiwxMCArMjYsMTAgQEAKICNp
bmNsdWRlICJCaXRtYXBUZXh0dXJlLmgiCiAjaW5jbHVkZSAiQ2xpcFN0YWNrLmgiCiAjaW5jbHVk
ZSAiRmlsdGVyT3BlcmF0aW9uLmgiCi0jaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKICNp
bmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1
dGVzLmgiCiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlckdMLmgiCisjaW5jbHVkZSAiVGV4dHVyZU1h
cHBlckdMSGVhZGVycy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM5LDkgKzM5LDkg
QEAgY2xhc3MgRmlsdGVyT3BlcmF0aW9uOwogCiBjbGFzcyBCaXRtYXBUZXh0dXJlR0wgOiBwdWJs
aWMgQml0bWFwVGV4dHVyZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxCaXRtYXBUZXh0dXJl
PiBjcmVhdGUoY29uc3QgVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1dGVzJiBjb250ZXh0QXR0
cmlidXRlcywgUmVmPEdyYXBoaWNzQ29udGV4dDNEPiYmIGNvbnRleHQzRCwgY29uc3QgRmxhZ3Mg
ZmxhZ3MgPSBOb0ZsYWcsIEdDM0RpbnQgaW50ZXJuYWxGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQz
RDo6RE9OVF9DQVJFKQorICAgIHN0YXRpYyBSZWY8Qml0bWFwVGV4dHVyZT4gY3JlYXRlKGNvbnN0
IFRleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcyYgY29udGV4dEF0dHJpYnV0ZXMsIGNvbnN0
IEZsYWdzIGZsYWdzID0gTm9GbGFnLCBHTGludCBpbnRlcm5hbEZvcm1hdCA9IEdMX0RPTlRfQ0FS
RSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEJpdG1hcFRleHR1cmVHTChj
b250ZXh0QXR0cmlidXRlcywgV1RGTW92ZShjb250ZXh0M0QpLCBmbGFncywgaW50ZXJuYWxGb3Jt
YXQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQml0bWFwVGV4dHVyZUdMKGNvbnRl
eHRBdHRyaWJ1dGVzLCBmbGFncywgaW50ZXJuYWxGb3JtYXQpKTsKICAgICB9CiAKICAgICB2aXJ0
dWFsIH5CaXRtYXBUZXh0dXJlR0woKTsKQEAgLTQ5LDE1ICs0OSwxNSBAQCBwdWJsaWM6CiAgICAg
SW50U2l6ZSBzaXplKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRSZXNldCgpIG92ZXJyaWRlOwotICAgIHZvaWQgYmluZEFz
U3VyZmFjZShHcmFwaGljc0NvbnRleHQzRCopOworICAgIHZvaWQgYmluZEFzU3VyZmFjZSgpOwog
ICAgIHZvaWQgaW5pdGlhbGl6ZVN0ZW5jaWwoKTsKICAgICB2b2lkIGluaXRpYWxpemVEZXB0aEJ1
ZmZlcigpOwogICAgIHZpcnR1YWwgdWludDMyX3QgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9
Ci0gICAgdWludDMyX3QgdGV4dHVyZVRhcmdldCgpIGNvbnN0IHsgcmV0dXJuIEdyYXBoaWNzQ29u
dGV4dDNEOjpURVhUVVJFXzJEOyB9CisgICAgdWludDMyX3QgdGV4dHVyZVRhcmdldCgpIGNvbnN0
IHsgcmV0dXJuIEdMX1RFWFRVUkVfMkQ7IH0KICAgICBJbnRTaXplIHRleHR1cmVTaXplKCkgY29u
c3QgeyByZXR1cm4gbV90ZXh0dXJlU2l6ZTsgfQogICAgIHZvaWQgdXBkYXRlQ29udGVudHMoSW1h
Z2UqLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UG9pbnQmLCBVcGRhdGVDb250ZW50c0ZsYWcp
IG92ZXJyaWRlOwogICAgIHZvaWQgdXBkYXRlQ29udGVudHMoY29uc3Qgdm9pZCosIGNvbnN0IElu
dFJlY3QmIHRhcmdldCwgY29uc3QgSW50UG9pbnQmIHNvdXJjZU9mZnNldCwgaW50IGJ5dGVzUGVy
TGluZSwgVXBkYXRlQ29udGVudHNGbGFnKSBvdmVycmlkZTsKLSAgICB2b2lkIHVwZGF0ZUNvbnRl
bnRzTm9Td2l6emxlKGNvbnN0IHZvaWQqLCBjb25zdCBJbnRSZWN0JiB0YXJnZXQsIGNvbnN0IElu
dFBvaW50JiBzb3VyY2VPZmZzZXQsIGludCBieXRlc1BlckxpbmUsIHVuc2lnbmVkIGJ5dGVzUGVy
UGl4ZWwgPSA0LCBQbGF0Zm9ybTNET2JqZWN0IGdsRm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6
OlJHQkEpOworICAgIHZvaWQgdXBkYXRlQ29udGVudHNOb1N3aXp6bGUoY29uc3Qgdm9pZCosIGNv
bnN0IEludFJlY3QmIHRhcmdldCwgY29uc3QgSW50UG9pbnQmIHNvdXJjZU9mZnNldCwgaW50IGJ5
dGVzUGVyTGluZSwgdW5zaWduZWQgYnl0ZXNQZXJQaXhlbCA9IDQsIEdMdWludCBnbEZvcm1hdCA9
IEdMX1JHQkEpOwogICAgIGJvb2wgaXNCYWNrZWRCeU9wZW5HTCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIHRydWU7IH0KIAogICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiBhcHBseUZpbHRlcnMo
VGV4dHVyZU1hcHBlciYsIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmKSBvdmVycmlkZTsKQEAgLTc1
LDM2ICs3NSwzNSBAQCBwdWJsaWM6CiAgICAgY29uc3QgRmlsdGVySW5mbyogZmlsdGVySW5mbygp
IGNvbnN0IHsgcmV0dXJuICZtX2ZpbHRlckluZm87IH0KICAgICBDbGlwU3RhY2smIGNsaXBTdGFj
aygpIHsgcmV0dXJuIG1fY2xpcFN0YWNrOyB9CiAKLSAgICBHQzNEaW50IGludGVybmFsRm9ybWF0
KCkgY29uc3QgeyByZXR1cm4gbV9pbnRlcm5hbEZvcm1hdDsgfQorICAgIEdMaW50IGludGVybmFs
Rm9ybWF0KCkgY29uc3QgeyByZXR1cm4gbV9pbnRlcm5hbEZvcm1hdDsgfQogCi0gICAgdm9pZCBj
b3B5RnJvbUV4dGVybmFsVGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0IHRleHR1cmVJRCk7CisgICAg
dm9pZCBjb3B5RnJvbUV4dGVybmFsVGV4dHVyZShHTHVpbnQgdGV4dHVyZUlEKTsKIAogcHJpdmF0
ZToKLSAgICBCaXRtYXBUZXh0dXJlR0woY29uc3QgVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1
dGVzJiwgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiYmLCBjb25zdCBGbGFncywgR0MzRGludCBp
bnRlcm5hbEZvcm1hdCk7CisgICAgQml0bWFwVGV4dHVyZUdMKGNvbnN0IFRleHR1cmVNYXBwZXJD
b250ZXh0QXR0cmlidXRlcyYsIGNvbnN0IEZsYWdzLCBHTGludCBpbnRlcm5hbEZvcm1hdCk7CiAK
LSAgICBQbGF0Zm9ybTNET2JqZWN0IG1faWQgeyAwIH07CisgICAgR0x1aW50IG1faWQgeyAwIH07
CiAgICAgSW50U2l6ZSBtX3RleHR1cmVTaXplOwogICAgIEludFJlY3QgbV9kaXJ0eVJlY3Q7Ci0g
ICAgUGxhdGZvcm0zRE9iamVjdCBtX2ZibyB7IDAgfTsKLSAgICBQbGF0Zm9ybTNET2JqZWN0IG1f
cmJvIHsgMCB9OwotICAgIFBsYXRmb3JtM0RPYmplY3QgbV9kZXB0aEJ1ZmZlck9iamVjdCB7IDAg
fTsKKyAgICBHTHVpbnQgbV9mYm8geyAwIH07CisgICAgR0x1aW50IG1fcmJvIHsgMCB9OworICAg
IEdMdWludCBtX2RlcHRoQnVmZmVyT2JqZWN0IHsgMCB9OwogICAgIGJvb2wgbV9zaG91bGRDbGVh
ciB7IHRydWUgfTsKICAgICBDbGlwU3RhY2sgbV9jbGlwU3RhY2s7CiAgICAgVGV4dHVyZU1hcHBl
ckNvbnRleHRBdHRyaWJ1dGVzIG1fY29udGV4dEF0dHJpYnV0ZXM7Ci0gICAgUmVmUHRyPEdyYXBo
aWNzQ29udGV4dDNEPiBtX2NvbnRleHQzRDsKIAogICAgIHZvaWQgY2xlYXJJZk5lZWRlZCgpOwog
ICAgIHZvaWQgY3JlYXRlRmJvSWZOZWVkZWQoKTsKIAogICAgIEZpbHRlckluZm8gbV9maWx0ZXJJ
bmZvOwogCi0gICAgR0MzRGludCBtX2ludGVybmFsRm9ybWF0OwotICAgIEdDM0RlbnVtIG1fZm9y
bWF0OwotICAgIEdDM0RlbnVtIG1fdHlwZSB7CisgICAgR0xpbnQgbV9pbnRlcm5hbEZvcm1hdDsK
KyAgICBHTGVudW0gbV9mb3JtYXQ7CisgICAgR0xlbnVtIG1fdHlwZSB7CiAjaWYgT1MoREFSV0lO
KQogICAgICAgICBHTF9VTlNJR05FRF9JTlRfOF84XzhfOF9SRVYKICNlbHNlCi0gICAgICAgIEdy
YXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFCisgICAgICAgIEdMX1VOU0lHTkVEX0JZVEUK
ICNlbmRpZgogICAgIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVQb29sLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlUG9vbC5jcHAKaW5kZXggYjhhMWU1
NDgzOWRmNzBjYmMxODJkMTYwZjYwZjE4YTU2NTFiYWY5My4uYTQxZDBjOWU1YzVmNzYwZmU5OWFk
OWQ4OTM1OWNiZmQxZDQ5YmVmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZVBvb2wuY3BwCkBAIC05NCw3
ICs5NCw3IEBAIHZvaWQgQml0bWFwVGV4dHVyZVBvb2w6OnJlbGVhc2VVbnVzZWRUZXh0dXJlc1Rp
bWVyRmlyZWQoKQogUmVmUHRyPEJpdG1hcFRleHR1cmU+IEJpdG1hcFRleHR1cmVQb29sOjpjcmVh
dGVUZXh0dXJlKGNvbnN0IEJpdG1hcFRleHR1cmU6OkZsYWdzIGZsYWdzKQogewogI2lmIFVTRShU
RVhUVVJFX01BUFBFUl9HTCkKLSAgICByZXR1cm4gQml0bWFwVGV4dHVyZUdMOjpjcmVhdGUobV9j
b250ZXh0QXR0cmlidXRlcywgKm1fY29udGV4dDNELCBmbGFncyk7CisgICAgcmV0dXJuIEJpdG1h
cFRleHR1cmVHTDo6Y3JlYXRlKG1fY29udGV4dEF0dHJpYnV0ZXMsIGZsYWdzKTsKICNlbHNlCiAg
ICAgVU5VU0VEX1BBUkFNKGZsYWdzKTsKICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJHTC5jcHAKaW5kZXggMWVjZTQ1NzI4ZDQwMGI1YjhkZDU5MzYwNGU1MDUzMzMzMzA4Yjc0MC4u
MzM2NjcwOTE5M2FlY2Y0MGEyYTQ1ZDhmZDJiNThiM2Q2YmZlYjk1ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJHTC5jcHAKQEAgLTY2NCw3ICs2NjQsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6YmluZFN1
cmZhY2UoQml0bWFwVGV4dHVyZSAqc3VyZmFjZSkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIHN0YXRpY19jYXN0PEJpdG1hcFRleHR1cmVHTCo+KHN1cmZhY2UpLT5iaW5kQXNTdXJmYWNl
KG1fY29udGV4dDNELmdldCgpKTsKKyAgICBzdGF0aWNfY2FzdDxCaXRtYXBUZXh0dXJlR0wqPihz
dXJmYWNlKS0+YmluZEFzU3VyZmFjZSgpOwogICAgIGRhdGEoKS5wcm9qZWN0aW9uTWF0cml4ID0g
Y3JlYXRlUHJvamVjdGlvbk1hdHJpeChzdXJmYWNlLT5zaXplKCksIHRydWUgLyogbWlycm9yZWQg
Ki8pOwogICAgIGRhdGEoKS5jdXJyZW50U3VyZmFjZSA9IHN1cmZhY2U7CiB9CkBAIC03NjAsNyAr
NzYwLDcgQEAgSW50UmVjdCBUZXh0dXJlTWFwcGVyR0w6OmNsaXBCb3VuZHMoKQogCiBSZWY8Qml0
bWFwVGV4dHVyZT4gVGV4dHVyZU1hcHBlckdMOjpjcmVhdGVUZXh0dXJlKEdDM0RpbnQgaW50ZXJu
YWxGb3JtYXQpCiB7Ci0gICAgcmV0dXJuIEJpdG1hcFRleHR1cmVHTDo6Y3JlYXRlKG1fY29udGV4
dEF0dHJpYnV0ZXMsICptX2NvbnRleHQzRCwgaW50ZXJuYWxGb3JtYXQpOworICAgIHJldHVybiBC
aXRtYXBUZXh0dXJlR0w6OmNyZWF0ZShtX2NvbnRleHRBdHRyaWJ1dGVzLCBpbnRlcm5hbEZvcm1h
dCk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlTWFwcGVyPiBUZXh0dXJlTWFwcGVyOjpw
bGF0Zm9ybUNyZWF0ZUFjY2VsZXJhdGVkKCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>