<?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>44800</bug_id>
          
          <creation_ts>2010-08-27 15:52:30 -0700</creation_ts>
          <short_desc>Notifications should support a click event</short_desc>
          <delta_ts>2010-09-13 07:22:41 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</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>
          
          <blocked>44836</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="John Gregg">johnnyg</reporter>
          <assigned_to name="John Gregg">johnnyg</assigned_to>
          <cc>ademar</cc>
    
    <cc>fishd</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>270786</commentid>
    <comment_count>0</comment_count>
    <who name="John Gregg">johnnyg</who>
    <bug_when>2010-08-27 15:52:30 -0700</bug_when>
    <thetext>Notifications should support a click event</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270801</commentid>
    <comment_count>1</comment_count>
      <attachid>65782</attachid>
    <who name="John Gregg">johnnyg</who>
    <bug_when>2010-08-27 16:26:37 -0700</bug_when>
    <thetext>Created attachment 65782
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271633</commentid>
    <comment_count>2</comment_count>
      <attachid>65782</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2010-08-30 14:28:51 -0700</bug_when>
    <thetext>Comment on attachment 65782
Patch

Before landing let&apos;s get a quick ok from Darin on the public api change.


&gt; Index: WebKitTools/ChangeLog
&gt; ===================================================================
&gt; --- WebKitTools/ChangeLog	(revision 66270)
&gt; +++ WebKitTools/ChangeLog	(working copy)
&gt; @@ -1,3 +1,24 @@
&gt; +2010-08-27  John Gregg  &lt;johnnyg@google.com&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Notifications should support a click event.
&gt; +        Adds necessary hooks to chromium&apos;s DRT so that clicks on desktop notifications
&gt; +        can be simulated during a layout test.  Requires storing a list of active
&gt; +        notifications so that they can be referred to later for clicking.
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=44800
&gt; +
&gt; +        * DumpRenderTree/chromium/LayoutTestController.cpp:
&gt; +        (LayoutTestController::LayoutTestController):
&gt; +        (LayoutTestController::simulateDesktopNotificationClick):
&gt; +        * DumpRenderTree/chromium/LayoutTestController.h:
&gt; +        * DumpRenderTree/chromium/NotificationPresenter.cpp:
&gt; +        (NotificationPresenter::simulateClick):
&gt; +        (NotificationPresenter::show):
&gt; +        (NotificationPresenter::cancel):
&gt; +        (NotificationPresenter::objectDestroyed):
&gt; +        * DumpRenderTree/chromium/NotificationPresenter.h:

Please consider switching to a per function comment style here in the future (and trimming the overall summary as a result).


