<?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>146306</bug_id>
          
          <creation_ts>2015-06-24 19:59:54 -0700</creation_ts>
          <short_desc>WebView and WebPage URLs not updated after URL is modified by InjectedBundlePageResourceLoadClient::willSendRequestForFrame</short_desc>
          <delta_ts>2016-10-14 02:04: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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=163436</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>163389</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Michael Catanzaro">mcatanzaro</assigned_to>
          <cc>ap</cc>
    
    <cc>bugzilla</cc>
    
    <cc>cgarcia</cc>
    
    <cc>darin</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mitz</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1104584</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-06-24 19:59:54 -0700</bug_when>
    <thetext>InjectedBundlePageResourceLoadClient::willSendRequestForFrame() allows clients to modify the ResourceRequest passed to it. We rely on this in the GTK+ API in order to allow a web extension to modify URLs before they are loaded. For example, Epiphany uses this to strip out query parameters that are well-known to be used for tracking users. This mostly works fine; the problem is that our WebKitWebPage and WebKitWebView objects&apos; URI properties are not updated when this happens, so applications wind up displaying to users the original URL rather than what actually hit the network.

I will attach one possible solution. I probably should also add a cross-platform test, since it looks like the Mac port allows this as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104586</commentid>
    <comment_count>1</comment_count>
      <attachid>255538</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-06-24 20:09:44 -0700</bug_when>
    <thetext>Created attachment 255538
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104607</commentid>
    <comment_count>2</comment_count>
      <attachid>255538</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-06-24 23:59:43 -0700</bug_when>
    <thetext>Comment on attachment 255538
Patch

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

&gt; Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:204
&gt; +    webkitWebPageSetURI(webPage, webkit_uri_request_get_uri(request.get()));

