<?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>220785</bug_id>
          
          <creation_ts>2021-01-20 19:42:29 -0800</creation_ts>
          <short_desc>Further propagate ChildChange::Source to optimize HTMLInputElement creation</short_desc>
          <delta_ts>2021-01-20 22:33:13 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>220758</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>koivisto</cc>
    
    <cc>mifenton</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1721077</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-20 19:42:29 -0800</bug_when>
    <thetext>Further propagate ChildChange::Source to optimize HTMLInputElement creation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721078</commentid>
    <comment_count>1</comment_count>
      <attachid>418014</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-20 19:43:43 -0800</bug_when>
    <thetext>Created attachment 418014
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721083</commentid>
    <comment_count>2</comment_count>
      <attachid>418014</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-01-20 20:04:20 -0800</bug_when>
    <thetext>Comment on attachment 418014
Patch

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

Hm... it&apos;s a bit scary because parser* variants aren&apos;t safe to use in some cases but we&apos;d see how it goes.

&gt; Source/WebCore/dom/ContainerNode.cpp:494
&gt; +        // insertBefore(node, null) is equivalent to appendChild(node)

I don&apos;t think we need this comment. Remove?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721088</commentid>
    <comment_count>3</comment_count>
      <attachid>418014</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-20 20:37:51 -0800</bug_when>
    <thetext>Comment on attachment 418014
Patch

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

Yes, I tried removing scary things, and attempt to use it in a safe places now. Uploading.

&gt;&gt; Source/WebCore/dom/ContainerNode.cpp:494
&gt;&gt; +        // insertBefore(node, null) is equivalent to appendChild(node)
&gt; 
&gt; I don&apos;t think we need this comment. Remove?

Removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721090</commentid>
    <comment_count>4</comment_count>
      <attachid>418021</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-20 20:53:34 -0800</bug_when>
    <thetext>Created attachment 418021
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721093</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-20 22:32:37 -0800</bug_when>
    <thetext>Committed r271686: &lt;https://trac.webkit.org/changeset/271686&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721094</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-01-20 22:33:13 -0800</bug_when>
    <thetext>&lt;rdar://problem/73437900&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418014</attachid>
            <date>2021-01-20 19:43:43 -0800</date>
            <delta_ts>2021-01-20 21:04:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220785-20210120194343.patch</filename>
            <type>text/plain</type>
            <size>23186</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTcwNDFiYjMwOTQ0NDZl
