<?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>186324</bug_id>
          
          <creation_ts>2018-06-05 14:36:17 -0700</creation_ts>
          <short_desc>[Cocoa] Retire DispatchPtr, and add more move semantics and simpler #ifs to other smart pointers</short_desc>
          <delta_ts>2018-06-05 17:19:24 -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>Web Template Framework</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>andersca</cc>
    
    <cc>dbates</cc>
    
    <cc>mitz</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1430232</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-06-05 14:36:17 -0700</bug_when>
    <thetext>[Cocoa] Retire DispatchPtr, and add more move semantics and simpler #ifs to other smart pointers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430233</commentid>
    <comment_count>1</comment_count>
      <attachid>341996</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-06-05 14:42:59 -0700</bug_when>
    <thetext>Created attachment 341996
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430236</commentid>
    <comment_count>2</comment_count>
      <attachid>341996</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2018-06-05 14:45:20 -0700</bug_when>
    <thetext>Comment on attachment 341996
Patch

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

&gt; Source/WTF/wtf/RetainPtr.h:118
&gt; -#if defined (__OBJC__) &amp;&amp; __has_feature(objc_arc)
&gt; +#if __has_feature(objc_arc)

I think you might have to keep this in RetainPtr, unless __has_feature is defined away on Windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430239</commentid>
    <comment_count>3</comment_count>
      <attachid>341996</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-06-05 14:55:50 -0700</bug_when>
    <thetext>Comment on attachment 341996
Patch

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

&gt;&gt; Source/WTF/wtf/RetainPtr.h:118
&gt;&gt; +#if __has_feature(objc_arc)
&gt; 
&gt; I think you might have to keep this in RetainPtr, unless __has_feature is defined away on Windows.

All right. I will.

Or I could use COMPILER_HAS_CLANG_FEATURE. But I will just leave this unmodified. Even though the space after &quot;defined&quot; drives me a little nuts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430289</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-06-05 17:18:33 -0700</bug_when>
    <thetext>Committed r232528: &lt;https://trac.webkit.org/changeset/232528&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430290</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-06-05 17:19:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/40830436&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341996</attachid>
            <date>2018-06-05 14:42:59 -0700</date>
            <delta_ts>2018-06-05 14:45:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186324-20180605144258.patch</filename>
            <type>text/plain</type>
            <size>23804</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyNTIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGVhMzRjZmEyYzRmMWI1MGZhODZjZTNh
