<?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>56264</bug_id>
          
          <creation_ts>2011-03-12 23:51:10 -0800</creation_ts>
          <short_desc>FullScreen: Handle entering full screen security restrictions</short_desc>
          <delta_ts>2011-03-14 10:53:34 -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 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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>eric.carlson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>366678</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-03-12 23:51:10 -0800</bug_when>
    <thetext>FullScreen: Handle entering full screen security restrictions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366680</commentid>
    <comment_count>1</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-03-12 23:54:09 -0800</bug_when>
    <thetext>Full screen mode should only be activated when handling a user gesture;  Full screen mode should not be allowed within IFRAME elements unless they have been marked as &quot;allowfullscreen&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366683</commentid>
    <comment_count>2</comment_count>
      <attachid>85610</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-03-13 00:19:30 -0800</bug_when>
    <thetext>Created attachment 85610
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366685</commentid>
    <comment_count>3</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-03-13 00:22:39 -0800</bug_when>
    <thetext>Somehow, I lost most of my comments in the WebCore/ChangeLog.  I&apos;ll update the file and repost the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366688</commentid>
    <comment_count>4</comment_count>
      <attachid>85611</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-03-13 00:26:36 -0800</bug_when>
    <thetext>Created attachment 85611
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366762</commentid>
    <comment_count>5</comment_count>
      <attachid>85611</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2011-03-13 17:29:44 -0700</bug_when>
    <thetext>Comment on attachment 85611
Patch

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

&gt; LayoutTests/fullscreen/full-screen-iframe-allowed.html:22
&gt; +    runWithKeyDown(function() {
&gt; +
&gt; +        setTimeout(function() { 
&gt; +            consoleWrite(&quot;FAIL - did not enter full screen!&quot;); 
&gt; +            endTest(); 
&gt; +        }, 50);
&gt; +
&gt; +        frame.contentDocument.documentElement.webkitRequestFullScreen();
&gt; +    });

This makes it look like the &apos;webkitfullscreenchange&apos; event is posted synchronously, but the Mozilla spec says it should be asynch: &quot;When a Document enters or leaves the fullscreen state, the user agent must queue a task to dispatch this event.&quot; If the event is being posted aynchronously, using a timeout to detect success/failure will lead to problems as it is timing dependent.

&gt; Source/WebCore/html/HTMLAttributeNames.in:302
&gt;  webkitdirectory
&gt; +webkitallowfullscreen

Should these be sorted?

&gt; Source/WebCore/html/HTMLFrameElementBase.cpp:60
&gt; +#if ENABLE(FULLSCREEN_API)
&gt; +    , m_allowFullScreen(false)
&gt; +#endif

See below.

&gt; Source/WebCore/html/HTMLFrameElementBase.cpp:154
&gt; +#if ENABLE(FULLSCREEN_API)
&gt; +    } else if (attr-&gt;name() == webkitallowfullscreenAttr) {
&gt; +        // Boolean argument; the attr is irrelevant.
&gt; +        m_allowFullScreen = true;
&gt; +#endif

See below.

&gt; Source/WebCore/html/HTMLFrameElementBase.cpp:298
&gt; +bool HTMLFrameElementBase::allowFullScreen() const
&gt; +{
&gt; +    return m_allowFullScreen;
&gt; +}

Is it necessary to have the member variable, can&apos;t you do something like &quot;return hasAttribute(webkitallowfullscreenAttr)&quot; instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366823</commentid>
    <comment_count>6</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-03-13 21:30:50 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 85611 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=85611&amp;action=review
&gt; 
&gt; &gt; LayoutTests/fullscreen/full-screen-iframe-allowed.html:22
&gt; &gt; +    runWithKeyDown(function() {
&gt; &gt; +
&gt; &gt; +        setTimeout(function() { 
&gt; &gt; +            consoleWrite(&quot;FAIL - did not enter full screen!&quot;); 
&gt; &gt; +            endTest(); 
&gt; &gt; +        }, 50);
&gt; &gt; +
&gt; &gt; +        frame.contentDocument.documentElement.webkitRequestFullScreen();
&gt; &gt; +    });
&gt; 
&gt; This makes it look like the &apos;webkitfullscreenchange&apos; event is posted synchronously, but the Mozilla spec says it should be asynch: &quot;When a Document enters or leaves the fullscreen state, the user agent must queue a task to dispatch this event.&quot; If the event is being posted aynchronously, using a timeout to detect success/failure will lead to problems as it is timing dependent.

This is one of the problems with the spec.  To determine whether entering full screen failed, one must wait indefinitely, as there is no error event.  Unfortunately, I don&apos;t see another way to determine the failure mode besides a timeout.

But, in the case of DumpRenderTree, we should have pretty dependable, reproducible behavior here.

&gt; 
&gt; &gt; Source/WebCore/html/HTMLAttributeNames.in:302
&gt; &gt;  webkitdirectory
&gt; &gt; +webkitallowfullscreen
&gt; 
&gt; Should these be sorted?

Probably. :)

