<?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>44836</bug_id>
          
          <creation_ts>2010-08-29 06:12:11 -0700</creation_ts>
          <short_desc>[Qt] Support click event for notifications</short_desc>
          <delta_ts>2010-09-13 07:25:54 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>44800</dependson>
    
    <dependson>45352</dependson>
          <blocked>39995</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yael">yael</reporter>
          <assigned_to name="Yael">yael</assigned_to>
          <cc>ademar</cc>
    
    <cc>commit-queue</cc>
    
    <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>271140</commentid>
    <comment_count>0</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-08-29 06:12:11 -0700</bug_when>
    <thetext>Notifications should support a click event.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273023</commentid>
    <comment_count>1</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2010-09-01 14:31:29 -0700</bug_when>
    <thetext>Now that Bug #44800 has been fixed, is anything else needed on the Qt side?

This is the only bug left blocking Bug #39995</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273109</commentid>
    <comment_count>2</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-09-01 16:58:29 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Now that Bug #44800 has been fixed, is anything else needed on the Qt side?
&gt; 
&gt; This is the only bug left blocking Bug #39995

There are more requirements coming for Notificatons in Qt. I updated the list in #3995 recently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273111</commentid>
    <comment_count>3</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-09-01 16:59:09 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (In reply to comment #1)
&gt; &gt; Now that Bug #44800 has been fixed, is anything else needed on the Qt side?
&gt; &gt; 
&gt; &gt; This is the only bug left blocking Bug #39995
&gt; 
&gt; There are more requirements coming for Notificatons in Qt. I updated the list in #3995 recently.
That is bug #39995, of course :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274687</commentid>
    <comment_count>4</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2010-09-06 10:13:47 -0700</bug_when>
    <thetext>OK, so bug #39995 has some tasks left, but I guess we can at least close this one, right? Or do we still need something on the Qt side to support click events for notifications?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274795</commentid>
    <comment_count>5</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-09-06 15:41:46 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; OK, so bug #39995 has some tasks left, but I guess we can at least close this one, right? Or do we still need something on the Qt side to support click events for notifications?

Yes, I am currently working on the Qt implementation of the click event.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275558</commentid>
    <comment_count>6</comment_count>
      <attachid>66833</attachid>
    <who name="Yael">yael</who>
    <bug_when>2010-09-07 19:45:52 -0700</bug_when>
    <thetext>Created attachment 66833
Patch

Add support for sending a click event when either QSystemTrayIcon is clicked, or the platform plugin&apos;s notification is clicked.
Also added a new method NotificationWrapper::openerPageUrl(), so that if the platform plugin wants to open the same url in a new page, when the user clicks the notification, it can do that too.
I added that somewhat related method here since I did not want to bump the plugin version twice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277087</commentid>
    <comment_count>7</comment_count>
      <attachid>66833</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-09-10 02:41:07 -0700</bug_when>
    <thetext>Comment on attachment 66833
Patch

&gt; +    if (notification &amp;&amp; notification-&gt;scriptExecutionContext())
&gt; +        sendEvent(notification, eventNames().clickEvent);

Redundancy: sendEvent() will also check notification-&gt;scriptExecutionContext() before proceeding.

&gt; +    if (ev-&gt;type() == QEvent::MouseButtonRelease) {
&gt; +        emit notificationClicked();

Are you sure the click event should fire for all mouse buttons?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277231</commentid>
    <comment_count>8</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-09-10 09:03:55 -0700</bug_when>
    <thetext>(In reply to comment #7)
Thank you for the review, Andreas.
&gt; (From update of attachment 66833 [details])
&gt; &gt; +    if (notification &amp;&amp; notification-&gt;scriptExecutionContext())
&gt; &gt; +        sendEvent(notification, eventNames().clickEvent);
&gt; 
&gt; Redundancy: sendEvent() will also check notification-&gt;scriptExecutionContext() before proceeding.
I&apos;ll remove the second part of the check. However, the first part is still needed.
&gt; 
&gt; &gt; +    if (ev-&gt;type() == QEvent::MouseButtonRelease) {
&gt; &gt; +        emit notificationClicked();
&gt; 
&gt; Are you sure the click event should fire for all mouse buttons?
This is _example_ code, and I don&apos;t think we care much about that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277235</commentid>
    <comment_count>9</comment_count>
      <attachid>66833</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-09-10 09:08:47 -0700</bug_when>
    <thetext>Comment on attachment 66833
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277249</commentid>
    <comment_count>10</comment_count>
      <attachid>67194</attachid>
    <who name="Yael">yael</who>
    <bug_when>2010-09-10 09:32:31 -0700</bug_when>
    <thetext>Created attachment 67194
Patch

Remove redundnt check for notification-&gt;ScriptExecutionContext.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277624</commentid>
    <comment_count>11</comment_count>
      <attachid>67194</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-10 20:42:38 -0700</bug_when>
    <thetext>Comment on attachment 67194
Patch

Clearing flags on attachment: 67194

Committed r67272: &lt;http://trac.webkit.org/changeset/67272&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277625</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-10 20:42:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278188</commentid>
    <comment_count>13</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2010-09-13 06:59:18 -0700</bug_when>
    <thetext>Revision r67272 cherry-picked into qtwebkit-2.1 with commit 7cb97137ea15daf78870cf1b4028e0bb17784c56</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66833</attachid>
            <date>2010-09-07 19:45:52 -0700</date>
            <delta_ts>2010-09-10 09:32:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>44836.patch</filename>
            <type>text/plain</type>
            <size>14448</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0NoYW5n
ZUxvZwkocmV2aXNpb24gNjY5NDQpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTAtMDktMDcgIFlhZWwgQWhhcm9uICA8eWFlbC5haGFy
b25Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFtRdF0gU3VwcG9ydCBjbGljayBldmVudCBmb3Igbm90aWZpY2F0aW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ4MzYKKworICAgICAg
ICBQcm9wYWdhdGUgY2xpY2sgZXZlbnRzIHRvIEphdmFTY3JpcHQgZnJvbSBlaXRoZXIgdGhlCisg
ICAgICAgIHBsYXRmb3JtIHBsdWduIG9yIGZyb20gUVN5c3RlbVRyYXlJY29uLgorICAgICAgICBB
bHNvIGFkZGVkIHRoZSBtZXRob2QgTm90aWZpY2F0aW9uV3JhcHBlcjo6b3BlbmVyUGFnZVVybCBz
byB0aGF0CisgICAgICAgIGlmIHRoZSBwbGF0Zm9ybSBwbHVnaW4gY2FuIHJlb3BlbiB0aGUgcGFn
ZSB0aGF0IGNyZWF0ZWQgdGhlCisgICAgICAgIG5vdGlmaWNhdGlvbiBkaXJlY3RseSwgd2hlbiB0
aGUgdXNlciBjbGlja3MgdGhlIG5vdGlmaWNhdGlvbi4KKworICAgICAgICBBZGRlZCBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdDo6c2ltdWxhdGVEZXNrdG9wTm90aWZpY2F0aW9uQ2xpY2sKKyAgICAg
ICAgZm9yIHRlc3RpbmcgcHVycG9zZS4KKworICAgICAgICAqIEFwaS9xd2Via2l0cGxhdGZvcm1w
bHVnaW4uaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRR
dC5jcHA6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2ltdWxhdGVEZXNrdG9w
Tm90aWZpY2F0aW9uQ2xpY2spOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydFF0Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJl
c2VudGVyQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uV3JhcHBl
cjo6b3BlbmVyUGFnZVVybCk6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb25XcmFwcGVy
Ojpub3RpZmljYXRpb25DbGlja2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvblBy
ZXNlbnRlckNsaWVudFF0OjpkaXNwbGF5Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
Ok5vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0Ojpub3RpZmljYXRpb25DbGlja2VkKToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdC5oOgor
ICAgICAgICAqIGV4YW1wbGVzL3BsYXRmb3JtcGx1Z2luL1dlYk5vdGlmaWNhdGlvblByZXNlbnRl
ci5jcHA6CisgICAgICAgIChXZWJOb3RpZmljYXRpb25XaWRnZXQ6OmV2ZW50KToKKyAgICAgICAg
KiBleGFtcGxlcy9wbGF0Zm9ybXBsdWdpbi9XZWJOb3RpZmljYXRpb25QcmVzZW50ZXIuaDoKKyAg
ICAgICAgKFdlYk5vdGlmaWNhdGlvblByZXNlbnRlcjo6V2ViTm90aWZpY2F0aW9uUHJlc2VudGVy
KToKKyAgICAgICAgKiBleGFtcGxlcy9wbGF0Zm9ybXBsdWdpbi9xd2Via2l0cGxhdGZvcm1wbHVn
aW4uaDoKKwogMjAxMC0wOS0wNiAgRGllZ28gR29uemFsZXogIDxkaWVnb2hjZ0B3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFudG9uaW8gR29tZXMuCkluZGV4OiBXZWJLaXQvcXQv
QXBpL3F3ZWJraXRwbGF0Zm9ybXBsdWdpbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9BcGkv
cXdlYmtpdHBsYXRmb3JtcGx1Z2luLmgJKHJldmlzaW9uIDY2ODg3KQorKysgV2ViS2l0L3F0L0Fw
aS9xd2Via2l0cGxhdGZvcm1wbHVnaW4uaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBA
QAogKi8KIAogI2luY2x1ZGUgPFFPYmplY3Q+CisjaW5jbHVkZSA8UVVybD4KIAogY2xhc3MgUVdl
YlNlbGVjdERhdGEKIHsKQEAgLTY2LDYgKzY3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgY29u
c3QgUVN0cmluZyB0aXRsZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGNvbnN0IFFTdHJpbmcg
bWVzc2FnZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGNvbnN0IFFCeXRlQXJyYXkgaWNvbkRh
dGEoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBjb25zdCBRVXJsIG9wZW5lclBhZ2VVcmwoKSBj
b25zdCA9IDA7CiB9OwogCiBjbGFzcyBRV2ViTm90aWZpY2F0aW9uUHJlc2VudGVyIDogcHVibGlj
IFFPYmplY3QKQEAgLTc5LDYgKzgxLDcgQEAgcHVibGljOgogICAgIAogUV9TSUdOQUxTOgogICAg
IHZvaWQgbm90aWZpY2F0aW9uQ2xvc2VkKCk7CisgICAgdm9pZCBub3RpZmljYXRpb25DbGlja2Vk
KCk7CiB9OwogCiBjbGFzcyBRV2ViSGFwdGljRmVlZGJhY2tQbGF5ZXIKQEAgLTExMyw2ICsxMTYs
NiBAQCBwdWJsaWM6CiAKIH07CiAKLVFfREVDTEFSRV9JTlRFUkZBQ0UoUVdlYktpdFBsYXRmb3Jt
UGx1Z2luLCAiY29tLm5va2lhLlF0LldlYktpdC5QbGF0Zm9ybVBsdWdpbi8xLjMiKTsKK1FfREVD
TEFSRV9JTlRFUkZBQ0UoUVdlYktpdFBsYXRmb3JtUGx1Z2luLCAiY29tLm5va2lhLlF0LldlYktp
dC5QbGF0Zm9ybVBsdWdpbi8xLjQiKTsKIAogI2VuZGlmIC8vIFFXRUJLSVRQTEFURk9STVBMVUdJ
Tl9ICkluZGV4OiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRRdC5jcHAJKHJldmlzaW9uIDY2ODg3KQorKysgV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjk4
LDYgKzY5OCwxMyBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjphZGRVc2VyU3R5CiAg
ICAgcGFnZS0+aGFuZGxlKCktPnBhZ2UtPmdyb3VwKCkuYWRkVXNlclN0eWxlU2hlZXRUb1dvcmxk
KG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCBzb3VyY2VDb2RlLCBRVXJsKCksIDAsIDAsIFdlYkNv
cmU6OkluamVjdEluQWxsRnJhbWVzKTsKIH0KIAordm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRR
dDo6c2ltdWxhdGVEZXNrdG9wTm90aWZpY2F0aW9uQ2xpY2soY29uc3QgUVN0cmluZyYgdGl0bGUp
Cit7CisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisgICAgTm90aWZpY2F0aW9uUHJlc2VudGVy
Q2xpZW50UXQ6Om5vdGlmaWNhdGlvblByZXNlbnRlcigpLT5ub3RpZmljYXRpb25DbGlja2VkKHRp
dGxlKTsKKyNlbmRpZgorfQorCiAvLyBQcm92aWRlIGEgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3
aXRoIHByZXZpb3VzbHkgZXhwb3J0ZWQgcHJpdmF0ZSBzeW1ib2xzIGFzIG9mIFF0V2ViS2l0IDQu
NiByZWxlYXNlCiAKIHZvaWQgUVdFQktJVF9FWFBPUlQgcXRfcmVzdW1lQWN0aXZlRE9NT2JqZWN0
cyhRV2ViRnJhbWUqIGZyYW1lKQpJbmRleDogV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydFF0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgJKHJldmlzaW9uIDY2ODg3KQorKysgV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEyNyw3ICsxMjcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFFTdHJpbmcgcGFnZVNp
emVBbmRNYXJnaW5zSW5QaXhlbHMoUVdlYkZyYW1lKiBmcmFtZSwgaW50IHBhZ2VJbmRleCwgaW50
IHdpZHRoLCBpbnQgaGVpZ2h0LCBpbnQgbWFyZ2luVG9wLCBpbnQgbWFyZ2luUmlnaHQsIGludCBt
YXJnaW5Cb3R0b20sIGludCBtYXJnaW5MZWZ0KTsKICAgICBzdGF0aWMgUVN0cmluZyBwYWdlUHJv
cGVydHkoUVdlYkZyYW1lKiBmcmFtZSwgY29uc3QgUVN0cmluZyYgcHJvcGVydHlOYW1lLCBpbnQg
cGFnZU51bWJlcik7CiAgICAgc3RhdGljIHZvaWQgYWRkVXNlclN0eWxlU2hlZXQoUVdlYlBhZ2Uq
IHBhZ2UsIGNvbnN0IFFTdHJpbmcmIHNvdXJjZUNvZGUpOwotCisgICAgc3RhdGljIHZvaWQgc2lt
dWxhdGVEZXNrdG9wTm90aWZpY2F0aW9uQ2xpY2soY29uc3QgUVN0cmluZyYgdGl0bGUpOwogfTsK
IAogI2VuZGlmCkluZGV4OiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJl
c2VudGVyQ2xpZW50UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9Ob3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdC5jcHAJKHJldmlzaW9uIDY2ODg3KQorKysg
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTE4LDYgKzExOCwyNiBAQCBjb25zdCBRQnl0ZUFycmF5IE5v
dGlmaWNhdGlvbldyYXBwZXI6OmljCiAgICAgcmV0dXJuIGljb25EYXRhOwogfQogCitjb25zdCBR
VXJsIE5vdGlmaWNhdGlvbldyYXBwZXI6Om9wZW5lclBhZ2VVcmwoKSBjb25zdAoreworICAgIFFV
cmwgdXJsOworI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQorICAgIE5vdGlmaWNhdGlvbiogbm90
aWZpY2F0aW9uID0gTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQ6Om5vdGlmaWNhdGlvblBy
ZXNlbnRlcigpLT5ub3RpZmljYXRpb25Gb3JXcmFwcGVyKHRoaXMpOworICAgIGlmIChub3RpZmlj
YXRpb24pIHsKKyAgICAgICAgaWYgKG5vdGlmaWNhdGlvbi0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKSAKKyAgICAgICAgICAgIHVybCA9IHN0YXRpY19jYXN0PERvY3VtZW50Kj4obm90aWZpY2F0
aW9uLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpLT5wYWdlKCktPm1haW5GcmFtZSgpLT5kb2N1
bWVudCgpLT51cmwoKTsKKyAgICB9CisjZW5kaWYKKyAgICByZXR1cm4gdXJsOworfQorCit2b2lk
IE5vdGlmaWNhdGlvbldyYXBwZXI6Om5vdGlmaWNhdGlvbkNsaWNrZWQoKQoreworI2lmIEVOQUJM
RShOT1RJRklDQVRJT05TKQorICAgIE5vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0Ojpub3Rp
ZmljYXRpb25QcmVzZW50ZXIoKS0+bm90aWZpY2F0aW9uQ2xpY2tlZCh0aGlzKTsKKyNlbmRpZgor
fQorCiB2b2lkIE5vdGlmaWNhdGlvbldyYXBwZXI6Om5vdGlmaWNhdGlvbkNsb3NlZCgpCiB7CiAj
aWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCkBAIC0yMDQsMTEgKzIyNCwxMyBAQCB2b2lkIE5vdGlm
aWNhdGlvblByZXNlbnRlckNsaWVudFF0OjpkaXNwCiAKICAgICBpZiAod3JhcHBlci0+bV9wcmVz
ZW50ZXIpIHsKICAgICAgICAgd3JhcHBlci0+Y29ubmVjdCh3cmFwcGVyLT5tX3ByZXNlbnRlci5n
ZXQoKSwgU0lHTkFMKG5vdGlmaWNhdGlvbkNsb3NlZCgpKSwgd3JhcHBlciwgU0xPVChub3RpZmlj
YXRpb25DbG9zZWQoKSksIFF0OjpRdWV1ZWRDb25uZWN0aW9uKTsKKyAgICAgICAgd3JhcHBlci0+
Y29ubmVjdCh3cmFwcGVyLT5tX3ByZXNlbnRlci5nZXQoKSwgU0lHTkFMKG5vdGlmaWNhdGlvbkNs
aWNrZWQoKSksIHdyYXBwZXIsIFNMT1Qobm90aWZpY2F0aW9uQ2xpY2tlZCgpKSk7CiAgICAgICAg
IHdyYXBwZXItPm1fcHJlc2VudGVyLT5zaG93Tm90aWZpY2F0aW9uKHdyYXBwZXIpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCiAjaWZuZGVmIFFUX05PX1NZU1RFTVRSQVlJQ09OCisgICAgd3Jh
cHBlci0+Y29ubmVjdCh3cmFwcGVyLT5tX25vdGlmaWNhdGlvbkljb24uZ2V0KCksIFNJR05BTCht
ZXNzYWdlQ2xpY2tlZCgpKSwgd3JhcHBlciwgU0xPVChub3RpZmljYXRpb25DbGlja2VkKCkpKTsK
ICAgICB3cmFwcGVyLT5tX25vdGlmaWNhdGlvbkljb24tPnNob3coKTsKICAgICB3cmFwcGVyLT5t
X25vdGlmaWNhdGlvbkljb24tPnNob3dNZXNzYWdlKG5vdGlmaWNhdGlvbi0+Y29udGVudHMoKS50
aXRsZSgpLCBub3RpZmljYXRpb24tPmNvbnRlbnRzKCkuYm9keSgpKTsKICNlbmRpZgpAQCAtMjM3
LDYgKzI1OSwzNSBAQCB2b2lkIE5vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0OjpjYW5jCiAg
ICAgICAgIGNhbmNlbChub3RpZmljYXRpb24pOwogfQogCit2b2lkIE5vdGlmaWNhdGlvblByZXNl
bnRlckNsaWVudFF0Ojpub3RpZmljYXRpb25DbGlja2VkKE5vdGlmaWNhdGlvbldyYXBwZXIqIHdy
YXBwZXIpCit7CisgICAgTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24gPSAgbm90aWZpY2F0aW9u
Rm9yV3JhcHBlcih3cmFwcGVyKTsKKyAgICBpZiAobm90aWZpY2F0aW9uICYmIG5vdGlmaWNhdGlv
bi0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICAgICBzZW5kRXZlbnQobm90aWZpY2F0
aW9uLCBldmVudE5hbWVzKCkuY2xpY2tFdmVudCk7Cit9CisKK3ZvaWQgTm90aWZpY2F0aW9uUHJl
c2VudGVyQ2xpZW50UXQ6Om5vdGlmaWNhdGlvbkNsaWNrZWQoY29uc3QgUVN0cmluZyYgdGl0bGUp
Cit7CisgICAgaWYgKCFkdW1wTm90aWZpY2F0aW9uKQorICAgICAgICByZXR1cm47CisgICAgTm90
aWZpY2F0aW9uc1F1ZXVlOjpDb25zdEl0ZXJhdG9yIGVuZCA9IG1fbm90aWZpY2F0aW9ucy5lbmQo
KTsKKyAgICBOb3RpZmljYXRpb25zUXVldWU6OkNvbnN0SXRlcmF0b3IgaXRlciA9IG1fbm90aWZp
Y2F0aW9ucy5iZWdpbigpOworICAgIE5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uID0gMDsKKyAg
ICB3aGlsZSAoaXRlciAhPSBlbmQpIHsKKyAgICAgICAgbm90aWZpY2F0aW9uID0gaXRlci5rZXko
KTsKKyAgICAgICAgUVN0cmluZyBub3RpZmljYXRpb25UaXRsZTsKKyAgICAgICAgaWYgKG5vdGlm
aWNhdGlvbi0+aXNIVE1MKCkpCisgICAgICAgICAgICBub3RpZmljYXRpb25UaXRsZSA9IG5vdGlm
aWNhdGlvbi0+dXJsKCkuc3RyaW5nKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG5vdGlm
aWNhdGlvblRpdGxlID0gbm90aWZpY2F0aW9uLT5jb250ZW50cygpLnRpdGxlKCk7CisgICAgICAg
IGlmIChub3RpZmljYXRpb25UaXRsZSA9PSB0aXRsZSkKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBpdGVyKys7CisgICAgfQorICAgIGlmIChub3RpZmljYXRpb24pCisgICAgICAgIHNlbmRF
dmVudChub3RpZmljYXRpb24sIGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50KTsKK30KKwogTm90aWZp
Y2F0aW9uKiBOb3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdDo6bm90aWZpY2F0aW9uRm9yV3Jh
cHBlcihjb25zdCBOb3RpZmljYXRpb25XcmFwcGVyKiB3cmFwcGVyKSBjb25zdAogewogICAgIE5v
dGlmaWNhdGlvbnNRdWV1ZTo6Q29uc3RJdGVyYXRvciBlbmQgPSBtX25vdGlmaWNhdGlvbnMuZW5k
KCk7CkluZGV4OiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2VudGVy
Q2xpZW50UXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvTm90aWZp
Y2F0aW9uUHJlc2VudGVyQ2xpZW50UXQuaAkocmV2aXNpb24gNjY4ODcpCisrKyBXZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQuaAkod29ya2luZyBj
b3B5KQpAQCAtNjEsOSArNjEsMTEgQEAgcHVibGljOgogICAgIGNvbnN0IFFTdHJpbmcgdGl0bGUo
KSBjb25zdDsKICAgICBjb25zdCBRU3RyaW5nIG1lc3NhZ2UoKSBjb25zdDsKICAgICBjb25zdCBR
Qnl0ZUFycmF5IGljb25EYXRhKCkgY29uc3Q7CisgICAgY29uc3QgUVVybCBvcGVuZXJQYWdlVXJs
KCkgY29uc3Q7CiAKIHB1YmxpYyBRX1NMT1RTOgogICAgIHZvaWQgbm90aWZpY2F0aW9uQ2xvc2Vk
KCk7CisgICAgdm9pZCBub3RpZmljYXRpb25DbGlja2VkKCk7CiAKIHB1YmxpYzoKICNpZm5kZWYg
UVRfTk9fU1lTVEVNVFJBWUlDT04KQEAgLTEwMiw2ICsxMDQsOCBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIE5vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0KiBub3RpZmljYXRpb25QcmVzZW50ZXIo
KTsKIAogICAgIE5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uRm9yV3JhcHBlcihjb25zdCBOb3Rp
ZmljYXRpb25XcmFwcGVyKikgY29uc3Q7CisgICAgdm9pZCBub3RpZmljYXRpb25DbGlja2VkKE5v
dGlmaWNhdGlvbldyYXBwZXIqKTsKKyAgICB2b2lkIG5vdGlmaWNhdGlvbkNsaWNrZWQoY29uc3Qg
UVN0cmluZyYgdGl0bGUpOwogCiBwcml2YXRlOgogICAgIHZvaWQgc2VuZEV2ZW50KE5vdGlmaWNh
dGlvbiosIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnROYW1lKTsKSW5kZXg6IFdlYktpdC9xdC9l
eGFtcGxlcy9wbGF0Zm9ybXBsdWdpbi9XZWJOb3RpZmljYXRpb25QcmVzZW50ZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9xdC9leGFtcGxlcy9wbGF0Zm9ybXBsdWdpbi9XZWJOb3RpZmljYXRp
b25QcmVzZW50ZXIuY3BwCShyZXZpc2lvbiA2Njg4NykKKysrIFdlYktpdC9xdC9leGFtcGxlcy9w
bGF0Zm9ybXBsdWdpbi9XZWJOb3RpZmljYXRpb25QcmVzZW50ZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC01Nyw3ICs1NywxMSBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbldpZGdldDo6c2hvd05vdGlm
aWNhCiAKIGJvb2wgV2ViTm90aWZpY2F0aW9uV2lkZ2V0OjpldmVudChRRXZlbnQqIGV2KQogewot
ICAgIGlmIChldi0+dHlwZSgpID09IFFFdmVudDo6TW91c2VCdXR0b25SZWxlYXNlIHx8IGV2LT50
eXBlKCkgPT0gUUV2ZW50OjpDbG9zZSkgeworICAgIGlmIChldi0+dHlwZSgpID09IFFFdmVudDo6
TW91c2VCdXR0b25SZWxlYXNlKSB7CisgICAgICAgIGVtaXQgbm90aWZpY2F0aW9uQ2xpY2tlZCgp
OworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgaWYgKGV2LT50eXBlKCkgPT0gUUV2
ZW50OjpDbG9zZSkgewogICAgICAgICBlbWl0IG5vdGlmaWNhdGlvbkNsb3NlZCgpOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CkluZGV4OiBXZWJLaXQvcXQvZXhhbXBsZXMvcGxhdGZvcm1w
bHVnaW4vV2ViTm90aWZpY2F0aW9uUHJlc2VudGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0
L2V4YW1wbGVzL3BsYXRmb3JtcGx1Z2luL1dlYk5vdGlmaWNhdGlvblByZXNlbnRlci5oCShyZXZp
c2lvbiA2Njg4NykKKysrIFdlYktpdC9xdC9leGFtcGxlcy9wbGF0Zm9ybXBsdWdpbi9XZWJOb3Rp
ZmljYXRpb25QcmVzZW50ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQCBwdWJs
aWM6CiAKIFFfU0lHTkFMUzoKICAgICB2b2lkIG5vdGlmaWNhdGlvbkNsb3NlZCgpOworICAgIHZv
aWQgbm90aWZpY2F0aW9uQ2xpY2tlZCgpOwogfTsKIAogY2xhc3MgV2ViTm90aWZpY2F0aW9uUHJl
c2VudGVyIDogcHVibGljIFFXZWJOb3RpZmljYXRpb25QcmVzZW50ZXIKQEAgLTQ3LDYgKzQ4LDcg
QEAgcHVibGljOgogICAgIHsKICAgICAgICAgbV93aWRnZXQgPSBuZXcgV2ViTm90aWZpY2F0aW9u
V2lkZ2V0KCk7CiAgICAgICAgIGNvbm5lY3QobV93aWRnZXQsIFNJR05BTChub3RpZmljYXRpb25D
bG9zZWQoKSksIHRoaXMsIFNJR05BTChub3RpZmljYXRpb25DbG9zZWQoKSkpOworICAgICAgICBj
b25uZWN0KG1fd2lkZ2V0LCBTSUdOQUwobm90aWZpY2F0aW9uQ2xpY2tlZCgpKSwgdGhpcywgU0lH
TkFMKG5vdGlmaWNhdGlvbkNsaWNrZWQoKSkpOwogICAgIH0KICAgICB2aXJ0dWFsIH5XZWJOb3Rp
ZmljYXRpb25QcmVzZW50ZXIoKSB7IG1fd2lkZ2V0LT5jbG9zZSgpOyBkZWxldGUgbV93aWRnZXQ7
IH0KIApJbmRleDogV2ViS2l0L3F0L2V4YW1wbGVzL3BsYXRmb3JtcGx1Z2luL3F3ZWJraXRwbGF0
Zm9ybXBsdWdpbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9leGFtcGxlcy9wbGF0Zm9ybXBs
dWdpbi9xd2Via2l0cGxhdGZvcm1wbHVnaW4uaAkocmV2aXNpb24gNjY4ODcpCisrKyBXZWJLaXQv
cXQvZXhhbXBsZXMvcGxhdGZvcm1wbHVnaW4vcXdlYmtpdHBsYXRmb3JtcGx1Z2luLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICovCiAKICNpbmNsdWRlIDxRT2JqZWN0PgorI2lu
Y2x1ZGUgPFFVcmw+CiAKIGNsYXNzIFFXZWJTZWxlY3REYXRhCiB7CkBAIC02Niw2ICs2Nyw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGNvbnN0IFFTdHJpbmcgdGl0bGUoKSBjb25zdCA9IDA7CiAg
ICAgdmlydHVhbCBjb25zdCBRU3RyaW5nIG1lc3NhZ2UoKSBjb25zdCA9IDA7CiAgICAgdmlydHVh
bCBjb25zdCBRQnl0ZUFycmF5IGljb25EYXRhKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgY29u
c3QgUVVybCBvcGVuZXJQYWdlVXJsKCkgY29uc3QgPSAwOwogfTsKIAogY2xhc3MgUVdlYk5vdGlm
aWNhdGlvblByZXNlbnRlciA6IHB1YmxpYyBRT2JqZWN0CkBAIC03OSw2ICs4MSw3IEBAIHB1Ymxp
YzoKICAgICAKIFFfU0lHTkFMUzoKICAgICB2b2lkIG5vdGlmaWNhdGlvbkNsb3NlZCgpOworICAg
IHZvaWQgbm90aWZpY2F0aW9uQ2xpY2tlZCgpOwogfTsKIAogY2xhc3MgUVdlYkhhcHRpY0ZlZWRi
YWNrUGxheWVyCkBAIC0xMTMsNiArMTE2LDYgQEAgcHVibGljOgogCiB9OwogCi1RX0RFQ0xBUkVf
SU5URVJGQUNFKFFXZWJLaXRQbGF0Zm9ybVBsdWdpbiwgImNvbS5ub2tpYS5RdC5XZWJLaXQuUGxh
dGZvcm1QbHVnaW4vMS4zIik7CitRX0RFQ0xBUkVfSU5URVJGQUNFKFFXZWJLaXRQbGF0Zm9ybVBs
dWdpbiwgImNvbS5ub2tpYS5RdC5XZWJLaXQuUGxhdGZvcm1QbHVnaW4vMS40Iik7CiAKICNlbmRp
ZiAvLyBRV0VCS0lUUExBVEZPUk1QTFVHSU5fSApJbmRleDogV2ViS2l0VG9vbHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gNjY5NDQpCisr
KyBXZWJLaXRUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAor
MjAxMC0wOS0wNyAgWWFlbCBBaGFyb24gIDx5YWVsLmFoYXJvbkBub2tpYS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBTdXBwb3J0IGNs
aWNrIGV2ZW50IGZvciBub3RpZmljYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00NDgzNgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzaW11
bGF0ZURlc2t0b3BOb3RpZmljYXRpb25DbGljayBieSBjYWxsaW5nCisgICAgICAgIGJhY2sgdG8g
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
cXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c2ltdWxhdGVEZXNrdG9wTm90aWZpY2F0aW9uQ2xpY2spOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaDoKKwogMjAxMC0wOS0wMSAgRGly
ayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBP
amFuIFZhZmFpLgpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVz
dENvbnRyb2xsZXJRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAJKHJldmlzaW9uIDY2ODg3KQorKysgV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTIwNiw2ICsyMDYsMTEgQEAgYm9vbCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6Y2hlY2tEZXNrdG9wTgogICAgIHJldHVybiAhbV9pZ25vcmVEZXNrdG9wTm90aWZpY2F0aW9u
ICYmIG1fZGVza3RvcE5vdGlmaWNhdGlvbkFsbG93ZWRPcmlnaW5zLmNvbnRhaW5zKG9yaWdpbik7
CiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNpbXVsYXRlRGVza3RvcE5vdGlmaWNh
dGlvbkNsaWNrKGNvbnN0IFFTdHJpbmcmIHRpdGxlKQoreworICAgIER1bXBSZW5kZXJUcmVlU3Vw
cG9ydFF0OjpzaW11bGF0ZURlc2t0b3BOb3RpZmljYXRpb25DbGljayh0aXRsZSk7Cit9CisKIHZv
aWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmRpc3BsYXkoKQogewogICAgIGVtaXQgc2hvd1BhZ2Uo
KTsKSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9s
bGVyUXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlv
dXRUZXN0Q29udHJvbGxlclF0LmgJKHJldmlzaW9uIDY2ODg3KQorKysgV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xMjQsNiArMTI0LDcgQEAgcHVibGljIHNsb3RzOgogICAgIHZvaWQgZ3JhbnREZXNrdG9wTm90
aWZpY2F0aW9uUGVybWlzc2lvbihjb25zdCBRU3RyaW5nJiBvcmlnaW4pOwogICAgIHZvaWQgaWdu
b3JlRGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0cygpOwogICAgIGJvb2wgY2hl
Y2tEZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbihjb25zdCBRU3RyaW5nJiBvcmlnaW4pOwor
ICAgIHZvaWQgc2ltdWxhdGVEZXNrdG9wTm90aWZpY2F0aW9uQ2xpY2soY29uc3QgUVN0cmluZyYg
dGl0bGUpOwogICAgIHZvaWQgZGlzcGxheSgpOwogICAgIHZvaWQgY2xlYXJCYWNrRm9yd2FyZExp
c3QoKTsKICAgICBRU3RyaW5nIHBhdGhUb0xvY2FsUmVzb3VyY2UoY29uc3QgUVN0cmluZyYgdXJs
KTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDY2OTQ0KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDktMDcgIFlhZWwgQWhhcm9uICA8
eWFlbC5haGFyb25Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFtRdF0gU3VwcG9ydCBjbGljayBldmVudCBmb3Igbm90aWZpY2F0aW9u
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ4MzYK
KworICAgICAgICAqIGZhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLWNsaWNrLWV2ZW50
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVkOgorCiAyMDEwLTA5
LTA3ICBPamFuIFZhZmFpICA8b2phbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgS2VudCBUYW11cmEuCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQJKHJldmlzaW9uIDY2
ODg3KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAkod29ya2luZyBjb3B5KQpA
QCAtNTMzNyw3ICs1MzM3LDYgQEAgc3ZnL1czQy1TVkctMS4xL2ZpbHRlcnMtbGlnaHQtMDQtZi5z
dmcKICMgbmV3IHNraXBwZWQgdGVzdHMgeWV0IHRvIGJlIHNvcnRlZAogIyA9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PSAjCiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9jYWxsYmFjay10by1yZW1vdGUtY29udGV4
dDIuaHRtbAotZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtY2xpY2stZXZlbnQuaHRt
bAogCiAjIExpbmsgcHJlZmV0Y2ggaXMgZGlzYWJsZWQgYnkgZGVmYXVsdAogZmFzdC9kb20vSFRN
TExpbmtFbGVtZW50L3ByZWZldGNoLmh0bWwK
</data>
<flag name="review"
          id="55955"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67194</attachid>
            <date>2010-09-10 09:32:31 -0700</date>
            <delta_ts>2010-09-10 20:42:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>44836.patch</filename>
            <type>text/plain</type>
            <size>14444</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0NoYW5n
ZUxvZwkocmV2aXNpb24gNjcyMDQpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTAtMDktMDcgIFlhZWwgQWhhcm9uICA8eWFlbC5haGFy
b25Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFtRdF0gU3VwcG9ydCBjbGljayBldmVudCBmb3Igbm90aWZpY2F0aW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ4MzYKKworICAgICAg
ICBQcm9wYWdhdGUgY2xpY2sgZXZlbnRzIHRvIEphdmFTY3JpcHQgZnJvbSBlaXRoZXIgdGhlCisg
ICAgICAgIHBsYXRmb3JtIHBsdWduIG9yIGZyb20gUVN5c3RlbVRyYXlJY29uLgorICAgICAgICBB
bHNvIGFkZGVkIHRoZSBtZXRob2QgTm90aWZpY2F0aW9uV3JhcHBlcjo6b3BlbmVyUGFnZVVybCBz
byB0aGF0CisgICAgICAgIGlmIHRoZSBwbGF0Zm9ybSBwbHVnaW4gY2FuIHJlb3BlbiB0aGUgcGFn
ZSB0aGF0IGNyZWF0ZWQgdGhlCisgICAgICAgIG5vdGlmaWNhdGlvbiBkaXJlY3RseSwgd2hlbiB0
aGUgdXNlciBjbGlja3MgdGhlIG5vdGlmaWNhdGlvbi4KKworICAgICAgICBBZGRlZCBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdDo6c2ltdWxhdGVEZXNrdG9wTm90aWZpY2F0aW9uQ2xpY2sKKyAgICAg
ICAgZm9yIHRlc3RpbmcgcHVycG9zZS4KKworICAgICAgICAqIEFwaS9xd2Via2l0cGxhdGZvcm1w
bHVnaW4uaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRR
dC5jcHA6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2ltdWxhdGVEZXNrdG9w
Tm90aWZpY2F0aW9uQ2xpY2spOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydFF0Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJl
c2VudGVyQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uV3JhcHBl
cjo6b3BlbmVyUGFnZVVybCk6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb25XcmFwcGVy
Ojpub3RpZmljYXRpb25DbGlja2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvblBy
ZXNlbnRlckNsaWVudFF0OjpkaXNwbGF5Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
Ok5vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0Ojpub3RpZmljYXRpb25DbGlja2VkKToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdC5oOgor
ICAgICAgICAqIGV4YW1wbGVzL3BsYXRmb3JtcGx1Z2luL1dlYk5vdGlmaWNhdGlvblByZXNlbnRl
ci5jcHA6CisgICAgICAgIChXZWJOb3RpZmljYXRpb25XaWRnZXQ6OmV2ZW50KToKKyAgICAgICAg
KiBleGFtcGxlcy9wbGF0Zm9ybXBsdWdpbi9XZWJOb3RpZmljYXRpb25QcmVzZW50ZXIuaDoKKyAg
ICAgICAgKFdlYk5vdGlmaWNhdGlvblByZXNlbnRlcjo6V2ViTm90aWZpY2F0aW9uUHJlc2VudGVy
KToKKyAgICAgICAgKiBleGFtcGxlcy9wbGF0Zm9ybXBsdWdpbi9xd2Via2l0cGxhdGZvcm1wbHVn
aW4uaDoKKwogMjAxMC0wOS0wOCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KSW5kZXg6IFdlYktpdC9xdC9BcGkvcXdlYmtp
dHBsYXRmb3JtcGx1Z2luLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0FwaS9xd2Via2l0cGxh
dGZvcm1wbHVnaW4uaAkocmV2aXNpb24gNjcyMDQpCisrKyBXZWJLaXQvcXQvQXBpL3F3ZWJraXRw
bGF0Zm9ybXBsdWdpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAqLwogCiAj
aW5jbHVkZSA8UU9iamVjdD4KKyNpbmNsdWRlIDxRVXJsPgogCiBjbGFzcyBRV2ViU2VsZWN0RGF0
YQogewpAQCAtNjYsNiArNjcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBjb25zdCBRU3RyaW5n
IHRpdGxlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgY29uc3QgUVN0cmluZyBtZXNzYWdlKCkg
Y29uc3QgPSAwOwogICAgIHZpcnR1YWwgY29uc3QgUUJ5dGVBcnJheSBpY29uRGF0YSgpIGNvbnN0
ID0gMDsKKyAgICB2aXJ0dWFsIGNvbnN0IFFVcmwgb3BlbmVyUGFnZVVybCgpIGNvbnN0ID0gMDsK
IH07CiAKIGNsYXNzIFFXZWJOb3RpZmljYXRpb25QcmVzZW50ZXIgOiBwdWJsaWMgUU9iamVjdApA
QCAtNzksNiArODEsNyBAQCBwdWJsaWM6CiAgICAgCiBRX1NJR05BTFM6CiAgICAgdm9pZCBub3Rp
ZmljYXRpb25DbG9zZWQoKTsKKyAgICB2b2lkIG5vdGlmaWNhdGlvbkNsaWNrZWQoKTsKIH07CiAK
IGNsYXNzIFFXZWJIYXB0aWNGZWVkYmFja1BsYXllcgpAQCAtMTEzLDYgKzExNiw2IEBAIHB1Ymxp
YzoKIAogfTsKIAotUV9ERUNMQVJFX0lOVEVSRkFDRShRV2ViS2l0UGxhdGZvcm1QbHVnaW4sICJj
b20ubm9raWEuUXQuV2ViS2l0LlBsYXRmb3JtUGx1Z2luLzEuMyIpOworUV9ERUNMQVJFX0lOVEVS
RkFDRShRV2ViS2l0UGxhdGZvcm1QbHVnaW4sICJjb20ubm9raWEuUXQuV2ViS2l0LlBsYXRmb3Jt
UGx1Z2luLzEuNCIpOwogCiAjZW5kaWYgLy8gUVdFQktJVFBMQVRGT1JNUExVR0lOX0gKSW5kZXg6
IFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dFF0LmNwcAkocmV2aXNpb24gNjcyMDQpCisrKyBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OTgsNiArNjk4LDEz
IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmFkZFVzZXJTdHkKICAgICBwYWdlLT5o
YW5kbGUoKS0+cGFnZS0+Z3JvdXAoKS5hZGRVc2VyU3R5bGVTaGVldFRvV29ybGQobWFpblRocmVh
ZE5vcm1hbFdvcmxkKCksIHNvdXJjZUNvZGUsIFFVcmwoKSwgMCwgMCwgV2ViQ29yZTo6SW5qZWN0
SW5BbGxGcmFtZXMpOwogfQogCit2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzaW11bGF0
ZURlc2t0b3BOb3RpZmljYXRpb25DbGljayhjb25zdCBRU3RyaW5nJiB0aXRsZSkKK3sKKyNpZiBF
TkFCTEUoTk9USUZJQ0FUSU9OUykKKyAgICBOb3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdDo6
bm90aWZpY2F0aW9uUHJlc2VudGVyKCktPm5vdGlmaWNhdGlvbkNsaWNrZWQodGl0bGUpOworI2Vu
ZGlmCit9CisKIC8vIFByb3ZpZGUgYSBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggcHJldmlv
dXNseSBleHBvcnRlZCBwcml2YXRlIHN5bWJvbHMgYXMgb2YgUXRXZWJLaXQgNC42IHJlbGVhc2UK
IAogdm9pZCBRV0VCS0lUX0VYUE9SVCBxdF9yZXN1bWVBY3RpdmVET01PYmplY3RzKFFXZWJGcmFt
ZSogZnJhbWUpCkluZGV4OiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0UXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQuaAkocmV2aXNpb24gNjcyMDQpCisrKyBXZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaAkod29ya2luZyBjb3B5KQpAQCAtMTI3
LDcgKzEyNyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUVN0cmluZyBwYWdlU2l6ZUFuZE1hcmdp
bnNJblBpeGVscyhRV2ViRnJhbWUqIGZyYW1lLCBpbnQgcGFnZUluZGV4LCBpbnQgd2lkdGgsIGlu
dCBoZWlnaHQsIGludCBtYXJnaW5Ub3AsIGludCBtYXJnaW5SaWdodCwgaW50IG1hcmdpbkJvdHRv
bSwgaW50IG1hcmdpbkxlZnQpOwogICAgIHN0YXRpYyBRU3RyaW5nIHBhZ2VQcm9wZXJ0eShRV2Vi
RnJhbWUqIGZyYW1lLCBjb25zdCBRU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIGludCBwYWdlTnVtYmVy
KTsKICAgICBzdGF0aWMgdm9pZCBhZGRVc2VyU3R5bGVTaGVldChRV2ViUGFnZSogcGFnZSwgY29u
c3QgUVN0cmluZyYgc291cmNlQ29kZSk7Ci0KKyAgICBzdGF0aWMgdm9pZCBzaW11bGF0ZURlc2t0
b3BOb3RpZmljYXRpb25DbGljayhjb25zdCBRU3RyaW5nJiB0aXRsZSk7CiB9OwogCiAjZW5kaWYK
SW5kZXg6IFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJDbGll
bnRRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L05vdGlmaWNh
dGlvblByZXNlbnRlckNsaWVudFF0LmNwcAkocmV2aXNpb24gNjcyMDQpCisrKyBXZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMTgsNiArMTE4LDI2IEBAIGNvbnN0IFFCeXRlQXJyYXkgTm90aWZpY2F0aW9u
V3JhcHBlcjo6aWMKICAgICByZXR1cm4gaWNvbkRhdGE7CiB9CiAKK2NvbnN0IFFVcmwgTm90aWZp
Y2F0aW9uV3JhcHBlcjo6b3BlbmVyUGFnZVVybCgpIGNvbnN0Cit7CisgICAgUVVybCB1cmw7Cisj
aWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisgICAgTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24g
PSBOb3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdDo6bm90aWZpY2F0aW9uUHJlc2VudGVyKCkt
Pm5vdGlmaWNhdGlvbkZvcldyYXBwZXIodGhpcyk7CisgICAgaWYgKG5vdGlmaWNhdGlvbikgewor
ICAgICAgICBpZiAobm90aWZpY2F0aW9uLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpIAorICAg
ICAgICAgICAgdXJsID0gc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihub3RpZmljYXRpb24tPnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSktPnBhZ2UoKS0+bWFpbkZyYW1lKCktPmRvY3VtZW50KCktPnVy
bCgpOworICAgIH0KKyNlbmRpZgorICAgIHJldHVybiB1cmw7Cit9CisKK3ZvaWQgTm90aWZpY2F0
aW9uV3JhcHBlcjo6bm90aWZpY2F0aW9uQ2xpY2tlZCgpCit7CisjaWYgRU5BQkxFKE5PVElGSUNB
VElPTlMpCisgICAgTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQ6Om5vdGlmaWNhdGlvblBy
ZXNlbnRlcigpLT5ub3RpZmljYXRpb25DbGlja2VkKHRoaXMpOworI2VuZGlmCit9CisKIHZvaWQg
Tm90aWZpY2F0aW9uV3JhcHBlcjo6bm90aWZpY2F0aW9uQ2xvc2VkKCkKIHsKICNpZiBFTkFCTEUo
Tk9USUZJQ0FUSU9OUykKQEAgLTIwNCwxMSArMjI0LDEzIEBAIHZvaWQgTm90aWZpY2F0aW9uUHJl
c2VudGVyQ2xpZW50UXQ6OmRpc3AKIAogICAgIGlmICh3cmFwcGVyLT5tX3ByZXNlbnRlcikgewog
ICAgICAgICB3cmFwcGVyLT5jb25uZWN0KHdyYXBwZXItPm1fcHJlc2VudGVyLmdldCgpLCBTSUdO
QUwobm90aWZpY2F0aW9uQ2xvc2VkKCkpLCB3cmFwcGVyLCBTTE9UKG5vdGlmaWNhdGlvbkNsb3Nl
ZCgpKSwgUXQ6OlF1ZXVlZENvbm5lY3Rpb24pOworICAgICAgICB3cmFwcGVyLT5jb25uZWN0KHdy
YXBwZXItPm1fcHJlc2VudGVyLmdldCgpLCBTSUdOQUwobm90aWZpY2F0aW9uQ2xpY2tlZCgpKSwg
d3JhcHBlciwgU0xPVChub3RpZmljYXRpb25DbGlja2VkKCkpKTsKICAgICAgICAgd3JhcHBlci0+
bV9wcmVzZW50ZXItPnNob3dOb3RpZmljYXRpb24od3JhcHBlcik7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKICNpZm5kZWYgUVRfTk9fU1lTVEVNVFJBWUlDT04KKyAgICB3cmFwcGVyLT5jb25u
ZWN0KHdyYXBwZXItPm1fbm90aWZpY2F0aW9uSWNvbi5nZXQoKSwgU0lHTkFMKG1lc3NhZ2VDbGlj
a2VkKCkpLCB3cmFwcGVyLCBTTE9UKG5vdGlmaWNhdGlvbkNsaWNrZWQoKSkpOwogICAgIHdyYXBw
ZXItPm1fbm90aWZpY2F0aW9uSWNvbi0+c2hvdygpOwogICAgIHdyYXBwZXItPm1fbm90aWZpY2F0
aW9uSWNvbi0+c2hvd01lc3NhZ2Uobm90aWZpY2F0aW9uLT5jb250ZW50cygpLnRpdGxlKCksIG5v
dGlmaWNhdGlvbi0+Y29udGVudHMoKS5ib2R5KCkpOwogI2VuZGlmCkBAIC0yMzcsNiArMjU5LDM1
IEBAIHZvaWQgTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQ6OmNhbmMKICAgICAgICAgY2Fu
Y2VsKG5vdGlmaWNhdGlvbik7CiB9CiAKK3ZvaWQgTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50
UXQ6Om5vdGlmaWNhdGlvbkNsaWNrZWQoTm90aWZpY2F0aW9uV3JhcHBlciogd3JhcHBlcikKK3sK
KyAgICBOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiA9ICBub3RpZmljYXRpb25Gb3JXcmFwcGVy
KHdyYXBwZXIpOworICAgIGlmIChub3RpZmljYXRpb24pCisgICAgICAgIHNlbmRFdmVudChub3Rp
ZmljYXRpb24sIGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50KTsKK30KKwordm9pZCBOb3RpZmljYXRp
b25QcmVzZW50ZXJDbGllbnRRdDo6bm90aWZpY2F0aW9uQ2xpY2tlZChjb25zdCBRU3RyaW5nJiB0
aXRsZSkKK3sKKyAgICBpZiAoIWR1bXBOb3RpZmljYXRpb24pCisgICAgICAgIHJldHVybjsKKyAg
ICBOb3RpZmljYXRpb25zUXVldWU6OkNvbnN0SXRlcmF0b3IgZW5kID0gbV9ub3RpZmljYXRpb25z
LmVuZCgpOworICAgIE5vdGlmaWNhdGlvbnNRdWV1ZTo6Q29uc3RJdGVyYXRvciBpdGVyID0gbV9u
b3RpZmljYXRpb25zLmJlZ2luKCk7CisgICAgTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24gPSAw
OworICAgIHdoaWxlIChpdGVyICE9IGVuZCkgeworICAgICAgICBub3RpZmljYXRpb24gPSBpdGVy
LmtleSgpOworICAgICAgICBRU3RyaW5nIG5vdGlmaWNhdGlvblRpdGxlOworICAgICAgICBpZiAo
bm90aWZpY2F0aW9uLT5pc0hUTUwoKSkKKyAgICAgICAgICAgIG5vdGlmaWNhdGlvblRpdGxlID0g
bm90aWZpY2F0aW9uLT51cmwoKS5zdHJpbmcoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
bm90aWZpY2F0aW9uVGl0bGUgPSBub3RpZmljYXRpb24tPmNvbnRlbnRzKCkudGl0bGUoKTsKKyAg
ICAgICAgaWYgKG5vdGlmaWNhdGlvblRpdGxlID09IHRpdGxlKQorICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGl0ZXIrKzsKKyAgICB9CisgICAgaWYgKG5vdGlmaWNhdGlvbikKKyAgICAgICAg
c2VuZEV2ZW50KG5vdGlmaWNhdGlvbiwgZXZlbnROYW1lcygpLmNsaWNrRXZlbnQpOworfQorCiBO
b3RpZmljYXRpb24qIE5vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0Ojpub3RpZmljYXRpb25G
b3JXcmFwcGVyKGNvbnN0IE5vdGlmaWNhdGlvbldyYXBwZXIqIHdyYXBwZXIpIGNvbnN0CiB7CiAg
ICAgTm90aWZpY2F0aW9uc1F1ZXVlOjpDb25zdEl0ZXJhdG9yIGVuZCA9IG1fbm90aWZpY2F0aW9u
cy5lbmQoKTsKSW5kZXg6IFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRpb25QcmVz
ZW50ZXJDbGllbnRRdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9O
b3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdC5oCShyZXZpc2lvbiA2NzIwNCkKKysrIFdlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC02MSw5ICs2MSwxMSBAQCBwdWJsaWM6CiAgICAgY29uc3QgUVN0cmluZyB0
aXRsZSgpIGNvbnN0OwogICAgIGNvbnN0IFFTdHJpbmcgbWVzc2FnZSgpIGNvbnN0OwogICAgIGNv
bnN0IFFCeXRlQXJyYXkgaWNvbkRhdGEoKSBjb25zdDsKKyAgICBjb25zdCBRVXJsIG9wZW5lclBh
Z2VVcmwoKSBjb25zdDsKIAogcHVibGljIFFfU0xPVFM6CiAgICAgdm9pZCBub3RpZmljYXRpb25D
bG9zZWQoKTsKKyAgICB2b2lkIG5vdGlmaWNhdGlvbkNsaWNrZWQoKTsKIAogcHVibGljOgogI2lm
bmRlZiBRVF9OT19TWVNURU1UUkFZSUNPTgpAQCAtMTAyLDYgKzEwNCw4IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQqIG5vdGlmaWNhdGlvblByZXNl
bnRlcigpOwogCiAgICAgTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb25Gb3JXcmFwcGVyKGNvbnN0
IE5vdGlmaWNhdGlvbldyYXBwZXIqKSBjb25zdDsKKyAgICB2b2lkIG5vdGlmaWNhdGlvbkNsaWNr
ZWQoTm90aWZpY2F0aW9uV3JhcHBlciopOworICAgIHZvaWQgbm90aWZpY2F0aW9uQ2xpY2tlZChj
b25zdCBRU3RyaW5nJiB0aXRsZSk7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBzZW5kRXZlbnQoTm90
aWZpY2F0aW9uKiwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudE5hbWUpOwpJbmRleDogV2ViS2l0
L3F0L2V4YW1wbGVzL3BsYXRmb3JtcGx1Z2luL1dlYk5vdGlmaWNhdGlvblByZXNlbnRlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L3F0L2V4YW1wbGVzL3BsYXRmb3JtcGx1Z2luL1dlYk5vdGlm
aWNhdGlvblByZXNlbnRlci5jcHAJKHJldmlzaW9uIDY3MjA0KQorKysgV2ViS2l0L3F0L2V4YW1w
bGVzL3BsYXRmb3JtcGx1Z2luL1dlYk5vdGlmaWNhdGlvblByZXNlbnRlci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTU3LDcgKzU3LDExIEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uV2lkZ2V0OjpzaG93
Tm90aWZpY2EKIAogYm9vbCBXZWJOb3RpZmljYXRpb25XaWRnZXQ6OmV2ZW50KFFFdmVudCogZXYp
CiB7Ci0gICAgaWYgKGV2LT50eXBlKCkgPT0gUUV2ZW50OjpNb3VzZUJ1dHRvblJlbGVhc2UgfHwg
ZXYtPnR5cGUoKSA9PSBRRXZlbnQ6OkNsb3NlKSB7CisgICAgaWYgKGV2LT50eXBlKCkgPT0gUUV2
ZW50OjpNb3VzZUJ1dHRvblJlbGVhc2UpIHsKKyAgICAgICAgZW1pdCBub3RpZmljYXRpb25DbGlj
a2VkKCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBpZiAoZXYtPnR5cGUoKSA9
PSBRRXZlbnQ6OkNsb3NlKSB7CiAgICAgICAgIGVtaXQgbm90aWZpY2F0aW9uQ2xvc2VkKCk7CiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KSW5kZXg6IFdlYktpdC9xdC9leGFtcGxlcy9wbGF0
Zm9ybXBsdWdpbi9XZWJOb3RpZmljYXRpb25QcmVzZW50ZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvcXQvZXhhbXBsZXMvcGxhdGZvcm1wbHVnaW4vV2ViTm90aWZpY2F0aW9uUHJlc2VudGVyLmgJ
KHJldmlzaW9uIDY3MjA0KQorKysgV2ViS2l0L3F0L2V4YW1wbGVzL3BsYXRmb3JtcGx1Z2luL1dl
Yk5vdGlmaWNhdGlvblByZXNlbnRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBA
IHB1YmxpYzoKIAogUV9TSUdOQUxTOgogICAgIHZvaWQgbm90aWZpY2F0aW9uQ2xvc2VkKCk7Cisg
ICAgdm9pZCBub3RpZmljYXRpb25DbGlja2VkKCk7CiB9OwogCiBjbGFzcyBXZWJOb3RpZmljYXRp
b25QcmVzZW50ZXIgOiBwdWJsaWMgUVdlYk5vdGlmaWNhdGlvblByZXNlbnRlcgpAQCAtNDcsNiAr
NDgsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBtX3dpZGdldCA9IG5ldyBXZWJOb3RpZmlj
YXRpb25XaWRnZXQoKTsKICAgICAgICAgY29ubmVjdChtX3dpZGdldCwgU0lHTkFMKG5vdGlmaWNh
dGlvbkNsb3NlZCgpKSwgdGhpcywgU0lHTkFMKG5vdGlmaWNhdGlvbkNsb3NlZCgpKSk7CisgICAg
ICAgIGNvbm5lY3QobV93aWRnZXQsIFNJR05BTChub3RpZmljYXRpb25DbGlja2VkKCkpLCB0aGlz
LCBTSUdOQUwobm90aWZpY2F0aW9uQ2xpY2tlZCgpKSk7CiAgICAgfQogICAgIHZpcnR1YWwgfldl
Yk5vdGlmaWNhdGlvblByZXNlbnRlcigpIHsgbV93aWRnZXQtPmNsb3NlKCk7IGRlbGV0ZSBtX3dp
ZGdldDsgfQogCkluZGV4OiBXZWJLaXQvcXQvZXhhbXBsZXMvcGxhdGZvcm1wbHVnaW4vcXdlYmtp
dHBsYXRmb3JtcGx1Z2luLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L2V4YW1wbGVzL3BsYXRm
b3JtcGx1Z2luL3F3ZWJraXRwbGF0Zm9ybXBsdWdpbi5oCShyZXZpc2lvbiA2NzIwNCkKKysrIFdl
YktpdC9xdC9leGFtcGxlcy9wbGF0Zm9ybXBsdWdpbi9xd2Via2l0cGxhdGZvcm1wbHVnaW4uaAko
d29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogKi8KIAogI2luY2x1ZGUgPFFPYmplY3Q+
CisjaW5jbHVkZSA8UVVybD4KIAogY2xhc3MgUVdlYlNlbGVjdERhdGEKIHsKQEAgLTY2LDYgKzY3
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgY29uc3QgUVN0cmluZyB0aXRsZSgpIGNvbnN0ID0g
MDsKICAgICB2aXJ0dWFsIGNvbnN0IFFTdHJpbmcgbWVzc2FnZSgpIGNvbnN0ID0gMDsKICAgICB2
aXJ0dWFsIGNvbnN0IFFCeXRlQXJyYXkgaWNvbkRhdGEoKSBjb25zdCA9IDA7CisgICAgdmlydHVh
bCBjb25zdCBRVXJsIG9wZW5lclBhZ2VVcmwoKSBjb25zdCA9IDA7CiB9OwogCiBjbGFzcyBRV2Vi
Tm90aWZpY2F0aW9uUHJlc2VudGVyIDogcHVibGljIFFPYmplY3QKQEAgLTc5LDYgKzgxLDcgQEAg
cHVibGljOgogICAgIAogUV9TSUdOQUxTOgogICAgIHZvaWQgbm90aWZpY2F0aW9uQ2xvc2VkKCk7
CisgICAgdm9pZCBub3RpZmljYXRpb25DbGlja2VkKCk7CiB9OwogCiBjbGFzcyBRV2ViSGFwdGlj
RmVlZGJhY2tQbGF5ZXIKQEAgLTExMyw2ICsxMTYsNiBAQCBwdWJsaWM6CiAKIH07CiAKLVFfREVD
TEFSRV9JTlRFUkZBQ0UoUVdlYktpdFBsYXRmb3JtUGx1Z2luLCAiY29tLm5va2lhLlF0LldlYktp
dC5QbGF0Zm9ybVBsdWdpbi8xLjMiKTsKK1FfREVDTEFSRV9JTlRFUkZBQ0UoUVdlYktpdFBsYXRm
b3JtUGx1Z2luLCAiY29tLm5va2lhLlF0LldlYktpdC5QbGF0Zm9ybVBsdWdpbi8xLjQiKTsKIAog
I2VuZGlmIC8vIFFXRUJLSVRQTEFURk9STVBMVUdJTl9ICkluZGV4OiBXZWJLaXRUb29scy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2NzIw
NCkKKysrIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3
IEBACisyMDEwLTA5LTA3ICBZYWVsIEFoYXJvbiAgPHlhZWwuYWhhcm9uQG5va2lhLmNvbT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIFN1cHBv
cnQgY2xpY2sgZXZlbnQgZm9yIG5vdGlmaWNhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0ODM2CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9y
IHNpbXVsYXRlRGVza3RvcE5vdGlmaWNhdGlvbkNsaWNrIGJ5IGNhbGxpbmcKKyAgICAgICAgYmFj
ayB0byBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAuCisKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcDoKKyAgICAgICAgKExheW91dFRlc3RD
b250cm9sbGVyOjpzaW11bGF0ZURlc2t0b3BOb3RpZmljYXRpb25DbGljayk6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oOgorCiAyMDEwLTA5LTA5
ICBIYW5zIFdlbm5ib3JnICA8aGFuc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgSmVyZW15IE9ybG93LgpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5
b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAJKHJldmlzaW9uIDY3MjA0KQor
KysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTIwNiw2ICsyMDYsMTEgQEAgYm9vbCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6Y2hlY2tEZXNrdG9wTgogICAgIHJldHVybiAhbV9pZ25vcmVEZXNrdG9wTm90aWZp
Y2F0aW9uICYmIG1fZGVza3RvcE5vdGlmaWNhdGlvbkFsbG93ZWRPcmlnaW5zLmNvbnRhaW5zKG9y
aWdpbik7CiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNpbXVsYXRlRGVza3RvcE5v
dGlmaWNhdGlvbkNsaWNrKGNvbnN0IFFTdHJpbmcmIHRpdGxlKQoreworICAgIER1bXBSZW5kZXJU
cmVlU3VwcG9ydFF0OjpzaW11bGF0ZURlc2t0b3BOb3RpZmljYXRpb25DbGljayh0aXRsZSk7Cit9
CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmRpc3BsYXkoKQogewogICAgIGVtaXQgc2hv
d1BhZ2UoKTsKSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RD
b250cm9sbGVyUXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9x
dC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgJKHJldmlzaW9uIDY3MjA0KQorKysgV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xMjQsNiArMTI0LDcgQEAgcHVibGljIHNsb3RzOgogICAgIHZvaWQgZ3JhbnREZXNr
dG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbihjb25zdCBRU3RyaW5nJiBvcmlnaW4pOwogICAgIHZv
aWQgaWdub3JlRGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0cygpOwogICAgIGJv
b2wgY2hlY2tEZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbihjb25zdCBRU3RyaW5nJiBvcmln
aW4pOworICAgIHZvaWQgc2ltdWxhdGVEZXNrdG9wTm90aWZpY2F0aW9uQ2xpY2soY29uc3QgUVN0
cmluZyYgdGl0bGUpOwogICAgIHZvaWQgZGlzcGxheSgpOwogICAgIHZvaWQgY2xlYXJCYWNrRm9y
d2FyZExpc3QoKTsKICAgICBRU3RyaW5nIHBhdGhUb0xvY2FsUmVzb3VyY2UoY29uc3QgUVN0cmlu
ZyYgdXJsKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDY3MjA0KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDktMDcgIFlhZWwgQWhh
cm9uICA8eWFlbC5haGFyb25Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gU3VwcG9ydCBjbGljayBldmVudCBmb3Igbm90aWZp
Y2F0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDQ4MzYKKworICAgICAgICAqIGZhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLWNsaWNr
LWV2ZW50LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVkOgorCiAy
MDEwLTA5LTEwICBOaWtvbGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkByaW0uY29tPgogCiAg
ICAgICAgIE5vdCByZXZpZXdlZC4gRml4IHdyb25nIGd0ayBiYXNlbGluZSBmb3Igc2VsZWN0LXgt
bGlzdC0xLnN2Zy4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAkocmV2aXNpb24gNjcyMDQp
CisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC01
MzM1LDcgKzUzMzUsNiBAQCBzdmcvVzNDLVNWRy0xLjEvZmlsdGVycy1saWdodC0wNC1mLnN2Zwog
IyBuZXcgc2tpcHBlZCB0ZXN0cyB5ZXQgdG8gYmUgc29ydGVkCiAjID09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09ICMKIGZhc3QvZG9tL0dlb2xvY2F0aW9uL2NhbGxiYWNrLXRvLXJlbW90ZS1jb250ZXh0Mi5o
dG1sCi1mYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1jbGljay1ldmVudC5odG1sCiAK
ICMgTGluayBwcmVmZXRjaCBpcyBkaXNhYmxlZCBieSBkZWZhdWx0CiBmYXN0L2RvbS9IVE1MTGlu
a0VsZW1lbnQvcHJlZmV0Y2guaHRtbAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>