Yjc3N2JiZGZkNTkxNGRjNjlkOWU5ZDBlZC4uMzNlMWUxYTE3ZTEyMTk0Zjc0ZTg0YTY2OGY3Y2Zk
ZGFmMGMxYTdjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIxLTAxLTIwICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgRnVydGhlciBwcm9wYWdh
dGUgQ2hpbGRDaGFuZ2U6OlNvdXJjZSB0byBvcHRpbWl6ZSBIVE1MSW5wdXRFbGVtZW50IGNyZWF0
aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjA3
ODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlz
IHBhdGNoIGZ1cnRoZXIgcHJvcGFnYXRlcyBDaGlsZENoYW5nZTo6U291cmNlIHRvIG9wdGltaXpl
IEhUTUxJbnB1dEVsZW1lbnQgY3JlYXRpb24uCisgICAgICAgIFdlIGFkZCBpbnNlcnRCZWZvcmUs
IHJlbW92ZUNoaWxkLCBhbmQgYXBwZW5kQ2hpbGQgbWV0aG9kcyB0YWtpbmcgQ2hpbGRDaGFuZ2U6
OlNvdXJjZSB0bworICAgICAgICB0cmFuc3BhcmVudGx5IHBpY2sgdGhlIGVmZmljaWVudCBvbmUg
YmFzZWQgb24gdGhlIHBhcmFtZXRlci4KKworICAgICAgICAqIGRvbS9Db250YWluZXJOb2RlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6Omluc2VydEJlZm9yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpyZW1vdmVDaGlsZCk6CisgICAgICAgIChXZWJD
b3JlOjpDb250YWluZXJOb2RlOjphcHBlbmRDaGlsZCk6CisgICAgICAgICogZG9tL0NvbnRhaW5l
ck5vZGUuaDoKKyAgICAgICAgKiBodG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1
YnRyZWVBbmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkpOgorICAgICAgICAqIGh0
bWwvQ29sb3JJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JJbnB1dFR5cGU6
OmNyZWF0ZVNoYWRvd1N1YnRyZWVBbmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkp
OgorICAgICAgICAqIGh0bWwvRmlsZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
aWxlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJUZXh0RWxlbWVu
dEVkaXRhYmlsaXR5KToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2V0U2hvd0F1dG9GaWxsQnV0dG9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnVwZGF0ZVBsYWNlaG9sZGVyVGV4
dCk6CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5w
dXRUeXBlOjp1cGRhdGVQbGFjZWhvbGRlclRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRU
eXBlOjp1cGRhdGVBdXRvRmlsbEJ1dHRvbik6CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuaDoK
KyAgICAgICAgKiBodG1sL1JhbmdlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJh
bmdlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJUZXh0RWxlbWVu
dEVkaXRhYmlsaXR5KToKKyAgICAgICAgKiBodG1sL1NlYXJjaElucHV0VHlwZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTZWFyY2hJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWVBbmRVcGRh
dGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkpOgorICAgICAgICAqIGh0bWwvVGV4dEZpZWxk
SW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVsZElucHV0VHlwZTo6Y3Jl
YXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eSk6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OmRpc2FibGVkU3RhdGVDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVsZElucHV0VHlwZTo6cmVhZE9ubHlTdGF0ZUNo
YW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVEYXRh
TGlzdERyb3Bkb3duSW5kaWNhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVsZElucHV0
VHlwZTo6dXBkYXRlUGxhY2Vob2xkZXJUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVs
ZElucHV0VHlwZTo6Y3JlYXRlQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVs
ZElucHV0VHlwZTo6Y3JlYXRlQXV0b0ZpbGxCdXR0b24pOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dEZpZWxkSW5wdXRUeXBlOjp1cGRhdGVBdXRvRmlsbEJ1dHRvbik6CisgICAgICAgICogaHRtbC9U
ZXh0RmllbGRJbnB1dFR5cGUuaDoKKwogMjAyMS0wMS0yMCAgS2VubmV0aCBSdXNzZWxsICA8a2Jy
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBTdXBwb3J0IFdFQkdMX211bHRpX2RyYXcgZXh0ZW5z
aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKaW5kZXggZDBiY2FmMDJkM2M5Y2Ri
NDI0YzljNTc3MWI4OTRlYTgyNGMxOWViZC4uMmYzNTkxNTU4YTA0ZDZkNDFjMTllZWY0YmYwYTQx
MGI5NzAwMGQxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcApAQCAtNDg4LDYg
KzQ4OCwxOSBAQCB2b2lkIENvbnRhaW5lck5vZGU6OnBhcnNlckluc2VydEJlZm9yZShOb2RlJiBu
ZXdDaGlsZCwgTm9kZSYgbmV4dENoaWxkKQogICAgIH0pOwogfQogCitFeGNlcHRpb25Pcjx2b2lk
PiBDb250YWluZXJOb2RlOjppbnNlcnRCZWZvcmUoQ2hpbGRDaGFuZ2U6OlNvdXJjZSBzb3VyY2Us
IE5vZGUmIG5ld0NoaWxkLCBOb2RlKiByZWZDaGlsZCkKK3sKKyAgICBpZiAoc291cmNlID09IENo
aWxkQ2hhbmdlOjpTb3VyY2U6OlBhcnNlcikgeworICAgICAgICAvLyBpbnNlcnRCZWZvcmUobm9k
ZSwgbnVsbCkgaXMgZXF1aXZhbGVudCB0byBhcHBlbmRDaGlsZChub2RlKQorICAgICAgICBpZiAo
IXJlZkNoaWxkKQorICAgICAgICAgICAgcGFyc2VyQXBwZW5kQ2hpbGQobmV3Q2hpbGQpOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICBwYXJzZXJJbnNlcnRCZWZvcmUobmV3Q2hpbGQsICpyZWZD
aGlsZCk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorICAgIHJldHVybiBpbnNlcnRCZWZv
cmUobmV3Q2hpbGQsIHJlZkNoaWxkKTsKK30KKwogRXhjZXB0aW9uT3I8dm9pZD4gQ29udGFpbmVy
Tm9kZTo6cmVwbGFjZUNoaWxkKE5vZGUmIG5ld0NoaWxkLCBOb2RlJiBvbGRDaGlsZCkKIHsKICAg
ICAvLyBDaGVjayB0aGF0IHRoaXMgbm9kZSBpcyBub3QgImZsb2F0aW5nIi4KQEAgLTYzMCw2ICs2
NDMsMTUgQEAgdm9pZCBDb250YWluZXJOb2RlOjpwYXJzZXJSZW1vdmVDaGlsZChOb2RlJiBvbGRD
aGlsZCkKICAgICByZW1vdmVOb2RlV2l0aFNjcmlwdEFzc2VydGlvbihvbGRDaGlsZCwgQ2hpbGRD
aGFuZ2U6OlNvdXJjZTo6UGFyc2VyKTsKIH0KIAorRXhjZXB0aW9uT3I8dm9pZD4gQ29udGFpbmVy
Tm9kZTo6cmVtb3ZlQ2hpbGQoQ2hpbGRDaGFuZ2U6OlNvdXJjZSBzb3VyY2UsIE5vZGUmIGNoaWxk
KQoreworICAgIGlmIChzb3VyY2UgPT0gQ2hpbGRDaGFuZ2U6OlNvdXJjZTo6UGFyc2VyKSB7Cisg
ICAgICAgIHBhcnNlclJlbW92ZUNoaWxkKGNoaWxkKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAg
ICB9CisgICAgcmV0dXJuIHJlbW92ZUNoaWxkKGNoaWxkKTsKK30KKwogLy8gaHR0cHM6Ly9kb20u
c3BlYy53aGF0d2cub3JnLyNjb25jZXB0LW5vZGUtcmVwbGFjZS1hbGwKIHZvaWQgQ29udGFpbmVy
Tm9kZTo6cmVwbGFjZUFsbENoaWxkcmVuKHN0ZDo6bnVsbHB0cl90KQogewpAQCAtNzU5LDYgKzc4
MSwxNSBAQCB2b2lkIENvbnRhaW5lck5vZGU6OnBhcnNlckFwcGVuZENoaWxkKE5vZGUmIG5ld0No
aWxkKQogICAgIH0pOwogfQogCitFeGNlcHRpb25Pcjx2b2lkPiBDb250YWluZXJOb2RlOjphcHBl
bmRDaGlsZChDaGlsZENoYW5nZTo6U291cmNlIHNvdXJjZSwgTm9kZSYgbmV3Q2hpbGQpCit7Cisg
ICAgaWYgKHNvdXJjZSA9PSBDaGlsZENoYW5nZTo6U291cmNlOjpQYXJzZXIpIHsKKyAgICAgICAg
cGFyc2VyQXBwZW5kQ2hpbGQobmV3Q2hpbGQpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0K
KyAgICByZXR1cm4gYXBwZW5kQ2hpbGQobmV3Q2hpbGQpOworfQorCiBzdGF0aWMgYm9vbCBhZmZl
Y3RzRWxlbWVudHMoY29uc3QgQ29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2UmIGNoYW5nZSkKIHsK
ICAgICBzd2l0Y2ggKGNoYW5nZS50eXBlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vQ29udGFpbmVyTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaApp
bmRleCA3MjUyMDE0ODRkOTA0ZGEzZmViNjZhOTY0MmZlZTA1MGYwNDRkMDUzLi43ODM4ZGNlMTQ3
ODM2Yzk1MmZjYWI1NDNmNDRhOTEzYjUzNDcwM2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ29udGFpbmVyTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJO
b2RlLmgKQEAgLTEwMyw2ICsxMDMsMTAgQEAgY2xhc3MgQ29udGFpbmVyTm9kZSA6IHB1YmxpYyBO
b2RlIHsKICAgICB9OwogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hp
bGRDaGFuZ2UmKTsKIAorICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHJlbW92ZUNoaWxkKENoaWxkQ2hh
bmdlOjpTb3VyY2UsIE5vZGUmIGNoaWxkKTsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBhcHBlbmRD
aGlsZChDaGlsZENoYW5nZTo6U291cmNlLCBOb2RlJiBuZXdDaGlsZCk7CisgICAgRXhjZXB0aW9u
T3I8dm9pZD4gaW5zZXJ0QmVmb3JlKENoaWxkQ2hhbmdlOjpTb3VyY2UsIE5vZGUmIG5ld0NoaWxk
LCBOb2RlKiByZWZDaGlsZCk7CisKICAgICB2b2lkIGRpc2Nvbm5lY3REZXNjZW5kYW50RnJhbWVz
KCk7CiAKICAgICBSZW5kZXJFbGVtZW50KiByZW5kZXJlcigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCmluZGV4IDRhMmI5NzVm
OWJiMTE0YjQwMDMwZWVjNjRjYWJhZjljNjFkMTBmNzAuLmRmN2FjNGZkMWU1YmVlZWZhMjk5YTQ3
YTQ4YTBhZmE0Mzg3MjViOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRl
QW5kVGltZUlucHV0VHlwZS5jcHAKQEAgLTMwNyw3ICszMDcsNyBAQCB2b2lkIEJhc2VEYXRlQW5k
VGltZUlucHV0VHlwZTo6aGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpCiAgICAgfQogfQog
Ci12b2lkIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVw
ZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eShDb250YWluZXJOb2RlOjpDaGlsZENoYW5n
ZTo6U291cmNlLCBib29sKQordm9pZCBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmNyZWF0ZVNo
YWRvd1N1YnRyZWVBbmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkoQ29udGFpbmVy
Tm9kZTo6Q2hpbGRDaGFuZ2U6OlNvdXJjZSBzb3VyY2UsIGJvb2wpCiB7CiAgICAgQVNTRVJUKGVs
ZW1lbnQoKSk7CiAKQEAgLTMxNiwxMiArMzE2LDEyIEBAIHZvaWQgQmFzZURhdGVBbmRUaW1lSW5w
dXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJUZXh0RWxlbWVudEVkaXRh
CiAKICAgICBpZiAoZG9jdW1lbnQuc2V0dGluZ3MoKS5kYXRlVGltZUlucHV0c0VkaXRhYmxlQ29t
cG9uZW50c0VuYWJsZWQoKSkgewogICAgICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQgPSBEYXRl
VGltZUVkaXRFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsICp0aGlzKTsKLSAgICAgICAgZWxlbWVu
dC51c2VyQWdlbnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKCptX2RhdGVUaW1lRWRpdEVsZW1l
bnQpOworICAgICAgICBlbGVtZW50LnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQo
c291cmNlLCAqbV9kYXRlVGltZUVkaXRFbGVtZW50KTsKICAgICB9IGVsc2UgewogICAgICAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHZhbHVlQ29u
dGFpbmVyUHNldWRvKCItd2Via2l0LWRhdGUtYW5kLXRpbWUtdmFsdWUiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgIGF1dG8gdmFsdWVDb250YWluZXIgPSBIVE1M
RGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICAgICAgdmFsdWVDb250YWluZXItPnNl
dFBzZXVkbyh2YWx1ZUNvbnRhaW5lclBzZXVkbyk7Ci0gICAgICAgIGVsZW1lbnQudXNlckFnZW50
U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZCh2YWx1ZUNvbnRhaW5lcik7CisgICAgICAgIGVsZW1l
bnQudXNlckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChzb3VyY2UsIHZhbHVlQ29udGFp
bmVyKTsKICAgICB9CiAgICAgdXBkYXRlSW5uZXJUZXh0VmFsdWUoKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9Db2xvcklucHV0VHlwZS5jcHAKaW5kZXggNDE0ZmE0ZjZkMjA5M2ZkZWU5NjEyNTcwMjBl
MzhiNWJmMDBlYzVjOS4uNmNlZmJlMGExYWJmNjNmNDNlZjRiNmU0NjExZWU4MDQ0Zjc3ZTM1MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKQEAgLTEzOSw3ICsxMzksNyBA
QCBDb2xvciBDb2xvcklucHV0VHlwZTo6dmFsdWVBc0NvbG9yKCkgY29uc3QKICAgICByZXR1cm4g
cGFyc2VTaW1wbGVDb2xvclZhbHVlKGVsZW1lbnQoKS0+dmFsdWUoKSkudmFsdWUoKTsKIH0KIAot
dm9pZCBDb2xvcklucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4
dEVsZW1lbnRFZGl0YWJpbGl0eShDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291cmNlLCBi
b29sKQordm9pZCBDb2xvcklucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlu
bmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eShDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291
cmNlIHNvdXJjZSwgYm9vbCkKIHsKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKICAgICBBU1NFUlQo
ZWxlbWVudCgpLT5zaGFkb3dSb290KCkpOwpAQCAtMTUyLDggKzE1Miw4IEBAIHZvaWQgQ29sb3JJ
bnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWVBbmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRp
dGFiaWxpdHkoQ29uCiAgICAgd3JhcHBlckVsZW1lbnQtPnNldFBzZXVkbyh3ZWJraXRDb2xvclN3
YXRjaFdyYXBwZXJOYW1lKTsKICAgICBhdXRvIGNvbG9yU3dhdGNoID0gSFRNTERpdkVsZW1lbnQ6
OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29sb3JTd2F0Y2gtPnNldFBzZXVkbyh3ZWJraXRDb2xv
clN3YXRjaE5hbWUpOwotICAgIHdyYXBwZXJFbGVtZW50LT5hcHBlbmRDaGlsZChjb2xvclN3YXRj
aCk7Ci0gICAgZWxlbWVudCgpLT51c2VyQWdlbnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKHdy
YXBwZXJFbGVtZW50KTsKKyAgICB3cmFwcGVyRWxlbWVudC0+YXBwZW5kQ2hpbGQoc291cmNlLCBj
b2xvclN3YXRjaCk7CisgICAgZWxlbWVudCgpLT51c2VyQWdlbnRTaGFkb3dSb290KCktPmFwcGVu
ZENoaWxkKHNvdXJjZSwgd3JhcHBlckVsZW1lbnQpOwogCiAgICAgdXBkYXRlQ29sb3JTd2F0Y2go
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IGIzNTJkOTQ0OTg0
YWU0MWZkMWE1NTQyM2ZlNWQ2MGM0MDAwOGJjYzkuLjMxMWM1ODdjZjkzYzEwY2I5NjMwMjBjZjhk
ZmVlZDcxODU4OGFjZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0
VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAt
Mjc4LDExICsyNzgsMTEgQEAgYm9vbCBGaWxlSW5wdXRUeXBlOjppc0ZpbGVVcGxvYWQoKSBjb25z
dAogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEZpbGVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRv
d1N1YnRyZWVBbmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkoQ29udGFpbmVyTm9k
ZTo6Q2hpbGRDaGFuZ2U6OlNvdXJjZSwgYm9vbCkKK3ZvaWQgRmlsZUlucHV0VHlwZTo6Y3JlYXRl
U2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eShDb250YWlu
ZXJOb2RlOjpDaGlsZENoYW5nZTo6U291cmNlIHNvdXJjZSwgYm9vbCkKIHsKICAgICBBU1NFUlQo
ZWxlbWVudCgpKTsKICAgICBBU1NFUlQoZWxlbWVudCgpLT5zaGFkb3dSb290KCkpOwotICAgIGVs
ZW1lbnQoKS0+dXNlckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChlbGVtZW50KCktPm11
bHRpcGxlKCkgPyBVcGxvYWRCdXR0b25FbGVtZW50OjpjcmVhdGVGb3JNdWx0aXBsZShlbGVtZW50
KCktPmRvY3VtZW50KCkpOiBVcGxvYWRCdXR0b25FbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLT5k
b2N1bWVudCgpKSk7CisgICAgZWxlbWVudCgpLT51c2VyQWdlbnRTaGFkb3dSb290KCktPmFwcGVu
ZENoaWxkKHNvdXJjZSwgZWxlbWVudCgpLT5tdWx0aXBsZSgpID8gVXBsb2FkQnV0dG9uRWxlbWVu
dDo6Y3JlYXRlRm9yTXVsdGlwbGUoZWxlbWVudCgpLT5kb2N1bWVudCgpKTogVXBsb2FkQnV0dG9u
RWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSkpOwogfQogCiB2b2lkIEZpbGVJ
bnB1dFR5cGU6OmRpc2FibGVkU3RhdGVDaGFuZ2VkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuY3BwCmluZGV4IGY1ZDQ5MWI2YzVkNzRjMDQwMDJlMjU5ZTFkNWQ3NzQyMWE4
NjAwNWMuLjQ1YmYwMGVlMjJhMjUxY2VjYjM0MjkyZDNjZTY4OTBjMzkwNzQ5NGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMTM3Miw3ICsxMzcyLDcgQEAg
dm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRTaG93QXV0b0ZpbGxCdXR0b24oQXV0b0ZpbGxCdXR0
b25UeXBlIGF1dG9GaWxsQnV0dG9uVHkKIAogICAgIG1fbGFzdEF1dG9GaWxsQnV0dG9uVHlwZSA9
IG1fYXV0b0ZpbGxCdXR0b25UeXBlOwogICAgIG1fYXV0b0ZpbGxCdXR0b25UeXBlID0gc3RhdGlj
X2Nhc3Q8dWludDhfdD4oYXV0b0ZpbGxCdXR0b25UeXBlKTsKLSAgICBtX2lucHV0VHlwZS0+dXBk
YXRlQXV0b0ZpbGxCdXR0b24oKTsKKyAgICBtX2lucHV0VHlwZS0+dXBkYXRlQXV0b0ZpbGxCdXR0
b24oQ29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2U6OlNvdXJjZTo6QVBJKTsKICAgICB1cGRhdGVJ
bm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkoKTsKICAgICBpbnZhbGlkYXRlU3R5bGVGb3JTdWJ0
cmVlKCk7CiB9CkBAIC0xODA4LDcgKzE4MDgsNyBAQCBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnN1
cHBvcnRzUGxhY2Vob2xkZXIoKSBjb25zdAogCiB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnVwZGF0
ZVBsYWNlaG9sZGVyVGV4dCgpCiB7Ci0gICAgcmV0dXJuIG1faW5wdXRUeXBlLT51cGRhdGVQbGFj
ZWhvbGRlclRleHQoKTsKKyAgICByZXR1cm4gbV9pbnB1dFR5cGUtPnVwZGF0ZVBsYWNlaG9sZGVy
VGV4dChDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291cmNlOjpBUEkpOwogfQogCiBib29s
IEhUTUxJbnB1dEVsZW1lbnQ6OmlzRW1wdHlWYWx1ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0
VHlwZS5jcHAKaW5kZXggNjg1YzAzZmVkMjM3NmZjN2VmNDM5NTEyNGViMzlmNjg4OTMxOTFkYi4u
OTI2MzZlYTg1NzYzNTJkODQ1ZmU4YTJjODMwZmIyNGQ1MmNhYTRjYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SW5wdXRUeXBlLmNwcApAQCAtOTc0LDcgKzk3NCw3IEBAIHZvaWQgSW5wdXRUeXBlOjp1cGRhdGVJ
bm5lclRleHRWYWx1ZSgpCiB7CiB9CiAKLXZvaWQgSW5wdXRUeXBlOjp1cGRhdGVQbGFjZWhvbGRl
clRleHQoKQordm9pZCBJbnB1dFR5cGU6OnVwZGF0ZVBsYWNlaG9sZGVyVGV4dChDb250YWluZXJO
b2RlOjpDaGlsZENoYW5nZTo6U291cmNlKQogewogfQogCkBAIC05ODIsNyArOTgyLDcgQEAgdm9p
ZCBJbnB1dFR5cGU6OmNhcHNMb2NrU3RhdGVNYXlIYXZlQ2hhbmdlZCgpCiB7CiB9CiAKLXZvaWQg
SW5wdXRUeXBlOjp1cGRhdGVBdXRvRmlsbEJ1dHRvbigpCit2b2lkIElucHV0VHlwZTo6dXBkYXRl
QXV0b0ZpbGxCdXR0b24oQ29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2U6OlNvdXJjZSkKIHsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKaW5kZXggM2FlODVlZWE0YjNiODZlMTZlM2JkZWNlYzBl
MjQyZWVhOGU5ZmU4Ny4uZmVkZWNkNmJiODQzMmUxNzFiMDM3N2MxM2JkODUyODQ2M2JlYmIwNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCkBAIC0yODIsMTMgKzI4MiwxMyBAQCBjbGFzcyBJbnB1
dFR5cGUgOiBwdWJsaWMgUmVmQ291bnRlZDxJbnB1dFR5cGU+IHsKICAgICB2aXJ0dWFsIGJvb2wg
c3VwcG9ydHNQbGFjZWhvbGRlcigpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1Jl
YWRPbmx5KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUlubmVyVGV4dFZhbHVlKCk7
Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZVBsYWNlaG9sZGVyVGV4dCgpOworICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVQbGFjZWhvbGRlclRleHQoQ29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2U6OlNv
dXJjZSk7CiAgICAgdmlydHVhbCB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlZFN0YXRlQ2hhbmdlZCgpIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCByZWFkT25seVN0YXRlQ2hhbmdlZCgpIHsgfQogICAgIHZpcnR1YWwg
dm9pZCByZXF1aXJlZFN0YXRlQ2hhbmdlZCgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBjYXBzTG9j
a1N0YXRlTWF5SGF2ZUNoYW5nZWQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQXV0b0ZpbGxC
dXR0b24oKTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQXV0b0ZpbGxCdXR0b24oQ29udGFpbmVy
Tm9kZTo6Q2hpbGRDaGFuZ2U6OlNvdXJjZSk7CiAgICAgdmlydHVhbCBTdHJpbmcgZGVmYXVsdFRv
b2xUaXAoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgbWF0Y2hlc0luZGV0ZXJtaW5hdGVQc2V1
ZG9DbGFzcygpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBcHBlYXJJbmRldGVybWlu
YXRlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRU
eXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCmluZGV4IGFi
MzA4OTNmY2U1ZDZhY2VhMDY5NzI0YzBmZDU5NzE2Y2U4NzY1ZTAuLjQ1OTZhNzAxOGVkMDkwYTVm
NjEzNGJjNGYxYzA1Nzc5NzJjOGFlNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
UmFuZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5
cGUuY3BwCkBAIC0yNTIsNyArMjUyLDcgQEAgYXV0byBSYW5nZUlucHV0VHlwZTo6aGFuZGxlS2V5
ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQmIGV2ZW50KSAtPiBTaG91bGRDYWxsQmFzZUUKICAgICBy
ZXR1cm4gU2hvdWxkQ2FsbEJhc2VFdmVudEhhbmRsZXI6OlllczsKIH0KIAotdm9pZCBSYW5nZUlu
cHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0
YWJpbGl0eShDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291cmNlLCBib29sKQordm9pZCBS
YW5nZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1l
bnRFZGl0YWJpbGl0eShDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291cmNlIHNvdXJjZSwg
Ym9vbCkKIHsKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKICAgICBBU1NFUlQoZWxlbWVudCgpLT51
c2VyQWdlbnRTaGFkb3dSb290KCkpOwpAQCAtMjYxLDEwICsyNjEsMTAgQEAgdm9pZCBSYW5nZUlu
cHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0
YWJpbGl0eShDb24KICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBlbGVtZW50KCktPmRvY3VtZW50
KCk7CiAgICAgYXV0byB0cmFjayA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwog
ICAgIHRyYWNrLT5zZXRQc2V1ZG8od2Via2l0U2xpZGVyUnVubmFibGVUcmFja05hbWUpOwotICAg
IHRyYWNrLT5hcHBlbmRDaGlsZChTbGlkZXJUaHVtYkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCkp
OworICAgIHRyYWNrLT5hcHBlbmRDaGlsZChzb3VyY2UsIFNsaWRlclRodW1iRWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50KSk7CiAgICAgYXV0byBjb250YWluZXIgPSBTbGlkZXJDb250YWluZXJFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNvbnRhaW5lci0+YXBwZW5kQ2hpbGQodHJhY2sp
OwotICAgIGVsZW1lbnQoKS0+dXNlckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChjb250
YWluZXIpOworICAgIGNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoc291cmNlLCB0cmFjayk7CisgICAg
ZWxlbWVudCgpLT51c2VyQWdlbnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKHNvdXJjZSwgY29u
dGFpbmVyKTsKIH0KIAogSFRNTEVsZW1lbnQqIFJhbmdlSW5wdXRUeXBlOjpzbGlkZXJUcmFja0Vs
ZW1lbnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1
dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwCmluZGV4
IGE5NDkyOTNlNTE4ZmI2YzJlY2Y4YTA1MTM3M2Y2MTJmN2U0ZGZiMDEuLjQ3OTc5ODliMGZlOWY5
NjQ2MDE5MGU0NzJjZjVlNGQzN2M2YTY5MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvU2VhcmNoSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElu
cHV0VHlwZS5jcHAKQEAgLTEyMSwxMCArMTIxLDEwIEBAIHZvaWQgU2VhcmNoSW5wdXRUeXBlOjpj
cmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KENv
CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAgICAgbV9yZXN1bHRzQnV0dG9uID0gU2VhcmNoRmll
bGRSZXN1bHRzQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSk7CiAg
ICAgdXBkYXRlUmVzdWx0QnV0dG9uUHNldWRvVHlwZSgqbV9yZXN1bHRzQnV0dG9uLCBlbGVtZW50
KCktPm1heFJlc3VsdHMoKSk7Ci0gICAgY29udGFpbmVyLT5pbnNlcnRCZWZvcmUoKm1fcmVzdWx0
c0J1dHRvbiwgdGV4dFdyYXBwZXIuZ2V0KCkpOworICAgIGNvbnRhaW5lci0+aW5zZXJ0QmVmb3Jl
KHNvdXJjZSwgKm1fcmVzdWx0c0J1dHRvbiwgdGV4dFdyYXBwZXIuZ2V0KCkpOwogCiAgICAgbV9j
YW5jZWxCdXR0b24gPSBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShlbGVt
ZW50KCktPmRvY3VtZW50KCkpOwotICAgIGNvbnRhaW5lci0+aW5zZXJ0QmVmb3JlKCptX2NhbmNl
bEJ1dHRvbiwgdGV4dFdyYXBwZXItPm5leHRTaWJsaW5nKCkpOworICAgIGNvbnRhaW5lci0+aW5z
ZXJ0QmVmb3JlKHNvdXJjZSwgKm1fY2FuY2VsQnV0dG9uLCB0ZXh0V3JhcHBlci0+bmV4dFNpYmxp
bmcoKSk7CiB9CiAKIEhUTUxFbGVtZW50KiBTZWFyY2hJbnB1dFR5cGU6OnJlc3VsdHNCdXR0b25F
bGVtZW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxk
SW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNw
cAppbmRleCAxOTMyYmM2MzdjM2E2YzljNDMxMzNhMGNjYWQ3NmFhNjIyZDE1ZjY4Li5iZDBlOThj
NjVlNDMyZGJiNGFmYTdjYTQxYWViOWU1ZmRkOGY1NGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCkBAIC0zMzcsMjMgKzMzNywxNyBAQCB2b2lkIFRleHRG
aWVsZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1l
bnRFZGl0YWJpbGl0eQogICAgIG1faW5uZXJUZXh0ID0gVGV4dENvbnRyb2xJbm5lclRleHRFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQsIGlzSW5uZXJUZXh0RWxlbWVudEVkaXRhYmxlKTsKIAogICAg
IGlmICghY3JlYXRlc0NvbnRhaW5lcikgewotICAgICAgICBpZiAoc291cmNlID09IENvbnRhaW5l
ck5vZGU6OkNoaWxkQ2hhbmdlOjpTb3VyY2U6OlBhcnNlcikKLSAgICAgICAgICAgIGVsZW1lbnQo
KS0+dXNlckFnZW50U2hhZG93Um9vdCgpLT5wYXJzZXJBcHBlbmRDaGlsZCgqbV9pbm5lclRleHQp
OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBlbGVtZW50KCktPnVzZXJBZ2VudFNoYWRvd1Jv
b3QoKS0+YXBwZW5kQ2hpbGQoKm1faW5uZXJUZXh0KTsKLSAgICAgICAgdXBkYXRlUGxhY2Vob2xk
ZXJUZXh0KCk7CisgICAgICAgIGVsZW1lbnQoKS0+dXNlckFnZW50U2hhZG93Um9vdCgpLT5hcHBl
bmRDaGlsZChzb3VyY2UsICptX2lubmVyVGV4dCk7CisgICAgICAgIHVwZGF0ZVBsYWNlaG9sZGVy
VGV4dChzb3VyY2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgY3JlYXRlQ29udGFp
bmVyKCk7Ci0gICAgdXBkYXRlUGxhY2Vob2xkZXJUZXh0KCk7CisgICAgY3JlYXRlQ29udGFpbmVy
KHNvdXJjZSk7CisgICAgdXBkYXRlUGxhY2Vob2xkZXJUZXh0KHNvdXJjZSk7CiAKICAgICBpZiAo
c2hvdWxkSGF2ZVNwaW5CdXR0b24pIHsKICAgICAgICAgbV9pbm5lclNwaW5CdXR0b24gPSBTcGlu
QnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCAqdGhpcyk7Ci0gICAgICAgIGlmIChzb3Vy
Y2UgPT0gQ29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2U6OlNvdXJjZTo6UGFyc2VyKQotICAgICAg
ICAgICAgbV9jb250YWluZXItPnBhcnNlckFwcGVuZENoaWxkKCptX2lubmVyU3BpbkJ1dHRvbik7
Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fY29udGFpbmVyLT5hcHBlbmRDaGlsZCgqbV9p
bm5lclNwaW5CdXR0b24pOworICAgICAgICBtX2NvbnRhaW5lci0+YXBwZW5kQ2hpbGQoc291cmNl
LCAqbV9pbm5lclNwaW5CdXR0b24pOwogICAgIH0KIAogICAgIGlmIChzaG91bGRIYXZlQ2Fwc0xv
Y2tJbmRpY2F0b3IpIHsKQEAgLTM2NCwxMiArMzU4LDkgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5
cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWVBbmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxp
dHkKICAgICAgICAgYm9vbCBzaG91bGREcmF3Q2Fwc0xvY2tJbmRpY2F0b3IgPSB0aGlzLT5zaG91
bGREcmF3Q2Fwc0xvY2tJbmRpY2F0b3IoKTsKICAgICAgICAgbV9jYXBzTG9ja0luZGljYXRvci0+
c2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eURpc3BsYXksIHNob3VsZERyYXdDYXBz
TG9ja0luZGljYXRvciA/IENTU1ZhbHVlQmxvY2sgOiBDU1NWYWx1ZU5vbmUsIHRydWUpOwogCi0g
ICAgICAgIGlmIChzb3VyY2UgPT0gQ29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2U6OlNvdXJjZTo6
UGFyc2VyKQotICAgICAgICAgICAgbV9jb250YWluZXItPnBhcnNlckFwcGVuZENoaWxkKCptX2Nh
cHNMb2NrSW5kaWNhdG9yKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9jb250YWluZXIt
PmFwcGVuZENoaWxkKCptX2NhcHNMb2NrSW5kaWNhdG9yKTsKKyAgICAgICAgbV9jb250YWluZXIt
PmFwcGVuZENoaWxkKHNvdXJjZSwgKm1fY2Fwc0xvY2tJbmRpY2F0b3IpOwogICAgIH0KLSAgICB1
cGRhdGVBdXRvRmlsbEJ1dHRvbigpOworICAgIHVwZGF0ZUF1dG9GaWxsQnV0dG9uKHNvdXJjZSk7
CiB9CiAKIEhUTUxFbGVtZW50KiBUZXh0RmllbGRJbnB1dFR5cGU6OmNvbnRhaW5lckVsZW1lbnQo
KSBjb25zdApAQCAtNDM5LDcgKzQzMCw3IEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpkaXNh
YmxlZFN0YXRlQ2hhbmdlZCgpCiAgICAgaWYgKG1faW5uZXJTcGluQnV0dG9uKQogICAgICAgICBt
X2lubmVyU3BpbkJ1dHRvbi0+cmVsZWFzZUNhcHR1cmUoKTsKICAgICBjYXBzTG9ja1N0YXRlTWF5
SGF2ZUNoYW5nZWQoKTsKLSAgICB1cGRhdGVBdXRvRmlsbEJ1dHRvbigpOworICAgIHVwZGF0ZUF1
dG9GaWxsQnV0dG9uKENvbnRhaW5lck5vZGU6OkNoaWxkQ2hhbmdlOjpTb3VyY2U6OkFQSSk7CiB9
CiAKIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpyZWFkT25seVN0YXRlQ2hhbmdlZCgpCkBAIC00
NDcsNyArNDM4LDcgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OnJlYWRPbmx5U3RhdGVDaGFu
Z2VkKCkKICAgICBpZiAobV9pbm5lclNwaW5CdXR0b24pCiAgICAgICAgIG1faW5uZXJTcGluQnV0
dG9uLT5yZWxlYXNlQ2FwdHVyZSgpOwogICAgIGNhcHNMb2NrU3RhdGVNYXlIYXZlQ2hhbmdlZCgp
OwotICAgIHVwZGF0ZUF1dG9GaWxsQnV0dG9uKCk7CisgICAgdXBkYXRlQXV0b0ZpbGxCdXR0b24o
Q29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2U6OlNvdXJjZTo6QVBJKTsKIH0KIAogYm9vbCBUZXh0
RmllbGRJbnB1dFR5cGU6OnN1cHBvcnRzUmVhZE9ubHkoKSBjb25zdApAQCAtNDY2LDcgKzQ1Nyw3
IEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVEYXRhTGlzdERyb3Bkb3duSW5kaWNh
dG9yKCkKIHsKICAgICBBU1NFUlQoIW1fZGF0YUxpc3REcm9wZG93bkluZGljYXRvcik7CiAgICAg
aWYgKCFtX2NvbnRhaW5lcikKLSAgICAgICAgY3JlYXRlQ29udGFpbmVyKCk7CisgICAgICAgIGNy
ZWF0ZUNvbnRhaW5lcihDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291cmNlOjpBUEkpOwog
CiAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3
ZWJraXRMaXN0QnV0dG9uTmFtZSgiLXdlYmtpdC1saXN0LWJ1dHRvbiIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBTY3JpcHREaXNhbGxvd2VkU2NvcGU6OkV2ZW50QWxs
b3dlZFNjb3BlIGFsbG93ZWRTY29wZSgqbV9jb250YWluZXIpOwpAQCAtNjIyLDcgKzYxMyw3IEBA
IGJvb2wgVGV4dEZpZWxkSW5wdXRUeXBlOjpzaG91bGRSZXNwZWN0TGlzdEF0dHJpYnV0ZSgpCiAj
ZW5kaWYKIH0KIAotdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OnVwZGF0ZVBsYWNlaG9sZGVyVGV4
dCgpCit2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6dXBkYXRlUGxhY2Vob2xkZXJUZXh0KENvbnRh
aW5lck5vZGU6OkNoaWxkQ2hhbmdlOjpTb3VyY2Ugc291cmNlKQogewogICAgIGlmICghc3VwcG9y
dHNQbGFjZWhvbGRlcigpKQogICAgICAgICByZXR1cm47CkBAIC02MzAsMTQgKzYyMSwxNCBAQCB2
b2lkIFRleHRGaWVsZElucHV0VHlwZTo6dXBkYXRlUGxhY2Vob2xkZXJUZXh0KCkKICAgICBTdHJp
bmcgcGxhY2Vob2xkZXJUZXh0ID0gZWxlbWVudCgpLT5zdHJpcHBlZFBsYWNlaG9sZGVyKCk7CiAg
ICAgaWYgKHBsYWNlaG9sZGVyVGV4dC5pc0VtcHR5KCkpIHsKICAgICAgICAgaWYgKG1fcGxhY2Vo
b2xkZXIpIHsKLSAgICAgICAgICAgIG1fcGxhY2Vob2xkZXItPnBhcmVudE5vZGUoKS0+cmVtb3Zl
Q2hpbGQoKm1fcGxhY2Vob2xkZXIpOworICAgICAgICAgICAgbV9wbGFjZWhvbGRlci0+cGFyZW50
Tm9kZSgpLT5yZW1vdmVDaGlsZChzb3VyY2UsICptX3BsYWNlaG9sZGVyKTsKICAgICAgICAgICAg
IG1fcGxhY2Vob2xkZXIgPSBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAgICAgaWYgKCFtX3BsYWNlaG9sZGVyKSB7CiAgICAgICAgIG1fcGxhY2Vob2xkZXIgPSBU
ZXh0Q29udHJvbFBsYWNlaG9sZGVyRWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS0+ZG9jdW1lbnQo
KSk7Ci0gICAgICAgIGVsZW1lbnQoKS0+dXNlckFnZW50U2hhZG93Um9vdCgpLT5pbnNlcnRCZWZv
cmUoKm1fcGxhY2Vob2xkZXIsIG1fY29udGFpbmVyID8gbV9jb250YWluZXIuZ2V0KCkgOiBpbm5l
clRleHRFbGVtZW50KCkuZ2V0KCkpOworICAgICAgICBlbGVtZW50KCktPnVzZXJBZ2VudFNoYWRv
d1Jvb3QoKS0+aW5zZXJ0QmVmb3JlKHNvdXJjZSwgKm1fcGxhY2Vob2xkZXIsIG1fY29udGFpbmVy
ID8gbV9jb250YWluZXIuZ2V0KCkgOiBpbm5lclRleHRFbGVtZW50KCkuZ2V0KCkpOwogICAgIH0K
ICAgICBtX3BsYWNlaG9sZGVyLT5zZXRJbm5lclRleHQocGxhY2Vob2xkZXJUZXh0KTsKIH0KQEAg
LTc4Nyw3ICs3NzgsNyBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6YXV0b0ZpbGxCdXR0b25F
bGVtZW50V2FzQ2xpY2tlZCgpCiAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuaGFuZGxlQXV0
b0ZpbGxCdXR0b25DbGljaygqZWxlbWVudCgpKTsKIH0KIAotdm9pZCBUZXh0RmllbGRJbnB1dFR5
cGU6OmNyZWF0ZUNvbnRhaW5lcigpCit2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlQ29u
dGFpbmVyKENvbnRhaW5lck5vZGU6OkNoaWxkQ2hhbmdlOjpTb3VyY2Ugc291cmNlKQogewogICAg
IEFTU0VSVCghbV9jb250YWluZXIpOwogICAgIEFTU0VSVChlbGVtZW50KCkpOwpAQCAtNzk3LDE1
ICs3ODgsMTUgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZUNvbnRhaW5lcigpCiAg
ICAgU2NyaXB0RGlzYWxsb3dlZFNjb3BlOjpFdmVudEFsbG93ZWRTY29wZSBhbGxvd2VkU2NvcGUo
KmVsZW1lbnQoKS0+dXNlckFnZW50U2hhZG93Um9vdCgpKTsKIAogICAgIG1fY29udGFpbmVyID0g
VGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcjo6Y3JlYXRlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSk7
Ci0gICAgZWxlbWVudCgpLT51c2VyQWdlbnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKCptX2Nv
bnRhaW5lcik7CisgICAgZWxlbWVudCgpLT51c2VyQWdlbnRTaGFkb3dSb290KCktPmFwcGVuZENo
aWxkKHNvdXJjZSwgKm1fY29udGFpbmVyKTsKICAgICBtX2NvbnRhaW5lci0+c2V0UHNldWRvKHdl
YmtpdFRleHRmaWVsZERlY29yYXRpb25Db250YWluZXJOYW1lKTsKIAogICAgIG1faW5uZXJCbG9j
ayA9IFRleHRDb250cm9sSW5uZXJFbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLT5kb2N1bWVudCgp
KTsKLSAgICBtX2NvbnRhaW5lci0+YXBwZW5kQ2hpbGQoKm1faW5uZXJCbG9jayk7Ci0gICAgbV9p
bm5lckJsb2NrLT5hcHBlbmRDaGlsZCgqbV9pbm5lclRleHQpOworICAgIG1fY29udGFpbmVyLT5h
cHBlbmRDaGlsZChzb3VyY2UsICptX2lubmVyQmxvY2spOworICAgIG1faW5uZXJCbG9jay0+YXBw
ZW5kQ2hpbGQoc291cmNlLCAqbV9pbm5lclRleHQpOwogfQogCi12b2lkIFRleHRGaWVsZElucHV0
VHlwZTo6Y3JlYXRlQXV0b0ZpbGxCdXR0b24oQXV0b0ZpbGxCdXR0b25UeXBlIGF1dG9GaWxsQnV0
dG9uVHlwZSkKK3ZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVBdXRvRmlsbEJ1dHRvbihD
b250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291cmNlIHNvdXJjZSwgQXV0b0ZpbGxCdXR0b25U
eXBlIGF1dG9GaWxsQnV0dG9uVHlwZSkKIHsKICAgICBBU1NFUlQoIW1fYXV0b0ZpbGxCdXR0b24p
OwogCkBAIC04MTksMjEgKzgxMCwyMSBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRl
QXV0b0ZpbGxCdXR0b24oQXV0b0ZpbGxCdXR0b25UeXBlIGF1dG9GaWxsQnV0dG9uVAogICAgIG1f
YXV0b0ZpbGxCdXR0b24tPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24ocm9sZUF0
dHIsIGJ1dHRvbk5hbWUpOwogICAgIG1fYXV0b0ZpbGxCdXR0b24tPnNldEF0dHJpYnV0ZVdpdGhv
dXRTeW5jaHJvbml6YXRpb24oYXJpYV9sYWJlbEF0dHIsIGF1dG9GaWxsQnV0dG9uVHlwZVRvQWNj
ZXNzaWJpbGl0eUxhYmVsKGF1dG9GaWxsQnV0dG9uVHlwZSkpOwogICAgIG1fYXV0b0ZpbGxCdXR0
b24tPnNldFRleHRDb250ZW50KGF1dG9GaWxsQnV0dG9uVHlwZVRvQXV0b0ZpbGxCdXR0b25UZXh0
KGF1dG9GaWxsQnV0dG9uVHlwZSkpOwotICAgIG1fY29udGFpbmVyLT5hcHBlbmRDaGlsZCgqbV9h
dXRvRmlsbEJ1dHRvbik7CisgICAgbV9jb250YWluZXItPmFwcGVuZENoaWxkKHNvdXJjZSwgKm1f
YXV0b0ZpbGxCdXR0b24pOwogfQogCi12b2lkIFRleHRGaWVsZElucHV0VHlwZTo6dXBkYXRlQXV0
b0ZpbGxCdXR0b24oKQordm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OnVwZGF0ZUF1dG9GaWxsQnV0
dG9uKENvbnRhaW5lck5vZGU6OkNoaWxkQ2hhbmdlOjpTb3VyY2Ugc291cmNlKQogewogICAgIGNh
cHNMb2NrU3RhdGVNYXlIYXZlQ2hhbmdlZCgpOwogCiAgICAgaWYgKHNob3VsZERyYXdBdXRvRmls
bEJ1dHRvbigpKSB7CiAgICAgICAgIGlmICghbV9jb250YWluZXIpCi0gICAgICAgICAgICBjcmVh
dGVDb250YWluZXIoKTsKKyAgICAgICAgICAgIGNyZWF0ZUNvbnRhaW5lcihzb3VyY2UpOwogCiAg
ICAgICAgIEFTU0VSVChlbGVtZW50KCkpOwogICAgICAgICBBdXRvRmlsbEJ1dHRvblR5cGUgYXV0
b0ZpbGxCdXR0b25UeXBlID0gZWxlbWVudCgpLT5hdXRvRmlsbEJ1dHRvblR5cGUoKTsKICAgICAg
ICAgaWYgKCFtX2F1dG9GaWxsQnV0dG9uKQotICAgICAgICAgICAgY3JlYXRlQXV0b0ZpbGxCdXR0
b24oYXV0b0ZpbGxCdXR0b25UeXBlKTsKKyAgICAgICAgICAgIGNyZWF0ZUF1dG9GaWxsQnV0dG9u
KHNvdXJjZSwgYXV0b0ZpbGxCdXR0b25UeXBlKTsKIAogICAgICAgICBjb25zdCBBdG9tU3RyaW5n
JiBhdHRyaWJ1dGUgPSBtX2F1dG9GaWxsQnV0dG9uLT5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25p
emF0aW9uKHBzZXVkb0F0dHIpOwogICAgICAgICBib29sIHNob3VsZFVwZGF0ZUF1dG9GaWxsQnV0
dG9uVHlwZSA9IGlzQXV0b0ZpbGxCdXR0b25UeXBlQ2hhbmdlZChhdHRyaWJ1dGUsIGF1dG9GaWxs
QnV0dG9uVHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElu
cHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuaAppbmRl
eCBlODQ3MmM0Yjk1ZWQ1YzgyOWRjODQwM2QxOGYxYTVkYmY2ZTEwY2VmLi43ZGU2NmUzZTFhMDUw
NTYzNTc3MjVmNjM5MzE5ZWUxODAxNjg5YmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1RleHRGaWVsZElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZp
ZWxkSW5wdXRUeXBlLmgKQEAgLTk4LDExICs5OCwxMSBAQCBjbGFzcyBUZXh0RmllbGRJbnB1dFR5
cGUgOiBwdWJsaWMgSW5wdXRUeXBlLCBwcm90ZWN0ZWQgU3BpbkJ1dHRvbkVsZW1lbnQ6OlNwaW5C
dQogICAgIGJvb2wgc2hvdWxkVXNlSW5wdXRNZXRob2QoKSBjb25zdCBvdmVycmlkZTsKICAgICBi
b29sIHNob3VsZFJlc3BlY3RMaXN0QXR0cmlidXRlKCkgb3ZlcnJpZGU7CiAgICAgSFRNTEVsZW1l
bnQqIHBsYWNlaG9sZGVyRWxlbWVudCgpIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgdXBkYXRlUGxh
Y2Vob2xkZXJUZXh0KCkgZmluYWw7CisgICAgdm9pZCB1cGRhdGVQbGFjZWhvbGRlclRleHQoQ29u
dGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2U6OlNvdXJjZSkgZmluYWw7CiAgICAgYm9vbCBhcHBlbmRG
b3JtRGF0YShET01Gb3JtRGF0YSYsIGJvb2wgbXVsdGlwYXJ0KSBjb25zdCBmaW5hbDsKICAgICB2
b2lkIHN1YnRyZWVIYXNDaGFuZ2VkKCkgZmluYWw7CiAgICAgdm9pZCBjYXBzTG9ja1N0YXRlTWF5
SGF2ZUNoYW5nZWQoKSBmaW5hbDsKLSAgICB2b2lkIHVwZGF0ZUF1dG9GaWxsQnV0dG9uKCkgZmlu
YWw7CisgICAgdm9pZCB1cGRhdGVBdXRvRmlsbEJ1dHRvbihDb250YWluZXJOb2RlOjpDaGlsZENo
YW5nZTo6U291cmNlKSBmaW5hbDsKICAgICB2b2lkIGVsZW1lbnREaWRCbHVyKCkgZmluYWw7CiAK
ICAgICAvLyBTcGluQnV0dG9uRWxlbWVudDo6U3BpbkJ1dHRvbk93bmVyIGZ1bmN0aW9ucy4KQEAg
LTEyMCw4ICsxMjAsOCBAQCBjbGFzcyBUZXh0RmllbGRJbnB1dFR5cGUgOiBwdWJsaWMgSW5wdXRU
eXBlLCBwcm90ZWN0ZWQgU3BpbkJ1dHRvbkVsZW1lbnQ6OlNwaW5CdQogICAgIGJvb2wgc2hvdWxk
RHJhd0NhcHNMb2NrSW5kaWNhdG9yKCkgY29uc3Q7CiAgICAgYm9vbCBzaG91bGREcmF3QXV0b0Zp
bGxCdXR0b24oKSBjb25zdDsKIAotICAgIHZvaWQgY3JlYXRlQ29udGFpbmVyKCk7Ci0gICAgdm9p
ZCBjcmVhdGVBdXRvRmlsbEJ1dHRvbihBdXRvRmlsbEJ1dHRvblR5cGUpOworICAgIHZvaWQgY3Jl
YXRlQ29udGFpbmVyKENvbnRhaW5lck5vZGU6OkNoaWxkQ2hhbmdlOjpTb3VyY2UpOworICAgIHZv
aWQgY3JlYXRlQXV0b0ZpbGxCdXR0b24oQ29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2U6OlNvdXJj
ZSwgQXV0b0ZpbGxCdXR0b25UeXBlKTsKIAogI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQog
ICAgIHZvaWQgY3JlYXRlRGF0YUxpc3REcm9wZG93bkluZGljYXRvcigpOwo=
</data>
<flag name="review"
          id="435845"
          type_id="1"
          status="+"
          setter="rniwa"
    />
    <flag name="commit-queue"
          id="435849"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418021</attachid>
            <date>2021-01-20 20:53:34 -0800</date>
            <delta_ts>2021-01-20 20:53:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220785-20210120205333.patch</filename>
            <type>text/plain</type>
            <size>10388</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTcwNDFiYjMwOTQ0NDZl
