<?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>63615</bug_id>
          
          <creation_ts>2011-06-29 02:51:14 -0700</creation_ts>
          <short_desc>Allow notification origin permission request when no js callback is provided</short_desc>
          <delta_ts>2012-10-14 16:50:28 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>61140</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexandre Mazari">scaroo</reporter>
          <assigned_to name="Jon Lee">jonlee</assigned_to>
          <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>jonlee</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pnormand</cc>
    
    <cc>scaroo</cc>
    
    <cc>sra</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>429497</commentid>
    <comment_count>0</comment_count>
    <who name="Alexandre Mazari">scaroo</who>
    <bug_when>2011-06-29 02:51:14 -0700</bug_when>
    <thetext>Allow notification origin permission request when no js callback is provided</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429498</commentid>
    <comment_count>1</comment_count>
      <attachid>99061</attachid>
    <who name="Alexandre Mazari">scaroo</who>
    <bug_when>2011-06-29 02:52:17 -0700</bug_when>
    <thetext>Created attachment 99061
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431048</commentid>
    <comment_count>2</comment_count>
    <who name="Alexandre Mazari">scaroo</who>
    <bug_when>2011-07-01 01:16:05 -0700</bug_when>
    <thetext>The JavasCript NotificationCenter::requestPermission can * optionally* take a callback as argument. If one is provided, it should be called in the case the request was taken into account.

The current implementation requires such an argument in the JSC wrapper for NotificationCenter where the V8 wrapper makes it optional.

This patch implements the same behaviour for JSC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431071</commentid>
    <comment_count>3</comment_count>
      <attachid>99448</attachid>
    <who name="Alexandre Mazari">scaroo</who>
    <bug_when>2011-07-01 02:55:18 -0700</bug_when>
    <thetext>Created attachment 99448
Patch

Added ChangeLog entry</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465892</commentid>
    <comment_count>4</comment_count>
      <attachid>99448</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-09-12 15:58:20 -0700</bug_when>
    <thetext>Comment on attachment 99448
Patch

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

We need a test.

&gt; Source/WebCore/bindings/js/JSDesktopNotificationsCustom.cpp:63
&gt; +        RefPtr&lt;JSCustomVoidCallback&gt; callback = JSCustomVoidCallback::create(exec-&gt;argument(0).getObject(), toJSDOMGlobalObject(static_cast&lt;Document*&gt;(context), exec));

I mgiht have used a local object for the global object to make this line more readable, but this is also OK.

&gt; Source/WebCore/bindings/js/JSDesktopNotificationsCustom.cpp:66
&gt; +      impl()-&gt;requestPermission(0);

Indent.  Sad that check-webkit-style doesn&apos;t notice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472194</commentid>
    <comment_count>5</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-09-23 06:13:58 -0700</bug_when>
    <thetext>Ping Alex?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473770</commentid>
    <comment_count>6</comment_count>
      <attachid>108807</attachid>
    <who name="Alexandre Mazari">scaroo</who>
    <bug_when>2011-09-27 01:06:31 -0700</bug_when>
    <thetext>Created attachment 108807
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485350</commentid>
    <comment_count>7</comment_count>
      <attachid>108807</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-10-17 12:06:10 -0700</bug_when>
    <thetext>Comment on attachment 108807
Patch

Why no test case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485355</commentid>
    <comment_count>8</comment_count>
      <attachid>108807</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-10-17 12:08:34 -0700</bug_when>
    <thetext>Comment on attachment 108807
Patch

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

review- because of the lack of a test case

&gt; Source/WebCore/bindings/js/JSDesktopNotificationsCustom.cpp:68
&gt; +    if (exec-&gt;argument(0).isObject()) {
&gt; +        JSDOMGlobalObject* globalObject = toJSDOMGlobalObject(static_cast&lt;Document*&gt;(context), exec);
&gt; +        RefPtr&lt;JSCustomVoidCallback&gt; callback = JSCustomVoidCallback::create(exec-&gt;argument(0).getObject(), globalObject);
&gt;  
&gt; -    PassRefPtr&lt;JSCustomVoidCallback&gt; callback = JSCustomVoidCallback::create(exec-&gt;argument(0).getObject(), toJSDOMGlobalObject(static_cast&lt;Document*&gt;(context), exec));
&gt; +        impl()-&gt;requestPermission(callback.release());
&gt; +    } else
&gt; +        impl()-&gt;requestPermission(0);

It was good that you fixed the mistake where there was an local variable of type PassRefPtr.

But I’m not sure why you added a local variable for the global object. I personally don’t think it enhances readability.

Also, if we declared the callback local variable outside of the if statement we would not need an else.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>489941</commentid>
    <comment_count>9</comment_count>
    <who name="Alexandre Mazari">scaroo</who>
    <bug_when>2011-10-25 02:53:38 -0700</bug_when>
    <thetext>Eric, Darin, Phillipe,

thanks for your reviews and pardon my late answer, I was dragged out by other stuffs.

I did not include a specific test for that patch because checkPermission is already called without argument within the existing &apos;fast/notifications/notifications-document-close-crash.html&apos; test.
Is a specific test case required, then ?


eric: &quot;I mgiht have used a local object for the global object to make this line more readable, but this is also OK.&quot;
darin: &quot;But I’m not sure why you added a local variable for the global object. I personally don’t think it enhances readability.&quot;

Little puzzled here :)


darin: &quot;Also, if we declared the callback local variable outside of the if statement we would not need an else.&quot;

I remember trying that, but compiler complained of a re-affectation of the RefPtr. Would something like the following match your comment:

JSCustomVoidCallback* callback = 0;
if (exec-&gt;argument(0).isObject()) {
   callback = JSCustomVoidCallback::create(exec-&gt;argument(0).getObject(),
			toJSDOMGlobalObject(static_cast&lt;Document*&gt;(context), exec)).release();
}
impl()-&gt;requestPermission(callback);

Again, thanks for having a look at it !</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491569</commentid>
    <comment_count>10</comment_count>
      <attachid>112681</attachid>
    <who name="Alexandre Mazari">scaroo</who>
    <bug_when>2011-10-27 07:54:01 -0700</bug_when>
    <thetext>Created attachment 112681
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491661</commentid>
    <comment_count>11</comment_count>
      <attachid>112681</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-10-27 10:06:57 -0700</bug_when>
    <thetext>Comment on attachment 112681
Patch

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

Where is the test case for this?

&gt; Source/WebCore/bindings/js/JSDesktopNotificationsCustom.cpp:62
&gt; +    // if a callback function is provided as first argument, convert the object

The word if should be capitalized here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491662</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-10-27 10:07:57 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; I did not include a specific test for that patch because checkPermission is already called without argument within the existing &apos;fast/notifications/notifications-document-close-crash.html&apos; test.
&gt; Is a specific test case required, then ?

Does the test case result change? If so, then the patch needs the new expected results. If not, then we need a new test case that shows the old bad behavior being replaced with new good behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499862</commentid>
    <comment_count>13</comment_count>
    <who name="Alexandre Mazari">scaroo</who>
    <bug_when>2011-11-10 06:47:48 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #9)
&gt; &gt; I did not include a specific test for that patch because checkPermission is already called without argument within the existing &apos;fast/notifications/notifications-document-close-crash.html&apos; test.
&gt; &gt; Is a specific test case required, then ?
&gt; 
&gt; Does the test case result change? 
Yep for the GTK port after applying #61140, that add html5 notifications support to the port, and #66477, that introduce the testing facilities.

&gt; If so, then the patch needs the new expected results.

The effect of this patch is only perciptible after apply the two mentionned patches. Should I fold this one with them ?
I isolated it because it is not port specific, so I am unsure about the eventuality.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522249</commentid>
    <comment_count>14</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-12-15 15:00:45 -0800</bug_when>
    <thetext>*** Bug 74433 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522250</commentid>
    <comment_count>15</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-12-15 15:01:59 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; *** Bug 74433 has been marked as a duplicate of this bug. ***

Could we also add the Optional parameter to IDL? Since this is custom, I assume adding that attribute does no harm, and it also makes it clearer what the expectation for that parameter is.

I think we should also have a different test, to make sure that an exception isn&apos;t thrown when we make the request with no callback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580128</commentid>
    <comment_count>16</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-03-15 21:51:56 -0700</bug_when>
    <thetext>&lt;rdar://problem/11059590&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580129</commentid>
    <comment_count>17</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2012-03-15 21:52:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/11061334&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686907</commentid>
    <comment_count>18</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-08-03 10:23:45 -0700</bug_when>
    <thetext>This bug apparently affects gmail.com&apos;s settings. When you go to the settings panel and click on the blue link &quot;Click here to enable desktop notifications&quot; it throws an exception because it makes this kind of call.

