<?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>46943</bug_id>
          
          <creation_ts>2010-09-30 17:14:10 -0700</creation_ts>
          <short_desc>[chromium] getData(&apos;text/uri-list&apos;) should return the same thing that was passed to setData(&apos;text/uri-list&apos;)</short_desc>
          <delta_ts>2010-10-05 13:14:00 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>0</everconfirmed>
          <reporter name="Daniel Cheng">dcheng</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>287947</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-09-30 17:14:10 -0700</bug_when>
    <thetext>Right now, we strip out comments and potentially change line endings. It&apos;s probably nice to have it return the same thing that was passed in (the comments might be useful, for instance).

How do other browsers handle it?
IE8: Calling setData(&apos;URL&apos;) doesn&apos;t work. The only time you can set URLs in IE seems to be when you&apos;re dragging anchors--and it&apos;s not you setting it, it&apos;s implicitly set by the browser.
IE9: Same as IE8 as far as I can tell. I could be wrong though.
Firefox: Seems to handle URL and text/uri-list as separate types. Also allows anything to be set in the &apos;URL&apos; member.
Safari: My test isn&apos;t working in Safari at the moment, but as far as I can tell, it probably returns what you set for text/uri-list (and URL as well, though that&apos;s probably a bug).

As I interpret the standard, getData(&apos;URL&apos;) should never return an invalid URL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289276</commentid>
    <comment_count>1</comment_count>
      <attachid>69713</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-10-04 16:30:40 -0700</bug_when>
    <thetext>Created attachment 69713
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289301</commentid>
    <comment_count>2</comment_count>
      <attachid>69713</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-10-04 16:49:04 -0700</bug_when>
    <thetext>Comment on attachment 69713
Patch

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

The code looks OK but I would like to see more tests.