Yjc3N2JiZGZkNTkxNGRjNjlkOWU5ZDBlZC4uMmJmODhhNDFmOWY3N2E1YWQ3ZWVjNjYzNGU2NTk4
YjM2MzJiY2Y4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTAxLTIwICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgRnVydGhlciBwcm9wYWdh
dGUgQ2hpbGRDaGFuZ2U6OlNvdXJjZSB0byBvcHRpbWl6ZSBIVE1MSW5wdXRFbGVtZW50IGNyZWF0
aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjA3
ODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlz
IHBhdGNoIGZ1cnRoZXIgcHJvcGFnYXRlcyBDaGlsZENoYW5nZTo6U291cmNlIHRvIG9wdGltaXpl
IEhUTUxJbnB1dEVsZW1lbnQgY3JlYXRpb24uCisgICAgICAgIFdlIGFkZCBhcHBlbmRDaGlsZCBt
ZXRob2QgdGFraW5nIENoaWxkQ2hhbmdlOjpTb3VyY2UgdG8gdHJhbnNwYXJlbnRseSBwaWNrIHRo
ZSBlZmZpY2llbnQKKyAgICAgICAgb25lIGJhc2VkIG9uIHRoZSBwYXJhbWV0ZXIuCisKKyAgICAg
ICAgKiBkb20vQ29udGFpbmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJO
b2RlOjphcHBlbmRDaGlsZCk6CisgICAgICAgICogZG9tL0NvbnRhaW5lck5vZGUuaDoKKyAgICAg
ICAgKiBodG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWVBbmRVcGRhdGVJ
bm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkpOgorICAgICAgICAqIGh0bWwvQ29sb3JJbnB1dFR5
cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1
YnRyZWVBbmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkpOgorICAgICAgICAqIGh0
bWwvRmlsZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpj
cmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KToK
KyAgICAgICAgKiBodG1sL1JhbmdlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJh
bmdlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJUZXh0RWxlbWVu
dEVkaXRhYmlsaXR5KToKKyAgICAgICAgKiBodG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWVB
bmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkpOgorCiAyMDIxLTAxLTIwICBLZW5u
ZXRoIFJ1c3NlbGwgIDxrYnJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFN1cHBvcnQgV0VCR0xf
bXVsdGlfZHJhdyBleHRlbnNpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250
YWluZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAppbmRl
eCBkMGJjYWYwMmQzYzljZGI0MjRjOWM1NzcxYjg5NGVhODI0YzE5ZWJkLi5iOWNiZjY5NzBlZmIw
ZmQ4MzQwOGVjMjBlNTRkZDZlOTdlNTkyNTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vQ29udGFpbmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5v
ZGUuY3BwCkBAIC03NTksNiArNzU5LDE1IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6cGFyc2VyQXBw
ZW5kQ2hpbGQoTm9kZSYgbmV3Q2hpbGQpCiAgICAgfSk7CiB9CiAKK0V4Y2VwdGlvbk9yPHZvaWQ+
IENvbnRhaW5lck5vZGU6OmFwcGVuZENoaWxkKENoaWxkQ2hhbmdlOjpTb3VyY2Ugc291cmNlLCBO
b2RlJiBuZXdDaGlsZCkKK3sKKyAgICBpZiAoc291cmNlID09IENoaWxkQ2hhbmdlOjpTb3VyY2U6
OlBhcnNlcikgeworICAgICAgICBwYXJzZXJBcHBlbmRDaGlsZChuZXdDaGlsZCk7CisgICAgICAg
IHJldHVybiB7IH07CisgICAgfQorICAgIHJldHVybiBhcHBlbmRDaGlsZChuZXdDaGlsZCk7Cit9
CisKIHN0YXRpYyBib29sIGFmZmVjdHNFbGVtZW50cyhjb25zdCBDb250YWluZXJOb2RlOjpDaGls
ZENoYW5nZSYgY2hhbmdlKQogewogICAgIHN3aXRjaCAoY2hhbmdlLnR5cGUpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vQ29udGFpbmVyTm9kZS5oCmluZGV4IDcyNTIwMTQ4NGQ5MDRkYTNmZWI2NmE5NjQyZmVlMDUw
ZjA0NGQwNTMuLjBlYTYwNjE3Njk2OTRmNjU5ZmQ2MWY1MzZlYTkzYjFmNjNjZDBiZDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaApAQCAtMTAzLDYgKzEwMyw4IEBAIGNsYXNzIENvbnRh
aW5lck5vZGUgOiBwdWJsaWMgTm9kZSB7CiAgICAgfTsKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRy
ZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJik7CiAKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBh
cHBlbmRDaGlsZChDaGlsZENoYW5nZTo6U291cmNlLCBOb2RlJiBuZXdDaGlsZCk7CisKICAgICB2
b2lkIGRpc2Nvbm5lY3REZXNjZW5kYW50RnJhbWVzKCk7CiAKICAgICBSZW5kZXJFbGVtZW50KiBy
ZW5kZXJlcigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0
ZUFuZFRpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRp
bWVJbnB1dFR5cGUuY3BwCmluZGV4IDRhMmI5NzVmOWJiMTE0YjQwMDMwZWVjNjRjYWJhZjljNjFk
MTBmNzAuLmRmN2FjNGZkMWU1YmVlZWZhMjk5YTQ3YTQ4YTBhZmE0Mzg3MjViOTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKQEAgLTMw
Nyw3ICszMDcsNyBAQCB2b2lkIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6aGFuZGxlRE9NQWN0
aXZhdGVFdmVudChFdmVudCYpCiAgICAgfQogfQogCi12b2lkIEJhc2VEYXRlQW5kVGltZUlucHV0
VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJp
bGl0eShDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291cmNlLCBib29sKQordm9pZCBCYXNl
RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWVBbmRVcGRhdGVJbm5lclRl
eHRFbGVtZW50RWRpdGFiaWxpdHkoQ29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2U6OlNvdXJjZSBz
b3VyY2UsIGJvb2wpCiB7CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAKQEAgLTMxNiwxMiArMzE2
LDEyIEBAIHZvaWQgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVl
QW5kVXBkYXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhCiAKICAgICBpZiAoZG9jdW1lbnQuc2V0dGlu
Z3MoKS5kYXRlVGltZUlucHV0c0VkaXRhYmxlQ29tcG9uZW50c0VuYWJsZWQoKSkgewogICAgICAg
ICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQgPSBEYXRlVGltZUVkaXRFbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQsICp0aGlzKTsKLSAgICAgICAgZWxlbWVudC51c2VyQWdlbnRTaGFkb3dSb290KCktPmFw
cGVuZENoaWxkKCptX2RhdGVUaW1lRWRpdEVsZW1lbnQpOworICAgICAgICBlbGVtZW50LnVzZXJB
Z2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoc291cmNlLCAqbV9kYXRlVGltZUVkaXRFbGVt
ZW50KTsKICAgICB9IGVsc2UgewogICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IHZhbHVlQ29udGFpbmVyUHNldWRvKCItd2Via2l0LWRhdGUt
YW5kLXRpbWUtdmFsdWUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
ICAgIGF1dG8gdmFsdWVDb250YWluZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
KTsKICAgICAgICAgdmFsdWVDb250YWluZXItPnNldFBzZXVkbyh2YWx1ZUNvbnRhaW5lclBzZXVk
byk7Ci0gICAgICAgIGVsZW1lbnQudXNlckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZCh2
YWx1ZUNvbnRhaW5lcik7CisgICAgICAgIGVsZW1lbnQudXNlckFnZW50U2hhZG93Um9vdCgpLT5h
cHBlbmRDaGlsZChzb3VyY2UsIHZhbHVlQ29udGFpbmVyKTsKICAgICB9CiAgICAgdXBkYXRlSW5u
ZXJUZXh0VmFsdWUoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJ
bnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKaW5k
ZXggNDE0ZmE0ZjZkMjA5M2ZkZWU5NjEyNTcwMjBlMzhiNWJmMDBlYzVjOS4uNmNlZmJlMGExYWJm
NjNmNDNlZjRiNmU0NjExZWU4MDQ0Zjc3ZTM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9Db2xvcklucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklu
cHV0VHlwZS5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCBDb2xvciBDb2xvcklucHV0VHlwZTo6dmFs
dWVBc0NvbG9yKCkgY29uc3QKICAgICByZXR1cm4gcGFyc2VTaW1wbGVDb2xvclZhbHVlKGVsZW1l
bnQoKS0+dmFsdWUoKSkudmFsdWUoKTsKIH0KIAotdm9pZCBDb2xvcklucHV0VHlwZTo6Y3JlYXRl
U2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eShDb250YWlu
ZXJOb2RlOjpDaGlsZENoYW5nZTo6U291cmNlLCBib29sKQordm9pZCBDb2xvcklucHV0VHlwZTo6
Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eShD
b250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291cmNlIHNvdXJjZSwgYm9vbCkKIHsKICAgICBB
U1NFUlQoZWxlbWVudCgpKTsKICAgICBBU1NFUlQoZWxlbWVudCgpLT5zaGFkb3dSb290KCkpOwpA
QCAtMTUyLDggKzE1Miw4IEBAIHZvaWQgQ29sb3JJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRy
ZWVBbmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkoQ29uCiAgICAgd3JhcHBlckVs
ZW1lbnQtPnNldFBzZXVkbyh3ZWJraXRDb2xvclN3YXRjaFdyYXBwZXJOYW1lKTsKICAgICBhdXRv
IGNvbG9yU3dhdGNoID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29s
b3JTd2F0Y2gtPnNldFBzZXVkbyh3ZWJraXRDb2xvclN3YXRjaE5hbWUpOwotICAgIHdyYXBwZXJF
bGVtZW50LT5hcHBlbmRDaGlsZChjb2xvclN3YXRjaCk7Ci0gICAgZWxlbWVudCgpLT51c2VyQWdl
bnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKHdyYXBwZXJFbGVtZW50KTsKKyAgICB3cmFwcGVy
RWxlbWVudC0+YXBwZW5kQ2hpbGQoc291cmNlLCBjb2xvclN3YXRjaCk7CisgICAgZWxlbWVudCgp
LT51c2VyQWdlbnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKHNvdXJjZSwgd3JhcHBlckVsZW1l
bnQpOwogCiAgICAgdXBkYXRlQ29sb3JTd2F0Y2goKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJ
bnB1dFR5cGUuY3BwCmluZGV4IGIzNTJkOTQ0OTg0YWU0MWZkMWE1NTQyM2ZlNWQ2MGM0MDAwOGJj
YzkuLjMxMWM1ODdjZjkzYzEwY2I5NjMwMjBjZjhkZmVlZDcxODU4OGFjZjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtMjc4LDExICsyNzgsMTEgQEAgYm9vbCBGaWxl
SW5wdXRUeXBlOjppc0ZpbGVVcGxvYWQoKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCi12
b2lkIEZpbGVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWVBbmRVcGRhdGVJbm5lclRleHRF
bGVtZW50RWRpdGFiaWxpdHkoQ29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2U6OlNvdXJjZSwgYm9v
bCkKK3ZvaWQgRmlsZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVy
VGV4dEVsZW1lbnRFZGl0YWJpbGl0eShDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291cmNl
IHNvdXJjZSwgYm9vbCkKIHsKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKICAgICBBU1NFUlQoZWxl
bWVudCgpLT5zaGFkb3dSb290KCkpOwotICAgIGVsZW1lbnQoKS0+dXNlckFnZW50U2hhZG93Um9v
dCgpLT5hcHBlbmRDaGlsZChlbGVtZW50KCktPm11bHRpcGxlKCkgPyBVcGxvYWRCdXR0b25FbGVt
ZW50OjpjcmVhdGVGb3JNdWx0aXBsZShlbGVtZW50KCktPmRvY3VtZW50KCkpOiBVcGxvYWRCdXR0
b25FbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLT5kb2N1bWVudCgpKSk7CisgICAgZWxlbWVudCgp
LT51c2VyQWdlbnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKHNvdXJjZSwgZWxlbWVudCgpLT5t
dWx0aXBsZSgpID8gVXBsb2FkQnV0dG9uRWxlbWVudDo6Y3JlYXRlRm9yTXVsdGlwbGUoZWxlbWVu
dCgpLT5kb2N1bWVudCgpKTogVXBsb2FkQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS0+
ZG9jdW1lbnQoKSkpOwogfQogCiB2b2lkIEZpbGVJbnB1dFR5cGU6OmRpc2FibGVkU3RhdGVDaGFu
Z2VkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKaW5kZXggYWIzMDg5M2Zj
ZTVkNmFjZWEwNjk3MjRjMGZkNTk3MTZjZTg3NjVlMC4uNDU5NmE3MDE4ZWQwOTBhNWY2MTM0YmM0
ZjFjMDU3Nzk3MmM4YWU0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlu
cHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAK
QEAgLTI1Miw3ICsyNTIsNyBAQCBhdXRvIFJhbmdlSW5wdXRUeXBlOjpoYW5kbGVLZXlkb3duRXZl
bnQoS2V5Ym9hcmRFdmVudCYgZXZlbnQpIC0+IFNob3VsZENhbGxCYXNlRQogICAgIHJldHVybiBT
aG91bGRDYWxsQmFzZUV2ZW50SGFuZGxlcjo6WWVzOwogfQogCi12b2lkIFJhbmdlSW5wdXRUeXBl
OjpjcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5
KENvbnRhaW5lck5vZGU6OkNoaWxkQ2hhbmdlOjpTb3VyY2UsIGJvb2wpCit2b2lkIFJhbmdlSW5w
dXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJUZXh0RWxlbWVudEVkaXRh
YmlsaXR5KENvbnRhaW5lck5vZGU6OkNoaWxkQ2hhbmdlOjpTb3VyY2Ugc291cmNlLCBib29sKQog
ewogICAgIEFTU0VSVChlbGVtZW50KCkpOwogICAgIEFTU0VSVChlbGVtZW50KCktPnVzZXJBZ2Vu
dFNoYWRvd1Jvb3QoKSk7CkBAIC0yNjEsMTAgKzI2MSwxMCBAQCB2b2lkIFJhbmdlSW5wdXRUeXBl
OjpjcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5
KENvbgogICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGVsZW1lbnQoKS0+ZG9jdW1lbnQoKTsKICAg
ICBhdXRvIHRyYWNrID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgdHJh
Y2stPnNldFBzZXVkbyh3ZWJraXRTbGlkZXJSdW5uYWJsZVRyYWNrTmFtZSk7Ci0gICAgdHJhY2st
PmFwcGVuZENoaWxkKFNsaWRlclRodW1iRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KSk7CisgICAg
dHJhY2stPmFwcGVuZENoaWxkKHNvdXJjZSwgU2xpZGVyVGh1bWJFbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQpKTsKICAgICBhdXRvIGNvbnRhaW5lciA9IFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udGFpbmVyLT5hcHBlbmRDaGlsZCh0cmFjayk7Ci0gICAg
ZWxlbWVudCgpLT51c2VyQWdlbnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKGNvbnRhaW5lcik7
CisgICAgY29udGFpbmVyLT5hcHBlbmRDaGlsZChzb3VyY2UsIHRyYWNrKTsKKyAgICBlbGVtZW50
KCktPnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoc291cmNlLCBjb250YWluZXIp
OwogfQogCiBIVE1MRWxlbWVudCogUmFuZ2VJbnB1dFR5cGU6OnNsaWRlclRyYWNrRWxlbWVudCgp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKaW5kZXgg
MTkzMmJjNjM3YzNhNmM5YzQzMTMzYTBjY2FkNzZhYTYyMmQxNWY2OC4uMDM5OWFiNzRhNzhhNzlh
ZDljMGU5NWY2NTYzNWIzNmY2Mzg4NTgzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZp
ZWxkSW5wdXRUeXBlLmNwcApAQCAtMzM3LDEwICszMzcsNyBAQCB2b2lkIFRleHRGaWVsZElucHV0
VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJp
bGl0eQogICAgIG1faW5uZXJUZXh0ID0gVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQsIGlzSW5uZXJUZXh0RWxlbWVudEVkaXRhYmxlKTsKIAogICAgIGlmICghY3Jl
YXRlc0NvbnRhaW5lcikgewotICAgICAgICBpZiAoc291cmNlID09IENvbnRhaW5lck5vZGU6OkNo
aWxkQ2hhbmdlOjpTb3VyY2U6OlBhcnNlcikKLSAgICAgICAgICAgIGVsZW1lbnQoKS0+dXNlckFn
ZW50U2hhZG93Um9vdCgpLT5wYXJzZXJBcHBlbmRDaGlsZCgqbV9pbm5lclRleHQpOwotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBlbGVtZW50KCktPnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+YXBw
ZW5kQ2hpbGQoKm1faW5uZXJUZXh0KTsKKyAgICAgICAgZWxlbWVudCgpLT51c2VyQWdlbnRTaGFk
b3dSb290KCktPmFwcGVuZENoaWxkKHNvdXJjZSwgKm1faW5uZXJUZXh0KTsKICAgICAgICAgdXBk
YXRlUGxhY2Vob2xkZXJUZXh0KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0zNTAsMTAg
KzM0Nyw3IEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlQW5k
VXBkYXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5CiAKICAgICBpZiAoc2hvdWxkSGF2ZVNw
aW5CdXR0b24pIHsKICAgICAgICAgbV9pbm5lclNwaW5CdXR0b24gPSBTcGluQnV0dG9uRWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50LCAqdGhpcyk7Ci0gICAgICAgIGlmIChzb3VyY2UgPT0gQ29udGFp
bmVyTm9kZTo6Q2hpbGRDaGFuZ2U6OlNvdXJjZTo6UGFyc2VyKQotICAgICAgICAgICAgbV9jb250
YWluZXItPnBhcnNlckFwcGVuZENoaWxkKCptX2lubmVyU3BpbkJ1dHRvbik7Ci0gICAgICAgIGVs
c2UKLSAgICAgICAgICAgIG1fY29udGFpbmVyLT5hcHBlbmRDaGlsZCgqbV9pbm5lclNwaW5CdXR0
b24pOworICAgICAgICBtX2NvbnRhaW5lci0+YXBwZW5kQ2hpbGQoc291cmNlLCAqbV9pbm5lclNw
aW5CdXR0b24pOwogICAgIH0KIAogICAgIGlmIChzaG91bGRIYXZlQ2Fwc0xvY2tJbmRpY2F0b3Ip
IHsKQEAgLTM2NCwxMCArMzU4LDcgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNo
YWRvd1N1YnRyZWVBbmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkKICAgICAgICAg
Ym9vbCBzaG91bGREcmF3Q2Fwc0xvY2tJbmRpY2F0b3IgPSB0aGlzLT5zaG91bGREcmF3Q2Fwc0xv
Y2tJbmRpY2F0b3IoKTsKICAgICAgICAgbV9jYXBzTG9ja0luZGljYXRvci0+c2V0SW5saW5lU3R5
bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eURpc3BsYXksIHNob3VsZERyYXdDYXBzTG9ja0luZGljYXRv
ciA/IENTU1ZhbHVlQmxvY2sgOiBDU1NWYWx1ZU5vbmUsIHRydWUpOwogCi0gICAgICAgIGlmIChz
b3VyY2UgPT0gQ29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2U6OlNvdXJjZTo6UGFyc2VyKQotICAg
ICAgICAgICAgbV9jb250YWluZXItPnBhcnNlckFwcGVuZENoaWxkKCptX2NhcHNMb2NrSW5kaWNh
dG9yKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9jb250YWluZXItPmFwcGVuZENoaWxk
KCptX2NhcHNMb2NrSW5kaWNhdG9yKTsKKyAgICAgICAgbV9jb250YWluZXItPmFwcGVuZENoaWxk
KHNvdXJjZSwgKm1fY2Fwc0xvY2tJbmRpY2F0b3IpOwogICAgIH0KICAgICB1cGRhdGVBdXRvRmls
bEJ1dHRvbigpOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>