Oddly, when it auto-detects that desktop notifications are available, and show you a yellow banner on the main gmail screen, that link uses the currently supported form.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695277</commentid>
    <comment_count>19</comment_count>
      <attachid>112681</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-08-14 12:49:42 -0700</bug_when>
    <thetext>Comment on attachment 112681
Patch

Code change looks good. We also need a regression test case to go with it. Or an explanation of why a regression test is not possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724658</commentid>
    <comment_count>20</comment_count>
      <attachid>164947</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-09-20 11:01:37 -0700</bug_when>
    <thetext>Created attachment 164947
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737145</commentid>
    <comment_count>21</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-10-08 15:53:50 -0700</bug_when>
    <thetext>ping? still needs review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741632</commentid>
    <comment_count>22</comment_count>
      <attachid>164947</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-10-14 16:50:25 -0700</bug_when>
    <thetext>Comment on attachment 164947
Patch

Clearing flags on attachment: 164947

Committed r131280: &lt;http://trac.webkit.org/changeset/131280&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741633</commentid>
    <comment_count>23</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-10-14 16:50:28 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99061</attachid>
            <date>2011-06-29 02:52:17 -0700</date>
            <delta_ts>2011-07-01 02:54:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63615-20110629115215.patch</filename>
            <type>text/plain</type>
            <size>1196</size>
            <attacher name="Alexandre Mazari">scaroo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODk5MjIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRGVza3RvcE5vdGlmaWNhdGlvbnNDdXN0b20uY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNEZXNrdG9wTm90aWZpY2F0aW9uc0N1c3RvbS5jcHAKaW5kZXggMTZh
OTYyYzU2MjlhMzU5ZDVkYzdjZThlMjJiYWQ4NTA2NWU5MTJjZS4uZWVkZTNiNjU2ZTRjYzliOWQ0
NzFkZmNlZDA1NGUyYjY2ZThlZDZiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNEZXNrdG9wTm90aWZpY2F0aW9uc0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNEZXNrdG9wTm90aWZpY2F0aW9uc0N1c3RvbS5jcHAKQEAgLTU5LDEy
ICs1OSwxMiBAQCBKU1ZhbHVlIEpTTm90aWZpY2F0aW9uQ2VudGVyOjpyZXF1ZXN0UGVybWlzc2lv
bihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKGNvbnRleHQtPmlzV29ya2VyQ29udGV4dCgpKQog
ICAgICAgICByZXR1cm4gdGhyb3dTeW50YXhFcnJvcihleGVjKTsKIAotICAgIGlmICghZXhlYy0+
YXJndW1lbnQoMCkuaXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4
ZWMpOworICAgIGlmIChleGVjLT5hcmd1bWVudCgwKS5pc09iamVjdCgpKSB7CisgICAgICAgIFJl
ZlB0cjxKU0N1c3RvbVZvaWRDYWxsYmFjaz4gY2FsbGJhY2sgPSBKU0N1c3RvbVZvaWRDYWxsYmFj
azo6Y3JlYXRlKGV4ZWMtPmFyZ3VtZW50KDApLmdldE9iamVjdCgpLCB0b0pTRE9NR2xvYmFsT2Jq
ZWN0KHN0YXRpY19jYXN0PERvY3VtZW50Kj4oY29udGV4dCksIGV4ZWMpKTsKKyAgICAgICAgaW1w
bCgpLT5yZXF1ZXN0UGVybWlzc2lvbihjYWxsYmFjay5yZWxlYXNlKCkpOworICAgIH0gZWxzZQor
ICAgICAgaW1wbCgpLT5yZXF1ZXN0UGVybWlzc2lvbigwKTsKIAotICAgIFBhc3NSZWZQdHI8SlND
dXN0b21Wb2lkQ2FsbGJhY2s+IGNhbGxiYWNrID0gSlNDdXN0b21Wb2lkQ2FsbGJhY2s6OmNyZWF0
ZShleGVjLT5hcmd1bWVudCgwKS5nZXRPYmplY3QoKSwgdG9KU0RPTUdsb2JhbE9iamVjdChzdGF0
aWNfY2FzdDxEb2N1bWVudCo+KGNvbnRleHQpLCBleGVjKSk7Ci0KLSAgICBpbXBsKCktPnJlcXVl
c3RQZXJtaXNzaW9uKGNhbGxiYWNrKTsKICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99448</attachid>
            <date>2011-07-01 02:55:18 -0700</date>
            <delta_ts>2011-09-27 01:06:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63615-20110701115511.patch</filename>
            <type>text/plain</type>
            <size>1987</size>
            <attacher name="Alexandre Mazari">scaroo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTAyMTcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwYjRjZjg5NTVlYmFjNjFj
MzA4ZTI1MTA2OTI1YWU5ZjBiZjQwYjk1Li5iNDU0YTZiOWE3ZDVhZDUxZDJiNzU2ZGNhMjc1ZjRj
YjQ3MTk3MGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDctMDEgIEFsZXhh
bmRyZSBNYXphcmkgIDxhbWF6YXJpQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSB0aGUgSmF2YVNjcmlwdCBjYWxsYmFjayBh
cmd1bWVudCB0byBOb3RpZmljYXRpb25DZW50ZXI6OnJlcXVlc3RQZXJtaXNzaW9uIG9wdGlvbmFs
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM2MTUK
KworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRGVza3RvcE5vdGlmaWNhdGlvbnNDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNOb3RpZmljYXRpb25DZW50ZXI6OnJlcXVlc3RQZXJtaXNz
aW9uKTogZG8gbm90IHRocm93IGpzIGV4Y2VwdGlvbiB3aGVuIG5vIGNhbGxiYWNrIGlzIHByb3Zp
ZGVkLiBHaXZlIDAgYXMgYXJndW1lbnQgaW4gdGhhdCBjYXNlLgorCiAyMDExLTA2LTMwICBFdWdl
bmUgS2x5dWNobmlrb3YgIDxldXN0YXMuYnVnQGdtYWlsLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBQYXZlbCBGZWxkbWFuLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNEZXNrdG9wTm90aWZpY2F0aW9uc0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0Rlc2t0b3BOb3RpZmljYXRpb25zQ3VzdG9tLmNwcAppbmRleCAxNmE5NjJjNTYy
OWEzNTlkNWRjN2NlOGUyMmJhZDg1MDY1ZTkxMmNlLi5lZWRlM2I2NTZlNGNjOWI5ZDQ3MWRmY2Vk
MDU0ZTJiNjZlOGVkNmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0Rlc2t0b3BOb3RpZmljYXRpb25zQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0Rlc2t0b3BOb3RpZmljYXRpb25zQ3VzdG9tLmNwcApAQCAtNTksMTIgKzU5LDEy
IEBAIEpTVmFsdWUgSlNOb3RpZmljYXRpb25DZW50ZXI6OnJlcXVlc3RQZXJtaXNzaW9uKEV4ZWNT
dGF0ZSogZXhlYykKICAgICBpZiAoY29udGV4dC0+aXNXb3JrZXJDb250ZXh0KCkpCiAgICAgICAg
IHJldHVybiB0aHJvd1N5bnRheEVycm9yKGV4ZWMpOwogCi0gICAgaWYgKCFleGVjLT5hcmd1bWVu
dCgwKS5pc09iamVjdCgpKQotICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7Cisg
ICAgaWYgKGV4ZWMtPmFyZ3VtZW50KDApLmlzT2JqZWN0KCkpIHsKKyAgICAgICAgUmVmUHRyPEpT
Q3VzdG9tVm9pZENhbGxiYWNrPiBjYWxsYmFjayA9IEpTQ3VzdG9tVm9pZENhbGxiYWNrOjpjcmVh
dGUoZXhlYy0+YXJndW1lbnQoMCkuZ2V0T2JqZWN0KCksIHRvSlNET01HbG9iYWxPYmplY3Qoc3Rh
dGljX2Nhc3Q8RG9jdW1lbnQqPihjb250ZXh0KSwgZXhlYykpOworICAgICAgICBpbXBsKCktPnJl
cXVlc3RQZXJtaXNzaW9uKGNhbGxiYWNrLnJlbGVhc2UoKSk7CisgICAgfSBlbHNlCisgICAgICBp
bXBsKCktPnJlcXVlc3RQZXJtaXNzaW9uKDApOwogCi0gICAgUGFzc1JlZlB0cjxKU0N1c3RvbVZv
aWRDYWxsYmFjaz4gY2FsbGJhY2sgPSBKU0N1c3RvbVZvaWRDYWxsYmFjazo6Y3JlYXRlKGV4ZWMt
PmFyZ3VtZW50KDApLmdldE9iamVjdCgpLCB0b0pTRE9NR2xvYmFsT2JqZWN0KHN0YXRpY19jYXN0
PERvY3VtZW50Kj4oY29udGV4dCksIGV4ZWMpKTsKLQotICAgIGltcGwoKS0+cmVxdWVzdFBlcm1p
c3Npb24oY2FsbGJhY2spOwogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108807</attachid>
            <date>2011-09-27 01:06:31 -0700</date>
            <delta_ts>2011-10-27 07:53:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63615-20110927100629.patch</filename>
            <type>text/plain</type>
            <size>2092</size>
            <attacher name="Alexandre Mazari">scaroo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTYwNzgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0MjBjOTRkNjMyNThmYWRi
