<?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>197270</bug_id>
          
          <creation_ts>2019-04-24 21:28:51 -0700</creation_ts>
          <short_desc>[WPE][GTK] Add webkit_frame_get_id() API</short_desc>
          <delta_ts>2019-05-10 09:53:52 -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>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Michael Catanzaro">mcatanzaro</assigned_to>
          <cc>aperez</cc>
    
    <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1530291</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-04-24 21:28:51 -0700</bug_when>
    <thetext>Epiphany needs webkit_frame_get_id() to keep track of frames across the web/UI process boundary. Serializing frame IDs is a lot nicer than serializing web process pointers and passing them to the UI process and back.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1530292</commentid>
    <comment_count>1</comment_count>
      <attachid>368208</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-04-24 21:30:07 -0700</bug_when>
    <thetext>Created attachment 368208
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1530294</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-04-24 21:32:54 -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>1530360</commentid>
    <comment_count>3</comment_count>
      <attachid>368208</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2019-04-25 04:38:34 -0700</bug_when>
    <thetext>Comment on attachment 368208
Patch

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

The patch by itself LGTM; I have doubts about what this is trying to
achieve, please check my comments below.

&gt; Source/WebKit/WebProcess/InjectedBundle/API/glib/WebKitFrame.cpp:65
&gt; + * Gets the unique identifier of this #WebKitFrame

I have always been under the impression that a way to correlate a WebExtension
with its UIProcess-side view was to use webkit_web_view_get_page_id() in the
UIProcess, which would return the same value as webkit_web_page_get_id() in
the WebProcess. Why is that not enough? I would like to understand which kind
of use-case the proposed API is trying to solve.

Also, side question: Would this new webkit_frame_get_id() return the same
value as webkit_web_page_get_id() when querying the identifier for the main
frame? Or, in other words, does the following hold true?:

  webkit_web_page_get_id(page) == webkit_frame_get_id(webkit_page_get_main_frame(page))

It looks to me as if those should be the same 🤔 — it looks to me as if it
would be good for the reference documentation to elaborate a bit on why these
identifiers are useful and how both the UIProcess and WebProcess sides can
use them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1530363</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-04-25 06:29:55 -0700</bug_when>
    <thetext>A WebKitWebPage has one main WebKitFrame and zero or many additional WebKitFrames. A bunch of Epiphany code currently doesn&apos;t work in subframes because it relies on running JS only in the main frame.

It&apos;s for https://gitlab.gnome.org/GNOME/epiphany/merge_requests/288.

I&apos;ll improve the docs a bit, and also think about adding some minimally-useful test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1530504</commentid>
    <comment_count>5</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2019-04-25 13:51:50 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #4)
&gt; A WebKitWebPage has one main WebKitFrame and zero or many additional
&gt; WebKitFrames. A bunch of Epiphany code currently doesn&apos;t work in subframes
&gt; because it relies on running JS only in the main frame.
&gt; 
&gt; It&apos;s for https://gitlab.gnome.org/GNOME/epiphany/merge_requests/288.

Thanks for the links, I see now how the added function can be
useful: to send something pertaining to a certain frame to the
UIProcess, and then get back the same ID later from it to act
on the same frame again.

&gt; I&apos;ll improve the docs a bit, and also think about adding some
&gt; minimally-useful test

Please do, that was going to be my next request.

Still, I am scratching my head with whether

  webkit_web_page_get_id(page) == webkit_frame_get_id(webkit_page_get_main_frame(page))
  
holds true or not :-P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1530521</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-04-25 14:28:36 -0700</bug_when>
    <thetext>No it doesn&apos;t.

Also, the same frame ID can be reused across multiple web processes (they are only process-unique), which I should mention in the documentation. Whereas the page IDs are separate and globally-unique (unique within a single WebKitWebContext).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1531054</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-04-28 08:54:22 -0700</bug_when>
    <thetext>It&apos;s actually hard to add a meaningful test for this without the API added in bug #197271, so I&apos;ll add a test there instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1531055</commentid>
    <comment_count>8</comment_count>
      <attachid>368431</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-04-28 08:55:27 -0700</bug_when>
    <thetext>Created attachment 368431
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1531058</commentid>
    <comment_count>9</comment_count>
      <attachid>368431</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-04-28 09:20:29 -0700</bug_when>
    <thetext>Comment on attachment 368431
Patch

Actually I found a way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1531077</commentid>
    <comment_count>10</comment_count>
      <attachid>368435</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-04-28 14:14:26 -0700</bug_when>
    <thetext>Created attachment 368435
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1533729</commentid>
    <comment_count>11</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-05-06 18:58:57 -0700</bug_when>
    <thetext>Ping for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1534971</commentid>
    <comment_count>12</comment_count>
      <attachid>368435</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-05-10 02:40:54 -0700</bug_when>
    <thetext>Comment on attachment 368435
Patch

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

