<?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>211561</bug_id>
          
          <creation_ts>2020-05-07 05:58:28 -0700</creation_ts>
          <short_desc>[GTK4] Add support for clipboard operations</short_desc>
          <delta_ts>2020-05-12 08:22:18 -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>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>211511</dependson>
          <blocked>210100</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aperez</cc>
    
    <cc>bugs-noreply</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1650045</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-05-07 05:58:28 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650046</commentid>
    <comment_count>1</comment_count>
      <attachid>398725</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-05-07 06:00:30 -0700</bug_when>
    <thetext>Created attachment 398725
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650052</commentid>
    <comment_count>2</comment_count>
      <attachid>398727</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-05-07 06:14:38 -0700</bug_when>
    <thetext>Created attachment 398727
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651734</commentid>
    <comment_count>3</comment_count>
      <attachid>398727</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-05-12 08:18:23 -0700</bug_when>
    <thetext>Comment on attachment 398727
Patch

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

&gt; Source/WebKit/UIProcess/gtk/ClipboardGtk4.cpp:146
&gt; +                gssize writtenBytes = g_output_stream_splice_finish(G_OUTPUT_STREAM(stream), result, nullptr);

Nice use of file splicing ^_^</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651738</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-05-12 08:22:18 -0700</bug_when>
    <thetext>Committed r261555: &lt;https://trac.webkit.org/changeset/261555&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398725</attachid>
            <date>2020-05-07 06:00:30 -0700</date>
            <delta_ts>2020-05-07 06:14:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wkgtk4-clipboard.diff</filename>
            <type>text/plain</type>
            <size>9382</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggNGJkMDE0ODNlMDFiLi4xMjVlNzAxMDc1ZjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjQgQEAKKzIwMjAtMDUtMDcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtHVEs0XSBBZGQgc3VwcG9ydCBmb3IgY2xpcGJvYXJkIG9wZXJh
dGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
MTU2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VUlQcm9jZXNzL2d0ay9DbGlwYm9hcmQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL0NsaXBi
b2FyZEd0azQuY3BwOgorICAgICAgICAoV2ViS2l0OjpDbGlwYm9hcmQ6OkNsaXBib2FyZCk6Cisg
ICAgICAgIChXZWJLaXQ6OkNsaXBib2FyZDo6dHlwZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OkNsaXBib2FyZDo6Zm9ybWF0cyk6CisgICAgICAgIChXZWJLaXQ6OlJlYWRUZXh0QXN5bmNEYXRh
OjpSZWFkVGV4dEFzeW5jRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OkNsaXBib2FyZDo6cmVhZFRl
eHQpOgorICAgICAgICAoV2ViS2l0OjpSZWFkRmlsZVBhdGhzQXN5bmNEYXRhOjpSZWFkRmlsZVBh
dGhzQXN5bmNEYXRhKToKKyAgICAgICAgKFdlYktpdDo6Q2xpcGJvYXJkOjpyZWFkRmlsZVBhdGhz
KToKKyAgICAgICAgKFdlYktpdDo6UmVhZEJ1ZmZlckFzeW5jRGF0YTo6UmVhZEJ1ZmZlckFzeW5j
RGF0YSk6CisgICAgICAgIChXZWJLaXQ6OkNsaXBib2FyZDo6cmVhZEJ1ZmZlcik6CisgICAgICAg
IChXZWJLaXQ6OkNsaXBib2FyZDo6d3JpdGUpOgorICAgICAgICAoV2ViS2l0OjpDbGlwYm9hcmQ6
OmNsZWFyKToKKwogMjAyMC0wNS0wNiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gUmV3b3JrIGNsaXBib2FyZCBoYW5kbGluZyBpbiBw
cmVwYXJhdGlvbiBmb3IgR1RLNApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Z3RrL0NsaXBib2FyZC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0NsaXBib2FyZC5o
CmluZGV4IGRkM2VjNzUxMjQ5MC4uNDUxZDFkYmVjYmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9ndGsvQ2xpcGJvYXJkLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvZ3RrL0NsaXBib2FyZC5oCkBAIC0yNyw3ICsyNyw5IEBACiAKICNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgogCi0jaWYgIVVTRShHVEs0KQorI2lmIFVTRShHVEs0KQordHlwZWRlZiBzdHJ1Y3Qg
X0dka0NsaXBib2FyZCBHZGtDbGlwYm9hcmQ7CisjZWxzZQogdHlwZWRlZiBzdHJ1Y3QgX0d0a0Ns
aXBib2FyZCBHdGtDbGlwYm9hcmQ7CiAjZW5kaWYKIApAQCAtNTcsNyArNTksOSBAQCBwdWJsaWM6
CiAgICAgdm9pZCBjbGVhcigpOwogCiBwcml2YXRlOgotI2lmICFVU0UoR1RLNCkKKyNpZiBVU0Uo
R1RLNCkKKyAgICBHZGtDbGlwYm9hcmQqIG1fY2xpcGJvYXJkIHsgbnVsbHB0ciB9OworI2Vsc2UK
ICAgICBHdGtDbGlwYm9hcmQqIG1fY2xpcGJvYXJkIHsgbnVsbHB0ciB9OwogICAgIFdlYkZyYW1l
UHJveHkqIG1fZnJhbWVXcml0aW5nVG9DbGlwYm9hcmQgeyBudWxscHRyIH07CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9DbGlwYm9hcmRHdGs0LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9DbGlwYm9hcmRHdGs0LmNwcAppbmRleCAyMGYx
YmQ5YmEzNTIuLjZjOGI3MjM2Y2JjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvZ3RrL0NsaXBib2FyZEd0azQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0
ay9DbGlwYm9hcmRHdGs0LmNwcApAQCAtMjgsNDYgKzI4LDE2NyBAQAogCiAjaWYgVVNFKEdUSzQp
CiAKKyNpbmNsdWRlICJXZWJQYXN0ZWJvYXJkUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Nl
bGVjdGlvbkRhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgorI2luY2x1
ZGUgPGd0ay9ndGsuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCi1DbGlwYm9hcmQ6OkNsaXBib2FyZChUeXBlKQorQ2xpcGJvYXJkOjpDbGlw
Ym9hcmQoVHlwZSB0eXBlKQorICAgIDogbV9jbGlwYm9hcmQodHlwZSA9PSBUeXBlOjpDbGlwYm9h
cmQgPyBnZGtfZGlzcGxheV9nZXRfY2xpcGJvYXJkKGdka19kaXNwbGF5X2dldF9kZWZhdWx0KCkp
IDogZ2RrX2Rpc3BsYXlfZ2V0X3ByaW1hcnlfY2xpcGJvYXJkKGdka19kaXNwbGF5X2dldF9kZWZh
dWx0KCkpKQogeworICAgIGlmICh0eXBlID09IFR5cGU6OlByaW1hcnkpIHsKKyAgICAgICAgZ19z
aWduYWxfY29ubmVjdChtX2NsaXBib2FyZCwgIm5vdGlmeTo6bG9jYWwiLCBHX0NBTExCQUNLKCtb
XShHZGtDbGlwYm9hcmQqIGNsaXBib2FyZCwgR1BhcmFtU3BlYyosIGdwb2ludGVyKSB7CisgICAg
ICAgICAgICBpZiAoIWdka19jbGlwYm9hcmRfaXNfbG9jYWwoY2xpcGJvYXJkKSkKKyAgICAgICAg
ICAgICAgICBXZWJQYXN0ZWJvYXJkUHJveHk6OnNpbmdsZXRvbigpLnNldFByaW1hcnlTZWxlY3Rp
b25Pd25lcihudWxscHRyKTsKKyAgICAgICAgfSksIG51bGxwdHIpOworICAgIH0KIH0KIAogQ2xp
cGJvYXJkOjpUeXBlIENsaXBib2FyZDo6dHlwZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFR5cGU6
OkNsaXBib2FyZDsKKyAgICByZXR1cm4gY2xpcGJvYXJkID09IGdka19kaXNwbGF5X2dldF9wcmlt
YXJ5X2NsaXBib2FyZChnZGtfZGlzcGxheV9nZXRfZGVmYXVsdCgpKSA/IFR5cGU6OlByaW1hcnkg
OiBUeXBlOjpDbGlwYm9hcmQ7CiB9CiAKIHZvaWQgQ2xpcGJvYXJkOjpmb3JtYXRzKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
Ci0gICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKKyAgICBnc2l6ZSBtaW1lVHlwZXNDb3VudDsK
KyAgICBjb25zdCBjaGFyKiBjb25zdCogbWltZVR5cGVzID0gZ2RrX2NvbnRlbnRfZm9ybWF0c19n
ZXRfbWltZV90eXBlcyhnZGtfY2xpcGJvYXJkX2dldF9mb3JtYXRzKG1fY2xpcGJvYXJkKSwgJm1p
bWVUeXBlc0NvdW50KTsKKworICAgIFZlY3RvcjxTdHJpbmc+IHJlc3VsdDsKKyAgICByZXN1bHQu
cmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShtaW1lVHlwZXNDb3VudCk7CisgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBtaW1lVHlwZXNDb3VudDsgKytpKQorICAgICAgICByZXN1bHQudW5jaGVja2Vk
QXBwZW5kKFN0cmluZzo6ZnJvbVVURjgobWltZVR5cGVzW2ldKSk7CisgICAgY29tcGxldGlvbkhh
bmRsZXIoV1RGTW92ZShyZXN1bHQpKTsKIH0KIAorc3RydWN0IFJlYWRUZXh0QXN5bmNEYXRhIHsK
KyAgICBXVEZfTUFLRV9TVFJVQ1RfRkFTVF9BTExPQ0FURUQ7CisKKyAgICBleHBsaWNpdCBSZWFk
VGV4dEFzeW5jRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyYmKT4mJiBoYW5kbGVy
KQorICAgICAgICA6IGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoaGFuZGxlcikpCisgICAgewor
ICAgIH0KKworICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nJiYpPiBjb21wbGV0aW9u
SGFuZGxlcjsKK307CisKIHZvaWQgQ2xpcGJvYXJkOjpyZWFkVGV4dChDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFN0cmluZyYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBjb21wbGV0aW9u
SGFuZGxlcih7IH0pOworICAgIGdka19jbGlwYm9hcmRfcmVhZF90ZXh0X2FzeW5jKG1fY2xpcGJv
YXJkLCBudWxscHRyLCBbXShHT2JqZWN0KiBjbGlwYm9hcmQsIEdBc3luY1Jlc3VsdCogcmVzdWx0
LCBncG9pbnRlciB1c2VyRGF0YSkgeworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVhZFRleHRB
c3luY0RhdGE+IGRhdGEoc3RhdGljX2Nhc3Q8UmVhZFRleHRBc3luY0RhdGEqPih1c2VyRGF0YSkp
OworICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IHRleHQoZ2RrX2NsaXBib2FyZF9yZWFkX3RleHRf
ZmluaXNoKEdES19DTElQQk9BUkQoY2xpcGJvYXJkKSwgcmVzdWx0LCBudWxscHRyKSk7CisgICAg
ICAgIGRhdGEtPmNvbXBsZXRpb25IYW5kbGVyKFN0cmluZzo6ZnJvbVVURjgodGV4dC5nZXQoKSkp
OworICAgIH0sIG5ldyBSZWFkVGV4dEFzeW5jRGF0YShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSkpOwogfQogCitzdHJ1Y3QgUmVhZEZpbGVQYXRoc0FzeW5jRGF0YSB7CisgICAgV1RGX01BS0Vf
U1RSVUNUX0ZBU1RfQUxMT0NBVEVEOworCisgICAgZXhwbGljaXQgUmVhZEZpbGVQYXRoc0FzeW5j
RGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxTdHJpbmc+JiYpPiYmIGhhbmRsZXIp
CisgICAgICAgIDogY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShoYW5kbGVyKSkKKyAgICB7Cisg
ICAgfQorCisgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiYmKT4gY29t
cGxldGlvbkhhbmRsZXI7Cit9OworCiB2b2lkIENsaXBib2FyZDo6cmVhZEZpbGVQYXRocyhDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxTdHJpbmc+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogewotICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CisgICAgZ2RrX2NsaXBib2FyZF9yZWFk
X3ZhbHVlX2FzeW5jKG1fY2xpcGJvYXJkLCBHREtfVFlQRV9GSUxFX0xJU1QsIEdfUFJJT1JJVFlf
REVGQVVMVCwgbnVsbHB0ciwgW10oR09iamVjdCogY2xpcGJvYXJkLCBHQXN5bmNSZXN1bHQqIHJl
c3VsdCwgZ3BvaW50ZXIgdXNlckRhdGEpIHsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFJlYWRG
aWxlUGF0aHNBc3luY0RhdGE+IGRhdGEoc3RhdGljX2Nhc3Q8UmVhZEZpbGVQYXRoc0FzeW5jRGF0
YSo+KHVzZXJEYXRhKSk7CisgICAgICAgIFZlY3RvcjxTdHJpbmc+IGZpbGVQYXRoczsKKyAgICAg
ICAgaWYgKGNvbnN0IEdWYWx1ZSogdmFsdWUgPSBnZGtfY2xpcGJvYXJkX3JlYWRfdmFsdWVfZmlu
aXNoKEdES19DTElQQk9BUkQoY2xpcGJvYXJkKSwgcmVzdWx0LCBudWxscHRyKSkgeworICAgICAg
ICAgICAgYXV0byogbGlzdCA9IHN0YXRpY19jYXN0PEdTTGlzdCo+KGdfdmFsdWVfZ2V0X2JveGVk
KHZhbHVlKSk7CisgICAgICAgICAgICBmb3IgKGF1dG8qIGwgPSBsaXN0OyBsICYmIGwtPmRhdGE7
IGwgPSBnX3NsaXN0X25leHQobCkpIHsKKyAgICAgICAgICAgICAgICBhdXRvKiBmaWxlID0gR19G
SUxFKGwtPmRhdGEpOworICAgICAgICAgICAgICAgIGlmICghZ19maWxlX2lzX25hdGl2ZShmaWxl
KSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgICAgICBHVW5p
cXVlUHRyPGdjaGFyPiBmaWxlbmFtZShnX2ZpbGVfZ2V0X3BhdGgoZmlsZSkpOworICAgICAgICAg
ICAgICAgIGlmIChmaWxlbmFtZSkKKyAgICAgICAgICAgICAgICAgICAgZmlsZVBhdGhzLmFwcGVu
ZChTdHJpbmc6OmZyb21VVEY4KGZpbGVuYW1lLmdldCgpKSk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICAgICAgZGF0YS0+Y29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShmaWxlUGF0aHMp
KTsKKyAgICB9LCBuZXcgUmVhZEZpbGVQYXRoc0FzeW5jRGF0YShXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSkpOwogfQogCitzdHJ1Y3QgUmVhZEJ1ZmZlckFzeW5jRGF0YSB7CisgICAgV1RGX01B
S0VfU1RSVUNUX0ZBU1RfQUxMT0NBVEVEOworCisgICAgZXhwbGljaXQgUmVhZEJ1ZmZlckFzeW5j
RGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYp
PiYmIGhhbmRsZXIpCisgICAgICAgIDogY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShoYW5kbGVy
KSkKKyAgICB7CisgICAgfQorCisgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWY8V2ViQ29y
ZTo6U2hhcmVkQnVmZmVyPiYmKT4gY29tcGxldGlvbkhhbmRsZXI7Cit9OworCiB2b2lkIENsaXBi
b2FyZDo6cmVhZEJ1ZmZlcihjb25zdCBjaGFyKiBmb3JtYXQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoUmVmPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
Ci0gICAgY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpjcmVhdGUoKSk7
CisgICAgY29uc3QgY2hhciogbWltZVR5cGVzW10gPSB7IGZvcm1hdCwgbnVsbHB0ciB9OworICAg
IGdka19jbGlwYm9hcmRfcmVhZF9hc3luYyhtX2NsaXBib2FyZCwgbWltZVR5cGVzLCBHX1BSSU9S
SVRZX0RFRkFVTFQsIG51bGxwdHIsIFtdKEdPYmplY3QqIGNsaXBib2FyZCwgR0FzeW5jUmVzdWx0
KiByZXN1bHQsIGdwb2ludGVyIHVzZXJEYXRhKSB7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxS
ZWFkQnVmZmVyQXN5bmNEYXRhPiBkYXRhKHN0YXRpY19jYXN0PFJlYWRCdWZmZXJBc3luY0RhdGEq
Pih1c2VyRGF0YSkpOworICAgICAgICBHUmVmUHRyPEdJbnB1dFN0cmVhbT4gaW5wdXRTdHJlYW0g
PSBhZG9wdEdSZWYoZ2RrX2NsaXBib2FyZF9yZWFkX2ZpbmlzaChHREtfQ0xJUEJPQVJEKGNsaXBi
b2FyZCksIHJlc3VsdCwgbnVsbHB0ciwgbnVsbHB0cikpOworICAgICAgICBpZiAoIWlucHV0U3Ry
ZWFtKSB7CisgICAgICAgICAgICBkYXRhLT5jb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpTaGFy
ZWRCdWZmZXI6OmNyZWF0ZSgpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisg
ICAgICAgIEdSZWZQdHI8R091dHB1dFN0cmVhbT4gb3V0cHV0U3RyZWFtID0gYWRvcHRHUmVmKGdf
bWVtb3J5X291dHB1dF9zdHJlYW1fbmV3X3Jlc2l6YWJsZSgpKTsKKyAgICAgICAgZ19vdXRwdXRf
c3RyZWFtX3NwbGljZV9hc3luYyhvdXRwdXRTdHJlYW0uZ2V0KCksIGlucHV0U3RyZWFtLmdldCgp
LAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8R091dHB1dFN0cmVhbVNwbGljZUZsYWdzPihHX09V
VFBVVF9TVFJFQU1fU1BMSUNFX0NMT1NFX1NPVVJDRSB8IEdfT1VUUFVUX1NUUkVBTV9TUExJQ0Vf
Q0xPU0VfVEFSR0VUKSwKKyAgICAgICAgICAgIEdfUFJJT1JJVFlfREVGQVVMVCwgbnVsbHB0ciwg
W10oR09iamVjdCogc3RyZWFtLCBHQXN5bmNSZXN1bHQqIHJlc3VsdCwgZ3BvaW50ZXIgdXNlckRh
dGEpIHsKKyAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVhZEJ1ZmZlckFzeW5jRGF0
YT4gZGF0YShzdGF0aWNfY2FzdDxSZWFkQnVmZmVyQXN5bmNEYXRhKj4odXNlckRhdGEpKTsKKyAg
ICAgICAgICAgICAgICBnc3NpemUgd3JpdHRlbkJ5dGVzID0gZ19vdXRwdXRfc3RyZWFtX3NwbGlj
ZV9maW5pc2goR19PVVRQVVRfU1RSRUFNKHN0cmVhbSksIHJlc3VsdCwgbnVsbHB0cik7CisgICAg
ICAgICAgICAgICAgaWYgKHdyaXR0ZW5CeXRlcyA8PSAwKSB7CisgICAgICAgICAgICAgICAgICAg
IGRhdGEtPmNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCkp
OworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAgICAgR1JlZlB0cjxHQnl0ZXM+IGJ5dGVzID0gYWRvcHRHUmVmKGdfbWVtb3J5X291
dHB1dF9zdHJlYW1fc3RlYWxfYXNfYnl0ZXMoR19NRU1PUllfT1VUUFVUX1NUUkVBTShzdHJlYW0p
KSk7CisgICAgICAgICAgICAgICAgZGF0YS0+Y29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6U2hh
cmVkQnVmZmVyOjpjcmVhdGUoYnl0ZXMuZ2V0KCkpKTsKKyAgICAgICAgICAgIH0sIGRhdGEucmVs
ZWFzZSgpKTsKKyAgICB9LCBuZXcgUmVhZEJ1ZmZlckFzeW5jRGF0YShXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSkpOwogfQogCi12b2lkIENsaXBib2FyZDo6d3JpdGUoY29uc3QgV2ViQ29yZTo6
U2VsZWN0aW9uRGF0YSYpCit2b2lkIENsaXBib2FyZDo6d3JpdGUoUmVmPFdlYkNvcmU6OlNlbGVj
dGlvbkRhdGE+JiYgc2VsZWN0aW9uRGF0YSkKIHsKKyAgICBWZWN0b3I8R2RrQ29udGVudFByb3Zp
ZGVyKj4gcHJvdmlkZXJzOworICAgIGlmIChzZWxlY3Rpb25EYXRhLT5oYXNNYXJrdXAoKSkgewor
ICAgICAgICBDU3RyaW5nIG1hcmt1cCA9IHNlbGVjdGlvbkRhdGEtPm1hcmt1cCgpLnV0ZjgoKTsK
KyAgICAgICAgR1JlZlB0cjxHQnl0ZXM+IGJ5dGVzID0gYWRvcHRHUmVmKGdfYnl0ZXNfbmV3KG1h
cmt1cC5kYXRhKCksIG1hcmt1cC5sZW5ndGgoKSkpOworICAgICAgICBwcm92aWRlcnMuYXBwZW5k
KGdka19jb250ZW50X3Byb3ZpZGVyX25ld19mb3JfYnl0ZXMoInRleHQvaHRtbCIsIGJ5dGVzLmdl
dCgpKSk7CisgICAgfQorCisgICAgaWYgKHNlbGVjdGlvbkRhdGEtPmhhc0ltYWdlKCkpIHsKKyAg
ICAgICAgR1JlZlB0cjxHZGtQaXhidWY+IHBpeGJ1ZiA9IGFkb3B0R1JlZihzZWxlY3Rpb25EYXRh
LT5pbWFnZSgpLT5nZXRHZGtQaXhidWYoKSk7CisgICAgICAgIHByb3ZpZGVycy5hcHBlbmQoZ2Rr
X2NvbnRlbnRfcHJvdmlkZXJfbmV3X3R5cGVkKEdES19UWVBFX1BJWEJVRiwgcGl4YnVmLmdldCgp
KSk7CisgICAgfQorCisgICAgaWYgKHNlbGVjdGlvbkRhdGEtPmhhc1RleHQoKSkKKyAgICAgICAg
cHJvdmlkZXJzLmFwcGVuZChnZGtfY29udGVudF9wcm92aWRlcl9uZXdfdHlwZWQoR19UWVBFX1NU
UklORywgc2VsZWN0aW9uRGF0YS0+dGV4dCgpLnV0ZjgoKS5kYXRhKCkpKTsKKworICAgIGlmIChz
ZWxlY3Rpb25EYXRhLT5jYW5TbWFydFJlcGxhY2UoKSkgeworICAgICAgICBHUmVmUHRyPEdCeXRl
cz4gYnl0ZXMgPSBhZG9wdEdSZWYoZ19ieXRlc19uZXcobnVsbHB0ciwgMCkpOworICAgICAgICBw
cm92aWRlcnMuYXBwZW5kKGdka19jb250ZW50X3Byb3ZpZGVyX25ld19mb3JfYnl0ZXMoImFwcGxp
Y2F0aW9uL3ZuZC53ZWJraXRndGsuc21hcnRwYXN0ZSIsIGJ5dGVzLmdldCgpKSk7CisgICAgfQor
CisgICAgaWYgKHByb3ZpZGVycy5pc0VtcHR5KCkpIHsKKyAgICAgICAgY2xlYXIoKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIEdSZWZQdHI8R2RrQ29udGVudFByb3ZpZGVyPiBwcm92
aWRlciA9IGFkb3B0R1JlZihnZGtfY29udGVudF9wcm92aWRlcl9uZXdfdW5pb24ocHJvdmlkZXJz
LmRhdGEoKSwgcHJvdmlkZXJzLnNpemUoKSkpOworICAgIGdka19jbGlwYm9hcmRfc2V0X2NvbnRl
bnQobV9jbGlwYm9hcmQsIHByb3ZpZGVyLmdldCgpKTsKIH0KIAogdm9pZCBDbGlwYm9hcmQ6OmNs
ZWFyKCkKIHsKKyAgICBnZGtfY2xpcGJvYXJkX3NldF9jb250ZW50KG1fY2xpcGJvYXJkLCBudWxs
cHRyKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398727</attachid>
            <date>2020-05-07 06:14:38 -0700</date>
            <delta_ts>2020-05-12 08:18:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wkgtk4-clipboard.diff</filename>
            <type>text/plain</type>
            <size>9384</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggNGJkMDE0ODNlMDFiLi4xMjVlNzAxMDc1ZjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjQgQEAKKzIwMjAtMDUtMDcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtHVEs0XSBBZGQgc3VwcG9ydCBmb3IgY2xpcGJvYXJkIG9wZXJh
dGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
MTU2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VUlQcm9jZXNzL2d0ay9DbGlwYm9hcmQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL0NsaXBi
b2FyZEd0azQuY3BwOgorICAgICAgICAoV2ViS2l0OjpDbGlwYm9hcmQ6OkNsaXBib2FyZCk6Cisg
ICAgICAgIChXZWJLaXQ6OkNsaXBib2FyZDo6dHlwZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OkNsaXBib2FyZDo6Zm9ybWF0cyk6CisgICAgICAgIChXZWJLaXQ6OlJlYWRUZXh0QXN5bmNEYXRh
OjpSZWFkVGV4dEFzeW5jRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OkNsaXBib2FyZDo6cmVhZFRl
eHQpOgorICAgICAgICAoV2ViS2l0OjpSZWFkRmlsZVBhdGhzQXN5bmNEYXRhOjpSZWFkRmlsZVBh
dGhzQXN5bmNEYXRhKToKKyAgICAgICAgKFdlYktpdDo6Q2xpcGJvYXJkOjpyZWFkRmlsZVBhdGhz
KToKKyAgICAgICAgKFdlYktpdDo6UmVhZEJ1ZmZlckFzeW5jRGF0YTo6UmVhZEJ1ZmZlckFzeW5j
RGF0YSk6CisgICAgICAgIChXZWJLaXQ6OkNsaXBib2FyZDo6cmVhZEJ1ZmZlcik6CisgICAgICAg
IChXZWJLaXQ6OkNsaXBib2FyZDo6d3JpdGUpOgorICAgICAgICAoV2ViS2l0OjpDbGlwYm9hcmQ6
OmNsZWFyKToKKwogMjAyMC0wNS0wNiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gUmV3b3JrIGNsaXBib2FyZCBoYW5kbGluZyBpbiBw
cmVwYXJhdGlvbiBmb3IgR1RLNApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Z3RrL0NsaXBib2FyZC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0NsaXBib2FyZC5o
CmluZGV4IGRkM2VjNzUxMjQ5MC4uNDUxZDFkYmVjYmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9ndGsvQ2xpcGJvYXJkLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvZ3RrL0NsaXBib2FyZC5oCkBAIC0yNyw3ICsyNyw5IEBACiAKICNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgogCi0jaWYgIVVTRShHVEs0KQorI2lmIFVTRShHVEs0KQordHlwZWRlZiBzdHJ1Y3Qg
X0dka0NsaXBib2FyZCBHZGtDbGlwYm9hcmQ7CisjZWxzZQogdHlwZWRlZiBzdHJ1Y3QgX0d0a0Ns
aXBib2FyZCBHdGtDbGlwYm9hcmQ7CiAjZW5kaWYKIApAQCAtNTcsNyArNTksOSBAQCBwdWJsaWM6
CiAgICAgdm9pZCBjbGVhcigpOwogCiBwcml2YXRlOgotI2lmICFVU0UoR1RLNCkKKyNpZiBVU0Uo
R1RLNCkKKyAgICBHZGtDbGlwYm9hcmQqIG1fY2xpcGJvYXJkIHsgbnVsbHB0ciB9OworI2Vsc2UK
ICAgICBHdGtDbGlwYm9hcmQqIG1fY2xpcGJvYXJkIHsgbnVsbHB0ciB9OwogICAgIFdlYkZyYW1l
UHJveHkqIG1fZnJhbWVXcml0aW5nVG9DbGlwYm9hcmQgeyBudWxscHRyIH07CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9DbGlwYm9hcmRHdGs0LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9DbGlwYm9hcmRHdGs0LmNwcAppbmRleCAyMGYx
YmQ5YmEzNTIuLjgyMWNjNmNmZWE0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvZ3RrL0NsaXBib2FyZEd0azQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0
ay9DbGlwYm9hcmRHdGs0LmNwcApAQCAtMjgsNDYgKzI4LDE2NyBAQAogCiAjaWYgVVNFKEdUSzQp
CiAKKyNpbmNsdWRlICJXZWJQYXN0ZWJvYXJkUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Nl
bGVjdGlvbkRhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgorI2luY2x1
ZGUgPGd0ay9ndGsuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCi1DbGlwYm9hcmQ6OkNsaXBib2FyZChUeXBlKQorQ2xpcGJvYXJkOjpDbGlw
Ym9hcmQoVHlwZSB0eXBlKQorICAgIDogbV9jbGlwYm9hcmQodHlwZSA9PSBUeXBlOjpDbGlwYm9h
cmQgPyBnZGtfZGlzcGxheV9nZXRfY2xpcGJvYXJkKGdka19kaXNwbGF5X2dldF9kZWZhdWx0KCkp
IDogZ2RrX2Rpc3BsYXlfZ2V0X3ByaW1hcnlfY2xpcGJvYXJkKGdka19kaXNwbGF5X2dldF9kZWZh
dWx0KCkpKQogeworICAgIGlmICh0eXBlID09IFR5cGU6OlByaW1hcnkpIHsKKyAgICAgICAgZ19z
aWduYWxfY29ubmVjdChtX2NsaXBib2FyZCwgIm5vdGlmeTo6bG9jYWwiLCBHX0NBTExCQUNLKCtb
XShHZGtDbGlwYm9hcmQqIGNsaXBib2FyZCwgR1BhcmFtU3BlYyosIGdwb2ludGVyKSB7CisgICAg
ICAgICAgICBpZiAoIWdka19jbGlwYm9hcmRfaXNfbG9jYWwoY2xpcGJvYXJkKSkKKyAgICAgICAg
ICAgICAgICBXZWJQYXN0ZWJvYXJkUHJveHk6OnNpbmdsZXRvbigpLnNldFByaW1hcnlTZWxlY3Rp
b25Pd25lcihudWxscHRyKTsKKyAgICAgICAgfSksIG51bGxwdHIpOworICAgIH0KIH0KIAogQ2xp
cGJvYXJkOjpUeXBlIENsaXBib2FyZDo6dHlwZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFR5cGU6
OkNsaXBib2FyZDsKKyAgICByZXR1cm4gbV9jbGlwYm9hcmQgPT0gZ2RrX2Rpc3BsYXlfZ2V0X3By
aW1hcnlfY2xpcGJvYXJkKGdka19kaXNwbGF5X2dldF9kZWZhdWx0KCkpID8gVHlwZTo6UHJpbWFy
eSA6IFR5cGU6OkNsaXBib2FyZDsKIH0KIAogdm9pZCBDbGlwYm9hcmQ6OmZvcm1hdHMoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKLSAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOworICAgIGdzaXplIG1pbWVUeXBlc0NvdW50
OworICAgIGNvbnN0IGNoYXIqIGNvbnN0KiBtaW1lVHlwZXMgPSBnZGtfY29udGVudF9mb3JtYXRz
X2dldF9taW1lX3R5cGVzKGdka19jbGlwYm9hcmRfZ2V0X2Zvcm1hdHMobV9jbGlwYm9hcmQpLCAm
bWltZVR5cGVzQ291bnQpOworCisgICAgVmVjdG9yPFN0cmluZz4gcmVzdWx0OworICAgIHJlc3Vs
dC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KG1pbWVUeXBlc0NvdW50KTsKKyAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IG1pbWVUeXBlc0NvdW50OyArK2kpCisgICAgICAgIHJlc3VsdC51bmNoZWNr
ZWRBcHBlbmQoU3RyaW5nOjpmcm9tVVRGOChtaW1lVHlwZXNbaV0pKTsKKyAgICBjb21wbGV0aW9u
SGFuZGxlcihXVEZNb3ZlKHJlc3VsdCkpOwogfQogCitzdHJ1Y3QgUmVhZFRleHRBc3luY0RhdGEg
eworICAgIFdURl9NQUtFX1NUUlVDVF9GQVNUX0FMTE9DQVRFRDsKKworICAgIGV4cGxpY2l0IFJl
YWRUZXh0QXN5bmNEYXRhKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nJiYpPiYmIGhhbmRs
ZXIpCisgICAgICAgIDogY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShoYW5kbGVyKSkKKyAgICB7
CisgICAgfQorCisgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcmJik+IGNvbXBsZXRp
b25IYW5kbGVyOworfTsKKwogdm9pZCBDbGlwYm9hcmQ6OnJlYWRUZXh0KENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoU3RyaW5nJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGNvbXBsZXRp
b25IYW5kbGVyKHsgfSk7CisgICAgZ2RrX2NsaXBib2FyZF9yZWFkX3RleHRfYXN5bmMobV9jbGlw
Ym9hcmQsIG51bGxwdHIsIFtdKEdPYmplY3QqIGNsaXBib2FyZCwgR0FzeW5jUmVzdWx0KiByZXN1
bHQsIGdwb2ludGVyIHVzZXJEYXRhKSB7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxSZWFkVGV4
dEFzeW5jRGF0YT4gZGF0YShzdGF0aWNfY2FzdDxSZWFkVGV4dEFzeW5jRGF0YSo+KHVzZXJEYXRh
KSk7CisgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gdGV4dChnZGtfY2xpcGJvYXJkX3JlYWRfdGV4
dF9maW5pc2goR0RLX0NMSVBCT0FSRChjbGlwYm9hcmQpLCByZXN1bHQsIG51bGxwdHIpKTsKKyAg
ICAgICAgZGF0YS0+Y29tcGxldGlvbkhhbmRsZXIoU3RyaW5nOjpmcm9tVVRGOCh0ZXh0LmdldCgp
KSk7CisgICAgfSwgbmV3IFJlYWRUZXh0QXN5bmNEYXRhKFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKSk7CiB9CiAKK3N0cnVjdCBSZWFkRmlsZVBhdGhzQXN5bmNEYXRhIHsKKyAgICBXVEZfTUFL
RV9TVFJVQ1RfRkFTVF9BTExPQ0FURUQ7CisKKyAgICBleHBsaWNpdCBSZWFkRmlsZVBhdGhzQXN5
bmNEYXRhKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJik+JiYgaGFuZGxl
cikKKyAgICAgICAgOiBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGhhbmRsZXIpKQorICAgIHsK
KyAgICB9CisKKyAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxTdHJpbmc+JiYpPiBj
b21wbGV0aW9uSGFuZGxlcjsKK307CisKIHZvaWQgQ2xpcGJvYXJkOjpyZWFkRmlsZVBhdGhzKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJik+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7Ci0gICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKKyAgICBnZGtfY2xpcGJvYXJkX3Jl
YWRfdmFsdWVfYXN5bmMobV9jbGlwYm9hcmQsIEdES19UWVBFX0ZJTEVfTElTVCwgR19QUklPUklU
WV9ERUZBVUxULCBudWxscHRyLCBbXShHT2JqZWN0KiBjbGlwYm9hcmQsIEdBc3luY1Jlc3VsdCog
cmVzdWx0LCBncG9pbnRlciB1c2VyRGF0YSkgeworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVh
ZEZpbGVQYXRoc0FzeW5jRGF0YT4gZGF0YShzdGF0aWNfY2FzdDxSZWFkRmlsZVBhdGhzQXN5bmNE
YXRhKj4odXNlckRhdGEpKTsKKyAgICAgICAgVmVjdG9yPFN0cmluZz4gZmlsZVBhdGhzOworICAg
ICAgICBpZiAoY29uc3QgR1ZhbHVlKiB2YWx1ZSA9IGdka19jbGlwYm9hcmRfcmVhZF92YWx1ZV9m
aW5pc2goR0RLX0NMSVBCT0FSRChjbGlwYm9hcmQpLCByZXN1bHQsIG51bGxwdHIpKSB7CisgICAg
ICAgICAgICBhdXRvKiBsaXN0ID0gc3RhdGljX2Nhc3Q8R1NMaXN0Kj4oZ192YWx1ZV9nZXRfYm94
ZWQodmFsdWUpKTsKKyAgICAgICAgICAgIGZvciAoYXV0byogbCA9IGxpc3Q7IGwgJiYgbC0+ZGF0
YTsgbCA9IGdfc2xpc3RfbmV4dChsKSkgeworICAgICAgICAgICAgICAgIGF1dG8qIGZpbGUgPSBH
X0ZJTEUobC0+ZGF0YSk7CisgICAgICAgICAgICAgICAgaWYgKCFnX2ZpbGVfaXNfbmF0aXZlKGZp
bGUpKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgICAgIEdV
bmlxdWVQdHI8Z2NoYXI+IGZpbGVuYW1lKGdfZmlsZV9nZXRfcGF0aChmaWxlKSk7CisgICAgICAg
ICAgICAgICAgaWYgKGZpbGVuYW1lKQorICAgICAgICAgICAgICAgICAgICBmaWxlUGF0aHMuYXBw
ZW5kKFN0cmluZzo6ZnJvbVVURjgoZmlsZW5hbWUuZ2V0KCkpKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgICAgICBkYXRhLT5jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGZpbGVQYXRo
cykpOworICAgIH0sIG5ldyBSZWFkRmlsZVBhdGhzQXN5bmNEYXRhKFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKSk7CiB9CiAKK3N0cnVjdCBSZWFkQnVmZmVyQXN5bmNEYXRhIHsKKyAgICBXVEZf
TUFLRV9TVFJVQ1RfRkFTVF9BTExPQ0FURUQ7CisKKyAgICBleHBsaWNpdCBSZWFkQnVmZmVyQXN5
bmNEYXRhKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4m
Jik+JiYgaGFuZGxlcikKKyAgICAgICAgOiBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGhhbmRs
ZXIpKQorICAgIHsKKyAgICB9CisKKyAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZjxXZWJD
b3JlOjpTaGFyZWRCdWZmZXI+JiYpPiBjb21wbGV0aW9uSGFuZGxlcjsKK307CisKIHZvaWQgQ2xp
cGJvYXJkOjpyZWFkQnVmZmVyKGNvbnN0IGNoYXIqIGZvcm1hdCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChSZWY8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKLSAgICBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpTaGFyZWRCdWZmZXI6OmNyZWF0ZSgp
KTsKKyAgICBjb25zdCBjaGFyKiBtaW1lVHlwZXNbXSA9IHsgZm9ybWF0LCBudWxscHRyIH07Cisg
ICAgZ2RrX2NsaXBib2FyZF9yZWFkX2FzeW5jKG1fY2xpcGJvYXJkLCBtaW1lVHlwZXMsIEdfUFJJ
T1JJVFlfREVGQVVMVCwgbnVsbHB0ciwgW10oR09iamVjdCogY2xpcGJvYXJkLCBHQXN5bmNSZXN1
bHQqIHJlc3VsdCwgZ3BvaW50ZXIgdXNlckRhdGEpIHsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRy
PFJlYWRCdWZmZXJBc3luY0RhdGE+IGRhdGEoc3RhdGljX2Nhc3Q8UmVhZEJ1ZmZlckFzeW5jRGF0
YSo+KHVzZXJEYXRhKSk7CisgICAgICAgIEdSZWZQdHI8R0lucHV0U3RyZWFtPiBpbnB1dFN0cmVh
bSA9IGFkb3B0R1JlZihnZGtfY2xpcGJvYXJkX3JlYWRfZmluaXNoKEdES19DTElQQk9BUkQoY2xp
cGJvYXJkKSwgcmVzdWx0LCBudWxscHRyLCBudWxscHRyKSk7CisgICAgICAgIGlmICghaW5wdXRT
dHJlYW0pIHsKKyAgICAgICAgICAgIGRhdGEtPmNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OlNo
YXJlZEJ1ZmZlcjo6Y3JlYXRlKCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisK
KyAgICAgICAgR1JlZlB0cjxHT3V0cHV0U3RyZWFtPiBvdXRwdXRTdHJlYW0gPSBhZG9wdEdSZWYo
Z19tZW1vcnlfb3V0cHV0X3N0cmVhbV9uZXdfcmVzaXphYmxlKCkpOworICAgICAgICBnX291dHB1
dF9zdHJlYW1fc3BsaWNlX2FzeW5jKG91dHB1dFN0cmVhbS5nZXQoKSwgaW5wdXRTdHJlYW0uZ2V0
KCksCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxHT3V0cHV0U3RyZWFtU3BsaWNlRmxhZ3M+KEdf
T1VUUFVUX1NUUkVBTV9TUExJQ0VfQ0xPU0VfU09VUkNFIHwgR19PVVRQVVRfU1RSRUFNX1NQTElD
RV9DTE9TRV9UQVJHRVQpLAorICAgICAgICAgICAgR19QUklPUklUWV9ERUZBVUxULCBudWxscHRy
LCBbXShHT2JqZWN0KiBzdHJlYW0sIEdBc3luY1Jlc3VsdCogcmVzdWx0LCBncG9pbnRlciB1c2Vy
RGF0YSkgeworICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxSZWFkQnVmZmVyQXN5bmNE
YXRhPiBkYXRhKHN0YXRpY19jYXN0PFJlYWRCdWZmZXJBc3luY0RhdGEqPih1c2VyRGF0YSkpOwor
ICAgICAgICAgICAgICAgIGdzc2l6ZSB3cml0dGVuQnl0ZXMgPSBnX291dHB1dF9zdHJlYW1fc3Bs
aWNlX2ZpbmlzaChHX09VVFBVVF9TVFJFQU0oc3RyZWFtKSwgcmVzdWx0LCBudWxscHRyKTsKKyAg
ICAgICAgICAgICAgICBpZiAod3JpdHRlbkJ5dGVzIDw9IDApIHsKKyAgICAgICAgICAgICAgICAg
ICAgZGF0YS0+Y29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpjcmVhdGUo
KSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgICAgICBHUmVmUHRyPEdCeXRlcz4gYnl0ZXMgPSBhZG9wdEdSZWYoZ19tZW1vcnlf
b3V0cHV0X3N0cmVhbV9zdGVhbF9hc19ieXRlcyhHX01FTU9SWV9PVVRQVVRfU1RSRUFNKHN0cmVh
bSkpKTsKKyAgICAgICAgICAgICAgICBkYXRhLT5jb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpT
aGFyZWRCdWZmZXI6OmNyZWF0ZShieXRlcy5nZXQoKSkpOworICAgICAgICAgICAgfSwgZGF0YS5y
ZWxlYXNlKCkpOworICAgIH0sIG5ldyBSZWFkQnVmZmVyQXN5bmNEYXRhKFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKSk7CiB9CiAKLXZvaWQgQ2xpcGJvYXJkOjp3cml0ZShjb25zdCBXZWJDb3Jl
OjpTZWxlY3Rpb25EYXRhJikKK3ZvaWQgQ2xpcGJvYXJkOjp3cml0ZShSZWY8V2ViQ29yZTo6U2Vs
ZWN0aW9uRGF0YT4mJiBzZWxlY3Rpb25EYXRhKQogeworICAgIFZlY3RvcjxHZGtDb250ZW50UHJv
dmlkZXIqPiBwcm92aWRlcnM7CisgICAgaWYgKHNlbGVjdGlvbkRhdGEtPmhhc01hcmt1cCgpKSB7
CisgICAgICAgIENTdHJpbmcgbWFya3VwID0gc2VsZWN0aW9uRGF0YS0+bWFya3VwKCkudXRmOCgp
OworICAgICAgICBHUmVmUHRyPEdCeXRlcz4gYnl0ZXMgPSBhZG9wdEdSZWYoZ19ieXRlc19uZXco
bWFya3VwLmRhdGEoKSwgbWFya3VwLmxlbmd0aCgpKSk7CisgICAgICAgIHByb3ZpZGVycy5hcHBl
bmQoZ2RrX2NvbnRlbnRfcHJvdmlkZXJfbmV3X2Zvcl9ieXRlcygidGV4dC9odG1sIiwgYnl0ZXMu
Z2V0KCkpKTsKKyAgICB9CisKKyAgICBpZiAoc2VsZWN0aW9uRGF0YS0+aGFzSW1hZ2UoKSkgewor
ICAgICAgICBHUmVmUHRyPEdka1BpeGJ1Zj4gcGl4YnVmID0gYWRvcHRHUmVmKHNlbGVjdGlvbkRh
dGEtPmltYWdlKCktPmdldEdka1BpeGJ1ZigpKTsKKyAgICAgICAgcHJvdmlkZXJzLmFwcGVuZChn
ZGtfY29udGVudF9wcm92aWRlcl9uZXdfdHlwZWQoR0RLX1RZUEVfUElYQlVGLCBwaXhidWYuZ2V0
KCkpKTsKKyAgICB9CisKKyAgICBpZiAoc2VsZWN0aW9uRGF0YS0+aGFzVGV4dCgpKQorICAgICAg
ICBwcm92aWRlcnMuYXBwZW5kKGdka19jb250ZW50X3Byb3ZpZGVyX25ld190eXBlZChHX1RZUEVf
U1RSSU5HLCBzZWxlY3Rpb25EYXRhLT50ZXh0KCkudXRmOCgpLmRhdGEoKSkpOworCisgICAgaWYg
KHNlbGVjdGlvbkRhdGEtPmNhblNtYXJ0UmVwbGFjZSgpKSB7CisgICAgICAgIEdSZWZQdHI8R0J5
dGVzPiBieXRlcyA9IGFkb3B0R1JlZihnX2J5dGVzX25ldyhudWxscHRyLCAwKSk7CisgICAgICAg
IHByb3ZpZGVycy5hcHBlbmQoZ2RrX2NvbnRlbnRfcHJvdmlkZXJfbmV3X2Zvcl9ieXRlcygiYXBw
bGljYXRpb24vdm5kLndlYmtpdGd0ay5zbWFydHBhc3RlIiwgYnl0ZXMuZ2V0KCkpKTsKKyAgICB9
CisKKyAgICBpZiAocHJvdmlkZXJzLmlzRW1wdHkoKSkgeworICAgICAgICBjbGVhcigpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgR1JlZlB0cjxHZGtDb250ZW50UHJvdmlkZXI+IHBy
b3ZpZGVyID0gYWRvcHRHUmVmKGdka19jb250ZW50X3Byb3ZpZGVyX25ld191bmlvbihwcm92aWRl
cnMuZGF0YSgpLCBwcm92aWRlcnMuc2l6ZSgpKSk7CisgICAgZ2RrX2NsaXBib2FyZF9zZXRfY29u
dGVudChtX2NsaXBib2FyZCwgcHJvdmlkZXIuZ2V0KCkpOwogfQogCiB2b2lkIENsaXBib2FyZDo6
Y2xlYXIoKQogeworICAgIGdka19jbGlwYm9hcmRfc2V0X2NvbnRlbnQobV9jbGlwYm9hcmQsIG51
bGxwdHIpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>
<flag name="review"
          id="414120"
          type_id="1"
          status="+"
          setter="aperez"
    />
          </attachment>
      

    </bug>

</bugzilla>