ZjhmNjEyZjk1ZTAwNjhkYmU5MzQ5MzFkLi40Y2MwNTE3OTE0ZTE1ZDI0MWVjMWRjY2E3MWUxYjM3
YmMwOTRhMWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDctMDEgIEFsZXhh
bmRyZSBNYXphcmkgIDxhbWF6YXJpQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSB0aGUgSmF2YVNjcmlwdCBjYWxsYmFjayBh
cmd1bWVudCB0byBOb3RpZmljYXRpb25DZW50ZXI6OnJlcXVlc3RQZXJtaXNzaW9uIG9wdGlvbmFs
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM2MTUK
KworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRGVza3RvcE5vdGlmaWNhdGlvbnNDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNOb3RpZmljYXRpb25DZW50ZXI6OnJlcXVlc3RQZXJtaXNz
aW9uKTogZG8gbm90IHRocm93IGpzIGV4Y2VwdGlvbiB3aGVuIG5vIGNhbGxiYWNrIGlzIHByb3Zp
ZGVkLiBHaXZlIDAgYXMgYXJndW1lbnQgaW4gdGhhdCBjYXNlLgorCiAyMDExLTA5LTI3ICBSYWtl
c2ggS04gIDxyYWtlc2gua25AbW90b3JvbGEuY29tPgogCiAgICAgICAgIDxpbnB1dD4gd2l0aCBh
dXRvZm9jdXMgZG9lc24ndCBsb3NlIGZvY3VzIHdoZW4gaXQgaGFzIGEgY2VydGFpbiBvbmJsdXIg
bGlzdGVuZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGVza3Rv
cE5vdGlmaWNhdGlvbnNDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
ZXNrdG9wTm90aWZpY2F0aW9uc0N1c3RvbS5jcHAKaW5kZXggMTZhOTYyYzU2MjlhMzU5ZDVkYzdj
ZThlMjJiYWQ4NTA2NWU5MTJjZS4uM2JhYTA5YjdmZGIxODRlZWJhOTE5NWU5OTViYzI5MWRlMjY3
NGFmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEZXNrdG9wTm90
aWZpY2F0aW9uc0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
ZXNrdG9wTm90aWZpY2F0aW9uc0N1c3RvbS5jcHAKQEAgLTU5LDEyICs1OSwxNCBAQCBKU1ZhbHVl
IEpTTm90aWZpY2F0aW9uQ2VudGVyOjpyZXF1ZXN0UGVybWlzc2lvbihFeGVjU3RhdGUqIGV4ZWMp
CiAgICAgaWYgKGNvbnRleHQtPmlzV29ya2VyQ29udGV4dCgpKQogICAgICAgICByZXR1cm4gdGhy
b3dTeW50YXhFcnJvcihleGVjKTsKIAotICAgIGlmICghZXhlYy0+YXJndW1lbnQoMCkuaXNPYmpl
Y3QoKSkKLSAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOworICAgIGlmIChleGVj
LT5hcmd1bWVudCgwKS5pc09iamVjdCgpKSB7CisgICAgICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QgPSB0b0pTRE9NR2xvYmFsT2JqZWN0KHN0YXRpY19jYXN0PERvY3VtZW50Kj4o
Y29udGV4dCksIGV4ZWMpOworICAgICAgICBSZWZQdHI8SlNDdXN0b21Wb2lkQ2FsbGJhY2s+IGNh
bGxiYWNrID0gSlNDdXN0b21Wb2lkQ2FsbGJhY2s6OmNyZWF0ZShleGVjLT5hcmd1bWVudCgwKS5n
ZXRPYmplY3QoKSwgZ2xvYmFsT2JqZWN0KTsKIAotICAgIFBhc3NSZWZQdHI8SlNDdXN0b21Wb2lk
Q2FsbGJhY2s+IGNhbGxiYWNrID0gSlNDdXN0b21Wb2lkQ2FsbGJhY2s6OmNyZWF0ZShleGVjLT5h
cmd1bWVudCgwKS5nZXRPYmplY3QoKSwgdG9KU0RPTUdsb2JhbE9iamVjdChzdGF0aWNfY2FzdDxE
b2N1bWVudCo+KGNvbnRleHQpLCBleGVjKSk7CisgICAgICAgIGltcGwoKS0+cmVxdWVzdFBlcm1p
c3Npb24oY2FsbGJhY2sucmVsZWFzZSgpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgaW1wbCgpLT5y
ZXF1ZXN0UGVybWlzc2lvbigwKTsKIAotICAgIGltcGwoKS0+cmVxdWVzdFBlcm1pc3Npb24oY2Fs
bGJhY2spOwogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112681</attachid>
            <date>2011-10-27 07:54:01 -0700</date>
            <delta_ts>2012-09-20 11:01:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63615-20111027165400.patch</filename>
            <type>text/plain</type>
            <size>2178</size>
            <attacher name="Alexandre Mazari">scaroo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTgzMjcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5NmRlNWM5NTQ0YTg0Mzk2
MWFhYTY3ZmNmYmJiOGVjYjcyM2U0M2Q3Li5mNGZlZmFjMDQwY2E4MDljMzZmMWM2YjNlYzk4MTJm
ZWRmZjUwNGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDctMDEgIEFsZXhh
bmRyZSBNYXphcmkgIDxhbWF6YXJpQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSB0aGUgSmF2YVNjcmlwdCBjYWxsYmFjayBh
cmd1bWVudCB0byBOb3RpZmljYXRpb25DZW50ZXI6OnJlcXVlc3RQZXJtaXNzaW9uIG9wdGlvbmFs
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM2MTUK
KworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRGVza3RvcE5vdGlmaWNhdGlvbnNDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNOb3RpZmljYXRpb25DZW50ZXI6OnJlcXVlc3RQZXJtaXNz
aW9uKTogZG8gbm90IHRocm93IGpzIGV4Y2VwdGlvbiB3aGVuIG5vIGNhbGxiYWNrIGlzIHByb3Zp
ZGVkLiBHaXZlIDAgYXMgYXJndW1lbnQgaW4gdGhhdCBjYXNlLgorCiAyMDExLTEwLTI0ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9y
OiBwcmludCBleHBpcmVkIG1lc3NhZ2UgY291bnQgYmVmb3JlIHJlbWFpbmluZyBtZXNzYWdlcy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGVza3RvcE5vdGlmaWNh
dGlvbnNDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEZXNrdG9wTm90
aWZpY2F0aW9uc0N1c3RvbS5jcHAKaW5kZXggMTZhOTYyYzU2MjlhMzU5ZDVkYzdjZThlMjJiYWQ4
NTA2NWU5MTJjZS4uZGI1YzE2YWYxYmYwYWY4NTc2MmU0MzUzZmZmYWIyNzQxOTc4MGNmOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEZXNrdG9wTm90aWZpY2F0aW9u
c0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEZXNrdG9wTm90
aWZpY2F0aW9uc0N1c3RvbS5jcHAKQEAgLTU5LDEyICs1OSwxNiBAQCBKU1ZhbHVlIEpTTm90aWZp
Y2F0aW9uQ2VudGVyOjpyZXF1ZXN0UGVybWlzc2lvbihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYg
KGNvbnRleHQtPmlzV29ya2VyQ29udGV4dCgpKQogICAgICAgICByZXR1cm4gdGhyb3dTeW50YXhF
cnJvcihleGVjKTsKIAotICAgIGlmICghZXhlYy0+YXJndW1lbnQoMCkuaXNPYmplY3QoKSkKLSAg
ICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOworICAgIC8vIGlmIGEgY2FsbGJhY2sg
ZnVuY3Rpb24gaXMgcHJvdmlkZWQgYXMgZmlyc3QgYXJndW1lbnQsIGNvbnZlcnQgdGhlIG9iamVj
dAorICAgIC8vIHRvIGEgVm9pZENhbGxiYWNrIHRvIGJlIGludm9rZWQgbGF0ZXIuCisgICAgUmVm
UHRyPEpTQ3VzdG9tVm9pZENhbGxiYWNrPiBjYWxsYmFjazsKKyAgICBpZiAoZXhlYy0+YXJndW1l
bnQoMCkuaXNPYmplY3QoKSkgeworICAgICAgICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0ID0gdG9KU0RPTUdsb2JhbE9iamVjdChzdGF0aWNfY2FzdDxEb2N1bWVudCo+KGNvbnRleHQp
LCBleGVjKTsKKyAgICAgICAgY2FsbGJhY2sgPSBKU0N1c3RvbVZvaWRDYWxsYmFjazo6Y3JlYXRl
KGV4ZWMtPmFyZ3VtZW50KDApLmdldE9iamVjdCgpLCBnbG9iYWxPYmplY3QpOworICAgIH0KIAot
ICAgIFBhc3NSZWZQdHI8SlNDdXN0b21Wb2lkQ2FsbGJhY2s+IGNhbGxiYWNrID0gSlNDdXN0b21W
b2lkQ2FsbGJhY2s6OmNyZWF0ZShleGVjLT5hcmd1bWVudCgwKS5nZXRPYmplY3QoKSwgdG9KU0RP
TUdsb2JhbE9iamVjdChzdGF0aWNfY2FzdDxEb2N1bWVudCo+KGNvbnRleHQpLCBleGVjKSk7Cisg
ICAgaW1wbCgpLT5yZXF1ZXN0UGVybWlzc2lvbihjYWxsYmFjay5yZWxlYXNlKCkpOwogCi0gICAg
aW1wbCgpLT5yZXF1ZXN0UGVybWlzc2lvbihjYWxsYmFjayk7CiAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164947</attachid>
            <date>2012-09-20 11:01:37 -0700</date>
            <delta_ts>2012-10-14 16:50:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63615-20120920110102.patch</filename>
            <type>text/plain</type>
            <size>19773</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5MTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGE2ZGMwYzUyYTQ5N2Rh