&gt; LayoutTests/editing/pasteboard/script-tests/dataTransfer-setData-getData.js:103
&gt; +    test(&quot;text/uri-list&quot;, &quot;# comment\r\nhttp://test.com\r\nhttp://check.com&quot;, 
&gt; +         &quot;URL&quot;, &quot;http://test.com/&quot;);

Can you add some more test cases like setting URL and getting text/uri-list?  What about setting a text/uri-list with comments but no urls and getting URL?  What about setting a URL with multiple urls and getting with URL?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289506</commentid>
    <comment_count>3</comment_count>
      <attachid>69763</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-10-05 02:15:13 -0700</bug_when>
    <thetext>Created attachment 69763
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289664</commentid>
    <comment_count>4</comment_count>
      <attachid>69763</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-10-05 09:39:52 -0700</bug_when>
    <thetext>Comment on attachment 69763
Patch

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

&gt; LayoutTests/editing/pasteboard/script-tests/dataTransfer-setData-getData.js:119
&gt; +    test(&quot;text/uri-list&quot;, &quot;# comment\r\n# comment 2\r\n# comment 3&quot;, 
&gt; +         &quot;URL&quot;, null);

The spec says this should return an empty string, not null:
http://dev.w3.org/html5/spec/dnd.html
&quot;If there is no data with that format, or if there is but it has no URLs, then the method must return the empty string.&quot;

&gt; WebCore/platform/chromium/ChromiumDataObject.cpp:145
&gt;          success = !m_url.isEmpty();
&gt;          return m_url.string();

Maybe the fix is as simple as
  success = !m_url.isEmpty() || !m_uriList.isEmpty();
?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289752</commentid>
    <comment_count>5</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-10-05 11:07:55 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 69763 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=69763&amp;action=review
&gt; 
&gt; &gt; LayoutTests/editing/pasteboard/script-tests/dataTransfer-setData-getData.js:119
&gt; &gt; +    test(&quot;text/uri-list&quot;, &quot;# comment\r\n# comment 2\r\n# comment 3&quot;, 
&gt; &gt; +         &quot;URL&quot;, null);
&gt; 
&gt; The spec says this should return an empty string, not null:
&gt; http://dev.w3.org/html5/spec/dnd.html
&gt; &quot;If there is no data with that format, or if there is but it has no URLs, then the method must return the empty string.&quot;
&gt; 
&gt; &gt; WebCore/platform/chromium/ChromiumDataObject.cpp:145
&gt; &gt;          success = !m_url.isEmpty();
&gt; &gt;          return m_url.string();
&gt; 
&gt; Maybe the fix is as simple as
&gt;   success = !m_url.isEmpty() || !m_uriList.isEmpty();
&gt; ?

It probably makes sense to address this in another patch (since getData(&quot;text&quot;) has the same problem as well then). Maybe we should just delete the empty cases from this patch before landing it and fix the undefined behavior in a separate patch and add test cases there?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289756</commentid>
    <comment_count>6</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-10-05 11:12:44 -0700</bug_when>
    <thetext>Fixing in a follow up patch sounds fine since it sounds like this isn&apos;t a regression.  Instead of deleting the test case, keep the test case with the correct value:
test(&quot;text/uri-list&quot;, &quot;# comment\r\n# comment 2\r\n# comment 3&quot;, 
     &quot;URL&quot;, &quot;&quot;);

But check in an -expected.txt file with the word FAIL in it.  When we fix the code, we can check in the new -expected.txt file.  We do this for other tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289765</commentid>
    <comment_count>7</comment_count>
      <attachid>69815</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-10-05 11:20:16 -0700</bug_when>
    <thetext>Created attachment 69815
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289828</commentid>
    <comment_count>8</comment_count>
      <attachid>69815</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-05 13:13:55 -0700</bug_when>
    <thetext>Comment on attachment 69815
Patch

Clearing flags on attachment: 69815

Committed r69138: &lt;http://trac.webkit.org/changeset/69138&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289829</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-05 13:14:00 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69713</attachid>
            <date>2010-10-04 16:30:40 -0700</date>
            <delta_ts>2010-10-05 02:15:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>foo.patch</filename>
            <type>text/plain</type>
            <size>13539</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwMTk4OTY4Li45ODg5YzU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTAtMTAt
MDQgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBnZXREYXRhKCd0ZXh0
L3VyaS1saXN0Jykgc2hvdWxkIHJldHVybiB0aGUgc2FtZSB0aGluZyB0aGF0IHdhcyBwYXNzZWQg
dG8gc2V0RGF0YSgndGV4dC91cmktbGlzdCcpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00Njk0MworCisgICAgICAgIFVwZGF0ZSB0aGUgbGF5b3V0IHRl
c3QgdG8gY2hlY2sgdGhhdCBnZXREYXRhKCd0ZXh0L3VyaS1saXN0JykgcmV0dXJucworICAgICAg
ICB0aGUgc2FtZSB0aGluZyB0aGF0IHdhcyBwYXNzZWQgdG8gc2V0RGF0YSgndGV4dC91cmktbGlz
dCcpLgorCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL2RhdGFUcmFuc2Zlci1zZXREYXRh
LWdldERhdGEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9zY3Jp
cHQtdGVzdHMvZGF0YVRyYW5zZmVyLXNldERhdGEtZ2V0RGF0YS5qczoKKyAgICAgICAgKGRvRHJv
cCk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKHJ1blRlc3QpOgorICAgICAgICAqIGZhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzOgorICAgICAgICAoc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKTogVXBkYXRlZCB0byBhbGxvdyB1c2Ugb2YgXG4gYW5kIFxyIGluIGV4cGVjdGVkIGFyZ3Vt
ZW50LgorCiAyMDEwLTEwLTA0ICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAg
ICAgICBTa2lwIGEgdGltaW5nLW91dCB0ZXN0IG9uIFdpbmRvd3MKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kYXRhVHJhbnNmZXItc2V0RGF0YS1nZXREYXRhLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kYXRhVHJhbnNmZXIt
c2V0RGF0YS1nZXREYXRhLWV4cGVjdGVkLnR4dAppbmRleCAwNjNhNmJiLi45ZDQ4MTY5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZGF0YVRyYW5zZmVyLXNldERh
dGEtZ2V0RGF0YS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJv
YXJkL2RhdGFUcmFuc2Zlci1zZXREYXRhLWdldERhdGEtZXhwZWN0ZWQudHh0CkBAIC01LDMwICs1
LDI5IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIC0tLSBUZXN0IHNldC9nZXQgJ1VSTCc6
CiBQQVNTIGdldERhdGFSZXN1bHRUeXBlIGlzICJzdHJpbmciCi1QQVNTIGdldERhdGFMaW5lcy5s
ZW5ndGggaXMgMQotUEFTUyBnZXREYXRhTGluZXNbMF0ucmVwbGFjZSgvXC8kLywgJycpIGlzICJo
dHRwOi8vdGVzdC5jb20iCitQQVNTIGdldERhdGFSZXN1bHQgaXMgImh0dHA6Ly90ZXN0LmNvbS8i
CiAtLS0gVGVzdCBzZXQvZ2V0ICd0ZXh0L3VyaS1saXN0JzoKIFBBU1MgZ2V0RGF0YVJlc3VsdFR5
cGUgaXMgInN0cmluZyIKLVBBU1MgZ2V0RGF0YUxpbmVzLmxlbmd0aCBpcyAyCi1QQVNTIGdldERh
dGFMaW5lc1swXS5yZXBsYWNlKC9cLyQvLCAnJykgaXMgImh0dHA6Ly90ZXN0LmNvbSIKLVBBU1Mg
Z2V0RGF0YUxpbmVzWzFdLnJlcGxhY2UoL1wvJC8sICcnKSBpcyAiaHR0cDovL2NoZWNrLmNvbSIK
K1BBU1MgZ2V0RGF0YVJlc3VsdCBpcyAiaHR0cDovL3Rlc3QuY29tXHJcbmh0dHA6Ly9jaGVjay5j
b20iCistLS0gVGVzdCBzZXQvZ2V0ICd0ZXh0L3VyaS1saXN0JyB1c2luZyAnXG4nOgorUEFTUyBn
ZXREYXRhUmVzdWx0VHlwZSBpcyAic3RyaW5nIgorUEFTUyBnZXREYXRhUmVzdWx0IGlzICJodHRw
Oi8vdGVzdC5jb21cbmh0dHA6Ly9jaGVjay5jb20iCiAtLS0gVGVzdCBzZXQgJ3RleHQvdXJpLWxp
c3QnLCBnZXQgJ1VSTCc6CiBQQVNTIGdldERhdGFSZXN1bHRUeXBlIGlzICJzdHJpbmciCi1QQVNT
IGdldERhdGFMaW5lcy5sZW5ndGggaXMgMQotUEFTUyBnZXREYXRhTGluZXNbMF0ucmVwbGFjZSgv
XC8kLywgJycpIGlzICJodHRwOi8vdGVzdC5jb20iCitQQVNTIGdldERhdGFSZXN1bHQgaXMgImh0
dHA6Ly90ZXN0LmNvbS8iCiAtLS0gVGVzdCBzZXQgJ3RleHQvdXJpLWxpc3QnLCBnZXQgJ1VSTCcs
IHVzaW5nIG9ubHkgJ1xuJzoKIFBBU1MgZ2V0RGF0YVJlc3VsdFR5cGUgaXMgInN0cmluZyIKLVBB
U1MgZ2V0RGF0YUxpbmVzLmxlbmd0aCBpcyAxCi1QQVNTIGdldERhdGFMaW5lc1swXS5yZXBsYWNl
KC9cLyQvLCAnJykgaXMgImh0dHA6Ly90ZXN0LmNvbSIKK1BBU1MgZ2V0RGF0YVJlc3VsdCBpcyAi
aHR0cDovL3Rlc3QuY29tLyIKIC0tLSBUZXN0IHNldC9nZXQgJ3RleHQvdXJpLWxpc3QnIHdpdGgg
Y29tbWVudHM6CiBQQVNTIGdldERhdGFSZXN1bHRUeXBlIGlzICJzdHJpbmciCi1QQVNTIGdldERh
dGFMaW5lcy5sZW5ndGggaXMgMgotUEFTUyBnZXREYXRhTGluZXNbMF0ucmVwbGFjZSgvXC8kLywg
JycpIGlzICJodHRwOi8vdGVzdC5jb20iCi1QQVNTIGdldERhdGFMaW5lc1sxXS5yZXBsYWNlKC9c
LyQvLCAnJykgaXMgImh0dHA6Ly9jaGVjay5jb20iCitQQVNTIGdldERhdGFSZXN1bHQgaXMgIiMg
Y29tbWVudFxyXG5odHRwOi8vdGVzdC5jb21cclxuaHR0cDovL2NoZWNrLmNvbSIKKy0tLSBUZXN0
IHNldCAndGV4dC91cmktbGlzdCcsIGdldCAnVVJMJyB3aXRoIGNvbW1lbnRzOgorUEFTUyBnZXRE
YXRhUmVzdWx0VHlwZSBpcyAic3RyaW5nIgorUEFTUyBnZXREYXRhUmVzdWx0IGlzICJodHRwOi8v
dGVzdC5jb20vIgogLS0tIFRlc3Qgc2V0L2dldCAndGV4dC9wbGFpbic6CiBQQVNTIGdldERhdGFS
ZXN1bHRUeXBlIGlzICJzdHJpbmciCi1QQVNTIGdldERhdGFMaW5lcy5sZW5ndGggaXMgMQotUEFT
UyBnZXREYXRhTGluZXNbMF0ucmVwbGFjZSgvXC8kLywgJycpIGlzICJMb3JlbSBpcHN1bSBkb2xv
ciBzaXQgYW1ldC4iCitQQVNTIGdldERhdGFSZXN1bHQgaXMgIkxvcmVtIGlwc3VtIGRvbG9yIHNp
dCBhbWV0LiIKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvc2NyaXB0LXRl
c3RzL2RhdGFUcmFuc2Zlci1zZXREYXRhLWdldERhdGEuanMgYi9MYXlvdXRUZXN0cy9lZGl0aW5n
L3Bhc3RlYm9hcmQvc2NyaXB0LXRlc3RzL2RhdGFUcmFuc2Zlci1zZXREYXRhLWdldERhdGEuanMK
aW5kZXggZjEwZDc4NS4uOGI2YjMzMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9w
YXN0ZWJvYXJkL3NjcmlwdC10ZXN0cy9kYXRhVHJhbnNmZXItc2V0RGF0YS1nZXREYXRhLmpzCisr
KyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9zY3JpcHQtdGVzdHMvZGF0YVRyYW5z
ZmVyLXNldERhdGEtZ2V0RGF0YS5qcwpAQCAtMTIsMTcgKzEyLDE1IEBAIGRyYWdUYXJnZXQuc3R5
bGUuaGVpZ2h0ID0gIjEwMHB4IjsKIGRvY3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKGRyYWdUYXJn
ZXQsIGRyYWdNZSk7CiAKIHZhciBzZXREYXRhVHlwZTsKLXZhciBzZXREYXRhVmFsdWVzOwordmFy
IHNldERhdGFWYWx1ZTsKIHZhciBnZXREYXRhVHlwZTsKLXZhciBnZXREYXRhVmFsdWVzOwordmFy
IGdldERhdGFWYWx1ZTsKIHZhciBnZXREYXRhUmVzdWx0OwogdmFyIGdldERhdGFSZXN1bHRUeXBl
OwogdmFyIGdldERhdGFMaW5lczsKIAotdmFyIENSTEYgPSAiXHJcbiI7Ci0KIGRyYWdNZS5hZGRF
dmVudExpc3RlbmVyKCJkcmFnc3RhcnQiLCBmdW5jdGlvbigpIHsKLSAgICBldmVudC5kYXRhVHJh
bnNmZXIuc2V0RGF0YShzZXREYXRhVHlwZSwgc2V0RGF0YVZhbHVlcy5qb2luKENSTEYpKTsKKyAg
ICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YShzZXREYXRhVHlwZSwgc2V0RGF0YVZhbHVlKTsK
IH0sIGZhbHNlKTsKIAogZHJhZ1RhcmdldC5hZGRFdmVudExpc3RlbmVyKCJkcmFnZW50ZXIiLCBm
dW5jdGlvbigpIHsKQEAgLTYzLDUwICs2MSw1MCBAQCBmdW5jdGlvbiBkb0Ryb3AoKSB7CiAgICAg
Z2V0RGF0YVJlc3VsdCA9IGV2ZW50LmRhdGFUcmFuc2Zlci5nZXREYXRhKGdldERhdGFUeXBlKTsK
ICAgICBnZXREYXRhUmVzdWx0VHlwZSA9IHR5cGVvZiBnZXREYXRhUmVzdWx0OwogICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygiZ2V0RGF0YVJlc3VsdFR5cGUiLCAic3RyaW5nIik7Ci0gICAgZ2V0
RGF0YUxpbmVzID0gZ2V0RGF0YVJlc3VsdC5zcGxpdChDUkxGKTsgICAgCi0gICAgLy8gcmVtb3Zl
IHBvdGVudGlhbCBjb21tZW50cwotICAgIGdldERhdGFMaW5lcyA9IGdldERhdGFMaW5lcy5maWx0
ZXIoZnVuY3Rpb24obGluZSkgewotICAgICAgcmV0dXJuIGxpbmVbMF0gIT09ICcjJzsKLSAgICB9
KTsKLSAgICBzaG91bGRFdmFsdWF0ZVRvKCJnZXREYXRhTGluZXMubGVuZ3RoIiwgZ2V0RGF0YVZh
bHVlcy5sZW5ndGgpOwotICAgIGZvciAoaSA9IDA7IGkgPCBnZXREYXRhTGluZXMubGVuZ3RoICYm
IGkgPCBnZXREYXRhVmFsdWVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygiZ2V0RGF0YUxpbmVzWyIgKyBpICsgIl0ucmVwbGFjZSgvXFwvJC8sICcnKSIsIGdl
dERhdGFWYWx1ZXNbaV0pOwotICAgIH0KKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldERh
dGFSZXN1bHQiLCBnZXREYXRhVmFsdWUpOwogfQogCiBmdW5jdGlvbiB0ZXN0KHNldFR5cGUsIHNl
dFZhbHVlcywgZ2V0VHlwZSwgZ2V0VmFsdWVzKSB7CiAgICAgc2V0RGF0YVR5cGUgPSBzZXRUeXBl
OwotICAgIHNldERhdGFWYWx1ZXMgPSBzZXRWYWx1ZXM7CisgICAgc2V0RGF0YVZhbHVlID0gc2V0
VmFsdWVzOwogICAgIGdldERhdGFUeXBlID0gZ2V0VHlwZTsKLSAgICBnZXREYXRhVmFsdWVzID0g
Z2V0VmFsdWVzOworICAgIGdldERhdGFWYWx1ZSA9IGdldFZhbHVlczsKICAgICBkcmFnT250b0Ry
YWdUYXJnZXQoKTsKIH0KIAogZnVuY3Rpb24gcnVuVGVzdCgpCiB7CiAgICAgZGVidWcoIi0tLSBU
ZXN0IHNldC9nZXQgJ1VSTCc6Iik7Ci0gICAgdGVzdCgiVVJMIiwgWyJodHRwOi8vdGVzdC5jb20i
XSwgCi0gICAgICAgICAiVVJMIiwgWyJodHRwOi8vdGVzdC5jb20iXSk7CisgICAgdGVzdCgiVVJM
IiwgImh0dHA6Ly90ZXN0LmNvbSIsIAorICAgICAgICAgIlVSTCIsICJodHRwOi8vdGVzdC5jb20v
Iik7CiAKICAgICBkZWJ1ZygiLS0tIFRlc3Qgc2V0L2dldCAndGV4dC91cmktbGlzdCc6Iik7Ci0g
ICAgdGVzdCgidGV4dC91cmktbGlzdCIsIFsiaHR0cDovL3Rlc3QuY29tIiwgImh0dHA6Ly9jaGVj
ay5jb20iXSwgCi0gICAgICAgICAidGV4dC91cmktbGlzdCIsIFsiaHR0cDovL3Rlc3QuY29tIiwg
Imh0dHA6Ly9jaGVjay5jb20iXSk7CisgICAgdGVzdCgidGV4dC91cmktbGlzdCIsICJodHRwOi8v
dGVzdC5jb21cclxuaHR0cDovL2NoZWNrLmNvbSIsIAorICAgICAgICAgInRleHQvdXJpLWxpc3Qi
LCAiaHR0cDovL3Rlc3QuY29tXHJcbmh0dHA6Ly9jaGVjay5jb20iKTsKKworICAgIGRlYnVnKCIt
LS0gVGVzdCBzZXQvZ2V0ICd0ZXh0L3VyaS1saXN0JyB1c2luZyAnXFxuJzoiKTsKKyAgICB0ZXN0
KCJ0ZXh0L3VyaS1saXN0IiwgImh0dHA6Ly90ZXN0LmNvbVxuaHR0cDovL2NoZWNrLmNvbSIsIAor
ICAgICAgICAgInRleHQvdXJpLWxpc3QiLCAiaHR0cDovL3Rlc3QuY29tXG5odHRwOi8vY2hlY2su
Y29tIik7CiAKICAgICBkZWJ1ZygiLS0tIFRlc3Qgc2V0ICd0ZXh0L3VyaS1saXN0JywgZ2V0ICdV
UkwnOiIpOwotICAgIHRlc3QoInRleHQvdXJpLWxpc3QiLCBbImh0dHA6Ly90ZXN0LmNvbSIsICJo
dHRwOi8vY2hlY2suY29tIl0sIAotICAgICAgICAgIlVSTCIsIFsiaHR0cDovL3Rlc3QuY29tIl0p
OworICAgIHRlc3QoInRleHQvdXJpLWxpc3QiLCAiaHR0cDovL3Rlc3QuY29tXHJcbmh0dHA6Ly9j
aGVjay5jb20iLCAKKyAgICAgICAgICJVUkwiLCAiaHR0cDovL3Rlc3QuY29tLyIpOwogCiAgICAg
ZGVidWcoIi0tLSBUZXN0IHNldCAndGV4dC91cmktbGlzdCcsIGdldCAnVVJMJywgdXNpbmcgb25s
eSAnXFxuJzoiKTsKLSAgICB0ZXN0KCJ0ZXh0L3VyaS1saXN0IiwgWyJodHRwOi8vdGVzdC5jb21c
bmh0dHA6Ly9jaGVjay5jb20iXSwgCi0gICAgICAgICAiVVJMIiwgWyJodHRwOi8vdGVzdC5jb20i
XSk7CisgICAgdGVzdCgidGV4dC91cmktbGlzdCIsICJodHRwOi8vdGVzdC5jb21cbmh0dHA6Ly9j
aGVjay5jb20iLAorICAgICAgICAgIlVSTCIsICJodHRwOi8vdGVzdC5jb20vIik7CiAKICAgICBk
ZWJ1ZygiLS0tIFRlc3Qgc2V0L2dldCAndGV4dC91cmktbGlzdCcgd2l0aCBjb21tZW50czoiKTsK
LSAgICB0ZXN0KCJ0ZXh0L3VyaS1saXN0IiwgWyIjIGNvbW1lbnQiLCAiaHR0cDovL3Rlc3QuY29t
IiwgImh0dHA6Ly9jaGVjay5jb20iXSwgCi0gICAgICAgICAidGV4dC91cmktbGlzdCIsIFsiaHR0
cDovL3Rlc3QuY29tIiwgImh0dHA6Ly9jaGVjay5jb20iXSk7CisgICAgdGVzdCgidGV4dC91cmkt
bGlzdCIsICIjIGNvbW1lbnRcclxuaHR0cDovL3Rlc3QuY29tXHJcbmh0dHA6Ly9jaGVjay5jb20i
LCAKKyAgICAgICAgICJ0ZXh0L3VyaS1saXN0IiwgIiMgY29tbWVudFxyXG5odHRwOi8vdGVzdC5j
b21cclxuaHR0cDovL2NoZWNrLmNvbSIpOworCisgICAgZGVidWcoIi0tLSBUZXN0IHNldCAndGV4
dC91cmktbGlzdCcsIGdldCAnVVJMJyB3aXRoIGNvbW1lbnRzOiIpOworICAgIHRlc3QoInRleHQv
dXJpLWxpc3QiLCAiIyBjb21tZW50XHJcbmh0dHA6Ly90ZXN0LmNvbVxyXG5odHRwOi8vY2hlY2su
Y29tIiwgCisgICAgICAgICAiVVJMIiwgImh0dHA6Ly90ZXN0LmNvbS8iKTsKIAogICAgIGRlYnVn
KCItLS0gVGVzdCBzZXQvZ2V0ICd0ZXh0L3BsYWluJzoiKTsKLSAgICB0ZXN0KCJ0ZXh0L3BsYWlu
IiwgWyJMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldC4iXSwgCi0gICAgICAgICAidGV4dC9wbGFp
biIsIFsiTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQuIl0pOworICAgIHRlc3QoInRleHQvcGxh
aW4iLCAiTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQuIiwgCisgICAgICAgICAidGV4dC9wbGFp
biIsICJMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldC4iKTsKIH0KIAogaWYgKHdpbmRvdy5ldmVu
dFNlbmRlcikgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cwppbmRleCA4N2RiNWQ0Li4zNTM2YTg5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcwpAQCAtMTI0LDcgKzEyNCw3IEBAIGZ1bmN0aW9uIHNob3VsZEJl
TnVsbChfYSkgeyBzaG91bGRCZShfYSwgIm51bGwiKTsgfQogCiBmdW5jdGlvbiBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoYSwgYikKIHsKLSAgdmFyIHVuZXZhbGVkU3RyaW5nID0gJyInICsgYi5yZXBs
YWNlKC9cXC9nLCAiXFxcXCIpLnJlcGxhY2UoLyIvZywgIlwiIikgKyAnIic7CisgIHZhciB1bmV2
YWxlZFN0cmluZyA9ICciJyArIGIucmVwbGFjZSgvXFwvZywgIlxcXFwiKS5yZXBsYWNlKC8iL2cs
ICJcIiIpLnJlcGxhY2UoL1xuL2csICJcXG4iKS5yZXBsYWNlKC9cci9nLCAiXFxyIikgKyAnIic7
CiAgIHNob3VsZEJlKGEsIHVuZXZhbGVkU3RyaW5nKTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0ZDc5ZDEwLi5lNDExN2I0IDEw
MDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIzIEBACisyMDEwLTEwLTA0ICBEYW5pZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtj
aHJvbWl1bV0gZ2V0RGF0YSgndGV4dC91cmktbGlzdCcpIHNob3VsZCByZXR1cm4gdGhlIHNhbWUg
dGhpbmcgdGhhdCB3YXMgcGFzc2VkIHRvIHNldERhdGEoJ3RleHQvdXJpLWxpc3QnKQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY5NDMKKworICAgICAg
ICBXZSBubyBsb25nZXIgcGFyc2UgdGhlIGlucHV0IG9mIHNldERhdGEoJ3RleHQvdXJpLWxpc3Qn
KSBhbmQgb25seSBzdG9yZQorICAgICAgICB0aGUgdmFsaWQgVVJMcyB0aGF0IHdlcmUgcGFyc2Vk
IG91dC4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3Bhc3RlYm9hcmQvZGF0YVRyYW5zZmVyLXNl
dERhdGEtZ2V0RGF0YS5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1
bURhdGFPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21pdW1EYXRhT2JqZWN0Ojpj
bGVhckRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21pdW1EYXRhT2JqZWN0OjpjbGVhckFs
bEV4Y2VwdEZpbGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtRGF0YU9iamVjdDo6dHlw
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21pdW1EYXRhT2JqZWN0OjpnZXREYXRhKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNocm9taXVtRGF0YU9iamVjdDo6c2V0RGF0YSk6CisgICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0Lmg6CisKIDIwMTAtMTAtMDEgIFZp
Y3RvcmlhIEtpcnN0ICA8dnJrQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSmFt
ZXMgUm9iaW5zb24uCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9t
aXVtRGF0YU9iamVjdC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0
YU9iamVjdC5jcHAKaW5kZXggYzU3OWNlYy4uZWM3N2JiMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3QuY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmNwcApAQCAtNDgsNyArNDgsNyBAQCB2
b2lkIENocm9taXVtRGF0YU9iamVjdDo6Y2xlYXJEYXRhKGNvbnN0IFN0cmluZyYgdHlwZSkKICAg
ICB9CiAKICAgICBpZiAodHlwZSA9PSBtaW1lVHlwZVVSTCB8fCB0eXBlID09IG1pbWVUeXBlVGV4
dFVSSUxpc3QpIHsKLSAgICAgICAgbV91cmlMaXN0LmNsZWFyKCk7CisgICAgICAgIG1fdXJpTGlz
dCA9ICIiOwogICAgICAgICBtX3VybCA9IEtVUkwoKTsKICAgICAgICAgbV91cmxUaXRsZSA9ICIi
OwogICAgICAgICByZXR1cm47CkBAIC03Niw3ICs3Niw3IEBAIHZvaWQgQ2hyb21pdW1EYXRhT2Jq
ZWN0OjpjbGVhckFsbEV4Y2VwdEZpbGVzKCkKIHsKICAgICBtX3VybFRpdGxlID0gIiI7CiAgICAg
bV91cmwgPSBLVVJMKCk7Ci0gICAgbV91cmlMaXN0LmNsZWFyKCk7CisgICAgbV91cmlMaXN0ID0g
IiI7CiAgICAgbV9kb3dubG9hZE1ldGFkYXRhID0gIiI7CiAgICAgbV9maWxlRXh0ZW5zaW9uID0g
IiI7CiAgICAgbV9wbGFpblRleHQgPSAiIjsKQEAgLTEwOSwxMCArMTA5LDExIEBAIEhhc2hTZXQ8
U3RyaW5nPiBDaHJvbWl1bURhdGFPYmplY3Q6OnR5cGVzKCkgY29uc3QKICAgICAgICAgcmVzdWx0
cy5hZGQobWltZVR5cGVUZXh0UGxhaW4pOwogICAgIH0KIAotICAgIGlmICghbV91cmwuaXNFbXB0
eSgpKSB7CisgICAgaWYgKG1fdXJsLmlzVmFsaWQoKSkKICAgICAgICAgcmVzdWx0cy5hZGQobWlt
ZVR5cGVVUkwpOworCisgICAgaWYgKCFtX3VyaUxpc3QuaXNFbXB0eSgpKQogICAgICAgICByZXN1
bHRzLmFkZChtaW1lVHlwZVRleHRVUklMaXN0KTsKLSAgICB9CiAKICAgICBpZiAoIW1fdGV4dEh0
bWwuaXNFbXB0eSgpKQogICAgICAgICByZXN1bHRzLmFkZChtaW1lVHlwZVRleHRIVE1MKTsKQEAg
LTE0NywxNyArMTQ4LDggQEAgU3RyaW5nIENocm9taXVtRGF0YU9iamVjdDo6Z2V0RGF0YShjb25z
dCBTdHJpbmcmIHR5cGUsIGJvb2wmIHN1Y2Nlc3MpCiAKICAgICBpZiAodHlwZSA9PSBtaW1lVHlw
ZVRleHRVUklMaXN0KSB7CiAgICAgICAgIEFTU0VSVChtX3VybC5pc0VtcHR5KCkgPT0gbV91cmlM
aXN0LmlzRW1wdHkoKSk7Ci0gICAgICAgIGlmIChtX3VyaUxpc3QuaXNFbXB0eSgpKSB7Ci0gICAg
ICAgICAgICBzdWNjZXNzID0gZmFsc2U7Ci0gICAgICAgICAgICByZXR1cm4gIiI7Ci0gICAgICAg
IH0KLSAgICAgICAgU3RyaW5nIHVyaUxpc3RTdHJpbmcobV91cmlMaXN0WzBdKTsKLSAgICAgICAg
Zm9yIChzaXplX3QgaSA9IDE7IGkgPCBtX3VyaUxpc3Quc2l6ZSgpOyBpKyspIHsKLSAgICAgICAg
ICAgIHVyaUxpc3RTdHJpbmcuYXBwZW5kKHRleHRNSU1FVHlwZUxpbmVTZXBhcmF0b3IpOwotICAg
ICAgICAgICAgdXJpTGlzdFN0cmluZy5hcHBlbmQobV91cmlMaXN0W2ldKTsKLSAgICAgICAgfQot
ICAgICAgICBzdWNjZXNzID0gdHJ1ZTsKLSAgICAgICAgcmV0dXJuIHVyaUxpc3RTdHJpbmc7Cisg
ICAgICAgIHN1Y2Nlc3MgPSAhbV91cmlMaXN0LmlzRW1wdHkoKTsKKyAgICAgICAgcmV0dXJuIG1f
dXJpTGlzdDsKICAgICB9CiAKICAgICBpZiAodHlwZSA9PSBtaW1lVHlwZVRleHRIVE1MKSB7CkBA
IC0xOTQsMzMgKzE4NiwyOSBAQCBib29sIENocm9taXVtRGF0YU9iamVjdDo6c2V0RGF0YShjb25z
dCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgZGF0YSkKIAogICAgIGlmICh0eXBlID09IG1p
bWVUeXBlVVJMIHx8IHR5cGUgPT0gbWltZVR5cGVUZXh0VVJJTGlzdCkgewogICAgICAgICBtX3Vy
bCA9IEtVUkwoKTsKLSAgICAgICAgLy8gTGluZSBzZXBhcmF0b3IgaXMgXHJcbiBwZXIgUkZDIDI0
ODMgLSBob3dldmVyLCBmb3IgY29tcGF0aWJpbGl0eSByZWFzb25zCi0gICAgICAgIC8vIHdlIGFs
c28gYWxsb3cganVzdCBcbiBoZXJlLgotICAgICAgICBkYXRhLnNwbGl0KCdcbicsIG1fdXJpTGlz
dCk7Ci0gICAgICAgIC8vIFN0cmlwIHdoaXRlIHNwYWNlIG9uIGFsbCBsaW5lcywgaW5jbHVkaW5n
IHRyYWlsaW5nIFxyIGZyb20gYWJvdmUgc3BsaXQuCi0gICAgICAgIC8vIElmIHRoaXMgbGVhdmVz
IGEgbGluZSBlbXB0eSwgcmVtb3ZlIGl0IGNvbXBsZXRlbHkuCi0gICAgICAgIC8vCi0gICAgICAg
IC8vIEFsc28sIGNvcHkgdGhlIGZpcnN0IHZhbGlkIFVSTCBpbnRvIHRoZSAndXJsJyBtZW1iZXIg
YXMgd2VsbC4KLSAgICAgICAgLy8gSW4gY2FzZSBubyBlbnRyeSBpcyBhIHZhbGlkIFVSTCAoaS5l
LiwgcmVtYXJrcyBvbmx5KSwgdGhlbiB3ZSBsZWF2ZSAndXJsJyBlbXB0eS4KLSAgICAgICAgLy8g
SS5lLiwgaW4gdGhhdCBjYXNlIHN1YnNlcXVlbnQgY2FsbHMgdG8gZ2V0RGF0YSgiVVJMIikgd2ls
bCBnZXQgYW4gZW1wdHkgc3RyaW5nLgotICAgICAgICAvLyBUaGlzIGlzIGluIGxpbmUgd2l0aCB0
aGUgSFRNTDUgc3BlYyAoc2VlICJUaGUgRHJhZ0V2ZW50IGFuZCBEYXRhVHJhbnNmZXIgaW50ZXJm
YWNlcyIpLgotICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fdXJpTGlzdC5zaXplKCk7
IC8qKi8pIHsKLSAgICAgICAgICAgIFN0cmluZyYgbGluZSA9IG1fdXJpTGlzdFtpXTsKKyAgICAg
ICAgVmVjdG9yPFN0cmluZz4gdXJpTGlzdDsKKyAgICAgICAgLy8gTGluZSBzZXBhcmF0b3IgaXMg
XHJcbiBwZXIgUkZDIDI0ODMgLSBob3dldmVyLCBmb3IgY29tcGF0aWJpbGl0eQorICAgICAgICAv
LyByZWFzb25zIHdlIGFsc28gYWxsb3cganVzdCBcbiBoZXJlLgorICAgICAgICBkYXRhLnNwbGl0
KCdcbicsIHVyaUxpc3QpOworICAgICAgICAvLyBQcm9jZXNzIHRoZSBpbnB1dCBhbmQgY29weSB0
aGUgZmlyc3QgdmFsaWQgVVJMIGludG8gdGhlIHVybCBtZW1iZXIuCisgICAgICAgIC8vIEluIGNh
c2Ugbm8gVVJMcyBjYW4gYmUgZm91bmQsIHN1YnNlcXVlbnQgY2FsbHMgdG8gZ2V0RGF0YSgiVVJM
IikKKyAgICAgICAgLy8gd2lsbCBnZXQgYW4gZW1wdHkgc3RyaW5nLiBUaGlzIGlzIGluIGxpbmUg
d2l0aCB0aGUgSFRNTDUgc3BlYyAoc2VlCisgICAgICAgIC8vICJUaGUgRHJhZ0V2ZW50IGFuZCBE
YXRhVHJhbnNmZXIgaW50ZXJmYWNlcyIpLgorICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IHVyaUxpc3Quc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyYgbGluZSA9IHVyaUxp
c3RbaV07CiAgICAgICAgICAgICBsaW5lID0gbGluZS5zdHJpcFdoaXRlU3BhY2UoKTsKICAgICAg
ICAgICAgIGlmIChsaW5lLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgICAgIG1fdXJpTGlzdC5y
ZW1vdmUoaSk7CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICArK2k7Ci0gICAgICAgICAgICAvLyBPbmx5IGNvcHkgdGhlIGZpcnN0IHZhbGlkIFVS
TC4KLSAgICAgICAgICAgIGlmIChtX3VybC5pc1ZhbGlkKCkpCi0gICAgICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgICAgICBpZiAobGluZVswXSA9PSAnIycpCiAgICAgICAgICAgICAgICAg
Y29udGludWU7CiAgICAgICAgICAgICBLVVJMIHVybCA9IEtVUkwoUGFyc2VkVVJMU3RyaW5nLCBs
aW5lKTsKLSAgICAgICAgICAgIGlmICh1cmwuaXNWYWxpZCgpKQorICAgICAgICAgICAgaWYgKHVy
bC5pc1ZhbGlkKCkpIHsKICAgICAgICAgICAgICAgICBtX3VybCA9IHVybDsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQorICAgICAgICBtX3VyaUxpc3Qg
PSBkYXRhOwogICAgICAgICBBU1NFUlQobV91cmwuaXNFbXB0eSgpID09IG1fdXJpTGlzdC5pc0Vt
cHR5KCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVjdC5oIGIvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3QuaAppbmRleCAxNTYyNDIyLi5jZDU4ZWNiIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVjdC5o
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmgKQEAg
LTExMSw3ICsxMTEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8vIHN0cmluZyB2
YWx1ZTsgc2V0dGluZyBtX3VyaUxpc3Qgd2lsbCBjYXVzZSBpdHMgY29udGVudHMgdG8gYmUgcGFy
c2VkCiAgICAgICAgIC8vIGFjY29yZGluZyB0byBSRkMgMjQ4MyBhbmQgdGhlIGZpcnN0IFVSTCBm
b3VuZCB3aWxsIGJlIHNldCBpbiBtX3VybC4KICAgICAgICAgS1VSTCBtX3VybDsKLSAgICAgICAg
VmVjdG9yPFN0cmluZz4gbV91cmlMaXN0OworICAgICAgICBTdHJpbmcgbV91cmlMaXN0OwogICAg
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>
<flag name="review"
          id="59446"
          type_id="1"
          status="-"
          setter="tony"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69763</attachid>
            <date>2010-10-05 02:15:13 -0700</date>
            <delta_ts>2010-10-05 11:20:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>foo.patch</filename>
            <type>text/plain</type>
            <size>14774</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwMTk4OTY4Li5jOTcxYmU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTAtMTAt
MDUgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBnZXREYXRhKCd0ZXh0
L3VyaS1saXN0Jykgc2hvdWxkIHJldHVybiB0aGUgc2FtZSB0aGluZyB0aGF0IHdhcyBwYXNzZWQg
dG8gc2V0RGF0YSgndGV4dC91cmktbGlzdCcpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00Njk0MworCisgICAgICAgIFVwZGF0ZSB0aGUgbGF5b3V0IHRl
c3QgdG8gY2hlY2sgdGhhdCBnZXREYXRhKCd0ZXh0L3VyaS1saXN0JykgcmV0dXJucworICAgICAg
ICB0aGUgc2FtZSB0aGluZyB0aGF0IHdhcyBwYXNzZWQgdG8gc2V0RGF0YSgndGV4dC91cmktbGlz
dCcpLgorCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL2RhdGFUcmFuc2Zlci1zZXREYXRh
LWdldERhdGEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9zY3Jp
cHQtdGVzdHMvZGF0YVRyYW5zZmVyLXNldERhdGEtZ2V0RGF0YS5qczoKKyAgICAgICAgKGRvRHJv
cCk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKHJ1blRlc3QpOgorICAgICAgICAqIGZhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzOgorICAgICAgICAoc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKTogVXBkYXRlZCB0byBhbGxvdyAnXG4nIGFuZCAnXHInIGluIGV4cGVjdGVkIGFyZ3VtZW50
LgorCiAyMDEwLTEwLTA0ICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBTa2lwIGEgdGltaW5nLW91dCB0ZXN0IG9uIFdpbmRvd3MKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kYXRhVHJhbnNmZXItc2V0RGF0YS1nZXREYXRhLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kYXRhVHJhbnNmZXItc2V0
RGF0YS1nZXREYXRhLWV4cGVjdGVkLnR4dAppbmRleCAwNjNhNmJiLi42YzYzZTFhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZGF0YVRyYW5zZmVyLXNldERhdGEt
Z2V0RGF0YS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJk
L2RhdGFUcmFuc2Zlci1zZXREYXRhLWdldERhdGEtZXhwZWN0ZWQudHh0CkBAIC01LDMwICs1LDM3
IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIC0tLSBUZXN0IHNldC9nZXQgJ1VSTCc6CiBQ
QVNTIGdldERhdGFSZXN1bHRUeXBlIGlzICJzdHJpbmciCi1QQVNTIGdldERhdGFMaW5lcy5sZW5n
dGggaXMgMQotUEFTUyBnZXREYXRhTGluZXNbMF0ucmVwbGFjZSgvXC8kLywgJycpIGlzICJodHRw
Oi8vdGVzdC5jb20iCitQQVNTIGdldERhdGFSZXN1bHQgaXMgImh0dHA6Ly90ZXN0LmNvbS8iCist
LS0gVGVzdCBzZXQvZ2V0ICdVUkwnIHdpdGggbXVsdGlwbGUgVVJMczoKK1BBU1MgZ2V0RGF0YVJl
c3VsdFR5cGUgaXMgInN0cmluZyIKK1BBU1MgZ2V0RGF0YVJlc3VsdCBpcyAiaHR0cDovL3Rlc3Qu
Y29tLyIKIC0tLSBUZXN0IHNldC9nZXQgJ3RleHQvdXJpLWxpc3QnOgogUEFTUyBnZXREYXRhUmVz
dWx0VHlwZSBpcyAic3RyaW5nIgotUEFTUyBnZXREYXRhTGluZXMubGVuZ3RoIGlzIDIKLVBBU1Mg
Z2V0RGF0YUxpbmVzWzBdLnJlcGxhY2UoL1wvJC8sICcnKSBpcyAiaHR0cDovL3Rlc3QuY29tIgot
UEFTUyBnZXREYXRhTGluZXNbMV0ucmVwbGFjZSgvXC8kLywgJycpIGlzICJodHRwOi8vY2hlY2su
Y29tIgorUEFTUyBnZXREYXRhUmVzdWx0IGlzICJodHRwOi8vdGVzdC5jb21cclxuaHR0cDovL2No
ZWNrLmNvbSIKKy0tLSBUZXN0IHNldC9nZXQgJ3RleHQvdXJpLWxpc3QnIHVzaW5nICdcbic6CitQ
QVNTIGdldERhdGFSZXN1bHRUeXBlIGlzICJzdHJpbmciCitQQVNTIGdldERhdGFSZXN1bHQgaXMg
Imh0dHA6Ly90ZXN0LmNvbVxuaHR0cDovL2NoZWNrLmNvbSIKIC0tLSBUZXN0IHNldCAndGV4dC91
cmktbGlzdCcsIGdldCAnVVJMJzoKIFBBU1MgZ2V0RGF0YVJlc3VsdFR5cGUgaXMgInN0cmluZyIK
LVBBU1MgZ2V0RGF0YUxpbmVzLmxlbmd0aCBpcyAxCi1QQVNTIGdldERhdGFMaW5lc1swXS5yZXBs
YWNlKC9cLyQvLCAnJykgaXMgImh0dHA6Ly90ZXN0LmNvbSIKK1BBU1MgZ2V0RGF0YVJlc3VsdCBp
cyAiaHR0cDovL3Rlc3QuY29tLyIKKy0tLSBUZXN0IHNldCAnVVJMJywgZ2V0ICd0ZXh0L3VyaS1s
aXN0JzoKK1BBU1MgZ2V0RGF0YVJlc3VsdFR5cGUgaXMgInN0cmluZyIKK1BBU1MgZ2V0RGF0YVJl
c3VsdCBpcyAiaHR0cDovL3Rlc3QuY29tXHJcbmh0dHA6Ly9jaGVjay5jb20iCiAtLS0gVGVzdCBz
ZXQgJ3RleHQvdXJpLWxpc3QnLCBnZXQgJ1VSTCcsIHVzaW5nIG9ubHkgJ1xuJzoKIFBBU1MgZ2V0
RGF0YVJlc3VsdFR5cGUgaXMgInN0cmluZyIKLVBBU1MgZ2V0RGF0YUxpbmVzLmxlbmd0aCBpcyAx
Ci1QQVNTIGdldERhdGFMaW5lc1swXS5yZXBsYWNlKC9cLyQvLCAnJykgaXMgImh0dHA6Ly90ZXN0
LmNvbSIKK1BBU1MgZ2V0RGF0YVJlc3VsdCBpcyAiaHR0cDovL3Rlc3QuY29tLyIKIC0tLSBUZXN0
IHNldC9nZXQgJ3RleHQvdXJpLWxpc3QnIHdpdGggY29tbWVudHM6CiBQQVNTIGdldERhdGFSZXN1
bHRUeXBlIGlzICJzdHJpbmciCi1QQVNTIGdldERhdGFMaW5lcy5sZW5ndGggaXMgMgotUEFTUyBn
ZXREYXRhTGluZXNbMF0ucmVwbGFjZSgvXC8kLywgJycpIGlzICJodHRwOi8vdGVzdC5jb20iCi1Q
QVNTIGdldERhdGFMaW5lc1sxXS5yZXBsYWNlKC9cLyQvLCAnJykgaXMgImh0dHA6Ly9jaGVjay5j
b20iCitQQVNTIGdldERhdGFSZXN1bHQgaXMgIiMgY29tbWVudFxyXG5odHRwOi8vdGVzdC5jb21c
clxuaHR0cDovL2NoZWNrLmNvbSIKKy0tLSBUZXN0IHNldCAndGV4dC91cmktbGlzdCcsIGdldCAn
VVJMJyB3aXRoIGNvbW1lbnRzOgorUEFTUyBnZXREYXRhUmVzdWx0VHlwZSBpcyAic3RyaW5nIgor
UEFTUyBnZXREYXRhUmVzdWx0IGlzICJodHRwOi8vdGVzdC5jb20vIgorLS0tIFRlc3Qgc2V0ICd0
ZXh0L3VyaS1saXN0JywgZ2V0ICdVUkwnIHdpdGggb25seSBjb21tZW50czoKK1BBU1MgZ2V0RGF0
YVJlc3VsdCBpcyB1bmRlZmluZWQuCiAtLS0gVGVzdCBzZXQvZ2V0ICd0ZXh0L3BsYWluJzoKIFBB
U1MgZ2V0RGF0YVJlc3VsdFR5cGUgaXMgInN0cmluZyIKLVBBU1MgZ2V0RGF0YUxpbmVzLmxlbmd0
aCBpcyAxCi1QQVNTIGdldERhdGFMaW5lc1swXS5yZXBsYWNlKC9cLyQvLCAnJykgaXMgIkxvcmVt
IGlwc3VtIGRvbG9yIHNpdCBhbWV0LiIKK1BBU1MgZ2V0RGF0YVJlc3VsdCBpcyAiTG9yZW0gaXBz
dW0gZG9sb3Igc2l0IGFtZXQuIgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2Fy
ZC9zY3JpcHQtdGVzdHMvZGF0YVRyYW5zZmVyLXNldERhdGEtZ2V0RGF0YS5qcyBiL0xheW91dFRl
c3RzL2VkaXRpbmcvcGFzdGVib2FyZC9zY3JpcHQtdGVzdHMvZGF0YVRyYW5zZmVyLXNldERhdGEt
Z2V0RGF0YS5qcwppbmRleCBmMTBkNzg1Li41YTY0MjQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9lZGl0aW5nL3Bhc3RlYm9hcmQvc2NyaXB0LXRlc3RzL2RhdGFUcmFuc2Zlci1zZXREYXRhLWdl
dERhdGEuanMKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3NjcmlwdC10ZXN0
cy9kYXRhVHJhbnNmZXItc2V0RGF0YS1nZXREYXRhLmpzCkBAIC0xMiwxNyArMTIsMTUgQEAgZHJh
Z1RhcmdldC5zdHlsZS5oZWlnaHQgPSAiMTAwcHgiOwogZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZv
cmUoZHJhZ1RhcmdldCwgZHJhZ01lKTsKIAogdmFyIHNldERhdGFUeXBlOwotdmFyIHNldERhdGFW
YWx1ZXM7Cit2YXIgc2V0RGF0YVZhbHVlOwogdmFyIGdldERhdGFUeXBlOwotdmFyIGdldERhdGFW
YWx1ZXM7Cit2YXIgZ2V0RGF0YVZhbHVlOwogdmFyIGdldERhdGFSZXN1bHQ7CiB2YXIgZ2V0RGF0
YVJlc3VsdFR5cGU7CiB2YXIgZ2V0RGF0YUxpbmVzOwogCi12YXIgQ1JMRiA9ICJcclxuIjsKLQog
ZHJhZ01lLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdzdGFydCIsIGZ1bmN0aW9uKCkgewotICAgIGV2
ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKHNldERhdGFUeXBlLCBzZXREYXRhVmFsdWVzLmpvaW4o
Q1JMRikpOworICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKHNldERhdGFUeXBlLCBzZXRE
YXRhVmFsdWUpOwogfSwgZmFsc2UpOwogCiBkcmFnVGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoImRy
YWdlbnRlciIsIGZ1bmN0aW9uKCkgewpAQCAtNjIsNTEgKzYwLDY3IEBAIGZ1bmN0aW9uIGRyYWdP
bnRvRHJhZ1RhcmdldCgpIHsKIGZ1bmN0aW9uIGRvRHJvcCgpIHsKICAgICBnZXREYXRhUmVzdWx0
ID0gZXZlbnQuZGF0YVRyYW5zZmVyLmdldERhdGEoZ2V0RGF0YVR5cGUpOwogICAgIGdldERhdGFS
ZXN1bHRUeXBlID0gdHlwZW9mIGdldERhdGFSZXN1bHQ7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJnZXREYXRhUmVzdWx0VHlwZSIsICJzdHJpbmciKTsKLSAgICBnZXREYXRhTGluZXMgPSBn
ZXREYXRhUmVzdWx0LnNwbGl0KENSTEYpOyAgICAKLSAgICAvLyByZW1vdmUgcG90ZW50aWFsIGNv
bW1lbnRzCi0gICAgZ2V0RGF0YUxpbmVzID0gZ2V0RGF0YUxpbmVzLmZpbHRlcihmdW5jdGlvbihs
aW5lKSB7Ci0gICAgICByZXR1cm4gbGluZVswXSAhPT0gJyMnOwotICAgIH0pOwotICAgIHNob3Vs
ZEV2YWx1YXRlVG8oImdldERhdGFMaW5lcy5sZW5ndGgiLCBnZXREYXRhVmFsdWVzLmxlbmd0aCk7
Ci0gICAgZm9yIChpID0gMDsgaSA8IGdldERhdGFMaW5lcy5sZW5ndGggJiYgaSA8IGdldERhdGFW
YWx1ZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRE
YXRhTGluZXNbIiArIGkgKyAiXS5yZXBsYWNlKC9cXC8kLywgJycpIiwgZ2V0RGF0YVZhbHVlc1tp
XSk7CisgICAgaWYgKCFnZXREYXRhVmFsdWUpIHsKKyAgICAgICAgc2hvdWxkQmVVbmRlZmluZWQo
ImdldERhdGFSZXN1bHQiKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoImdldERhdGFSZXN1bHRUeXBlIiwgdHlwZW9mIGdldERhdGFWYWx1ZSk7CisgICAgICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0RGF0YVJlc3VsdCIsIGdldERhdGFWYWx1ZSk7CiAg
ICAgfQogfQogCiBmdW5jdGlvbiB0ZXN0KHNldFR5cGUsIHNldFZhbHVlcywgZ2V0VHlwZSwgZ2V0
VmFsdWVzKSB7CiAgICAgc2V0RGF0YVR5cGUgPSBzZXRUeXBlOwotICAgIHNldERhdGFWYWx1ZXMg
PSBzZXRWYWx1ZXM7CisgICAgc2V0RGF0YVZhbHVlID0gc2V0VmFsdWVzOwogICAgIGdldERhdGFU
eXBlID0gZ2V0VHlwZTsKLSAgICBnZXREYXRhVmFsdWVzID0gZ2V0VmFsdWVzOworICAgIGdldERh
dGFWYWx1ZSA9IGdldFZhbHVlczsKICAgICBkcmFnT250b0RyYWdUYXJnZXQoKTsKIH0KIAogZnVu
Y3Rpb24gcnVuVGVzdCgpCiB7CiAgICAgZGVidWcoIi0tLSBUZXN0IHNldC9nZXQgJ1VSTCc6Iik7
Ci0gICAgdGVzdCgiVVJMIiwgWyJodHRwOi8vdGVzdC5jb20iXSwgCi0gICAgICAgICAiVVJMIiwg
WyJodHRwOi8vdGVzdC5jb20iXSk7CisgICAgdGVzdCgiVVJMIiwgImh0dHA6Ly90ZXN0LmNvbSIs
IAorICAgICAgICAgIlVSTCIsICJodHRwOi8vdGVzdC5jb20vIik7CisKKyAgICBkZWJ1ZygiLS0t
IFRlc3Qgc2V0L2dldCAnVVJMJyB3aXRoIG11bHRpcGxlIFVSTHM6Iik7CisgICAgdGVzdCgiVVJM
IiwgImh0dHA6Ly90ZXN0LmNvbVxyXG5odHRwOi8vY2hlY2suY29tIiwgCisgICAgICAgICAiVVJM
IiwgImh0dHA6Ly90ZXN0LmNvbS8iKTsKIAogICAgIGRlYnVnKCItLS0gVGVzdCBzZXQvZ2V0ICd0
ZXh0L3VyaS1saXN0JzoiKTsKLSAgICB0ZXN0KCJ0ZXh0L3VyaS1saXN0IiwgWyJodHRwOi8vdGVz
dC5jb20iLCAiaHR0cDovL2NoZWNrLmNvbSJdLCAKLSAgICAgICAgICJ0ZXh0L3VyaS1saXN0Iiwg
WyJodHRwOi8vdGVzdC5jb20iLCAiaHR0cDovL2NoZWNrLmNvbSJdKTsKKyAgICB0ZXN0KCJ0ZXh0
L3VyaS1saXN0IiwgImh0dHA6Ly90ZXN0LmNvbVxyXG5odHRwOi8vY2hlY2suY29tIiwgCisgICAg
ICAgICAidGV4dC91cmktbGlzdCIsICJodHRwOi8vdGVzdC5jb21cclxuaHR0cDovL2NoZWNrLmNv
bSIpOworCisgICAgZGVidWcoIi0tLSBUZXN0IHNldC9nZXQgJ3RleHQvdXJpLWxpc3QnIHVzaW5n
ICdcXG4nOiIpOworICAgIHRlc3QoInRleHQvdXJpLWxpc3QiLCAiaHR0cDovL3Rlc3QuY29tXG5o
dHRwOi8vY2hlY2suY29tIiwgCisgICAgICAgICAidGV4dC91cmktbGlzdCIsICJodHRwOi8vdGVz
dC5jb21cbmh0dHA6Ly9jaGVjay5jb20iKTsKIAogICAgIGRlYnVnKCItLS0gVGVzdCBzZXQgJ3Rl
eHQvdXJpLWxpc3QnLCBnZXQgJ1VSTCc6Iik7Ci0gICAgdGVzdCgidGV4dC91cmktbGlzdCIsIFsi
aHR0cDovL3Rlc3QuY29tIiwgImh0dHA6Ly9jaGVjay5jb20iXSwgCi0gICAgICAgICAiVVJMIiwg
WyJodHRwOi8vdGVzdC5jb20iXSk7CisgICAgdGVzdCgidGV4dC91cmktbGlzdCIsICJodHRwOi8v
dGVzdC5jb21cclxuaHR0cDovL2NoZWNrLmNvbSIsIAorICAgICAgICAgIlVSTCIsICJodHRwOi8v
dGVzdC5jb20vIik7CisKKyAgICBkZWJ1ZygiLS0tIFRlc3Qgc2V0ICdVUkwnLCBnZXQgJ3RleHQv
dXJpLWxpc3QnOiIpOworICAgIHRlc3QoIlVSTCIsICJodHRwOi8vdGVzdC5jb21cclxuaHR0cDov
L2NoZWNrLmNvbSIsIAorICAgICAgICAgInRleHQvdXJpLWxpc3QiLCAiaHR0cDovL3Rlc3QuY29t
XHJcbmh0dHA6Ly9jaGVjay5jb20iKTsKIAogICAgIGRlYnVnKCItLS0gVGVzdCBzZXQgJ3RleHQv
dXJpLWxpc3QnLCBnZXQgJ1VSTCcsIHVzaW5nIG9ubHkgJ1xcbic6Iik7Ci0gICAgdGVzdCgidGV4
dC91cmktbGlzdCIsIFsiaHR0cDovL3Rlc3QuY29tXG5odHRwOi8vY2hlY2suY29tIl0sIAotICAg
ICAgICAgIlVSTCIsIFsiaHR0cDovL3Rlc3QuY29tIl0pOworICAgIHRlc3QoInRleHQvdXJpLWxp
c3QiLCAiaHR0cDovL3Rlc3QuY29tXG5odHRwOi8vY2hlY2suY29tIiwKKyAgICAgICAgICJVUkwi
LCAiaHR0cDovL3Rlc3QuY29tLyIpOwogCiAgICAgZGVidWcoIi0tLSBUZXN0IHNldC9nZXQgJ3Rl
eHQvdXJpLWxpc3QnIHdpdGggY29tbWVudHM6Iik7Ci0gICAgdGVzdCgidGV4dC91cmktbGlzdCIs
IFsiIyBjb21tZW50IiwgImh0dHA6Ly90ZXN0LmNvbSIsICJodHRwOi8vY2hlY2suY29tIl0sIAot
ICAgICAgICAgInRleHQvdXJpLWxpc3QiLCBbImh0dHA6Ly90ZXN0LmNvbSIsICJodHRwOi8vY2hl
Y2suY29tIl0pOworICAgIHRlc3QoInRleHQvdXJpLWxpc3QiLCAiIyBjb21tZW50XHJcbmh0dHA6
Ly90ZXN0LmNvbVxyXG5odHRwOi8vY2hlY2suY29tIiwgCisgICAgICAgICAidGV4dC91cmktbGlz
dCIsICIjIGNvbW1lbnRcclxuaHR0cDovL3Rlc3QuY29tXHJcbmh0dHA6Ly9jaGVjay5jb20iKTsK
KworICAgIGRlYnVnKCItLS0gVGVzdCBzZXQgJ3RleHQvdXJpLWxpc3QnLCBnZXQgJ1VSTCcgd2l0
aCBjb21tZW50czoiKTsKKyAgICB0ZXN0KCJ0ZXh0L3VyaS1saXN0IiwgIiMgY29tbWVudFxyXG5o
dHRwOi8vdGVzdC5jb21cclxuaHR0cDovL2NoZWNrLmNvbSIsIAorICAgICAgICAgIlVSTCIsICJo
dHRwOi8vdGVzdC5jb20vIik7CisKKyAgICBkZWJ1ZygiLS0tIFRlc3Qgc2V0ICd0ZXh0L3VyaS1s
aXN0JywgZ2V0ICdVUkwnIHdpdGggb25seSBjb21tZW50czoiKTsKKyAgICB0ZXN0KCJ0ZXh0L3Vy
aS1saXN0IiwgIiMgY29tbWVudFxyXG4jIGNvbW1lbnQgMlxyXG4jIGNvbW1lbnQgMyIsIAorICAg
ICAgICAgIlVSTCIsIG51bGwpOwogCiAgICAgZGVidWcoIi0tLSBUZXN0IHNldC9nZXQgJ3RleHQv
cGxhaW4nOiIpOwotICAgIHRlc3QoInRleHQvcGxhaW4iLCBbIkxvcmVtIGlwc3VtIGRvbG9yIHNp
dCBhbWV0LiJdLCAKLSAgICAgICAgICJ0ZXh0L3BsYWluIiwgWyJMb3JlbSBpcHN1bSBkb2xvciBz
aXQgYW1ldC4iXSk7CisgICAgdGVzdCgidGV4dC9wbGFpbiIsICJMb3JlbSBpcHN1bSBkb2xvciBz
aXQgYW1ldC4iLCAKKyAgICAgICAgICJ0ZXh0L3BsYWluIiwgIkxvcmVtIGlwc3VtIGRvbG9yIHNp
dCBhbWV0LiIpOwogfQogCiBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyBiL0xheW91dFRlc3Rz
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzCmluZGV4IDg3ZGI1ZDQuLjM1MzZhODkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzCkBAIC0x
MjQsNyArMTI0LDcgQEAgZnVuY3Rpb24gc2hvdWxkQmVOdWxsKF9hKSB7IHNob3VsZEJlKF9hLCAi
bnVsbCIpOyB9CiAKIGZ1bmN0aW9uIHNob3VsZEJlRXF1YWxUb1N0cmluZyhhLCBiKQogewotICB2
YXIgdW5ldmFsZWRTdHJpbmcgPSAnIicgKyBiLnJlcGxhY2UoL1xcL2csICJcXFxcIikucmVwbGFj
ZSgvIi9nLCAiXCIiKSArICciJzsKKyAgdmFyIHVuZXZhbGVkU3RyaW5nID0gJyInICsgYi5yZXBs
YWNlKC9cXC9nLCAiXFxcXCIpLnJlcGxhY2UoLyIvZywgIlwiIikucmVwbGFjZSgvXG4vZywgIlxc
biIpLnJlcGxhY2UoL1xyL2csICJcXHIiKSArICciJzsKICAgc2hvdWxkQmUoYSwgdW5ldmFsZWRT
dHJpbmcpOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDRkNzlkMTAuLjFiMjE3MWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMTAtMDUg
IERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBnZXREYXRhKCd0ZXh0L3Vy
aS1saXN0Jykgc2hvdWxkIHJldHVybiB0aGUgc2FtZSB0aGluZyB0aGF0IHdhcyBwYXNzZWQgdG8g
c2V0RGF0YSgndGV4dC91cmktbGlzdCcpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00Njk0MworCisgICAgICAgIFdlIG5vIGxvbmdlciBwYXJzZSB0aGUg
aW5wdXQgb2Ygc2V0RGF0YSgndGV4dC91cmktbGlzdCcpIGFuZCBvbmx5IHN0b3JlCisgICAgICAg
IHRoZSB2YWxpZCBVUkxzIHRoYXQgd2VyZSBwYXJzZWQgb3V0LgorCisgICAgICAgIFRlc3Q6IGVk
aXRpbmcvcGFzdGVib2FyZC9kYXRhVHJhbnNmZXItc2V0RGF0YS1nZXREYXRhLmh0bWwKKworICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVjdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDaHJvbWl1bURhdGFPYmplY3Q6OmNsZWFyRGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpDaHJvbWl1bURhdGFPYmplY3Q6OmNsZWFyQWxsRXhjZXB0RmlsZXMpOgorICAgICAgICAo
V2ViQ29yZTo6Q2hyb21pdW1EYXRhT2JqZWN0Ojp0eXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpD
aHJvbWl1bURhdGFPYmplY3Q6OmdldERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21pdW1E
YXRhT2JqZWN0OjpzZXREYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1
bURhdGFPYmplY3QuaDoKKwogMjAxMC0xMC0wMSAgVmljdG9yaWEgS2lyc3QgIDx2cmtAZ29vZ2xl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKYW1lcyBSb2JpbnNvbi4KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmNwcCBiL1dlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmNwcAppbmRleCBjNTc5Y2Vj
Li43M2U2ZjQ4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVt
RGF0YU9iamVjdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURh
dGFPYmplY3QuY3BwCkBAIC00OCw3ICs0OCw3IEBAIHZvaWQgQ2hyb21pdW1EYXRhT2JqZWN0Ojpj
bGVhckRhdGEoY29uc3QgU3RyaW5nJiB0eXBlKQogICAgIH0KIAogICAgIGlmICh0eXBlID09IG1p
bWVUeXBlVVJMIHx8IHR5cGUgPT0gbWltZVR5cGVUZXh0VVJJTGlzdCkgewotICAgICAgICBtX3Vy
aUxpc3QuY2xlYXIoKTsKKyAgICAgICAgbV91cmlMaXN0ID0gIiI7CiAgICAgICAgIG1fdXJsID0g
S1VSTCgpOwogICAgICAgICBtX3VybFRpdGxlID0gIiI7CiAgICAgICAgIHJldHVybjsKQEAgLTc2
LDcgKzc2LDcgQEAgdm9pZCBDaHJvbWl1bURhdGFPYmplY3Q6OmNsZWFyQWxsRXhjZXB0RmlsZXMo
KQogewogICAgIG1fdXJsVGl0bGUgPSAiIjsKICAgICBtX3VybCA9IEtVUkwoKTsKLSAgICBtX3Vy
aUxpc3QuY2xlYXIoKTsKKyAgICBtX3VyaUxpc3QgPSAiIjsKICAgICBtX2Rvd25sb2FkTWV0YWRh
dGEgPSAiIjsKICAgICBtX2ZpbGVFeHRlbnNpb24gPSAiIjsKICAgICBtX3BsYWluVGV4dCA9ICIi
OwpAQCAtMTA5LDEwICsxMDksMTEgQEAgSGFzaFNldDxTdHJpbmc+IENocm9taXVtRGF0YU9iamVj
dDo6dHlwZXMoKSBjb25zdAogICAgICAgICByZXN1bHRzLmFkZChtaW1lVHlwZVRleHRQbGFpbik7
CiAgICAgfQogCi0gICAgaWYgKCFtX3VybC5pc0VtcHR5KCkpIHsKKyAgICBpZiAobV91cmwuaXNW
YWxpZCgpKQogICAgICAgICByZXN1bHRzLmFkZChtaW1lVHlwZVVSTCk7CisKKyAgICBpZiAoIW1f
dXJpTGlzdC5pc0VtcHR5KCkpCiAgICAgICAgIHJlc3VsdHMuYWRkKG1pbWVUeXBlVGV4dFVSSUxp
c3QpOwotICAgIH0KIAogICAgIGlmICghbV90ZXh0SHRtbC5pc0VtcHR5KCkpCiAgICAgICAgIHJl
c3VsdHMuYWRkKG1pbWVUeXBlVGV4dEhUTUwpOwpAQCAtMTQwLDI0ICsxNDEsMTMgQEAgU3RyaW5n
IENocm9taXVtRGF0YU9iamVjdDo6Z2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGJvb2wmIHN1
Y2Nlc3MpCiAgICAgfQogCiAgICAgaWYgKHR5cGUgPT0gbWltZVR5cGVVUkwpIHsKLSAgICAgICAg
QVNTRVJUKG1fdXJsLmlzRW1wdHkoKSA9PSBtX3VyaUxpc3QuaXNFbXB0eSgpKTsKICAgICAgICAg
c3VjY2VzcyA9ICFtX3VybC5pc0VtcHR5KCk7CiAgICAgICAgIHJldHVybiBtX3VybC5zdHJpbmco
KTsKICAgICB9CiAKICAgICBpZiAodHlwZSA9PSBtaW1lVHlwZVRleHRVUklMaXN0KSB7Ci0gICAg
ICAgIEFTU0VSVChtX3VybC5pc0VtcHR5KCkgPT0gbV91cmlMaXN0LmlzRW1wdHkoKSk7Ci0gICAg
ICAgIGlmIChtX3VyaUxpc3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBzdWNjZXNzID0gZmFs
c2U7Ci0gICAgICAgICAgICByZXR1cm4gIiI7Ci0gICAgICAgIH0KLSAgICAgICAgU3RyaW5nIHVy
aUxpc3RTdHJpbmcobV91cmlMaXN0WzBdKTsKLSAgICAgICAgZm9yIChzaXplX3QgaSA9IDE7IGkg
PCBtX3VyaUxpc3Quc2l6ZSgpOyBpKyspIHsKLSAgICAgICAgICAgIHVyaUxpc3RTdHJpbmcuYXBw
ZW5kKHRleHRNSU1FVHlwZUxpbmVTZXBhcmF0b3IpOwotICAgICAgICAgICAgdXJpTGlzdFN0cmlu
Zy5hcHBlbmQobV91cmlMaXN0W2ldKTsKLSAgICAgICAgfQotICAgICAgICBzdWNjZXNzID0gdHJ1
ZTsKLSAgICAgICAgcmV0dXJuIHVyaUxpc3RTdHJpbmc7CisgICAgICAgIHN1Y2Nlc3MgPSAhbV91
cmlMaXN0LmlzRW1wdHkoKTsKKyAgICAgICAgcmV0dXJuIG1fdXJpTGlzdDsKICAgICB9CiAKICAg
ICBpZiAodHlwZSA9PSBtaW1lVHlwZVRleHRIVE1MKSB7CkBAIC0xOTQsMzQgKzE4NCwyOSBAQCBi
b29sIENocm9taXVtRGF0YU9iamVjdDo6c2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0
IFN0cmluZyYgZGF0YSkKIAogICAgIGlmICh0eXBlID09IG1pbWVUeXBlVVJMIHx8IHR5cGUgPT0g
bWltZVR5cGVUZXh0VVJJTGlzdCkgewogICAgICAgICBtX3VybCA9IEtVUkwoKTsKLSAgICAgICAg
Ly8gTGluZSBzZXBhcmF0b3IgaXMgXHJcbiBwZXIgUkZDIDI0ODMgLSBob3dldmVyLCBmb3IgY29t
cGF0aWJpbGl0eSByZWFzb25zCi0gICAgICAgIC8vIHdlIGFsc28gYWxsb3cganVzdCBcbiBoZXJl
LgotICAgICAgICBkYXRhLnNwbGl0KCdcbicsIG1fdXJpTGlzdCk7Ci0gICAgICAgIC8vIFN0cmlw
IHdoaXRlIHNwYWNlIG9uIGFsbCBsaW5lcywgaW5jbHVkaW5nIHRyYWlsaW5nIFxyIGZyb20gYWJv
dmUgc3BsaXQuCi0gICAgICAgIC8vIElmIHRoaXMgbGVhdmVzIGEgbGluZSBlbXB0eSwgcmVtb3Zl
IGl0IGNvbXBsZXRlbHkuCi0gICAgICAgIC8vCi0gICAgICAgIC8vIEFsc28sIGNvcHkgdGhlIGZp
cnN0IHZhbGlkIFVSTCBpbnRvIHRoZSAndXJsJyBtZW1iZXIgYXMgd2VsbC4KLSAgICAgICAgLy8g
SW4gY2FzZSBubyBlbnRyeSBpcyBhIHZhbGlkIFVSTCAoaS5lLiwgcmVtYXJrcyBvbmx5KSwgdGhl
biB3ZSBsZWF2ZSAndXJsJyBlbXB0eS4KLSAgICAgICAgLy8gSS5lLiwgaW4gdGhhdCBjYXNlIHN1
YnNlcXVlbnQgY2FsbHMgdG8gZ2V0RGF0YSgiVVJMIikgd2lsbCBnZXQgYW4gZW1wdHkgc3RyaW5n
LgotICAgICAgICAvLyBUaGlzIGlzIGluIGxpbmUgd2l0aCB0aGUgSFRNTDUgc3BlYyAoc2VlICJU
aGUgRHJhZ0V2ZW50IGFuZCBEYXRhVHJhbnNmZXIgaW50ZXJmYWNlcyIpLgotICAgICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG1fdXJpTGlzdC5zaXplKCk7IC8qKi8pIHsKLSAgICAgICAgICAg
IFN0cmluZyYgbGluZSA9IG1fdXJpTGlzdFtpXTsKKyAgICAgICAgVmVjdG9yPFN0cmluZz4gdXJp
TGlzdDsKKyAgICAgICAgLy8gTGluZSBzZXBhcmF0b3IgaXMgXHJcbiBwZXIgUkZDIDI0ODMgLSBo
b3dldmVyLCBmb3IgY29tcGF0aWJpbGl0eQorICAgICAgICAvLyByZWFzb25zIHdlIGFsc28gYWxs
b3cganVzdCBcbiBoZXJlLgorICAgICAgICBkYXRhLnNwbGl0KCdcbicsIHVyaUxpc3QpOworICAg
ICAgICAvLyBQcm9jZXNzIHRoZSBpbnB1dCBhbmQgY29weSB0aGUgZmlyc3QgdmFsaWQgVVJMIGlu
dG8gdGhlIHVybCBtZW1iZXIuCisgICAgICAgIC8vIEluIGNhc2Ugbm8gVVJMcyBjYW4gYmUgZm91
bmQsIHN1YnNlcXVlbnQgY2FsbHMgdG8gZ2V0RGF0YSgiVVJMIikKKyAgICAgICAgLy8gd2lsbCBn
ZXQgYW4gZW1wdHkgc3RyaW5nLiBUaGlzIGlzIGluIGxpbmUgd2l0aCB0aGUgSFRNTDUgc3BlYyAo
c2VlCisgICAgICAgIC8vICJUaGUgRHJhZ0V2ZW50IGFuZCBEYXRhVHJhbnNmZXIgaW50ZXJmYWNl
cyIpLgorICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVyaUxpc3Quc2l6ZSgpOyArK2kp
IHsKKyAgICAgICAgICAgIFN0cmluZyYgbGluZSA9IHVyaUxpc3RbaV07CiAgICAgICAgICAgICBs
aW5lID0gbGluZS5zdHJpcFdoaXRlU3BhY2UoKTsKICAgICAgICAgICAgIGlmIChsaW5lLmlzRW1w
dHkoKSkgewotICAgICAgICAgICAgICAgIG1fdXJpTGlzdC5yZW1vdmUoaSk7CiAgICAgICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICArK2k7Ci0gICAgICAg
ICAgICAvLyBPbmx5IGNvcHkgdGhlIGZpcnN0IHZhbGlkIFVSTC4KLSAgICAgICAgICAgIGlmICht
X3VybC5pc1ZhbGlkKCkpCi0gICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICBp
ZiAobGluZVswXSA9PSAnIycpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAg
ICBLVVJMIHVybCA9IEtVUkwoUGFyc2VkVVJMU3RyaW5nLCBsaW5lKTsKLSAgICAgICAgICAgIGlm
ICh1cmwuaXNWYWxpZCgpKQorICAgICAgICAgICAgaWYgKHVybC5pc1ZhbGlkKCkpIHsKICAgICAg
ICAgICAgICAgICBtX3VybCA9IHVybDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIH0KICAgICAgICAgfQotICAgICAgICBBU1NFUlQobV91cmwuaXNFbXB0eSgpID09IG1fdXJp
TGlzdC5pc0VtcHR5KCkpOworICAgICAgICBtX3VyaUxpc3QgPSBkYXRhOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
Q2hyb21pdW1EYXRhT2JqZWN0LmggYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVt
RGF0YU9iamVjdC5oCmluZGV4IDE1NjI0MjIuLmNkNThlY2IgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmgKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3QuaApAQCAtMTExLDcgKzExMSw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gc3RyaW5nIHZhbHVlOyBzZXR0aW5nIG1fdXJp
TGlzdCB3aWxsIGNhdXNlIGl0cyBjb250ZW50cyB0byBiZSBwYXJzZWQKICAgICAgICAgLy8gYWNj
b3JkaW5nIHRvIFJGQyAyNDgzIGFuZCB0aGUgZmlyc3QgVVJMIGZvdW5kIHdpbGwgYmUgc2V0IGlu
IG1fdXJsLgogICAgICAgICBLVVJMIG1fdXJsOwotICAgICAgICBWZWN0b3I8U3RyaW5nPiBtX3Vy
aUxpc3Q7CisgICAgICAgIFN0cmluZyBtX3VyaUxpc3Q7CiAgICAgfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQo=
</data>
<flag name="review"
          id="59483"
          type_id="1"
          status="-"
          setter="tony"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69815</attachid>
            <date>2010-10-05 11:20:16 -0700</date>
            <delta_ts>2010-10-05 13:13:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>foo.patch</filename>
            <type>text/plain</type>
            <size>14786</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwMTk4OTY4Li5jOTcxYmU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTAtMTAt
MDUgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBnZXREYXRhKCd0ZXh0
L3VyaS1saXN0Jykgc2hvdWxkIHJldHVybiB0aGUgc2FtZSB0aGluZyB0aGF0IHdhcyBwYXNzZWQg
dG8gc2V0RGF0YSgndGV4dC91cmktbGlzdCcpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00Njk0MworCisgICAgICAgIFVwZGF0ZSB0aGUgbGF5b3V0IHRl
c3QgdG8gY2hlY2sgdGhhdCBnZXREYXRhKCd0ZXh0L3VyaS1saXN0JykgcmV0dXJucworICAgICAg
ICB0aGUgc2FtZSB0aGluZyB0aGF0IHdhcyBwYXNzZWQgdG8gc2V0RGF0YSgndGV4dC91cmktbGlz
dCcpLgorCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL2RhdGFUcmFuc2Zlci1zZXREYXRh
LWdldERhdGEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9zY3Jp
cHQtdGVzdHMvZGF0YVRyYW5zZmVyLXNldERhdGEtZ2V0RGF0YS5qczoKKyAgICAgICAgKGRvRHJv
cCk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKHJ1blRlc3QpOgorICAgICAgICAqIGZhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzOgorICAgICAgICAoc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKTogVXBkYXRlZCB0byBhbGxvdyAnXG4nIGFuZCAnXHInIGluIGV4cGVjdGVkIGFyZ3VtZW50
LgorCiAyMDEwLTEwLTA0ICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBTa2lwIGEgdGltaW5nLW91dCB0ZXN0IG9uIFdpbmRvd3MKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kYXRhVHJhbnNmZXItc2V0RGF0YS1nZXREYXRhLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kYXRhVHJhbnNmZXItc2V0
RGF0YS1nZXREYXRhLWV4cGVjdGVkLnR4dAppbmRleCAwNjNhNmJiLi45ZTU4Mjk4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZGF0YVRyYW5zZmVyLXNldERhdGEt
Z2V0RGF0YS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJk
L2RhdGFUcmFuc2Zlci1zZXREYXRhLWdldERhdGEtZXhwZWN0ZWQudHh0CkBAIC01LDMwICs1LDM4
IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIC0tLSBUZXN0IHNldC9nZXQgJ1VSTCc6CiBQ
QVNTIGdldERhdGFSZXN1bHRUeXBlIGlzICJzdHJpbmciCi1QQVNTIGdldERhdGFMaW5lcy5sZW5n
dGggaXMgMQotUEFTUyBnZXREYXRhTGluZXNbMF0ucmVwbGFjZSgvXC8kLywgJycpIGlzICJodHRw
Oi8vdGVzdC5jb20iCitQQVNTIGdldERhdGFSZXN1bHQgaXMgImh0dHA6Ly90ZXN0LmNvbS8iCist
LS0gVGVzdCBzZXQvZ2V0ICdVUkwnIHdpdGggbXVsdGlwbGUgVVJMczoKK1BBU1MgZ2V0RGF0YVJl
c3VsdFR5cGUgaXMgInN0cmluZyIKK1BBU1MgZ2V0RGF0YVJlc3VsdCBpcyAiaHR0cDovL3Rlc3Qu
Y29tLyIKIC0tLSBUZXN0IHNldC9nZXQgJ3RleHQvdXJpLWxpc3QnOgogUEFTUyBnZXREYXRhUmVz
dWx0VHlwZSBpcyAic3RyaW5nIgotUEFTUyBnZXREYXRhTGluZXMubGVuZ3RoIGlzIDIKLVBBU1Mg
Z2V0RGF0YUxpbmVzWzBdLnJlcGxhY2UoL1wvJC8sICcnKSBpcyAiaHR0cDovL3Rlc3QuY29tIgot
UEFTUyBnZXREYXRhTGluZXNbMV0ucmVwbGFjZSgvXC8kLywgJycpIGlzICJodHRwOi8vY2hlY2su
Y29tIgorUEFTUyBnZXREYXRhUmVzdWx0IGlzICJodHRwOi8vdGVzdC5jb21cclxuaHR0cDovL2No
ZWNrLmNvbSIKKy0tLSBUZXN0IHNldC9nZXQgJ3RleHQvdXJpLWxpc3QnIHVzaW5nICdcbic6CitQ
QVNTIGdldERhdGFSZXN1bHRUeXBlIGlzICJzdHJpbmciCitQQVNTIGdldERhdGFSZXN1bHQgaXMg
Imh0dHA6Ly90ZXN0LmNvbVxuaHR0cDovL2NoZWNrLmNvbSIKIC0tLSBUZXN0IHNldCAndGV4dC91
cmktbGlzdCcsIGdldCAnVVJMJzoKIFBBU1MgZ2V0RGF0YVJlc3VsdFR5cGUgaXMgInN0cmluZyIK
LVBBU1MgZ2V0RGF0YUxpbmVzLmxlbmd0aCBpcyAxCi1QQVNTIGdldERhdGFMaW5lc1swXS5yZXBs
YWNlKC9cLyQvLCAnJykgaXMgImh0dHA6Ly90ZXN0LmNvbSIKK1BBU1MgZ2V0RGF0YVJlc3VsdCBp
cyAiaHR0cDovL3Rlc3QuY29tLyIKKy0tLSBUZXN0IHNldCAnVVJMJywgZ2V0ICd0ZXh0L3VyaS1s
aXN0JzoKK1BBU1MgZ2V0RGF0YVJlc3VsdFR5cGUgaXMgInN0cmluZyIKK1BBU1MgZ2V0RGF0YVJl
c3VsdCBpcyAiaHR0cDovL3Rlc3QuY29tXHJcbmh0dHA6Ly9jaGVjay5jb20iCiAtLS0gVGVzdCBz
ZXQgJ3RleHQvdXJpLWxpc3QnLCBnZXQgJ1VSTCcsIHVzaW5nIG9ubHkgJ1xuJzoKIFBBU1MgZ2V0
RGF0YVJlc3VsdFR5cGUgaXMgInN0cmluZyIKLVBBU1MgZ2V0RGF0YUxpbmVzLmxlbmd0aCBpcyAx
Ci1QQVNTIGdldERhdGFMaW5lc1swXS5yZXBsYWNlKC9cLyQvLCAnJykgaXMgImh0dHA6Ly90ZXN0
LmNvbSIKK1BBU1MgZ2V0RGF0YVJlc3VsdCBpcyAiaHR0cDovL3Rlc3QuY29tLyIKIC0tLSBUZXN0
IHNldC9nZXQgJ3RleHQvdXJpLWxpc3QnIHdpdGggY29tbWVudHM6CiBQQVNTIGdldERhdGFSZXN1
bHRUeXBlIGlzICJzdHJpbmciCi1QQVNTIGdldERhdGFMaW5lcy5sZW5ndGggaXMgMgotUEFTUyBn
ZXREYXRhTGluZXNbMF0ucmVwbGFjZSgvXC8kLywgJycpIGlzICJodHRwOi8vdGVzdC5jb20iCi1Q
QVNTIGdldERhdGFMaW5lc1sxXS5yZXBsYWNlKC9cLyQvLCAnJykgaXMgImh0dHA6Ly9jaGVjay5j
b20iCitQQVNTIGdldERhdGFSZXN1bHQgaXMgIiMgY29tbWVudFxyXG5odHRwOi8vdGVzdC5jb21c
clxuaHR0cDovL2NoZWNrLmNvbSIKKy0tLSBUZXN0IHNldCAndGV4dC91cmktbGlzdCcsIGdldCAn
VVJMJyB3aXRoIGNvbW1lbnRzOgorUEFTUyBnZXREYXRhUmVzdWx0VHlwZSBpcyAic3RyaW5nIgor
UEFTUyBnZXREYXRhUmVzdWx0IGlzICJodHRwOi8vdGVzdC5jb20vIgorLS0tIFRlc3Qgc2V0ICd0
ZXh0L3VyaS1saXN0JywgZ2V0ICdVUkwnIHdpdGggb25seSBjb21tZW50czoKK0ZBSUwgZ2V0RGF0
YVJlc3VsdFR5cGUgc2hvdWxkIGJlIHN0cmluZy4gV2FzIHVuZGVmaW5lZC4KK0ZBSUwgZ2V0RGF0
YVJlc3VsdCBzaG91bGQgYmUgIChvZiB0eXBlIHN0cmluZykuIFdhcyB1bmRlZmluZWQgKG9mIHR5
cGUgdW5kZWZpbmVkKS4KIC0tLSBUZXN0IHNldC9nZXQgJ3RleHQvcGxhaW4nOgogUEFTUyBnZXRE
YXRhUmVzdWx0VHlwZSBpcyAic3RyaW5nIgotUEFTUyBnZXREYXRhTGluZXMubGVuZ3RoIGlzIDEK
LVBBU1MgZ2V0RGF0YUxpbmVzWzBdLnJlcGxhY2UoL1wvJC8sICcnKSBpcyAiTG9yZW0gaXBzdW0g
ZG9sb3Igc2l0IGFtZXQuIgorUEFTUyBnZXREYXRhUmVzdWx0IGlzICJMb3JlbSBpcHN1bSBkb2xv
ciBzaXQgYW1ldC4iCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Njcmlw
dC10ZXN0cy9kYXRhVHJhbnNmZXItc2V0RGF0YS1nZXREYXRhLmpzIGIvTGF5b3V0VGVzdHMvZWRp
dGluZy9wYXN0ZWJvYXJkL3NjcmlwdC10ZXN0cy9kYXRhVHJhbnNmZXItc2V0RGF0YS1nZXREYXRh
LmpzCmluZGV4IGYxMGQ3ODUuLjhkMjMyNTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRp
bmcvcGFzdGVib2FyZC9zY3JpcHQtdGVzdHMvZGF0YVRyYW5zZmVyLXNldERhdGEtZ2V0RGF0YS5q
cworKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvc2NyaXB0LXRlc3RzL2RhdGFU
cmFuc2Zlci1zZXREYXRhLWdldERhdGEuanMKQEAgLTEyLDE3ICsxMiwxNSBAQCBkcmFnVGFyZ2V0
LnN0eWxlLmhlaWdodCA9ICIxMDBweCI7CiBkb2N1bWVudC5ib2R5Lmluc2VydEJlZm9yZShkcmFn
VGFyZ2V0LCBkcmFnTWUpOwogCiB2YXIgc2V0RGF0YVR5cGU7Ci12YXIgc2V0RGF0YVZhbHVlczsK
K3ZhciBzZXREYXRhVmFsdWU7CiB2YXIgZ2V0RGF0YVR5cGU7Ci12YXIgZ2V0RGF0YVZhbHVlczsK
K3ZhciBnZXREYXRhVmFsdWU7CiB2YXIgZ2V0RGF0YVJlc3VsdDsKIHZhciBnZXREYXRhUmVzdWx0
VHlwZTsKIHZhciBnZXREYXRhTGluZXM7CiAKLXZhciBDUkxGID0gIlxyXG4iOwotCiBkcmFnTWUu
YWRkRXZlbnRMaXN0ZW5lcigiZHJhZ3N0YXJ0IiwgZnVuY3Rpb24oKSB7Ci0gICAgZXZlbnQuZGF0
YVRyYW5zZmVyLnNldERhdGEoc2V0RGF0YVR5cGUsIHNldERhdGFWYWx1ZXMuam9pbihDUkxGKSk7
CisgICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoc2V0RGF0YVR5cGUsIHNldERhdGFWYWx1
ZSk7CiB9LCBmYWxzZSk7CiAKIGRyYWdUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VudGVy
IiwgZnVuY3Rpb24oKSB7CkBAIC02Miw1MSArNjAsNjMgQEAgZnVuY3Rpb24gZHJhZ09udG9EcmFn
VGFyZ2V0KCkgewogZnVuY3Rpb24gZG9Ecm9wKCkgewogICAgIGdldERhdGFSZXN1bHQgPSBldmVu
dC5kYXRhVHJhbnNmZXIuZ2V0RGF0YShnZXREYXRhVHlwZSk7CiAgICAgZ2V0RGF0YVJlc3VsdFR5
cGUgPSB0eXBlb2YgZ2V0RGF0YVJlc3VsdDsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImdl
dERhdGFSZXN1bHRUeXBlIiwgInN0cmluZyIpOwotICAgIGdldERhdGFMaW5lcyA9IGdldERhdGFS
ZXN1bHQuc3BsaXQoQ1JMRik7ICAgIAotICAgIC8vIHJlbW92ZSBwb3RlbnRpYWwgY29tbWVudHMK
LSAgICBnZXREYXRhTGluZXMgPSBnZXREYXRhTGluZXMuZmlsdGVyKGZ1bmN0aW9uKGxpbmUpIHsK
LSAgICAgIHJldHVybiBsaW5lWzBdICE9PSAnIyc7Ci0gICAgfSk7Ci0gICAgc2hvdWxkRXZhbHVh
dGVUbygiZ2V0RGF0YUxpbmVzLmxlbmd0aCIsIGdldERhdGFWYWx1ZXMubGVuZ3RoKTsKLSAgICBm
b3IgKGkgPSAwOyBpIDwgZ2V0RGF0YUxpbmVzLmxlbmd0aCAmJiBpIDwgZ2V0RGF0YVZhbHVlcy5s
ZW5ndGg7ICsraSkgewotICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldERhdGFMaW5l
c1siICsgaSArICJdLnJlcGxhY2UoL1xcLyQvLCAnJykiLCBnZXREYXRhVmFsdWVzW2ldKTsKLSAg
ICB9CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXREYXRhUmVzdWx0VHlwZSIsIHR5cGVv
ZiBnZXREYXRhVmFsdWUpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0RGF0YVJlc3Vs
dCIsIGdldERhdGFWYWx1ZSk7CiB9CiAKIGZ1bmN0aW9uIHRlc3Qoc2V0VHlwZSwgc2V0VmFsdWVz
LCBnZXRUeXBlLCBnZXRWYWx1ZXMpIHsKICAgICBzZXREYXRhVHlwZSA9IHNldFR5cGU7Ci0gICAg
c2V0RGF0YVZhbHVlcyA9IHNldFZhbHVlczsKKyAgICBzZXREYXRhVmFsdWUgPSBzZXRWYWx1ZXM7
CiAgICAgZ2V0RGF0YVR5cGUgPSBnZXRUeXBlOwotICAgIGdldERhdGFWYWx1ZXMgPSBnZXRWYWx1
ZXM7CisgICAgZ2V0RGF0YVZhbHVlID0gZ2V0VmFsdWVzOwogICAgIGRyYWdPbnRvRHJhZ1Rhcmdl
dCgpOwogfQogCiBmdW5jdGlvbiBydW5UZXN0KCkKIHsKICAgICBkZWJ1ZygiLS0tIFRlc3Qgc2V0
L2dldCAnVVJMJzoiKTsKLSAgICB0ZXN0KCJVUkwiLCBbImh0dHA6Ly90ZXN0LmNvbSJdLCAKLSAg
ICAgICAgICJVUkwiLCBbImh0dHA6Ly90ZXN0LmNvbSJdKTsKKyAgICB0ZXN0KCJVUkwiLCAiaHR0
cDovL3Rlc3QuY29tIiwgCisgICAgICAgICAiVVJMIiwgImh0dHA6Ly90ZXN0LmNvbS8iKTsKKwor
ICAgIGRlYnVnKCItLS0gVGVzdCBzZXQvZ2V0ICdVUkwnIHdpdGggbXVsdGlwbGUgVVJMczoiKTsK
KyAgICB0ZXN0KCJVUkwiLCAiaHR0cDovL3Rlc3QuY29tXHJcbmh0dHA6Ly9jaGVjay5jb20iLCAK
KyAgICAgICAgICJVUkwiLCAiaHR0cDovL3Rlc3QuY29tLyIpOwogCiAgICAgZGVidWcoIi0tLSBU
ZXN0IHNldC9nZXQgJ3RleHQvdXJpLWxpc3QnOiIpOwotICAgIHRlc3QoInRleHQvdXJpLWxpc3Qi
LCBbImh0dHA6Ly90ZXN0LmNvbSIsICJodHRwOi8vY2hlY2suY29tIl0sIAotICAgICAgICAgInRl
eHQvdXJpLWxpc3QiLCBbImh0dHA6Ly90ZXN0LmNvbSIsICJodHRwOi8vY2hlY2suY29tIl0pOwor
ICAgIHRlc3QoInRleHQvdXJpLWxpc3QiLCAiaHR0cDovL3Rlc3QuY29tXHJcbmh0dHA6Ly9jaGVj
ay5jb20iLCAKKyAgICAgICAgICJ0ZXh0L3VyaS1saXN0IiwgImh0dHA6Ly90ZXN0LmNvbVxyXG5o
dHRwOi8vY2hlY2suY29tIik7CisKKyAgICBkZWJ1ZygiLS0tIFRlc3Qgc2V0L2dldCAndGV4dC91
cmktbGlzdCcgdXNpbmcgJ1xcbic6Iik7CisgICAgdGVzdCgidGV4dC91cmktbGlzdCIsICJodHRw
Oi8vdGVzdC5jb21cbmh0dHA6Ly9jaGVjay5jb20iLCAKKyAgICAgICAgICJ0ZXh0L3VyaS1saXN0
IiwgImh0dHA6Ly90ZXN0LmNvbVxuaHR0cDovL2NoZWNrLmNvbSIpOwogCiAgICAgZGVidWcoIi0t
LSBUZXN0IHNldCAndGV4dC91cmktbGlzdCcsIGdldCAnVVJMJzoiKTsKLSAgICB0ZXN0KCJ0ZXh0
L3VyaS1saXN0IiwgWyJodHRwOi8vdGVzdC5jb20iLCAiaHR0cDovL2NoZWNrLmNvbSJdLCAKLSAg
ICAgICAgICJVUkwiLCBbImh0dHA6Ly90ZXN0LmNvbSJdKTsKKyAgICB0ZXN0KCJ0ZXh0L3VyaS1s
aXN0IiwgImh0dHA6Ly90ZXN0LmNvbVxyXG5odHRwOi8vY2hlY2suY29tIiwgCisgICAgICAgICAi
VVJMIiwgImh0dHA6Ly90ZXN0LmNvbS8iKTsKKworICAgIGRlYnVnKCItLS0gVGVzdCBzZXQgJ1VS
TCcsIGdldCAndGV4dC91cmktbGlzdCc6Iik7CisgICAgdGVzdCgiVVJMIiwgImh0dHA6Ly90ZXN0
LmNvbVxyXG5odHRwOi8vY2hlY2suY29tIiwgCisgICAgICAgICAidGV4dC91cmktbGlzdCIsICJo
dHRwOi8vdGVzdC5jb21cclxuaHR0cDovL2NoZWNrLmNvbSIpOwogCiAgICAgZGVidWcoIi0tLSBU
ZXN0IHNldCAndGV4dC91cmktbGlzdCcsIGdldCAnVVJMJywgdXNpbmcgb25seSAnXFxuJzoiKTsK
LSAgICB0ZXN0KCJ0ZXh0L3VyaS1saXN0IiwgWyJodHRwOi8vdGVzdC5jb21cbmh0dHA6Ly9jaGVj
ay5jb20iXSwgCi0gICAgICAgICAiVVJMIiwgWyJodHRwOi8vdGVzdC5jb20iXSk7CisgICAgdGVz
dCgidGV4dC91cmktbGlzdCIsICJodHRwOi8vdGVzdC5jb21cbmh0dHA6Ly9jaGVjay5jb20iLAor
ICAgICAgICAgIlVSTCIsICJodHRwOi8vdGVzdC5jb20vIik7CiAKICAgICBkZWJ1ZygiLS0tIFRl
c3Qgc2V0L2dldCAndGV4dC91cmktbGlzdCcgd2l0aCBjb21tZW50czoiKTsKLSAgICB0ZXN0KCJ0
ZXh0L3VyaS1saXN0IiwgWyIjIGNvbW1lbnQiLCAiaHR0cDovL3Rlc3QuY29tIiwgImh0dHA6Ly9j
aGVjay5jb20iXSwgCi0gICAgICAgICAidGV4dC91cmktbGlzdCIsIFsiaHR0cDovL3Rlc3QuY29t
IiwgImh0dHA6Ly9jaGVjay5jb20iXSk7CisgICAgdGVzdCgidGV4dC91cmktbGlzdCIsICIjIGNv
bW1lbnRcclxuaHR0cDovL3Rlc3QuY29tXHJcbmh0dHA6Ly9jaGVjay5jb20iLCAKKyAgICAgICAg
ICJ0ZXh0L3VyaS1saXN0IiwgIiMgY29tbWVudFxyXG5odHRwOi8vdGVzdC5jb21cclxuaHR0cDov
L2NoZWNrLmNvbSIpOworCisgICAgZGVidWcoIi0tLSBUZXN0IHNldCAndGV4dC91cmktbGlzdCcs
IGdldCAnVVJMJyB3aXRoIGNvbW1lbnRzOiIpOworICAgIHRlc3QoInRleHQvdXJpLWxpc3QiLCAi
IyBjb21tZW50XHJcbmh0dHA6Ly90ZXN0LmNvbVxyXG5odHRwOi8vY2hlY2suY29tIiwgCisgICAg
ICAgICAiVVJMIiwgImh0dHA6Ly90ZXN0LmNvbS8iKTsKKworICAgIGRlYnVnKCItLS0gVGVzdCBz
ZXQgJ3RleHQvdXJpLWxpc3QnLCBnZXQgJ1VSTCcgd2l0aCBvbmx5IGNvbW1lbnRzOiIpOworICAg
IHRlc3QoInRleHQvdXJpLWxpc3QiLCAiIyBjb21tZW50XHJcbiMgY29tbWVudCAyXHJcbiMgY29t
bWVudCAzIiwgCisgICAgICAgICAiVVJMIiwgIiIpOwogCiAgICAgZGVidWcoIi0tLSBUZXN0IHNl
dC9nZXQgJ3RleHQvcGxhaW4nOiIpOwotICAgIHRlc3QoInRleHQvcGxhaW4iLCBbIkxvcmVtIGlw
c3VtIGRvbG9yIHNpdCBhbWV0LiJdLCAKLSAgICAgICAgICJ0ZXh0L3BsYWluIiwgWyJMb3JlbSBp
cHN1bSBkb2xvciBzaXQgYW1ldC4iXSk7CisgICAgdGVzdCgidGV4dC9wbGFpbiIsICJMb3JlbSBp
cHN1bSBkb2xvciBzaXQgYW1ldC4iLCAKKyAgICAgICAgICJ0ZXh0L3BsYWluIiwgIkxvcmVtIGlw
c3VtIGRvbG9yIHNpdCBhbWV0LiIpOwogfQogCiBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyBi
L0xheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzCmluZGV4IDg3ZGI1
ZDQuLjM1MzZhODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzCkBAIC0xMjQsNyArMTI0LDcgQEAgZnVuY3Rpb24gc2hvdWxkQmVOdWxsKF9hKSB7IHNo
b3VsZEJlKF9hLCAibnVsbCIpOyB9CiAKIGZ1bmN0aW9uIHNob3VsZEJlRXF1YWxUb1N0cmluZyhh
LCBiKQogewotICB2YXIgdW5ldmFsZWRTdHJpbmcgPSAnIicgKyBiLnJlcGxhY2UoL1xcL2csICJc
XFxcIikucmVwbGFjZSgvIi9nLCAiXCIiKSArICciJzsKKyAgdmFyIHVuZXZhbGVkU3RyaW5nID0g
JyInICsgYi5yZXBsYWNlKC9cXC9nLCAiXFxcXCIpLnJlcGxhY2UoLyIvZywgIlwiIikucmVwbGFj
ZSgvXG4vZywgIlxcbiIpLnJlcGxhY2UoL1xyL2csICJcXHIiKSArICciJzsKICAgc2hvdWxkQmUo
YSwgdW5ldmFsZWRTdHJpbmcpOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDRkNzlkMTAuLjFiMjE3MWQgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMTAtMTAtMDUgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBnZXRE
YXRhKCd0ZXh0L3VyaS1saXN0Jykgc2hvdWxkIHJldHVybiB0aGUgc2FtZSB0aGluZyB0aGF0IHdh
cyBwYXNzZWQgdG8gc2V0RGF0YSgndGV4dC91cmktbGlzdCcpCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Njk0MworCisgICAgICAgIFdlIG5vIGxvbmdl
ciBwYXJzZSB0aGUgaW5wdXQgb2Ygc2V0RGF0YSgndGV4dC91cmktbGlzdCcpIGFuZCBvbmx5IHN0
b3JlCisgICAgICAgIHRoZSB2YWxpZCBVUkxzIHRoYXQgd2VyZSBwYXJzZWQgb3V0LgorCisgICAg
ICAgIFRlc3Q6IGVkaXRpbmcvcGFzdGVib2FyZC9kYXRhVHJhbnNmZXItc2V0RGF0YS1nZXREYXRh
Lmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVjdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bURhdGFPYmplY3Q6OmNsZWFyRGF0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bURhdGFPYmplY3Q6OmNsZWFyQWxsRXhjZXB0RmlsZXMp
OgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21pdW1EYXRhT2JqZWN0Ojp0eXBlcyk6CisgICAgICAg
IChXZWJDb3JlOjpDaHJvbWl1bURhdGFPYmplY3Q6OmdldERhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2hyb21pdW1EYXRhT2JqZWN0OjpzZXREYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS9DaHJvbWl1bURhdGFPYmplY3QuaDoKKwogMjAxMC0xMC0wMSAgVmljdG9yaWEgS2lyc3Qg
IDx2cmtAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKYW1lcyBSb2JpbnNvbi4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0
LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmNwcApp
bmRleCBjNTc5Y2VjLi43M2U2ZjQ4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL0Nocm9taXVtRGF0YU9iamVjdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9DaHJvbWl1bURhdGFPYmplY3QuY3BwCkBAIC00OCw3ICs0OCw3IEBAIHZvaWQgQ2hyb21pdW1E
YXRhT2JqZWN0OjpjbGVhckRhdGEoY29uc3QgU3RyaW5nJiB0eXBlKQogICAgIH0KIAogICAgIGlm
ICh0eXBlID09IG1pbWVUeXBlVVJMIHx8IHR5cGUgPT0gbWltZVR5cGVUZXh0VVJJTGlzdCkgewot
ICAgICAgICBtX3VyaUxpc3QuY2xlYXIoKTsKKyAgICAgICAgbV91cmlMaXN0ID0gIiI7CiAgICAg
ICAgIG1fdXJsID0gS1VSTCgpOwogICAgICAgICBtX3VybFRpdGxlID0gIiI7CiAgICAgICAgIHJl
dHVybjsKQEAgLTc2LDcgKzc2LDcgQEAgdm9pZCBDaHJvbWl1bURhdGFPYmplY3Q6OmNsZWFyQWxs
RXhjZXB0RmlsZXMoKQogewogICAgIG1fdXJsVGl0bGUgPSAiIjsKICAgICBtX3VybCA9IEtVUkwo
KTsKLSAgICBtX3VyaUxpc3QuY2xlYXIoKTsKKyAgICBtX3VyaUxpc3QgPSAiIjsKICAgICBtX2Rv
d25sb2FkTWV0YWRhdGEgPSAiIjsKICAgICBtX2ZpbGVFeHRlbnNpb24gPSAiIjsKICAgICBtX3Bs
YWluVGV4dCA9ICIiOwpAQCAtMTA5LDEwICsxMDksMTEgQEAgSGFzaFNldDxTdHJpbmc+IENocm9t
aXVtRGF0YU9iamVjdDo6dHlwZXMoKSBjb25zdAogICAgICAgICByZXN1bHRzLmFkZChtaW1lVHlw
ZVRleHRQbGFpbik7CiAgICAgfQogCi0gICAgaWYgKCFtX3VybC5pc0VtcHR5KCkpIHsKKyAgICBp
ZiAobV91cmwuaXNWYWxpZCgpKQogICAgICAgICByZXN1bHRzLmFkZChtaW1lVHlwZVVSTCk7CisK
KyAgICBpZiAoIW1fdXJpTGlzdC5pc0VtcHR5KCkpCiAgICAgICAgIHJlc3VsdHMuYWRkKG1pbWVU
eXBlVGV4dFVSSUxpc3QpOwotICAgIH0KIAogICAgIGlmICghbV90ZXh0SHRtbC5pc0VtcHR5KCkp
CiAgICAgICAgIHJlc3VsdHMuYWRkKG1pbWVUeXBlVGV4dEhUTUwpOwpAQCAtMTQwLDI0ICsxNDEs
MTMgQEAgU3RyaW5nIENocm9taXVtRGF0YU9iamVjdDo6Z2V0RGF0YShjb25zdCBTdHJpbmcmIHR5
cGUsIGJvb2wmIHN1Y2Nlc3MpCiAgICAgfQogCiAgICAgaWYgKHR5cGUgPT0gbWltZVR5cGVVUkwp
IHsKLSAgICAgICAgQVNTRVJUKG1fdXJsLmlzRW1wdHkoKSA9PSBtX3VyaUxpc3QuaXNFbXB0eSgp
KTsKICAgICAgICAgc3VjY2VzcyA9ICFtX3VybC5pc0VtcHR5KCk7CiAgICAgICAgIHJldHVybiBt
X3VybC5zdHJpbmcoKTsKICAgICB9CiAKICAgICBpZiAodHlwZSA9PSBtaW1lVHlwZVRleHRVUklM
aXN0KSB7Ci0gICAgICAgIEFTU0VSVChtX3VybC5pc0VtcHR5KCkgPT0gbV91cmlMaXN0LmlzRW1w
dHkoKSk7Ci0gICAgICAgIGlmIChtX3VyaUxpc3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBz
dWNjZXNzID0gZmFsc2U7Ci0gICAgICAgICAgICByZXR1cm4gIiI7Ci0gICAgICAgIH0KLSAgICAg
ICAgU3RyaW5nIHVyaUxpc3RTdHJpbmcobV91cmlMaXN0WzBdKTsKLSAgICAgICAgZm9yIChzaXpl
X3QgaSA9IDE7IGkgPCBtX3VyaUxpc3Quc2l6ZSgpOyBpKyspIHsKLSAgICAgICAgICAgIHVyaUxp
c3RTdHJpbmcuYXBwZW5kKHRleHRNSU1FVHlwZUxpbmVTZXBhcmF0b3IpOwotICAgICAgICAgICAg
dXJpTGlzdFN0cmluZy5hcHBlbmQobV91cmlMaXN0W2ldKTsKLSAgICAgICAgfQotICAgICAgICBz
dWNjZXNzID0gdHJ1ZTsKLSAgICAgICAgcmV0dXJuIHVyaUxpc3RTdHJpbmc7CisgICAgICAgIHN1
Y2Nlc3MgPSAhbV91cmlMaXN0LmlzRW1wdHkoKTsKKyAgICAgICAgcmV0dXJuIG1fdXJpTGlzdDsK
ICAgICB9CiAKICAgICBpZiAodHlwZSA9PSBtaW1lVHlwZVRleHRIVE1MKSB7CkBAIC0xOTQsMzQg
KzE4NCwyOSBAQCBib29sIENocm9taXVtRGF0YU9iamVjdDo6c2V0RGF0YShjb25zdCBTdHJpbmcm
IHR5cGUsIGNvbnN0IFN0cmluZyYgZGF0YSkKIAogICAgIGlmICh0eXBlID09IG1pbWVUeXBlVVJM
IHx8IHR5cGUgPT0gbWltZVR5cGVUZXh0VVJJTGlzdCkgewogICAgICAgICBtX3VybCA9IEtVUkwo
KTsKLSAgICAgICAgLy8gTGluZSBzZXBhcmF0b3IgaXMgXHJcbiBwZXIgUkZDIDI0ODMgLSBob3dl
dmVyLCBmb3IgY29tcGF0aWJpbGl0eSByZWFzb25zCi0gICAgICAgIC8vIHdlIGFsc28gYWxsb3cg
anVzdCBcbiBoZXJlLgotICAgICAgICBkYXRhLnNwbGl0KCdcbicsIG1fdXJpTGlzdCk7Ci0gICAg
ICAgIC8vIFN0cmlwIHdoaXRlIHNwYWNlIG9uIGFsbCBsaW5lcywgaW5jbHVkaW5nIHRyYWlsaW5n
IFxyIGZyb20gYWJvdmUgc3BsaXQuCi0gICAgICAgIC8vIElmIHRoaXMgbGVhdmVzIGEgbGluZSBl
bXB0eSwgcmVtb3ZlIGl0IGNvbXBsZXRlbHkuCi0gICAgICAgIC8vCi0gICAgICAgIC8vIEFsc28s
IGNvcHkgdGhlIGZpcnN0IHZhbGlkIFVSTCBpbnRvIHRoZSAndXJsJyBtZW1iZXIgYXMgd2VsbC4K
LSAgICAgICAgLy8gSW4gY2FzZSBubyBlbnRyeSBpcyBhIHZhbGlkIFVSTCAoaS5lLiwgcmVtYXJr
cyBvbmx5KSwgdGhlbiB3ZSBsZWF2ZSAndXJsJyBlbXB0eS4KLSAgICAgICAgLy8gSS5lLiwgaW4g
dGhhdCBjYXNlIHN1YnNlcXVlbnQgY2FsbHMgdG8gZ2V0RGF0YSgiVVJMIikgd2lsbCBnZXQgYW4g
ZW1wdHkgc3RyaW5nLgotICAgICAgICAvLyBUaGlzIGlzIGluIGxpbmUgd2l0aCB0aGUgSFRNTDUg
c3BlYyAoc2VlICJUaGUgRHJhZ0V2ZW50IGFuZCBEYXRhVHJhbnNmZXIgaW50ZXJmYWNlcyIpLgot
ICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fdXJpTGlzdC5zaXplKCk7IC8qKi8pIHsK
LSAgICAgICAgICAgIFN0cmluZyYgbGluZSA9IG1fdXJpTGlzdFtpXTsKKyAgICAgICAgVmVjdG9y
PFN0cmluZz4gdXJpTGlzdDsKKyAgICAgICAgLy8gTGluZSBzZXBhcmF0b3IgaXMgXHJcbiBwZXIg
UkZDIDI0ODMgLSBob3dldmVyLCBmb3IgY29tcGF0aWJpbGl0eQorICAgICAgICAvLyByZWFzb25z
IHdlIGFsc28gYWxsb3cganVzdCBcbiBoZXJlLgorICAgICAgICBkYXRhLnNwbGl0KCdcbicsIHVy
aUxpc3QpOworICAgICAgICAvLyBQcm9jZXNzIHRoZSBpbnB1dCBhbmQgY29weSB0aGUgZmlyc3Qg
dmFsaWQgVVJMIGludG8gdGhlIHVybCBtZW1iZXIuCisgICAgICAgIC8vIEluIGNhc2Ugbm8gVVJM
cyBjYW4gYmUgZm91bmQsIHN1YnNlcXVlbnQgY2FsbHMgdG8gZ2V0RGF0YSgiVVJMIikKKyAgICAg
ICAgLy8gd2lsbCBnZXQgYW4gZW1wdHkgc3RyaW5nLiBUaGlzIGlzIGluIGxpbmUgd2l0aCB0aGUg
SFRNTDUgc3BlYyAoc2VlCisgICAgICAgIC8vICJUaGUgRHJhZ0V2ZW50IGFuZCBEYXRhVHJhbnNm
ZXIgaW50ZXJmYWNlcyIpLgorICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVyaUxpc3Qu
c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyYgbGluZSA9IHVyaUxpc3RbaV07CiAg
ICAgICAgICAgICBsaW5lID0gbGluZS5zdHJpcFdoaXRlU3BhY2UoKTsKICAgICAgICAgICAgIGlm
IChsaW5lLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgICAgIG1fdXJpTGlzdC5yZW1vdmUoaSk7
CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAr
K2k7Ci0gICAgICAgICAgICAvLyBPbmx5IGNvcHkgdGhlIGZpcnN0IHZhbGlkIFVSTC4KLSAgICAg
ICAgICAgIGlmIChtX3VybC5pc1ZhbGlkKCkpCi0gICAgICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgICAgICBpZiAobGluZVswXSA9PSAnIycpCiAgICAgICAgICAgICAgICAgY29udGludWU7
CiAgICAgICAgICAgICBLVVJMIHVybCA9IEtVUkwoUGFyc2VkVVJMU3RyaW5nLCBsaW5lKTsKLSAg
ICAgICAgICAgIGlmICh1cmwuaXNWYWxpZCgpKQorICAgICAgICAgICAgaWYgKHVybC5pc1ZhbGlk
KCkpIHsKICAgICAgICAgICAgICAgICBtX3VybCA9IHVybDsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICBBU1NFUlQobV91cmwuaXNFbXB0
eSgpID09IG1fdXJpTGlzdC5pc0VtcHR5KCkpOworICAgICAgICBtX3VyaUxpc3QgPSBkYXRhOwog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmggYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL0Nocm9taXVtRGF0YU9iamVjdC5oCmluZGV4IDE1NjI0MjIuLmNkNThlY2IgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmgKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3QuaApAQCAtMTExLDcg
KzExMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gc3RyaW5nIHZhbHVlOyBz
ZXR0aW5nIG1fdXJpTGlzdCB3aWxsIGNhdXNlIGl0cyBjb250ZW50cyB0byBiZSBwYXJzZWQKICAg
ICAgICAgLy8gYWNjb3JkaW5nIHRvIFJGQyAyNDgzIGFuZCB0aGUgZmlyc3QgVVJMIGZvdW5kIHdp
bGwgYmUgc2V0IGluIG1fdXJsLgogICAgICAgICBLVVJMIG1fdXJsOwotICAgICAgICBWZWN0b3I8
U3RyaW5nPiBtX3VyaUxpc3Q7CisgICAgICAgIFN0cmluZyBtX3VyaUxpc3Q7CiAgICAgfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>