<?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>134735</bug_id>
          
          <creation_ts>2014-07-08 11:35:05 -0700</creation_ts>
          <short_desc>[GTK] Implement webkit_web_view_load_bytes() in WebKit2</short_desc>
          <delta_ts>2014-07-29 08:29:53 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gergely Polonkai">gergely</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>berto</cc>
    
    <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mrobinson</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1021138</commentid>
    <comment_count>0</comment_count>
    <who name="Gergely Polonkai">gergely</who>
    <bug_when>2014-07-08 11:35:05 -0700</bug_when>
    <thetext>It would be nice to have the old webkit_web_view_load_string() function in the WebKit2 API, or provide a way to simulate it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021595</commentid>
    <comment_count>1</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-07-10 04:22:06 -0700</bug_when>
    <thetext>load_string() like in webkit1 limits the API to null terminated array of characters, so in this case I would use webkit_web_view_load_bytes() that receives a GBytes. That way we can take a reference and create an API::Data object without duplicating the memory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021597</commentid>
    <comment_count>2</comment_count>
    <who name="Gergely Polonkai">gergely</who>
    <bug_when>2014-07-10 04:40:46 -0700</bug_when>
    <thetext>How about (for 1.x compatibility reasons) implementing both? _load_string() may internally convert the null-terminated strings into GBytes and call _load_bytes() maybe. I don’t know how hard it would be, even navigating the sources is hard for me as a webkit newbie…</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021603</commentid>
    <comment_count>3</comment_count>
      <attachid>234704</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-07-10 05:19:20 -0700</bug_when>
    <thetext>Created attachment 234704
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021604</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-07-10 05:20:38 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021605</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-07-10 05:22:30 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; How about (for 1.x compatibility reasons) implementing both? _load_string() may internally convert the null-terminated strings into GBytes and call _load_bytes() maybe. I don’t know how hard it would be, even navigating the sources is hard for me as a webkit newbie…

I think load_string is a confusing name in any case, so in case of adding a new (convenient) API to load a const char, it would be load_data that receives const char + data length. But I think it&apos;s very easy for users to simply create a GBytes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021607</commentid>
    <comment_count>6</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2014-07-10 05:45:24 -0700</bug_when>
    <thetext>I agree, wonder how that impacts bindings though, does anyone know if it can be made idiomatic for js and python?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021608</commentid>
    <comment_count>7</comment_count>
      <attachid>234704</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2014-07-10 05:50:08 -0700</bug_when>
    <thetext>Comment on attachment 234704
Patch

The API looks good to me, fwiw.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1025431</commentid>
    <comment_count>8</comment_count>
      <attachid>234704</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-07-29 04:03:07 -0700</bug_when>
    <thetext>Comment on attachment 234704
Patch

The API looks fine to me too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1025434</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-07-29 04:36:18 -0700</bug_when>
    <thetext>Committed r171740: &lt;http://trac.webkit.org/changeset/171740&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1025481</commentid>
    <comment_count>10</comment_count>
      <attachid>234704</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-07-29 08:21:07 -0700</bug_when>
    <thetext>Comment on attachment 234704
Patch

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

&gt; Source/WebKit2/ChangeLog:9
&gt; +        random data in the web view using the given MIME-Type, encoding

Hopefully the data isn&apos;t random. Arbitrary?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1025483</commentid>
    <comment_count>11</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-07-29 08:29:53 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 234704 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=234704&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/ChangeLog:9
&gt; &gt; +        random data in the web view using the given MIME-Type, encoding
&gt; 
&gt; Hopefully the data isn&apos;t random. Arbitrary?

Oops, yes, you are right, bad english translation in my head.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234704</attachid>
            <date>2014-07-10 05:19:20 -0700</date>
            <delta_ts>2014-07-29 08:21:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-load-data.diff</filename>
            <type>text/plain</type>
            <size>14948</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA4OGZjNDc3Li42Y2E4Y2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTQtMDctMTAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIEltcGxlbWVudCB3ZWJraXRfd2ViX3ZpZXdfbG9hZF9zdHJpbmcoKSBpbiBX
ZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MzQ3MzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgd2Via2l0X3dlYl92aWV3X2xvYWRfYnl0ZXMoKSB0aGF0IHJlY2VpdmVzIGEgR0J5dGVzIHRv
IGxvYWQKKyAgICAgICAgcmFuZG9tIGRhdGEgaW4gdGhlIHdlYiB2aWV3IHVzaW5nIHRoZSBnaXZl
biBNSU1FLVR5cGUsIGVuY29kaW5nCisgICAgICAgIGFuZCBiYXNlIFVSTC4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwOgorICAgICAgICAocmVsZWFzZUdC
eXRlcyk6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfbG9hZF9ieXRlcyk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2NzLnNnbWw6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dDoKKwogMjAxNC0wNy0wOSAgUHJhdGlr
IFNvbGFua2kgIDxwc29sYW5raUBhcHBsZS5jb20+CiAKICAgICAgICAgQnVmZmVyIENTUyBhbmQg
SlMgcmVzb3VyY2VzIGluIG5ldHdvcmsgcHJvY2VzcyBiZWZvcmUgc2VuZGluZyBvdmVyIHRvIHdl
YiBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRXZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFdlYlZpZXcuY3BwCmluZGV4IDg1YjA3OGEuLmRkNTJhMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCkBAIC0yMTM1LDYgKzIx
MzUsNDUgQEAgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfbG9hZF9wbGFpbl90ZXh0KFdlYktpdFdlYlZp
ZXcqIHdlYlZpZXcsIGNvbnN0IGdjaGFyKiBwbGFpblQKICAgICBnZXRQYWdlKHdlYlZpZXcpLT5s
b2FkUGxhaW5UZXh0U3RyaW5nKFN0cmluZzo6ZnJvbVVURjgocGxhaW5UZXh0KSk7CiB9CiAKK3N0
YXRpYyB2b2lkIHJlbGVhc2VHQnl0ZXModW5zaWduZWQgY2hhciosIGNvbnN0IHZvaWQqIGJ5dGVz
KQoreworICAgIC8vIEJhbGFuY2VkIGJ5IGdfYnl0ZXNfcmVmIGluIHdlYmtpdF93ZWJfdmlld19s
b2FkX2J5dGVzKCkuCisgICAgZ19ieXRlc191bnJlZihzdGF0aWNfY2FzdDxHQnl0ZXMqPihjb25z
dF9jYXN0PHZvaWQqPihieXRlcykpKTsKK30KKworLyoqCisgKiB3ZWJraXRfd2ViX3ZpZXdfbG9h
ZF9ieXRlczoKKyAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldworICogQGJ5dGVzOiBpbnB1
dCBkYXRhIHRvIGxvYWQKKyAqIEBtaW1lX3R5cGU6IChhbGxvdy1ub25lKTogdGhlIE1JTUUgdHlw
ZSBvZiBAYnl0ZXMsIG9yICVOVUxMCisgKiBAZW5jb2Rpbmc6IChhbGxvdy1ub25lKTogdGhlIGNo
YXJhY3RlciBlbmNvZGluZyBvZiBAYnl0ZXMsIG9yICVOVUxMCisgKiBAYmFzZV91cmk6IChhbGxv
dy1ub25lKTogdGhlIGJhc2UgVVJJIGZvciByZWxhdGl2ZSBsb2NhdGlvbnMgb3IgJU5VTEwKKyAq
CisgKiBMb2FkIHRoZSBzcGVjaWZpZWQgQGJ5dGVzIGludG8gQHdlYl92aWV3IHVzaW5nIHRoZSBn
aXZlbiBAbWltZV90eXBlIGFuZCBAZW5jb2RpbmcuCisgKiBXaGVuIEBtaW1lX3R5cGUgaXMgJU5V
TEwsIGl0IGRlZmF1bHRzIHRvICJ0ZXh0L2h0bWwiLgorICogV2hlbiBAZW5jb2RpbmcgaXMgJU5V
TEwsIGl0IGRlZmF1bHRzIHRvICJVVEYtOCIuCisgKiBXaGVuIEBiYXNlX3VyaSBpcyAlTlVMTCwg
aXQgZGVmYXVsdHMgdG8gImFib3V0OmJsYW5rIi4KKyAqIFlvdSBjYW4gbW9uaXRvciB0aGUgbG9h
ZCBvcGVyYXRpb24gYnkgY29ubmVjdGluZyB0byAjV2ViS2l0V2ViVmlldzo6bG9hZC1jaGFuZ2Vk
IHNpZ25hbC4KKyAqCisgKiBTaW5jZTogMi42CisgKi8KK3ZvaWQgd2Via2l0X3dlYl92aWV3X2xv
YWRfYnl0ZXMoV2ViS2l0V2ViVmlldyogd2ViVmlldywgR0J5dGVzKiBieXRlcywgY29uc3QgY2hh
ciogbWltZVR5cGUsIGNvbnN0IGNoYXIqIGVuY29kaW5nLCBjb25zdCBjaGFyKiBiYXNlVVJJKQor
eworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpKTsKKyAg
ICBnX3JldHVybl9pZl9mYWlsKGJ5dGVzKTsKKworICAgIGdzaXplIGJ5dGVzRGF0YVNpemU7Cisg
ICAgZ2NvbnN0cG9pbnRlciBieXRlc0RhdGEgPSBnX2J5dGVzX2dldF9kYXRhKGJ5dGVzLCAmYnl0
ZXNEYXRhU2l6ZSk7CisgICAgZ19yZXR1cm5faWZfZmFpbChieXRlc0RhdGFTaXplKTsKKworICAg
IC8vIEJhbGFuY2VkIGJ5IGdfYnl0ZXNfdW5yZWYgaW4gcmVsZWFzZUdCeXRlcy4KKyAgICBnX2J5
dGVzX3JlZihieXRlcyk7CisKKyAgICBSZWZQdHI8QVBJOjpEYXRhPiBkYXRhID0gQVBJOjpEYXRh
OjpjcmVhdGVXaXRob3V0Q29weWluZyhzdGF0aWNfY2FzdDxjb25zdCB1bnNpZ25lZCBjaGFyKj4o
Ynl0ZXNEYXRhKSwgYnl0ZXNEYXRhU2l6ZSwgcmVsZWFzZUdCeXRlcywgYnl0ZXMpOworICAgIGdl
dFBhZ2Uod2ViVmlldyktPmxvYWREYXRhKGRhdGEuZ2V0KCksIG1pbWVUeXBlID8gU3RyaW5nOjpm
cm9tVVRGOChtaW1lVHlwZSkgOiBTdHJpbmc6OmZyb21VVEY4KCJ0ZXh0L2h0bWwiKSwKKyAgICAg
ICAgZW5jb2RpbmcgPyBTdHJpbmc6OmZyb21VVEY4KGVuY29kaW5nKSA6IFN0cmluZzo6ZnJvbVVU
RjgoIlVURi04IiksIFN0cmluZzo6ZnJvbVVURjgoYmFzZVVSSSkpOworfQorCiAvKioKICAqIHdl
YmtpdF93ZWJfdmlld19sb2FkX3JlcXVlc3Q6CiAgKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZp
ZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcu
aAppbmRleCA5YmYyY2M1Li44YTQ3MjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5oCkBAIC0yODgsNiArMjg4LDEzIEBAIHdlYmtpdF93
ZWJfdmlld19sb2FkX3BsYWluX3RleHQgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZp
ZXcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IGdjaGFyICAgICAgICAgICAgICAgKnBsYWluX3RleHQpOwogCiBXRUJLSVRfQVBJIHZv
aWQKK3dlYmtpdF93ZWJfdmlld19sb2FkX2J5dGVzICAgICAgICAgICAgICAgICAgICAgICAgICAg
KFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0J5dGVzICAgICAgICAgICAgICAg
ICAgICAqYnl0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgICAgICptaW1lX3R5cGUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hh
ciAgICAgICAgICAgICAgICplbmNvZGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAgICAgKmJhc2Vf
dXJpKTsKKworV0VCS0lUX0FQSSB2b2lkCiB3ZWJraXRfd2ViX3ZpZXdfbG9hZF9yZXF1ZXN0ICAg
ICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmll
dywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFdlYktpdFVSSVJlcXVlc3QgICAgICAgICAgKnJlcXVlc3QpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9jcy5zZ21sIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dt
bAppbmRleCAxYjcxNTY1Li42MzAyYzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9jcy5zZ21sCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2NzLnNnbWwKQEAgLTY5LDUg
KzY5LDEwIEBACiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL2FwaS1pbmRleC0yLjQueG1sIj48
eGk6ZmFsbGJhY2sgLz48L3hpOmluY2x1ZGU+CiAgIDwvaW5kZXg+CiAKKyAgPGluZGV4IGlkPSJh
cGktaW5kZXgtMi02IiByb2xlPSIyLjYiPgorICAgIDx0aXRsZT5JbmRleCBvZiBuZXcgc3ltYm9s
cyBpbiAyLjY8L3RpdGxlPgorICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9hcGktaW5kZXgtMi42
LnhtbCI+PHhpOmZhbGxiYWNrIC8+PC94aTppbmNsdWRlPgorICA8L2luZGV4PgorCiAgIDx4aTpp
bmNsdWRlIGhyZWY9InhtbC9hbm5vdGF0aW9uLWdsb3NzYXJ5LnhtbCI+PHhpOmZhbGxiYWNrIC8+
PC94aTppbmNsdWRlPgogPC9ib29rPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKaW5kZXggMDYz
Y2I2Ny4uOGY5ZjYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0CkBAIC0xNDMsNiArMTQz
LDcgQEAgd2Via2l0X3dlYl92aWV3X2xvYWRfdXJpCiB3ZWJraXRfd2ViX3ZpZXdfbG9hZF9odG1s
CiB3ZWJraXRfd2ViX3ZpZXdfbG9hZF9hbHRlcm5hdGVfaHRtbAogd2Via2l0X3dlYl92aWV3X2xv
YWRfcGxhaW5fdGV4dAord2Via2l0X3dlYl92aWV3X2xvYWRfYnl0ZXMKIHdlYmtpdF93ZWJfdmll
d19sb2FkX3JlcXVlc3QKIHdlYmtpdF93ZWJfdmlld19jYW5fZ29fYmFjawogd2Via2l0X3dlYl92
aWV3X2dvX2JhY2sKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCA2NzhkOTNjLi45YzY3YzcxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTQtMDctMTAgIENhcmxvcyBH
YXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIEltcGxlbWVudCB3
ZWJraXRfd2ViX3ZpZXdfbG9hZF9zdHJpbmcoKSBpbiBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ3MzUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgL3dlYmtpdDIvV2ViS2l0V2ViVmll
dy9sb2FkLWJ5dGVzIHRlc3QgY2FzZSBhbmQgc2ltcGxpZnkKKyAgICAgICAgVGVzdERPTVhQYXRo
TlNSZXNvbHZlciBieSB1c2luZyB3ZWJraXRfd2ViX3ZpZXdfbG9hZF9ieXRlcygpCisgICAgICAg
IGluc3RlYWQgb2YgYSBzb3VwIHNlcnZlciBqdXN0IHRvIHNlbnQgdGhlIENvbnRlbnQtdHlwZSBo
ZWFkZXIuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdERP
TVhQYXRoTlNSZXNvbHZlci5jcHA6CisgICAgICAgICh0ZXN0V2ViS2l0RE9NWFBhdGhOU1Jlc29s
dmVyTmF0aXZlKToKKyAgICAgICAgKHRlc3RXZWJLaXRET01YUGF0aE5TUmVzb2x2ZXJDdXN0b20p
OgorICAgICAgICAoYmVmb3JlQWxsKToKKyAgICAgICAgKGFmdGVyQWxsKToKKyAgICAgICAgKHNl
cnZlckNhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJHdGsvVGVzdExvYWRlckNsaWVudC5jcHA6CisgICAgICAgICh0ZXN0TG9hZEJ5dGVzKToK
KyAgICAgICAgKGJlZm9yZUFsbCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0
Mkd0ay9Mb2FkVHJhY2tpbmdUZXN0LmNwcDoKKyAgICAgICAgKExvYWRUcmFja2luZ1Rlc3Q6Omxv
YWRCeXRlcyk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9Mb2FkVHJh
Y2tpbmdUZXN0Lmg6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJW
aWV3VGVzdC5jcHA6CisgICAgICAgIChXZWJWaWV3VGVzdDo6bG9hZEJ5dGVzKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYlZpZXdUZXN0Lmg6CisKIDIwMTQtMDct
MDIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPiBhbmQgTWFydGlu
IFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bQ01ha2Vd
IEFkZCBhICdkaXN0Y2hlY2snIHNjcmlwdApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RET01YUGF0aE5TUmVzb2x2ZXIuY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RET01YUGF0aE5TUmVzb2x2ZXIuY3BwCmlu
ZGV4IDExN2U4MWIuLmJjNGI1N2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mkd0ay9UZXN0RE9NWFBhdGhOU1Jlc29sdmVyLmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdERPTVhQYXRoTlNSZXNvbHZlci5jcHAKQEAg
LTE5LDE0ICsxOSwxMiBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpbmNsdWRlICJXZWJL
aXRUZXN0U2VydmVyLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Rlc3RSdW5uZXIuaCIKICNpbmNs
dWRlICJXZWJWaWV3VGVzdC5oIgogI2luY2x1ZGUgPGd0ay9ndGsuaD4KICNpbmNsdWRlIDx3ZWJr
aXQyL3dlYmtpdDIuaD4KIAogc3RhdGljIFdlYlByb2Nlc3NUZXN0UnVubmVyKiB0ZXN0UnVubmVy
Owotc3RhdGljIFdlYktpdFRlc3RTZXJ2ZXIqIGtTZXJ2ZXI7CiAKIHN0YXRpYyB2b2lkIHJ1blRl
c3QoV2ViVmlld1Rlc3QqIHRlc3QsIGNvbnN0IGNoYXIqIG5hbWUpCiB7CkBAIC0zOCw0NiArMzYs
MjQgQEAgc3RhdGljIHZvaWQgcnVuVGVzdChXZWJWaWV3VGVzdCogdGVzdCwgY29uc3QgY2hhciog
bmFtZSkKIAogc3RhdGljIHZvaWQgdGVzdFdlYktpdERPTVhQYXRoTlNSZXNvbHZlck5hdGl2ZShX
ZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIHsKLSAgICB0ZXN0LT5sb2FkVVJJKGtT
ZXJ2ZXItPmdldFVSSUZvclBhdGgoIi9uYXRpdmUiKS5kYXRhKCkpOworICAgIHN0YXRpYyBjb25z
dCBjaGFyKiBuYXRpdmVYTUwgPSAiPHJvb3QgeG1sbnM6Zm9vPSdodHRwOi8vd3d3LmV4YW1wbGUu
b3JnJz48Zm9vOmNoaWxkPlNVQ0NFU1M8L2ZvbzpjaGlsZD48L3Jvb3Q+IjsKKyAgICBHUmVmUHRy
PEdCeXRlcz4gYnl0ZXMgPSBhZG9wdEdSZWYoZ19ieXRlc19uZXdfc3RhdGljKG5hdGl2ZVhNTCwg
c3RybGVuKG5hdGl2ZVhNTCkpKTsKKyAgICB0ZXN0LT5sb2FkQnl0ZXMoYnl0ZXMuZ2V0KCksICJ0
ZXh0L3htbCIsIG51bGxwdHIsIG51bGxwdHIpOwogICAgIHRlc3QtPndhaXRVbnRpbExvYWRGaW5p
c2hlZCgpOwogICAgIHJ1blRlc3QodGVzdCwgIm5hdGl2ZSIpOwogfQogCiBzdGF0aWMgdm9pZCB0
ZXN0V2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVyQ3VzdG9tKFdlYlZpZXdUZXN0KiB0ZXN0LCBnY29u
c3Rwb2ludGVyKQogewotICAgIHRlc3QtPmxvYWRVUkkoa1NlcnZlci0+Z2V0VVJJRm9yUGF0aCgi
L2N1c3RvbSIpLmRhdGEoKSk7CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGN1c3RvbVhNTCA9ICI8
cm9vdCB4bWxucz0naHR0cDovL3d3dy5leGFtcGxlLmNvbSc+PGNoaWxkPlNVQ0NFU1M8L2NoaWxk
Pjwvcm9vdD4iOworICAgIEdSZWZQdHI8R0J5dGVzPiBieXRlcyA9IGFkb3B0R1JlZihnX2J5dGVz
X25ld19zdGF0aWMoY3VzdG9tWE1MLCBzdHJsZW4oY3VzdG9tWE1MKSkpOworICAgIHRlc3QtPmxv
YWRCeXRlcyhieXRlcy5nZXQoKSwgInRleHQveG1sIiwgbnVsbHB0ciwgbnVsbHB0cik7CiAgICAg
dGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CiAgICAgcnVuVGVzdCh0ZXN0LCAiY3VzdG9t
Iik7CiB9CiAKLXN0YXRpYyB2b2lkIHNlcnZlckNhbGxiYWNrKFNvdXBTZXJ2ZXIqIHNlcnZlciwg
U291cE1lc3NhZ2UqIG1lc3NhZ2UsIGNvbnN0IGNoYXIqIHBhdGgsIEdIYXNoVGFibGUqLCBTb3Vw
Q2xpZW50Q29udGV4dCosIGdwb2ludGVyKQotewotICAgIGlmIChtZXNzYWdlLT5tZXRob2QgIT0g
U09VUF9NRVRIT0RfR0VUKSB7Ci0gICAgICAgIHNvdXBfbWVzc2FnZV9zZXRfc3RhdHVzKG1lc3Nh
Z2UsIFNPVVBfU1RBVFVTX05PVF9JTVBMRU1FTlRFRCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICBpZiAoZ19zdHJfZXF1YWwocGF0aCwgIi9uYXRpdmUiKSkgewotICAgICAgICBzb3Vw
X21lc3NhZ2Vfc2V0X3N0YXR1cyhtZXNzYWdlLCBTT1VQX1NUQVRVU19PSyk7Ci0gICAgICAgIHNv
dXBfbWVzc2FnZV9oZWFkZXJzX2FwcGVuZChtZXNzYWdlLT5yZXNwb25zZV9oZWFkZXJzLCAiQ29u
dGVudC1UeXBlIiwgInRleHQveG1sIik7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBjaGFyKiBuYXRp
dmVYTUwgPSAiPHJvb3QgeG1sbnM6Zm9vPSdodHRwOi8vd3d3LmV4YW1wbGUub3JnJz48Zm9vOmNo
aWxkPlNVQ0NFU1M8L2ZvbzpjaGlsZD48L3Jvb3Q+IjsKLSAgICAgICAgc291cF9tZXNzYWdlX2Jv
ZHlfYXBwZW5kKG1lc3NhZ2UtPnJlc3BvbnNlX2JvZHksIFNPVVBfTUVNT1JZX1NUQVRJQywgbmF0
aXZlWE1MLCBzdHJsZW4obmF0aXZlWE1MKSk7Ci0gICAgICAgIHNvdXBfbWVzc2FnZV9ib2R5X2Nv
bXBsZXRlKG1lc3NhZ2UtPnJlc3BvbnNlX2JvZHkpOwotICAgIH0gZWxzZSBpZiAoZ19zdHJfZXF1
YWwocGF0aCwgIi9jdXN0b20iKSkgewotICAgICAgICBzb3VwX21lc3NhZ2Vfc2V0X3N0YXR1cyht
ZXNzYWdlLCBTT1VQX1NUQVRVU19PSyk7Ci0gICAgICAgIHNvdXBfbWVzc2FnZV9oZWFkZXJzX2Fw
cGVuZChtZXNzYWdlLT5yZXNwb25zZV9oZWFkZXJzLCAiQ29udGVudC1UeXBlIiwgInRleHQveG1s
Iik7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjdXN0b21YTUwgPSAiPHJvb3QgeG1sbnM9
J2h0dHA6Ly93d3cuZXhhbXBsZS5jb20nPjxjaGlsZD5TVUNDRVNTPC9jaGlsZD48L3Jvb3Q+IjsK
LSAgICAgICAgc291cF9tZXNzYWdlX2JvZHlfYXBwZW5kKG1lc3NhZ2UtPnJlc3BvbnNlX2JvZHks
IFNPVVBfTUVNT1JZX1NUQVRJQywgY3VzdG9tWE1MLCBzdHJsZW4oY3VzdG9tWE1MKSk7Ci0gICAg
ICAgIHNvdXBfbWVzc2FnZV9ib2R5X2NvbXBsZXRlKG1lc3NhZ2UtPnJlc3BvbnNlX2JvZHkpOwot
ICAgIH0gZWxzZQotICAgICAgICBzb3VwX21lc3NhZ2Vfc2V0X3N0YXR1cyhtZXNzYWdlLCBTT1VQ
X1NUQVRVU19OT1RfRk9VTkQpOwotfQotCiB2b2lkIGJlZm9yZUFsbCgpCiB7Ci0gICAga1NlcnZl
ciA9IG5ldyBXZWJLaXRUZXN0U2VydmVyKCk7Ci0gICAga1NlcnZlci0+cnVuKHNlcnZlckNhbGxi
YWNrKTsKLQogICAgIHRlc3RSdW5uZXIgPSBuZXcgV2ViUHJvY2Vzc1Rlc3RSdW5uZXIoKTsKICAg
ICB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3dlYl9leHRlbnNpb25zX2RpcmVjdG9yeSh3ZWJraXRf
d2ViX2NvbnRleHRfZ2V0X2RlZmF1bHQoKSwgV0VCS0lUX1RFU1RfV0VCX0VYVEVOU0lPTlNfRElS
KTsKIApAQCAtODgsNSArNjQsNCBAQCB2b2lkIGJlZm9yZUFsbCgpCiB2b2lkIGFmdGVyQWxsKCkK
IHsKICAgICBkZWxldGUgdGVzdFJ1bm5lcjsKLSAgICBkZWxldGUga1NlcnZlcjsKIH0KZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0TG9hZGVyQ2xp
ZW50LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0TG9hZGVy
Q2xpZW50LmNwcAppbmRleCAzMzE5MTVlLi41YTBkNjA4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdExvYWRlckNsaWVudC5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RMb2FkZXJDbGllbnQuY3BwCkBA
IC04OSw2ICs4OSwxOCBAQCBzdGF0aWMgdm9pZCB0ZXN0TG9hZFBsYWluVGV4dChMb2FkVHJhY2tp
bmdUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogICAgIGFzc2VydE5vcm1hbExvYWRIYXBwZW5l
ZCh0ZXN0LT5tX2xvYWRFdmVudHMpOwogfQogCitzdGF0aWMgdm9pZCB0ZXN0TG9hZEJ5dGVzKExv
YWRUcmFja2luZ1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCit7CisgICAgR1VuaXF1ZVB0cjxj
aGFyPiBmaWxlUGF0aChnX2J1aWxkX2ZpbGVuYW1lKFRlc3Q6OmdldFJlc291cmNlc0RpcigpLmRh
dGEoKSwgImJsYW5rLmljbyIsIG51bGxwdHIpKTsKKyAgICBjaGFyKiBjb250ZW50czsKKyAgICBn
c2l6ZSBjb250ZW50c0xlbmd0aDsKKyAgICBnX2ZpbGVfZ2V0X2NvbnRlbnRzKGZpbGVQYXRoLmdl
dCgpLCAmY29udGVudHMsICZjb250ZW50c0xlbmd0aCwgbnVsbHB0cik7CisgICAgR1JlZlB0cjxH
Qnl0ZXM+IGJ5dGVzID0gYWRvcHRHUmVmKGdfYnl0ZXNfbmV3X3Rha2UoY29udGVudHMsIGNvbnRl
bnRzTGVuZ3RoKSk7CisgICAgdGVzdC0+bG9hZEJ5dGVzKGJ5dGVzLmdldCgpLCAiaW1hZ2Uvdm5k
Lm1pY3Jvc29mdC5pY29uIiwgbnVsbHB0ciwgbnVsbHB0cik7CisgICAgdGVzdC0+d2FpdFVudGls
TG9hZEZpbmlzaGVkKCk7CisgICAgYXNzZXJ0Tm9ybWFsTG9hZEhhcHBlbmVkKHRlc3QtPm1fbG9h
ZEV2ZW50cyk7Cit9CisKIHN0YXRpYyB2b2lkIHRlc3RMb2FkUmVxdWVzdChMb2FkVHJhY2tpbmdU
ZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogewogICAgIEdSZWZQdHI8V2ViS2l0VVJJUmVxdWVz
dD4gcmVxdWVzdCh3ZWJraXRfdXJpX3JlcXVlc3RfbmV3KGtTZXJ2ZXItPmdldFVSSUZvclBhdGgo
Ii9ub3JtYWwiKS5kYXRhKCkpKTsKQEAgLTQ0Miw2ICs0NTQsNyBAQCB2b2lkIGJlZm9yZUFsbCgp
CiAgICAgTG9hZFRyYWNraW5nVGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgImxvYWQtaHRtbCIs
IHRlc3RMb2FkSHRtbCk7CiAgICAgTG9hZFRyYWNraW5nVGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3
IiwgImxvYWQtYWx0ZXJuYXRlLWh0bWwiLCB0ZXN0TG9hZEFsdGVybmF0ZUhUTUwpOwogICAgIExv
YWRUcmFja2luZ1Rlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJsb2FkLXBsYWluLXRleHQiLCB0
ZXN0TG9hZFBsYWluVGV4dCk7CisgICAgTG9hZFRyYWNraW5nVGVzdDo6YWRkKCJXZWJLaXRXZWJW
aWV3IiwgImxvYWQtYnl0ZXMiLCB0ZXN0TG9hZEJ5dGVzKTsKICAgICBMb2FkVHJhY2tpbmdUZXN0
OjphZGQoIldlYktpdFdlYlZpZXciLCAibG9hZC1yZXF1ZXN0IiwgdGVzdExvYWRSZXF1ZXN0KTsK
ICAgICBMb2FkU3RvcFRyYWNraW5nVGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgInN0b3AtbG9h
ZGluZyIsIHRlc3RMb2FkQ2FuY2VsbGVkKTsKICAgICBMb2FkVHJhY2tpbmdUZXN0OjphZGQoIldl
YktpdFdlYlZpZXciLCAidGl0bGUiLCB0ZXN0V2ViVmlld1RpdGxlKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvTG9hZFRyYWNraW5nVGVzdC5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL0xvYWRUcmFja2luZ1Rlc3QuY3BwCmlu
ZGV4IDIxMWZhOGIuLjAyNmE3OWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3Rr
L1dlYktpdDJHdGsvTG9hZFRyYWNraW5nVGVzdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9ndGsvV2ViS2l0Mkd0ay9Mb2FkVHJhY2tpbmdUZXN0LmNwcApAQCAtMTc0LDYgKzE3NCwxNCBA
QCB2b2lkIExvYWRUcmFja2luZ1Rlc3Q6OmxvYWRQbGFpblRleHQoY29uc3QgY2hhciogcGxhaW5U
ZXh0KQogICAgIFdlYlZpZXdUZXN0Ojpsb2FkUGxhaW5UZXh0KHBsYWluVGV4dCk7CiB9CiAKK3Zv
aWQgTG9hZFRyYWNraW5nVGVzdDo6bG9hZEJ5dGVzKEdCeXRlcyogYnl0ZXMsIGNvbnN0IGNoYXIq
IG1pbWVUeXBlLCBjb25zdCBjaGFyKiBlbmNvZGluZywgY29uc3QgY2hhciogYmFzZVVSSSkKK3sK
KyAgICBtX2xvYWRFdmVudHMuY2xlYXIoKTsKKyAgICBtX2VzdGltYXRlZFByb2dyZXNzID0gMDsK
KyAgICBtX2Vycm9yLnJlc2V0KCk7CisgICAgV2ViVmlld1Rlc3Q6OmxvYWRCeXRlcyhieXRlcywg
bWltZVR5cGUsIGVuY29kaW5nLCBiYXNlVVJJKTsKK30KKwogdm9pZCBMb2FkVHJhY2tpbmdUZXN0
Ojpsb2FkUmVxdWVzdChXZWJLaXRVUklSZXF1ZXN0KiByZXF1ZXN0KQogewogICAgIG1fbG9hZEV2
ZW50cy5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0
Mkd0ay9Mb2FkVHJhY2tpbmdUZXN0LmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQy
R3RrL0xvYWRUcmFja2luZ1Rlc3QuaAppbmRleCBkMGVkMWU1Li5jYWI4ODRmIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL0xvYWRUcmFja2luZ1Rlc3QuaAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL0xvYWRUcmFja2luZ1Rlc3Qu
aApAQCAtNDMsNiArNDMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBsb2FkSHRtbChjb25zdCBjaGFy
KiBodG1sLCBjb25zdCBjaGFyKiBiYXNlVVJJKTsKICAgICB2b2lkIGxvYWRQbGFpblRleHQoY29u
c3QgY2hhciogcGxhaW5UZXh0KTsKICAgICB2b2lkIGxvYWRSZXF1ZXN0KFdlYktpdFVSSVJlcXVl
c3QqKTsKKyAgICB2b2lkIGxvYWRCeXRlcyhHQnl0ZXMqLCBjb25zdCBjaGFyKiBtaW1lVHlwZSwg
Y29uc3QgY2hhciogZW5jb2RpbmcsIGNvbnN0IGNoYXIqIGJhc2VVUkkpOwogICAgIHZvaWQgcmVs
b2FkKCk7CiAgICAgdm9pZCBnb0JhY2soKTsKICAgICB2b2lkIGdvRm9yd2FyZCgpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJWaWV3VGVzdC5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYlZpZXdUZXN0LmNwcAppbmRl
eCBlYmQwM2I0Li5kODRiM2EzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9X
ZWJLaXQyR3RrL1dlYlZpZXdUZXN0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9X
ZWJLaXQyR3RrL1dlYlZpZXdUZXN0LmNwcApAQCAtNzEsNiArNzEsMTUgQEAgdm9pZCBXZWJWaWV3
VGVzdDo6bG9hZFBsYWluVGV4dChjb25zdCBjaGFyKiBwbGFpblRleHQpCiAgICAgd2Via2l0X3dl
Yl92aWV3X2xvYWRfcGxhaW5fdGV4dChtX3dlYlZpZXcsIHBsYWluVGV4dCk7CiB9CiAKK3ZvaWQg
V2ViVmlld1Rlc3Q6OmxvYWRCeXRlcyhHQnl0ZXMqIGJ5dGVzLCBjb25zdCBjaGFyKiBtaW1lVHlw
ZSwgY29uc3QgY2hhciogZW5jb2RpbmcsIGNvbnN0IGNoYXIqIGJhc2VVUkkpCit7CisgICAgaWYg
KCFiYXNlVVJJKQorICAgICAgICBtX2FjdGl2ZVVSSSA9ICJhYm91dDpibGFuayI7CisgICAgZWxz
ZQorICAgICAgICBtX2FjdGl2ZVVSSSA9IGJhc2VVUkk7CisgICAgd2Via2l0X3dlYl92aWV3X2xv
YWRfYnl0ZXMobV93ZWJWaWV3LCBieXRlcywgbWltZVR5cGUsIGVuY29kaW5nLCBiYXNlVVJJKTsK
K30KKwogdm9pZCBXZWJWaWV3VGVzdDo6bG9hZFJlcXVlc3QoV2ViS2l0VVJJUmVxdWVzdCogcmVx
dWVzdCkKIHsKICAgICBtX2FjdGl2ZVVSSSA9IHdlYmtpdF91cmlfcmVxdWVzdF9nZXRfdXJpKHJl
cXVlc3QpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9X
ZWJWaWV3VGVzdC5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJWaWV3
VGVzdC5oCmluZGV4IDJiY2Y1NjMuLjA2NDFjOWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViVmlld1Rlc3QuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL2d0ay9XZWJLaXQyR3RrL1dlYlZpZXdUZXN0LmgKQEAgLTM2LDYgKzM2LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBsb2FkSHRtbChjb25zdCBjaGFyKiBodG1sLCBjb25zdCBjaGFy
KiBiYXNlVVJJKTsKICAgICB2aXJ0dWFsIHZvaWQgbG9hZFBsYWluVGV4dChjb25zdCBjaGFyKiBw
bGFpblRleHQpOwogICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVxdWVzdChXZWJLaXRVUklSZXF1ZXN0
Kik7CisgICAgdmlydHVhbCB2b2lkIGxvYWRCeXRlcyhHQnl0ZXMqLCBjb25zdCBjaGFyKiBtaW1l
VHlwZSwgY29uc3QgY2hhciogZW5jb2RpbmcsIGNvbnN0IGNoYXIqIGJhc2VVUkkpOwogICAgIHZv
aWQgbG9hZEFsdGVybmF0ZUhUTUwoY29uc3QgY2hhciogaHRtbCwgY29uc3QgY2hhciogY29udGVu
dFVSSSwgY29uc3QgY2hhciogYmFzZVVSSSk7CiAgICAgdm9pZCBnb0JhY2soKTsKICAgICB2b2lk
IGdvRm9yd2FyZCgpOwo=
</data>
<flag name="review"
          id="259245"
          type_id="1"
          status="+"
          setter="svillar"
    />
          </attachment>
      

    </bug>

</bugzilla>