&gt; Source/WebKit/WebProcess/InjectedBundle/API/glib/WebKitFrame.cpp:74
&gt; +{

g_return_val_if_fail(WEBKIT_IS_FRAME(fraem), 0);

&gt; Tools/TestWebKitAPI/Tests/WebKitGLib/FrameTest.cpp:167
&gt; +        GRefPtr&lt;JSCValue&gt; undefined = adoptGRef(jsc_value_object_invoke_method(contentWindow.get(), &quot;postMessage&quot;, G_TYPE_STRING, &quot;submit the form!&quot;, G_TYPE_STRING, &quot;*&quot;, G_TYPE_NONE));
&gt; +        g_assert_true(JSC_IS_VALUE(undefined.get()));
&gt; +        g_assert_true(jsc_value_is_undefined(undefined.get()));

Why don&apos;t you call submit() directly on the form here? Maybe you don&apos;t even need to run loop, just connect the signal before

&gt; Tools/TestWebKitAPI/Tests/WebKitGLib/resources/webkitglib-tests.gresource.xml:5
&gt; +    &lt;file alias=&quot;form-in-frame.html&quot;&gt;Tools/TestWebKitAPI/Tests/WebKitGLib/resources/form-in-frame.html&lt;/file&gt;

Dos this need to be a resource?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535017</commentid>
    <comment_count>13</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-05-10 09:16:06 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #12)
&gt; &gt; Source/WebKit/WebProcess/InjectedBundle/API/glib/WebKitFrame.cpp:74
&gt; &gt; +{
&gt; 
&gt; g_return_val_if_fail(WEBKIT_IS_FRAME(fraem), 0);

Fixed.

&gt; &gt; Tools/TestWebKitAPI/Tests/WebKitGLib/FrameTest.cpp:167
&gt; &gt; +        GRefPtr&lt;JSCValue&gt; undefined = adoptGRef(jsc_value_object_invoke_method(contentWindow.get(), &quot;postMessage&quot;, G_TYPE_STRING, &quot;submit the form!&quot;, G_TYPE_STRING, &quot;*&quot;, G_TYPE_NONE));
&gt; &gt; +        g_assert_true(JSC_IS_VALUE(undefined.get()));
&gt; &gt; +        g_assert_true(jsc_value_is_undefined(undefined.get()));
&gt; 
&gt; Why don&apos;t you call submit() directly on the form here? Maybe you don&apos;t even
&gt; need to run loop, just connect the signal before

Oops, good catch.

&gt; &gt; Tools/TestWebKitAPI/Tests/WebKitGLib/resources/webkitglib-tests.gresource.xml:5
&gt; &gt; +    &lt;file alias=&quot;form-in-frame.html&quot;&gt;Tools/TestWebKitAPI/Tests/WebKitGLib/resources/form-in-frame.html&lt;/file&gt;
&gt; 
&gt; Dos this need to be a resource?

No, but there&apos;s no reason for it not to be.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535021</commentid>
    <comment_count>14</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-05-10 09:21:03 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #13)
&gt; No, but there&apos;s no reason for it not to be.

Oh, you mean: does it need to be a separate file? Yes, for use as iframe src.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535025</commentid>
    <comment_count>15</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-05-10 09:35:54 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #13) 
&gt; &gt; &gt; Tools/TestWebKitAPI/Tests/WebKitGLib/FrameTest.cpp:167
&gt; &gt; &gt; +        GRefPtr&lt;JSCValue&gt; undefined = adoptGRef(jsc_value_object_invoke_method(contentWindow.get(), &quot;postMessage&quot;, G_TYPE_STRING, &quot;submit the form!&quot;, G_TYPE_STRING, &quot;*&quot;, G_TYPE_NONE));
&gt; &gt; &gt; +        g_assert_true(JSC_IS_VALUE(undefined.get()));
&gt; &gt; &gt; +        g_assert_true(jsc_value_is_undefined(undefined.get()));
&gt; &gt; 
&gt; &gt; Why don&apos;t you call submit() directly on the form here? Maybe you don&apos;t even
&gt; &gt; need to run loop, just connect the signal before
&gt; 
&gt; Oops, good catch.

Ah no, it&apos;s not possible:

/webkit/WebKitFrame/subframe: [native code]: JS ERROR SecurityError: Blocked a frame with origin &quot;webprocess://test&quot; from accessing a cross-origin frame. Protocols, domains, and ports must match.

That&apos;s why I wound up using the message handler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535029</commentid>
    <comment_count>16</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-05-10 09:45:42 -0700</bug_when>
    <thetext>postMessage is the recommended way to communicate from parent frame to subframe, btw.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535033</commentid>
    <comment_count>17</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-05-10 09:46:43 -0700</bug_when>
    <thetext>Committed r245176: &lt;https://trac.webkit.org/changeset/245176&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535037</commentid>
    <comment_count>18</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-05-10 09:49:33 -0700</bug_when>
    <thetext>Now, the GMainLoop could be replaced with a bool, though. That should work. And avoid the problem of this m_mainLoop shadowing the one in the parent class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535040</commentid>
    <comment_count>19</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-05-10 09:52:31 -0700</bug_when>
    <thetext>No, we need to run the loop, but we can at least use the parent class&apos;s loop.

Hopefully this can be the end of my conversation with myself on Bugzilla?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535042</commentid>
    <comment_count>20</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-05-10 09:53:52 -0700</bug_when>
    <thetext>OK, it&apos;s actually a WebProcessTest. m_mainLoop is a member of WebViewTest, not WebProcessTest. Nothing left to do.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>368208</attachid>
            <date>2019-04-24 21:30:07 -0700</date>
            <delta_ts>2019-04-28 08:55:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197270-20190424233006.patch</filename>
            <type>text/plain</type>
            <size>4530</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0MTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM2ODhiYTE5YWRjZGIxMzFl
MmZmOTczNGQ5ZTRiYzc5YWVhOTMyOTIuLjcwZWZlYTM3ODg2Zjc2NTE5MTJjYmQ1MWJmYjBjMTdl
YjRhY2EyMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMDQtMjQgIE1pY2hhZWwg
Q2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtXUEVdW0dUS10g
QWRkIHdlYmtpdF9mcmFtZV9nZXRfaWQoKSBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NzI3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3Rr
LTQuMC1zZWN0aW9ucy50eHQ6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ2xpYi9XZWJLaXRGcmFtZS5jcHA6CisgICAgICAgICh3ZWJraXRfZnJhbWVfZ2V0X2lkKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0RnJhbWUu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvV2ViS2l0RnJh
bWUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvZG9jcy93
cGUtd2ViZXh0ZW5zaW9ucy0xLjAtc2VjdGlvbnMudHh0OgorCiAyMDE5LTA0LTEwICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVncmVzc2lvbihyMjQ0MTQ0KSBQ
cm9jZXNzU3dhcC5SZXVzZVN1c3BlbmRlZFByb2Nlc3NMb2FkSFRNTFN0cmluZyBBUEkgdGVzdCBp
cyBmbGFreQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2Nz
L3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQKaW5kZXggNmJjZDdjMzdjNDI3
MWQ4ZTJiOGY5ZTMxY2NkOWRjNDIyMDI3NThlZC4uOWY5MjYzZmFlZDYxMGUyYzE1ZDZhNTQ0YjQ3
ZWMzZGE4N2QwNzdhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0CkBAIC0xNTk3
LDYgKzE1OTcsNyBAQCB3ZWJraXRfd2ViX2VkaXRvcl9nZXRfdHlwZQogPFNFQ1RJT04+CiA8RklM
RT5XZWJLaXRGcmFtZTwvRklMRT4KIFdlYktpdEZyYW1lCit3ZWJraXRfZnJhbWVfZ2V0X2lkCiB3
ZWJraXRfZnJhbWVfaXNfbWFpbl9mcmFtZQogd2Via2l0X2ZyYW1lX2dldF91cmkKIHdlYmtpdF9m
cmFtZV9nZXRfamF2YXNjcmlwdF9nbG9iYWxfY29udGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdEZyYW1lLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRG
cmFtZS5jcHAKaW5kZXggMjFhM2Y2MzZlMmExM2U3NTYwMDUxZTliNjA0NGUxYzg3NWRkMTg5Zi4u
MjY4MjIzYmVmZWVmMTA3MmRiOGRiYjdjZmE1YzQ1MmI2ZDBlNmU1ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdEZyYW1l
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2ds
aWIvV2ViS2l0RnJhbWUuY3BwCkBAIC01OCw2ICs1OCwyMSBAQCBXZWJGcmFtZSogd2Via2l0RnJh
bWVHZXRXZWJGcmFtZShXZWJLaXRGcmFtZSogZnJhbWUpCiAgICAgcmV0dXJuIGZyYW1lLT5wcml2
LT53ZWJGcmFtZS5nZXQoKTsKIH0KIAorLyoqCisgKiB3ZWJraXRfZnJhbWVfZ2V0X2lkOgorICog
QGZyYW1lOiBhICNXZWJLaXRGcmFtZQorICoKKyAqIEdldHMgdGhlIHVuaXF1ZSBpZGVudGlmaWVy
IG9mIHRoaXMgI1dlYktpdEZyYW1lCisgKgorICogUmV0dXJuczogdGhlIGlkZW50aWZpZXIgb2Yg
QGZyYW1lCisgKgorICogU2luY2U6IDIuMjYKKyAqLworZ3VpbnQ2NCB3ZWJraXRfZnJhbWVfZ2V0
X2lkKFdlYktpdEZyYW1lKiBmcmFtZSkKK3sKKyAgICByZXR1cm4gZnJhbWUtPnByaXYtPndlYkZy
YW1lLT5mcmFtZUlEKCk7Cit9CisKIC8qKgogICogd2Via2l0X2ZyYW1lX2lzX21haW5fZnJhbWU6
CiAgKiBAZnJhbWU6IGEgI1dlYktpdEZyYW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRGcmFtZS5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0RnJhbWUuaAppbmRl
eCBhMzEwMDYwYTM4MjRjYjVlYzY4NDAwNDBlNGRlZjAxNTJjNzM3MmEzLi40MmYxNjFiMmIxNTNl
N2Q5NDBjNmRlNTdkNTczODZkMWY2NTZmNWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRGcmFtZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdEZyYW1lLmgK
QEAgLTU3LDYgKzU3LDkgQEAgc3RydWN0IF9XZWJLaXRGcmFtZUNsYXNzIHsKIFdFQktJVF9BUEkg
R1R5cGUKIHdlYmtpdF9mcmFtZV9nZXRfdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICh2b2lkKTsKIAorV0VCS0lUX0FQSSBndWludDY0Cit3ZWJraXRfZnJhbWVfZ2V0X2lk
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0RnJhbWUgICAgICAg
KmZyYW1lKTsKKwogV0VCS0lUX0FQSSBnYm9vbGVhbgogd2Via2l0X2ZyYW1lX2lzX21haW5fZnJh
bWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdEZyYW1lICAgICAgICpmcmFt
ZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvd3BlL1dlYktpdEZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRGcmFtZS5oCmluZGV4IGEzYzYzOTRkYWQxZjA3NWI3NGVh
ZDNjNmFkM2M5ZTYxOGU5ZDg0NzEuLjZhNzljMDMwNmJlZjkzODg4Y2EyMzkzYmQ1MGUwOTM3OGRl
MTY3MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvd3BlL1dlYktpdEZyYW1lLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS93cGUvV2ViS2l0RnJhbWUuaApAQCAtNTYsNiArNTYsOSBAQCBzdHJ1
Y3QgX1dlYktpdEZyYW1lQ2xhc3MgewogV0VCS0lUX0FQSSBHVHlwZQogd2Via2l0X2ZyYW1lX2dl
dF90eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQpOwogCitXRUJL
SVRfQVBJIGd1aW50NjQKK3dlYmtpdF9mcmFtZV9nZXRfaWQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChXZWJLaXRGcmFtZSAgICAgICAqZnJhbWUpOworCiBXRUJLSVRfQVBJ
IGdib29sZWFuCiB3ZWJraXRfZnJhbWVfaXNfbWFpbl9mcmFtZSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoV2ViS2l0RnJhbWUgICAgICAgKmZyYW1lKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvZG9jcy93cGUtd2Vi
ZXh0ZW5zaW9ucy0xLjAtc2VjdGlvbnMudHh0IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS93cGUvZG9jcy93cGUtd2ViZXh0ZW5zaW9ucy0xLjAtc2VjdGlvbnMu
dHh0CmluZGV4IGExZDY4NDRkZGNmZWM2NjkwZDhkMTQxMmI2YWFhNjFjMWYwNTBhMjQuLmU0NDgy
OTZkOWZhNzdhMTFhYTYwMTgzZGZmMDIwZDE0YTgwZGY5OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL2RvY3Mvd3BlLXdlYmV4dGVu
c2lvbnMtMS4wLXNlY3Rpb25zLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL3dwZS9kb2NzL3dwZS13ZWJleHRlbnNpb25zLTEuMC1zZWN0aW9ucy50
eHQKQEAgLTc2LDYgKzc2LDcgQEAgd2Via2l0X3dlYl9lZGl0b3JfZ2V0X3R5cGUKIDxTRUNUSU9O
PgogPEZJTEU+V2ViS2l0RnJhbWU8L0ZJTEU+CiBXZWJLaXRGcmFtZQord2Via2l0X2ZyYW1lX2dl
dF9pZAogd2Via2l0X2ZyYW1lX2lzX21haW5fZnJhbWUKIHdlYmtpdF9mcmFtZV9nZXRfdXJpCiB3
ZWJraXRfZnJhbWVfZ2V0X2pzX2NvbnRleHQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>368431</attachid>
            <date>2019-04-28 08:55:27 -0700</date>
            <delta_ts>2019-04-28 14:14:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197270-20190428105526.patch</filename>
            <type>text/plain</type>
            <size>4653</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0MTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM2ODhiYTE5YWRjZGIxMzFl
MmZmOTczNGQ5ZTRiYzc5YWVhOTMyOTIuLmExZGI4NWM2YjVkMjE4ZDhmMmViODhmMzY4NjIyMzRj
NDcyYzJmYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMDQtMjUgIE1pY2hhZWwg
Q2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtXUEVdW0dUS10g
QWRkIHdlYmtpdF9mcmFtZV9nZXRfaWQoKSBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NzI3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3Rr
LTQuMC1zZWN0aW9ucy50eHQ6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ2xpYi9XZWJLaXRGcmFtZS5jcHA6CisgICAgICAgICh3ZWJraXRfZnJhbWVfZ2V0X2lkKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0RnJhbWUu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvV2ViS2l0RnJh
bWUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvZG9jcy93
cGUtd2ViZXh0ZW5zaW9ucy0xLjAtc2VjdGlvbnMudHh0OgorCiAyMDE5LTA0LTEwICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVncmVzc2lvbihyMjQ0MTQ0KSBQ
cm9jZXNzU3dhcC5SZXVzZVN1c3BlbmRlZFByb2Nlc3NMb2FkSFRNTFN0cmluZyBBUEkgdGVzdCBp
cyBmbGFreQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2Nz
L3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQKaW5kZXggNmJjZDdjMzdjNDI3
MWQ4ZTJiOGY5ZTMxY2NkOWRjNDIyMDI3NThlZC4uOWY5MjYzZmFlZDYxMGUyYzE1ZDZhNTQ0YjQ3
ZWMzZGE4N2QwNzdhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0CkBAIC0xNTk3
LDYgKzE1OTcsNyBAQCB3ZWJraXRfd2ViX2VkaXRvcl9nZXRfdHlwZQogPFNFQ1RJT04+CiA8RklM
RT5XZWJLaXRGcmFtZTwvRklMRT4KIFdlYktpdEZyYW1lCit3ZWJraXRfZnJhbWVfZ2V0X2lkCiB3
ZWJraXRfZnJhbWVfaXNfbWFpbl9mcmFtZQogd2Via2l0X2ZyYW1lX2dldF91cmkKIHdlYmtpdF9m
cmFtZV9nZXRfamF2YXNjcmlwdF9nbG9iYWxfY29udGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdEZyYW1lLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRG
cmFtZS5jcHAKaW5kZXggMjFhM2Y2MzZlMmExM2U3NTYwMDUxZTliNjA0NGUxYzg3NWRkMTg5Zi4u
ZDA5MzYwYjNiMDI4Mzg3MTI0Y2NiNzY2ZTlmMjFhN2Y5YjFiYzdlNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdEZyYW1l
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2ds
aWIvV2ViS2l0RnJhbWUuY3BwCkBAIC01OCw2ICs1OCwyMyBAQCBXZWJGcmFtZSogd2Via2l0RnJh
bWVHZXRXZWJGcmFtZShXZWJLaXRGcmFtZSogZnJhbWUpCiAgICAgcmV0dXJuIGZyYW1lLT5wcml2
LT53ZWJGcmFtZS5nZXQoKTsKIH0KIAorLyoqCisgKiB3ZWJraXRfZnJhbWVfZ2V0X2lkOgorICog
QGZyYW1lOiBhICNXZWJLaXRGcmFtZQorICoKKyAqIEdldHMgdGhlIHByb2Nlc3MtdW5pcXVlIGlk
ZW50aWZpZXIgb2YgdGhpcyAjV2ViS2l0RnJhbWUuIE5vIG90aGVyCisgKiBmcmFtZSBpbiB0aGUg
c2FtZSB3ZWIgcHJvY2VzcyB3aWxsIGhhdmUgdGhlIHNhbWUgSUQ7IGhvd2V2ZXIsIGZyYW1lcwor
ICogaW4gb3RoZXIgd2ViIHByb2Nlc3NlcyBtYXkuCisgKgorICogUmV0dXJuczogdGhlIGlkZW50
aWZpZXIgb2YgQGZyYW1lCisgKgorICogU2luY2U6IDIuMjYKKyAqLworZ3VpbnQ2NCB3ZWJraXRf
ZnJhbWVfZ2V0X2lkKFdlYktpdEZyYW1lKiBmcmFtZSkKK3sKKyAgICByZXR1cm4gZnJhbWUtPnBy
aXYtPndlYkZyYW1lLT5mcmFtZUlEKCk7Cit9CisKIC8qKgogICogd2Via2l0X2ZyYW1lX2lzX21h
aW5fZnJhbWU6CiAgKiBAZnJhbWU6IGEgI1dlYktpdEZyYW1lCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRGcmFtZS5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0RnJh
bWUuaAppbmRleCBhMzEwMDYwYTM4MjRjYjVlYzY4NDAwNDBlNGRlZjAxNTJjNzM3MmEzLi40MmYx
NjFiMmIxNTNlN2Q5NDBjNmRlNTdkNTczODZkMWY2NTZmNWM0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRGcmFtZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktp
dEZyYW1lLmgKQEAgLTU3LDYgKzU3LDkgQEAgc3RydWN0IF9XZWJLaXRGcmFtZUNsYXNzIHsKIFdF
QktJVF9BUEkgR1R5cGUKIHdlYmtpdF9mcmFtZV9nZXRfdHlwZSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICh2b2lkKTsKIAorV0VCS0lUX0FQSSBndWludDY0Cit3ZWJraXRfZnJh
bWVfZ2V0X2lkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0RnJh
bWUgICAgICAgKmZyYW1lKTsKKwogV0VCS0lUX0FQSSBnYm9vbGVhbgogd2Via2l0X2ZyYW1lX2lz
X21haW5fZnJhbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdEZyYW1lICAg
ICAgICpmcmFtZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvd3BlL1dlYktpdEZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRGcmFtZS5oCmluZGV4IGEzYzYzOTRkYWQx
ZjA3NWI3NGVhZDNjNmFkM2M5ZTYxOGU5ZDg0NzEuLjZhNzljMDMwNmJlZjkzODg4Y2EyMzkzYmQ1
MGUwOTM3OGRlMTY3MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvd3BlL1dlYktpdEZyYW1lLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvV2ViS2l0RnJhbWUuaApAQCAtNTYsNiArNTYs
OSBAQCBzdHJ1Y3QgX1dlYktpdEZyYW1lQ2xhc3MgewogV0VCS0lUX0FQSSBHVHlwZQogd2Via2l0
X2ZyYW1lX2dldF90eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQp
OwogCitXRUJLSVRfQVBJIGd1aW50NjQKK3dlYmtpdF9mcmFtZV9nZXRfaWQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRGcmFtZSAgICAgICAqZnJhbWUpOworCiBX
RUJLSVRfQVBJIGdib29sZWFuCiB3ZWJraXRfZnJhbWVfaXNfbWFpbl9mcmFtZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoV2ViS2l0RnJhbWUgICAgICAgKmZyYW1lKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvZG9j
cy93cGUtd2ViZXh0ZW5zaW9ucy0xLjAtc2VjdGlvbnMudHh0IGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvZG9jcy93cGUtd2ViZXh0ZW5zaW9ucy0xLjAt
c2VjdGlvbnMudHh0CmluZGV4IGExZDY4NDRkZGNmZWM2NjkwZDhkMTQxMmI2YWFhNjFjMWYwNTBh
MjQuLmU0NDgyOTZkOWZhNzdhMTFhYTYwMTgzZGZmMDIwZDE0YTgwZGY5OGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL2RvY3Mvd3Bl
LXdlYmV4dGVuc2lvbnMtMS4wLXNlY3Rpb25zLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9kb2NzL3dwZS13ZWJleHRlbnNpb25zLTEuMC1z
ZWN0aW9ucy50eHQKQEAgLTc2LDYgKzc2LDcgQEAgd2Via2l0X3dlYl9lZGl0b3JfZ2V0X3R5cGUK
IDxTRUNUSU9OPgogPEZJTEU+V2ViS2l0RnJhbWU8L0ZJTEU+CiBXZWJLaXRGcmFtZQord2Via2l0
X2ZyYW1lX2dldF9pZAogd2Via2l0X2ZyYW1lX2lzX21haW5fZnJhbWUKIHdlYmtpdF9mcmFtZV9n
ZXRfdXJpCiB3ZWJraXRfZnJhbWVfZ2V0X2pzX2NvbnRleHQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>368435</attachid>
            <date>2019-04-28 14:14:26 -0700</date>
            <delta_ts>2019-05-10 02:40:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197270-20190428161425.patch</filename>
            <type>text/plain</type>
            <size>12208</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0NzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM0MzNlMjUzMDcyODE0ODZh
Y2E5NWE5MDFhZTg3M2M4OTRlYjZlMDMuLmEzYTJkYTMyNTBmOWNjYjNiMTQ1ZjJiMjljZWJjZTI0
MjFiOWFjZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTktMDQtMjggIE1pY2hhZWwg
Q2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtXUEVdW0dUS10g
QWRkIHdlYmtpdF9mcmFtZV9nZXRfaWQoKSBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NzI3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEl0J3MgYXMgc2ltcGxlIGFzIGNhbiBiZToganVzdCBhbiBB
UEkgdG8gcmV0dXJuIHRoZSBJRCBvZiBhIGZyYW1lLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQ6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRGcmFtZS5jcHA6CisgICAgICAgICh3
ZWJraXRfZnJhbWVfZ2V0X2lkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvV2ViS2l0RnJhbWUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS93cGUvV2ViS2l0RnJhbWUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS93cGUvZG9jcy93cGUtd2ViZXh0ZW5zaW9ucy0xLjAtc2VjdGlvbnMudHh0Ogor
CiAyMDE5LTA0LTI3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAg
SW1wcm92ZSBzYWZldHkgb2YgTWFjaE1lc3NhZ2UgY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2Vj
dGlvbnMudHh0CmluZGV4IDIzZWVhYTYyMDc0ZDA1ZDJkYjYxMjQ1YjgwNmFiMzhkNzFmOGNlY2Iu
LmRmNTg1YTJlNmRlZWEzODk0YWNmOTQzMDkzY2UzYTE3YjA3MzUyNzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9u
cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJn
dGstNC4wLXNlY3Rpb25zLnR4dApAQCAtMTU5OSw2ICsxNTk5LDcgQEAgd2Via2l0X3dlYl9lZGl0
b3JfZ2V0X3R5cGUKIDxTRUNUSU9OPgogPEZJTEU+V2ViS2l0RnJhbWU8L0ZJTEU+CiBXZWJLaXRG
cmFtZQord2Via2l0X2ZyYW1lX2dldF9pZAogd2Via2l0X2ZyYW1lX2lzX21haW5fZnJhbWUKIHdl
YmtpdF9mcmFtZV9nZXRfdXJpCiB3ZWJraXRfZnJhbWVfZ2V0X2phdmFzY3JpcHRfZ2xvYmFsX2Nv
bnRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ2xpYi9XZWJLaXRGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0RnJhbWUuY3BwCmluZGV4IDIxYTNmNjM2ZTJhMTNl
NzU2MDA1MWU5YjYwNDRlMWM4NzVkZDE4OWYuLmQwOTM2MGIzYjAyODM4NzEyNGNjYjc2NmU5ZjIx
YTdmOWIxYmM3ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdEZyYW1lLmNwcApAQCAtNTgsNiAr
NTgsMjMgQEAgV2ViRnJhbWUqIHdlYmtpdEZyYW1lR2V0V2ViRnJhbWUoV2ViS2l0RnJhbWUqIGZy
YW1lKQogICAgIHJldHVybiBmcmFtZS0+cHJpdi0+d2ViRnJhbWUuZ2V0KCk7CiB9CiAKKy8qKgor
ICogd2Via2l0X2ZyYW1lX2dldF9pZDoKKyAqIEBmcmFtZTogYSAjV2ViS2l0RnJhbWUKKyAqCisg
KiBHZXRzIHRoZSBwcm9jZXNzLXVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoaXMgI1dlYktpdEZyYW1l
LiBObyBvdGhlcgorICogZnJhbWUgaW4gdGhlIHNhbWUgd2ViIHByb2Nlc3Mgd2lsbCBoYXZlIHRo
ZSBzYW1lIElEOyBob3dldmVyLCBmcmFtZXMKKyAqIGluIG90aGVyIHdlYiBwcm9jZXNzZXMgbWF5
LgorICoKKyAqIFJldHVybnM6IHRoZSBpZGVudGlmaWVyIG9mIEBmcmFtZQorICoKKyAqIFNpbmNl
OiAyLjI2CisgKi8KK2d1aW50NjQgd2Via2l0X2ZyYW1lX2dldF9pZChXZWJLaXRGcmFtZSogZnJh
bWUpCit7CisgICAgcmV0dXJuIGZyYW1lLT5wcml2LT53ZWJGcmFtZS0+ZnJhbWVJRCgpOworfQor
CiAvKioKICAqIHdlYmtpdF9mcmFtZV9pc19tYWluX2ZyYW1lOgogICogQGZyYW1lOiBhICNXZWJL
aXRGcmFtZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvV2ViS2l0RnJhbWUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdEZyYW1lLmgKaW5kZXggYTMxMDA2MGEzODI0Y2I1ZWM2
ODQwMDQwZTRkZWYwMTUyYzczNzJhMy4uNDJmMTYxYjJiMTUzZTdkOTQwYzZkZTU3ZDU3Mzg2ZDFm
NjU2ZjVjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvV2ViS2l0RnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRGcmFtZS5oCkBAIC01Nyw2ICs1Nyw5IEBAIHN0
cnVjdCBfV2ViS2l0RnJhbWVDbGFzcyB7CiBXRUJLSVRfQVBJIEdUeXBlCiB3ZWJraXRfZnJhbWVf
Z2V0X3R5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCk7CiAKK1dF
QktJVF9BUEkgZ3VpbnQ2NAord2Via2l0X2ZyYW1lX2dldF9pZCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKFdlYktpdEZyYW1lICAgICAgICpmcmFtZSk7CisKIFdFQktJVF9B
UEkgZ2Jvb2xlYW4KIHdlYmtpdF9mcmFtZV9pc19tYWluX2ZyYW1lICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChXZWJLaXRGcmFtZSAgICAgICAqZnJhbWUpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRGcmFt
ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvV2Vi
S2l0RnJhbWUuaAppbmRleCBhM2M2Mzk0ZGFkMWYwNzViNzRlYWQzYzZhZDNjOWU2MThlOWQ4NDcx
Li42YTc5YzAzMDZiZWY5Mzg4OGNhMjM5M2JkNTBlMDkzNzhkZTE2NzIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRGcmFt
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3Bl
L1dlYktpdEZyYW1lLmgKQEAgLTU2LDYgKzU2LDkgQEAgc3RydWN0IF9XZWJLaXRGcmFtZUNsYXNz
IHsKIFdFQktJVF9BUEkgR1R5cGUKIHdlYmtpdF9mcmFtZV9nZXRfdHlwZSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICh2b2lkKTsKIAorV0VCS0lUX0FQSSBndWludDY0Cit3ZWJr
aXRfZnJhbWVfZ2V0X2lkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV2Vi
S2l0RnJhbWUgICAgICAgKmZyYW1lKTsKKwogV0VCS0lUX0FQSSBnYm9vbGVhbgogd2Via2l0X2Zy
YW1lX2lzX21haW5fZnJhbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdEZy
YW1lICAgICAgICpmcmFtZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL2RvY3Mvd3BlLXdlYmV4dGVuc2lvbnMtMS4wLXNlY3Rp
b25zLnR4dCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3Bl
L2RvY3Mvd3BlLXdlYmV4dGVuc2lvbnMtMS4wLXNlY3Rpb25zLnR4dAppbmRleCBhMWQ2ODQ0ZGRj
ZmVjNjY5MGQ4ZDE0MTJiNmFhYTYxYzFmMDUwYTI0Li5lNDQ4Mjk2ZDlmYTc3YTExYWE2MDE4M2Rm
ZjAyMGQxNGE4MGRmOThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL3dwZS9kb2NzL3dwZS13ZWJleHRlbnNpb25zLTEuMC1zZWN0aW9ucy50
eHQKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUv
ZG9jcy93cGUtd2ViZXh0ZW5zaW9ucy0xLjAtc2VjdGlvbnMudHh0CkBAIC03Niw2ICs3Niw3IEBA
IHdlYmtpdF93ZWJfZWRpdG9yX2dldF90eXBlCiA8U0VDVElPTj4KIDxGSUxFPldlYktpdEZyYW1l
PC9GSUxFPgogV2ViS2l0RnJhbWUKK3dlYmtpdF9mcmFtZV9nZXRfaWQKIHdlYmtpdF9mcmFtZV9p
c19tYWluX2ZyYW1lCiB3ZWJraXRfZnJhbWVfZ2V0X3VyaQogd2Via2l0X2ZyYW1lX2dldF9qc19j
b250ZXh0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5k
ZXggOWMzMDdkMzllYjhhNjIyZGMyMzJmOGI5YWM3ZWU0ZWQ5MDgyMjdmYi4uZmNlZDNjMWI4ZGRh
MGQzNWRjMmIzZGJiZWU0Y2U1NWY1Y2EzOTRmNiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE5LTA0LTI4ICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBbV1BFXVtH
VEtdIEFkZCB3ZWJraXRfZnJhbWVfZ2V0X2lkKCkgQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTcyNzAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHdhcyBoYXJkLCBidXQgSSBhZGRlZCBhIHRl
c3QgdG8gdmVyaWZ5IHRoYXQgdHdvIGRpZmZlcmVudCBXZWJLaXRGcmFtZXMgb2YgdGhlIHNhbWUK
KyAgICAgICAgV2ViS2l0V2ViUGFnZSByZXR1cm4gdHdvIGRpZmZlcmVudCBmcmFtZSBJRHMuCisK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvRnJhbWVUZXN0LmNwcDoK
KyAgICAgICAgKFdlYktpdFN1YmZyYW1lVGVzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdFN1
YmZyYW1lVGVzdDo6d2lsbFN1Ym1pdEZvcm1DYWxsYmFjayk6CisgICAgICAgIChXZWJLaXRTdWJm
cmFtZVRlc3Q6OnRlc3RTdWJmcmFtZSk6CisgICAgICAgIChyZWdpc3RlclRlc3RzKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEZyYW1lLmNwcDoKKyAgICAg
ICAgKHRlc3RXZWJLaXRGcmFtZVN1YmZyYW1lKToKKyAgICAgICAgKGJlZm9yZUFsbCk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL3Jlc291cmNlcy9mb3JtLWluLWZy
YW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xp
Yi9yZXNvdXJjZXMvd2Via2l0Z2xpYi10ZXN0cy5ncmVzb3VyY2UueG1sOgorCiAyMDE5LTA0LTI3
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgW1dLVFJdIE1vdmUg
dGVzdCB0aW1lb3V0IGhhbmRsaW5nIHRvIHRoZSBVSVByb2Nlc3MKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9GcmFtZVRlc3QuY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL0ZyYW1lVGVzdC5jcHAKaW5kZXggMmU2N2MwYTdh
MzJmMjIxZmUwZDYyYjdhZDQ0ZTQyMDFhYzEwMjNjMi4uOTgwMjE1YjdmZjIzZTAzM2E1MTMzN2Jl
MTdiMDY0MmQyYTcyZWRiOSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRHTGliL0ZyYW1lVGVzdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRHTGliL0ZyYW1lVGVzdC5jcHAKQEAgLTEzMSw2ICsxMzEsNDkgQEAgcHJpdmF0ZToKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisgICAgc3RhdGljIHZvaWQgd2lsbFN1Ym1pdEZv
cm1DYWxsYmFjayhXZWJLaXRXZWJQYWdlKiBwYWdlLCBXZWJLaXRET01FbGVtZW50KiwgV2ViS2l0
Rm9ybVN1Ym1pc3Npb25TdGVwLCBXZWJLaXRGcmFtZSogc291cmNlRnJhbWUsIFdlYktpdEZyYW1l
KiwgR1B0ckFycmF5KiwgR1B0ckFycmF5KiwgZ3BvaW50ZXIgdXNlckRhdGEpCisgICAgeworICAg
ICAgICAvLyBUaGUgZm9ybSBpcyBzdWJtaXR0ZWQgZnJvbSBhIHN1YmZyYW1lLiBJdCBzaG91bGQg
aGF2ZSBhIGRpZmZlcmVudCBJRCB0aGFuIHRoZSBtYWluIGZyYW1lLgorICAgICAgICBXZWJLaXRG
cmFtZSogbWFpbkZyYW1lID0gd2Via2l0X3dlYl9wYWdlX2dldF9tYWluX2ZyYW1lKHBhZ2UpOwor
ICAgICAgICBnX2Fzc2VydF9jbXB1aW50KHdlYmtpdF9mcmFtZV9nZXRfaWQobWFpbkZyYW1lKSwg
IT0sIHdlYmtpdF9mcmFtZV9nZXRfaWQoc291cmNlRnJhbWUpKTsKKworICAgICAgICBhdXRvKiB0
ZXN0ID0gc3RhdGljX2Nhc3Q8V2ViS2l0RnJhbWVUZXN0Kj4odXNlckRhdGEpOworICAgICAgICBn
X21haW5fbG9vcF9xdWl0KHRlc3QtPm1fbWFpbkxvb3AuZ2V0KCkpOworICAgIH0KKworICAgIGJv
b2wgdGVzdFN1YmZyYW1lKFdlYktpdFdlYlBhZ2UqIHBhZ2UpCisgICAgeworICAgICAgICBXZWJL
aXRGcmFtZSogbWFpbkZyYW1lID0gd2Via2l0X3dlYl9wYWdlX2dldF9tYWluX2ZyYW1lKHBhZ2Up
OworICAgICAgICBnX2Fzc2VydF90cnVlKFdFQktJVF9JU19GUkFNRShtYWluRnJhbWUpKTsKKwor
ICAgICAgICBHUmVmUHRyPEpTQ0NvbnRleHQ+IGpzQ29udGV4dCA9IGFkb3B0R1JlZih3ZWJraXRf
ZnJhbWVfZ2V0X2pzX2NvbnRleHQobWFpbkZyYW1lKSk7CisgICAgICAgIGdfYXNzZXJ0X3RydWUo
SlNDX0lTX0NPTlRFWFQoanNDb250ZXh0LmdldCgpKSk7CisgICAgICAgIGFzc2VydE9iamVjdElz
RGVsZXRlZFdoZW5UZXN0RmluaXNoZXMoR19PQkpFQ1QoanNDb250ZXh0LmdldCgpKSk7CisKKyAg
ICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4ganNQYXJlbnREb2N1bWVudCA9IGFkb3B0R1JlZihqc2Nf
Y29udGV4dF9nZXRfdmFsdWUoanNDb250ZXh0LmdldCgpLCAiZG9jdW1lbnQiKSk7CisgICAgICAg
IGdfYXNzZXJ0X3RydWUoSlNDX0lTX1ZBTFVFKGpzUGFyZW50RG9jdW1lbnQuZ2V0KCkpKTsKKyAg
ICAgICAgYXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChqc1Bh
cmVudERvY3VtZW50LmdldCgpKSk7CisKKyAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gc3ViZnJh
bWUgPSBhZG9wdEdSZWYoanNjX3ZhbHVlX29iamVjdF9pbnZva2VfbWV0aG9kKGpzUGFyZW50RG9j
dW1lbnQuZ2V0KCksICJnZXRFbGVtZW50QnlJZCIsIEdfVFlQRV9TVFJJTkcsICJmcmFtZSIsIEdf
VFlQRV9OT05FKSk7CisgICAgICAgIGdfYXNzZXJ0X3RydWUoSlNDX0lTX1ZBTFVFKHN1YmZyYW1l
LmdldCgpKSk7CisgICAgICAgIGFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0RmluaXNoZXMo
R19PQkpFQ1Qoc3ViZnJhbWUuZ2V0KCkpKTsKKworICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiBj
b250ZW50V2luZG93ID0gYWRvcHRHUmVmKGpzY192YWx1ZV9vYmplY3RfZ2V0X3Byb3BlcnR5KHN1
YmZyYW1lLmdldCgpLCAiY29udGVudFdpbmRvdyIpKTsKKyAgICAgICAgZ19hc3NlcnRfdHJ1ZShK
U0NfSVNfVkFMVUUoY29udGVudFdpbmRvdy5nZXQoKSkpOworICAgICAgICBhc3NlcnRPYmplY3RJ
c0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNUKGNvbnRlbnRXaW5kb3cuZ2V0KCkpKTsK
KworICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiB1bmRlZmluZWQgPSBhZG9wdEdSZWYoanNjX3Zh
bHVlX29iamVjdF9pbnZva2VfbWV0aG9kKGNvbnRlbnRXaW5kb3cuZ2V0KCksICJwb3N0TWVzc2Fn
ZSIsIEdfVFlQRV9TVFJJTkcsICJzdWJtaXQgdGhlIGZvcm0hIiwgR19UWVBFX1NUUklORywgIioi
LCBHX1RZUEVfTk9ORSkpOworICAgICAgICBnX2Fzc2VydF90cnVlKEpTQ19JU19WQUxVRSh1bmRl
ZmluZWQuZ2V0KCkpKTsKKyAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfdW5kZWZp
bmVkKHVuZGVmaW5lZC5nZXQoKSkpOworCisgICAgICAgIGdfc2lnbmFsX2Nvbm5lY3QocGFnZSwg
IndpbGwtc3VibWl0LWZvcm0iLCByZWludGVycHJldF9jYXN0PEdDYWxsYmFjaz4od2lsbFN1Ym1p
dEZvcm1DYWxsYmFjayksIHRoaXMpOworCisgICAgICAgIG1fbWFpbkxvb3AgPSBhZG9wdEdSZWYo
Z19tYWluX2xvb3BfbmV3KG51bGxwdHIsIEZBTFNFKSk7CisgICAgICAgIGdfbWFpbl9sb29wX3J1
bihtX21haW5Mb29wLmdldCgpKTsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKICAg
ICBib29sIHJ1blRlc3QoY29uc3QgY2hhciogdGVzdE5hbWUsIFdlYktpdFdlYlBhZ2UqIHBhZ2Up
IG92ZXJyaWRlCiAgICAgewogICAgICAgICBpZiAoIXN0cmNtcCh0ZXN0TmFtZSwgIm1haW4tZnJh
bWUiKSkKQEAgLTE0MSwxMCArMTg0LDE0IEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm4g
dGVzdEphdmFTY3JpcHRDb250ZXh0KHBhZ2UpOwogICAgICAgICBpZiAoIXN0cmNtcCh0ZXN0TmFt
ZSwgImphdmFzY3JpcHQtdmFsdWVzIikpCiAgICAgICAgICAgICByZXR1cm4gdGVzdEphdmFTY3Jp
cHRWYWx1ZXMocGFnZSk7CisgICAgICAgIGlmICghc3RyY21wKHRlc3ROYW1lLCAic3ViZnJhbWUi
KSkKKyAgICAgICAgICAgIHJldHVybiB0ZXN0U3ViZnJhbWUocGFnZSk7CiAKICAgICAgICAgZ19h
c3NlcnRfbm90X3JlYWNoZWQoKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KKworICAg
IEdSZWZQdHI8R01haW5Mb29wPiBtX21haW5Mb29wOwogfTsKIAogc3RhdGljIHZvaWQgX19hdHRy
aWJ1dGVfXygoY29uc3RydWN0b3IpKSByZWdpc3RlclRlc3RzKCkKQEAgLTE1Myw0ICsyMDAsNSBA
QCBzdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZV9fKChjb25zdHJ1Y3RvcikpIHJlZ2lzdGVyVGVzdHMo
KQogICAgIFJFR0lTVEVSX1RFU1QoV2ViS2l0RnJhbWVUZXN0LCAiV2ViS2l0RnJhbWUvdXJpIik7
CiAgICAgUkVHSVNURVJfVEVTVChXZWJLaXRGcmFtZVRlc3QsICJXZWJLaXRGcmFtZS9qYXZhc2Ny
aXB0LWNvbnRleHQiKTsKICAgICBSRUdJU1RFUl9URVNUKFdlYktpdEZyYW1lVGVzdCwgIldlYktp
dEZyYW1lL2phdmFzY3JpcHQtdmFsdWVzIik7CisgICAgUkVHSVNURVJfVEVTVChXZWJLaXRGcmFt
ZVRlc3QsICJXZWJLaXRGcmFtZS9zdWJmcmFtZSIpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RGcmFtZS5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEZyYW1lLmNwcAppbmRleCBmNmQyOTdmMmU0OWU4
YjQyZWUzODNiMTgyZWQ0ZDhiODQ3NTE1MTVmLi42NWRjZDkyYmQ5YTZhYjk2ODM1YjA1YzE4MzU2
NzVlMTk2MmRkNDE3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dEdMaWIvVGVzdEZyYW1lLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dEdMaWIvVGVzdEZyYW1lLmNwcApAQCAtNDIsMTIgKzQyLDE5IEBAIHN0YXRpYyB2b2lkIHRlc3RX
ZWJLaXRGcmFtZUphdmFTY3JpcHRWYWx1ZXMoV2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50
ZXIpCiAgICAgZ19hc3NlcnRfdHJ1ZSh0ZXN0LT5ydW5XZWJQcm9jZXNzVGVzdCgiV2ViS2l0RnJh
bWUiLCAiamF2YXNjcmlwdC12YWx1ZXMiLCB0ZXN0SFRNTCkpOwogfQogCitzdGF0aWMgdm9pZCB0
ZXN0V2ViS2l0RnJhbWVTdWJmcmFtZShXZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikK
K3sKKyAgICBzdGF0aWMgY29uc3QgY2hhciogdGVzdEhUTUwgPSAiPGh0bWw+PGJvZHk+PGlmcmFt
ZSBzcmM9J3Jlc291cmNlOi8vL29yZy93ZWJraXQvZ2xpYi90ZXN0cy9mb3JtLWluLWZyYW1lLmh0
bWwnIGlkPSdmcmFtZSc+PC9pZnJhbWU+PC9ib2R5PjwvaHRtbD4iOworICAgIGdfYXNzZXJ0X3Ry
dWUodGVzdC0+cnVuV2ViUHJvY2Vzc1Rlc3QoIldlYktpdEZyYW1lIiwgInN1YmZyYW1lIiwgdGVz
dEhUTUwpKTsKK30KKwogdm9pZCBiZWZvcmVBbGwoKQogewogICAgIFdlYlZpZXdUZXN0OjphZGQo
IldlYktpdEZyYW1lIiwgIm1haW4tZnJhbWUiLCB0ZXN0V2ViS2l0RnJhbWVNYWluRnJhbWUpOwog
ICAgIFdlYlZpZXdUZXN0OjphZGQoIldlYktpdEZyYW1lIiwgInVyaSIsIHRlc3RXZWJLaXRGcmFt
ZVVSSSk7CiAgICAgV2ViVmlld1Rlc3Q6OmFkZCgiV2ViS2l0RnJhbWUiLCAiamF2YXNjcmlwdC1j
b250ZXh0IiwgdGVzdFdlYktpdEZyYW1lSmF2YVNjcmlwdENvbnRleHQpOwogICAgIFdlYlZpZXdU
ZXN0OjphZGQoIldlYktpdEZyYW1lIiwgImphdmFzY3JpcHQtdmFsdWVzIiwgdGVzdFdlYktpdEZy
YW1lSmF2YVNjcmlwdFZhbHVlcyk7CisgICAgV2ViVmlld1Rlc3Q6OmFkZCgiV2ViS2l0RnJhbWUi
LCAic3ViZnJhbWUiLCB0ZXN0V2ViS2l0RnJhbWVTdWJmcmFtZSk7CiB9CiAKIHZvaWQgYWZ0ZXJB
bGwoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL3Jl
c291cmNlcy9mb3JtLWluLWZyYW1lLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdEdMaWIvcmVzb3VyY2VzL2Zvcm0taW4tZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZWM3ZDE2
OTNkOWNmYmRiODhlNWY1YjdjZmM0NWQ4MWRjZTk5NDkwCi0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL3Jlc291cmNlcy9mb3JtLWluLWZyYW1l
Lmh0bWwKQEAgLTAsMCArMSw4IEBACis8Zm9ybSBpZD0nZm9ybSc+Cis8L2Zvcm0+Cis8c2NyaXB0
PgorICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZXZlbnQgPT4geworICAg
ICAgICBpZiAoZXZlbnQuZGF0YSA9PT0gJ3N1Ym1pdCB0aGUgZm9ybSEnKQorICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zvcm0nKS5zdWJtaXQoKTsKKyAgICB9LCBmYWxzZSk7
Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
R0xpYi9yZXNvdXJjZXMvd2Via2l0Z2xpYi10ZXN0cy5ncmVzb3VyY2UueG1sIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL3Jlc291cmNlcy93ZWJraXRnbGliLXRlc3RzLmdy
ZXNvdXJjZS54bWwKaW5kZXggZWU1NzFkNzg4YzBlMzRiZDdiMzAxYTI3ODk5YTY3NmI3Mzk2MjAx
ZC4uYWU2NDJhN2IzMjg3OWQxZDA0MzQ4MDFiYjVkYTkyM2U4Y2NhYzg3MyAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL3Jlc291cmNlcy93ZWJraXRnbGli
LXRlc3RzLmdyZXNvdXJjZS54bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRHTGliL3Jlc291cmNlcy93ZWJraXRnbGliLXRlc3RzLmdyZXNvdXJjZS54bWwKQEAgLTIsNiAr
Miw3IEBACiA8Z3Jlc291cmNlcz4KICAgPGdyZXNvdXJjZSBwcmVmaXg9Ii9vcmcvd2Via2l0L2ds
aWIvdGVzdHMvIj4KICAgICA8ZmlsZSBhbGlhcz0iYm9yaW5nLmh0bWwiPlRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9yZXNvdXJjZXMvYm9yaW5nLmh0bWw8L2ZpbGU+CisgICAg
PGZpbGUgYWxpYXM9ImZvcm0taW4tZnJhbWUuaHRtbCI+VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRHTGliL3Jlc291cmNlcy9mb3JtLWluLWZyYW1lLmh0bWw8L2ZpbGU+CiAgICAgPGZp
bGUgYWxpYXM9ImxpbmstdGl0bGUuanMiPlRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
R0xpYi9yZXNvdXJjZXMvbGluay10aXRsZS5qczwvZmlsZT4KICAgPC9ncmVzb3VyY2U+CiA8L2dy
ZXNvdXJjZXM+Cg==
</data>
<flag name="review"
          id="384731"
          type_id="1"
          status="+"
          setter="cgarcia"
    />
    <flag name="commit-queue"
          id="385627"
          type_id="3"
          status="-"
          setter="cgarcia"
    />
          </attachment>
      

    </bug>

</bugzilla>