NDE0Nzg5NDg3MDQ5OTAwYWEuLjhjZWQ1NTc2N2YwMWY3NTg4M2M0ZmVjYWU0YTNiMTJlMjA4MmI3
YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTgtMDYtMDUgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gUmV0aXJlIERpc3BhdGNoUHRyLCBhbmQgYWRk
IG1vcmUgbW92ZSBzZW1hbnRpY3MgYW5kIHNpbXBsZXIgI2lmcyB0byBvdGhlciBzbWFydCBwb2lu
dGVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2
MzI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
VEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogUmVtb3ZlZCBEaXNwYXRjaFB0ci5oLgorICAg
ICAgICAqIHd0Zi9CbG9ja1B0ci5oOiBSZW1vdmUgdW5uZWVkZWQgY2hlY2tzIGZvciBfX09CSkNf
Xy4gQWRkZWQgc29tZSB1c2UKKyAgICAgICAgb2YgV1RGTW92ZS4KKyAgICAgICAgKiB3dGYvQ01h
a2VMaXN0cy50eHQ6IFJlbW92ZWQgRGlzcGF0Y2hQdHIuaC4KKyAgICAgICAgKiB3dGYvRGlzcGF0
Y2hQdHIuaDogUmVtb3ZlZC4gV2Ugbm8gbG9uZ2VyIG5lZWQgdG8gc3VwcG9ydCBNYXZlcmlja3Mu
CisgICAgICAgICogd3RmL09TT2JqZWN0UHRyLmg6IFJlbW92ZSB1bm5lZWRlZCBjaGVja3MgZm9y
IF9fT0JKQ19fLiBBZGRlZCBzb21lIHVzZQorICAgICAgICBvZiBXVEZNb3ZlLgorICAgICAgICAq
IHd0Zi9SZXRhaW5QdHIuaDogUmVtb3ZlIHVubmVlZGVkIGNoZWNrcyBmb3IgX19PQkpDX18uCisK
IDIwMTgtMDYtMDUgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtD
b2NvYV0gTW9yZSBwcmVwYXJhdGlvbiBmb3IgQVJDLCBmb2N1c2luZyBvbiBXZWJLaXQgYW5kIHNt
YXJ0IHBvaW50ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzY0NmQxMzc4NTMzZDRkMGE1NDAzMGIzZmEwMmE3
NjY0YWQ2MTBlNi4uNDQ0MGMyOTM1ZjZjYmYxNWQwNGFkMWVjZjI3MjMxZGRlZmZhYzEzOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE4LTA2LTA1ICBEYXJpbiBBZGxlciAgPGRhcmlu
QGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFJldGlyZSBEaXNwYXRjaFB0ciwgYW5kIGFk
ZCBtb3JlIG1vdmUgc2VtYW50aWNzIGFuZCBzaW1wbGVyICNpZnMgdG8gb3RoZXIgc21hcnQgcG9p
bnRlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
NjMyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
cGxhdGZvcm0vRmlsZU1vbml0b3IuaDogVXNlIE9TT2JqZWN0UHRyIGluc3RlYWQgb2YgRGlzcGF0
Y2hQdHIuCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvRmlsZU1vbml0b3JDb2NvYS5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OkZpbGVNb25pdG9yOjpGaWxlTW9uaXRvcik6IERpdHRvLgorCiAyMDE4
LTA2LTA1ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2Fd
IEltcHJvdmUgc29tZSBzb2Z0IGxpbmtpbmcgY29tcGF0aWJpbGl0eSB3aXRoIEFSQwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCBjYTBhZWVmOTFhZTk3MWNkMDhlZjI4NTVmYTBmNWE4NDI4NzM3YTIxLi41NTg2ZTk4MDMw
M2FiOWZmNzVjNWIyZDMxN2MxYWE3ZThmMWJkNzZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBA
CisyMDE4LTA2LTA1ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBb
Q29jb2FdIFJldGlyZSBEaXNwYXRjaFB0ciwgYW5kIGFkZCBtb3JlIG1vdmUgc2VtYW50aWNzIGFu
ZCBzaW1wbGVyICNpZnMgdG8gb3RoZXIgc21hcnQgcG9pbnRlcnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NjMyNAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlRGF0YS5oOiBVc2UgT1NPYmplY3RQdHIgaW5zdGVhZCBvZgorICAgICAgICBEaXNw
YXRjaFB0ciBhbmQgYWxzbyB1c2UgYW4gcnZhbHVlIHJlZmVyZW5jZSBpbiB0aGUgY29uc3RydWN0
b3IuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRGF0YUNvY29h
Lm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkRhdGE6OkRhdGEpOiBVc2UgYWRv
cHRPU09iamVjdCwgcnZhbHVlIHJlZmVyZW5jZQorICAgICAgICBhbmQgV1RGTW92ZS4KKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpEYXRhOjplbXB0eSk6IFVzZSBPU09iamVjdFB0ci4K
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpEYXRhOjpkYXRhIGNvbnN0KTogVXNlIGFk
b3B0T1NPYmplY3QuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RGF0YTo6c3VicmFu
Z2UgY29uc3QpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpjb25jYXRl
bmF0ZSk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkRhdGE6OmFkb3B0
TWFwKTogRGl0dG8uIEFsc28gdXNlIFdURk1vdmUuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaDogVXNlIE9TT2JqZWN0UHRyLgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbENvY29hLm1tOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OklPQ2hhbm5lbDo6SU9DaGFubmVsKTogVXNl
IGFkb3B0T1NPYmplY3QuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6SU9DaGFubmVs
OjpyZWFkKTogVXNlIE9TT2JqZWN0UHRyLgorCiAyMDE4LTA2LTA1ICBEYXJpbiBBZGxlciAgPGRh
cmluQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIE1vcmUgcHJlcGFyYXRpb24gZm9yIEFS
QywgZm9jdXNpbmcgb24gV2ViS2l0IGFuZCBzbWFydCBwb2ludGVycwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMTA0M2I4ZDYyMjM3OWNmYjllMzdlZDc4NDI3
ODJkYmQ0ZDA2NDVhMC4uODYyYzdjY2JjMmYwOGUwYzZlZThlZTIwNzI4MTU2ZWRkZWY3ZDNmZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NTMsNyArNDUz
LDYgQEAKIAkJQThBNDcyN0IxNTFBODI1QTAwNDEyM0ZGIC8qIERlY2ltYWxOdW1iZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGVjaW1hbE51bWJlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3MjdDMTUxQTgyNUEwMDQxMjNGRiAvKiBE
ZWNpbWFsTnVtYmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERlY2ltYWxO
dW1iZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDcyN0UxNTFBODI1QTAw
NDEyM0ZGIC8qIERlcXVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERlcXVl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QTQ3MjdGMTUxQTgyNUEwMDQxMjNG
RiAvKiBEaXNwYXRjaFB0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNw
YXRjaFB0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEE0NzI4MDE1MUE4MjVB
MDA0MTIzRkYgLyogRG91Ymx5TGlua2VkTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEb3VibHlMaW5rZWRMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUE4QTQ3MjgyMTUxQTgyNUEwMDQxMjNGRiAvKiBiaWdudW0tZHRvYS5jYyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9ICJiaWdudW0tZHRvYS5jYyI7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE4QTQ3MjgzMTUxQTgyNUEwMDQxMjNGRiAvKiBiaWdudW0tZHRvYS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSAiYmlnbnVtLWR0b2EuaCI7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04NjUsNyArODY0LDYgQEAKIAkJCQlBNTYxRjMwRjFE
RjI2NDIxMDBGRjY3NUQgLyogRGVwcmVjYXRlZE9wdGlvbmFsLmggKi8sCiAJCQkJQThBNDcyN0Ux
NTFBODI1QTAwNDEyM0ZGIC8qIERlcXVlLmggKi8sCiAJCQkJQTlBNDcyN0YxNTFBODI1QTAwNDEy
M0ZGIC8qIERpc2FsbG93Q1R5cGUuaCAqLywKLQkJCQlBOEE0NzI3RjE1MUE4MjVBMDA0MTIzRkYg
LyogRGlzcGF0Y2hQdHIuaCAqLywKIAkJCQkwRjQ1NzA0MjFCRTVCNThGMDA2MkE2MjkgLyogRG9t
aW5hdG9ycy5oICovLAogCQkJCUE4QTQ3MjgwMTUxQTgyNUEwMDQxMjNGRiAvKiBEb3VibHlMaW5r
ZWRMaXN0LmggKi8sCiAJCQkJQThBNDcyOTcxNTFBODI1QTAwNDEyM0ZGIC8qIGR0b2EuY3BwICov
LApAQCAtMTIxOSw4ICsxMjE3LDggQEAKIAkJCQlBOEE0NzMyQzE1MUE4MjVCMDA0MTIzRkYgLyog
VGV4dFBvc2l0aW9uLmggKi8sCiAJCQkJQTNFNEREOTExRjNBODAzNDAwREVEMEI0IC8qIFRleHRT
dHJlYW0uY3BwICovLAogCQkJCUEzRTRERDkyMUYzQTgwMzQwMERFRDBCNCAvKiBUZXh0U3RyZWFt
LmggKi8sCi0JCQkJRkVGMjk1QkYyMEI0OURDQjAwQ0YyODNBIC8qIFVURjhDb252ZXJzaW9uRXJy
b3IuaCAqLywKIAkJCQk3MEVDQTYwQzFCMDI0MjY4MDA0NDk3MzkgLyogVW5pcXVlZFN0cmluZ0lt
cGwuaCAqLywKKwkJCQlGRUYyOTVCRjIwQjQ5RENCMDBDRjI4M0EgLyogVVRGOENvbnZlcnNpb25F
cnJvci5oICovLAogCQkJCUEzQUI2RTZBMUYzRTFBRDYwMDlDMTRCMSAvKiBWYWx1ZVRvU3RyaW5n
LmggKi8sCiAJCQkJQThBNDczMkQxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlN0cmluZy5jcHAgKi8s
CiAJCQkJQThBNDczMkUxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlN0cmluZy5oICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvQmxvY2tQdHIuaCBiL1NvdXJjZS9XVEYvd3RmL0Jsb2NrUHRy
LmgKaW5kZXggMTI1OGZkZDYzOTkwNGZjNzQ5MTgxMGNjYWNhOWZjMTZkYmEzMjAyYS4uYWMzZTEy
YzM2YjdjMmZjZTE2OTE4YzQ2MWUyYTgzNWIzNGIzM2JlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvQmxvY2tQdHIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9CbG9ja1B0ci5oCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTk3LDE0ICs5
NywxMyBAQCBwdWJsaWM6CiAKICAgICAgICAgbmV3ICgmYmxvY2stPmYpIEYgeyBzdGQ6Om1vdmUo
ZnVuY3Rpb24pIH07CiAKLSNpZiBkZWZpbmVkKF9fT0JKQ19fKSAmJiBfX2hhc19mZWF0dXJlKG9i
amNfYXJjKQotICAgICAgICBCbG9ja1B0ciBibG9ja1B0ciB7IChfX2JyaWRnZV90cmFuc2ZlciBC
bG9ja1R5cGUpYmxvY2sgfTsKKyNpZiBfX2hhc19mZWF0dXJlKG9iamNfYXJjKQorICAgICAgICBy
ZXR1cm4gQmxvY2tQdHIgeyAoX19icmlkZ2VfdHJhbnNmZXIgQmxvY2tUeXBlKWJsb2NrIH07CiAj
ZWxzZQogICAgICAgICBCbG9ja1B0ciBibG9ja1B0cjsKICAgICAgICAgYmxvY2tQdHIubV9ibG9j
ayA9IHJlaW50ZXJwcmV0X2Nhc3Q8QmxvY2tUeXBlPihibG9jayk7Ci0jZW5kaWYKLQogICAgICAg
ICByZXR1cm4gYmxvY2tQdHI7CisjZW5kaWYKICAgICB9CiAKICAgICBCbG9ja1B0cigpCkBAIC0x
MTMsOCArMTEyLDggQEAgcHVibGljOgogICAgIH0KIAogICAgIEJsb2NrUHRyKEJsb2NrVHlwZSBi
bG9jaykKLSNpZiBkZWZpbmVkKF9fT0JKQ19fKSAmJiBfX2hhc19mZWF0dXJlKG9iamNfYXJjKQot
ICAgICAgICA6IG1fYmxvY2soYmxvY2spCisjaWYgX19oYXNfZmVhdHVyZShvYmpjX2FyYykKKyAg
ICAgICAgOiBtX2Jsb2NrKFdURk1vdmUoYmxvY2spKQogI2Vsc2UKICAgICAgICAgOiBtX2Jsb2Nr
KEJsb2NrX2NvcHkoYmxvY2spKQogI2VuZGlmCkBAIC0xMjIsNyArMTIxLDcgQEAgcHVibGljOgog
ICAgIH0KIAogICAgIEJsb2NrUHRyKGNvbnN0IEJsb2NrUHRyJiBvdGhlcikKLSNpZiBkZWZpbmVk
KF9fT0JKQ19fKSAmJiBfX2hhc19mZWF0dXJlKG9iamNfYXJjKQorI2lmIF9faGFzX2ZlYXR1cmUo
b2JqY19hcmMpCiAgICAgICAgIDogbV9ibG9jayhvdGhlci5tX2Jsb2NrKQogI2Vsc2UKICAgICAg
ICAgOiBtX2Jsb2NrKEJsb2NrX2NvcHkob3RoZXIubV9ibG9jaykpCkBAIC0xMzcsMTQgKzEzNiwx
NCBAQCBwdWJsaWM6CiAgICAgCiAgICAgfkJsb2NrUHRyKCkKICAgICB7Ci0jaWYgIWRlZmluZWQo
X19PQkpDX18pIHx8ICFfX2hhc19mZWF0dXJlKG9iamNfYXJjKQorI2lmICFfX2hhc19mZWF0dXJl
KG9iamNfYXJjKQogICAgICAgICBCbG9ja19yZWxlYXNlKG1fYmxvY2spOwogI2VuZGlmCiAgICAg
fQogCiAgICAgQmxvY2tQdHImIG9wZXJhdG9yPShjb25zdCBCbG9ja1B0ciYgb3RoZXIpCiAgICAg
ewotI2lmIGRlZmluZWQoX19PQkpDX18pICYmIF9faGFzX2ZlYXR1cmUob2JqY19hcmMpCisjaWYg
X19oYXNfZmVhdHVyZShvYmpjX2FyYykKICAgICAgICAgbV9ibG9jayA9IG90aGVyLm1fYmxvY2s7
CiAjZWxzZQogICAgICAgICBpZiAodGhpcyAhPSAmb3RoZXIpIHsKQEAgLTE2MCw3ICsxNTksNyBA
QCBwdWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlQodGhpcyAhPSAmb3RoZXIpOwogCi0jaWYg
IWRlZmluZWQoX19PQkpDX18pIHx8ICFfX2hhc19mZWF0dXJlKG9iamNfYXJjKQorI2lmICFfX2hh
c19mZWF0dXJlKG9iamNfYXJjKQogICAgICAgICBCbG9ja19yZWxlYXNlKG1fYmxvY2spOwogI2Vu
ZGlmCiAgICAgICAgIG1fYmxvY2sgPSBzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fYmxvY2ssIG51bGxw
dHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
V1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCA5ZmFlYzAxNjc4NGJkOTNhNjM1ZTA5ZDRjOWM3
NjMyZTAzMmQ2YTA4Li42Y2U2MTdhN2I0ZGNhNDA0OGI1N2EyNjI4NjM2MWQ0NTc3MzMzYjNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAtNTAsNyArNTAsNiBAQCBzZXQoV1RGX1BVQkxJQ19IRUFE
RVJTCiAgICAgRGVwcmVjYXRlZE9wdGlvbmFsLmgKICAgICBEZXF1ZS5oCiAgICAgRGlzYWxsb3dD
VHlwZS5oCi0gICAgRGlzcGF0Y2hQdHIuaAogICAgIERvbWluYXRvcnMuaAogICAgIERvdWJseUxp
bmtlZExpc3QuaAogICAgIER1bWJQdHJUcmFpdHMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvRGlzcGF0Y2hQdHIuaCBiL1NvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUHRyLmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU5OGU1ZjNlODIwMmMxOTM4YjhmMDhmNTQ1MjAyMjcwYjcy
YzNkMTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dURi93dGYvRGlzcGF0Y2hQdHIuaAorKysgL2Rldi9udWxsCkBAIC0xLDExNSArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgPHd0Zi9Bc3NlcnRp
b25zLmg+Ci0jaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgotCi1uYW1lc3BhY2UgV1RGIHsK
LQotLy8gRklYTUU6IFVzZSBPU09iamVjdFB0ciBpbnN0ZWFkIGluIHRoZSB0aHJlZSBwbGFjZXMg
dGhpcyBpcyB1c2VkIGFuZCB0aGVuCi0vLyBkZWxldGUgdGhpcy4gV2hlbiB0aGlzIGNsYXNzIHRl
bXBsYXRlIHdhcyBvcmlnaW5hbGx5IGNyZWF0ZWQgb3NfcmV0YWluCi0vLyBkaWQgbm90IHlldCB3
b3JrIHdpdGggZGlzcGF0Y2hfZGF0YV90LCBidXQgaXQgbm93IGRvZXMgb24gdmVyc2lvbnMgb2YK
LS8vIENvY29hIHBsYXRmb3JtcyB0aGF0IFdlYktpdCBzdXBwb3J0cyBhbmQgV2ViS2l0IGFscmVh
ZHkgdXNlcyBPU09iamVjdFB0cgotLy8gZm9yIGRpc3BhdGNoX2RhdGFfdCBpbiBtdWx0aXBsZSBw
bGFjZXMuCi0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIERpc3BhdGNoUHRyOwotdGVtcGxh
dGU8dHlwZW5hbWUgVD4gRGlzcGF0Y2hQdHI8VD4gYWRvcHREaXNwYXRjaChUIGRpc3BhdGNoT2Jq
ZWN0KTsKLQotdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgRGlzcGF0Y2hQdHIgewotcHVibGlj
OgotICAgIERpc3BhdGNoUHRyKCkKLSAgICAgICAgOiBtX3B0cihudWxscHRyKQotICAgIHsKLSAg
ICB9Ci0gICAgZXhwbGljaXQgRGlzcGF0Y2hQdHIoVCBwdHIpCi0gICAgICAgIDogbV9wdHIocHRy
KQotICAgIHsKLSNpZiAhZGVmaW5lZChfX09CSkNfXykgfHwgIV9faGFzX2ZlYXR1cmUob2JqY19h
cmMpCi0gICAgICAgIGlmIChtX3B0cikKLSAgICAgICAgICAgIGRpc3BhdGNoX3JldGFpbihtX3B0
cik7Ci0jZW5kaWYKLSAgICB9Ci0gICAgRGlzcGF0Y2hQdHIoY29uc3QgRGlzcGF0Y2hQdHImIG90
aGVyKQotICAgICAgICA6IG1fcHRyKG90aGVyLm1fcHRyKQotICAgIHsKLSNpZiAhZGVmaW5lZChf
X09CSkNfXykgfHwgIV9faGFzX2ZlYXR1cmUob2JqY19hcmMpCi0gICAgICAgIGlmIChtX3B0cikK
LSAgICAgICAgICAgIGRpc3BhdGNoX3JldGFpbihtX3B0cik7Ci0KLSNlbmRpZgotICAgIH0KLSAg
ICB+RGlzcGF0Y2hQdHIoKQotICAgIHsKLSNpZiAhZGVmaW5lZChfX09CSkNfXykgfHwgIV9faGFz
X2ZlYXR1cmUob2JqY19hcmMpCi0gICAgICAgIGlmIChtX3B0cikKLSAgICAgICAgICAgIGRpc3Bh
dGNoX3JlbGVhc2UobV9wdHIpOwotI2VuZGlmCi0gICAgfQotCi0gICAgRGlzcGF0Y2hQdHImIG9w
ZXJhdG9yPShjb25zdCBEaXNwYXRjaFB0ciYgb3RoZXIpCi0gICAgewotICAgICAgICBhdXRvIGNv
cHkgPSBvdGhlcjsKLSAgICAgICAgc3RkOjpzd2FwKG1fcHRyLCBjb3B5Lm1fcHRyKTsKLSAgICAg
ICAgcmV0dXJuICp0aGlzOwotICAgIH0KLQotICAgIERpc3BhdGNoUHRyJiBvcGVyYXRvcj0oc3Rk
OjpudWxscHRyX3QpCi0gICAgewotI2lmIGRlZmluZWQoX19PQkpDX18pICYmIF9faGFzX2ZlYXR1
cmUob2JqY19hcmMpCi0gICAgICAgIG1fcHRyID0gbnVsbHB0cjsKLSNlbHNlCi0gICAgICAgIGF1
dG8gcHRyID0gc3RkOjpleGNoYW5nZShtX3B0ciwgbnVsbHB0cik7Ci0gICAgICAgIGlmIChMSUtF
TFkocHRyICE9IG51bGxwdHIpKQotICAgICAgICAgICAgZGlzcGF0Y2hfcmVsZWFzZShwdHIpOwot
I2VuZGlmCi0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9Ci0KLSAgICBUIGdldCgpIGNvbnN0
IHsgcmV0dXJuIG1fcHRyOyB9Ci0gICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0IHsg
cmV0dXJuIG1fcHRyOyB9Ci0KLSAgICBmcmllbmQgRGlzcGF0Y2hQdHIgYWRvcHREaXNwYXRjaDxU
PihUKTsKLQotcHJpdmF0ZToKLSAgICBzdHJ1Y3QgQWRvcHQgeyB9OwotICAgIERpc3BhdGNoUHRy
KEFkb3B0LCBUIGRhdGEpCi0gICAgICAgIDogbV9wdHIoZGF0YSkKLSAgICB7Ci0gICAgfQotCi0g
ICAgVCBtX3B0cjsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPiBEaXNwYXRjaFB0cjxUPiBh
ZG9wdERpc3BhdGNoKFQgZGlzcGF0Y2hPYmplY3QpCi17Ci0gICAgcmV0dXJuIERpc3BhdGNoUHRy
PFQ+KHR5cGVuYW1lIERpc3BhdGNoUHRyPFQ+OjpBZG9wdCB7IH0sIGRpc3BhdGNoT2JqZWN0KTsK
LX0KLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KLXVzaW5nIFdURjo6RGlzcGF0Y2hQdHI7Ci11c2lu
ZyBXVEY6OmFkb3B0RGlzcGF0Y2g7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9PU09iamVj
dFB0ci5oIGIvU291cmNlL1dURi93dGYvT1NPYmplY3RQdHIuaAppbmRleCAyMWE4ZmU5NTRjNDAx
Y2FjOGMyMzBjNjU4Y2VlZTY4YTBjMmEyMjkxLi5mZmU4OGNiNzIyYTY5NDgzNDBhMmVmMGRiNDBh
NGY1MjFkZjc4NGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9PU09iamVjdFB0ci5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL09TT2JqZWN0UHRyLmgKQEAgLTI2LDI4ICsyNiwyNSBAQAogI3By
YWdtYSBvbmNlCiAKICNpbmNsdWRlIDxvcy9vYmplY3QuaD4KLSNpbmNsdWRlIDx3dGYvQXNzZXJ0
aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogbmFtZXNwYWNlIFdURiB7
CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIE9TT2JqZWN0UHRyOwordGVtcGxhdGU8dHlw
ZW5hbWU+IGNsYXNzIE9TT2JqZWN0UHRyOwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gT1NPYmplY3RQ
dHI8VD4gYWRvcHRPU09iamVjdChUKTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4KLXN0YXRpYyBp
bmxpbmUgdm9pZCByZXRhaW5PU09iamVjdChUIHB0cikKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0
YXRpYyBpbmxpbmUgdm9pZCByZXRhaW5PU09iamVjdChUIHB0cikKIHsKLSNpZiBkZWZpbmVkKF9f
T0JKQ19fKSAmJiBfX2hhc19mZWF0dXJlKG9iamNfYXJjKQorI2lmIF9faGFzX2ZlYXR1cmUob2Jq
Y19hcmMpCiAgICAgVU5VU0VEX1BBUkFNKHB0cik7CiAjZWxzZQogICAgIG9zX3JldGFpbihwdHIp
OwogI2VuZGlmCiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1zdGF0aWMgaW5saW5lIHZvaWQg
cmVsZWFzZU9TT2JqZWN0KFQgcHRyKQordGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIGlubGlu
ZSB2b2lkIHJlbGVhc2VPU09iamVjdChUIHB0cikKIHsKLSNpZiBkZWZpbmVkKF9fT0JKQ19fKSAm
JiBfX2hhc19mZWF0dXJlKG9iamNfYXJjKQorI2lmIF9faGFzX2ZlYXR1cmUob2JqY19hcmMpCiAg
ICAgVU5VU0VEX1BBUkFNKHB0cik7CiAjZWxzZQogICAgIG9zX3JlbGVhc2UocHRyKTsKQEAgLTgw
LDEzICs3NywxMyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgT1NPYmplY3RQdHIoT1NPYmplY3RQ
dHImJiBvdGhlcikKLSAgICAgICAgOiBtX3B0cihvdGhlci5tX3B0cikKKyAgICAgICAgOiBtX3B0
cihXVEZNb3ZlKG90aGVyLm1fcHRyKSkKICAgICB7CiAgICAgICAgIG90aGVyLm1fcHRyID0gbnVs
bHB0cjsKICAgICB9CiAKICAgICBPU09iamVjdFB0cihUIHB0cikKLSAgICAgICAgOiBtX3B0cihw
dHIpCisgICAgICAgIDogbV9wdHIoV1RGTW92ZShwdHIpKQogICAgIHsKICAgICAgICAgaWYgKG1f
cHRyKQogICAgICAgICAgICAgcmV0YWluT1NPYmplY3QobV9wdHIpOwpAQCAtMTExLDEzICsxMDgs
MTIgQEAgcHVibGljOgogICAgICAgICBpZiAobV9wdHIpCiAgICAgICAgICAgICByZWxlYXNlT1NP
YmplY3QobV9wdHIpOwogICAgICAgICBtX3B0ciA9IG51bGxwdHI7Ci0KICAgICAgICAgcmV0dXJu
ICp0aGlzOwogICAgIH0KIAogICAgIE9TT2JqZWN0UHRyJiBvcGVyYXRvcj0oVCBvdGhlcikKICAg
ICB7Ci0gICAgICAgIE9TT2JqZWN0UHRyIHB0ciA9IG90aGVyOworICAgICAgICBPU09iamVjdFB0
ciBwdHIgPSBXVEZNb3ZlKG90aGVyKTsKICAgICAgICAgc3dhcChwdHIpOwogICAgICAgICByZXR1
cm4gKnRoaXM7CiAgICAgfQpAQCAtMTM3LDcgKzEzMyw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAg
ICAgc3RydWN0IEFkb3B0T1NPYmplY3QgeyB9OwogICAgIE9TT2JqZWN0UHRyKEFkb3B0T1NPYmpl
Y3QsIFQgcHRyKQotICAgICAgICA6IG1fcHRyKHB0cikKKyAgICAgICAgOiBtX3B0cihXVEZNb3Zl
KHB0cikpCiAgICAgewogICAgIH0KIApAQCAtMTQ2LDcgKzE0Miw3IEBAIHByaXZhdGU6CiAKIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBPU09iamVjdFB0cjxUPiBhZG9wdE9TT2JqZWN0KFQg
cHRyKQogewotICAgIHJldHVybiBPU09iamVjdFB0cjxUPih0eXBlbmFtZSBPU09iamVjdFB0cjxU
Pjo6QWRvcHRPU09iamVjdCB7IH0sIHB0cik7CisgICAgcmV0dXJuIE9TT2JqZWN0UHRyPFQ+IHsg
dHlwZW5hbWUgT1NPYmplY3RQdHI8VD46OkFkb3B0T1NPYmplY3QgeyB9LCBXVEZNb3ZlKHB0cikg
fTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9S
ZXRhaW5QdHIuaCBiL1NvdXJjZS9XVEYvd3RmL1JldGFpblB0ci5oCmluZGV4IDU0NWVjMzk4YWMw
YWQyOGUxNTJhM2Y5MTdjZTIxYTM5MTMwMjJkMmYuLjQ0ZjVmMmExYjk5OTAxMTYwMWVjMzgxY2Fm
YjI0NTI5NTU5N2NmMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1JldGFpblB0ci5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL1JldGFpblB0ci5oCkBAIC0xMTUsNyArMTE1LDcgQEAgcHJpdmF0
ZToKIAogICAgIHN0YXRpYyBQdHJUeXBlIGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpIHsgcmV0dXJu
IHJlaW50ZXJwcmV0X2Nhc3Q8UHRyVHlwZT4oLTEpOyB9CiAKLSNpZiBkZWZpbmVkIChfX09CSkNf
XykgJiYgX19oYXNfZmVhdHVyZShvYmpjX2FyYykKKyNpZiBfX2hhc19mZWF0dXJlKG9iamNfYXJj
KQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+CiAgICAgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8
c3RkOjppc19jb252ZXJ0aWJsZTxVLCBpZD46OnZhbHVlLCBQdHJUeXBlPjo6dHlwZQogICAgIGZy
b21TdG9yYWdlVHlwZUhlbHBlcihTdG9yYWdlVHlwZSBwdHIpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlTW9uaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRmlsZU1vbml0b3IuaAppbmRleCBmOTQxMmU1MzJkNzk1YTdiNDU4OTc5NThlMGU5NDY2
OTNhNzUwYjU4Li5lNjBmNzcxM2Y2MmJiMjU2MmE4NDI4ODhjN2ZjNjI5ZjJjNTQ3ZjMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlTW9uaXRvci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVNb25pdG9yLmgKQEAgLTMxLDcgKzMxLDcgQEAKIAogI2lm
IFVTRShDT0NPQV9FVkVOVF9MT09QKQogI2luY2x1ZGUgPGRpc3BhdGNoL2Rpc3BhdGNoLmg+Ci0j
aW5jbHVkZSA8d3RmL0Rpc3BhdGNoUHRyLmg+CisjaW5jbHVkZSA8d3RmL09TT2JqZWN0UHRyLmg+
CiAjZW5kaWYKIAogI2lmIFVTRShHTElCKQpAQCAtNDMsMTcgKzQzLDE0IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgRmlsZU1vbml0b3IgewogcHVibGljOgotICAgIGVudW0gY2xhc3Mg
RmlsZUNoYW5nZVR5cGUgewotICAgICAgICBNb2RpZmljYXRpb24sCi0gICAgICAgIFJlbW92YWwK
LSAgICB9OworICAgIGVudW0gY2xhc3MgRmlsZUNoYW5nZVR5cGUgeyBNb2RpZmljYXRpb24sIFJl
bW92YWwgfTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIEZpbGVNb25pdG9yKGNvbnN0IFN0cmluZyYs
IFJlZjxXb3JrUXVldWU+JiYgaGFuZGxlclF1ZXVlLCBXVEY6OkZ1bmN0aW9uPHZvaWQoRmlsZUNo
YW5nZVR5cGUpPiYmIG1vZGlmaWNhdGlvbkhhbmRsZXIpOwogICAgIFdFQkNPUkVfRVhQT1JUIH5G
aWxlTW9uaXRvcigpOwogCiBwcml2YXRlOgogI2lmIFVTRShDT0NPQV9FVkVOVF9MT09QKQotICAg
IERpc3BhdGNoUHRyPGRpc3BhdGNoX3NvdXJjZV90PiBtX3BsYXRmb3JtTW9uaXRvcjsKKyAgICBP
U09iamVjdFB0cjxkaXNwYXRjaF9zb3VyY2VfdD4gbV9wbGF0Zm9ybU1vbml0b3I7CiAjZW5kaWYK
ICNpZiBVU0UoR0xJQikKICAgICBzdGF0aWMgdm9pZCBmaWxlQ2hhbmdlZENhbGxiYWNrKEdGaWxl
TW9uaXRvciosIEdGaWxlKiwgR0ZpbGUqLCBHRmlsZU1vbml0b3JFdmVudCwgRmlsZU1vbml0b3Iq
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0ZpbGVNb25pdG9y
Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9GaWxlTW9uaXRvckNvY29h
Lm1tCmluZGV4IDRjMGYwNzRlMGQxNzUzYmU2ZmU4YzYwMjdlNTVhMjMzOTZhZGI0YTQuLmQzN2Ux
N2Y3MzE3Njk0ZDJjYTUwYjEwYjJlNWMwYTNjNzBhN2RhMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL0ZpbGVNb25pdG9yQ29jb2EubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvRmlsZU1vbml0b3JDb2NvYS5tbQpAQCAtNTAsNyArNTAsNyBA
QCBGaWxlTW9uaXRvcjo6RmlsZU1vbml0b3IoY29uc3QgU3RyaW5nJiBwYXRoLCBSZWY8V29ya1F1
ZXVlPiYmIGhhbmRsZXJRdWV1ZSwgV1RGOgogICAgIH0KIAogICAgIC8vIFRoZSBzb3VyY2UgKHBs
YXRmb3JtTW9uaXRvcikgcmV0YWlucyB0aGUgZGlzcGF0Y2ggcXVldWUuCi0gICAgbV9wbGF0Zm9y
bU1vbml0b3IgPSBhZG9wdERpc3BhdGNoKGRpc3BhdGNoX3NvdXJjZV9jcmVhdGUoRElTUEFUQ0hf
U09VUkNFX1RZUEVfVk5PREUsIGhhbmRsZSwgbW9uaXRvck1hc2ssIGhhbmRsZXJRdWV1ZS0+ZGlz
cGF0Y2hRdWV1ZSgpKSk7CisgICAgbV9wbGF0Zm9ybU1vbml0b3IgPSBhZG9wdE9TT2JqZWN0KGRp
c3BhdGNoX3NvdXJjZV9jcmVhdGUoRElTUEFUQ0hfU09VUkNFX1RZUEVfVk5PREUsIGhhbmRsZSwg
bW9uaXRvck1hc2ssIGhhbmRsZXJRdWV1ZS0+ZGlzcGF0Y2hRdWV1ZSgpKSk7CiAKICAgICBMT0co
UmVzb3VyY2VMb2FkU3RhdGlzdGljcywgIkNyZWF0aW5nIG1vbml0b3IgJXAiLCBtX3BsYXRmb3Jt
TW9uaXRvci5nZXQoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY2FjaGUvTmV0d29ya0NhY2hlRGF0YS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9OZXR3b3JrQ2FjaGVEYXRhLmgKaW5kZXggZWNmNmQ5OGFmNjlmZTA3MTlkYzY1Yjg4
MzY3Y2E0ZGY3OGI4N2E1My4uNDk2MTA4ZGU2M2ViNDRkZTlmN2JhNTg2ODRlZmUyNDkxZGE2ODli
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3Jr
Q2FjaGVEYXRhLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGVEYXRhLmgKQEAgLTIzLDggKzIzLDcgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIE5ldHdvcmtDYWNoZURhdGFfaAotI2RlZmluZSBO
ZXR3b3JrQ2FjaGVEYXRhX2gKKyNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9u
RGlzcGF0Y2hlci5oPgogI2luY2x1ZGUgPHd0Zi9TSEExLmg+CkBAIC0zMiw3ICszMSw3IEBACiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBQTEFURk9STShDT0NPQSkKLSNp
bmNsdWRlIDx3dGYvRGlzcGF0Y2hQdHIuaD4KKyNpbmNsdWRlIDx3dGYvT1NPYmplY3RQdHIuaD4K
ICNlbmRpZgogCiAjaWYgVVNFKFNPVVApCkBAIC01Nyw3ICs1Niw3IEBAIHB1YmxpYzoKIAogI2lm
IFBMQVRGT1JNKENPQ09BKQogICAgIGVudW0gY2xhc3MgQmFja2luZyB7IEJ1ZmZlciwgTWFwIH07
Ci0gICAgRGF0YShEaXNwYXRjaFB0cjxkaXNwYXRjaF9kYXRhX3Q+LCBCYWNraW5nID0gQmFja2lu
Zzo6QnVmZmVyKTsKKyAgICBEYXRhKE9TT2JqZWN0UHRyPGRpc3BhdGNoX2RhdGFfdD4mJiwgQmFj
a2luZyA9IEJhY2tpbmc6OkJ1ZmZlcik7CiAjZW5kaWYKICNpZiBVU0UoU09VUCkKICAgICBEYXRh
KEdSZWZQdHI8U291cEJ1ZmZlcj4mJiwgaW50IGZkID0gLTEpOwpAQCAtODUsNyArODQsNyBAQCBw
dWJsaWM6CiAjZW5kaWYKIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgbXV0YWJs
ZSBEaXNwYXRjaFB0cjxkaXNwYXRjaF9kYXRhX3Q+IG1fZGlzcGF0Y2hEYXRhOworICAgIG11dGFi
bGUgT1NPYmplY3RQdHI8ZGlzcGF0Y2hfZGF0YV90PiBtX2Rpc3BhdGNoRGF0YTsKICNlbmRpZgog
I2lmIFVTRShTT1VQKQogICAgIG11dGFibGUgR1JlZlB0cjxTb3VwQnVmZmVyPiBtX2J1ZmZlcjsK
QEAgLTEwNiw3ICsxMDUsNiBAQCB1c2luZyBTYWx0ID0gc3RkOjphcnJheTx1aW50OF90LCA4PjsK
IHN0ZDo6b3B0aW9uYWw8U2FsdD4gcmVhZE9yTWFrZVNhbHQoY29uc3QgU3RyaW5nJiBwYXRoKTsK
IFNIQTE6OkRpZ2VzdCBjb21wdXRlU0hBMShjb25zdCBEYXRhJiwgY29uc3QgU2FsdCYpOwogCi19
CiB9CiAKLSNlbmRpZgorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9OZXR3b3JrQ2FjaGVEYXRhQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZURhdGFDb2NvYS5tbQppbmRleCAxZjNiNGI5NmJhZDEy
OGIzYjRkNzg2YzY3NDE5OWZhNDVlMmU0NDI2Li5jODFmODU4YWEwYTIzNWU4ZDY4OTg1ZDFlNzlm
NzkxZWYzMTE4ODk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL05ldHdvcmtDYWNoZURhdGFDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZURhdGFDb2NvYS5tbQpAQCAtMzUsMTMgKzM1LDEzIEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogbmFtZXNwYWNlIE5ldHdvcmtDYWNoZSB7CiAKIERhdGE6OkRh
dGEoY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IHNpemUpCi0gICAgOiBtX2Rpc3BhdGNoRGF0
YShhZG9wdERpc3BhdGNoKGRpc3BhdGNoX2RhdGFfY3JlYXRlKGRhdGEsIHNpemUsIG51bGxwdHIs
IERJU1BBVENIX0RBVEFfREVTVFJVQ1RPUl9ERUZBVUxUKSkpCisgICAgOiBtX2Rpc3BhdGNoRGF0
YShhZG9wdE9TT2JqZWN0KGRpc3BhdGNoX2RhdGFfY3JlYXRlKGRhdGEsIHNpemUsIG51bGxwdHIs
IERJU1BBVENIX0RBVEFfREVTVFJVQ1RPUl9ERUZBVUxUKSkpCiAgICAgLCBtX3NpemUoc2l6ZSkK
IHsKIH0KIAotRGF0YTo6RGF0YShEaXNwYXRjaFB0cjxkaXNwYXRjaF9kYXRhX3Q+IGRpc3BhdGNo
RGF0YSwgQmFja2luZyBiYWNraW5nKQotICAgIDogbV9kaXNwYXRjaERhdGEoZGlzcGF0Y2hEYXRh
KQorRGF0YTo6RGF0YShPU09iamVjdFB0cjxkaXNwYXRjaF9kYXRhX3Q+JiYgZGlzcGF0Y2hEYXRh
LCBCYWNraW5nIGJhY2tpbmcpCisgICAgOiBtX2Rpc3BhdGNoRGF0YShXVEZNb3ZlKGRpc3BhdGNo
RGF0YSkpCiAgICAgLCBtX3NpemUobV9kaXNwYXRjaERhdGEgPyBkaXNwYXRjaF9kYXRhX2dldF9z
aXplKG1fZGlzcGF0Y2hEYXRhLmdldCgpKSA6IDApCiAgICAgLCBtX2lzTWFwKG1fc2l6ZSAmJiBi
YWNraW5nID09IEJhY2tpbmc6Ok1hcCkKIHsKQEAgLTQ5LDcgKzQ5LDcgQEAgRGF0YTo6RGF0YShE
aXNwYXRjaFB0cjxkaXNwYXRjaF9kYXRhX3Q+IGRpc3BhdGNoRGF0YSwgQmFja2luZyBiYWNraW5n
KQogCiBEYXRhIERhdGE6OmVtcHR5KCkKIHsKLSAgICByZXR1cm4geyBEaXNwYXRjaFB0cjxkaXNw
YXRjaF9kYXRhX3Q+KGRpc3BhdGNoX2RhdGFfZW1wdHkpIH07CisgICAgcmV0dXJuIHsgT1NPYmpl
Y3RQdHI8ZGlzcGF0Y2hfZGF0YV90PiB7IGRpc3BhdGNoX2RhdGFfZW1wdHkgfSB9OwogfQogCiBj
b25zdCB1aW50OF90KiBEYXRhOjpkYXRhKCkgY29uc3QKQEAgLTU3LDcgKzU3LDcgQEAgY29uc3Qg
dWludDhfdCogRGF0YTo6ZGF0YSgpIGNvbnN0CiAgICAgaWYgKCFtX2RhdGEgJiYgbV9kaXNwYXRj
aERhdGEpIHsKICAgICAgICAgY29uc3Qgdm9pZCogZGF0YTsKICAgICAgICAgc2l6ZV90IHNpemU7
Ci0gICAgICAgIG1fZGlzcGF0Y2hEYXRhID0gYWRvcHREaXNwYXRjaChkaXNwYXRjaF9kYXRhX2Ny
ZWF0ZV9tYXAobV9kaXNwYXRjaERhdGEuZ2V0KCksICZkYXRhLCAmc2l6ZSkpOworICAgICAgICBt
X2Rpc3BhdGNoRGF0YSA9IGFkb3B0T1NPYmplY3QoZGlzcGF0Y2hfZGF0YV9jcmVhdGVfbWFwKG1f
ZGlzcGF0Y2hEYXRhLmdldCgpLCAmZGF0YSwgJnNpemUpKTsKICAgICAgICAgQVNTRVJUKHNpemUg
PT0gbV9zaXplKTsKICAgICAgICAgbV9kYXRhID0gc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+
KGRhdGEpOwogICAgIH0KQEAgLTgwLDcgKzgwLDcgQEAgYm9vbCBEYXRhOjphcHBseShjb25zdCBG
dW5jdGlvbjxib29sIChjb25zdCB1aW50OF90Kiwgc2l6ZV90KT4mIGFwcGxpZXIpIGNvbnN0CiAK
IERhdGEgRGF0YTo6c3VicmFuZ2Uoc2l6ZV90IG9mZnNldCwgc2l6ZV90IHNpemUpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIHsgYWRvcHREaXNwYXRjaChkaXNwYXRjaF9kYXRhX2NyZWF0ZV9zdWJyYW5n
ZShkaXNwYXRjaERhdGEoKSwgb2Zmc2V0LCBzaXplKSkgfTsKKyAgICByZXR1cm4geyBhZG9wdE9T
T2JqZWN0KGRpc3BhdGNoX2RhdGFfY3JlYXRlX3N1YnJhbmdlKGRpc3BhdGNoRGF0YSgpLCBvZmZz
ZXQsIHNpemUpKSB9OwogfQogCiBEYXRhIGNvbmNhdGVuYXRlKGNvbnN0IERhdGEmIGEsIGNvbnN0
IERhdGEmIGIpCkBAIC04OSwxNyArODksMTggQEAgRGF0YSBjb25jYXRlbmF0ZShjb25zdCBEYXRh
JiBhLCBjb25zdCBEYXRhJiBiKQogICAgICAgICByZXR1cm4gYjsKICAgICBpZiAoYi5pc051bGwo
KSkKICAgICAgICAgcmV0dXJuIGE7Ci0gICAgcmV0dXJuIHsgYWRvcHREaXNwYXRjaChkaXNwYXRj
aF9kYXRhX2NyZWF0ZV9jb25jYXQoYS5kaXNwYXRjaERhdGEoKSwgYi5kaXNwYXRjaERhdGEoKSkp
IH07CisgICAgcmV0dXJuIHsgYWRvcHRPU09iamVjdChkaXNwYXRjaF9kYXRhX2NyZWF0ZV9jb25j
YXQoYS5kaXNwYXRjaERhdGEoKSwgYi5kaXNwYXRjaERhdGEoKSkpIH07CiB9CiAKIERhdGEgRGF0
YTo6YWRvcHRNYXAodm9pZCogbWFwLCBzaXplX3Qgc2l6ZSwgaW50IGZkKQogewotICAgIEFTU0VS
VChtYXAgJiYgbWFwICE9IE1BUF9GQUlMRUQpOworICAgIEFTU0VSVChtYXApOworICAgIEFTU0VS
VChtYXAgIT0gTUFQX0ZBSUxFRCk7CiAgICAgY2xvc2UoZmQpOwotICAgIGF1dG8gYm9keU1hcCA9
IGFkb3B0RGlzcGF0Y2goZGlzcGF0Y2hfZGF0YV9jcmVhdGUobWFwLCBzaXplLCBkaXNwYXRjaF9n
ZXRfZ2xvYmFsX3F1ZXVlKERJU1BBVENIX1FVRVVFX1BSSU9SSVRZX0RFRkFVTFQsIDApLCBbbWFw
LCBzaXplXSB7CisgICAgYXV0byBib2R5TWFwID0gYWRvcHRPU09iamVjdChkaXNwYXRjaF9kYXRh
X2NyZWF0ZShtYXAsIHNpemUsIGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVF
VUVfUFJJT1JJVFlfREVGQVVMVCwgMCksIFttYXAsIHNpemVdIHsKICAgICAgICAgbXVubWFwKG1h
cCwgc2l6ZSk7CiAgICAgfSkpOwotICAgIHJldHVybiB7IGJvZHlNYXAsIERhdGE6OkJhY2tpbmc6
Ok1hcCB9OworICAgIHJldHVybiB7IFdURk1vdmUoYm9keU1hcCksIERhdGE6OkJhY2tpbmc6Ok1h
cCB9OwogfQogCiBSZWZQdHI8U2hhcmVkTWVtb3J5PiBEYXRhOjp0cnlDcmVhdGVTaGFyZWRNZW1v
cnkoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNo
ZS9OZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvTmV0d29ya0NhY2hlSU9DaGFubmVsLmgKaW5kZXggYjEzN2ZlOTgyZmM5MWM1OWE3NDgw
ZTRkZGZlNmI0MTY5ZDc3NWJiYi4uYjQ3ZDEzZDVmN2Q2YzgwOGUwYTMwNGJhZDYwYTI1YWE1ZDY1
N2NiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGVJT0NoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oCkBAIC02OSw3ICs2OSw3IEBAIHByaXZhdGU6CiAg
ICAgaW50IG1fZmlsZURlc2NyaXB0b3IgeyAwIH07CiAgICAgc3RkOjphdG9taWM8Ym9vbD4gbV93
YXNEZWxldGVkIHsgZmFsc2UgfTsgLy8gVHJ5IHRvIG5hcnJvdyBkb3duIGEgY3Jhc2gsIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjU2NTkKICNpZiBQTEFURk9STShD
T0NPQSkKLSAgICBEaXNwYXRjaFB0cjxkaXNwYXRjaF9pb190PiBtX2Rpc3BhdGNoSU87CisgICAg
T1NPYmplY3RQdHI8ZGlzcGF0Y2hfaW9fdD4gbV9kaXNwYXRjaElPOwogI2VuZGlmCiAjaWYgVVNF
KFNPVVApCiAgICAgR1JlZlB0cjxHSW5wdXRTdHJlYW0+IG1faW5wdXRTdHJlYW07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hh
bm5lbENvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3Jr
Q2FjaGVJT0NoYW5uZWxDb2NvYS5tbQppbmRleCBiMDYyNjY3ZWEyOTAzMTg3YjI2MGVlMjU2ZjYy
OTQwNjM3ODZhZWQwLi5iNjQxYTA2NDJkZDI0NDIyZGY1YTk0ZGIxN2EzMzU3OWU0NjE3ZWU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNo
ZUlPQ2hhbm5lbENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlSU9DaGFubmVsQ29jb2EubW0KQEAgLTY3LDcgKzY3LDcgQEAgSU9DaGFu
bmVsOjpJT0NoYW5uZWwoY29uc3QgU3RyaW5nJiBmaWxlUGF0aCwgVHlwZSB0eXBlKQogICAgIGlu
dCBmZCA9IDo6b3BlbihwYXRoLmRhdGEoKSwgb2ZsYWcsIG1vZGUpOwogICAgIG1fZmlsZURlc2Ny
aXB0b3IgPSBmZDsKIAotICAgIG1fZGlzcGF0Y2hJTyA9IGFkb3B0RGlzcGF0Y2goZGlzcGF0Y2hf
aW9fY3JlYXRlKERJU1BBVENIX0lPX1JBTkRPTSwgZmQsIGRpc3BhdGNoX2dldF9nbG9iYWxfcXVl
dWUodXNlTG93SU9Qcmlvcml0eSA/IERJU1BBVENIX1FVRVVFX1BSSU9SSVRZX0JBQ0tHUk9VTkQg
OiBESVNQQVRDSF9RVUVVRV9QUklPUklUWV9ERUZBVUxULCAwKSwgW2ZkXShpbnQpIHsKKyAgICBt
X2Rpc3BhdGNoSU8gPSBhZG9wdE9TT2JqZWN0KGRpc3BhdGNoX2lvX2NyZWF0ZShESVNQQVRDSF9J
T19SQU5ET00sIGZkLCBkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKHVzZUxvd0lPUHJpb3JpdHkg
PyBESVNQQVRDSF9RVUVVRV9QUklPUklUWV9CQUNLR1JPVU5EIDogRElTUEFUQ0hfUVVFVUVfUFJJ
T1JJVFlfREVGQVVMVCwgMCksIFtmZF0oaW50KSB7CiAgICAgICAgIGNsb3NlKGZkKTsKICAgICB9
KSk7CiAgICAgQVNTRVJUKG1fZGlzcGF0Y2hJTy5nZXQoKSk7CkBAIC05NSw4ICs5NSw3IEBAIHZv
aWQgSU9DaGFubmVsOjpyZWFkKHNpemVfdCBvZmZzZXQsIHNpemVfdCBzaXplLCBXb3JrUXVldWUq
IHF1ZXVlLCBGdW5jdGlvbjx2b2lkCiAgICAgICAgIEFTU0VSVF9VTlVTRUQoZG9uZSwgZG9uZSB8
fCAhZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKTsKICAgICAgICAgaWYgKGRpZENhbGxDb21wbGV0
aW9uSGFuZGxlcikKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgRGlzcGF0Y2hQdHI8ZGlz
cGF0Y2hfZGF0YV90PiBmaWxlRGF0YVB0cihmaWxlRGF0YSk7Ci0gICAgICAgIERhdGEgZGF0YShm
aWxlRGF0YVB0cik7CisgICAgICAgIERhdGEgZGF0YSB7IE9TT2JqZWN0UHRyPGRpc3BhdGNoX2Rh
dGFfdD4geyBmaWxlRGF0YSB9IH07CiAgICAgICAgIGF1dG8gY2FsbGJhY2sgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKTsKICAgICAgICAgY2FsbGJhY2soZGF0YSwgZXJyb3IpOwogICAgICAg
ICBkaWRDYWxsQ29tcGxldGlvbkhhbmRsZXIgPSB0cnVlOwo=
</data>
<flag name="review"
          id="360151"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>