I don&apos;t think this is correct, you are setting the page URI as the URL of any subresource. willSendRequestForFrame is not only called for the main resource, but for all resources.

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:184
&gt; +    if (request.url() != originalURL) {

The request can be null after willSendRequest, which will cancel the load. We don&apos;t want to send the DidChangeProvisionalURLForFrame in that case.

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:188
&gt; +        if (FrameLoader* frameLoader = loader-&gt;frameLoader()) {
&gt; +            if (auto documentLoader = static_cast&lt;WebDocumentLoader*&gt;(frameLoader-&gt;provisionalDocumentLoader()))
&gt; +                webPage-&gt;send(Messages::WebPageProxy::DidChangeProvisionalURLForFrame(m_frame-&gt;frameID(), documentLoader-&gt;navigationID(), request.url().string()));
&gt; +        }

And the same happens here, you are notifying the UI process for every subresource. Also, I don&apos;t think this is the right place nor the right way, since this could not be in sync with the ResourceRequest of the DocumentLoader. I think the message should always be sent with the current value of the DocumentLoader. So, DocumentLoader::startLoadingMainResource() might be the right place, right after calling willSendRequest, using frameLoader()-&gt;client().dispatchDidChangeProvisionalURL().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238114</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-10-09 14:10:20 -0700</bug_when>
    <thetext>I just added HTTPS Everywhere support to Epiphany today. This is causing odd results, we show e.g. http://www.imgur.com with a secure icon, because it&apos;s really displaying https://www.imgur.com and we really are using TLS, but the URI property of the WebKitWebView is set wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238167</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-10-09 20:29:48 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; So, DocumentLoader::startLoadingMainResource()
&gt; might be the right place, right after calling willSendRequest, using
&gt; frameLoader()-&gt;client().dispatchDidChangeProvisionalURL().

I was having trouble with this. Turns out that in my test case (&quot;http://imgur.com&quot;) is actually not called by DocumentLoader at all, it&apos;s called by SubresourceLoader. Yes, for the main resource! So that&apos;s strange.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239160</commentid>
    <comment_count>5</comment_count>
    <who name="Bastien Nocera">bugzilla</who>
    <bug_when>2016-10-11 21:10:12 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #2)
&gt; &gt; So, DocumentLoader::startLoadingMainResource()
&gt; &gt; might be the right place, right after calling willSendRequest, using
&gt; &gt; frameLoader()-&gt;client().dispatchDidChangeProvisionalURL().
&gt; 
&gt; I was having trouble with this. Turns out that in my test case
&gt; (&quot;http://imgur.com&quot;) is actually not called by DocumentLoader at all, it&apos;s
&gt; called by SubresourceLoader. Yes, for the main resource! So that&apos;s strange.

Is this what also causes the &quot;utm&quot; tracking not being removed from the URLs shown in epiphany?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239319</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-10-12 09:31:41 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Is this what also causes the &quot;utm&quot; tracking not being removed from the URLs
&gt; shown in epiphany?

Yes, I will try to fix it soon because it&apos;s important now for any site that triggers the HTTPS Everywhere ruleset, but I need to understand the code here more. It&apos;s very confusing that the willSendRequest load delegate is called from SubresourceLoader even for the main resource. There is code in DocumentLoader to call it for the main resource, but it&apos;s not ever hit when loading http://imgur.com, my test case. There is also a DocumentLoader::willSendRequest function that does get called, and which confused me for a while, but that function doesn&apos;t call the load delegate of the same name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239748</commentid>
    <comment_count>7</comment_count>
      <attachid>291474</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-10-13 05:45:21 -0700</bug_when>
    <thetext>Created attachment 291474
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239756</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-10-13 06:57:23 -0700</bug_when>
    <thetext>Forgot to say, this patch includes new cross-platform wk2 unit test, but I don&apos;t have a mac to add the new files to the xcode file. Fortunately it doesn&apos;t break the build, so someone with a mac can add them in a follow up commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239765</commentid>
    <comment_count>9</comment_count>
      <attachid>291474</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-10-13 07:46:21 -0700</bug_when>
    <thetext>Comment on attachment 291474
Patch

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

Thanks very much for working on this.

&gt; Tools/TestWebKitAPI/Tests/WebKit2/ProvisionalURLAfterWillSendRequestCallback_Bundle.cpp:46
&gt; +    static WKURLRequestRef willSendRequestForFrame(WKBundlePageRef, WKBundleFrameRef frame, uint64_t resourceIdentifier, WKURLRequestRef request, WKURLResponseRef redirectResponse, const void *clientInfo)

The uri property of WebKitWebPage in the GTK+ API was also broken, so can you check in didSendRequestForFrame that the URL of WKBundlePage has actually changed (if it&apos;s the main frame)? I guess it could be done with WKBundlePageGetMainFrame -&gt; WKBundleFrameCopyURL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239779</commentid>
    <comment_count>10</comment_count>
      <attachid>291474</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-10-13 08:31:06 -0700</bug_when>
    <thetext>Comment on attachment 291474
Patch

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

&gt;&gt; Tools/TestWebKitAPI/Tests/WebKit2/ProvisionalURLAfterWillSendRequestCallback_Bundle.cpp:46
&gt;&gt; +    static WKURLRequestRef willSendRequestForFrame(WKBundlePageRef, WKBundleFrameRef frame, uint64_t resourceIdentifier, WKURLRequestRef request, WKURLResponseRef redirectResponse, const void *clientInfo)
&gt; 
&gt; The uri property of WebKitWebPage in the GTK+ API was also broken, so can you check in didSendRequestForFrame that the URL of WKBundlePage has actually changed (if it&apos;s the main frame)? I guess it could be done with WKBundlePageGetMainFrame -&gt; WKBundleFrameCopyURL.

The frame is a parameter of all callbacks, so we can just use that. But here the URL hasn&apos;t changed yet, we would need to check it in didCommitLoad callback. Bu the URI property of WebKitWebPage wouldn&apos;t be affected by this, we set it manually. So, I think we should connect to didcommitLoad and set it there. It&apos;s actually a different bug, so for the GTK+ issue we can file a new bug and I¡&apos;ll submit a new patch with the gtk+ specific unit test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239787</commentid>
    <comment_count>11</comment_count>
      <attachid>291485</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-10-13 08:54:33 -0700</bug_when>
    <thetext>Created attachment 291485
Updated patch

Check also the injected bundle frame url in the unit test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239790</commentid>
    <comment_count>12</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-10-13 09:05:56 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; The frame is a parameter of all callbacks, so we can just use that. But here
&gt; the URL hasn&apos;t changed yet, we would need to check it in didCommitLoad
&gt; callback. Bu the URI property of WebKitWebPage wouldn&apos;t be affected by this,
&gt; we set it manually. So, I think we should connect to didcommitLoad and set
&gt; it there. It&apos;s actually a different bug, so for the GTK+ issue we can file a
&gt; new bug and I¡&apos;ll submit a new patch with the gtk+ specific unit test.

OK thanks. Bug #163389.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239811</commentid>
    <comment_count>13</comment_count>
      <attachid>291485</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-10-13 10:00:45 -0700</bug_when>
    <thetext>Comment on attachment 291485
Updated patch

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

This change seems to be causing the Acid3 test to fail on the bots, so please check into that before landing it.

&gt; Source/WebCore/loader/DocumentLoader.cpp:233
&gt; +    bool notifyProvisionalURLChange = false;

For a boolean we typically don’t want to use a verb phrase. So better names for this would be shouldNotifyAboutProvisionalURLChange or didChangeProvisionalURL.

&gt; Source/WebCore/loader/DocumentLoader.cpp:236
&gt; +    else if (isLoadingMainResource() &amp;&amp; !m_request.url().isEmpty() &amp;&amp; req.url() != m_request.url())

I must admit I don’t understand why the m_request.url().isEmpty() check is correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239812</commentid>
    <comment_count>14</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-10-13 10:03:36 -0700</bug_when>
    <thetext>No, the Acid3 failure seems to be happening before the patch also, and is not due to this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239816</commentid>
    <comment_count>15</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-10-13 10:14:04 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; I must admit I don’t understand why the m_request.url().isEmpty() check is
&gt; correct.

If it&apos;s empty then the load is going to be canceled. I guess it&apos;s pointless to add a new didChangeProvisionalURL callback in that case. Is that right, Carlos?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239817</commentid>
    <comment_count>16</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-10-13 10:16:17 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; If it&apos;s empty then the load is going to be canceled. I guess it&apos;s pointless
&gt; to add a new didChangeProvisionalURL callback in that case. Is that right,
&gt; Carlos?

Nope, I&apos;m wrong as usual. If that was the point of this code, then it would be checking req.url(), not m_request.url().

How could this code ever be reached if m_request.url() is empty?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1240115</commentid>
    <comment_count>17</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-10-13 23:00:51 -0700</bug_when>
    <thetext>No, the empty check is simply not needed, I forgot to remove it, because I started with a different approach in ResourceRequest where it was needed, and forgot to remove it when I moved it to the DocumentLoader.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1240122</commentid>
    <comment_count>18</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-10-13 23:32:25 -0700</bug_when>
    <thetext>Committed r207325: &lt;http://trac.webkit.org/changeset/207325&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1240123</commentid>
    <comment_count>19</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-10-13 23:32:57 -0700</bug_when>
    <thetext>Darin, could you please add the new files to XCode in a follow up commit?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1240165</commentid>
    <comment_count>20</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-10-14 01:52:12 -0700</bug_when>
    <thetext>Adding unit tests for this in the GTK+ port I&apos;ve noticed that this still doesn&apos;t work when a request is modified by willSendRequest after a redirect. The thing is that DocumentLoader::setRequest is not called after willSendRequest is called for a redirect. The first willSendRequest happens before DocumentLoader::startLoadingMainResource, that calls setRequest, but the second one happens after DocumentLoader::redirectReceived() and then the request is never updated again. I&apos;ll file a new bug report.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1240168</commentid>
    <comment_count>21</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-10-14 01:57:52 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; Adding unit tests for this in the GTK+ port I&apos;ve noticed that this still
&gt; doesn&apos;t work when a request is modified by willSendRequest after a redirect.
&gt; The thing is that DocumentLoader::setRequest is not called after
&gt; willSendRequest is called for a redirect. The first willSendRequest happens
&gt; before DocumentLoader::startLoadingMainResource, that calls setRequest, but
&gt; the second one happens after DocumentLoader::redirectReceived() and then the
&gt; request is never updated again. I&apos;ll file a new bug report.

I can update the Xcode files.
Should we wait for 163436 or is it ok to add them now?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1240179</commentid>
    <comment_count>22</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-10-14 02:04:52 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; (In reply to comment #20)
&gt; &gt; Adding unit tests for this in the GTK+ port I&apos;ve noticed that this still
&gt; &gt; doesn&apos;t work when a request is modified by willSendRequest after a redirect.
&gt; &gt; The thing is that DocumentLoader::setRequest is not called after
&gt; &gt; willSendRequest is called for a redirect. The first willSendRequest happens
&gt; &gt; before DocumentLoader::startLoadingMainResource, that calls setRequest, but
&gt; &gt; the second one happens after DocumentLoader::redirectReceived() and then the
&gt; &gt; request is never updated again. I&apos;ll file a new bug report.
&gt; 
&gt; I can update the Xcode files.

Thanks! Now that you are on it . . . I also need help with that in bug #160497, hopefully the patch still applies.

&gt; Should we wait for 163436 or is it ok to add them now?

It&apos;s ok to do it now, bug #163436 is related but a different bug in the end.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255538</attachid>
            <date>2015-06-24 20:09:44 -0700</date>
            <delta_ts>2016-10-13 05:45:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146306-20150624220859.patch</filename>
            <type>text/plain</type>
            <size>7014</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1OTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNjlmMTUzMTM4NmY1Zjky
MmM4MmU4ZjY4YTA5MzFkNjMxNjBkZjg3Yy4uODA0OGYzZTc5YjUwNzgyYmUwYTA5YTU3OTg5MTlk
ZTYxNWQ2MzNlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA2LTI0ICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBXZWJWaWV3
IGFuZCBXZWJQYWdlIFVSTHMgbm90IHVwZGF0ZWQgYWZ0ZXIgVVJMIGlzIG1vZGlmaWVkIGJ5IElu
amVjdGVkQnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVudDo6d2lsbFNlbmRSZXF1ZXN0Rm9yRnJh
bWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjMw
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2UuY3BwOgorICAgICAg
ICAod2lsbFNlbmRSZXF1ZXN0Rm9yRnJhbWUpOiBVcGRhdGUgdGhlIFVSSSBwcm9wZXJ0eSBvZiB0
aGUgV2ViS2l0V2ViUGFnZSB3aGVuIHRoaXMgaGFwcGVucy4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KTogU2VuZAor
ICAgICAgICBEaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lIG1lc3NhZ2UsIHdoaWNoIHdp
bGwgZXZlbnR1YWxseSBjYXVzZSB0aGUgVVJJIHByb3BlcnR5IG9mIHRoZQorICAgICAgICBXZWJL
aXRXZWJWaWV3IHRvIGJlIHVwZGF0ZWQuCisKIDIwMTUtMDYtMjQgIE1hdHQgUmFqY2EgIDxtcmFq
Y2FAYXBwbGUuY29tPgogCiAgICAgICAgIE1lZGlhU2Vzc2lvbjogcHJvcGFnYXRlIE1lZGlhU2Vz
c2lvbk1ldGFkYXRhIHRvIFdlYlBhZ2VQcm94eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2UuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBh
Z2UuY3BwCmluZGV4IDc0NzI2MThmOGE4MGZiM2RiOWJjYzFmMDc0ODkxYTE3ZDAxMDI4OGYuLjJm
YWM2NzVmYTA3ZTQ5Y2E1NGUwYjQyZDVkY2Q2OTQ0NTA5NjdkNzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJQYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvV2ViS2l0V2ViUGFnZS5jcHAKQEAgLTE5MSwxNSArMTkxLDE4IEBAIHN0YXRpYyB2b2lkIGRp
ZEluaXRpYXRlTG9hZEZvclJlc291cmNlKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZy
YW1lUmVmIGZyCiAKIHN0YXRpYyBXS1VSTFJlcXVlc3RSZWYgd2lsbFNlbmRSZXF1ZXN0Rm9yRnJh
bWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYsIHVpbnQ2NF90IGlkZW50
aWZpZXIsIFdLVVJMUmVxdWVzdFJlZiB3a1JlcXVlc3QsIFdLVVJMUmVzcG9uc2VSZWYgd2tSZWRp
cmVjdFJlc3BvbnNlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogeworICAgIFdlYktpdFdlYlBh
Z2UqIHdlYlBhZ2UgPSBXRUJLSVRfV0VCX1BBR0UoY2xpZW50SW5mbyk7CiAgICAgR1JlZlB0cjxX
ZWJLaXRVUklSZXF1ZXN0PiByZXF1ZXN0ID0gYWRvcHRHUmVmKHdlYmtpdFVSSVJlcXVlc3RDcmVh
dGVGb3JSZXNvdXJjZVJlcXVlc3QodG9JbXBsKHdrUmVxdWVzdCktPnJlc291cmNlUmVxdWVzdCgp
KSk7CiAgICAgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNvdXJjZVJlc3BvbnNl
ID0gdG9JbXBsKHdrUmVkaXJlY3RSZXNwb25zZSktPnJlc291cmNlUmVzcG9uc2UoKTsKICAgICBH
UmVmUHRyPFdlYktpdFVSSVJlc3BvbnNlPiByZWRpcmVjdFJlc3BvbnNlID0gIXJlZGlyZWN0UmVz
b3VyY2VSZXNwb25zZS5pc051bGwoKSA/IGFkb3B0R1JlZih3ZWJraXRVUklSZXNwb25zZUNyZWF0
ZUZvclJlc291cmNlUmVzcG9uc2UocmVkaXJlY3RSZXNvdXJjZVJlc3BvbnNlKSkgOiBudWxscHRy
OwogCiAgICAgZ2Jvb2xlYW4gcmV0dXJuVmFsdWU7Ci0gICAgZ19zaWduYWxfZW1pdChXRUJLSVRf
V0VCX1BBR0UoY2xpZW50SW5mbyksIHNpZ25hbHNbU0VORF9SRVFVRVNUXSwgMCwgcmVxdWVzdC5n
ZXQoKSwgcmVkaXJlY3RSZXNwb25zZS5nZXQoKSwgJnJldHVyblZhbHVlKTsKKyAgICBnX3NpZ25h
bF9lbWl0KHdlYlBhZ2UsIHNpZ25hbHNbU0VORF9SRVFVRVNUXSwgMCwgcmVxdWVzdC5nZXQoKSwg
cmVkaXJlY3RSZXNwb25zZS5nZXQoKSwgJnJldHVyblZhbHVlKTsKICAgICBpZiAocmV0dXJuVmFs
dWUpCiAgICAgICAgIHJldHVybiAwOwogCisgICAgd2Via2l0V2ViUGFnZVNldFVSSSh3ZWJQYWdl
LCB3ZWJraXRfdXJpX3JlcXVlc3RfZ2V0X3VyaShyZXF1ZXN0LmdldCgpKSk7CisKICAgICBSZXNv
dXJjZVJlcXVlc3QgcmVzb3VyY2VSZXF1ZXN0OwogICAgIHdlYmtpdFVSSVJlcXVlc3RHZXRSZXNv
dXJjZVJlcXVlc3QocmVxdWVzdC5nZXQoKSwgcmVzb3VyY2VSZXF1ZXN0KTsKICAgICByZXNvdXJj
ZVJlcXVlc3Quc2V0SW5pdGlhdGluZ1BhZ2VJRCh0b0ltcGwocGFnZSktPnBhZ2VJRCgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggNjgzZDJhMDM4MjQ2ZGJiOTg2ZDc3
OGEyNDM3MjQxMGFjYmFmZmQwNi4uODJhNjU0OWUxZGQ1OWFhYmIyYzJlMjUyYzUxZjIxNjI1NTZk
ZGM1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTE3MSwxMyArMTcx
LDIyIEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmFzc2lnbklkZW50aWZpZXJUb0luaXRp
YWxSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpCiAgICAgd2ViUGFnZS0+YWRkUmVzb3VyY2VS
ZXF1ZXN0KGlkZW50aWZpZXIsIHJlcXVlc3QpOwogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdChEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlz
cGF0Y2hXaWxsU2VuZFJlcXVlc3QoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpCiB7CiAgICAgV2ViUGFnZSogd2ViUGFnZSA9IG1fZnJh
bWUtPnBhZ2UoKTsKICAgICBpZiAoIXdlYlBhZ2UpCiAgICAgICAgIHJldHVybjsKIAorICAgIGF1
dG8gb3JpZ2luYWxVUkwgPSByZXF1ZXN0LnVybCgpOworCiAgICAgd2ViUGFnZS0+aW5qZWN0ZWRC
dW5kbGVSZXNvdXJjZUxvYWRDbGllbnQoKS53aWxsU2VuZFJlcXVlc3RGb3JGcmFtZSh3ZWJQYWdl
LCBtX2ZyYW1lLCBpZGVudGlmaWVyLCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKKworICAg
IGlmIChyZXF1ZXN0LnVybCgpICE9IG9yaWdpbmFsVVJMKSB7CisgICAgICAgIGlmIChGcmFtZUxv
YWRlciogZnJhbWVMb2FkZXIgPSBsb2FkZXItPmZyYW1lTG9hZGVyKCkpIHsKKyAgICAgICAgICAg
IGlmIChhdXRvIGRvY3VtZW50TG9hZGVyID0gc3RhdGljX2Nhc3Q8V2ViRG9jdW1lbnRMb2FkZXIq
PihmcmFtZUxvYWRlci0+cHJvdmlzaW9uYWxEb2N1bWVudExvYWRlcigpKSkKKyAgICAgICAgICAg
ICAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENoYW5nZVByb3Zp
c2lvbmFsVVJMRm9yRnJhbWUobV9mcmFtZS0+ZnJhbWVJRCgpLCBkb2N1bWVudExvYWRlci0+bmF2
aWdhdGlvbklEKCksIHJlcXVlc3QudXJsKCkuc3RyaW5nKCkpKTsKKyAgICAgICAgfQorICAgIH0K
IH0KIAogYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3Jh
Z2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZTRkYTNjMzAxMTU3MzM3
Y2IzYjNmOWMwYWU3NzY0OThjYTBiNmE3MS4uYWJkYzRjMzRjMjY0M2YyOGM5MDMyZTc0Yjc4YzNk
MTQ4NzgwMjQ1OCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE1LTA2LTI0ICBNaWNoYWVsIENhdGFuemFybyAgPG1j
YXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBXZWJWaWV3IGFuZCBXZWJQYWdlIFVSTHMg
bm90IHVwZGF0ZWQgYWZ0ZXIgVVJMIGlzIG1vZGlmaWVkIGJ5IEluamVjdGVkQnVuZGxlUGFnZVJl
c291cmNlTG9hZENsaWVudDo6d2lsbFNlbmRSZXF1ZXN0Rm9yRnJhbWUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjMwNgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2Ugc3VyZSB0aGUgVVJMcyBnZXQg
dXBkYXRlZC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0
TG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKHRlc3RXZWJQYWdlVVJJKToKKwogMjAxNS0wNi0y
NCAgSmFzb24gTWFyY2VsbCAgPGptYXJjZWxsQGFwcGxlLmNvbT4KIAogICAgICAgICBXb3JrIHRv
d2FyZHM6IEFkZCBzdGF0dXMgb2YgU2FmYXJpIHByb2plY3RzIG9uIGlPUyBEYXNoYm9hcmQgb24g
YnVpbGQtc2FmYXJpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJHdGsvVGVzdExvYWRlckNsaWVudC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJHdGsvVGVzdExvYWRlckNsaWVudC5jcHAKaW5kZXggMGU4NjhjYmJlNTJhNmJiMDRmZmFm
YjhkMjNiMjkwNTg3MDU5YWVkZC4uNTcyNGExNjgzYWU4ODc4OTdlYTdkYmVlMWU2MDEzMjI3NTgy
MmIyNiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rl
c3RMb2FkZXJDbGllbnQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mkd0ay9UZXN0TG9hZGVyQ2xpZW50LmNwcApAQCAtMzU0LDYgKzM1NCw3IEBAIHB1YmxpYzoKIAog
c3RhdGljIHZvaWQgdGVzdFdlYlBhZ2VVUkkoV2ViUGFnZVVSSVRlc3QqIHRlc3QsIGdjb25zdHBv
aW50ZXIpCiB7CisgICAgLy8gVGVzdCB0aGF0IHRoZSBVUkkgY2hhbmdlcyBhZnRlciBhIHNlcnZl
ciByZWRpcmVjdC4KICAgICB0ZXN0LT5sb2FkVVJJKGtTZXJ2ZXItPmdldFVSSUZvclBhdGgoIi9y
ZWRpcmVjdCIpLmRhdGEoKSk7CiAgICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CiAK
QEAgLTM2NSw2ICszNjYsMTggQEAgc3RhdGljIHZvaWQgdGVzdFdlYlBhZ2VVUkkoV2ViUGFnZVVS
SVRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiAgICAgQVNTRVJUX0NNUF9DU1RSSU5HKHRlc3Qt
Pm1fd2ViUGFnZVVSSXNbMF0sID09LCBrU2VydmVyLT5nZXRVUklGb3JQYXRoKCIvcmVkaXJlY3Qi
KSk7CiAgICAgQVNTRVJUX0NNUF9DU1RSSU5HKHRlc3QtPm1fd2ViUGFnZVVSSXNbMV0sID09LCBr
U2VydmVyLT5nZXRVUklGb3JQYXRoKCIvbm9ybWFsIikpOwogCisgICAgLy8gVGVzdCB0aGF0IHRo
ZSBVUklzIG9mIHRoZSBXZWJLaXRXZWJWaWV3IGFuZCB0aGUgV2ViS2l0V2ViUGFnZSBib3RoIGNo
YW5nZSBhZnRlciB0aGUgd2ViCisgICAgLy8gZXh0ZW5zaW9uIG1vZGlmaWVzIHRoZSBXZWJLaXRV
UklSZXF1ZXN0IHBhc3NlZCB0byB0aGUgc2VuZC1yZXF1ZXN0IHNpZ25hbCBvZiBXZWJLaXRXZWJQ
YWdlLgorICAgIHRlc3QtPmxvYWRVUkkoa1NlcnZlci0+Z2V0VVJJRm9yUGF0aCgiL3JlbW92ZS10
aGlzL2phdmFzY3JpcHQuanMiKS5kYXRhKCkpOworICAgIHRlc3QtPndhaXRVbnRpbExvYWRGaW5p
c2hlZCgpOworCisgICAgZ19hc3NlcnRfY21waW50KHRlc3QtPm1fd2ViUGFnZVVSSXMuc2l6ZSgp
LCA9PSwgdGVzdC0+bV93ZWJWaWV3VVJJcy5zaXplKCkpOworICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgdGVzdC0+bV93ZWJQYWdlVVJJcy5zaXplKCk7ICsraSkKKyAgICAgICAgQVNTRVJUX0NN
UF9DU1RSSU5HKHRlc3QtPm1fd2ViUGFnZVVSSXNbaV0sID09LCB0ZXN0LT5tX3dlYlZpZXdVUklz
W2ldKTsKKworICAgIGdfYXNzZXJ0X2NtcGludCh0ZXN0LT5tX3dlYlBhZ2VVUklzLnNpemUoKSwg
PT0sIDQpOworICAgIEFTU0VSVF9DTVBfQ1NUUklORyh0ZXN0LT5tX3dlYlBhZ2VVUklzWzJdLCA9
PSwga1NlcnZlci0+Z2V0VVJJRm9yUGF0aCgiL3JlbW92ZS10aGlzL2phdmFzY3JpcHQuanMiKSk7
CisgICAgQVNTRVJUX0NNUF9DU1RSSU5HKHRlc3QtPm1fd2ViUGFnZVVSSXNbM10sID09LCBrU2Vy
dmVyLT5nZXRVUklGb3JQYXRoKCIvamF2YXNjcmlwdC5qcyIpKTsKIH0KIAogc3RhdGljIHZvaWQg
dGVzdFVSSVJlcXVlc3RIVFRQSGVhZGVycyhXZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRl
cikK
</data>
<flag name="review"
          id="280620"
          type_id="1"
          status="-"
          setter="cgarcia"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291474</attachid>
            <date>2016-10-13 05:45:21 -0700</date>
            <delta_ts>2016-10-13 08:54:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-provisional-url-after-will-send-request.diff</filename>
            <type>text/plain</type>
            <size>12563</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiNTA3N2QxLi41MTQ3MzhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMTYtMTAtMTMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFdlYlZpZXcgYW5kIFdlYlBhZ2UgVVJMcyBub3QgdXBkYXRlZCBhZnRlciBV
UkwgaXMgbW9kaWZpZWQgYnkgSW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50Ojp3
aWxsU2VuZFJlcXVlc3RGb3JGcmFtZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQ2MzA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm90aWZ5IGFib3V0IHRoZSBwcm92aXNpb25hbCBVUkwgY2hhbmdlIHdo
ZW4gbmV3IHJlcXVlc3Qgc2V0IGZvciBtYWluIHJlc291cmNlIGxvYWQgaW4gRG9jdW1lbnRMb2Fk
ZXIgaGFzIGEKKyAgICAgICAgZGlmZmVyZW50IFVSTCB0aGFuIHRoZSBwcmV2aW91cyBvbmUuCisK
KyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnRMb2FkZXI6OnNldFJlcXVlc3QpOgorCiAyMDE2LTEwLTEzICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0OjptdXRhYmxlUmVzb3VyY2VSZXF1ZXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmNwcAppbmRleCBlZGE5MzEwLi4xOTk4ODBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTIzMCw4ICsyMzAsMTEgQEAgdm9pZCBEb2N1bWVudExv
YWRlcjo6c2V0UmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcSkKIAogICAgIGhhbmRs
aW5nVW5yZWFjaGFibGVVUkwgPSBtX3N1YnN0aXR1dGVEYXRhLmlzVmFsaWQoKSAmJiAhbV9zdWJz
dGl0dXRlRGF0YS5mYWlsaW5nVVJMKCkuaXNFbXB0eSgpOwogCisgICAgYm9vbCBub3RpZnlQcm92
aXNpb25hbFVSTENoYW5nZSA9IGZhbHNlOwogICAgIGlmIChoYW5kbGluZ1VucmVhY2hhYmxlVVJM
KQogICAgICAgICBtX2NvbW1pdHRlZCA9IGZhbHNlOworICAgIGVsc2UgaWYgKGlzTG9hZGluZ01h
aW5SZXNvdXJjZSgpICYmICFtX3JlcXVlc3QudXJsKCkuaXNFbXB0eSgpICYmIHJlcS51cmwoKSAh
PSBtX3JlcXVlc3QudXJsKCkpCisgICAgICAgIG5vdGlmeVByb3Zpc2lvbmFsVVJMQ2hhbmdlID0g
dHJ1ZTsKIAogICAgIC8vIFdlIHNob3VsZCBuZXZlciBiZSBnZXR0aW5nIGEgcmVkaXJlY3QgY2Fs
bGJhY2sgYWZ0ZXIgdGhlIGRhdGEKICAgICAvLyBzb3VyY2UgaXMgY29tbWl0dGVkLCBleGNlcHQg
aW4gdGhlIHVucmVhY2hhYmxlIFVSTCBjYXNlLiBJdCAKQEAgLTIzOSw2ICsyNDIsOCBAQCB2b2lk
IERvY3VtZW50TG9hZGVyOjpzZXRSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxKQog
ICAgIEFTU0VSVCghbV9jb21taXR0ZWQpOwogCiAgICAgbV9yZXF1ZXN0ID0gcmVxOworICAgIGlm
IChub3RpZnlQcm92aXNpb25hbFVSTENoYW5nZSkKKyAgICAgICAgZnJhbWVMb2FkZXIoKS0+Y2xp
ZW50KCkuZGlzcGF0Y2hEaWRDaGFuZ2VQcm92aXNpb25hbFVSTCgpOwogfQogCiB2b2lkIERvY3Vt
ZW50TG9hZGVyOjpzZXRNYWluRG9jdW1lbnRFcnJvcihjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJv
cikKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBl
N2M1MzI2Li5lYzhjZjYzIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTYtMTAtMTMgIENhcmxvcyBHYXJjaWEgQ2Ft
cG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFdlYlZpZXcgYW5kIFdlYlBhZ2Ug
VVJMcyBub3QgdXBkYXRlZCBhZnRlciBVUkwgaXMgbW9kaWZpZWQgYnkgSW5qZWN0ZWRCdW5kbGVQ
YWdlUmVzb3VyY2VMb2FkQ2xpZW50Ojp3aWxsU2VuZFJlcXVlc3RGb3JGcmFtZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2MzA2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHVuaXQgdGVzdCB0byBj
aGVjayB0aGF0IHRoZSBjb21taXR0ZWQgVVJMIGlzIHVwZGF0ZWQgd2hlbiBjaGFuZ2VkIGluIHdp
bGxTZW5kUmVxdWVzdCBjYWxsYmFjay4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9QbGF0Zm9ybUVmbC5jbWFrZToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1BsYXRmb3JtR1RLLmNtYWtlOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Qcm92aXNpb25hbFVSTEFmdGVyV2lsbFNlbmRSZXF1ZXN0
Q2FsbGJhY2suY3BwOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmRpZENvbW1pdExv
YWRGb3JGcmFtZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvUHJvdmlzaW9uYWxVUkxBZnRlcldpbGxTZW5kUmVx
dWVzdENhbGxiYWNrX0J1bmRsZS5jcHA6IEFkZGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
UHJvdmlzaW9uYWxVUkxBZnRlcldpbGxTZW5kUmVxdWVzdENhbGxiYWNrVGVzdDo6UHJvdmlzaW9u
YWxVUkxBZnRlcldpbGxTZW5kUmVxdWVzdENhbGxiYWNrVGVzdCk6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpQcm92aXNpb25hbFVSTEFmdGVyV2lsbFNlbmRSZXF1ZXN0Q2FsbGJhY2tUZXN0Ojp3
aWxsU2VuZFJlcXVlc3RGb3JGcmFtZSk6CisKIDIwMTYtMTAtMTIgIEFsZXggQ2hyaXN0ZW5zZW4g
IDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBGaXggb3V0LW9mLWJvdW5kcyBy
ZWFkaW5nIGluIFVSTFBhcnNlciB3aGVuIHBhcnNpbmcgaW1wcm9wZXJseSBwZXJjZW50LWVuY29k
ZWQgdmFsdWVzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dAppbmRleCBmYTM4MzE2Li43ZTBk
ZWRjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0CisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQKQEAgLTE0OSw2ICsxNDksNyBAQCBp
ZiAoRU5BQkxFX1dFQktJVDIpCiAgICAgICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dl
YktpdDIvTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzX0J1bmRsZS5jcHAKICAg
ICAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9OZXdGaXJzdFZpc3VhbGx5
Tm9uRW1wdHlMYXlvdXRfQnVuZGxlLmNwcAogICAgICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9U
ZXN0cy9XZWJLaXQyL1BhcmVudEZyYW1lX0J1bmRsZS5jcHAKKyAgICAgICAgJHtURVNUV0VCS0lU
QVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9Qcm92aXNpb25hbFVSTEFmdGVyV2lsbFNlbmRSZXF1ZXN0
Q2FsbGJhY2tfQnVuZGxlLmNwcAogICAgICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9X
ZWJLaXQyL1Jlc3BvbnNpdmVuZXNzVGltZXJEb2VzbnRGaXJlRWFybHlfQnVuZGxlLmNwcAogICAg
ICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJLaXQyL1Nob3VsZEdvVG9CYWNrRm9y
d2FyZExpc3RJdGVtX0J1bmRsZS5jcHAKICAgICAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVz
dHMvV2ViS2l0Mi9UZXh0RmllbGREaWRCZWdpbkFuZEVuZEVkaXRpbmdfQnVuZGxlLmNwcApkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybUVmbC5jbWFrZSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggZTcyYzA2NS4uOTUyZjQxNyAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC05Nyw2ICs5Nyw3IEBAIHNldCh0
ZXN0X3dlYmtpdDJfYXBpX0JJTkFSSUVTCiAgICAgUGVuZGluZ0FQSVJlcXVlc3RVUkwKICAgICBQ
cmV2ZW50RW1wdHlVc2VyQWdlbnQKICAgICBQcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3Rv
cnlDYWxsYmFjaworICAgIFByb3Zpc2lvbmFsVVJMQWZ0ZXJXaWxsU2VuZFJlcXVlc3RDYWxsYmFj
awogICAgIFJlc3BvbnNpdmVuZXNzVGltZXJEb2VzbnRGaXJlRWFybHkKICAgICBTaG91bGRHb1Rv
QmFja0ZvcndhcmRMaXN0SXRlbQogICAgIFRlcm1pbmF0ZVR3aWNlCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtR1RLLmNtYWtlIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Q
bGF0Zm9ybUdUSy5jbWFrZQppbmRleCA3NTUyY2MyLi42Nzk2MjJmIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTEwMSw2ICsxMDEsNyBAQCBhZGRfZXhlY3V0YWJsZShU
ZXN0V2ViS2l0MgogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvUGVuZGlu
Z0FQSVJlcXVlc3RVUkwuY3BwCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0
Mi9QcmV2ZW50RW1wdHlVc2VyQWdlbnQuY3BwCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVz
dHMvV2ViS2l0Mi9Qcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAK
KyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJLaXQyL1Byb3Zpc2lvbmFsVVJMQWZ0
ZXJXaWxsU2VuZFJlcXVlc3RDYWxsYmFjay5jcHAKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9U
ZXN0cy9XZWJLaXQyL1JlbG9hZFBhZ2VBZnRlckNyYXNoLmNwcAogICAgICR7VEVTVFdFQktJVEFQ
SV9ESVJ9L1Rlc3RzL1dlYktpdDIvUmVzaXplV2luZG93QWZ0ZXJDcmFzaC5jcHAKICAgICAke1RF
U1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJLaXQyL1Jlc3RvcmVTZXNzaW9uU3RhdGVDb250YWlu
aW5nRm9ybURhdGEuY3BwCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDIvUHJvdmlzaW9uYWxVUkxBZnRlcldpbGxTZW5kUmVxdWVzdENhbGxiYWNrLmNwcCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Qcm92aXNpb25hbFVSTEFmdGVyV2lsbFNl
bmRSZXF1ZXN0Q2FsbGJhY2suY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjBlMTllMzIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDIvUHJvdmlzaW9uYWxVUkxBZnRlcldpbGxTZW5kUmVxdWVzdENhbGxiYWNrLmNwcApAQCAt
MCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIFdLX0hBVkVfQ19TUEkKKworI2luY2x1
ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3LmgiCisj
aW5jbHVkZSAiVGVzdC5oIgorI2luY2x1ZGUgPFdlYktpdC9XS0NvbnRleHQuaD4KKyNpbmNsdWRl
IDxXZWJLaXQvV0tGcmFtZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1JldGFpblB0ci5oPgorCitu
YW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK3N0YXRpYyBib29sIGNvbW1pdHRlZExvYWQ7CisK
K3N0YXRpYyB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFt
ZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQor
eworICAgIGlmICghV0tGcmFtZUlzTWFpbkZyYW1lKGZyYW1lKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgLy8gVGhlIHByb3Zpc2lvbmFsIFVSTCBzaG91bGQgYmUgbnVsbC4KKyAgICBFWFBFQ1Rf
TlVMTChXS0ZyYW1lQ29weVByb3Zpc2lvbmFsVVJMKGZyYW1lKSk7CisKKyAgICAvLyBUaGUgY29t
bWl0dGVkIFVSTCBpcyB0aGUgbGFzdCBrbm93biBwcm92aXNpb25hbCBVUkwuCisgICAgV0tSZXRh
aW5QdHI8V0tVUkxSZWY+IGNvbW1pdHRlZFVSTCA9IGFkb3B0V0soV0tGcmFtZUNvcHlVUkwoZnJh
bWUpKTsKKyAgICBBU1NFUlRfTk9UX05VTEwoY29tbWl0dGVkVVJMLmdldCgpKTsKKyAgICBXS1Jl
dGFpblB0cjxXS1VSTFJlZj4gYWN0aXZlVVJMID0gYWRvcHRXSyhXS1BhZ2VDb3B5QWN0aXZlVVJM
KHBhZ2UpKTsKKyAgICBBU1NFUlRfTk9UX05VTEwoYWN0aXZlVVJMLmdldCgpKTsKKyAgICBFWFBF
Q1RfVFJVRShXS1VSTElzRXF1YWwoY29tbWl0dGVkVVJMLmdldCgpLCBhY3RpdmVVUkwuZ2V0KCkp
KTsKKworICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwoQWRvcHRXSywgVXRpbDo6Y3JlYXRl
VVJMRm9yUmVzb3VyY2UoInNpbXBsZTIiLCAiaHRtbCIpKTsKKyAgICBFWFBFQ1RfVFJVRShXS1VS
TElzRXF1YWwoY29tbWl0dGVkVVJMLmdldCgpLCB1cmwuZ2V0KCkpKTsKKworICAgIGNvbW1pdHRl
ZExvYWQgPSB0cnVlOworfQorCitURVNUKFdlYktpdDIsIFByb3Zpc2lvbmFsVVJMQWZ0ZXJXaWxs
U2VuZFJlcXVlc3RDYWxsYmFjaykKK3sKKyAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNv
bnRleHQoQWRvcHRXSywgVXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgi
UHJvdmlzaW9uYWxVUkxBZnRlcldpbGxTZW5kUmVxdWVzdENhbGxiYWNrVGVzdCIpKTsKKworICAg
IFdLQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50VjAgaW5qZWN0ZWRCdW5kbGVDbGllbnQ7Cisg
ICAgbWVtc2V0KCZpbmplY3RlZEJ1bmRsZUNsaWVudCwgMCwgc2l6ZW9mKGluamVjdGVkQnVuZGxl
Q2xpZW50KSk7CisgICAgaW5qZWN0ZWRCdW5kbGVDbGllbnQuYmFzZS52ZXJzaW9uID0gMDsKKyAg
ICBXS0NvbnRleHRTZXRJbmplY3RlZEJ1bmRsZUNsaWVudChjb250ZXh0LmdldCgpLCAmaW5qZWN0
ZWRCdW5kbGVDbGllbnQuYmFzZSk7CisKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250
ZXh0LmdldCgpKTsKKworICAgIFdLUGFnZUxvYWRlckNsaWVudFYwIGxvYWRlckNsaWVudDsKKyAg
ICBtZW1zZXQoJmxvYWRlckNsaWVudCwgMCwgc2l6ZW9mKGxvYWRlckNsaWVudCkpOworCisgICAg
bG9hZGVyQ2xpZW50LmJhc2UudmVyc2lvbiA9IDA7CisgICAgbG9hZGVyQ2xpZW50LmRpZENvbW1p
dExvYWRGb3JGcmFtZSA9IGRpZENvbW1pdExvYWRGb3JGcmFtZTsKKyAgICBXS1BhZ2VTZXRQYWdl
TG9hZGVyQ2xpZW50KHdlYlZpZXcucGFnZSgpLCAmbG9hZGVyQ2xpZW50LmJhc2UpOworCisgICAg
V0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybChBZG9wdFdLLCBVdGlsOjpjcmVhdGVVUkxGb3JSZXNv
dXJjZSgic2ltcGxlIiwgImh0bWwiKSk7CisgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2Uo
KSwgdXJsLmdldCgpKTsKKyAgICBVdGlsOjpydW4oJmNvbW1pdHRlZExvYWQpOworfQorCit9IC8v
IG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1Byb3Zpc2lvbmFsVVJMQWZ0ZXJXaWxsU2VuZFJlcXVl
c3RDYWxsYmFja19CdW5kbGUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
L1Byb3Zpc2lvbmFsVVJMQWZ0ZXJXaWxsU2VuZFJlcXVlc3RDYWxsYmFja19CdW5kbGUuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1MjM5YmEKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvUHJvdmlzaW9uYWxVUkxBZnRl
cldpbGxTZW5kUmVxdWVzdENhbGxiYWNrX0J1bmRsZS5jcHAKQEAgLTAsMCArMSw3MiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNiBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisKKyNpZiBXS19IQVZFX0NfU1BJCisKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRs
ZVRlc3QuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2luY2x1ZGUgIlRlc3Qu
aCIKKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVGcmFtZS5oPgorI2luY2x1ZGUgPFdlYktpdC9X
S0J1bmRsZVBhZ2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tSZXRhaW5QdHIuaD4KKworbmFtZXNw
YWNlIFRlc3RXZWJLaXRBUEkgeworCitjbGFzcyBQcm92aXNpb25hbFVSTEFmdGVyV2lsbFNlbmRS
ZXF1ZXN0Q2FsbGJhY2tUZXN0IDogcHVibGljIEluamVjdGVkQnVuZGxlVGVzdCB7CitwdWJsaWM6
CisgICAgUHJvdmlzaW9uYWxVUkxBZnRlcldpbGxTZW5kUmVxdWVzdENhbGxiYWNrVGVzdChjb25z
dCBzdGQ6OnN0cmluZyYgaWRlbnRpZmllcikKKyAgICAgICAgOiBJbmplY3RlZEJ1bmRsZVRlc3Qo
aWRlbnRpZmllcikKKyAgICB7CisgICAgfQorCisgICAgc3RhdGljIFdLVVJMUmVxdWVzdFJlZiB3
aWxsU2VuZFJlcXVlc3RGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYg
ZnJhbWUsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRpZmllciwgV0tVUkxSZXF1ZXN0UmVmIHJlcXVl
c3QsIFdLVVJMUmVzcG9uc2VSZWYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3Qgdm9pZCAqY2xpZW50
SW5mbykKKyAgICB7CisgICAgICAgIGlmICghV0tCdW5kbGVGcmFtZUlzTWFpbkZyYW1lKGZyYW1l
KSkgeworICAgICAgICAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZXF1ZXN0UmVmPiBuZXdSZXF1ZXN0
ID0gcmVxdWVzdDsKKyAgICAgICAgICAgIHJldHVybiBuZXdSZXF1ZXN0LmxlYWtSZWYoKTsKKyAg
ICAgICAgfQorCisgICAgICAgIC8vIENoYW5nZSB0aGUgbWFpbiBmcmFtZSBVUkwuCisgICAgICAg
IFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwoQWRvcHRXSywgVXRpbDo6Y3JlYXRlVVJMRm9yUmVz
b3VyY2UoInNpbXBsZTIiLCAiaHRtbCIpKTsKKyAgICAgICAgcmV0dXJuIFdLVVJMUmVxdWVzdENy
ZWF0ZVdpdGhXS1VSTCh1cmwuZ2V0KCkpOworICAgIH0KKworICAgIHZvaWQgZGlkQ3JlYXRlUGFn
ZShXS0J1bmRsZVJlZiBidW5kbGUsIFdLQnVuZGxlUGFnZVJlZiBwYWdlKSBvdmVycmlkZQorICAg
IHsKKyAgICAgICAgV0tCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50VjAgcmVzb3VyY2VMb2Fk
Q2xpZW50OworICAgICAgICBtZW1zZXQoJnJlc291cmNlTG9hZENsaWVudCwgMCwgc2l6ZW9mKHJl
c291cmNlTG9hZENsaWVudCkpOworICAgICAgICByZXNvdXJjZUxvYWRDbGllbnQuYmFzZS52ZXJz
aW9uID0gMDsKKyAgICAgICAgcmVzb3VyY2VMb2FkQ2xpZW50LndpbGxTZW5kUmVxdWVzdEZvckZy
YW1lID0gd2lsbFNlbmRSZXF1ZXN0Rm9yRnJhbWU7CisgICAgICAgIFdLQnVuZGxlUGFnZVNldFJl
c291cmNlTG9hZENsaWVudChwYWdlLCAmcmVzb3VyY2VMb2FkQ2xpZW50LmJhc2UpOworICAgIH0K
K307CisKK3N0YXRpYyBJbmplY3RlZEJ1bmRsZVRlc3Q6OlJlZ2lzdGVyPFByb3Zpc2lvbmFsVVJM
QWZ0ZXJXaWxsU2VuZFJlcXVlc3RDYWxsYmFja1Rlc3Q+IHJlZ2lzdHJhcigiUHJvdmlzaW9uYWxV
UkxBZnRlcldpbGxTZW5kUmVxdWVzdENhbGxiYWNrVGVzdCIpOworCit9IC8vIG5hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJCisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291485</attachid>
            <date>2016-10-13 08:54:33 -0700</date>
            <delta_ts>2016-10-13 10:00:45 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>wk2-provisional-url-after-will-send-request.diff</filename>
            <type>text/plain</type>
            <size>13337</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiNTA3N2QxLi41MTQ3MzhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMTYtMTAtMTMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFdlYlZpZXcgYW5kIFdlYlBhZ2UgVVJMcyBub3QgdXBkYXRlZCBhZnRlciBV
UkwgaXMgbW9kaWZpZWQgYnkgSW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50Ojp3
aWxsU2VuZFJlcXVlc3RGb3JGcmFtZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQ2MzA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm90aWZ5IGFib3V0IHRoZSBwcm92aXNpb25hbCBVUkwgY2hhbmdlIHdo
ZW4gbmV3IHJlcXVlc3Qgc2V0IGZvciBtYWluIHJlc291cmNlIGxvYWQgaW4gRG9jdW1lbnRMb2Fk
ZXIgaGFzIGEKKyAgICAgICAgZGlmZmVyZW50IFVSTCB0aGFuIHRoZSBwcmV2aW91cyBvbmUuCisK
KyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnRMb2FkZXI6OnNldFJlcXVlc3QpOgorCiAyMDE2LTEwLTEzICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0OjptdXRhYmxlUmVzb3VyY2VSZXF1ZXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmNwcAppbmRleCBlZGE5MzEwLi4xOTk4ODBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTIzMCw4ICsyMzAsMTEgQEAgdm9pZCBEb2N1bWVudExv
YWRlcjo6c2V0UmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcSkKIAogICAgIGhhbmRs
aW5nVW5yZWFjaGFibGVVUkwgPSBtX3N1YnN0aXR1dGVEYXRhLmlzVmFsaWQoKSAmJiAhbV9zdWJz
dGl0dXRlRGF0YS5mYWlsaW5nVVJMKCkuaXNFbXB0eSgpOwogCisgICAgYm9vbCBub3RpZnlQcm92
aXNpb25hbFVSTENoYW5nZSA9IGZhbHNlOwogICAgIGlmIChoYW5kbGluZ1VucmVhY2hhYmxlVVJM
KQogICAgICAgICBtX2NvbW1pdHRlZCA9IGZhbHNlOworICAgIGVsc2UgaWYgKGlzTG9hZGluZ01h
aW5SZXNvdXJjZSgpICYmICFtX3JlcXVlc3QudXJsKCkuaXNFbXB0eSgpICYmIHJlcS51cmwoKSAh
PSBtX3JlcXVlc3QudXJsKCkpCisgICAgICAgIG5vdGlmeVByb3Zpc2lvbmFsVVJMQ2hhbmdlID0g
dHJ1ZTsKIAogICAgIC8vIFdlIHNob3VsZCBuZXZlciBiZSBnZXR0aW5nIGEgcmVkaXJlY3QgY2Fs
bGJhY2sgYWZ0ZXIgdGhlIGRhdGEKICAgICAvLyBzb3VyY2UgaXMgY29tbWl0dGVkLCBleGNlcHQg
aW4gdGhlIHVucmVhY2hhYmxlIFVSTCBjYXNlLiBJdCAKQEAgLTIzOSw2ICsyNDIsOCBAQCB2b2lk
IERvY3VtZW50TG9hZGVyOjpzZXRSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxKQog
ICAgIEFTU0VSVCghbV9jb21taXR0ZWQpOwogCiAgICAgbV9yZXF1ZXN0ID0gcmVxOworICAgIGlm
IChub3RpZnlQcm92aXNpb25hbFVSTENoYW5nZSkKKyAgICAgICAgZnJhbWVMb2FkZXIoKS0+Y2xp
ZW50KCkuZGlzcGF0Y2hEaWRDaGFuZ2VQcm92aXNpb25hbFVSTCgpOwogfQogCiB2b2lkIERvY3Vt
ZW50TG9hZGVyOjpzZXRNYWluRG9jdW1lbnRFcnJvcihjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJv
cikKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBl
N2M1MzI2Li4wNDNmMTZjIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTYtMTAtMTMgIENhcmxvcyBHYXJjaWEgQ2Ft
cG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFdlYlZpZXcgYW5kIFdlYlBhZ2Ug
VVJMcyBub3QgdXBkYXRlZCBhZnRlciBVUkwgaXMgbW9kaWZpZWQgYnkgSW5qZWN0ZWRCdW5kbGVQ
YWdlUmVzb3VyY2VMb2FkQ2xpZW50Ojp3aWxsU2VuZFJlcXVlc3RGb3JGcmFtZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2MzA2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHVuaXQgdGVzdCB0byBj
aGVjayB0aGF0IHRoZSBjb21taXR0ZWQgVVJMIGlzIHVwZGF0ZWQgd2hlbiBjaGFuZ2VkIGluIHdp
bGxTZW5kUmVxdWVzdCBjYWxsYmFjay4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9QbGF0Zm9ybUVmbC5jbWFrZToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1BsYXRmb3JtR1RLLmNtYWtlOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Qcm92aXNpb25hbFVSTEFmdGVyV2lsbFNlbmRSZXF1ZXN0
Q2FsbGJhY2suY3BwOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmRpZENvbW1pdExv
YWRGb3JGcmFtZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvUHJvdmlzaW9uYWxVUkxBZnRlcldpbGxTZW5kUmVx
dWVzdENhbGxiYWNrX0J1bmRsZS5jcHA6IEFkZGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
UHJvdmlzaW9uYWxVUkxBZnRlcldpbGxTZW5kUmVxdWVzdENhbGxiYWNrVGVzdDo6UHJvdmlzaW9u
YWxVUkxBZnRlcldpbGxTZW5kUmVxdWVzdENhbGxiYWNrVGVzdCk6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpQcm92aXNpb25hbFVSTEFmdGVyV2lsbFNlbmRSZXF1ZXN0Q2FsbGJhY2tUZXN0Ojp3
aWxsU2VuZFJlcXVlc3RGb3JGcmFtZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpQcm92aXNp
b25hbFVSTEFmdGVyV2lsbFNlbmRSZXF1ZXN0Q2FsbGJhY2tUZXN0OjpkaWRDb21taXRMb2FkRm9y
RnJhbWUpOgorCiAyMDE2LTEwLTEyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgRml4IG91dC1vZi1ib3VuZHMgcmVhZGluZyBpbiBVUkxQYXJz
ZXIgd2hlbiBwYXJzaW5nIGltcHJvcGVybHkgcGVyY2VudC1lbmNvZGVkIHZhbHVlcwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvQ01ha2VMaXN0cy50eHQKaW5kZXggZmEzODMxNi4uN2UwZGVkYyAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL0NNYWtlTGlzdHMudHh0CkBAIC0xNDksNiArMTQ5LDcgQEAgaWYgKEVOQUJMRV9XRUJLSVQy
KQogICAgICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJLaXQyL05ld0ZpcnN0Vmlz
dWFsbHlOb25FbXB0eUxheW91dEZyYW1lc19CdW5kbGUuY3BwCiAgICAgICAgICR7VEVTVFdFQktJ
VEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0X0J1
bmRsZS5jcHAKICAgICAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9QYXJl
bnRGcmFtZV9CdW5kbGUuY3BwCisgICAgICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dl
YktpdDIvUHJvdmlzaW9uYWxVUkxBZnRlcldpbGxTZW5kUmVxdWVzdENhbGxiYWNrX0J1bmRsZS5j
cHAKICAgICAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9SZXNwb25zaXZl
bmVzc1RpbWVyRG9lc250RmlyZUVhcmx5X0J1bmRsZS5jcHAKICAgICAgICAgJHtURVNUV0VCS0lU
QVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9TaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbV9CdW5k
bGUuY3BwCiAgICAgICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvVGV4dEZp
ZWxkRGlkQmVnaW5BbmRFbmRFZGl0aW5nX0J1bmRsZS5jcHAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvUGxhdGZvcm1FZmwuY21ha2UgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRm
b3JtRWZsLmNtYWtlCmluZGV4IGU3MmMwNjUuLjk1MmY0MTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Q
bGF0Zm9ybUVmbC5jbWFrZQpAQCAtOTcsNiArOTcsNyBAQCBzZXQodGVzdF93ZWJraXQyX2FwaV9C
SU5BUklFUwogICAgIFBlbmRpbmdBUElSZXF1ZXN0VVJMCiAgICAgUHJldmVudEVtcHR5VXNlckFn
ZW50CiAgICAgUHJpdmF0ZUJyb3dzaW5nUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2sKKyAgICBQ
cm92aXNpb25hbFVSTEFmdGVyV2lsbFNlbmRSZXF1ZXN0Q2FsbGJhY2sKICAgICBSZXNwb25zaXZl
bmVzc1RpbWVyRG9lc250RmlyZUVhcmx5CiAgICAgU2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0
ZW0KICAgICBUZXJtaW5hdGVUd2ljZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Q
bGF0Zm9ybUdUSy5jbWFrZSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1HVEsuY21ha2UK
aW5kZXggNzU1MmNjMi4uNjc5NjIyZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Q
bGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtR1RLLmNt
YWtlCkBAIC0xMDEsNiArMTAxLDcgQEAgYWRkX2V4ZWN1dGFibGUoVGVzdFdlYktpdDIKICAgICAk
e1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJLaXQyL1BlbmRpbmdBUElSZXF1ZXN0VVJMLmNw
cAogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvUHJldmVudEVtcHR5VXNl
ckFnZW50LmNwcAogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvUHJpdmF0
ZUJyb3dzaW5nUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwCisgICAgJHtURVNUV0VCS0lU
QVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9Qcm92aXNpb25hbFVSTEFmdGVyV2lsbFNlbmRSZXF1ZXN0
Q2FsbGJhY2suY3BwCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9SZWxv
YWRQYWdlQWZ0ZXJDcmFzaC5jcHAKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJL
aXQyL1Jlc2l6ZVdpbmRvd0FmdGVyQ3Jhc2guY3BwCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0v
VGVzdHMvV2ViS2l0Mi9SZXN0b3JlU2Vzc2lvblN0YXRlQ29udGFpbmluZ0Zvcm1EYXRhLmNwcApk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1Byb3Zpc2lvbmFs
VVJMQWZ0ZXJXaWxsU2VuZFJlcXVlc3RDYWxsYmFjay5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDIvUHJvdmlzaW9uYWxVUkxBZnRlcldpbGxTZW5kUmVxdWVzdENhbGxiYWNr
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOTc5Zjc5Ci0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1Byb3Zpc2lvbmFs
VVJMQWZ0ZXJXaWxsU2VuZFJlcXVlc3RDYWxsYmFjay5jcHAKQEAgLTAsMCArMSw4OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNiBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisKKyNpZiBXS19IQVZFX0NfU1BJCisKKyNpbmNsdWRlICJQbGF0Zm9ybVV0aWxp
dGllcy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgorI2luY2x1ZGUgIlRlc3QuaCIK
KyNpbmNsdWRlIDxXZWJLaXQvV0tDb250ZXh0Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLRnJhbWUu
aD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tSZXRhaW5QdHIuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkgeworCitzdGF0aWMgYm9vbCBjb21taXR0ZWRMb2FkOworCitzdGF0aWMgdm9pZCBkaWRD
b21taXRMb2FkRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlw
ZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCopCit7CisgICAgaWYgKCFXS0ZyYW1lSXNNYWluRnJh
bWUoZnJhbWUpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBUaGUgcHJvdmlzaW9uYWwgVVJM
IHNob3VsZCBiZSBudWxsLgorICAgIEVYUEVDVF9OVUxMKFdLRnJhbWVDb3B5UHJvdmlzaW9uYWxV
UkwoZnJhbWUpKTsKKworICAgIC8vIFRoZSBjb21taXR0ZWQgVVJMIGlzIHRoZSBsYXN0IGtub3du
IHByb3Zpc2lvbmFsIFVSTC4KKyAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gY29tbWl0dGVkVVJM
ID0gYWRvcHRXSyhXS0ZyYW1lQ29weVVSTChmcmFtZSkpOworICAgIEFTU0VSVF9OT1RfTlVMTChj
b21taXR0ZWRVUkwuZ2V0KCkpOworICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiBhY3RpdmVVUkwg
PSBhZG9wdFdLKFdLUGFnZUNvcHlBY3RpdmVVUkwocGFnZSkpOworICAgIEFTU0VSVF9OT1RfTlVM
TChhY3RpdmVVUkwuZ2V0KCkpOworICAgIEVYUEVDVF9UUlVFKFdLVVJMSXNFcXVhbChjb21taXR0
ZWRVUkwuZ2V0KCksIGFjdGl2ZVVSTC5nZXQoKSkpOworICAgIGFzc2VydChXS0dldFR5cGVJRCh1
c2VyRGF0YSkgPT0gV0tVUkxHZXRUeXBlSUQoKSk7CisgICAgRVhQRUNUX1RSVUUoV0tVUkxJc0Vx
dWFsKGNvbW1pdHRlZFVSTC5nZXQoKSwgc3RhdGljX2Nhc3Q8V0tVUkxSZWY+KHVzZXJEYXRhKSkp
OworCisgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybChBZG9wdFdLLCBVdGlsOjpjcmVhdGVV
UkxGb3JSZXNvdXJjZSgic2ltcGxlMiIsICJodG1sIikpOworICAgIEVYUEVDVF9UUlVFKFdLVVJM
SXNFcXVhbChjb21taXR0ZWRVUkwuZ2V0KCksIHVybC5nZXQoKSkpOworCisgICAgY29tbWl0dGVk
TG9hZCA9IHRydWU7Cit9CisKK1RFU1QoV2ViS2l0MiwgUHJvdmlzaW9uYWxVUkxBZnRlcldpbGxT
ZW5kUmVxdWVzdENhbGxiYWNrKQoreworICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29u
dGV4dChBZG9wdFdLLCBVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJQ
cm92aXNpb25hbFVSTEFmdGVyV2lsbFNlbmRSZXF1ZXN0Q2FsbGJhY2tUZXN0IikpOworCisgICAg
V0tDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnRWMCBpbmplY3RlZEJ1bmRsZUNsaWVudDsKKyAg
ICBtZW1zZXQoJmluamVjdGVkQnVuZGxlQ2xpZW50LCAwLCBzaXplb2YoaW5qZWN0ZWRCdW5kbGVD
bGllbnQpKTsKKyAgICBpbmplY3RlZEJ1bmRsZUNsaWVudC5iYXNlLnZlcnNpb24gPSAwOworICAg
IFdLQ29udGV4dFNldEluamVjdGVkQnVuZGxlQ2xpZW50KGNvbnRleHQuZ2V0KCksICZpbmplY3Rl
ZEJ1bmRsZUNsaWVudC5iYXNlKTsKKworICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRl
eHQuZ2V0KCkpOworCisgICAgV0tQYWdlTG9hZGVyQ2xpZW50VjAgbG9hZGVyQ2xpZW50OworICAg
IG1lbXNldCgmbG9hZGVyQ2xpZW50LCAwLCBzaXplb2YobG9hZGVyQ2xpZW50KSk7CisKKyAgICBs
b2FkZXJDbGllbnQuYmFzZS52ZXJzaW9uID0gMDsKKyAgICBsb2FkZXJDbGllbnQuZGlkQ29tbWl0
TG9hZEZvckZyYW1lID0gZGlkQ29tbWl0TG9hZEZvckZyYW1lOworICAgIFdLUGFnZVNldFBhZ2VM
b2FkZXJDbGllbnQod2ViVmlldy5wYWdlKCksICZsb2FkZXJDbGllbnQuYmFzZSk7CisKKyAgICBX
S1JldGFpblB0cjxXS1VSTFJlZj4gdXJsKEFkb3B0V0ssIFV0aWw6OmNyZWF0ZVVSTEZvclJlc291
cmNlKCJzaW1wbGUiLCAiaHRtbCIpKTsKKyAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgp
LCB1cmwuZ2V0KCkpOworICAgIFV0aWw6OnJ1bigmY29tbWl0dGVkTG9hZCk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvUHJvdmlzaW9uYWxVUkxBZnRlcldpbGxTZW5kUmVxdWVz
dENhbGxiYWNrX0J1bmRsZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIv
UHJvdmlzaW9uYWxVUkxBZnRlcldpbGxTZW5kUmVxdWVzdENhbGxiYWNrX0J1bmRsZS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmMzZDc0YQotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Qcm92aXNpb25hbFVSTEFmdGVy
V2lsbFNlbmRSZXF1ZXN0Q2FsbGJhY2tfQnVuZGxlLmNwcApAQCAtMCwwICsxLDg1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKworI2lmIFdLX0hBVkVfQ19TUEkKKworI2luY2x1ZGUgIkluamVjdGVkQnVuZGxl
VGVzdC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiVGVzdC5o
IgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZUZyYW1lLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dL
QnVuZGxlUGFnZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1JldGFpblB0ci5oPgorCituYW1lc3Bh
Y2UgVGVzdFdlYktpdEFQSSB7CisKK2NsYXNzIFByb3Zpc2lvbmFsVVJMQWZ0ZXJXaWxsU2VuZFJl
cXVlc3RDYWxsYmFja1Rlc3QgOiBwdWJsaWMgSW5qZWN0ZWRCdW5kbGVUZXN0IHsKK3B1YmxpYzoK
KyAgICBQcm92aXNpb25hbFVSTEFmdGVyV2lsbFNlbmRSZXF1ZXN0Q2FsbGJhY2tUZXN0KGNvbnN0
IHN0ZDo6c3RyaW5nJiBpZGVudGlmaWVyKQorICAgICAgICA6IEluamVjdGVkQnVuZGxlVGVzdChp
ZGVudGlmaWVyKQorICAgIHsKKyAgICB9CisKKyAgICBzdGF0aWMgV0tVUkxSZXF1ZXN0UmVmIHdp
bGxTZW5kUmVxdWVzdEZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiBm
cmFtZSwgdWludDY0X3QgcmVzb3VyY2VJZGVudGlmaWVyLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVz
dCwgV0tVUkxSZXNwb25zZVJlZiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCB2b2lkKikKKyAgICB7
CisgICAgICAgIGlmICghV0tCdW5kbGVGcmFtZUlzTWFpbkZyYW1lKGZyYW1lKSkgeworICAgICAg
ICAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZXF1ZXN0UmVmPiBuZXdSZXF1ZXN0ID0gcmVxdWVzdDsK
KyAgICAgICAgICAgIHJldHVybiBuZXdSZXF1ZXN0LmxlYWtSZWYoKTsKKyAgICAgICAgfQorCisg
ICAgICAgIC8vIENoYW5nZSB0aGUgbWFpbiBmcmFtZSBVUkwuCisgICAgICAgIFdLUmV0YWluUHRy
PFdLVVJMUmVmPiB1cmwoQWRvcHRXSywgVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoInNpbXBs
ZTIiLCAiaHRtbCIpKTsKKyAgICAgICAgcmV0dXJuIFdLVVJMUmVxdWVzdENyZWF0ZVdpdGhXS1VS
TCh1cmwuZ2V0KCkpOworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIGRpZENvbW1pdExvYWRGb3JG
cmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiog
dXNlckRhdGEsIGNvbnN0IHZvaWQqKQorICAgIHsKKyAgICAgICAgaWYgKCFXS0J1bmRsZUZyYW1l
SXNNYWluRnJhbWUoZnJhbWUpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAqdXNlckRh
dGEgPSBXS0J1bmRsZUZyYW1lQ29weVVSTChmcmFtZSk7CisgICAgfQorCisgICAgdm9pZCBkaWRD
cmVhdGVQYWdlKFdLQnVuZGxlUmVmIGJ1bmRsZSwgV0tCdW5kbGVQYWdlUmVmIHBhZ2UpIG92ZXJy
aWRlCisgICAgeworICAgICAgICBXS0J1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnRWMCByZXNv
dXJjZUxvYWRDbGllbnQ7CisgICAgICAgIG1lbXNldCgmcmVzb3VyY2VMb2FkQ2xpZW50LCAwLCBz
aXplb2YocmVzb3VyY2VMb2FkQ2xpZW50KSk7CisgICAgICAgIHJlc291cmNlTG9hZENsaWVudC5i
YXNlLnZlcnNpb24gPSAwOworICAgICAgICByZXNvdXJjZUxvYWRDbGllbnQud2lsbFNlbmRSZXF1
ZXN0Rm9yRnJhbWUgPSB3aWxsU2VuZFJlcXVlc3RGb3JGcmFtZTsKKyAgICAgICAgV0tCdW5kbGVQ
YWdlU2V0UmVzb3VyY2VMb2FkQ2xpZW50KHBhZ2UsICZyZXNvdXJjZUxvYWRDbGllbnQuYmFzZSk7
CisKKyAgICAgICAgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50VjAgcGFnZUxvYWRlckNsaWVudDsK
KyAgICAgICAgbWVtc2V0KCZwYWdlTG9hZGVyQ2xpZW50LCAwLCBzaXplb2YocGFnZUxvYWRlckNs
aWVudCkpOworICAgICAgICBwYWdlTG9hZGVyQ2xpZW50LmJhc2UudmVyc2lvbiA9IDA7CisgICAg
ICAgIHBhZ2VMb2FkZXJDbGllbnQuZGlkQ29tbWl0TG9hZEZvckZyYW1lID0gZGlkQ29tbWl0TG9h
ZEZvckZyYW1lOworICAgICAgICBXS0J1bmRsZVBhZ2VTZXRQYWdlTG9hZGVyQ2xpZW50KHBhZ2Us
ICZwYWdlTG9hZGVyQ2xpZW50LmJhc2UpOworICAgIH0KK307CisKK3N0YXRpYyBJbmplY3RlZEJ1
bmRsZVRlc3Q6OlJlZ2lzdGVyPFByb3Zpc2lvbmFsVVJMQWZ0ZXJXaWxsU2VuZFJlcXVlc3RDYWxs
YmFja1Rlc3Q+IHJlZ2lzdHJhcigiUHJvdmlzaW9uYWxVUkxBZnRlcldpbGxTZW5kUmVxdWVzdENh
bGxiYWNrVGVzdCIpOworCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCisKKyNlbmRpZgo=
</data>
<flag name="review"
          id="314611"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="314614"
          type_id="3"
          status="-"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>