&gt; &gt; Source/WebCore/html/HTMLFrameElementBase.cpp:60
&gt; &gt; +#if ENABLE(FULLSCREEN_API)
&gt; &gt; +    , m_allowFullScreen(false)
&gt; &gt; +#endif
&gt; 
&gt; See below.
&gt; 
&gt; &gt; Source/WebCore/html/HTMLFrameElementBase.cpp:154
&gt; &gt; +#if ENABLE(FULLSCREEN_API)
&gt; &gt; +    } else if (attr-&gt;name() == webkitallowfullscreenAttr) {
&gt; &gt; +        // Boolean argument; the attr is irrelevant.
&gt; &gt; +        m_allowFullScreen = true;
&gt; &gt; +#endif
&gt; 
&gt; See below.
&gt; 
&gt; &gt; Source/WebCore/html/HTMLFrameElementBase.cpp:298
&gt; &gt; +bool HTMLFrameElementBase::allowFullScreen() const
&gt; &gt; +{
&gt; &gt; +    return m_allowFullScreen;
&gt; &gt; +}
&gt; 
&gt; Is it necessary to have the member variable, can&apos;t you do something like &quot;return hasAttribute(webkitallowfullscreenAttr)&quot; instead?

Sounds reasonable.  Changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366828</commentid>
    <comment_count>7</comment_count>
      <attachid>85644</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-03-13 21:52:29 -0700</bug_when>
    <thetext>Created attachment 85644
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366851</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2011-03-13 23:07:22 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; (From update of attachment 85611 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=85611&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; LayoutTests/fullscreen/full-screen-iframe-allowed.html:22
&gt; &gt; &gt; +    runWithKeyDown(function() {
&gt; &gt; &gt; +
&gt; &gt; &gt; +        setTimeout(function() { 
&gt; &gt; &gt; +            consoleWrite(&quot;FAIL - did not enter full screen!&quot;); 
&gt; &gt; &gt; +            endTest(); 
&gt; &gt; &gt; +        }, 50);
&gt; &gt; &gt; +
&gt; &gt; &gt; +        frame.contentDocument.documentElement.webkitRequestFullScreen();
&gt; &gt; &gt; +    });
&gt; &gt; 
&gt; &gt; This makes it look like the &apos;webkitfullscreenchange&apos; event is posted synchronously, but the Mozilla spec says it should be asynch: &quot;When a Document enters or leaves the fullscreen state, the user agent must queue a task to dispatch this event.&quot; If the event is being posted aynchronously, using a timeout to detect success/failure will lead to problems as it is timing dependent.
&gt; 
&gt; This is one of the problems with the spec.  To determine whether entering full screen failed, one must wait indefinitely, as there is no error event.  Unfortunately, I don&apos;t see another way to determine the failure mode besides a timeout.
&gt; 
I assume you have, or will, give this feedback to roc? ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367016</commentid>
    <comment_count>9</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-03-14 09:30:05 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; I assume you have, or will, give this feedback to roc? ;-)

Of course. :-D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367065</commentid>
    <comment_count>10</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-03-14 10:53:34 -0700</bug_when>
    <thetext>Committed r81038: &lt;http://trac.webkit.org/changeset/81038&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85610</attachid>
            <date>2011-03-13 00:19:30 -0800</date>
            <delta_ts>2011-03-13 00:26:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56264-20110313001929.patch</filename>
            <type>text/plain</type>
            <size>15125</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODA5NTEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmNjhlNDk3ZGVjMDFiMDQ4NDYxMWVl
MmE0M2NiMzEwYjE0MjBlYzlmLi42ODFlMWEzNWZkYjQ0MWI0NjEyMTljODgwOTkyYjMwNGUxOWY2
YWEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDMtMTIgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRnVsbFNjcmVlbjogSGFuZGxlIGVudGVyaW5nIGZ1bGwgc2NyZWVuIHNlY3VyaXR5
IHJlc3RyaWN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTYyNjQKKworICAgICAgICAqIGZ1bGxzY3JlZW4vZnVsbC1zY3JlZW4tY3NzLmh0bWw6
IFVzZSBydW5XaXRoS2V5RG93bi4KKyAgICAgICAgKiBmdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLXJl
bW92ZS1hbmNlc3Rvci5odG1sOiBEaXR0by4KKyAgICAgICAgKiBmdWxsc2NyZWVuL2Z1bGwtc2Ny
ZWVuLXJlbW92ZS5odG1sOiBEaXR0by4KKyAgICAgICAgKiBmdWxsc2NyZWVuL2Z1bGwtc2NyZWVu
LXJlcXVlc3QuaHRtbDogRGl0dG8uCisgICAgICAgICogZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi10
d2ljZS5odG1sOiBEaXR0by4KKyAgICAgICAgKiBmdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLXRlc3Qu
anM6CisgICAgICAgICogZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1pZnJhbWUtYWxsb3dlZC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZ1bGxzY3JlZW4vZnVsbC1zY3JlZW4taWZyYW1l
LWFsbG93ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1p
ZnJhbWUtbm90LWFsbG93ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmdWxsc2Ny
ZWVuL2Z1bGwtc2NyZWVuLWlmcmFtZS1ub3QtYWxsb3dlZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KHJ1bldpdGhLZXlEb3duKTogQWRkZWQuICBXcmFwcyB0aGUgY29tbWFuZCBpbiBhIGtleURvd24v
a2V5UHJlc3MKKyAgICAgICAgICAgIGxpc3RlbmVyLgorCiAyMDExLTAzLTEyICBJbHlhIFRpa2hv
bm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLiBVcGRh
dGUgY2hyb21pdW0gZXhwZWN0YXRpb25zLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZnVsbHNj
cmVlbi9mdWxsLXNjcmVlbi1jc3MuaHRtbCBiL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1z
Y3JlZW4tY3NzLmh0bWwKaW5kZXggOWZhOWRlMzdmNTEzY2I0NGQ2N2JlMmRlYzk1MzJkMDNlNThi
MTIwNC4uMzk0ZTZkZDQ4YzY3OWMzNjVjYjk2MWYxMGJiM2Y2NTQxNmExMGU5MCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1jc3MuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWNzcy5odG1sCkBAIC0zMyw3ICszMyw3IEBA
CiAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVl
KCdjb2xvcicpIiwgInJnYigwLCAwLCAyNTUpIik7CiAgICAgICAgIAogICAgICAgICAgICAgY2Fs
bGJhY2sgPSBkb2N1bWVudEVudGVyZWRGdWxsU2NyZWVuOwotICAgICAgICAgICAgZG9jdW1lbnQu
ZG9jdW1lbnRFbGVtZW50LndlYmtpdFJlcXVlc3RGdWxsU2NyZWVuKCk7CisgICAgICAgICAgICBy
dW5XaXRoS2V5RG93bihmdW5jdGlvbigpe2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC53ZWJraXRS
ZXF1ZXN0RnVsbFNjcmVlbigpfSk7CiAgICAgICAgIH07CiAgICAgCiAgICAgICAgIHZhciBkb2N1
bWVudEVudGVyZWRGdWxsU2NyZWVuID0gZnVuY3Rpb24oZXZlbnQpIHsKQEAgLTQ1LDYgKzQ1LDYg
QEAKICAgICAgICAgfTsKICAgICAKICAgICAgICAgY2FsbGJhY2sgPSBzcGFuRW50ZXJlZEZ1bGxT
Y3JlZW47Ci0gICAgICAgIHNwYW4ud2Via2l0UmVxdWVzdEZ1bGxTY3JlZW4oKTsKKyAgICAgICAg
cnVuV2l0aEtleURvd24oZnVuY3Rpb24oKXtzcGFuLndlYmtpdFJlcXVlc3RGdWxsU2NyZWVuKCl9
KTsKICAgICB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4v
ZnVsbC1zY3JlZW4taWZyYW1lLWFsbG93ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZnVs
bHNjcmVlbi9mdWxsLXNjcmVlbi1pZnJhbWUtYWxsb3dlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjczYmQ2OGNhYmI1Yzk2MDE4NDAwYjJmNDQ4ZThhOTVlN2FhNmJlZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4taWZyYW1lLWFsbG93ZWQt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorVGVzdCBmb3IgYnVnIDU2MjY0OiBIYW5kbGUg
ZW50ZXJpbmcgZnVsbCBzY3JlZW4gc2VjdXJpdHkgcmVzdHJpY3Rpb25zCisKK1RvIHRlc3QgbWFu
dWFsbHksIHByZXNzIFNwYWNlIC0gdGhlIHBhZ2Ugc2hvdWxkIGVudGVyIGZ1bGwgc2NyZWVuIG1v
ZGUuCisKK0VWRU5UKHdlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UpCitTVUNDRUVEIC0gZW50ZXJlZCBm
dWxsIHNjcmVlbiEKK0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Z1bGxz
Y3JlZW4vZnVsbC1zY3JlZW4taWZyYW1lLWFsbG93ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Z1bGxz
Y3JlZW4vZnVsbC1zY3JlZW4taWZyYW1lLWFsbG93ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMmVjOGFk
MWMwODFlODBjOTZmNGY2ZWViOWI3OTQ1NzU3MmFjZDBkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1pZnJhbWUtYWxsb3dlZC5odG1sCkBAIC0w
LDAgKzEsMjYgQEAKKzxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHA6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTU2MjY0Ij5idWcgNTYyNjQ8L2E+OiAKK0hhbmRsZSBlbnRlcmluZyBm
dWxsIHNjcmVlbiBzZWN1cml0eSByZXN0cmljdGlvbnM8L3A+Cis8cD5UbyB0ZXN0IG1hbnVhbGx5
LCBwcmVzcyBTcGFjZSAtIHRoZSBwYWdlIHNob3VsZCBlbnRlciBmdWxsIHNjcmVlbiBtb2RlLjwv
cD4KKzxzY3JpcHQgc3JjPSJmdWxsLXNjcmVlbi10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIHZhciBmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdmcmFtZScpOworCisgICAgd2FpdEZvckV2ZW50KGZyYW1lLmNvbnRlbnREb2N1bWVu
dCwgJ3dlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UnLCBmdW5jdGlvbigpIHsgCisgICAgICAgICAgICBj
b25zb2xlV3JpdGUoIlNVQ0NFRUQgLSBlbnRlcmVkIGZ1bGwgc2NyZWVuISIpOyAKKyAgICAgICAg
ICAgIGVuZFRlc3QoKTsKKyAgICB9KTsKKworICAgIHJ1bldpdGhLZXlEb3duKGZ1bmN0aW9uKCkg
eworCisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IAorICAgICAgICAgICAgY29uc29s
ZVdyaXRlKCJGQUlMIC0gZGlkIG5vdCBlbnRlciBmdWxsIHNjcmVlbiEiKTsgCisgICAgICAgICAg
ICBlbmRUZXN0KCk7IAorICAgICAgICB9LCA1MCk7CisKKyAgICAgICAgZnJhbWUuY29udGVudERv
Y3VtZW50LmRvY3VtZW50RWxlbWVudC53ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbigpOworICAgIH0p
OworfQorPC9zY3JpcHQ+Cis8aWZyYW1lIGlkPSJmcmFtZSIgc3JjPSJhYm91dDpibGFuayIgb25s
b2FkPSJydW5UZXN0KCkiIHdlYmtpdGFsbG93ZnVsbHNjcmVlbj4KKzwvaWZyYW1lPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1pZnJhbWUtbm90LWFsbG93
ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1pZnJh
bWUtbm90LWFsbG93ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0ZjAwMWQxNGM3ZGY3NmNl
MDg3MTk4ODcyZmQ2NDQzMTE1MTg5ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
dWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWlmcmFtZS1ub3QtYWxsb3dlZC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw3IEBACitUZXN0IGZvciBidWcgNTYyNjQ6IEhhbmRsZSBlbnRlcmluZyBmdWxsIHNj
cmVlbiBzZWN1cml0eSByZXN0cmljdGlvbnMKKworVG8gdGVzdCBtYW51YWxseSwgcHJlc3MgU3Bh
Y2UgLSB0aGUgcGFnZSBzaG91bGQgbm90IGVudGVyIGZ1bGwgc2NyZWVuIG1vZGUuCisKK1NVQ0NF
RUQgLSBkaWQgbm90IGVudGVyIGZ1bGwgc2NyZWVuIQorRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1pZnJhbWUtbm90LWFsbG93ZWQu
aHRtbCBiL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4taWZyYW1lLW5vdC1hbGxv
d2VkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYWY5N2QwZjJiYTY2MGExM2Y0MDE1OTk1ZmQ4ZTZmMDRkZmU1
MDkzNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3Jl
ZW4taWZyYW1lLW5vdC1hbGxvd2VkLmh0bWwKQEAgLTAsMCArMSwyNiBAQAorPHA+VGVzdCBmb3Ig
PGEgaHJlZj0iaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYyNjQiPmJ1
ZyA1NjI2NDwvYT46IAorSGFuZGxlIGVudGVyaW5nIGZ1bGwgc2NyZWVuIHNlY3VyaXR5IHJlc3Ry
aWN0aW9uczwvcD4KKzxwPlRvIHRlc3QgbWFudWFsbHksIHByZXNzIFNwYWNlIC0gdGhlIHBhZ2Ug
c2hvdWxkIG5vdCBlbnRlciBmdWxsIHNjcmVlbiBtb2RlLjwvcD4KKzxzY3JpcHQgc3JjPSJmdWxs
LXNjcmVlbi10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBydW5UZXN0KCkg
eworICAgIHZhciBmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmcmFtZScpOworCisg
ICAgd2FpdEZvckV2ZW50KGZyYW1lLmNvbnRlbnREb2N1bWVudCwgJ3dlYmtpdGZ1bGxzY3JlZW5j
aGFuZ2UnLCBmdW5jdGlvbigpIHsgCisgICAgICAgICAgICBjb25zb2xlV3JpdGUoIkZBSUwgLSBl
bnRlcmVkIGZ1bGwgc2NyZWVuISIpOyAKKyAgICAgICAgICAgIGVuZFRlc3QoKTsKKyAgICB9KTsK
KworICAgIHJ1bldpdGhLZXlEb3duKGZ1bmN0aW9uKCkgeworCisgICAgICAgIHNldFRpbWVvdXQo
ZnVuY3Rpb24oKSB7IAorICAgICAgICAgICAgY29uc29sZVdyaXRlKCJTVUNDRUVEIC0gZGlkIG5v
dCBlbnRlciBmdWxsIHNjcmVlbiEiKTsgCisgICAgICAgICAgICBlbmRUZXN0KCk7IAorICAgICAg
ICB9LCA1MCk7CisKKyAgICAgICAgZnJhbWUuY29udGVudERvY3VtZW50LmRvY3VtZW50RWxlbWVu
dC53ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbigpOworICAgIH0pOworfQorPC9zY3JpcHQ+Cis8aWZy
YW1lIGlkPSJmcmFtZSIgc3JjPSJhYm91dDpibGFuayIgb25sb2FkPSJydW5UZXN0KCkiPgorPC9p
ZnJhbWU+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLXJl
bW92ZS1hbmNlc3Rvci5odG1sIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1y
ZW1vdmUtYW5jZXN0b3IuaHRtbAppbmRleCBiMDcyOTI5ZTdjZGNhYzAzMTQyNGVmZmE2NjM2Yzc3
NWRhMjMyNTYyLi4xMDY3MGZkZjFjMGNkNTNkMjFhMzhhN2RjMDk4ODJlYjQzZDQ2ZmJlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLXJlbW92ZS1hbmNlc3Rv
ci5odG1sCisrKyBiL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tcmVtb3ZlLWFu
Y2VzdG9yLmh0bWwKQEAgLTMxLDYgKzMxLDYgQEAKICAgICAgICAgfTsKIAogICAgICAgICBjYWxs
YmFjayA9IHNwYW5FbnRlcmVkRnVsbFNjcmVlbjsKLSAgICAgICAgc3Bhbi53ZWJraXRSZXF1ZXN0
RnVsbFNjcmVlbigpOworICAgICAgICBydW5XaXRoS2V5RG93bihmdW5jdGlvbigpe3NwYW4ud2Vi
a2l0UmVxdWVzdEZ1bGxTY3JlZW4oKX0pOwogICAgIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1yZW1vdmUuaHRtbCBiL0xheW91dFRl
c3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tcmVtb3ZlLmh0bWwKaW5kZXggNWE5NGJmZDk1YzRh
NzZmZDJmMjZmNTViNmUxMjU4NWRhYjA4Y2NlZi4uYTNmNDZlNGE0OTkxODA4NDU0YTdlYzgwMmFh
NTM1NDBiZmZmZjYyNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNj
cmVlbi1yZW1vdmUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVu
LXJlbW92ZS5odG1sCkBAIC0zMCw2ICszMCw2IEBACiAgICAgICAgIH07CiAgICAgCiAgICAgICAg
IGNhbGxiYWNrID0gc3BhbkVudGVyZWRGdWxsU2NyZWVuOwotICAgICAgICBzcGFuLndlYmtpdFJl
cXVlc3RGdWxsU2NyZWVuKCk7CisgICAgICAgIHJ1bldpdGhLZXlEb3duKGZ1bmN0aW9uKCl7c3Bh
bi53ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbigpfSk7CiAgICAgfQogPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLXJlcXVlc3QuaHRtbCBiL0xh
eW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tcmVxdWVzdC5odG1sCmluZGV4IDNmMmNm
YTUxZDYxMjU3NTJmN2Y1ZjI4MjI0ZDFmOTZhOTk0YTBmZTAuLmFhYzY5NWUyNWU3NmZmNTUyNDdj
NWIyNTIxZjNiODRkNDhmYjcyNzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4v
ZnVsbC1zY3JlZW4tcmVxdWVzdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVs
bC1zY3JlZW4tcmVxdWVzdC5odG1sCkBAIC03LDYgKzcsNiBAQAogICAgICAgICBlbmRUZXN0KCk7
CiAgICAgfSBlbHNlIHsKICAgICAgICAgd2FpdEZvckV2ZW50VGVzdEFuZEVuZChkb2N1bWVudCwg
J3dlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UnLCAiZG9jdW1lbnQud2Via2l0SXNGdWxsU2NyZWVuPT10
cnVlIik7Ci0gICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC53ZWJraXRSZXF1ZXN0RnVs
bFNjcmVlbigpOworICAgICAgICBydW5XaXRoS2V5RG93bihmdW5jdGlvbigpe2RvY3VtZW50LmRv
Y3VtZW50RWxlbWVudC53ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbigpfSk7CiAgICAgfQogPC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLXRlc3Qu
anMgYi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLXRlc3QuanMKaW5kZXggMmZm
ZjRiYTVlZWI2M2YxNTRhNDNiMmUxNzQzYmFhMTU3NDhhNmZlZi4uYWM5NDA5MTI5YTE3NzY0ZGQ0
YWIyZGYwMTg3NGI2YWZjNjU5OGFjZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZnVsbHNjcmVl
bi9mdWxsLXNjcmVlbi10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1z
Y3JlZW4tdGVzdC5qcwpAQCAtOCw2ICs4LDE0IEBAIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiB9CiAK
K2Z1bmN0aW9uIHJ1bldpdGhLZXlEb3duKGZuKSAKK3sKKyAgICBkb2N1bWVudC5hZGRFdmVudExp
c3RlbmVyKCdrZXlwcmVzcycsIGZ1bmN0aW9uKCkgeyBmbigpOyB9LCBmYWxzZSk7CisgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBldmVudFNlbmRlci5rZXlE
b3duKCIgIiwgW10pOworICAgIH0KK30KKwogZnVuY3Rpb24gbG9nQ29uc29sZSgpCiB7CiAgICAg
aWYgKCFjb25zb2xlICYmIGRvY3VtZW50LmJvZHkpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tdHdpY2UuaHRtbCBiL0xheW91dFRlc3RzL2Z1bGxzY3Jl
ZW4vZnVsbC1zY3JlZW4tdHdpY2UuaHRtbAppbmRleCAwNjQ4NWI4MjVhNjQ1YjE4MzRmNDEwYTk5
Y2UyMWEyMWIxMTM4Mjk0Li5mNDczZGIyM2Y0OTIzOTIyNThhNzBlNWEyMmNiNmQxNjJlNDlkOGIx
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLXR3aWNlLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi10d2ljZS5odG1sCkBA
IC0yMCw3ICsyMCw3IEBACiAgICAgICAgIHZhciBzcGFuRW50ZXJlZEZ1bGxTY3JlZW4gPSBmdW5j
dGlvbigpIHsKICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiZG9jdW1lbnQud2Via2l0Q3VycmVu
dEZ1bGxTY3JlZW5FbGVtZW50Iiwgc3Bhbik7CiAgICAgICAgICAgICBjYWxsYmFjayA9IGRvY3Vt
ZW50RW50ZXJlZEZ1bGxTY3JlZW47Ci0gICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1l
bnQud2Via2l0UmVxdWVzdEZ1bGxTY3JlZW4oKTsKKyAgICAgICAgICAgIHJ1bldpdGhLZXlEb3du
KGZ1bmN0aW9uKCl7ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LndlYmtpdFJlcXVlc3RGdWxsU2Ny
ZWVuKCl9KTsKICAgICAgICAgfTsKICAgICAKICAgICAgICAgdmFyIGRvY3VtZW50RW50ZXJlZEZ1
bGxTY3JlZW4gPSBmdW5jdGlvbigpIHsKQEAgLTMwLDYgKzMwLDYgQEAKICAgICAgICAgfTsKIAog
ICAgICAgICBjYWxsYmFjayA9IHNwYW5FbnRlcmVkRnVsbFNjcmVlbjsKLSAgICAgICAgc3Bhbi53
ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbigpOworICAgICAgICBydW5XaXRoS2V5RG93bihmdW5jdGlv
bigpe3NwYW4ud2Via2l0UmVxdWVzdEZ1bGxTY3JlZW4oKX0pOwogICAgIH0KIDwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGY2YTNhMzkyZDQyOTc0OTJkMzZiZGNkNTBhYzhkZTVmMzdhODkyODYuLjc5
MGViNzdjZTBjMjRhY2YwYzNmY2M2YzA2YWQ5OTkwNWQ5YTg0MDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAxMS0wMy0xMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4K
KworICAgICAgICBGdWxsU2NyZWVuOiBIYW5kbGUgZW50ZXJpbmcgZnVsbCBzY3JlZW4gc2VjdXJp
dHkgcmVzdHJpY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01NjI2NAorCisgICAgICAgIFRlc3RzOiBmdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWlm
cmFtZS1hbGxvd2VkLmh0bWwKKyAgICAgICAgICAgICAgIGZ1bGxzY3JlZW4vZnVsbC1zY3JlZW4t
aWZyYW1lLW5vdC1hbGxvd2VkLmh0bWwKKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZnVsbFNjcmVlbklzQWxsb3dlZEZvckVsZW1lbnQp
OiBBZGRlZC4gIENoZWNrcworICAgICAgICAgICAgdG8gc2VlIGlmIGVsZW1lbnRzIGNvbnRhaW5l
ZCBpbiBJRlJBTUVTIGFyZSBhbGxvd2VkIHRvCisgICAgICAgICAgICBlbnRlciBmdWxsIHNjcmVl
bi4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp3ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbkZv
ckVsZW1lbnQpOiBDaGVja3MKKyAgICAgICAgICAgIGlmIHBhZ2UgaXMgY3VycmVudGx5IHByb2Nl
c3NpbmcgYSB1c2VyIGdlc3R1cmUuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAg
ICogaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW46IEFkZGVkIHdlYmtpdGFsbG93ZnVsbHNjcmVl
bkF0dHIuCisgICAgICAgICogaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MRnJhbWVFbGVtZW50QmFzZTo6SFRNTEZyYW1lRWxlbWVudEJhc2UpOiAK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxGcmFtZUVsZW1lbnRCYXNlOjpwYXJzZU1hcHBlZEF0dHJp
YnV0ZSk6IAorICAgICAgICAoV2ViQ29yZTo6SFRNTEZyYW1lRWxlbWVudEJhc2U6OmFsbG93RnVs
bFNjcmVlbik6IEFkZGVkLgorICAgICAgICAqIGh0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuaDoK
KyAgICAgICAgKiBodG1sL0hUTUxJRnJhbWVFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1M
SUZyYW1lRWxlbWVudC5pZGw6IEFkZGVkIGFsbG93RnVsbFNjcmVlbi4KKwogMjAxMS0wMy0xMiAg
Q2FtZXJvbiBad2FyaWNoICA8endhcmljaEBhcHBsZS5jb20+CiAKICAgICAgICAgTm90IHJldmll
d2VkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNDQ1NDM2ODk1ZjRlODkyZmE3ZmE3Njgz
Mjc4MmY0MDY3MDhiM2QzMi4uZGJjYTk3ZDAzNmU2ZDZiMjhiZjFiYmVkNTU5MDhlOTBlZDViOWFl
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00ODQ5LDYgKzQ4NDksMjAgQEAgYm9vbCBE
b2N1bWVudDo6aXNYSFRNTE1QRG9jdW1lbnQoKSBjb25zdAogI2VuZGlmCiAKICNpZiBFTkFCTEUo
RlVMTFNDUkVFTl9BUEkpCitib29sIERvY3VtZW50OjpmdWxsU2NyZWVuSXNBbGxvd2VkRm9yRWxl
bWVudChFbGVtZW50KiBlbGVtZW50KSBjb25zdAoreworICAgIEFTU0VSVChlbGVtZW50KTsKKyAg
ICB3aGlsZSAoSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lckVsZW1lbnQgPSBlbGVtZW50LT5k
b2N1bWVudCgpLT5vd25lckVsZW1lbnQoKSkgeworICAgICAgICBpZiAoIW93bmVyRWxlbWVudC0+
aGFzVGFnTmFtZShmcmFtZVRhZykgJiYgIW93bmVyRWxlbWVudC0+aGFzVGFnTmFtZShpZnJhbWVU
YWcpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYgKCFzdGF0aWNfY2FzdDxI
VE1MRnJhbWVFbGVtZW50QmFzZSo+KG93bmVyRWxlbWVudCktPmFsbG93RnVsbFNjcmVlbigpKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBlbGVtZW50ID0gb3duZXJFbGVtZW50
OworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBEb2N1bWVudDo6d2Via2l0UmVx
dWVzdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIHVuc2lnbmVkIHNob3J0
IGZsYWdzKQogewogICAgIGlmICghcGFnZSgpIHx8ICFwYWdlKCktPnNldHRpbmdzKCktPmZ1bGxT
Y3JlZW5FbmFibGVkKCkpCkBAIC00ODU3LDYgKzQ4NzEsMTIgQEAgdm9pZCBEb2N1bWVudDo6d2Vi
a2l0UmVxdWVzdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIHVuc2lnbmVk
IHNob3IKICAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudEVsZW1l
bnQoKTsKICAgICAKKyAgICBpZiAoIWZ1bGxTY3JlZW5Jc0FsbG93ZWRGb3JFbGVtZW50KGVsZW1l
bnQpKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgaWYgKCFTY3JpcHRDb250cm9sbGVyOjpw
cm9jZXNzaW5nVXNlckdlc3R1cmUoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAogICAgIGlmICgh
cGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50KCktPnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQo
ZWxlbWVudCkpCiAgICAgICAgIHJldHVybjsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXgg
NGIxYTQ3N2Q1N2MxOTVmMTMzNGI5YzA5ZjJlNzJhZGRlNjRjYjcxMi4uM2Y3NWZkYzg5ZmZlMzk2
NmVkODQxNDEyNGYzZWJmMGZkOTA2NmFmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTEwOTMs
NiArMTA5Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEZ1bGxTY3JlZW5SZW5kZXJlckJhY2tn
cm91bmRDb2xvcihDb2xvcik7CiAgICAgCiAgICAgdm9pZCBmdWxsU2NyZWVuQ2hhbmdlRGVsYXlU
aW1lckZpcmVkKFRpbWVyPERvY3VtZW50PiopOworICAgIGJvb2wgZnVsbFNjcmVlbklzQWxsb3dl
ZEZvckVsZW1lbnQoRWxlbWVudCopIGNvbnN0OwogI2VuZGlmCiAKICAgICAvLyBVc2VkIHRvIGFs
bG93IGVsZW1lbnQgdGhhdCBsb2FkcyBkYXRhIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCBhIEZyYW1l
TG9hZGVyIHRvIGRlbGF5IHRoZSAnbG9hZCcgZXZlbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEF0dHJpYnV0ZU5hbWVzLmluCmluZGV4IDk1NjgxMmQ0MDY2ZTdjZWUxNDZmMTY4NjExOTc3MmE4
MjBmNTZjNDYuLjA2ZDMxMjQxZTE4ZjBiOGJlYmIwZWE2M2EyODcyNzgyN2JhOTNkMDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCkBAIC0yOTksNSArMjk5LDYg
QEAgdmlld3NvdXJjZQogdmxpbmsKIHZzcGFjZQogd2Via2l0ZGlyZWN0b3J5Cit3ZWJraXRhbGxv
d2Z1bGxzY3JlZW4KIHdpZHRoCiB3cmFwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGcmFtZUVsZW1lbnRCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1l
RWxlbWVudEJhc2UuY3BwCmluZGV4IGNmMDc5ZWFhYWE3MDZmMjcxNTljMTU4MDBhODhhYTAxNDAy
MmZmNGIuLjQzYTMxYTM2OGNkOWRmMjMzZjVjNGMzNGEzZDQ2NDMyZTEwYzMxZTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwCkBAIC01NSw2ICs1NSw5
IEBAIEhUTUxGcmFtZUVsZW1lbnRCYXNlOjpIVE1MRnJhbWVFbGVtZW50QmFzZShjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVuCiAgICAgLCBtX2NoZWNrSW5Eb2N1bWVudFRpbWVy
KHRoaXMsICZIVE1MRnJhbWVFbGVtZW50QmFzZTo6Y2hlY2tJbkRvY3VtZW50VGltZXJGaXJlZCkK
ICAgICAsIG1fdmlld1NvdXJjZShmYWxzZSkKICAgICAsIG1fcmVtYWluc0FsaXZlT25SZW1vdmFs
RnJvbVRyZWUoZmFsc2UpCisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAgICwgbV9hbGxv
d0Z1bGxTY3JlZW4oZmFsc2UpCisjZW5kaWYKIHsKIH0KIApAQCAtMTQ0LDYgKzE0NywxMSBAQCB2
b2lkIEhUTUxGcmFtZUVsZW1lbnRCYXNlOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUq
IGF0dHIpCiAgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG9uYmVmb3JldW5sb2FkQXR0cikg
ewogICAgICAgICAvLyBGSVhNRTogc2hvdWxkIDxmcmFtZT4gZWxlbWVudHMgaGF2ZSBiZWZvcmV1
bmxvYWQgaGFuZGxlcnM/CiAgICAgICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnRO
YW1lcygpLmJlZm9yZXVubG9hZEV2ZW50LCBjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKHRo
aXMsIGF0dHIpKTsKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisgICAgfSBlbHNlIGlmIChh
dHRyLT5uYW1lKCkgPT0gd2Via2l0YWxsb3dmdWxsc2NyZWVuQXR0cikgeworICAgICAgICAvLyBC
b29sZWFuIGFyZ3VtZW50OyB0aGUgYXR0ciBpcyBpcnJlbGV2YW50LgorICAgICAgICBtX2FsbG93
RnVsbFNjcmVlbiA9IHRydWU7CisjZW5kaWYKICAgICB9IGVsc2UKICAgICAgICAgSFRNTEZyYW1l
T3duZXJFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKTsKIH0KQEAgLTI4Myw0ICsy
OTEsMTEgQEAgdm9pZCBIVE1MRnJhbWVFbGVtZW50QmFzZTo6d2lsbFJlbW92ZSgpCiAgICAgSFRN
TEZyYW1lT3duZXJFbGVtZW50Ojp3aWxsUmVtb3ZlKCk7CiB9CiAKKyNpZiBFTkFCTEUoRlVMTFND
UkVFTl9BUEkpCitib29sIEhUTUxGcmFtZUVsZW1lbnRCYXNlOjphbGxvd0Z1bGxTY3JlZW4oKSBj
b25zdAoreworICAgIHJldHVybiBtX2FsbG93RnVsbFNjcmVlbjsKK30KKyNlbmRpZgorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
cmFtZUVsZW1lbnRCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRC
YXNlLmgKaW5kZXggZTVmOWM0NjUwOWQ3YTlkMjA3MmFmZjY4MzNlYzk1OWE0Mzc2YmU4ZC4uMjkw
N2Q0M2U2ZDlmNzJiZThkYTM0YzlhZDlhZTVkOTVkNDRhZDkwMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuaApAQCAtNDMsNiArNDMsOSBAQCBwdWJsaWM6CiAg
ICAgaW50IGhlaWdodCgpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRSZW1haW5zQWxpdmVPblJlbW92
YWxGcm9tVHJlZShib29sKTsKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisgICAgdmlydHVh
bCBib29sIGFsbG93RnVsbFNjcmVlbigpIGNvbnN0OworI2VuZGlmCiAKIHByb3RlY3RlZDoKICAg
ICBIVE1MRnJhbWVFbGVtZW50QmFzZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsK
QEAgLTkwLDYgKzkzLDkgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV92aWV3U291cmNlOwogICAg
IGJvb2wgbV9yZW1haW5zQWxpdmVPblJlbW92YWxGcm9tVHJlZTsKKyNpZiBFTkFCTEUoRlVMTFND
UkVFTl9BUEkpCisgICAgYm9vbCBtX2FsbG93RnVsbFNjcmVlbjsKKyNlbmRpZgogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85611</attachid>
            <date>2011-03-13 00:26:36 -0800</date>
            <delta_ts>2011-03-13 21:52:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56264-20110313002635.patch</filename>
            <type>text/plain</type>
            <size>15323</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODA5NTEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmNjhlNDk3ZGVjMDFiMDQ4NDYxMWVl
MmE0M2NiMzEwYjE0MjBlYzlmLi42ODFlMWEzNWZkYjQ0MWI0NjEyMTljODgwOTkyYjMwNGUxOWY2
YWEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDMtMTIgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRnVsbFNjcmVlbjogSGFuZGxlIGVudGVyaW5nIGZ1bGwgc2NyZWVuIHNlY3VyaXR5
IHJlc3RyaWN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTYyNjQKKworICAgICAgICAqIGZ1bGxzY3JlZW4vZnVsbC1zY3JlZW4tY3NzLmh0bWw6
IFVzZSBydW5XaXRoS2V5RG93bi4KKyAgICAgICAgKiBmdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLXJl
bW92ZS1hbmNlc3Rvci5odG1sOiBEaXR0by4KKyAgICAgICAgKiBmdWxsc2NyZWVuL2Z1bGwtc2Ny
ZWVuLXJlbW92ZS5odG1sOiBEaXR0by4KKyAgICAgICAgKiBmdWxsc2NyZWVuL2Z1bGwtc2NyZWVu
LXJlcXVlc3QuaHRtbDogRGl0dG8uCisgICAgICAgICogZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi10
d2ljZS5odG1sOiBEaXR0by4KKyAgICAgICAgKiBmdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLXRlc3Qu
anM6CisgICAgICAgICogZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1pZnJhbWUtYWxsb3dlZC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZ1bGxzY3JlZW4vZnVsbC1zY3JlZW4taWZyYW1l
LWFsbG93ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1p
ZnJhbWUtbm90LWFsbG93ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmdWxsc2Ny
ZWVuL2Z1bGwtc2NyZWVuLWlmcmFtZS1ub3QtYWxsb3dlZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KHJ1bldpdGhLZXlEb3duKTogQWRkZWQuICBXcmFwcyB0aGUgY29tbWFuZCBpbiBhIGtleURvd24v
a2V5UHJlc3MKKyAgICAgICAgICAgIGxpc3RlbmVyLgorCiAyMDExLTAzLTEyICBJbHlhIFRpa2hv
bm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLiBVcGRh
dGUgY2hyb21pdW0gZXhwZWN0YXRpb25zLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZnVsbHNj
cmVlbi9mdWxsLXNjcmVlbi1jc3MuaHRtbCBiL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1z
Y3JlZW4tY3NzLmh0bWwKaW5kZXggOWZhOWRlMzdmNTEzY2I0NGQ2N2JlMmRlYzk1MzJkMDNlNThi
MTIwNC4uMzk0ZTZkZDQ4YzY3OWMzNjVjYjk2MWYxMGJiM2Y2NTQxNmExMGU5MCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1jc3MuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWNzcy5odG1sCkBAIC0zMyw3ICszMyw3IEBA
CiAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVl
KCdjb2xvcicpIiwgInJnYigwLCAwLCAyNTUpIik7CiAgICAgICAgIAogICAgICAgICAgICAgY2Fs
bGJhY2sgPSBkb2N1bWVudEVudGVyZWRGdWxsU2NyZWVuOwotICAgICAgICAgICAgZG9jdW1lbnQu
ZG9jdW1lbnRFbGVtZW50LndlYmtpdFJlcXVlc3RGdWxsU2NyZWVuKCk7CisgICAgICAgICAgICBy
dW5XaXRoS2V5RG93bihmdW5jdGlvbigpe2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC53ZWJraXRS
ZXF1ZXN0RnVsbFNjcmVlbigpfSk7CiAgICAgICAgIH07CiAgICAgCiAgICAgICAgIHZhciBkb2N1
bWVudEVudGVyZWRGdWxsU2NyZWVuID0gZnVuY3Rpb24oZXZlbnQpIHsKQEAgLTQ1LDYgKzQ1LDYg
QEAKICAgICAgICAgfTsKICAgICAKICAgICAgICAgY2FsbGJhY2sgPSBzcGFuRW50ZXJlZEZ1bGxT
Y3JlZW47Ci0gICAgICAgIHNwYW4ud2Via2l0UmVxdWVzdEZ1bGxTY3JlZW4oKTsKKyAgICAgICAg
cnVuV2l0aEtleURvd24oZnVuY3Rpb24oKXtzcGFuLndlYmtpdFJlcXVlc3RGdWxsU2NyZWVuKCl9
KTsKICAgICB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4v
ZnVsbC1zY3JlZW4taWZyYW1lLWFsbG93ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZnVs
bHNjcmVlbi9mdWxsLXNjcmVlbi1pZnJhbWUtYWxsb3dlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjczYmQ2OGNhYmI1Yzk2MDE4NDAwYjJmNDQ4ZThhOTVlN2FhNmJlZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4taWZyYW1lLWFsbG93ZWQt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorVGVzdCBmb3IgYnVnIDU2MjY0OiBIYW5kbGUg
ZW50ZXJpbmcgZnVsbCBzY3JlZW4gc2VjdXJpdHkgcmVzdHJpY3Rpb25zCisKK1RvIHRlc3QgbWFu
dWFsbHksIHByZXNzIFNwYWNlIC0gdGhlIHBhZ2Ugc2hvdWxkIGVudGVyIGZ1bGwgc2NyZWVuIG1v
ZGUuCisKK0VWRU5UKHdlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UpCitTVUNDRUVEIC0gZW50ZXJlZCBm
dWxsIHNjcmVlbiEKK0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Z1bGxz
Y3JlZW4vZnVsbC1zY3JlZW4taWZyYW1lLWFsbG93ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Z1bGxz
Y3JlZW4vZnVsbC1zY3JlZW4taWZyYW1lLWFsbG93ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMmVjOGFk
MWMwODFlODBjOTZmNGY2ZWViOWI3OTQ1NzU3MmFjZDBkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1pZnJhbWUtYWxsb3dlZC5odG1sCkBAIC0w
LDAgKzEsMjYgQEAKKzxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHA6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTU2MjY0Ij5idWcgNTYyNjQ8L2E+OiAKK0hhbmRsZSBlbnRlcmluZyBm
dWxsIHNjcmVlbiBzZWN1cml0eSByZXN0cmljdGlvbnM8L3A+Cis8cD5UbyB0ZXN0IG1hbnVhbGx5
LCBwcmVzcyBTcGFjZSAtIHRoZSBwYWdlIHNob3VsZCBlbnRlciBmdWxsIHNjcmVlbiBtb2RlLjwv
cD4KKzxzY3JpcHQgc3JjPSJmdWxsLXNjcmVlbi10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIHZhciBmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdmcmFtZScpOworCisgICAgd2FpdEZvckV2ZW50KGZyYW1lLmNvbnRlbnREb2N1bWVu
dCwgJ3dlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UnLCBmdW5jdGlvbigpIHsgCisgICAgICAgICAgICBj
b25zb2xlV3JpdGUoIlNVQ0NFRUQgLSBlbnRlcmVkIGZ1bGwgc2NyZWVuISIpOyAKKyAgICAgICAg
ICAgIGVuZFRlc3QoKTsKKyAgICB9KTsKKworICAgIHJ1bldpdGhLZXlEb3duKGZ1bmN0aW9uKCkg
eworCisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IAorICAgICAgICAgICAgY29uc29s
ZVdyaXRlKCJGQUlMIC0gZGlkIG5vdCBlbnRlciBmdWxsIHNjcmVlbiEiKTsgCisgICAgICAgICAg
ICBlbmRUZXN0KCk7IAorICAgICAgICB9LCA1MCk7CisKKyAgICAgICAgZnJhbWUuY29udGVudERv
Y3VtZW50LmRvY3VtZW50RWxlbWVudC53ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbigpOworICAgIH0p
OworfQorPC9zY3JpcHQ+Cis8aWZyYW1lIGlkPSJmcmFtZSIgc3JjPSJhYm91dDpibGFuayIgb25s
b2FkPSJydW5UZXN0KCkiIHdlYmtpdGFsbG93ZnVsbHNjcmVlbj4KKzwvaWZyYW1lPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1pZnJhbWUtbm90LWFsbG93
ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1pZnJh
bWUtbm90LWFsbG93ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0ZjAwMWQxNGM3ZGY3NmNl
MDg3MTk4ODcyZmQ2NDQzMTE1MTg5ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
dWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWlmcmFtZS1ub3QtYWxsb3dlZC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw3IEBACitUZXN0IGZvciBidWcgNTYyNjQ6IEhhbmRsZSBlbnRlcmluZyBmdWxsIHNj
cmVlbiBzZWN1cml0eSByZXN0cmljdGlvbnMKKworVG8gdGVzdCBtYW51YWxseSwgcHJlc3MgU3Bh
Y2UgLSB0aGUgcGFnZSBzaG91bGQgbm90IGVudGVyIGZ1bGwgc2NyZWVuIG1vZGUuCisKK1NVQ0NF
RUQgLSBkaWQgbm90IGVudGVyIGZ1bGwgc2NyZWVuIQorRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1pZnJhbWUtbm90LWFsbG93ZWQu
aHRtbCBiL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4taWZyYW1lLW5vdC1hbGxv
d2VkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYWY5N2QwZjJiYTY2MGExM2Y0MDE1OTk1ZmQ4ZTZmMDRkZmU1
MDkzNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3Jl
ZW4taWZyYW1lLW5vdC1hbGxvd2VkLmh0bWwKQEAgLTAsMCArMSwyNiBAQAorPHA+VGVzdCBmb3Ig
PGEgaHJlZj0iaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYyNjQiPmJ1
ZyA1NjI2NDwvYT46IAorSGFuZGxlIGVudGVyaW5nIGZ1bGwgc2NyZWVuIHNlY3VyaXR5IHJlc3Ry
aWN0aW9uczwvcD4KKzxwPlRvIHRlc3QgbWFudWFsbHksIHByZXNzIFNwYWNlIC0gdGhlIHBhZ2Ug
c2hvdWxkIG5vdCBlbnRlciBmdWxsIHNjcmVlbiBtb2RlLjwvcD4KKzxzY3JpcHQgc3JjPSJmdWxs
LXNjcmVlbi10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBydW5UZXN0KCkg
eworICAgIHZhciBmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmcmFtZScpOworCisg
ICAgd2FpdEZvckV2ZW50KGZyYW1lLmNvbnRlbnREb2N1bWVudCwgJ3dlYmtpdGZ1bGxzY3JlZW5j
aGFuZ2UnLCBmdW5jdGlvbigpIHsgCisgICAgICAgICAgICBjb25zb2xlV3JpdGUoIkZBSUwgLSBl
bnRlcmVkIGZ1bGwgc2NyZWVuISIpOyAKKyAgICAgICAgICAgIGVuZFRlc3QoKTsKKyAgICB9KTsK
KworICAgIHJ1bldpdGhLZXlEb3duKGZ1bmN0aW9uKCkgeworCisgICAgICAgIHNldFRpbWVvdXQo
ZnVuY3Rpb24oKSB7IAorICAgICAgICAgICAgY29uc29sZVdyaXRlKCJTVUNDRUVEIC0gZGlkIG5v
dCBlbnRlciBmdWxsIHNjcmVlbiEiKTsgCisgICAgICAgICAgICBlbmRUZXN0KCk7IAorICAgICAg
ICB9LCA1MCk7CisKKyAgICAgICAgZnJhbWUuY29udGVudERvY3VtZW50LmRvY3VtZW50RWxlbWVu
dC53ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbigpOworICAgIH0pOworfQorPC9zY3JpcHQ+Cis8aWZy
YW1lIGlkPSJmcmFtZSIgc3JjPSJhYm91dDpibGFuayIgb25sb2FkPSJydW5UZXN0KCkiPgorPC9p
ZnJhbWU+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLXJl
bW92ZS1hbmNlc3Rvci5odG1sIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1y
ZW1vdmUtYW5jZXN0b3IuaHRtbAppbmRleCBiMDcyOTI5ZTdjZGNhYzAzMTQyNGVmZmE2NjM2Yzc3
NWRhMjMyNTYyLi4xMDY3MGZkZjFjMGNkNTNkMjFhMzhhN2RjMDk4ODJlYjQzZDQ2ZmJlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLXJlbW92ZS1hbmNlc3Rv
ci5odG1sCisrKyBiL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tcmVtb3ZlLWFu
Y2VzdG9yLmh0bWwKQEAgLTMxLDYgKzMxLDYgQEAKICAgICAgICAgfTsKIAogICAgICAgICBjYWxs
YmFjayA9IHNwYW5FbnRlcmVkRnVsbFNjcmVlbjsKLSAgICAgICAgc3Bhbi53ZWJraXRSZXF1ZXN0
RnVsbFNjcmVlbigpOworICAgICAgICBydW5XaXRoS2V5RG93bihmdW5jdGlvbigpe3NwYW4ud2Vi
a2l0UmVxdWVzdEZ1bGxTY3JlZW4oKX0pOwogICAgIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1yZW1vdmUuaHRtbCBiL0xheW91dFRl
c3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tcmVtb3ZlLmh0bWwKaW5kZXggNWE5NGJmZDk1YzRh
NzZmZDJmMjZmNTViNmUxMjU4NWRhYjA4Y2NlZi4uYTNmNDZlNGE0OTkxODA4NDU0YTdlYzgwMmFh
NTM1NDBiZmZmZjYyNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNj
cmVlbi1yZW1vdmUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVu
LXJlbW92ZS5odG1sCkBAIC0zMCw2ICszMCw2IEBACiAgICAgICAgIH07CiAgICAgCiAgICAgICAg
IGNhbGxiYWNrID0gc3BhbkVudGVyZWRGdWxsU2NyZWVuOwotICAgICAgICBzcGFuLndlYmtpdFJl
cXVlc3RGdWxsU2NyZWVuKCk7CisgICAgICAgIHJ1bldpdGhLZXlEb3duKGZ1bmN0aW9uKCl7c3Bh
bi53ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbigpfSk7CiAgICAgfQogPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLXJlcXVlc3QuaHRtbCBiL0xh
eW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tcmVxdWVzdC5odG1sCmluZGV4IDNmMmNm
YTUxZDYxMjU3NTJmN2Y1ZjI4MjI0ZDFmOTZhOTk0YTBmZTAuLmFhYzY5NWUyNWU3NmZmNTUyNDdj
NWIyNTIxZjNiODRkNDhmYjcyNzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4v
ZnVsbC1zY3JlZW4tcmVxdWVzdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVs
bC1zY3JlZW4tcmVxdWVzdC5odG1sCkBAIC03LDYgKzcsNiBAQAogICAgICAgICBlbmRUZXN0KCk7
CiAgICAgfSBlbHNlIHsKICAgICAgICAgd2FpdEZvckV2ZW50VGVzdEFuZEVuZChkb2N1bWVudCwg
J3dlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UnLCAiZG9jdW1lbnQud2Via2l0SXNGdWxsU2NyZWVuPT10
cnVlIik7Ci0gICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC53ZWJraXRSZXF1ZXN0RnVs
bFNjcmVlbigpOworICAgICAgICBydW5XaXRoS2V5RG93bihmdW5jdGlvbigpe2RvY3VtZW50LmRv
Y3VtZW50RWxlbWVudC53ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbigpfSk7CiAgICAgfQogPC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLXRlc3Qu
anMgYi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLXRlc3QuanMKaW5kZXggMmZm
ZjRiYTVlZWI2M2YxNTRhNDNiMmUxNzQzYmFhMTU3NDhhNmZlZi4uYWM5NDA5MTI5YTE3NzY0ZGQ0
YWIyZGYwMTg3NGI2YWZjNjU5OGFjZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZnVsbHNjcmVl
bi9mdWxsLXNjcmVlbi10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1z
Y3JlZW4tdGVzdC5qcwpAQCAtOCw2ICs4LDE0IEBAIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiB9CiAK
K2Z1bmN0aW9uIHJ1bldpdGhLZXlEb3duKGZuKSAKK3sKKyAgICBkb2N1bWVudC5hZGRFdmVudExp
c3RlbmVyKCdrZXlwcmVzcycsIGZ1bmN0aW9uKCkgeyBmbigpOyB9LCBmYWxzZSk7CisgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBldmVudFNlbmRlci5rZXlE
b3duKCIgIiwgW10pOworICAgIH0KK30KKwogZnVuY3Rpb24gbG9nQ29uc29sZSgpCiB7CiAgICAg
aWYgKCFjb25zb2xlICYmIGRvY3VtZW50LmJvZHkpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tdHdpY2UuaHRtbCBiL0xheW91dFRlc3RzL2Z1bGxzY3Jl
ZW4vZnVsbC1zY3JlZW4tdHdpY2UuaHRtbAppbmRleCAwNjQ4NWI4MjVhNjQ1YjE4MzRmNDEwYTk5
Y2UyMWEyMWIxMTM4Mjk0Li5mNDczZGIyM2Y0OTIzOTIyNThhNzBlNWEyMmNiNmQxNjJlNDlkOGIx
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLXR3aWNlLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi10d2ljZS5odG1sCkBA
IC0yMCw3ICsyMCw3IEBACiAgICAgICAgIHZhciBzcGFuRW50ZXJlZEZ1bGxTY3JlZW4gPSBmdW5j
dGlvbigpIHsKICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiZG9jdW1lbnQud2Via2l0Q3VycmVu
dEZ1bGxTY3JlZW5FbGVtZW50Iiwgc3Bhbik7CiAgICAgICAgICAgICBjYWxsYmFjayA9IGRvY3Vt
ZW50RW50ZXJlZEZ1bGxTY3JlZW47Ci0gICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1l
bnQud2Via2l0UmVxdWVzdEZ1bGxTY3JlZW4oKTsKKyAgICAgICAgICAgIHJ1bldpdGhLZXlEb3du
KGZ1bmN0aW9uKCl7ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LndlYmtpdFJlcXVlc3RGdWxsU2Ny
ZWVuKCl9KTsKICAgICAgICAgfTsKICAgICAKICAgICAgICAgdmFyIGRvY3VtZW50RW50ZXJlZEZ1
bGxTY3JlZW4gPSBmdW5jdGlvbigpIHsKQEAgLTMwLDYgKzMwLDYgQEAKICAgICAgICAgfTsKIAog
ICAgICAgICBjYWxsYmFjayA9IHNwYW5FbnRlcmVkRnVsbFNjcmVlbjsKLSAgICAgICAgc3Bhbi53
ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbigpOworICAgICAgICBydW5XaXRoS2V5RG93bihmdW5jdGlv
bigpe3NwYW4ud2Via2l0UmVxdWVzdEZ1bGxTY3JlZW4oKX0pOwogICAgIH0KIDwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGY2YTNhMzkyZDQyOTc0OTJkMzZiZGNkNTBhYzhkZTVmMzdhODkyODYuLmJh
Y2Y1Mjc3MDgxYzU1MTIxYTRiOWRiMjAzOWM2MmE5MGE2ODQ0ODAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAxMS0wMy0xMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4K
KworICAgICAgICBGdWxsU2NyZWVuOiBIYW5kbGUgZW50ZXJpbmcgZnVsbCBzY3JlZW4gc2VjdXJp
dHkgcmVzdHJpY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01NjI2NAorCisgICAgICAgIFRlc3RzOiBmdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWlm
cmFtZS1hbGxvd2VkLmh0bWwKKyAgICAgICAgICAgICAgIGZ1bGxzY3JlZW4vZnVsbC1zY3JlZW4t
aWZyYW1lLW5vdC1hbGxvd2VkLmh0bWwKKworICAgICAgICBEaXNhYmxlIGZ1bGwgc2NyZWVuIGRv
Y3VtZW50cyBpbiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgICAgICAgIDEpIHJlcXVlc3Rp
bmcgZWxlbWVudCBpcyBpbiBhbiBpZnJhbWUgd2hpY2ggZG9lcyBub3QgaGF2ZSBhCisgICAgICAg
IHdlYmtpdGFsbG93ZnVsbHNjcmVlbiBhdHRyaWJ1dGUuCisgICAgICAgIDIpIHBhZ2UgaXMgbm90
IHByb2Nlc3NpbmcgYSB1c2VyIGdlc3R1cmUuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmZ1bGxTY3JlZW5Jc0FsbG93ZWRGb3JFbGVt
ZW50KTogQWRkZWQuICBDaGVja3MKKyAgICAgICAgICAgIHRvIHNlZSBpZiBlbGVtZW50cyBjb250
YWluZWQgaW4gSUZSQU1FUyBhcmUgYWxsb3dlZCB0bworICAgICAgICAgICAgZW50ZXIgZnVsbCBz
Y3JlZW4uCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6d2Via2l0UmVxdWVzdEZ1bGxTY3Jl
ZW5Gb3JFbGVtZW50KTogQ2hlY2tzCisgICAgICAgICAgICBpZiBwYWdlIGlzIGN1cnJlbnRseSBw
cm9jZXNzaW5nIGEgdXNlciBnZXN0dXJlLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAg
ICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluOiBBZGRlZCB3ZWJraXRhbGxvd2Z1bGxz
Y3JlZW5BdHRyLgorICAgICAgICAqIGh0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTEZyYW1lRWxlbWVudEJhc2U6OkhUTUxGcmFtZUVsZW1lbnRCYXNl
KTogSW5pdGlhbGl6ZSBtX2FsbG93RnVsbFNjcmVlbi4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxG
cmFtZUVsZW1lbnRCYXNlOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6IFBhcnNlIHRoZSB3ZWJraXRh
bGxvd2Z1bGxzY3JlZW5BdHRyLgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZyYW1lRWxlbWVudEJh
c2U6OmFsbG93RnVsbFNjcmVlbik6IEFkZGVkLgorICAgICAgICAqIGh0bWwvSFRNTEZyYW1lRWxl
bWVudEJhc2UuaDoKKwogMjAxMS0wMy0xMiAgQ2FtZXJvbiBad2FyaWNoICA8endhcmljaEBhcHBs
ZS5jb20+CiAKICAgICAgICAgTm90IHJldmlld2VkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5k
ZXggNDQ1NDM2ODk1ZjRlODkyZmE3ZmE3NjgzMjc4MmY0MDY3MDhiM2QzMi4uZGJjYTk3ZDAzNmU2
ZDZiMjhiZjFiYmVkNTU5MDhlOTBlZDViOWFlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBA
IC00ODQ5LDYgKzQ4NDksMjAgQEAgYm9vbCBEb2N1bWVudDo6aXNYSFRNTE1QRG9jdW1lbnQoKSBj
b25zdAogI2VuZGlmCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCitib29sIERvY3VtZW50
OjpmdWxsU2NyZWVuSXNBbGxvd2VkRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50KSBjb25zdAor
eworICAgIEFTU0VSVChlbGVtZW50KTsKKyAgICB3aGlsZSAoSFRNTEZyYW1lT3duZXJFbGVtZW50
KiBvd25lckVsZW1lbnQgPSBlbGVtZW50LT5kb2N1bWVudCgpLT5vd25lckVsZW1lbnQoKSkgewor
ICAgICAgICBpZiAoIW93bmVyRWxlbWVudC0+aGFzVGFnTmFtZShmcmFtZVRhZykgJiYgIW93bmVy
RWxlbWVudC0+aGFzVGFnTmFtZShpZnJhbWVUYWcpKQorICAgICAgICAgICAgY29udGludWU7CisK
KyAgICAgICAgaWYgKCFzdGF0aWNfY2FzdDxIVE1MRnJhbWVFbGVtZW50QmFzZSo+KG93bmVyRWxl
bWVudCktPmFsbG93RnVsbFNjcmVlbigpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICBlbGVtZW50ID0gb3duZXJFbGVtZW50OworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30K
Kwogdm9pZCBEb2N1bWVudDo6d2Via2l0UmVxdWVzdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1l
bnQqIGVsZW1lbnQsIHVuc2lnbmVkIHNob3J0IGZsYWdzKQogewogICAgIGlmICghcGFnZSgpIHx8
ICFwYWdlKCktPnNldHRpbmdzKCktPmZ1bGxTY3JlZW5FbmFibGVkKCkpCkBAIC00ODU3LDYgKzQ4
NzEsMTIgQEAgdm9pZCBEb2N1bWVudDo6d2Via2l0UmVxdWVzdEZ1bGxTY3JlZW5Gb3JFbGVtZW50
KEVsZW1lbnQqIGVsZW1lbnQsIHVuc2lnbmVkIHNob3IKICAgICBpZiAoIWVsZW1lbnQpCiAgICAg
ICAgIGVsZW1lbnQgPSBkb2N1bWVudEVsZW1lbnQoKTsKICAgICAKKyAgICBpZiAoIWZ1bGxTY3Jl
ZW5Jc0FsbG93ZWRGb3JFbGVtZW50KGVsZW1lbnQpKQorICAgICAgICByZXR1cm47CisgICAgCisg
ICAgaWYgKCFTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSkKKyAgICAg
ICAgcmV0dXJuOworICAgIAogICAgIGlmICghcGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50KCktPnN1
cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCkpCiAgICAgICAgIHJldHVybjsKICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggNGIxYTQ3N2Q1N2MxOTVmMTMzNGI5YzA5ZjJlNzJh
ZGRlNjRjYjcxMi4uM2Y3NWZkYzg5ZmZlMzk2NmVkODQxNDEyNGYzZWJmMGZkOTA2NmFmNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKQEAgLTEwOTMsNiArMTA5Myw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldEZ1bGxTY3JlZW5SZW5kZXJlckJhY2tncm91bmRDb2xvcihDb2xvcik7CiAgICAgCiAgICAg
dm9pZCBmdWxsU2NyZWVuQ2hhbmdlRGVsYXlUaW1lckZpcmVkKFRpbWVyPERvY3VtZW50PiopOwor
ICAgIGJvb2wgZnVsbFNjcmVlbklzQWxsb3dlZEZvckVsZW1lbnQoRWxlbWVudCopIGNvbnN0Owog
I2VuZGlmCiAKICAgICAvLyBVc2VkIHRvIGFsbG93IGVsZW1lbnQgdGhhdCBsb2FkcyBkYXRhIHdp
dGhvdXQgZ29pbmcgdGhyb3VnaCBhIEZyYW1lTG9hZGVyIHRvIGRlbGF5IHRoZSAnbG9hZCcgZXZl
bnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5p
biBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCmluZGV4IDk1Njgx
MmQ0MDY2ZTdjZWUxNDZmMTY4NjExOTc3MmE4MjBmNTZjNDYuLjA2ZDMxMjQxZTE4ZjBiOGJlYmIw
ZWE2M2EyODcyNzgyN2JhOTNkMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEF0dHJpYnV0ZU5hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0
ZU5hbWVzLmluCkBAIC0yOTksNSArMjk5LDYgQEAgdmlld3NvdXJjZQogdmxpbmsKIHZzcGFjZQog
d2Via2l0ZGlyZWN0b3J5Cit3ZWJraXRhbGxvd2Z1bGxzY3JlZW4KIHdpZHRoCiB3cmFwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwCmluZGV4IGNmMDc5ZWFh
YWE3MDZmMjcxNTljMTU4MDBhODhhYTAxNDAyMmZmNGIuLjQzYTMxYTM2OGNkOWRmMjMzZjVjNGMz
NGEzZDQ2NDMyZTEwYzMxZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZy
YW1lRWxlbWVudEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxl
bWVudEJhc2UuY3BwCkBAIC01NSw2ICs1NSw5IEBAIEhUTUxGcmFtZUVsZW1lbnRCYXNlOjpIVE1M
RnJhbWVFbGVtZW50QmFzZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVuCiAg
ICAgLCBtX2NoZWNrSW5Eb2N1bWVudFRpbWVyKHRoaXMsICZIVE1MRnJhbWVFbGVtZW50QmFzZTo6
Y2hlY2tJbkRvY3VtZW50VGltZXJGaXJlZCkKICAgICAsIG1fdmlld1NvdXJjZShmYWxzZSkKICAg
ICAsIG1fcmVtYWluc0FsaXZlT25SZW1vdmFsRnJvbVRyZWUoZmFsc2UpCisjaWYgRU5BQkxFKEZV
TExTQ1JFRU5fQVBJKQorICAgICwgbV9hbGxvd0Z1bGxTY3JlZW4oZmFsc2UpCisjZW5kaWYKIHsK
IH0KIApAQCAtMTQ0LDYgKzE0NywxMSBAQCB2b2lkIEhUTUxGcmFtZUVsZW1lbnRCYXNlOjpwYXJz
ZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCiAgICAgZWxzZSBpZiAoYXR0ci0+bmFt
ZSgpID09IG9uYmVmb3JldW5sb2FkQXR0cikgewogICAgICAgICAvLyBGSVhNRTogc2hvdWxkIDxm
cmFtZT4gZWxlbWVudHMgaGF2ZSBiZWZvcmV1bmxvYWQgaGFuZGxlcnM/CiAgICAgICAgIHNldEF0
dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmJlZm9yZXVubG9hZEV2ZW50LCBjcmVh
dGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKHRoaXMsIGF0dHIpKTsKKyNpZiBFTkFCTEUoRlVMTFND
UkVFTl9BUEkpCisgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gd2Via2l0YWxsb3dmdWxs
c2NyZWVuQXR0cikgeworICAgICAgICAvLyBCb29sZWFuIGFyZ3VtZW50OyB0aGUgYXR0ciBpcyBp
cnJlbGV2YW50LgorICAgICAgICBtX2FsbG93RnVsbFNjcmVlbiA9IHRydWU7CisjZW5kaWYKICAg
ICB9IGVsc2UKICAgICAgICAgSFRNTEZyYW1lT3duZXJFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJp
YnV0ZShhdHRyKTsKIH0KQEAgLTI4Myw0ICsyOTEsMTEgQEAgdm9pZCBIVE1MRnJhbWVFbGVtZW50
QmFzZTo6d2lsbFJlbW92ZSgpCiAgICAgSFRNTEZyYW1lT3duZXJFbGVtZW50Ojp3aWxsUmVtb3Zl
KCk7CiB9CiAKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCitib29sIEhUTUxGcmFtZUVsZW1l
bnRCYXNlOjphbGxvd0Z1bGxTY3JlZW4oKSBjb25zdAoreworICAgIHJldHVybiBtX2FsbG93RnVs
bFNjcmVlbjsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmgKaW5kZXggZTVmOWM0NjUwOWQ3YTlkMjA3
MmFmZjY4MzNlYzk1OWE0Mzc2YmU4ZC4uMjkwN2Q0M2U2ZDlmNzJiZThkYTM0YzlhZDlhZTVkOTVk
NDRhZDkwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50
QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuaApA
QCAtNDMsNiArNDMsOSBAQCBwdWJsaWM6CiAgICAgaW50IGhlaWdodCgpIGNvbnN0OwogCiAgICAg
dm9pZCBzZXRSZW1haW5zQWxpdmVPblJlbW92YWxGcm9tVHJlZShib29sKTsKKyNpZiBFTkFCTEUo
RlVMTFNDUkVFTl9BUEkpCisgICAgdmlydHVhbCBib29sIGFsbG93RnVsbFNjcmVlbigpIGNvbnN0
OworI2VuZGlmCiAKIHByb3RlY3RlZDoKICAgICBIVE1MRnJhbWVFbGVtZW50QmFzZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKQEAgLTkwLDYgKzkzLDkgQEAgcHJpdmF0ZToKIAog
ICAgIGJvb2wgbV92aWV3U291cmNlOwogICAgIGJvb2wgbV9yZW1haW5zQWxpdmVPblJlbW92YWxG
cm9tVHJlZTsKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisgICAgYm9vbCBtX2FsbG93RnVs
bFNjcmVlbjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85644</attachid>
            <date>2011-03-13 21:52:29 -0700</date>
            <delta_ts>2011-03-13 23:08:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56264-20110313215232.patch</filename>
            <type>text/plain</type>
            <size>14054</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODA5NTEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmNjhlNDk3ZGVjMDFiMDQ4NDYxMWVl
MmE0M2NiMzEwYjE0MjBlYzlmLi42ODFlMWEzNWZkYjQ0MWI0NjEyMTljODgwOTkyYjMwNGUxOWY2
YWEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDMtMTIgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRnVsbFNjcmVlbjogSGFuZGxlIGVudGVyaW5nIGZ1bGwgc2NyZWVuIHNlY3VyaXR5
IHJlc3RyaWN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTYyNjQKKworICAgICAgICAqIGZ1bGxzY3JlZW4vZnVsbC1zY3JlZW4tY3NzLmh0bWw6
IFVzZSBydW5XaXRoS2V5RG93bi4KKyAgICAgICAgKiBmdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLXJl
bW92ZS1hbmNlc3Rvci5odG1sOiBEaXR0by4KKyAgICAgICAgKiBmdWxsc2NyZWVuL2Z1bGwtc2Ny
ZWVuLXJlbW92ZS5odG1sOiBEaXR0by4KKyAgICAgICAgKiBmdWxsc2NyZWVuL2Z1bGwtc2NyZWVu
LXJlcXVlc3QuaHRtbDogRGl0dG8uCisgICAgICAgICogZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi10
d2ljZS5odG1sOiBEaXR0by4KKyAgICAgICAgKiBmdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLXRlc3Qu
anM6CisgICAgICAgICogZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1pZnJhbWUtYWxsb3dlZC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZ1bGxzY3JlZW4vZnVsbC1zY3JlZW4taWZyYW1l
LWFsbG93ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1p
ZnJhbWUtbm90LWFsbG93ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmdWxsc2Ny
ZWVuL2Z1bGwtc2NyZWVuLWlmcmFtZS1ub3QtYWxsb3dlZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KHJ1bldpdGhLZXlEb3duKTogQWRkZWQuICBXcmFwcyB0aGUgY29tbWFuZCBpbiBhIGtleURvd24v
a2V5UHJlc3MKKyAgICAgICAgICAgIGxpc3RlbmVyLgorCiAyMDExLTAzLTEyICBJbHlhIFRpa2hv
bm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLiBVcGRh
dGUgY2hyb21pdW0gZXhwZWN0YXRpb25zLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZnVsbHNj
cmVlbi9mdWxsLXNjcmVlbi1jc3MuaHRtbCBiL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1z
Y3JlZW4tY3NzLmh0bWwKaW5kZXggOWZhOWRlMzdmNTEzY2I0NGQ2N2JlMmRlYzk1MzJkMDNlNThi
MTIwNC4uMzk0ZTZkZDQ4YzY3OWMzNjVjYjk2MWYxMGJiM2Y2NTQxNmExMGU5MCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1jc3MuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWNzcy5odG1sCkBAIC0zMyw3ICszMyw3IEBA
CiAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVl
KCdjb2xvcicpIiwgInJnYigwLCAwLCAyNTUpIik7CiAgICAgICAgIAogICAgICAgICAgICAgY2Fs
bGJhY2sgPSBkb2N1bWVudEVudGVyZWRGdWxsU2NyZWVuOwotICAgICAgICAgICAgZG9jdW1lbnQu
ZG9jdW1lbnRFbGVtZW50LndlYmtpdFJlcXVlc3RGdWxsU2NyZWVuKCk7CisgICAgICAgICAgICBy
dW5XaXRoS2V5RG93bihmdW5jdGlvbigpe2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC53ZWJraXRS
ZXF1ZXN0RnVsbFNjcmVlbigpfSk7CiAgICAgICAgIH07CiAgICAgCiAgICAgICAgIHZhciBkb2N1
bWVudEVudGVyZWRGdWxsU2NyZWVuID0gZnVuY3Rpb24oZXZlbnQpIHsKQEAgLTQ1LDYgKzQ1LDYg
QEAKICAgICAgICAgfTsKICAgICAKICAgICAgICAgY2FsbGJhY2sgPSBzcGFuRW50ZXJlZEZ1bGxT
Y3JlZW47Ci0gICAgICAgIHNwYW4ud2Via2l0UmVxdWVzdEZ1bGxTY3JlZW4oKTsKKyAgICAgICAg
cnVuV2l0aEtleURvd24oZnVuY3Rpb24oKXtzcGFuLndlYmtpdFJlcXVlc3RGdWxsU2NyZWVuKCl9
KTsKICAgICB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4v
ZnVsbC1zY3JlZW4taWZyYW1lLWFsbG93ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZnVs
bHNjcmVlbi9mdWxsLXNjcmVlbi1pZnJhbWUtYWxsb3dlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjczYmQ2OGNhYmI1Yzk2MDE4NDAwYjJmNDQ4ZThhOTVlN2FhNmJlZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4taWZyYW1lLWFsbG93ZWQt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorVGVzdCBmb3IgYnVnIDU2MjY0OiBIYW5kbGUg
ZW50ZXJpbmcgZnVsbCBzY3JlZW4gc2VjdXJpdHkgcmVzdHJpY3Rpb25zCisKK1RvIHRlc3QgbWFu
dWFsbHksIHByZXNzIFNwYWNlIC0gdGhlIHBhZ2Ugc2hvdWxkIGVudGVyIGZ1bGwgc2NyZWVuIG1v
ZGUuCisKK0VWRU5UKHdlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UpCitTVUNDRUVEIC0gZW50ZXJlZCBm
dWxsIHNjcmVlbiEKK0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Z1bGxz
Y3JlZW4vZnVsbC1zY3JlZW4taWZyYW1lLWFsbG93ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Z1bGxz
Y3JlZW4vZnVsbC1zY3JlZW4taWZyYW1lLWFsbG93ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMmVjOGFk
MWMwODFlODBjOTZmNGY2ZWViOWI3OTQ1NzU3MmFjZDBkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1pZnJhbWUtYWxsb3dlZC5odG1sCkBAIC0w
LDAgKzEsMjYgQEAKKzxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHA6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTU2MjY0Ij5idWcgNTYyNjQ8L2E+OiAKK0hhbmRsZSBlbnRlcmluZyBm
dWxsIHNjcmVlbiBzZWN1cml0eSByZXN0cmljdGlvbnM8L3A+Cis8cD5UbyB0ZXN0IG1hbnVhbGx5
LCBwcmVzcyBTcGFjZSAtIHRoZSBwYWdlIHNob3VsZCBlbnRlciBmdWxsIHNjcmVlbiBtb2RlLjwv
cD4KKzxzY3JpcHQgc3JjPSJmdWxsLXNjcmVlbi10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIHZhciBmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdmcmFtZScpOworCisgICAgd2FpdEZvckV2ZW50KGZyYW1lLmNvbnRlbnREb2N1bWVu
dCwgJ3dlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UnLCBmdW5jdGlvbigpIHsgCisgICAgICAgICAgICBj
b25zb2xlV3JpdGUoIlNVQ0NFRUQgLSBlbnRlcmVkIGZ1bGwgc2NyZWVuISIpOyAKKyAgICAgICAg
ICAgIGVuZFRlc3QoKTsKKyAgICB9KTsKKworICAgIHJ1bldpdGhLZXlEb3duKGZ1bmN0aW9uKCkg
eworCisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IAorICAgICAgICAgICAgY29uc29s
ZVdyaXRlKCJGQUlMIC0gZGlkIG5vdCBlbnRlciBmdWxsIHNjcmVlbiEiKTsgCisgICAgICAgICAg
ICBlbmRUZXN0KCk7IAorICAgICAgICB9LCA1MCk7CisKKyAgICAgICAgZnJhbWUuY29udGVudERv
Y3VtZW50LmRvY3VtZW50RWxlbWVudC53ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbigpOworICAgIH0p
OworfQorPC9zY3JpcHQ+Cis8aWZyYW1lIGlkPSJmcmFtZSIgc3JjPSJhYm91dDpibGFuayIgb25s
b2FkPSJydW5UZXN0KCkiIHdlYmtpdGFsbG93ZnVsbHNjcmVlbj4KKzwvaWZyYW1lPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1pZnJhbWUtbm90LWFsbG93
ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1pZnJh
bWUtbm90LWFsbG93ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0ZjAwMWQxNGM3ZGY3NmNl
MDg3MTk4ODcyZmQ2NDQzMTE1MTg5ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
dWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWlmcmFtZS1ub3QtYWxsb3dlZC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw3IEBACitUZXN0IGZvciBidWcgNTYyNjQ6IEhhbmRsZSBlbnRlcmluZyBmdWxsIHNj
cmVlbiBzZWN1cml0eSByZXN0cmljdGlvbnMKKworVG8gdGVzdCBtYW51YWxseSwgcHJlc3MgU3Bh
Y2UgLSB0aGUgcGFnZSBzaG91bGQgbm90IGVudGVyIGZ1bGwgc2NyZWVuIG1vZGUuCisKK1NVQ0NF
RUQgLSBkaWQgbm90IGVudGVyIGZ1bGwgc2NyZWVuIQorRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1pZnJhbWUtbm90LWFsbG93ZWQu
aHRtbCBiL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4taWZyYW1lLW5vdC1hbGxv
d2VkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYWY5N2QwZjJiYTY2MGExM2Y0MDE1OTk1ZmQ4ZTZmMDRkZmU1
MDkzNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3Jl
ZW4taWZyYW1lLW5vdC1hbGxvd2VkLmh0bWwKQEAgLTAsMCArMSwyNiBAQAorPHA+VGVzdCBmb3Ig
PGEgaHJlZj0iaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYyNjQiPmJ1
ZyA1NjI2NDwvYT46IAorSGFuZGxlIGVudGVyaW5nIGZ1bGwgc2NyZWVuIHNlY3VyaXR5IHJlc3Ry
aWN0aW9uczwvcD4KKzxwPlRvIHRlc3QgbWFudWFsbHksIHByZXNzIFNwYWNlIC0gdGhlIHBhZ2Ug
c2hvdWxkIG5vdCBlbnRlciBmdWxsIHNjcmVlbiBtb2RlLjwvcD4KKzxzY3JpcHQgc3JjPSJmdWxs
LXNjcmVlbi10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBydW5UZXN0KCkg
eworICAgIHZhciBmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmcmFtZScpOworCisg
ICAgd2FpdEZvckV2ZW50KGZyYW1lLmNvbnRlbnREb2N1bWVudCwgJ3dlYmtpdGZ1bGxzY3JlZW5j
aGFuZ2UnLCBmdW5jdGlvbigpIHsgCisgICAgICAgICAgICBjb25zb2xlV3JpdGUoIkZBSUwgLSBl
bnRlcmVkIGZ1bGwgc2NyZWVuISIpOyAKKyAgICAgICAgICAgIGVuZFRlc3QoKTsKKyAgICB9KTsK
KworICAgIHJ1bldpdGhLZXlEb3duKGZ1bmN0aW9uKCkgeworCisgICAgICAgIHNldFRpbWVvdXQo
ZnVuY3Rpb24oKSB7IAorICAgICAgICAgICAgY29uc29sZVdyaXRlKCJTVUNDRUVEIC0gZGlkIG5v
dCBlbnRlciBmdWxsIHNjcmVlbiEiKTsgCisgICAgICAgICAgICBlbmRUZXN0KCk7IAorICAgICAg
ICB9LCA1MCk7CisKKyAgICAgICAgZnJhbWUuY29udGVudERvY3VtZW50LmRvY3VtZW50RWxlbWVu
dC53ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbigpOworICAgIH0pOworfQorPC9zY3JpcHQ+Cis8aWZy
YW1lIGlkPSJmcmFtZSIgc3JjPSJhYm91dDpibGFuayIgb25sb2FkPSJydW5UZXN0KCkiPgorPC9p
ZnJhbWU+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLXJl
bW92ZS1hbmNlc3Rvci5odG1sIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1y
ZW1vdmUtYW5jZXN0b3IuaHRtbAppbmRleCBiMDcyOTI5ZTdjZGNhYzAzMTQyNGVmZmE2NjM2Yzc3
NWRhMjMyNTYyLi4xMDY3MGZkZjFjMGNkNTNkMjFhMzhhN2RjMDk4ODJlYjQzZDQ2ZmJlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLXJlbW92ZS1hbmNlc3Rv
ci5odG1sCisrKyBiL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tcmVtb3ZlLWFu
Y2VzdG9yLmh0bWwKQEAgLTMxLDYgKzMxLDYgQEAKICAgICAgICAgfTsKIAogICAgICAgICBjYWxs
YmFjayA9IHNwYW5FbnRlcmVkRnVsbFNjcmVlbjsKLSAgICAgICAgc3Bhbi53ZWJraXRSZXF1ZXN0
RnVsbFNjcmVlbigpOworICAgICAgICBydW5XaXRoS2V5RG93bihmdW5jdGlvbigpe3NwYW4ud2Vi
a2l0UmVxdWVzdEZ1bGxTY3JlZW4oKX0pOwogICAgIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1yZW1vdmUuaHRtbCBiL0xheW91dFRl
c3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tcmVtb3ZlLmh0bWwKaW5kZXggNWE5NGJmZDk1YzRh
NzZmZDJmMjZmNTViNmUxMjU4NWRhYjA4Y2NlZi4uYTNmNDZlNGE0OTkxODA4NDU0YTdlYzgwMmFh
NTM1NDBiZmZmZjYyNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNj
cmVlbi1yZW1vdmUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVu
LXJlbW92ZS5odG1sCkBAIC0zMCw2ICszMCw2IEBACiAgICAgICAgIH07CiAgICAgCiAgICAgICAg
IGNhbGxiYWNrID0gc3BhbkVudGVyZWRGdWxsU2NyZWVuOwotICAgICAgICBzcGFuLndlYmtpdFJl
cXVlc3RGdWxsU2NyZWVuKCk7CisgICAgICAgIHJ1bldpdGhLZXlEb3duKGZ1bmN0aW9uKCl7c3Bh
bi53ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbigpfSk7CiAgICAgfQogPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLXJlcXVlc3QuaHRtbCBiL0xh
eW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tcmVxdWVzdC5odG1sCmluZGV4IDNmMmNm
YTUxZDYxMjU3NTJmN2Y1ZjI4MjI0ZDFmOTZhOTk0YTBmZTAuLmFhYzY5NWUyNWU3NmZmNTUyNDdj
NWIyNTIxZjNiODRkNDhmYjcyNzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4v
ZnVsbC1zY3JlZW4tcmVxdWVzdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVs
bC1zY3JlZW4tcmVxdWVzdC5odG1sCkBAIC03LDYgKzcsNiBAQAogICAgICAgICBlbmRUZXN0KCk7
CiAgICAgfSBlbHNlIHsKICAgICAgICAgd2FpdEZvckV2ZW50VGVzdEFuZEVuZChkb2N1bWVudCwg
J3dlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UnLCAiZG9jdW1lbnQud2Via2l0SXNGdWxsU2NyZWVuPT10
cnVlIik7Ci0gICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC53ZWJraXRSZXF1ZXN0RnVs
bFNjcmVlbigpOworICAgICAgICBydW5XaXRoS2V5RG93bihmdW5jdGlvbigpe2RvY3VtZW50LmRv
Y3VtZW50RWxlbWVudC53ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbigpfSk7CiAgICAgfQogPC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLXRlc3Qu
anMgYi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLXRlc3QuanMKaW5kZXggMmZm
ZjRiYTVlZWI2M2YxNTRhNDNiMmUxNzQzYmFhMTU3NDhhNmZlZi4uYWM5NDA5MTI5YTE3NzY0ZGQ0
YWIyZGYwMTg3NGI2YWZjNjU5OGFjZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZnVsbHNjcmVl
bi9mdWxsLXNjcmVlbi10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1z
Y3JlZW4tdGVzdC5qcwpAQCAtOCw2ICs4LDE0IEBAIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiB9CiAK
K2Z1bmN0aW9uIHJ1bldpdGhLZXlEb3duKGZuKSAKK3sKKyAgICBkb2N1bWVudC5hZGRFdmVudExp
c3RlbmVyKCdrZXlwcmVzcycsIGZ1bmN0aW9uKCkgeyBmbigpOyB9LCBmYWxzZSk7CisgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBldmVudFNlbmRlci5rZXlE
b3duKCIgIiwgW10pOworICAgIH0KK30KKwogZnVuY3Rpb24gbG9nQ29uc29sZSgpCiB7CiAgICAg
aWYgKCFjb25zb2xlICYmIGRvY3VtZW50LmJvZHkpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tdHdpY2UuaHRtbCBiL0xheW91dFRlc3RzL2Z1bGxzY3Jl
ZW4vZnVsbC1zY3JlZW4tdHdpY2UuaHRtbAppbmRleCAwNjQ4NWI4MjVhNjQ1YjE4MzRmNDEwYTk5
Y2UyMWEyMWIxMTM4Mjk0Li5mNDczZGIyM2Y0OTIzOTIyNThhNzBlNWEyMmNiNmQxNjJlNDlkOGIx
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLXR3aWNlLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi10d2ljZS5odG1sCkBA
IC0yMCw3ICsyMCw3IEBACiAgICAgICAgIHZhciBzcGFuRW50ZXJlZEZ1bGxTY3JlZW4gPSBmdW5j
dGlvbigpIHsKICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiZG9jdW1lbnQud2Via2l0Q3VycmVu
dEZ1bGxTY3JlZW5FbGVtZW50Iiwgc3Bhbik7CiAgICAgICAgICAgICBjYWxsYmFjayA9IGRvY3Vt
ZW50RW50ZXJlZEZ1bGxTY3JlZW47Ci0gICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1l
bnQud2Via2l0UmVxdWVzdEZ1bGxTY3JlZW4oKTsKKyAgICAgICAgICAgIHJ1bldpdGhLZXlEb3du
KGZ1bmN0aW9uKCl7ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LndlYmtpdFJlcXVlc3RGdWxsU2Ny
ZWVuKCl9KTsKICAgICAgICAgfTsKICAgICAKICAgICAgICAgdmFyIGRvY3VtZW50RW50ZXJlZEZ1
bGxTY3JlZW4gPSBmdW5jdGlvbigpIHsKQEAgLTMwLDYgKzMwLDYgQEAKICAgICAgICAgfTsKIAog
ICAgICAgICBjYWxsYmFjayA9IHNwYW5FbnRlcmVkRnVsbFNjcmVlbjsKLSAgICAgICAgc3Bhbi53
ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbigpOworICAgICAgICBydW5XaXRoS2V5RG93bihmdW5jdGlv
bigpe3NwYW4ud2Via2l0UmVxdWVzdEZ1bGxTY3JlZW4oKX0pOwogICAgIH0KIDwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGY2YTNhMzkyZDQyOTc0OTJkMzZiZGNkNTBhYzhkZTVmMzdhODkyODYuLmYw
YmU5OTVhZmMxZTNlODNhN2Y4MzI1M2JjNzVkNzNmZTJhMzIxNmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAxMS0wMy0xMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4K
KworICAgICAgICBGdWxsU2NyZWVuOiBIYW5kbGUgZW50ZXJpbmcgZnVsbCBzY3JlZW4gc2VjdXJp
dHkgcmVzdHJpY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01NjI2NAorCisgICAgICAgIFRlc3RzOiBmdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWlm
cmFtZS1hbGxvd2VkLmh0bWwKKyAgICAgICAgICAgICAgIGZ1bGxzY3JlZW4vZnVsbC1zY3JlZW4t
aWZyYW1lLW5vdC1hbGxvd2VkLmh0bWwKKworICAgICAgICBEaXNhYmxlIGZ1bGwgc2NyZWVuIGRv
Y3VtZW50cyBpbiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgICAgICAgIDEpIHJlcXVlc3Rp
bmcgZWxlbWVudCBpcyBpbiBhbiBpZnJhbWUgd2hpY2ggZG9lcyBub3QgaGF2ZSBhCisgICAgICAg
IHdlYmtpdGFsbG93ZnVsbHNjcmVlbiBhdHRyaWJ1dGUuCisgICAgICAgIDIpIHBhZ2UgaXMgbm90
IHByb2Nlc3NpbmcgYSB1c2VyIGdlc3R1cmUuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmZ1bGxTY3JlZW5Jc0FsbG93ZWRGb3JFbGVt
ZW50KTogQWRkZWQuICBDaGVja3MKKyAgICAgICAgICAgIHRvIHNlZSBpZiBlbGVtZW50cyBjb250
YWluZWQgaW4gSUZSQU1FUyBhcmUgYWxsb3dlZCB0bworICAgICAgICAgICAgZW50ZXIgZnVsbCBz
Y3JlZW4uCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6d2Via2l0UmVxdWVzdEZ1bGxTY3Jl
ZW5Gb3JFbGVtZW50KTogQ2hlY2tzCisgICAgICAgICAgICBpZiBwYWdlIGlzIGN1cnJlbnRseSBw
cm9jZXNzaW5nIGEgdXNlciBnZXN0dXJlLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAg
ICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluOiBBZGRlZCB3ZWJraXRhbGxvd2Z1bGxz
Y3JlZW5BdHRyLgorICAgICAgICAqIGh0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTEZyYW1lRWxlbWVudEJhc2U6OmFsbG93RnVsbFNjcmVlbik6IEFk
ZGVkLgorICAgICAgICAqIGh0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuaDoKKwogMjAxMS0wMy0x
MiAgQ2FtZXJvbiBad2FyaWNoICA8endhcmljaEBhcHBsZS5jb20+CiAKICAgICAgICAgTm90IHJl
dmlld2VkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNDQ1NDM2ODk1ZjRlODkyZmE3ZmE3
NjgzMjc4MmY0MDY3MDhiM2QzMi4uZGJjYTk3ZDAzNmU2ZDZiMjhiZjFiYmVkNTU5MDhlOTBlZDVi
OWFlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00ODQ5LDYgKzQ4NDksMjAgQEAgYm9v
bCBEb2N1bWVudDo6aXNYSFRNTE1QRG9jdW1lbnQoKSBjb25zdAogI2VuZGlmCiAKICNpZiBFTkFC
TEUoRlVMTFNDUkVFTl9BUEkpCitib29sIERvY3VtZW50OjpmdWxsU2NyZWVuSXNBbGxvd2VkRm9y
RWxlbWVudChFbGVtZW50KiBlbGVtZW50KSBjb25zdAoreworICAgIEFTU0VSVChlbGVtZW50KTsK
KyAgICB3aGlsZSAoSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lckVsZW1lbnQgPSBlbGVtZW50
LT5kb2N1bWVudCgpLT5vd25lckVsZW1lbnQoKSkgeworICAgICAgICBpZiAoIW93bmVyRWxlbWVu
dC0+aGFzVGFnTmFtZShmcmFtZVRhZykgJiYgIW93bmVyRWxlbWVudC0+aGFzVGFnTmFtZShpZnJh
bWVUYWcpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYgKCFzdGF0aWNfY2Fz
dDxIVE1MRnJhbWVFbGVtZW50QmFzZSo+KG93bmVyRWxlbWVudCktPmFsbG93RnVsbFNjcmVlbigp
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBlbGVtZW50ID0gb3duZXJFbGVt
ZW50OworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBEb2N1bWVudDo6d2Via2l0
UmVxdWVzdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIHVuc2lnbmVkIHNo
b3J0IGZsYWdzKQogewogICAgIGlmICghcGFnZSgpIHx8ICFwYWdlKCktPnNldHRpbmdzKCktPmZ1
bGxTY3JlZW5FbmFibGVkKCkpCkBAIC00ODU3LDYgKzQ4NzEsMTIgQEAgdm9pZCBEb2N1bWVudDo6
d2Via2l0UmVxdWVzdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIHVuc2ln
bmVkIHNob3IKICAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudEVs
ZW1lbnQoKTsKICAgICAKKyAgICBpZiAoIWZ1bGxTY3JlZW5Jc0FsbG93ZWRGb3JFbGVtZW50KGVs
ZW1lbnQpKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgaWYgKCFTY3JpcHRDb250cm9sbGVy
Ojpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAogICAgIGlm
ICghcGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50KCktPnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1l
bnQoZWxlbWVudCkpCiAgICAgICAgIHJldHVybjsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5k
ZXggNGIxYTQ3N2Q1N2MxOTVmMTMzNGI5YzA5ZjJlNzJhZGRlNjRjYjcxMi4uM2Y3NWZkYzg5ZmZl
Mzk2NmVkODQxNDEyNGYzZWJmMGZkOTA2NmFmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTEw
OTMsNiArMTA5Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEZ1bGxTY3JlZW5SZW5kZXJlckJh
Y2tncm91bmRDb2xvcihDb2xvcik7CiAgICAgCiAgICAgdm9pZCBmdWxsU2NyZWVuQ2hhbmdlRGVs
YXlUaW1lckZpcmVkKFRpbWVyPERvY3VtZW50PiopOworICAgIGJvb2wgZnVsbFNjcmVlbklzQWxs
b3dlZEZvckVsZW1lbnQoRWxlbWVudCopIGNvbnN0OwogI2VuZGlmCiAKICAgICAvLyBVc2VkIHRv
IGFsbG93IGVsZW1lbnQgdGhhdCBsb2FkcyBkYXRhIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCBhIEZy
YW1lTG9hZGVyIHRvIGRlbGF5IHRoZSAnbG9hZCcgZXZlbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEF0dHJpYnV0ZU5hbWVzLmluCmluZGV4IDk1NjgxMmQ0MDY2ZTdjZWUxNDZmMTY4NjExOTc3
MmE4MjBmNTZjNDYuLjNhNmZlYTQ1ZjlhMmE5NWY0NWJkMWFmNjE3M2Q1MjE0NGQxNjI2ZTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCkBAIC0yOTgsNiArMjk4
LDcgQEAgdmVyc2lvbgogdmlld3NvdXJjZQogdmxpbmsKIHZzcGFjZQord2Via2l0YWxsb3dmdWxs
c2NyZWVuCiB3ZWJraXRkaXJlY3RvcnkKIHdpZHRoCiB3cmFwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwCmluZGV4IGNmMDc5ZWFhYWE3MDZmMjcxNTljMTU4
MDBhODhhYTAxNDAyMmZmNGIuLjA4YjZhNjRkMDYzN2RiMjkyYjc4NzJjZjg2ODc5NGIyNzQwMjRk
ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwCkBA
IC0yODMsNCArMjgzLDExIEBAIHZvaWQgSFRNTEZyYW1lRWxlbWVudEJhc2U6OndpbGxSZW1vdmUo
KQogICAgIEhUTUxGcmFtZU93bmVyRWxlbWVudDo6d2lsbFJlbW92ZSgpOwogfQogCisjaWYgRU5B
QkxFKEZVTExTQ1JFRU5fQVBJKQorYm9vbCBIVE1MRnJhbWVFbGVtZW50QmFzZTo6YWxsb3dGdWxs
U2NyZWVuKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaGFzQXR0cmlidXRlKHdlYmtpdGFsbG93ZnVs
bHNjcmVlbkF0dHIpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuaAppbmRleCBlNWY5YzQ2NTA5ZDdh
OWQyMDcyYWZmNjgzM2VjOTU5YTQzNzZiZThkLi45OTIyZmQxNWI5M2UyZGNmYTBmOTI3YzhlMmM3
ODhmZDFhMjVlYjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVs
ZW1lbnRCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFz
ZS5oCkBAIC00Myw2ICs0Myw5IEBAIHB1YmxpYzoKICAgICBpbnQgaGVpZ2h0KCkgY29uc3Q7CiAK
ICAgICB2b2lkIHNldFJlbWFpbnNBbGl2ZU9uUmVtb3ZhbEZyb21UcmVlKGJvb2wpOworI2lmIEVO
QUJMRShGVUxMU0NSRUVOX0FQSSkKKyAgICB2aXJ0dWFsIGJvb2wgYWxsb3dGdWxsU2NyZWVuKCkg
Y29uc3Q7CisjZW5kaWYKIAogcHJvdGVjdGVkOgogICAgIEhUTUxGcmFtZUVsZW1lbnRCYXNlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwo=
</data>
<flag name="review"
          id="77797"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
      

    </bug>

</bugzilla>