&gt;  
&gt; Index: WebKitTools/DumpRenderTree/chromium/NotificationPresenter.cpp
&gt; ===================================================================
&gt; --- WebKitTools/DumpRenderTree/chromium/NotificationPresenter.cpp	(revision 66183)
&gt; +++ WebKitTools/DumpRenderTree/chromium/NotificationPresenter.cpp	(working copy)
&gt; @@ -50,17 +50,33 @@ void NotificationPresenter::grantPermiss
&gt;      m_allowedOrigins.add(WTF::String(url.GetOrigin().spec().c_str()));
&gt;  }
&gt;  
&gt; +bool NotificationPresenter::simulateClick(const WebString&amp; title)
&gt; +{
&gt; +    WTF::String id(title.data(), title.length());
&gt; +    if (m_activeNotifications.find(id) != m_activeNotifications.end()) {

Please consider a fail fast approach.

    if (m_activeNotifications.find(id) == m_activeNotifications.end())
        return false;
....

&gt; +    WebString identifier;
&gt; +    if (notification.isHTML())
&gt; +        identifier = notification.url().spec().utf16();
&gt; +    else
&gt; +        identifier = notification.title();
&gt; +

Consider making a function out of this, since the same thing is done at least twice.



&gt; Index: LayoutTests/fast/notifications/notifications-click-event.html
&gt; +            var N = window.webkitNotifications.createNotification(&quot;&quot;, &quot;New E-mail&quot;, &quot;Meet me tonight at 8!&quot;);
&gt; +            N.onclick = function() { log(&quot;PASS: click event fired.&quot;); N.cancel();  }
&gt; +            N.show();
&gt; +	    if (window.layoutTestController) {

The formatting is a bit odd here due to TABs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271715</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-08-30 15:59:46 -0700</bug_when>
    <thetext>API change LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271828</commentid>
    <comment_count>4</comment_count>
      <attachid>65990</attachid>
    <who name="John Gregg">johnnyg</who>
    <bug_when>2010-08-30 18:13:38 -0700</bug_when>
    <thetext>Created attachment 65990
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271892</commentid>
    <comment_count>5</comment_count>
    <who name="John Gregg">johnnyg</who>
    <bug_when>2010-08-30 20:49:42 -0700</bug_when>
    <thetext>Updated the patch with the changes you suggested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271987</commentid>
    <comment_count>6</comment_count>
    <who name="John Gregg">johnnyg</who>
    <bug_when>2010-08-31 01:59:25 -0700</bug_when>
    <thetext>Committed r66470: &lt;http://trac.webkit.org/changeset/66470&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272082</commentid>
    <comment_count>7</comment_count>
      <attachid>65990</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2010-08-31 07:24:09 -0700</bug_when>
    <thetext>Comment on attachment 65990
Patch

Cleared cq+ since John landed this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278197</commentid>
    <comment_count>8</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2010-09-13 07:22:41 -0700</bug_when>
    <thetext>Revision r66470 cherry-picked into qtwebkit-2.1 with commit d11109dced53426ff19d0e89c133cb49fac0a2c8</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65782</attachid>
            <date>2010-08-27 16:26:37 -0700</date>
            <delta_ts>2010-08-30 18:13:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44800-20100827162636.patch</filename>
            <type>text/plain</type>
            <size>14904</size>
            <attacher name="John Gregg">johnnyg</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NjI3MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTAtMDgtMjcgIEpvaG4gR3JlZ2cgIDxqb2hubnlnQGdvb2dsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm90
aWZpY2F0aW9ucyBzaG91bGQgc3VwcG9ydCBhIGNsaWNrIGV2ZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDgwMAorCisgICAgICAgIFRlc3Q6IGZh
c3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLWNsaWNrLWV2ZW50Lmh0bWwKKworICAgICAg
ICAqIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmg6CisgICAgICAgICogbm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb24uaWRsOgorCiAyMDEwLTA4LTI3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5m
cmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCkluZGV4
OiBXZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5oCShyZXZpc2lvbiA2NjE4MykKKysrIFdl
YkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtODMs
NiArODMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIERFRklORV9BVFRSSUJVVEVf
RVZFTlRfTElTVEVORVIoZGlzcGxheSk7CiAgICAgICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRf
TElTVEVORVIoZXJyb3IpOwogICAgICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVS
KGNsb3NlKTsKKyAgICAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihjbGljayk7
CiAgICAgCiAgICAgICAgIHVzaW5nIFJlZkNvdW50ZWQ8Tm90aWZpY2F0aW9uPjo6cmVmOwogICAg
ICAgICB1c2luZyBSZWZDb3VudGVkPE5vdGlmaWNhdGlvbj46OmRlcmVmOwpJbmRleDogV2ViQ29y
ZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9u
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwJKHJldmlzaW9uIDY2MTgzKQorKysgV2ViQ29y
ZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTQxLDYg
KzQxLDcgQEAgbW9kdWxlIHRocmVhZHMgewogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5l
ciBvbmRpc3BsYXk7CiAgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uZXJyb3I7CiAg
ICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uY2xvc2U7CisgICAgICAgIGF0dHJpYnV0
ZSBFdmVudExpc3RlbmVyIG9uY2xpY2s7CiAKICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyBk
aXI7CiAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgcmVwbGFjZUlkOwpJbmRleDogV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCShyZXZpc2lvbiA2NjI3MCkKKysrIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxMC0wOC0yNyAgSm9obiBHcmVnZyAgPGpvaG5u
eWdAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBOb3RpZmljYXRpb25zIHNob3VsZCBzdXBwb3J0IGEgY2xpY2sgZXZlbnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0ODAwCisKKyAgICAg
ICAgKiBwdWJsaWMvV2ViTm90aWZpY2F0aW9uLmg6CisgICAgICAgICogc3JjL1dlYk5vdGlmaWNh
dGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbjo6ZGlzcGF0Y2hDbGlj
a0V2ZW50KToKKwogMjAxMC0wOC0yNyAgTWljaGFlbCBOb3JkbWFuICA8bWljaGFlbG5AZ29vZ2xl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KSW5kZXg6IFdlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViTm90aWZpY2F0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJOb3RpZmljYXRpb24uaAkocmV2aXNpb24gNjYxODMpCisrKyBXZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYk5vdGlmaWNhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC05
Nyw2ICs5Nyw5IEBAIHB1YmxpYzoKICAgICAvLyB0aGUgYnlVc2VyIHBhcmFtZXRlciB3aWxsIGJl
IHRydWUuCiAgICAgV0VCS0lUX0FQSSB2b2lkIGRpc3BhdGNoQ2xvc2VFdmVudChib29sIGJ5VXNl
cik7CiAKKyAgICAvLyBDYWxsZWQgdG8gaW5kaWNhdGUgdGhlIG5vdGlmaWNhdGlvbiB3YXMgY2xp
Y2tlZCBvbi4KKyAgICBXRUJLSVRfQVBJIHZvaWQgZGlzcGF0Y2hDbGlja0V2ZW50KCk7CisKICNp
ZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KICAgICBXZWJOb3RpZmljYXRpb24oY29uc3QgV1RGOjpQ
YXNzUmVmUHRyPFdlYkNvcmU6Ok5vdGlmaWNhdGlvbj4mKTsKICAgICBXZWJOb3RpZmljYXRpb24m
IG9wZXJhdG9yPShjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6Tm90aWZpY2F0aW9uPiYp
OwpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJOb3RpZmljYXRpb24uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViTm90aWZpY2F0aW9uLmNwcAkocmV2aXNpb24g
NjYxODMpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYk5vdGlmaWNhdGlvbi5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEzOCw2ICsxMzgsMTIgQEAgdm9pZCBXZWJOb3RpZmljYXRpb246OmRpc3Bh
dGNoQ2xvc2VFdmVudAogICAgIG1fcHJpdmF0ZS0+ZGlzcGF0Y2hFdmVudChldmVudC5yZWxlYXNl
KCkpOwogfQogCit2b2lkIFdlYk5vdGlmaWNhdGlvbjo6ZGlzcGF0Y2hDbGlja0V2ZW50KCkKK3sK
KyAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50ID0gRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2xp
Y2tFdmVudCwgZmFsc2UsIHRydWUpOworICAgIG1fcHJpdmF0ZS0+ZGlzcGF0Y2hFdmVudChldmVu
dC5yZWxlYXNlKCkpOworfQorCiBXZWJOb3RpZmljYXRpb246OldlYk5vdGlmaWNhdGlvbihjb25z
dCBXVEY6OlBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uPiYgbm90aWZpY2F0aW9uKQogICAgIDogbV9w
cml2YXRlKHN0YXRpY19jYXN0PFdlYk5vdGlmaWNhdGlvblByaXZhdGUqPihub3RpZmljYXRpb24u
cmVsZWFzZVJlZigpKSkKIHsKSW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXRUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDY2MjcwKQorKysgV2ViS2l0VG9v
bHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDgtMjcg
IEpvaG4gR3JlZ2cgIDxqb2hubnlnQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm90aWZpY2F0aW9ucyBzaG91bGQgc3VwcG9ydCBh
IGNsaWNrIGV2ZW50LgorICAgICAgICBBZGRzIG5lY2Vzc2FyeSBob29rcyB0byBjaHJvbWl1bSdz
IERSVCBzbyB0aGF0IGNsaWNrcyBvbiBkZXNrdG9wIG5vdGlmaWNhdGlvbnMKKyAgICAgICAgY2Fu
IGJlIHNpbXVsYXRlZCBkdXJpbmcgYSBsYXlvdXQgdGVzdC4gIFJlcXVpcmVzIHN0b3JpbmcgYSBs
aXN0IG9mIGFjdGl2ZQorICAgICAgICBub3RpZmljYXRpb25zIHNvIHRoYXQgdGhleSBjYW4gYmUg
cmVmZXJyZWQgdG8gbGF0ZXIgZm9yIGNsaWNraW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ4MDAKKworICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RD
b250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgIChMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6c2ltdWxhdGVEZXNrdG9wTm90aWZpY2F0aW9uQ2xpY2spOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTm90aWZpY2F0aW9uUHJlc2VudGVyLmNwcDoKKyAgICAg
ICAgKE5vdGlmaWNhdGlvblByZXNlbnRlcjo6c2ltdWxhdGVDbGljayk6CisgICAgICAgIChOb3Rp
ZmljYXRpb25QcmVzZW50ZXI6OnNob3cpOgorICAgICAgICAoTm90aWZpY2F0aW9uUHJlc2VudGVy
OjpjYW5jZWwpOgorICAgICAgICAoTm90aWZpY2F0aW9uUHJlc2VudGVyOjpvYmplY3REZXN0cm95
ZWQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL05vdGlmaWNhdGlvblByZXNl
bnRlci5oOgorCiAyMDEwLTA3LTI3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KSW5kZXg6IFdlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJv
bGxlci5jcHAJKHJldmlzaW9uIDY2MTgzKQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzks
NiArMTM5LDcgQEAgTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbAogICAg
IGJpbmRNZXRob2QoIm51bWJlck9mUGFnZXMiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6Om51bWJl
ck9mUGFnZXMpOwogICAgIGJpbmRNZXRob2QoImR1bXBTZWxlY3Rpb25SZWN0IiwgJkxheW91dFRl
c3RDb250cm9sbGVyOjpkdW1wU2VsZWN0aW9uUmVjdCk7CiAgICAgYmluZE1ldGhvZCgiZ3JhbnRE
ZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbiIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6Z3Jh
bnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbik7CisgICAgYmluZE1ldGhvZCgic2ltdWxh
dGVEZXNrdG9wTm90aWZpY2F0aW9uQ2xpY2siLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNpbXVs
YXRlRGVza3RvcE5vdGlmaWNhdGlvbkNsaWNrKTsKIAogICAgIC8vIFRoZSBmb2xsb3dpbmcgYXJl
IHN0dWJzLgogICAgIGJpbmRNZXRob2QoImR1bXBBc1dlYkFyY2hpdmUiLCAmTGF5b3V0VGVzdENv
bnRyb2xsZXI6OmR1bXBBc1dlYkFyY2hpdmUpOwpAQCAtOTQyLDYgKzk0MywxOCBAQCB2b2lkIExh
eW91dFRlc3RDb250cm9sbGVyOjpncmFudERlc2t0b3BOCiAgICAgcmVzdWx0LT5zZXQodHJ1ZSk7
CiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNpbXVsYXRlRGVza3RvcE5vdGlmaWNh
dGlvbkNsaWNrKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiBy
ZXN1bHQpCit7CisgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgIT0gMSB8fCAhYXJndW1lbnRzWzBd
LmlzU3RyaW5nKCkpIHsKKyAgICAgICAgcmVzdWx0LT5zZXQoZmFsc2UpOworICAgICAgICByZXR1
cm47CisgICAgfQorICAgIGlmIChtX3NoZWxsLT5ub3RpZmljYXRpb25QcmVzZW50ZXIoKS0+c2lt
dWxhdGVDbGljayhjcHBWYXJpYW50VG9XZWJTdHJpbmcoYXJndW1lbnRzWzBdKSkpCisgICAgICAg
IHJlc3VsdC0+c2V0KHRydWUpOworICAgIGVsc2UKKyAgICAgICAgcmVzdWx0LT5zZXQoZmFsc2Up
OworfQorCiAvLwogLy8gVW5pbXBsZW1lbnRlZCBzdHVicwogLy8KSW5kZXg6IFdlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRy
b2xsZXIuaAkocmV2aXNpb24gNjYxODMpCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTgsNiAr
MjE4LDggQEAgcHVibGljOgogCiAgICAgLy8gR3JhbnRzIHBlcm1pc3Npb24gZm9yIGRlc2t0b3Ag
bm90aWZpY2F0aW9ucyB0byBhbiBvcmlnaW4KICAgICB2b2lkIGdyYW50RGVza3RvcE5vdGlmaWNh
dGlvblBlcm1pc3Npb24oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAg
IC8vIFNpbXVsYXRlcyBhIGNsaWNrIG9uIGEgZGVza3RvcCBub3RpZmljYXRpb24uCisgICAgdm9p
ZCBzaW11bGF0ZURlc2t0b3BOb3RpZmljYXRpb25DbGljayhjb25zdCBDcHBBcmd1bWVudExpc3Qm
LCBDcHBWYXJpYW50Kik7CiAKICAgICB2b2lkIHNldEVkaXRpbmdCZWhhdmlvcihjb25zdCBDcHBB
cmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL05vdGlmaWNhdGlvblByZXNlbnRlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTm90aWZpY2F0aW9uUHJlc2VudGVy
LmNwcAkocmV2aXNpb24gNjYxODMpCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9Ob3RpZmljYXRpb25QcmVzZW50ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MCwxNyAr
NTAsMzMgQEAgdm9pZCBOb3RpZmljYXRpb25QcmVzZW50ZXI6OmdyYW50UGVybWlzcwogICAgIG1f
YWxsb3dlZE9yaWdpbnMuYWRkKFdURjo6U3RyaW5nKHVybC5HZXRPcmlnaW4oKS5zcGVjKCkuY19z
dHIoKSkpOwogfQogCitib29sIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6c2ltdWxhdGVDbGljayhj
b25zdCBXZWJTdHJpbmcmIHRpdGxlKQoreworICAgIFdURjo6U3RyaW5nIGlkKHRpdGxlLmRhdGEo
KSwgdGl0bGUubGVuZ3RoKCkpOworICAgIGlmIChtX2FjdGl2ZU5vdGlmaWNhdGlvbnMuZmluZChp
ZCkgIT0gbV9hY3RpdmVOb3RpZmljYXRpb25zLmVuZCgpKSB7CisgICAgICAgIGNvbnN0IFdlYk5v
dGlmaWNhdGlvbiYgbm90aWZpY2F0aW9uID0gbV9hY3RpdmVOb3RpZmljYXRpb25zLmZpbmQoaWQp
LT5zZWNvbmQ7CisgICAgICAgIFdlYk5vdGlmaWNhdGlvbiBldmVudFRhcmdldChub3RpZmljYXRp
b24pOworICAgICAgICBldmVudFRhcmdldC5kaXNwYXRjaENsaWNrRXZlbnQoKTsKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwogLy8gVGhlIG91dHB1
dCBmcm9tIGFsbCB0aGVzZSBtZXRob2RzIG1hdGNoZXMgd2hhdCBEdW1wUmVuZGVyVHJlZSBwcm9k
dWNlcy4KIGJvb2wgTm90aWZpY2F0aW9uUHJlc2VudGVyOjpzaG93KGNvbnN0IFdlYk5vdGlmaWNh
dGlvbiYgbm90aWZpY2F0aW9uKQogeworICAgIFdlYlN0cmluZyBpZGVudGlmaWVyOworICAgIGlm
IChub3RpZmljYXRpb24uaXNIVE1MKCkpCisgICAgICAgIGlkZW50aWZpZXIgPSBub3RpZmljYXRp
b24udXJsKCkuc3BlYygpLnV0ZjE2KCk7CisgICAgZWxzZQorICAgICAgICBpZGVudGlmaWVyID0g
bm90aWZpY2F0aW9uLnRpdGxlKCk7CisKICAgICBpZiAoIW5vdGlmaWNhdGlvbi5yZXBsYWNlSWQo
KS5pc0VtcHR5KCkpIHsKICAgICAgICAgV1RGOjpTdHJpbmcgcmVwbGFjZUlkKG5vdGlmaWNhdGlv
bi5yZXBsYWNlSWQoKS5kYXRhKCksIG5vdGlmaWNhdGlvbi5yZXBsYWNlSWQoKS5sZW5ndGgoKSk7
CiAgICAgICAgIGlmIChtX3JlcGxhY2VtZW50cy5maW5kKHJlcGxhY2VJZCkgIT0gbV9yZXBsYWNl
bWVudHMuZW5kKCkpCiAgICAgICAgICAgICBwcmludGYoIlJFUExBQ0lORyBOT1RJRklDQVRJT04g
JXNcbiIsCiAgICAgICAgICAgICAgICAgICAgbV9yZXBsYWNlbWVudHMuZmluZChyZXBsYWNlSWQp
LT5zZWNvbmQudXRmOCgpLmRhdGEoKSk7CiAKLSAgICAgICAgV2ViU3RyaW5nIGlkZW50aWZpZXIg
PSBub3RpZmljYXRpb24uaXNIVE1MKCkgPwotICAgICAgICAgICAgbm90aWZpY2F0aW9uLnVybCgp
LnNwZWMoKS51dGYxNigpIDogbm90aWZpY2F0aW9uLnRpdGxlKCk7CiAgICAgICAgIG1fcmVwbGFj
ZW1lbnRzLnNldChyZXBsYWNlSWQsIFdURjo6U3RyaW5nKGlkZW50aWZpZXIuZGF0YSgpLCBpZGVu
dGlmaWVyLmxlbmd0aCgpKSk7CiAgICAgfQogCkBAIC03OCw2ICs5NCw5IEBAIGJvb2wgTm90aWZp
Y2F0aW9uUHJlc2VudGVyOjpzaG93KGNvbnN0IFcKICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlv
bi5ib2R5KCkudXRmOCgpLmRhdGEoKSk7CiAgICAgfQogCisgICAgV1RGOjpTdHJpbmcgaWQoaWRl
bnRpZmllci5kYXRhKCksIGlkZW50aWZpZXIubGVuZ3RoKCkpOworICAgIG1fYWN0aXZlTm90aWZp
Y2F0aW9ucy5zZXQoaWQsIG5vdGlmaWNhdGlvbik7CisKICAgICBXZWJOb3RpZmljYXRpb24gZXZl
bnRUYXJnZXQobm90aWZpY2F0aW9uKTsKICAgICBldmVudFRhcmdldC5kaXNwYXRjaERpc3BsYXlF
dmVudCgpOwogICAgIHJldHVybiB0cnVlOwpAQCAtOTQsMTEgKzExMywyMSBAQCB2b2lkIE5vdGlm
aWNhdGlvblByZXNlbnRlcjo6Y2FuY2VsKGNvbnN0CiAgICAgcHJpbnRmKCJERVNLVE9QIE5PVElG
SUNBVElPTiBDTE9TRUQ6ICVzXG4iLCBpZGVudGlmaWVyLnV0ZjgoKS5kYXRhKCkpOwogICAgIFdl
Yk5vdGlmaWNhdGlvbiBldmVudFRhcmdldChub3RpZmljYXRpb24pOwogICAgIGV2ZW50VGFyZ2V0
LmRpc3BhdGNoQ2xvc2VFdmVudChmYWxzZSk7CisKKyAgICBXVEY6OlN0cmluZyBpZChpZGVudGlm
aWVyLmRhdGEoKSwgaWRlbnRpZmllci5sZW5ndGgoKSk7CisgICAgbV9hY3RpdmVOb3RpZmljYXRp
b25zLnJlbW92ZShpZCk7CiB9CiAKIHZvaWQgTm90aWZpY2F0aW9uUHJlc2VudGVyOjpvYmplY3RE
ZXN0cm95ZWQoY29uc3QgV2ViS2l0OjpXZWJOb3RpZmljYXRpb24mIG5vdGlmaWNhdGlvbikKIHsK
LSAgICAvLyBOb3RoaW5nIHRvIGRvLiAgTm90IHN0b3JpbmcgdGhlIG9iamVjdHMuCisgICAgV2Vi
U3RyaW5nIGlkZW50aWZpZXI7CisgICAgaWYgKG5vdGlmaWNhdGlvbi5pc0hUTUwoKSkKKyAgICAg
ICAgaWRlbnRpZmllciA9IG5vdGlmaWNhdGlvbi51cmwoKS5zcGVjKCkudXRmMTYoKTsKKyAgICBl
bHNlCisgICAgICAgIGlkZW50aWZpZXIgPSBub3RpZmljYXRpb24udGl0bGUoKTsKKworICAgIFdU
Rjo6U3RyaW5nIGlkKGlkZW50aWZpZXIuZGF0YSgpLCBpZGVudGlmaWVyLmxlbmd0aCgpKTsKKyAg
ICBtX2FjdGl2ZU5vdGlmaWNhdGlvbnMucmVtb3ZlKGlkKTsKIH0KIAogV2ViTm90aWZpY2F0aW9u
UHJlc2VudGVyOjpQZXJtaXNzaW9uIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6Y2hlY2tQZXJtaXNz
aW9uKGNvbnN0IFdlYlVSTCYgdXJsKQpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vTm90aWZpY2F0aW9uUHJlc2VudGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTm90aWZpY2F0aW9uUHJlc2VudGVyLmgJKHJldmlz
aW9uIDY2MTgzKQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTm90aWZp
Y2F0aW9uUHJlc2VudGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpZm5k
ZWYgTm90aWZpY2F0aW9uUHJlc2VudGVyX2gKICNkZWZpbmUgTm90aWZpY2F0aW9uUHJlc2VudGVy
X2gKIAorI2luY2x1ZGUgInB1YmxpYy9XZWJOb3RpZmljYXRpb24uaCIKICNpbmNsdWRlICJwdWJs
aWMvV2ViTm90aWZpY2F0aW9uUHJlc2VudGVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
ICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgpAQCAtNDcsNiArNDgsOSBAQCBwdWJsaWM6CiAgICAg
Ly8gQ2FsbGVkIGJ5IHRoZSBMYXlvdXRUZXN0Q29udHJvbGxlciB0byBzaW11bGF0ZSBhIHVzZXIg
Z3JhbnRpbmcgcGVybWlzc2lvbi4KICAgICB2b2lkIGdyYW50UGVybWlzc2lvbihjb25zdCBXZWJL
aXQ6OldlYlN0cmluZyYgb3JpZ2luKTsKIAorICAgIC8vIENhbGxlZCBieSB0aGUgTGF5b3V0VGVz
dENvbnRyb2xsZXIgdG8gc2ltdWxhdGUgYSB1c2VyIGNsaWNraW5nIG9uIGEgbm90aWZpY2F0aW9u
LgorICAgIGJvb2wgc2ltdWxhdGVDbGljayhjb25zdCBXZWJLaXQ6OldlYlN0cmluZyYgbm90aWZp
Y2F0aW9uSWRlbnRpZmllcik7CisKICAgICAvLyBXZWJLaXQ6OldlYk5vdGlmaWNhdGlvblByZXNl
bnRlciBpbnRlcmZhY2UKICAgICB2aXJ0dWFsIGJvb2wgc2hvdyhjb25zdCBXZWJLaXQ6OldlYk5v
dGlmaWNhdGlvbiYpOwogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWwoY29uc3QgV2ViS2l0OjpXZWJO
b3RpZmljYXRpb24mKTsKQEAgLTYzLDYgKzY3LDkgQEAgcHJpdmF0ZToKICAgICAvLyBTZXQgb2Yg
YWxsb3dlZCBvcmlnaW5zLgogICAgIEhhc2hTZXQ8V1RGOjpTdHJpbmc+IG1fYWxsb3dlZE9yaWdp
bnM7CiAKKyAgICAvLyBNYXAgb2YgYWN0aXZlIG5vdGlmaWNhdGlvbnMuCisgICAgSGFzaE1hcDxX
VEY6OlN0cmluZywgV2ViS2l0OjpXZWJOb3RpZmljYXRpb24+IG1fYWN0aXZlTm90aWZpY2F0aW9u
czsKKwogICAgIC8vIE1hcCBvZiBhY3RpdmUgcmVwbGFjZW1lbnQgSURzIHRvIHRoZSB0aXRsZXMg
b2YgdGhvc2Ugbm90aWZpY2F0aW9ucwogICAgIEhhc2hNYXA8V1RGOjpTdHJpbmcsIFdURjo6U3Ry
aW5nPiBtX3JlcGxhY2VtZW50czsKIH07CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2NjI3MCkKKysrIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEw
LTA4LTI3ICBKb2huIEdyZWdnICA8am9obm55Z0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdGlmaWNhdGlvbnMgc2hvdWxkIHN1
cHBvcnQgYSBjbGljayBldmVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDQ4MDAKKworICAgICAgICAqIGZhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmlj
YXRpb25zLWNsaWNrLWV2ZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9u
b3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtY2xpY2stZXZlbnQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKwogMjAxMC0wOC0yNyAgRXJpYyBDYXJsc29uICA8
ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSdWJiZXItc3RhbXBlZCBTaW1vbiBG
cmFzZXIuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9u
cy1jbGljay1ldmVudC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtY2xpY2stZXZlbnQtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlv
bnMtY2xpY2stZXZlbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcgQEAK
K0RFU0tUT1AgTk9USUZJQ0FUSU9OOiBpY29uICwgdGl0bGUgTmV3IEUtbWFpbCwgdGV4dCBNZWV0
IG1lIHRvbmlnaHQgYXQgOCEKK0RFU0tUT1AgTk9USUZJQ0FUSU9OIENMT1NFRDogTmV3IEUtbWFp
bAorU2hvd2luZyBub3RpZmljYXRpb25zLgorCitUbyBleGVyY2lzZSBtYW51YWxseSwgZ3JhbnQg
bm90aWZpY2F0aW9uIHBlcm1pc3Npb25zIGFuZCBsb2FkIHRoaXMgcGFnZSwgdGhlbiBjbGljayBv
biB0aGUgbm90aWZpY2F0aW9uLiBZb3Ugc2hvdWxkIHNlZSBhICJQQVNTIiBtZXNzYWdlLgorCitQ
QVNTOiBjbGljayBldmVudCBmaXJlZC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0
aW9ucy9ub3RpZmljYXRpb25zLWNsaWNrLWV2ZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtY2xpY2stZXZlbnQuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRp
b25zLWNsaWNrLWV2ZW50Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDIgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CisgICAgICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQorICAgICAgICB7CisgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MICs9IG1lc3Nh
Z2UgKyAiPGJyPiI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZ1bmN0aW9uIHJ1blRl
c3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgeworICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmdyYW50RGVza3Rv
cE5vdGlmaWNhdGlvblBlcm1pc3Npb24oImZpbGU6Ly8iKTsKKyAgICAgICAgICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICBpZiAoIXdpbmRvdy53ZWJraXROb3RpZmljYXRpb25zKSB7CisgICAgICAgICAgICAgICAgbG9n
KCJGQUlMOiBObyB3ZWJraXROb3RpZmljYXRpb25zIGludGVyZmFjZSEiKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgdmFyIE4gPSB3aW5kb3cud2Via2l0Tm90aWZp
Y2F0aW9ucy5jcmVhdGVOb3RpZmljYXRpb24oIiIsICJOZXcgRS1tYWlsIiwgIk1lZXQgbWUgdG9u
aWdodCBhdCA4ISIpOworICAgICAgICAgICAgTi5vbmNsaWNrID0gZnVuY3Rpb24oKSB7IGxvZygi
UEFTUzogY2xpY2sgZXZlbnQgZmlyZWQuIik7IE4uY2FuY2VsKCk7ICB9CisgICAgICAgICAgICBO
LnNob3coKTsKKwkgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNpbXVsYXRlRGVza3RvcE5vdGlmaWNhdGlv
bkNsaWNrKCJOZXcgRS1tYWlsIik7CisJICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3Rp
ZnlEb25lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHA+U2hvd2luZyBub3RpZmljYXRpb25zLjwvcD4KKworPHA+VG8gZXhlcmNp
c2UgbWFudWFsbHksIGdyYW50IG5vdGlmaWNhdGlvbiBwZXJtaXNzaW9ucyBhbmQgbG9hZCB0aGlz
IHBhZ2UsIHRoZW4gY2xpY2sgb24gdGhlIG5vdGlmaWNhdGlvbi4gIFlvdSBzaG91bGQgc2VlIGEg
IlBBU1MiIG1lc3NhZ2UuPC9wPgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4gICAgCisgICAgCis8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CitydW5UZXN0cygpOworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQJKHJldmlzaW9uIDY2
MTgzKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAkod29ya2luZyBjb3B5KQpA
QCAtNTMzNCw2ICs1MzM0LDcgQEAgc3ZnL1czQy1TVkctMS4xL2ZpbHRlcnMtbGlnaHQtMDQtZi5z
dmcKICMgbmV3IHNraXBwZWQgdGVzdHMgeWV0IHRvIGJlIHNvcnRlZAogIyA9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PSAjCiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9jYWxsYmFjay10by1yZW1vdGUtY29udGV4
dDIuaHRtbAorZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtY2xpY2stZXZlbnQuaHRt
bAogCiAjIExpbmsgcHJlZmV0Y2ggaXMgZGlzYWJsZWQgYnkgZGVmYXVsdAogZmFzdC9kb20vSFRN
TExpbmtFbGVtZW50L3ByZWZldGNoLmh0bWwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65990</attachid>
            <date>2010-08-30 18:13:38 -0700</date>
            <delta_ts>2010-08-31 07:24:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44800-20100830181337.patch</filename>
            <type>text/plain</type>
            <size>15392</size>
            <attacher name="John Gregg">johnnyg</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NjI3MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTAtMDgtMjcgIEpvaG4gR3JlZ2cgIDxqb2hubnlnQGdvb2dsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm90
aWZpY2F0aW9ucyBzaG91bGQgc3VwcG9ydCBhIGNsaWNrIGV2ZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDgwMAorCisgICAgICAgIFRlc3Q6IGZh
c3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLWNsaWNrLWV2ZW50Lmh0bWwKKworICAgICAg
ICAqIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmg6CisgICAgICAgICogbm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb24uaWRsOgorCiAyMDEwLTA4LTI3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5m
cmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCkluZGV4
OiBXZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5oCShyZXZpc2lvbiA2NjE4MykKKysrIFdl
YkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtODMs
NiArODMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIERFRklORV9BVFRSSUJVVEVf
RVZFTlRfTElTVEVORVIoZGlzcGxheSk7CiAgICAgICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRf
TElTVEVORVIoZXJyb3IpOwogICAgICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVS
KGNsb3NlKTsKKyAgICAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihjbGljayk7
CiAgICAgCiAgICAgICAgIHVzaW5nIFJlZkNvdW50ZWQ8Tm90aWZpY2F0aW9uPjo6cmVmOwogICAg
ICAgICB1c2luZyBSZWZDb3VudGVkPE5vdGlmaWNhdGlvbj46OmRlcmVmOwpJbmRleDogV2ViQ29y
ZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9u
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwJKHJldmlzaW9uIDY2MTgzKQorKysgV2ViQ29y
ZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTQxLDYg
KzQxLDcgQEAgbW9kdWxlIHRocmVhZHMgewogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5l
ciBvbmRpc3BsYXk7CiAgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uZXJyb3I7CiAg
ICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uY2xvc2U7CisgICAgICAgIGF0dHJpYnV0
ZSBFdmVudExpc3RlbmVyIG9uY2xpY2s7CiAKICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyBk
aXI7CiAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgcmVwbGFjZUlkOwpJbmRleDogV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCShyZXZpc2lvbiA2NjI3MCkKKysrIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxMC0wOC0yNyAgSm9obiBHcmVnZyAgPGpvaG5u
eWdAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBOb3RpZmljYXRpb25zIHNob3VsZCBzdXBwb3J0IGEgY2xpY2sgZXZlbnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0ODAwCisKKyAgICAg
ICAgKiBwdWJsaWMvV2ViTm90aWZpY2F0aW9uLmg6CisgICAgICAgICogc3JjL1dlYk5vdGlmaWNh
dGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbjo6ZGlzcGF0Y2hDbGlj
a0V2ZW50KToKKwogMjAxMC0wOC0yNyAgTWljaGFlbCBOb3JkbWFuICA8bWljaGFlbG5AZ29vZ2xl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KSW5kZXg6IFdlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViTm90aWZpY2F0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJOb3RpZmljYXRpb24uaAkocmV2aXNpb24gNjYxODMpCisrKyBXZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYk5vdGlmaWNhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC05
Nyw2ICs5Nyw5IEBAIHB1YmxpYzoKICAgICAvLyB0aGUgYnlVc2VyIHBhcmFtZXRlciB3aWxsIGJl
IHRydWUuCiAgICAgV0VCS0lUX0FQSSB2b2lkIGRpc3BhdGNoQ2xvc2VFdmVudChib29sIGJ5VXNl
cik7CiAKKyAgICAvLyBDYWxsZWQgdG8gaW5kaWNhdGUgdGhlIG5vdGlmaWNhdGlvbiB3YXMgY2xp
Y2tlZCBvbi4KKyAgICBXRUJLSVRfQVBJIHZvaWQgZGlzcGF0Y2hDbGlja0V2ZW50KCk7CisKICNp
ZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KICAgICBXZWJOb3RpZmljYXRpb24oY29uc3QgV1RGOjpQ
YXNzUmVmUHRyPFdlYkNvcmU6Ok5vdGlmaWNhdGlvbj4mKTsKICAgICBXZWJOb3RpZmljYXRpb24m
IG9wZXJhdG9yPShjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6Tm90aWZpY2F0aW9uPiYp
OwpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJOb3RpZmljYXRpb24uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViTm90aWZpY2F0aW9uLmNwcAkocmV2aXNpb24g
NjYxODMpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYk5vdGlmaWNhdGlvbi5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEzOCw2ICsxMzgsMTIgQEAgdm9pZCBXZWJOb3RpZmljYXRpb246OmRpc3Bh
dGNoQ2xvc2VFdmVudAogICAgIG1fcHJpdmF0ZS0+ZGlzcGF0Y2hFdmVudChldmVudC5yZWxlYXNl
KCkpOwogfQogCit2b2lkIFdlYk5vdGlmaWNhdGlvbjo6ZGlzcGF0Y2hDbGlja0V2ZW50KCkKK3sK
KyAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50ID0gRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2xp
Y2tFdmVudCwgZmFsc2UsIHRydWUpOworICAgIG1fcHJpdmF0ZS0+ZGlzcGF0Y2hFdmVudChldmVu
dC5yZWxlYXNlKCkpOworfQorCiBXZWJOb3RpZmljYXRpb246OldlYk5vdGlmaWNhdGlvbihjb25z
dCBXVEY6OlBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uPiYgbm90aWZpY2F0aW9uKQogICAgIDogbV9w
cml2YXRlKHN0YXRpY19jYXN0PFdlYk5vdGlmaWNhdGlvblByaXZhdGUqPihub3RpZmljYXRpb24u
cmVsZWFzZVJlZigpKSkKIHsKSW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXRUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDY2MjcwKQorKysgV2ViS2l0VG9v
bHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDgtMjcg
IEpvaG4gR3JlZ2cgIDxqb2hubnlnQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm90aWZpY2F0aW9ucyBzaG91bGQgc3VwcG9ydCBh
IGNsaWNrIGV2ZW50LgorICAgICAgICBBZGRzIG5lY2Vzc2FyeSBob29rcyB0byBjaHJvbWl1bSdz
IERSVCBzbyB0aGF0IGNsaWNrcyBvbiBkZXNrdG9wIG5vdGlmaWNhdGlvbnMKKyAgICAgICAgY2Fu
IGJlIHNpbXVsYXRlZCBkdXJpbmcgYSBsYXlvdXQgdGVzdC4gIFJlcXVpcmVzIHN0b3JpbmcgYSBs
aXN0IG9mIGFjdGl2ZQorICAgICAgICBub3RpZmljYXRpb25zIHNvIHRoYXQgdGhleSBjYW4gYmUg
cmVmZXJyZWQgdG8gbGF0ZXIgZm9yIGNsaWNraW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ4MDAKKworICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RD
b250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgIChMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6c2ltdWxhdGVEZXNrdG9wTm90aWZpY2F0aW9uQ2xpY2spOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTm90aWZpY2F0aW9uUHJlc2VudGVyLmNwcDoKKyAgICAg
ICAgKE5vdGlmaWNhdGlvblByZXNlbnRlcjo6c2ltdWxhdGVDbGljayk6CisgICAgICAgIChOb3Rp
ZmljYXRpb25QcmVzZW50ZXI6OnNob3cpOgorICAgICAgICAoTm90aWZpY2F0aW9uUHJlc2VudGVy
OjpjYW5jZWwpOgorICAgICAgICAoTm90aWZpY2F0aW9uUHJlc2VudGVyOjpvYmplY3REZXN0cm95
ZWQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL05vdGlmaWNhdGlvblByZXNl
bnRlci5oOgorCiAyMDEwLTA3LTI3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KSW5kZXg6IFdlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJv
bGxlci5jcHAJKHJldmlzaW9uIDY2MTgzKQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzks
NiArMTM5LDcgQEAgTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbAogICAg
IGJpbmRNZXRob2QoIm51bWJlck9mUGFnZXMiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6Om51bWJl
ck9mUGFnZXMpOwogICAgIGJpbmRNZXRob2QoImR1bXBTZWxlY3Rpb25SZWN0IiwgJkxheW91dFRl
c3RDb250cm9sbGVyOjpkdW1wU2VsZWN0aW9uUmVjdCk7CiAgICAgYmluZE1ldGhvZCgiZ3JhbnRE
ZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbiIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6Z3Jh
bnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbik7CisgICAgYmluZE1ldGhvZCgic2ltdWxh
dGVEZXNrdG9wTm90aWZpY2F0aW9uQ2xpY2siLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNpbXVs
YXRlRGVza3RvcE5vdGlmaWNhdGlvbkNsaWNrKTsKIAogICAgIC8vIFRoZSBmb2xsb3dpbmcgYXJl
IHN0dWJzLgogICAgIGJpbmRNZXRob2QoImR1bXBBc1dlYkFyY2hpdmUiLCAmTGF5b3V0VGVzdENv
bnRyb2xsZXI6OmR1bXBBc1dlYkFyY2hpdmUpOwpAQCAtOTQyLDYgKzk0MywxOCBAQCB2b2lkIExh
eW91dFRlc3RDb250cm9sbGVyOjpncmFudERlc2t0b3BOCiAgICAgcmVzdWx0LT5zZXQodHJ1ZSk7
CiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNpbXVsYXRlRGVza3RvcE5vdGlmaWNh
dGlvbkNsaWNrKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiBy
ZXN1bHQpCit7CisgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgIT0gMSB8fCAhYXJndW1lbnRzWzBd
LmlzU3RyaW5nKCkpIHsKKyAgICAgICAgcmVzdWx0LT5zZXQoZmFsc2UpOworICAgICAgICByZXR1
cm47CisgICAgfQorICAgIGlmIChtX3NoZWxsLT5ub3RpZmljYXRpb25QcmVzZW50ZXIoKS0+c2lt
dWxhdGVDbGljayhjcHBWYXJpYW50VG9XZWJTdHJpbmcoYXJndW1lbnRzWzBdKSkpCisgICAgICAg
IHJlc3VsdC0+c2V0KHRydWUpOworICAgIGVsc2UKKyAgICAgICAgcmVzdWx0LT5zZXQoZmFsc2Up
OworfQorCiAvLwogLy8gVW5pbXBsZW1lbnRlZCBzdHVicwogLy8KSW5kZXg6IFdlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRy
b2xsZXIuaAkocmV2aXNpb24gNjYxODMpCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTgsNiAr
MjE4LDggQEAgcHVibGljOgogCiAgICAgLy8gR3JhbnRzIHBlcm1pc3Npb24gZm9yIGRlc2t0b3Ag
bm90aWZpY2F0aW9ucyB0byBhbiBvcmlnaW4KICAgICB2b2lkIGdyYW50RGVza3RvcE5vdGlmaWNh
dGlvblBlcm1pc3Npb24oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAg
IC8vIFNpbXVsYXRlcyBhIGNsaWNrIG9uIGEgZGVza3RvcCBub3RpZmljYXRpb24uCisgICAgdm9p
ZCBzaW11bGF0ZURlc2t0b3BOb3RpZmljYXRpb25DbGljayhjb25zdCBDcHBBcmd1bWVudExpc3Qm
LCBDcHBWYXJpYW50Kik7CiAKICAgICB2b2lkIHNldEVkaXRpbmdCZWhhdmlvcihjb25zdCBDcHBB
cmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL05vdGlmaWNhdGlvblByZXNlbnRlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTm90aWZpY2F0aW9uUHJlc2VudGVy
LmNwcAkocmV2aXNpb24gNjYxODMpCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9Ob3RpZmljYXRpb25QcmVzZW50ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0
MywxMyBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCitzdGF0aWMgV2ViU3RyaW5nIGlk
ZW50aWZpZXJGb3JOb3RpZmljYXRpb24oY29uc3QgV2ViTm90aWZpY2F0aW9uJiBub3RpZmljYXRp
b24pCit7CisgICAgaWYgKG5vdGlmaWNhdGlvbi5pc0hUTUwoKSkKKyAgICAgICAgcmV0dXJuIG5v
dGlmaWNhdGlvbi51cmwoKS5zcGVjKCkudXRmMTYoKTsKKyAgICByZXR1cm4gbm90aWZpY2F0aW9u
LnRpdGxlKCk7Cit9CisKIHZvaWQgTm90aWZpY2F0aW9uUHJlc2VudGVyOjpncmFudFBlcm1pc3Np
b24oY29uc3QgV2ViU3RyaW5nJiBvcmlnaW4pCiB7CiAgICAgLy8gTWFrZSBzdXJlIGl0J3MgaW4g
dGhlIGZvcm0gb2YgYW4gb3JpZ2luLgpAQCAtNTAsMTcgKzU3LDI4IEBAIHZvaWQgTm90aWZpY2F0
aW9uUHJlc2VudGVyOjpncmFudFBlcm1pc3MKICAgICBtX2FsbG93ZWRPcmlnaW5zLmFkZChXVEY6
OlN0cmluZyh1cmwuR2V0T3JpZ2luKCkuc3BlYygpLmNfc3RyKCkpKTsKIH0KIAorYm9vbCBOb3Rp
ZmljYXRpb25QcmVzZW50ZXI6OnNpbXVsYXRlQ2xpY2soY29uc3QgV2ViU3RyaW5nJiB0aXRsZSkK
K3sKKyAgICBXVEY6OlN0cmluZyBpZCh0aXRsZS5kYXRhKCksIHRpdGxlLmxlbmd0aCgpKTsKKyAg
ICBpZiAobV9hY3RpdmVOb3RpZmljYXRpb25zLmZpbmQoaWQpID09IG1fYWN0aXZlTm90aWZpY2F0
aW9ucy5lbmQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIGNvbnN0IFdlYk5v
dGlmaWNhdGlvbiYgbm90aWZpY2F0aW9uID0gbV9hY3RpdmVOb3RpZmljYXRpb25zLmZpbmQoaWQp
LT5zZWNvbmQ7CisgICAgV2ViTm90aWZpY2F0aW9uIGV2ZW50VGFyZ2V0KG5vdGlmaWNhdGlvbik7
CisgICAgZXZlbnRUYXJnZXQuZGlzcGF0Y2hDbGlja0V2ZW50KCk7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKIC8vIFRoZSBvdXRwdXQgZnJvbSBhbGwgdGhlc2UgbWV0aG9kcyBtYXRjaGVzIHdoYXQg
RHVtcFJlbmRlclRyZWUgcHJvZHVjZXMuCiBib29sIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6c2hv
dyhjb25zdCBXZWJOb3RpZmljYXRpb24mIG5vdGlmaWNhdGlvbikKIHsKKyAgICBXZWJTdHJpbmcg
aWRlbnRpZmllciA9IGlkZW50aWZpZXJGb3JOb3RpZmljYXRpb24obm90aWZpY2F0aW9uKTsKICAg
ICBpZiAoIW5vdGlmaWNhdGlvbi5yZXBsYWNlSWQoKS5pc0VtcHR5KCkpIHsKICAgICAgICAgV1RG
OjpTdHJpbmcgcmVwbGFjZUlkKG5vdGlmaWNhdGlvbi5yZXBsYWNlSWQoKS5kYXRhKCksIG5vdGlm
aWNhdGlvbi5yZXBsYWNlSWQoKS5sZW5ndGgoKSk7CiAgICAgICAgIGlmIChtX3JlcGxhY2VtZW50
cy5maW5kKHJlcGxhY2VJZCkgIT0gbV9yZXBsYWNlbWVudHMuZW5kKCkpCiAgICAgICAgICAgICBw
cmludGYoIlJFUExBQ0lORyBOT1RJRklDQVRJT04gJXNcbiIsCiAgICAgICAgICAgICAgICAgICAg
bV9yZXBsYWNlbWVudHMuZmluZChyZXBsYWNlSWQpLT5zZWNvbmQudXRmOCgpLmRhdGEoKSk7CiAK
LSAgICAgICAgV2ViU3RyaW5nIGlkZW50aWZpZXIgPSBub3RpZmljYXRpb24uaXNIVE1MKCkgPwot
ICAgICAgICAgICAgbm90aWZpY2F0aW9uLnVybCgpLnNwZWMoKS51dGYxNigpIDogbm90aWZpY2F0
aW9uLnRpdGxlKCk7CiAgICAgICAgIG1fcmVwbGFjZW1lbnRzLnNldChyZXBsYWNlSWQsIFdURjo6
U3RyaW5nKGlkZW50aWZpZXIuZGF0YSgpLCBpZGVudGlmaWVyLmxlbmd0aCgpKSk7CiAgICAgfQog
CkBAIC03OCw2ICs5Niw5IEBAIGJvb2wgTm90aWZpY2F0aW9uUHJlc2VudGVyOjpzaG93KGNvbnN0
IFcKICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbi5ib2R5KCkudXRmOCgpLmRhdGEoKSk7CiAg
ICAgfQogCisgICAgV1RGOjpTdHJpbmcgaWQoaWRlbnRpZmllci5kYXRhKCksIGlkZW50aWZpZXIu
bGVuZ3RoKCkpOworICAgIG1fYWN0aXZlTm90aWZpY2F0aW9ucy5zZXQoaWQsIG5vdGlmaWNhdGlv
bik7CisKICAgICBXZWJOb3RpZmljYXRpb24gZXZlbnRUYXJnZXQobm90aWZpY2F0aW9uKTsKICAg
ICBldmVudFRhcmdldC5kaXNwYXRjaERpc3BsYXlFdmVudCgpOwogICAgIHJldHVybiB0cnVlOwpA
QCAtODUsMjAgKzEwNiwyMCBAQCBib29sIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6c2hvdyhjb25z
dCBXCiAKIHZvaWQgTm90aWZpY2F0aW9uUHJlc2VudGVyOjpjYW5jZWwoY29uc3QgV2ViTm90aWZp
Y2F0aW9uJiBub3RpZmljYXRpb24pCiB7Ci0gICAgV2ViU3RyaW5nIGlkZW50aWZpZXI7Ci0gICAg
aWYgKG5vdGlmaWNhdGlvbi5pc0hUTUwoKSkKLSAgICAgICAgaWRlbnRpZmllciA9IG5vdGlmaWNh
dGlvbi51cmwoKS5zcGVjKCkudXRmMTYoKTsKLSAgICBlbHNlCi0gICAgICAgIGlkZW50aWZpZXIg
PSBub3RpZmljYXRpb24udGl0bGUoKTsKLQorICAgIFdlYlN0cmluZyBpZGVudGlmaWVyID0gaWRl
bnRpZmllckZvck5vdGlmaWNhdGlvbihub3RpZmljYXRpb24pOwogICAgIHByaW50ZigiREVTS1RP
UCBOT1RJRklDQVRJT04gQ0xPU0VEOiAlc1xuIiwgaWRlbnRpZmllci51dGY4KCkuZGF0YSgpKTsK
ICAgICBXZWJOb3RpZmljYXRpb24gZXZlbnRUYXJnZXQobm90aWZpY2F0aW9uKTsKICAgICBldmVu
dFRhcmdldC5kaXNwYXRjaENsb3NlRXZlbnQoZmFsc2UpOworCisgICAgV1RGOjpTdHJpbmcgaWQo
aWRlbnRpZmllci5kYXRhKCksIGlkZW50aWZpZXIubGVuZ3RoKCkpOworICAgIG1fYWN0aXZlTm90
aWZpY2F0aW9ucy5yZW1vdmUoaWQpOwogfQogCiB2b2lkIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6
b2JqZWN0RGVzdHJveWVkKGNvbnN0IFdlYktpdDo6V2ViTm90aWZpY2F0aW9uJiBub3RpZmljYXRp
b24pCiB7Ci0gICAgLy8gTm90aGluZyB0byBkby4gIE5vdCBzdG9yaW5nIHRoZSBvYmplY3RzLgor
ICAgIFdlYlN0cmluZyBpZGVudGlmaWVyID0gaWRlbnRpZmllckZvck5vdGlmaWNhdGlvbihub3Rp
ZmljYXRpb24pOworICAgIFdURjo6U3RyaW5nIGlkKGlkZW50aWZpZXIuZGF0YSgpLCBpZGVudGlm
aWVyLmxlbmd0aCgpKTsKKyAgICBtX2FjdGl2ZU5vdGlmaWNhdGlvbnMucmVtb3ZlKGlkKTsKIH0K
IAogV2ViTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uIE5vdGlmaWNhdGlvblByZXNl
bnRlcjo6Y2hlY2tQZXJtaXNzaW9uKGNvbnN0IFdlYlVSTCYgdXJsKQpJbmRleDogV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTm90aWZpY2F0aW9uUHJlc2VudGVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTm90aWZpY2F0aW9u
UHJlc2VudGVyLmgJKHJldmlzaW9uIDY2MTgzKQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vTm90aWZpY2F0aW9uUHJlc2VudGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMx
LDYgKzMxLDcgQEAKICNpZm5kZWYgTm90aWZpY2F0aW9uUHJlc2VudGVyX2gKICNkZWZpbmUgTm90
aWZpY2F0aW9uUHJlc2VudGVyX2gKIAorI2luY2x1ZGUgInB1YmxpYy9XZWJOb3RpZmljYXRpb24u
aCIKICNpbmNsdWRlICJwdWJsaWMvV2ViTm90aWZpY2F0aW9uUHJlc2VudGVyLmgiCiAjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgpAQCAtNDcsNiArNDgs
OSBAQCBwdWJsaWM6CiAgICAgLy8gQ2FsbGVkIGJ5IHRoZSBMYXlvdXRUZXN0Q29udHJvbGxlciB0
byBzaW11bGF0ZSBhIHVzZXIgZ3JhbnRpbmcgcGVybWlzc2lvbi4KICAgICB2b2lkIGdyYW50UGVy
bWlzc2lvbihjb25zdCBXZWJLaXQ6OldlYlN0cmluZyYgb3JpZ2luKTsKIAorICAgIC8vIENhbGxl
ZCBieSB0aGUgTGF5b3V0VGVzdENvbnRyb2xsZXIgdG8gc2ltdWxhdGUgYSB1c2VyIGNsaWNraW5n
IG9uIGEgbm90aWZpY2F0aW9uLgorICAgIGJvb2wgc2ltdWxhdGVDbGljayhjb25zdCBXZWJLaXQ6
OldlYlN0cmluZyYgbm90aWZpY2F0aW9uSWRlbnRpZmllcik7CisKICAgICAvLyBXZWJLaXQ6Oldl
Yk5vdGlmaWNhdGlvblByZXNlbnRlciBpbnRlcmZhY2UKICAgICB2aXJ0dWFsIGJvb2wgc2hvdyhj
b25zdCBXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbiYpOwogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWwo
Y29uc3QgV2ViS2l0OjpXZWJOb3RpZmljYXRpb24mKTsKQEAgLTYzLDYgKzY3LDkgQEAgcHJpdmF0
ZToKICAgICAvLyBTZXQgb2YgYWxsb3dlZCBvcmlnaW5zLgogICAgIEhhc2hTZXQ8V1RGOjpTdHJp
bmc+IG1fYWxsb3dlZE9yaWdpbnM7CiAKKyAgICAvLyBNYXAgb2YgYWN0aXZlIG5vdGlmaWNhdGlv
bnMuCisgICAgSGFzaE1hcDxXVEY6OlN0cmluZywgV2ViS2l0OjpXZWJOb3RpZmljYXRpb24+IG1f
YWN0aXZlTm90aWZpY2F0aW9uczsKKwogICAgIC8vIE1hcCBvZiBhY3RpdmUgcmVwbGFjZW1lbnQg
SURzIHRvIHRoZSB0aXRsZXMgb2YgdGhvc2Ugbm90aWZpY2F0aW9ucwogICAgIEhhc2hNYXA8V1RG
OjpTdHJpbmcsIFdURjo6U3RyaW5nPiBtX3JlcGxhY2VtZW50czsKIH07CkluZGV4OiBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZp
c2lvbiA2NjI3MCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDE0IEBACisyMDEwLTA4LTI3ICBKb2huIEdyZWdnICA8am9obm55Z0Bnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdGlm
aWNhdGlvbnMgc2hvdWxkIHN1cHBvcnQgYSBjbGljayBldmVudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ4MDAKKworICAgICAgICAqIGZhc3Qvbm90
aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLWNsaWNrLWV2ZW50LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtY2xpY2stZXZlbnQu
aHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKwogMjAxMC0wOC0y
NyAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSdWJi
ZXItc3RhbXBlZCBTaW1vbiBGcmFzZXIuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L25vdGlmaWNh
dGlvbnMvbm90aWZpY2F0aW9ucy1jbGljay1ldmVudC1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtY2xpY2stZXZl
bnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmlj
YXRpb25zL25vdGlmaWNhdGlvbnMtY2xpY2stZXZlbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDcgQEAKK0RFU0tUT1AgTk9USUZJQ0FUSU9OOiBpY29uICwgdGl0bGUgTmV3
IEUtbWFpbCwgdGV4dCBNZWV0IG1lIHRvbmlnaHQgYXQgOCEKK0RFU0tUT1AgTk9USUZJQ0FUSU9O
IENMT1NFRDogTmV3IEUtbWFpbAorU2hvd2luZyBub3RpZmljYXRpb25zLgorCitUbyBleGVyY2lz
ZSBtYW51YWxseSwgZ3JhbnQgbm90aWZpY2F0aW9uIHBlcm1pc3Npb25zIGFuZCBsb2FkIHRoaXMg
cGFnZSwgdGhlbiBjbGljayBvbiB0aGUgbm90aWZpY2F0aW9uLiBZb3Ugc2hvdWxkIHNlZSBhICJQ
QVNTIiBtZXNzYWdlLgorCitQQVNTOiBjbGljayBldmVudCBmaXJlZC4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLWNsaWNrLWV2ZW50Lmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMt
Y2xpY2stZXZlbnQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qvbm90aWZp
Y2F0aW9ucy9ub3RpZmljYXRpb25zLWNsaWNrLWV2ZW50Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQor
ICAgICAgICB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0Iiku
aW5uZXJIVE1MICs9IG1lc3NhZ2UgKyAiPGJyPiI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAg
ICAgIGZ1bmN0aW9uIHJ1blRlc3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmdyYW50RGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24oImZpbGU6Ly8iKTsKKyAg
ICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAg
ICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBpZiAoIXdpbmRvdy53ZWJraXROb3RpZmljYXRpb25zKSB7Cisg
ICAgICAgICAgICAgICAgbG9nKCJGQUlMOiBObyB3ZWJraXROb3RpZmljYXRpb25zIGludGVyZmFj
ZSEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgdmFyIE4gPSB3
aW5kb3cud2Via2l0Tm90aWZpY2F0aW9ucy5jcmVhdGVOb3RpZmljYXRpb24oIiIsICJOZXcgRS1t
YWlsIiwgIk1lZXQgbWUgdG9uaWdodCBhdCA4ISIpOworICAgICAgICAgICAgTi5vbmNsaWNrID0g
ZnVuY3Rpb24oKSB7IGxvZygiUEFTUzogY2xpY2sgZXZlbnQgZmlyZWQuIik7IE4uY2FuY2VsKCk7
ICB9CisgICAgICAgICAgICBOLnNob3coKTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5z
aW11bGF0ZURlc2t0b3BOb3RpZmljYXRpb25DbGljaygiTmV3IEUtbWFpbCIpOworICAgICAgICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5TaG93aW5nIG5v
dGlmaWNhdGlvbnMuPC9wPgorCis8cD5UbyBleGVyY2lzZSBtYW51YWxseSwgZ3JhbnQgbm90aWZp
Y2F0aW9uIHBlcm1pc3Npb25zIGFuZCBsb2FkIHRoaXMgcGFnZSwgdGhlbiBjbGljayBvbiB0aGUg
bm90aWZpY2F0aW9uLiAgWW91IHNob3VsZCBzZWUgYSAiUEFTUyIgbWVzc2FnZS48L3A+Cis8ZGl2
IGlkPSJyZXN1bHQiPjwvZGl2PiAgICAKKyAgICAKKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij4KK3J1blRlc3RzKCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvU2tpcHBlZAkocmV2aXNpb24gNjYxODMpCisrKyBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC01MzM0LDYgKzUzMzQsNyBAQCBzdmcv
VzNDLVNWRy0xLjEvZmlsdGVycy1saWdodC0wNC1mLnN2ZwogIyBuZXcgc2tpcHBlZCB0ZXN0cyB5
ZXQgdG8gYmUgc29ydGVkCiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICMKIGZhc3QvZG9tL0dlb2xv
Y2F0aW9uL2NhbGxiYWNrLXRvLXJlbW90ZS1jb250ZXh0Mi5odG1sCitmYXN0L25vdGlmaWNhdGlv
bnMvbm90aWZpY2F0aW9ucy1jbGljay1ldmVudC5odG1sCiAKICMgTGluayBwcmVmZXRjaCBpcyBk
aXNhYmxlZCBieSBkZWZhdWx0CiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2guaHRt
bAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>