MTU4MmM3ZTg3Nzg2N2Y3MmIwNDM4NDg5OS4uMDk3Y2I1YTIzNWJmNDg4YzhjNWJlNmJiN2ZhMWZl
NTc3OTAwZGM5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTA5LTE5ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBBbGxvdyBub3RpZmljYXRpb24gb3Jp
Z2luIHBlcm1pc3Npb24gcmVxdWVzdCB3aGVuIG5vIGpzIGNhbGxiYWNrIGlzIHByb3ZpZGVkCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzYxNQorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMTEwNTk1OTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW5zdGVhZCBvZiB0aHJvd2luZyBhIHR5cGUgZXJyb3Ig
d2hlbiBubyBjYWxsYmFjayBpcyBwcm92aWRlZCwgd2UgcGFzcyBhIG51bGwgY2FsbGJhY2suCisK
KyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL2xlZ2FjeS9yZXF1ZXN0LW5v
LWNhbGxiYWNrLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRGVza3RvcE5vdGlmaWNh
dGlvbnNDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNOb3RpZmljYXRpb25DZW50ZXI6
OnJlcXVlc3RQZXJtaXNzaW9uKToKKwogMjAxMi0wOS0yMCAgSm9hbm1hcmllIERpZ2dzICA8amRp
Z2dzQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gQ29udHJvbHNQYW5lbCBzdHJpbmcgaXMg
bm90IGxvY2FsaXplZCBpbiBMb2NhbGl6ZWRTdHJpbmdzR3RrCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXgg
ZmNlYzZjNmNiNjk2NjY3OTA4Yjk1YmZhNThlMDMyMDJkZjhjYzJhNC4uZGIzMjJhNGY2ZDkyNTdh
MjkzYjA1MmU4M2QxNDQ2ZjE2NjU5NTY2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIw
IEBACisyMDEyLTA5LTE5ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBB
bGxvdyBub3RpZmljYXRpb24gb3JpZ2luIHBlcm1pc3Npb24gcmVxdWVzdCB3aGVuIG5vIGpzIGNh
bGxiYWNrIGlzIHByb3ZpZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02MzYxNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTEwNTk1OTA+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIGEg
Ym9vbGVhbiB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgcmVxdWVzdCB3YXMgdXNpbmcgdGhlIGxl
Z2FjeSBvciBzdGFuZGFyZCBBUEkuIFRoaXMgd2F5LAorICAgICAgICB3ZSBkbyBub3QgZmFsbCB0
aHJvdWdoIHRvIGNhbGxpbmcgdGhlIHN0YW5kYXJkIEFQSSdzIGNhbGxiYWNrIGlmIHRoZSBsZWdh
Y3kgQVBJJ3MgY2FsbGJhY2sgaXMgbnVsbC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
Yk5vdGlmaWNhdGlvbkNsaWVudC5tbToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoLVtX
ZWJOb3RpZmljYXRpb25Qb2xpY3lMaXN0ZW5lciBpbml0V2l0aFZvaWRDYWxsYmFjazpdKToKKyAg
ICAgICAgKC1bV2ViTm90aWZpY2F0aW9uUG9saWN5TGlzdGVuZXIgYWxsb3ddKToKKyAgICAgICAg
KC1bV2ViTm90aWZpY2F0aW9uUG9saWN5TGlzdGVuZXIgZGVueV0pOgorCiAyMDEyLTA5LTE5ICBE
YW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViS2l0L21hYyBwYXJ0
IG9mIGFkZGluZyBhIHNldHRpbmcgYW5kIEFQSSBmb3IgZGlzYWJsaW5nIHNjcmVlbiBmb250IHN1
YnN0aXR1dGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDg4YTUyYTJmYjJhYjBjZTNhNWM5OTQ1OWZmMWI0Mzhl
MTYwMWVjNjguLmEwNDg1NjM2ZTI4MjdhNDUyYWJkOGQ4NDA2ZGQ0Y2Y5ODg2YTM0YjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0wOS0xOSAgSm9uIExlZSAgPGpvbmxlZUBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWxsb3cgbm90aWZpY2F0aW9uIG9yaWdpbiBwZXJtaXNzaW9uIHJl
cXVlc3Qgd2hlbiBubyBqcyBjYWxsYmFjayBpcyBwcm92aWRlZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM2MTUKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzExMDU5NTkwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE51bGwgY2hlY2tzIGFscmVhZHkgZXhpc3QgZm9yIGJvdGggc3RhbmRhcmQgYW5kIGxl
Z2FjeSBBUEkgY2FsbGJhY2tzLCBzbyBubyBjaGFuZ2VzIGFyZSBuZWVkZWQgaGVyZQorICAgICAg
ICBsaWtlIHRoZXJlIGFyZSBpbiBXZWJLaXQgMS4gVGhlIGNoZWNrcyBleGlzdGVkIGJlY2F1c2Ug
dGhlIGNhbGxiYWNrcyBhcmUgaGVsZCBpbiBhIGhhc2ggbWFwIHVzZWQgdG8ga2VlcAorICAgICAg
ICB0cmFjayBvZiBwZW5kaW5nIHJlcXVlc3RzLgorCisgICAgICAgIEFsc28sIGFkZCBhIGNoZWNr
IGZvciBhIG51bGwgY2FsbGJhY2sgd2hlbiBzaG9ydCBjaXJjdWl0aW5nLgorCisgICAgICAgICog
V2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcjo6c3RhcnRSZXF1ZXN0KToKKwogMjAxMi0wOS0xNyAgSm9uIExlZSAgPGpvbmxlZUBh
cHBsZS5jb20+CiAKICAgICAgICAgU2FmYXJpIDYgbm90aWZpY2F0aW9ucycgb25jbGljayBoYW5k
bGVycyBjYW4ndCBjYWxsIHdpbmRvdy5vcGVuKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRGVza3RvcE5vdGlmaWNhdGlvbnNDdXN0b20uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNEZXNrdG9wTm90aWZpY2F0aW9uc0N1c3RvbS5jcHAKaW5kZXgg
OWY0MDg1MDAzNDFjMzExZmRiNDU0ZTkwNGMzYmIxMmUyYmYxNzc1ZC4uMTMyODM4YWExZDIzNDgy
YjE3YjU0YmUxZTI4OGExZDc0NTRjNmE5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNEZXNrdG9wTm90aWZpY2F0aW9uc0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNEZXNrdG9wTm90aWZpY2F0aW9uc0N1c3RvbS5jcHAKQEAgLTU4
LDEwICs1OCwxNCBAQCBKU1ZhbHVlIEpTTm90aWZpY2F0aW9uQ2VudGVyOjpyZXF1ZXN0UGVybWlz
c2lvbihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKGNvbnRleHQtPmlzV29ya2VyQ29udGV4dCgp
KQogICAgICAgICByZXR1cm4gdGhyb3dTeW50YXhFcnJvcihleGVjKTsKIAotICAgIGlmICghZXhl
Yy0+YXJndW1lbnQoMCkuaXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9y
KGV4ZWMpOwotCi0gICAgaW1wbCgpLT5yZXF1ZXN0UGVybWlzc2lvbihKU1ZvaWRDYWxsYmFjazo6
Y3JlYXRlKGV4ZWMtPmFyZ3VtZW50KDApLmdldE9iamVjdCgpLCB0b0pTRE9NR2xvYmFsT2JqZWN0
KHN0YXRpY19jYXN0PERvY3VtZW50Kj4oY29udGV4dCksIGV4ZWMpKSk7CisgICAgLy8gSWYgYSBj
YWxsYmFjayBmdW5jdGlvbiBpcyBwcm92aWRlZCBhcyBmaXJzdCBhcmd1bWVudCwgY29udmVydCB0
byBhIFZvaWRDYWxsYmFjay4KKyAgICBSZWZQdHI8SlNWb2lkQ2FsbGJhY2s+IGNhbGxiYWNrOwor
ICAgIGlmIChleGVjLT5hcmd1bWVudCgwKS5pc09iamVjdCgpKSB7CisgICAgICAgIGNhbGxiYWNr
ID0gSlNWb2lkQ2FsbGJhY2s6OmNyZWF0ZShleGVjLT5hcmd1bWVudCgwKS5nZXRPYmplY3QoKSwg
dG9KU0RPTUdsb2JhbE9iamVjdChzdGF0aWNfY2FzdDxEb2N1bWVudCo+KGNvbnRleHQpLCBleGVj
KSk7CisgICAgICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOworICAgIH0KKyAgICBpbXBsKCktPnJlcXVlc3RQZXJtaXNzaW9uKGNh
bGxiYWNrLnJlbGVhc2UoKSk7CiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNs
aWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlv
bkNsaWVudC5tbQppbmRleCA4NGE5ZDZhY2YwNGZhNzlhZGI0YzExZTM1MzMwMDI3OTEyMmUyZTlh
Li5mNmEwMzFjZmExNmNlMmI3Yjk5N2Y3MjdiY2IxZDFhMWRjYTZjNmY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQubW0K
KysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xp
ZW50Lm1tCkBAIC01NCw2ICs1NCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogI2VuZGlm
CiAjaWYgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQogICAgIFJlZlB0cjxWb2lkQ2FsbGJh
Y2s+IF92b2lkQ2FsbGJhY2s7CisgICAgYm9vbCBfaXNMZWdhY3lSZXF1ZXN0OwogI2VuZGlmCiB9
CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCkBAIC0yNTIsNyArMjUzLDcgQEAgdWludDY0X3Qg
V2ViTm90aWZpY2F0aW9uQ2xpZW50Ojpub3RpZmljYXRpb25JREZvclRlc3RpbmcoV2ViQ29yZTo6
Tm90aWZpY2F0aW9uKgogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAgICBy
ZXR1cm4gbmlsOwogCi0gICAgQVNTRVJUKGNhbGxiYWNrKTsKKyAgICBfaXNMZWdhY3lSZXF1ZXN0
ID0gdHJ1ZTsKICAgICBfdm9pZENhbGxiYWNrID0gY2FsbGJhY2s7CiAgICAgcmV0dXJuIHNlbGY7
CiB9CkBAIC0yNjEsOCArMjYyLDkgQEAgdWludDY0X3QgV2ViTm90aWZpY2F0aW9uQ2xpZW50Ojpu
b3RpZmljYXRpb25JREZvclRlc3RpbmcoV2ViQ29yZTo6Tm90aWZpY2F0aW9uKgogLSAodm9pZClh
bGxvdwogewogI2lmIEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKLSAgICBpZiAoX3ZvaWRD
YWxsYmFjaykgewotICAgICAgICBfdm9pZENhbGxiYWNrLT5oYW5kbGVFdmVudCgpOworICAgIGlm
IChfaXNMZWdhY3lSZXF1ZXN0KSB7CisgICAgICAgIGlmIChfdm9pZENhbGxiYWNrKQorICAgICAg
ICAgICAgX3ZvaWRDYWxsYmFjay0+aGFuZGxlRXZlbnQoKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KICNlbmRpZgpAQCAtMjc0LDggKzI3Niw5IEBAIHVpbnQ2NF90IFdlYk5vdGlmaWNhdGlvbkNs
aWVudDo6bm90aWZpY2F0aW9uSURGb3JUZXN0aW5nKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbioKIC0g
KHZvaWQpZGVueQogewogI2lmIEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKLSAgICBpZiAo
X3ZvaWRDYWxsYmFjaykgewotICAgICAgICBfdm9pZENhbGxiYWNrLT5oYW5kbGVFdmVudCgpOwor
ICAgIGlmIChfaXNMZWdhY3lSZXF1ZXN0KSB7CisgICAgICAgIGlmIChfdm9pZENhbGxiYWNrKQor
ICAgICAgICAgICAgX3ZvaWRDYWxsYmFjay0+aGFuZGxlRXZlbnQoKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9O
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmNwcAppbmRleCA0NGI5N2ViNGUyMjk1YTAwNGJlNzA1MmFjNDdh
OWY0ZTZhOGZhOTFkLi5jNzc4OGFlMGY0Y2ZkMGJkZDgzNmI3YjYyZGQ4YTIwYTU3MmI1YjU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyLmNwcApAQCAtODQsNyArODQsOCBAQCB2b2lkIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlcjo6c3RhcnRSZXF1ZXN0KFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sCiB7CiAgICAg
Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIHBlcm1pc3Npb24gPSBwZXJtaXNzaW9uTGV2
ZWwob3JpZ2luKTsKICAgICBpZiAocGVybWlzc2lvbiAhPSBOb3RpZmljYXRpb25DbGllbnQ6OlBl
cm1pc3Npb25Ob3RBbGxvd2VkKSB7Ci0gICAgICAgIGNhbGxiYWNrLT5oYW5kbGVFdmVudCgpOwor
ICAgICAgICBpZiAoY2FsbGJhY2spCisgICAgICAgICAgICBjYWxsYmFjay0+aGFuZGxlRXZlbnQo
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmMzNlNmVkMGM1ZjFmY2FkNGY2OWMwNDkxY2Vh
YmFhMTJkNTZjN2ViLi4yNDJlNjFjOGI1YWI0MmU1MDEwYzFjMzEzZWYxZWIyYzlmYWU1ZjJiIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjEgQEAKKzIwMTItMDktMTkgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAg
ICAgIEFsbG93IG5vdGlmaWNhdGlvbiBvcmlnaW4gcGVybWlzc2lvbiByZXF1ZXN0IHdoZW4gbm8g
anMgY2FsbGJhY2sgaXMgcHJvdmlkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTYzNjE1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMTA1OTU5MD4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZWFjaCBE
UlQgdG8gbG9vayBhdCB0aGUgZXhpc3RpbmcgZW50cmllcyBpbiB0aGUgcGVybWlzc2lvbiBoYXNo
IG1hcCB3aGVuIHBlcm1pc3Npb24gaXMgcmVxdWVzdGVkLgorCisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvbWFjL01vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRlci5oOiBFeHBvc2UgcG9saWN5Rm9y
T3JpZ2luLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9Nb2NrV2ViTm90aWZpY2F0aW9u
UHJvdmlkZXIubW06CisgICAgICAgICgtW01vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRlciBzZXRX
ZWJOb3RpZmljYXRpb25PcmlnaW46cGVybWlzc2lvbjpdKToKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9tYWMvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bVUlEZWxlZ2F0ZSB3ZWJWaWV3OmRl
Y2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblJlcXVlc3RGcm9tT3JpZ2luOmxpc3RlbmVyOl0pOiBM
b29rIGF0IHdoZXRoZXIgYQorICAgICAgICBwb2xpY3kgZm9yIHRoZSBvcmlnaW4gYWxyZWFkeSBl
eGlzdHMuIElmIHNvLCBhY2NlcHQgb3IgZGVueSB0aGUgcmVxdWVzdCBhcyBhcHByb3ByaWF0ZS4g
T3RoZXJ3aXNlLAorICAgICAgICBhY2NlcHQgYnkgZGVmYXVsdC4KKwogMjAxMi0wOS0yMCAgU3Rl
cGhlbiBDaGVubmV5ICA8c2NoZW5uZXlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1
bV0gRFJUIGRvZXMgbm90IHN1cHBvcnQgLS1kdW1wLWFsbC1waXhlbHMgZmxhZwpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL01vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRlci5o
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL01vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRlci5o
CmluZGV4IGQ0MDYzYjgxYTY1NjVhNzM0ZDY5ZGEyN2VhZjdhN2ZlY2QyZWZlZDYuLjI5M2VhNDlk
MGYyYzFhYzVlNThjMDEwNjAzNmY0Y2IxOGU2NmEzNWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9Nb2NrV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmgKQEAgLTQ4LDcg
KzQ4LDggQEAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBXZWJWaWV3ICo+IE5vdGlmaWNhdGlv
blZpZXdNYXA7CiArIChNb2NrV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIgKilzaGFyZWQ7CiAKIC0g
KHZvaWQpc2ltdWxhdGVXZWJOb3RpZmljYXRpb25DbGljazoodWludDY0X3Qpbm90aWZpY2F0aW9u
SUQ7Ci0tICh2b2lkKXNldFdlYk5vdGlmaWNhdGlvbk9yaWdpbjooTlNTdHJpbmcqKW9yaWdpbiBw
ZXJtaXNzaW9uOihCT09MKWFsbG93ZWQ7CistICh2b2lkKXNldFdlYk5vdGlmaWNhdGlvbk9yaWdp
bjooTlNTdHJpbmcgKilvcmlnaW4gcGVybWlzc2lvbjooQk9PTClhbGxvd2VkOworLSAoV2ViTm90
aWZpY2F0aW9uUGVybWlzc2lvbilwb2xpY3lGb3JPcmlnaW46KFdlYlNlY3VyaXR5T3JpZ2luICop
b3JpZ2luOwogLSAodm9pZClyZW1vdmVBbGxXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uczsKIAog
LSAodm9pZClyZXNldDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9Nb2Nr
V2ViTm90aWZpY2F0aW9uUHJvdmlkZXIubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTW9j
a1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLm1tCmluZGV4IDJiNjkzZmRhMmViOWIxNzg2MzgzNjg5
NjJiNzBjNDJiYTg3NzliOGIuLjQxYTE3OWM5ZjBjOGZmYzc2M2M3Mjk0OTIyMWJhY2I2M2YwZTAx
NTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9Nb2NrV2ViTm90aWZpY2F0
aW9uUHJvdmlkZXIubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL01vY2tXZWJOb3Rp
ZmljYXRpb25Qcm92aWRlci5tbQpAQCAtMTI5LDcgKzEyOSw3IEBACiAgICAgcmV0dXJuIFdlYk5v
dGlmaWNhdGlvblBlcm1pc3Npb25EZW5pZWQ7CiB9CiAKLS0gKHZvaWQpc2V0V2ViTm90aWZpY2F0
aW9uT3JpZ2luOihOU1N0cmluZyopb3JpZ2luIHBlcm1pc3Npb246KEJPT0wpYWxsb3dlZAorLSAo
dm9pZClzZXRXZWJOb3RpZmljYXRpb25PcmlnaW46KE5TU3RyaW5nICopb3JpZ2luIHBlcm1pc3Np
b246KEJPT0wpYWxsb3dlZAogewogICAgIFtfcGVybWlzc2lvbnMuZ2V0KCkgc2V0T2JqZWN0OltO
U051bWJlciBudW1iZXJXaXRoQm9vbDphbGxvd2VkXSBmb3JLZXk6b3JpZ2luXTsKIH0KZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9VSURlbGVnYXRlLm1tIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW0KaW5kZXggNTgwYjBkNjQ5MjE4Y2Q4N2JjODY3
MWJlYWEyOGE2NjljMTg4OTI5OS4uMDBhZWFmM2YxM2VlOGQ2ZjA2ZTBiNWMyNTkzMjU0MDY3NGM3
NWJiZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW0K
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW0KQEAgLTI5MSw4ICsy
OTEsMTkgQEAgRHVtcFJlbmRlclRyZWVEcmFnZ2luZ0luZm8gKmRyYWdnaW5nSW5mbyA9IG5pbDsK
IAogLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOb3Rp
ZmljYXRpb25SZXF1ZXN0RnJvbU9yaWdpbjooV2ViU2VjdXJpdHlPcmlnaW4gKilvcmlnaW4gbGlz
dGVuZXI6KGlkPFdlYkFsbG93RGVueVBvbGljeUxpc3RlbmVyPilsaXN0ZW5lcgogewotICAgIFso
TW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyICopW3dlYlZpZXcgX25vdGlmaWNhdGlvblByb3Zp
ZGVyXSBzZXRXZWJOb3RpZmljYXRpb25PcmlnaW46W29yaWdpbiBzdHJpbmdWYWx1ZV0gcGVybWlz
c2lvbjpZRVNdOwotICAgIFtsaXN0ZW5lciBhbGxvd107CisgICAgTW9ja1dlYk5vdGlmaWNhdGlv
blByb3ZpZGVyICpwcm92aWRlciA9IChNb2NrV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIgKilbd2Vi
VmlldyBfbm90aWZpY2F0aW9uUHJvdmlkZXJdOworICAgIHN3aXRjaCAoW3Byb3ZpZGVyIHBvbGlj
eUZvck9yaWdpbjpvcmlnaW5dKSB7CisgICAgY2FzZSBXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9u
QWxsb3dlZDoKKyAgICAgICAgW2xpc3RlbmVyIGFsbG93XTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVuaWVkOgorICAgICAgICBbbGlzdGVuZXIg
ZGVueV07CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViTm90aWZpY2F0aW9uUGVybWlzc2lv
bk5vdEFsbG93ZWQ6CisgICAgICAgIFtwcm92aWRlciBzZXRXZWJOb3RpZmljYXRpb25PcmlnaW46
W29yaWdpbiBzdHJpbmdWYWx1ZV0gcGVybWlzc2lvbjpZRVNdOworICAgICAgICBbbGlzdGVuZXIg
YWxsb3ddOworICAgICAgICBicmVhazsKKyAgICB9CiB9CiAKIC0gKHZvaWQpZGVhbGxvYwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDM4NGQ1M2RhY2ZhZDQzOTY4NjgwZWVlZDMwMDQ1MzMzYjc1YWI4NDcuLmYyZGQzNjIzNDc1
N2M0OWZmOTBhY2EyMDdhY2MzYzA5NTgxY2RmYTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAx
Mi0wOS0xOSAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgbm90
aWZpY2F0aW9uIG9yaWdpbiBwZXJtaXNzaW9uIHJlcXVlc3Qgd2hlbiBubyBqcyBjYWxsYmFjayBp
cyBwcm92aWRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjM2MTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzExMDU5NTkwPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9ub3RpZmlj
YXRpb25zL2xlZ2FjeS9yZXF1ZXN0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L25vdGlmaWNhdGlvbnMvbGVnYWN5L3JlcXVlc3Qtbm8tY2FsbGJhY2stZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvbGVnYWN5L3JlcXVlc3Qt
bm8tY2FsbGJhY2suaHRtbDogQ2FsbHMgd2Via2l0Tm90aWZpY2F0aW9ucy5yZXF1ZXN0UGVybWlz
c2lvbigpCisgICAgICAgIHdpdGggbm8gY2FsbGJhY2ssIHdpdGggZGVmYXVsdCBhbmQgZGVuaWVk
IHBlcm1pc3Npb24uIEZvciBXZWJLaXQyLCBpZiB0aGUgcGVybWlzc2lvbiBpcyBub3QgZGVmYXVs
dCwgaXQKKyAgICAgICAgd2lsbCBzaG9ydCBjaXJjdWl0IGluc3RlYWQgb2YgY3JlYXRpbmcgYSBw
ZW5kaW5nIHJlcXVlc3QuCisgICAgICAgICogaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL2xlZ2Fj
eS9yZXF1ZXN0Lmh0bWw6IFRoZSB0ZXN0IG1pc3Rha2VubHkgdXNlcyB0aGUgc3RhbmRhcmQgQVBJ
IGluc3RlYWQgb2YKKyAgICAgICAgdGhlIGxlZ2FjeSBBUEkuIFRoZSByZXN1bHRzIGRvbid0IGNo
YW5nZSwgYnV0IHdlIG1ha2Ugc3VyZSB0aGF0IHdlIGNhbGwKKyAgICAgICAgd2Via2l0Tm90aWZp
Y2F0aW9ucy5yZXF1ZXN0UGVybWlzc2lvbigpIHdpdGggYSBjYWxsYmFjayB0byB0ZXN0IGZ1bGwg
Y292ZXJhZ2Ugb2YgdGhlIGxlZ2FjeSBBUEkuIFdlIGFsc28KKyAgICAgICAgZXhwYW5kIHRoZSB0
ZXN0IHRvIGNvdmVyIGJvdGggZGVmYXVsdCBhbmQgZGVuaWVkIHBlcm1pc3Npb25zLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9yZXF1ZXN0LWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvcmVxdWVzdC5odG1sOiBFeHBhbmQgdGVzdCB0
byBjb3ZlciBib3RoIGRlZmF1bHQgYW5kIGRlbmllZCBwZXJtaXNzaW9ucy4KKwogMjAxMi0wOS0y
MCAgSm9hbm1hcmllIERpZ2dzICA8amRpZ2dzQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10g
Q29udHJvbHNQYW5lbCBzdHJpbmcgaXMgbm90IGxvY2FsaXplZCBpbiBMb2NhbGl6ZWRTdHJpbmdz
R3RrCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvbGVn
YWN5L3JlcXVlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmlj
YXRpb25zL2xlZ2FjeS9yZXF1ZXN0LWV4cGVjdGVkLnR4dAppbmRleCBkNjlmNDQ2MTMzNmU0YjZi
ODBhMDNiZmIyYjg3NDk5Mjc5M2E2OTg4Li44MTIwYTg2ZmNiNTkxNGYzMTAzMWNkYjQzYTU2YzU3
ZTE3Mjg2NjVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlv
bnMvbGVnYWN5L3JlcXVlc3QtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbm90aWZpY2F0aW9ucy9sZWdhY3kvcmVxdWVzdC1leHBlY3RlZC50eHQKQEAgLTMsOCArMywx
MSBAQCBUaGlzIHRlc3QgY2hlY2tzIHRoYXQgYSByZXF1ZXN0IGZvciBwZXJtaXNzaW9uIGlzIG1h
ZGUuCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAorUmVxdWVzdGluZyBwZXJtaXNzaW9u
IHdpdGggZGVmYXVsdCBwZXJtaXNzaW9uCiBQQVNTIHdpbmRvdy53ZWJraXROb3RpZmljYXRpb25z
LmNoZWNrUGVybWlzc2lvbigpIGlzIDEKIFBBU1Mgd2luZG93LndlYmtpdE5vdGlmaWNhdGlvbnMu
Y2hlY2tQZXJtaXNzaW9uKCkgaXMgMAorUmVxdWVzdGluZyBwZXJtaXNzaW9uIHdpdGggbm9uLWRl
ZmF1bHQgcGVybWlzc2lvbgorUEFTUyB3aW5kb3cud2Via2l0Tm90aWZpY2F0aW9ucy5jaGVja1Bl
cm1pc3Npb24oKSBpcyAyCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1Qg
Q09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9u
cy9sZWdhY3kvcmVxdWVzdC1uby1jYWxsYmFjay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvbGVnYWN5L3JlcXVlc3Qtbm8tY2FsbGJhY2stZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmExMmViYzRiMWM3YzQ1ZWM0NTJjNjBlMjBlNTFkNjRlNTYwYTNh
MjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlv
bnMvbGVnYWN5L3JlcXVlc3Qtbm8tY2FsbGJhY2stZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUg
QEAKK1RoaXMgdGVzdCBjaGVja3MgdGhhdCByZXF1ZXN0aW5nIHBlcm1pc3Npb24gd2l0aG91dCBh
IGNhbGxiYWNrIHdvcmtzLiBUaGlzIHN1cHBvcnRzIGxlZ2FjeSBBUEkuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitSZXF1ZXN0aW5nIHBlcm1pc3Npb24gd2l0aCBkZWZhdWx0IHBl
cm1pc3Npb24KK1BBU1Mgd2luZG93LndlYmtpdE5vdGlmaWNhdGlvbnMuY2hlY2tQZXJtaXNzaW9u
KCkgaXMgMQorUEFTUyB3ZWJraXROb3RpZmljYXRpb25zLnJlcXVlc3RQZXJtaXNzaW9uKCkgZGlk
IG5vdCB0aHJvdyBleGNlcHRpb24uCitSZXF1ZXN0aW5nIHBlcm1pc3Npb24gd2l0aCBub24tZGVm
YXVsdCBwZXJtaXNzaW9uCitQQVNTIHdpbmRvdy53ZWJraXROb3RpZmljYXRpb25zLmNoZWNrUGVy
bWlzc2lvbigpIGlzIDIKK1BBU1Mgd2Via2l0Tm90aWZpY2F0aW9ucy5yZXF1ZXN0UGVybWlzc2lv
bigpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbm90aWZpY2F0aW9ucy9sZWdhY3kvcmVxdWVzdC1uby1jYWxsYmFjay5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL2xlZ2FjeS9yZXF1ZXN0LW5vLWNhbGxiYWNr
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZTZlYmIwOGM0ZjdjYTliNDE5YTc2NGMzMjAyNjU5OWY3MDhkNTUz
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9u
cy9sZWdhY3kvcmVxdWVzdC1uby1jYWxsYmFjay5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9D
VFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvbm90aWZpY2F0aW9ucy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIHRoYXQgcmVxdWVz
dGluZyBwZXJtaXNzaW9uIHdpdGhvdXQgYSBjYWxsYmFjayB3b3Jrcy4gVGhpcyBzdXBwb3J0cyBs
ZWdhY3kgQVBJLiIpOworCitmdW5jdGlvbiBzdGVwMSgpIHsKKyAgICBkZWJ1ZygiUmVxdWVzdGlu
ZyBwZXJtaXNzaW9uIHdpdGggZGVmYXVsdCBwZXJtaXNzaW9uIik7CisgICAgc2hvdWxkQmUoIndp
bmRvdy53ZWJraXROb3RpZmljYXRpb25zLmNoZWNrUGVybWlzc2lvbigpIiwgIjEiKTsKKyAgICBz
aG91bGROb3RUaHJvdygid2Via2l0Tm90aWZpY2F0aW9ucy5yZXF1ZXN0UGVybWlzc2lvbigpIik7
CisgICAgc2V0VGltZW91dChzdGVwMiwgMCk7Cit9CisKK2Z1bmN0aW9uIHN0ZXAyKCkgeworICAg
IHRlc3RSdW5uZXIuZGVueVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24odGVzdFVSTCk7CisgICAg
ZGVidWcoIlJlcXVlc3RpbmcgcGVybWlzc2lvbiB3aXRoIG5vbi1kZWZhdWx0IHBlcm1pc3Npb24i
KTsKKyAgICBzaG91bGRCZSgid2luZG93LndlYmtpdE5vdGlmaWNhdGlvbnMuY2hlY2tQZXJtaXNz
aW9uKCkiLCAiMiIpOworICAgIHNob3VsZE5vdFRocm93KCJ3ZWJraXROb3RpZmljYXRpb25zLnJl
cXVlc3RQZXJtaXNzaW9uKCkiKTsKKyAgICB0ZXN0Q29tcGxldGVkKCk7Cit9CisKK2lmICh3aW5k
b3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIHN0
ZXAxKCk7Cit9CisKK3NldFRpbWVvdXQodGVzdENvbXBsZXRlZCwgMTAwKTsKKzwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL2xlZ2FjeS9y
ZXF1ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvbGVnYWN5
L3JlcXVlc3QuaHRtbAppbmRleCAyMTQ5OTEzOTFjNzIwMjYxY2RiYzBlNjM1ZTlkMTJiNzU2OWVk
NzQxLi5kNzlhMmIxMzA1MDhkYmU2MDM5MGYzMDg2NzU2YmE5MjcxZWU4MTljIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvbGVnYWN5L3JlcXVlc3QuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvbGVnYWN5L3JlcXVl
c3QuaHRtbApAQCAtNCwxNyArNCwyOSBAQAogPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CiA8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0J
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0KIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hl
Y2tzIHRoYXQgYSByZXF1ZXN0IGZvciBwZXJtaXNzaW9uIGlzIG1hZGUuIik7CiAKK2Z1bmN0aW9u
IHN0ZXAxKCkgeworICAgIGRlYnVnKCJSZXF1ZXN0aW5nIHBlcm1pc3Npb24gd2l0aCBkZWZhdWx0
IHBlcm1pc3Npb24iKTsKKyAgICBzaG91bGRCZSgid2luZG93LndlYmtpdE5vdGlmaWNhdGlvbnMu
Y2hlY2tQZXJtaXNzaW9uKCkiLCAiMSIpOworICAgIHdlYmtpdE5vdGlmaWNhdGlvbnMucmVxdWVz
dFBlcm1pc3Npb24oZnVuY3Rpb24oKSB7CisgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cud2Via2l0
Tm90aWZpY2F0aW9ucy5jaGVja1Blcm1pc3Npb24oKSIsICIwIik7CisgICAgICAgIHNldFRpbWVv
dXQoc3RlcDIsIDApOworICAgIH0pOworfQorCitmdW5jdGlvbiBzdGVwMigpIHsKKyAgICB0ZXN0
UnVubmVyLmRlbnlXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKHRlc3RVUkwpOworICAgIGRlYnVn
KCJSZXF1ZXN0aW5nIHBlcm1pc3Npb24gd2l0aCBub24tZGVmYXVsdCBwZXJtaXNzaW9uIik7Cisg
ICAgd2Via2l0Tm90aWZpY2F0aW9ucy5yZXF1ZXN0UGVybWlzc2lvbihmdW5jdGlvbigpIHsKKyAg
ICAgICAgc2hvdWxkQmUoIndpbmRvdy53ZWJraXROb3RpZmljYXRpb25zLmNoZWNrUGVybWlzc2lv
bigpIiwgIjIiKTsKKyAgICAgICAgdGVzdENvbXBsZXRlZCgpOworICAgIH0pOworfQorCiBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKLQlzaG91bGRCZSgid2luZG93LndlYmtpdE5vdGlmaWNhdGlv
bnMuY2hlY2tQZXJtaXNzaW9uKCkiLCAiMSIpOwotCU5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlz
c2lvbihmdW5jdGlvbigpIHsKLQkJc2hvdWxkQmUoIndpbmRvdy53ZWJraXROb3RpZmljYXRpb25z
LmNoZWNrUGVybWlzc2lvbigpIiwgIjAiKTsKLQkJdGVzdENvbXBsZXRlZCgpOwotCX0pOworICAg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIHN0ZXAxKCk7CiB9CiAKIHNldFRpbWVv
dXQodGVzdENvbXBsZXRlZCwgMTAwKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbm90aWZpY2F0aW9ucy9yZXF1ZXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbm90aWZpY2F0aW9ucy9yZXF1ZXN0LWV4cGVjdGVkLnR4dAppbmRleCBhY2EwOGZlOGVm
ZGM4YzRjNmYyYjFiYWRmYmJmMmM0YTA3NWQ2ZDllLi41YjhjNThhM2I4MThiZDEyNTc3NGJjMzAz
YTQ0MjVjOWFiOTNjNzEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlm
aWNhdGlvbnMvcmVxdWVzdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9ub3RpZmljYXRpb25zL3JlcXVlc3QtZXhwZWN0ZWQudHh0CkBAIC0zLDkgKzMsMTMgQEAgVGhp
cyB0ZXN0IGNoZWNrcyB0aGF0IGEgcmVxdWVzdCBmb3IgcGVybWlzc2lvbiBpcyBtYWRlLgogT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKK1JlcXVlc3RpbmcgcGVybWlzc2lvbiB3aXRoIGRl
ZmF1bHQgcGVybWlzc2lvbgogUEFTUyBOb3RpZmljYXRpb24ucGVybWlzc2lvbiBpcyAiZGVmYXVs
dCIKLVBBU1MgcGVybWlzc2lvbiBpcyBncmFudGVkLgorUEFTUyBwZXJtaXNzaW9uIGlzIGdyYW50
ZWQKIFBBU1MgTm90aWZpY2F0aW9uLnBlcm1pc3Npb24gaXMgImdyYW50ZWQiCitSZXF1ZXN0aW5n
IHBlcm1pc3Npb24gd2l0aCBub24tZGVmYXVsdCBwZXJtaXNzaW9uCitQQVNTIHBlcm1pc3Npb24g
aXMgZGVuaWVkCitQQVNTIE5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uIGlzICJkZW5pZWQiCiBQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9yZXF1ZXN0Lmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvcmVxdWVzdC5odG1sCmluZGV4IGFlYmJk
MTUzNDY1M2M1OTJhMDBiY2RlOTNjN2RmZmIzZDg4NThmOGUuLjYwN2ZjZjgzMDY3MTEyOTBkOTcx
MTgzNzkwZjAzMmVjNjJkMWRhY2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bm90aWZpY2F0aW9ucy9yZXF1ZXN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9u
b3RpZmljYXRpb25zL3JlcXVlc3QuaHRtbApAQCAtNCwyMSArNCwzNyBAQAogPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIDxzY3JpcHQ+Ci1pZiAod2lu
ZG93LnRlc3RSdW5uZXIpCi0JdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0KIGRlc2NyaXB0
aW9uKCJUaGlzIHRlc3QgY2hlY2tzIHRoYXQgYSByZXF1ZXN0IGZvciBwZXJtaXNzaW9uIGlzIG1h
ZGUuIik7CiAKK2Z1bmN0aW9uIHN0ZXAxKCkgeworICAgIGRlYnVnKCJSZXF1ZXN0aW5nIHBlcm1p
c3Npb24gd2l0aCBkZWZhdWx0IHBlcm1pc3Npb24iKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoIk5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uIiwgImRlZmF1bHQiKTsKKyAgICBOb3RpZmljYXRp
b24ucmVxdWVzdFBlcm1pc3Npb24oZnVuY3Rpb24ocGVybWlzc2lvbikgeworICAgICAgICBpZiAo
cGVybWlzc2lvbiA9PSAnZ3JhbnRlZCcpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJwZXJtaXNz
aW9uIGlzIGdyYW50ZWQiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgi
cGVybWlzc2lvbiBzaG91bGQgYmUgZ3JhbnRlZCwgYnV0IGlzICIgKyBwZXJtaXNzaW9uKTsKKyAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJOb3RpZmljYXRpb24ucGVybWlzc2lvbiIsICJn
cmFudGVkIik7CisgICAgICAgIHNldFRpbWVvdXQoc3RlcDIsIDApOworICAgIH0pOworfQorCitm
dW5jdGlvbiBzdGVwMigpIHsKKyAgICBkZWJ1ZygiUmVxdWVzdGluZyBwZXJtaXNzaW9uIHdpdGgg
bm9uLWRlZmF1bHQgcGVybWlzc2lvbiIpOworICAgIHRlc3RSdW5uZXIuZGVueVdlYk5vdGlmaWNh
dGlvblBlcm1pc3Npb24odGVzdFVSTCk7CisgICAgTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNz
aW9uKGZ1bmN0aW9uKHBlcm1pc3Npb24pIHsKKyAgICAgICAgaWYgKHBlcm1pc3Npb24gPT0gJ2Rl
bmllZCcpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJwZXJtaXNzaW9uIGlzIGRlbmllZCIpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJwZXJtaXNzaW9uIHNob3VsZCBi
ZSBkZW5pZWQsIGJ1dCBpcyAiICsgcGVybWlzc2lvbik7CisgICAgICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygiTm90aWZpY2F0aW9uLnBlcm1pc3Npb24iLCAiZGVuaWVkIik7CisgICAgICAgIHRl
c3RDb21wbGV0ZWQoKTsKKyAgICB9KTsKK30KKwogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0J
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJOb3RpZmljYXRpb24ucGVybWlzc2lvbiIsICJkZWZhdWx0
Iik7Ci0JTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKGZ1bmN0aW9uKHBlcm1pc3Npb24p
IHsKLQkJaWYgKHBlcm1pc3Npb24gPT0gJ2dyYW50ZWQnKQotCQkJdGVzdFBhc3NlZCgicGVybWlz
c2lvbiBpcyBncmFudGVkLiIpOwotCQllbHNlCi0JCQl0ZXN0RmFpbGVkKCJwZXJtaXNzaW9uIHNo
b3VsZCBiZSBncmFudGVkLCBidXQgaXMgIiArIHBlcm1pc3Npb24gKyAiLiIpOwotCQlzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoIk5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uIiwgImdyYW50ZWQiKTsKLQkJ
dGVzdENvbXBsZXRlZCgpOwotCX0pOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwor
ICAgIHN0ZXAxKCk7CiB9CiAKIHNldFRpbWVvdXQodGVzdENvbXBsZXRlZCwgMTAwKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>