<?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>79947</bug_id>
          
          <creation_ts>2012-02-29 14:15:55 -0800</creation_ts>
          <short_desc>[V8] Bindings for node always check if they are a Document.</short_desc>
          <delta_ts>2012-03-02 13:45:34 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Erik Arvidsson">arv</reporter>
          <assigned_to name="Erik Arvidsson">arv</assigned_to>
          <cc>abarth</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>567928</commentid>
    <comment_count>0</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-02-29 14:15:55 -0800</bug_when>
    <thetext>All the bindings for interfaces that extend Node have the following:

v8::Handle&lt;v8::Object&gt; V8HTMLAnchorElement::wrapSlow(HTMLAnchorElement* impl)
{
    v8::Handle&lt;v8::Object&gt; wrapper;
    V8Proxy* proxy = 0;
    if (impl-&gt;document()) {
        proxy = V8Proxy::retrieve(impl-&gt;document()-&gt;frame());
        if (proxy &amp;&amp; static_cast&lt;Node*&gt;(impl-&gt;document()) == static_cast&lt;Node*&gt;(impl)) {
            if (proxy-&gt;windowShell()-&gt;context().IsEmpty() &amp;&amp; proxy-&gt;windowShell()-&gt;initContextIfNeeded()) {
                // initContextIfNeeded may have created a wrapper for the object, retry from the start.
                return V8HTMLAnchorElement::wrap(impl);
            }
        }
    }
    ...

The important line here is

        if (proxy &amp;&amp; static_cast&lt;Node*&gt;(impl-&gt;document()) == static_cast&lt;Node*&gt;(impl)) {

which seems to be only true if impl is a document.

I believe we can remove this check in the code generator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567978</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-29 14:53:59 -0800</bug_when>
    <thetext>We can also remove 

if (impl-&gt;document()) {

for all nodes except DocumentType nodes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568794</commentid>
    <comment_count>2</comment_count>
      <attachid>129727</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-03-01 11:47:21 -0800</bug_when>
    <thetext>Created attachment 129727
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569684</commentid>
    <comment_count>3</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-03-02 09:03:17 -0800</bug_when>
    <thetext>Adam, Kentaro, Nate? Can anyone review this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569697</commentid>
    <comment_count>4</comment_count>
      <attachid>129727</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-02 09:15:48 -0800</bug_when>
    <thetext>Comment on attachment 129727
Patch

Can you run run-bindings-tests --reset-results so we can see the change in the generated code?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569699</commentid>
    <comment_count>5</comment_count>
      <attachid>129727</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-02 09:19:41 -0800</bug_when>
    <thetext>Comment on attachment 129727
Patch

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

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:3038
&gt; +    if (IsNodeSubType($dataNode) &amp;&amp; $interfaceName ne &quot;DocumentType&quot;) {
&gt; +        $proxyInit = &quot;V8Proxy::retrieve(impl-&gt;document()-&gt;frame())&quot;;
&gt; +    } else {
&gt; +        $proxyInit = &quot;0&quot;;

Why is $proxyInit always zero when $interfaceName ne &quot;DocumentType&quot; ?  I would have expected the DocumentType case to need a null-check on impl-&gt;document().  Presumably when impl-&gt;document() is non-null, the &quot;DocumentType&quot; case should work the same as the other nodes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569701</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-02 09:20:25 -0800</bug_when>
    <thetext>Do you have any stats on how much performance we gain with this change?  If so, you might want to put them in the ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569736</commentid>
    <comment_count>7</comment_count>
      <attachid>129727</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-03-02 10:15:49 -0800</bug_when>
    <thetext>Comment on attachment 129727
Patch

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

&gt;&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:3038
&gt;&gt; +        $proxyInit = &quot;0&quot;;
&gt; 
&gt; Why is $proxyInit always zero when $interfaceName ne &quot;DocumentType&quot; ?  I would have expected the DocumentType case to need a null-check on impl-&gt;document().  Presumably when impl-&gt;document() is non-null, the &quot;DocumentType&quot; case should work the same as the other nodes.

I misunderstood your earlier comment. I thought you said that the document() of a DocumentType i always null. However it might be null so a check is needed for that. I will update this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569738</commentid>
    <comment_count>8</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-03-02 10:17:19 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Do you have any stats on how much performance we gain with this change?  If so, you might want to put them in the ChangeLog.

I haven&apos;t. The perf tests takes too long to run. I was just going to monitor the perf bots instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569756</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-02 10:37:45 -0800</bug_when>
    <thetext>Oh, sorry.  The DocumentType node can have a null document (but also can have a non-null document).  Other types of nodes always have non-null documents.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569768</commentid>
    <comment_count>10</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-03-02 10:55:07 -0800</bug_when>
    <thetext>Sorry about forgetting about run-binding-tests. However, none of the test bindings are Nodes so this will not be visible in there (The added UNLIKELY will show up though).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569794</commentid>
    <comment_count>11</comment_count>
      <attachid>129930</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-03-02 11:35:50 -0800</bug_when>
    <thetext>Created attachment 129930
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569902</commentid>
    <comment_count>12</comment_count>
      <attachid>129930</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-02 13:45:27 -0800</bug_when>
    <thetext>Comment on attachment 129930
Patch

Clearing flags on attachment: 129930

Committed r109611: &lt;http://trac.webkit.org/changeset/109611&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569903</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-02 13:45:34 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129727</attachid>
            <date>2012-03-01 11:47:21 -0800</date>
            <delta_ts>2012-03-02 11:35:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79947-20120301114720.patch</filename>
            <type>text/plain</type>
            <size>2800</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5MTM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjJmNjliNWM0ZjU1NzY2
MDdkOGU5OGVhNGFlYjEyMTJhMjhlMDE3Yy4uOGU4Yzc0M2UwNDA1YzQ0MDZkNjgzMmFmNzI0NjBm
NjVkNjVjMzliNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTAzLTAxICBFcmlr
IEFydmlkc3NvbiAgPGFydkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1Y4XSBCaW5kaW5ncyBm
b3Igbm9kZSBhbHdheXMgY2hlY2sgaWYgdGhleSBhcmUgYSBEb2N1bWVudC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5OTQ3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2VzIHRoZSBnZW5l
cmF0ZWQgYmluZGluZ3MgY29kZSB0byBvbmx5IGdlbmVyYXRlIHRoZSBEb2N1bWVudCBjb2RlIGZv
ciB0aGUgRG9jdW1lbnQgd3JhcHBlcnMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBDb3ZlcmVk
IGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yVjgucG06CisgICAgICAgIChHZW5lcmF0ZVRvVjhDb252ZXJ0ZXJzKToKKwogMjAxMi0w
Mi0yOCAgQWxleGlzIE1lbmFyZCAgPGFsZXhpcy5tZW5hcmRAb3BlbmJvc3NhLm9yZz4KIAogICAg
ICAgICBnZXRDb21wdXRlZFN0eWxlIGZhaWxzIGZvciAnZmlyc3QtbGluZScgcHNldWRvLWVsZW1l
bnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvclY4LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
VjgucG0KaW5kZXggOGM0NmY4YzQyM2NhMWU0NTE5ZDM3MGU3MzJkZTQ4ZDY2YzRmZGJkZi4uOWM3
Y2Y4YjEzNTU4NzNmYmM1YWEzZjg4NGUxMWY1MzhjNWZiZjc5OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTMwMjksMjEg
KzMwMjksMjQgQEAgc3ViIEdlbmVyYXRlVG9WOENvbnZlcnRlcnMKIHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4gJHtjbGFzc05hbWV9Ojp3cmFwU2xvdygke25hdGl2ZVR5cGV9KiBpbXBsKQogewogICAg
IHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlcjsKLSAgICBWOFByb3h5KiBwcm94eSA9IDA7
CiBFTkQKIAotICAgIGlmIChJc05vZGVTdWJUeXBlKCRkYXRhTm9kZSkpIHsKLSAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsIDw8RU5EKTsKLSAgICBpZiAoaW1wbC0+ZG9jdW1lbnQoKSkgewotICAg
ICAgICBwcm94eSA9IFY4UHJveHk6OnJldHJpZXZlKGltcGwtPmRvY3VtZW50KCktPmZyYW1lKCkp
OwotICAgICAgICBpZiAocHJveHkgJiYgc3RhdGljX2Nhc3Q8Tm9kZSo+KGltcGwtPmRvY3VtZW50
KCkpID09IHN0YXRpY19jYXN0PE5vZGUqPihpbXBsKSkgewotICAgICAgICAgICAgaWYgKHByb3h5
LT53aW5kb3dTaGVsbCgpLT5jb250ZXh0KCkuSXNFbXB0eSgpICYmIHByb3h5LT53aW5kb3dTaGVs
bCgpLT5pbml0Q29udGV4dElmTmVlZGVkKCkpIHsKLSAgICAgICAgICAgICAgICAvLyBpbml0Q29u
dGV4dElmTmVlZGVkIG1heSBoYXZlIGNyZWF0ZWQgYSB3cmFwcGVyIGZvciB0aGUgb2JqZWN0LCBy
ZXRyeSBmcm9tIHRoZSBzdGFydC4KLSAgICAgICAgICAgICAgICByZXR1cm4gJHtjbGFzc05hbWV9
Ojp3cmFwKGltcGwpOwotICAgICAgICAgICAgfQotICAgICAgICB9CisgICAgbXkgJHByb3h5SW5p
dDsKKyAgICBpZiAoSXNOb2RlU3ViVHlwZSgkZGF0YU5vZGUpICYmICRpbnRlcmZhY2VOYW1lIG5l
ICJEb2N1bWVudFR5cGUiKSB7CisgICAgICAgICRwcm94eUluaXQgPSAiVjhQcm94eTo6cmV0cmll
dmUoaW1wbC0+ZG9jdW1lbnQoKS0+ZnJhbWUoKSkiOworICAgIH0gZWxzZSB7CisgICAgICAgICRw
cm94eUluaXQgPSAiMCI7CiAgICAgfQorICAgIHB1c2goQGltcGxDb250ZW50LCA8PEVORCk7Cisg
ICAgVjhQcm94eSogcHJveHkgPSAkcHJveHlJbml0OworRU5ECiAKKyAgICBpZiAoSXNTdWJUeXBl
KCRkYXRhTm9kZSwgIkRvY3VtZW50IikpIHsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8
RU5EKTsKKyAgICBpZiAocHJveHkgJiYgcHJveHktPndpbmRvd1NoZWxsKCktPmNvbnRleHQoKS5J
c0VtcHR5KCkgJiYgcHJveHktPndpbmRvd1NoZWxsKCktPmluaXRDb250ZXh0SWZOZWVkZWQoKSkg
eworICAgICAgICAvLyBpbml0Q29udGV4dElmTmVlZGVkIG1heSBoYXZlIGNyZWF0ZWQgYSB3cmFw
cGVyIGZvciB0aGUgb2JqZWN0LCByZXRyeSBmcm9tIHRoZSBzdGFydC4KKyAgICAgICAgcmV0dXJu
ICR7Y2xhc3NOYW1lfTo6d3JhcChpbXBsKTsKKyAgICB9CiBFTkQKICAgICB9CiAKQEAgLTMwODUs
NyArMzA4OCw3IEBAIEVORAogICAgIH0KIAogICAgIHB1c2goQGltcGxDb250ZW50LCA8PEVORCk7
Ci0gICAgaWYgKHdyYXBwZXIuSXNFbXB0eSgpKQorICAgIGlmIChVTkxJS0VMWSh3cmFwcGVyLklz
RW1wdHkoKSkpCiAgICAgICAgIHJldHVybiB3cmFwcGVyOwogRU5ECiAgICAgcHVzaChAaW1wbENv
bnRlbnQsICJcbiAgICBpbXBsLT5yZWYoKTtcbiIpIGlmIElzUmVmUHRyVHlwZSgkaW50ZXJmYWNl
TmFtZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129930</attachid>
            <date>2012-03-02 11:35:50 -0800</date>
            <delta_ts>2012-03-02 13:45:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79947-20120302113549.patch</filename>
            <type>text/plain</type>
            <size>11261</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5NTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDE1OTkyZGNhNGY1Y2Q5
NTI5YzEwNjRjYjQxN2Y1ZDc0NmMxMmExNi4uZGNjYmVhNjJlOTI1ZDFiZTE1MzdhMTVkMDFhNjY4
NGFhOTc2Yjc0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTAzLTAyICBFcmlr
IEFydmlkc3NvbiAgPGFydkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1Y4XSBCaW5kaW5ncyBm
b3Igbm9kZSBhbHdheXMgY2hlY2sgaWYgdGhleSBhcmUgYSBEb2N1bWVudC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5OTQ3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2VzIHRoZSBnZW5l
cmF0ZWQgYmluZGluZ3MgY29kZSB0byBvbmx5IGdlbmVyYXRlIHRoZSBEb2N1bWVudCBjb2RlIGZv
ciB0aGUgRG9jdW1lbnQgd3JhcHBlcnMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBDb3ZlcmVk
IGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yVjgucG06CisgICAgICAgIChHZW5lcmF0ZVRvVjhDb252ZXJ0ZXJzKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhGbG9hdDY0QXJyYXkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VjhGbG9hdDY0QXJyYXk6OndyYXBTbG93KToKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlY4VGVzdEFjdGl2ZURPTU9iamVjdDo6d3JhcFNsb3cpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0b21OYW1lZEdldHRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpWOFRlc3RDdXN0b21OYW1lZEdldHRlcjo6d3JhcFNsb3cpOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0cnVjdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlY4VGVzdEV2ZW50Q29uc3RydWN0b3I6OndyYXBTbG93KToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRUYXJnZXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VjhUZXN0RXZlbnRUYXJnZXQ6OndyYXBTbG93KToKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlY4VGVzdEludGVyZmFjZTo6d3JhcFNsb3cpOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlY4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OndyYXBTbG93KToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpWOFRlc3ROYW1lZENvbnN0cnVjdG9yOjp3cmFwU2xvdyk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpWOFRlc3RPYmo6OndyYXBTbG93KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlY4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6d3JhcFNs
b3cpOgorCiAyMDEyLTAzLTAyICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+
CiAKICAgICAgICAgW0dUS10gU21vb3RoIHNjcm9sbGluZyBzdXBwb3J0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmluZGV4IDgxMzk5
ODBjMTliNDMzMDZkOTM3YWFmZjhhYzNmNjVkZmIxNTM5MWIuLmZlYjliMjkxOTE4Nzk4Mzg5OGFk
NWE0ZDNhNGI1NDM5NzA2ODE4ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCkBAIC0zMDM3LDIxICszMDM3LDI4IEBAIHN1YiBH
ZW5lcmF0ZVRvVjhDb252ZXJ0ZXJzCiB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+ICR7Y2xhc3NOYW1l
fTo6d3JhcFNsb3coJHtuYXRpdmVUeXBlfSogaW1wbCkKIHsKICAgICB2ODo6SGFuZGxlPHY4OjpP
YmplY3Q+IHdyYXBwZXI7Ci0gICAgVjhQcm94eSogcHJveHkgPSAwOwogRU5ECiAKKyAgICBteSAk
cHJveHlJbml0OwogICAgIGlmIChJc05vZGVTdWJUeXBlKCRkYXRhTm9kZSkpIHsKLSAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKLSAgICBpZiAoaW1wbC0+ZG9jdW1lbnQoKSkgewot
ICAgICAgICBwcm94eSA9IFY4UHJveHk6OnJldHJpZXZlKGltcGwtPmRvY3VtZW50KCktPmZyYW1l
KCkpOwotICAgICAgICBpZiAocHJveHkgJiYgc3RhdGljX2Nhc3Q8Tm9kZSo+KGltcGwtPmRvY3Vt
ZW50KCkpID09IHN0YXRpY19jYXN0PE5vZGUqPihpbXBsKSkgewotICAgICAgICAgICAgaWYgKHBy
b3h5LT53aW5kb3dTaGVsbCgpLT5jb250ZXh0KCkuSXNFbXB0eSgpICYmIHByb3h5LT53aW5kb3dT
aGVsbCgpLT5pbml0Q29udGV4dElmTmVlZGVkKCkpIHsKLSAgICAgICAgICAgICAgICAvLyBpbml0
Q29udGV4dElmTmVlZGVkIG1heSBoYXZlIGNyZWF0ZWQgYSB3cmFwcGVyIGZvciB0aGUgb2JqZWN0
LCByZXRyeSBmcm9tIHRoZSBzdGFydC4KLSAgICAgICAgICAgICAgICByZXR1cm4gJHtjbGFzc05h
bWV9Ojp3cmFwKGltcGwpOwotICAgICAgICAgICAgfQorICAgICAgICAkcHJveHlJbml0ID0gIlY4
UHJveHk6OnJldHJpZXZlKGltcGwtPmRvY3VtZW50KCktPmZyYW1lKCkpIjsKKyAgICAgICAgIyBE
b2N1bWVudFR5cGUgbm9kZXMgYXJlIHRoZSBvbmx5IG5vZGVzIHRoYXQgbWF5IGhhdmUgYSBOVUxM
IGRvY3VtZW50LgorICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRvY3VtZW50VHlwZSIp
IHsKKyAgICAgICAgICAgICRwcm94eUluaXQgPSAiaW1wbC0+ZG9jdW1lbnQoKSA/ICRwcm94eUlu
aXQgOiAwIjsKICAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgICRwcm94eUluaXQgPSAi
MCI7CiAgICAgfQorICAgIHB1c2goQGltcGxDb250ZW50LCA8PEVORCk7CisgICAgVjhQcm94eSog
cHJveHkgPSAkcHJveHlJbml0OworRU5ECiAKKyAgICBpZiAoSXNTdWJUeXBlKCRkYXRhTm9kZSwg
IkRvY3VtZW50IikpIHsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKKyAgICBp
ZiAocHJveHkgJiYgcHJveHktPndpbmRvd1NoZWxsKCktPmNvbnRleHQoKS5Jc0VtcHR5KCkgJiYg
cHJveHktPndpbmRvd1NoZWxsKCktPmluaXRDb250ZXh0SWZOZWVkZWQoKSkgeworICAgICAgICAv
LyBpbml0Q29udGV4dElmTmVlZGVkIG1heSBoYXZlIGNyZWF0ZWQgYSB3cmFwcGVyIGZvciB0aGUg
b2JqZWN0LCByZXRyeSBmcm9tIHRoZSBzdGFydC4KKyAgICAgICAgcmV0dXJuICR7Y2xhc3NOYW1l
fTo6d3JhcChpbXBsKTsKKyAgICB9CiBFTkQKICAgICB9CiAKQEAgLTMwOTMsNyArMzEwMCw3IEBA
IEVORAogICAgIH0KIAogICAgIHB1c2goQGltcGxDb250ZW50LCA8PEVORCk7Ci0gICAgaWYgKHdy
YXBwZXIuSXNFbXB0eSgpKQorICAgIGlmIChVTkxJS0VMWSh3cmFwcGVyLklzRW1wdHkoKSkpCiAg
ICAgICAgIHJldHVybiB3cmFwcGVyOwogRU5ECiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiAg
ICBpbXBsLT5yZWYoKTtcbiIpIGlmIElzUmVmUHRyVHlwZSgkaW50ZXJmYWNlTmFtZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhGbG9hdDY0
QXJyYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4Rmxv
YXQ2NEFycmF5LmNwcAppbmRleCAwYTBmNjI4YjQyOWE4ODgxMmMyMDFmZGMyMjkxZjM1NGNhZGMz
NTdlLi5iZGM2MDI4YmU4YWRiNjZlNjRlOWZjY2VmNDgyMjcyZjA2NzM2MTgwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhGbG9hdDY0QXJyYXku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0
NjRBcnJheS5jcHAKQEAgLTEyNSw3ICsxMjUsNyBAQCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4
RmxvYXQ2NEFycmF5Ojp3cmFwU2xvdyhGbG9hdDY0QXJyYXkqIGltcGwpCiAgICAgdjg6OkhhbmRs
ZTx2ODo6T2JqZWN0PiB3cmFwcGVyOwogICAgIFY4UHJveHkqIHByb3h5ID0gMDsKICAgICB3cmFw
cGVyID0gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0KHByb3h5LCAmaW5mbywgaW1w
bCk7Ci0gICAgaWYgKHdyYXBwZXIuSXNFbXB0eSgpKQorICAgIGlmIChVTkxJS0VMWSh3cmFwcGVy
LklzRW1wdHkoKSkpCiAgICAgICAgIHJldHVybiB3cmFwcGVyOwogCiAgICAgaW1wbC0+cmVmKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0QWN0aXZlRE9NT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuY3BwCmluZGV4IGRjNzNjMjY5MGUyMjVlYWU0
NGM1NmFmZTAwZWFkMjEwNzBlOTNlNjYuLmZmYzk3ZTQ2MjgyODc5OTFhZGMxODRiZTc2YWIzMDJj
ZTQ5OTZkMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuY3BwCkBAIC0xNzksNyAr
MTc5LDcgQEAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRlc3RBY3RpdmVET01PYmplY3Q6Ondy
YXBTbG93KFRlc3RBY3RpdmVET01PYmplY3QqIGltcGwKICAgICAvLyBFeGl0IHRoZSBub2RlJ3Mg
Y29udGV4dCBpZiBpdCB3YXMgZW50ZXJlZC4KICAgICBpZiAoIWNvbnRleHQuSXNFbXB0eSgpKQog
ICAgICAgICBjb250ZXh0LT5FeGl0KCk7Ci0gICAgaWYgKHdyYXBwZXIuSXNFbXB0eSgpKQorICAg
IGlmIChVTkxJS0VMWSh3cmFwcGVyLklzRW1wdHkoKSkpCiAgICAgICAgIHJldHVybiB3cmFwcGVy
OwogCiAgICAgaW1wbC0+cmVmKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNw
cAppbmRleCA2OTllYjRiOTMzNGI5MWFlMjNhYWMwNWM4ZGI2NjU4MTkwNjczZGQwLi5jYmZmNmQ0
ZTdjODlhOWQwMDdiMWI0NmVhMTNkYmE3ZTQ5MjI3NmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0
b21OYW1lZEdldHRlci5jcHAKQEAgLTExNSw3ICsxMTUsNyBAQCB2ODo6SGFuZGxlPHY4OjpPYmpl
Y3Q+IFY4VGVzdEN1c3RvbU5hbWVkR2V0dGVyOjp3cmFwU2xvdyhUZXN0Q3VzdG9tTmFtZWRHZXR0
ZXIqCiAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyOwogICAgIFY4UHJveHkqIHBy
b3h5ID0gMDsKICAgICB3cmFwcGVyID0gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0
KHByb3h5LCAmaW5mbywgaW1wbCk7Ci0gICAgaWYgKHdyYXBwZXIuSXNFbXB0eSgpKQorICAgIGlm
IChVTkxJS0VMWSh3cmFwcGVyLklzRW1wdHkoKSkpCiAgICAgICAgIHJldHVybiB3cmFwcGVyOwog
CiAgICAgaW1wbC0+cmVmKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKaW5k
ZXggZDU2MWViNDkxY2JjNjQ3M2M2MzA1M2VkNjEyYzAzZTIwMmFiZDM2Mi4uN2MwNmUzNGU2YTZh
ZjI2ODczMTEyMDI0YTFhY2M3ZWMzYmU4Mjk4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0
cnVjdG9yLmNwcApAQCAtMTUwLDcgKzE1MCw3IEBAIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhU
ZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6d3JhcFNsb3coVGVzdEV2ZW50Q29uc3RydWN0b3IqIGltCiAg
ICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyOwogICAgIFY4UHJveHkqIHByb3h5ID0g
MDsKICAgICB3cmFwcGVyID0gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0KHByb3h5
LCAmaW5mbywgaW1wbCk7Ci0gICAgaWYgKHdyYXBwZXIuSXNFbXB0eSgpKQorICAgIGlmIChVTkxJ
S0VMWSh3cmFwcGVyLklzRW1wdHkoKSkpCiAgICAgICAgIHJldHVybiB3cmFwcGVyOwogCiAgICAg
aW1wbC0+cmVmKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVjgvVjhUZXN0RXZlbnRUYXJnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50VGFyZ2V0LmNwcAppbmRleCBiZTAxMTMzODNmZGI2
MDkwMmZkYThhMzQzYWViYzk0MDNmMGMxMjU3Li4xZTZmYmZhNTM1M2RkOWJlN2ZmOTNhZTMyNmYx
NDJjNDY0MzkwM2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVjgvVjhUZXN0RXZlbnRUYXJnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudFRhcmdldC5jcHAKQEAgLTE3OCw3ICsxNzgs
NyBAQCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdEV2ZW50VGFyZ2V0Ojp3cmFwU2xvdyhU
ZXN0RXZlbnRUYXJnZXQqIGltcGwpCiAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVy
OwogICAgIFY4UHJveHkqIHByb3h5ID0gMDsKICAgICB3cmFwcGVyID0gVjhET01XcmFwcGVyOjpp
bnN0YW50aWF0ZVY4T2JqZWN0KHByb3h5LCAmaW5mbywgaW1wbCk7Ci0gICAgaWYgKHdyYXBwZXIu
SXNFbXB0eSgpKQorICAgIGlmIChVTkxJS0VMWSh3cmFwcGVyLklzRW1wdHkoKSkpCiAgICAgICAg
IHJldHVybiB3cmFwcGVyOwogCiAgICAgaW1wbC0+cmVmKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuY3Bw
CmluZGV4IGEzNDc2MjZmMWZmZTZjOWY1MWQxNzZkNmI5ODI4OTk1NDdjODBmZTEuLmEyYzU1MTg2
MGJmMDkwMGNkNjFmYTYxMjMxNTY0NzQ1MDI4NTk2ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuY3Bw
CkBAIC0zMTEsNyArMzExLDcgQEAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRlc3RJbnRlcmZh
Y2U6OndyYXBTbG93KFRlc3RJbnRlcmZhY2UqIGltcGwpCiAgICAgdjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0PiB3cmFwcGVyOwogICAgIFY4UHJveHkqIHByb3h5ID0gMDsKICAgICB3cmFwcGVyID0gVjhE
T01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0KHByb3h5LCAmaW5mbywgaW1wbCk7Ci0gICAg
aWYgKHdyYXBwZXIuSXNFbXB0eSgpKQorICAgIGlmIChVTkxJS0VMWSh3cmFwcGVyLklzRW1wdHko
KSkpCiAgICAgICAgIHJldHVybiB3cmFwcGVyOwogCiAgICAgaW1wbC0+cmVmKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKaW5kZXggMWZhMTJkNGViNjZl
ZTE4MjZjY2E3NzQxZDU3NjAyMTIzNjU5OWU5NS4uOTM0ZjY2ODM5Y2I4NmIyNTRlNjI3YTkzOWUx
MzZhYjU0MTM1NTQwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyLmNwcApAQCAtMTE1LDcgKzExNSw3IEBAIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6d3JhcFNsb3coVGVzdE1lZGlhUXVlcnlMaXN0CiAgICAg
djg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyOwogICAgIFY4UHJveHkqIHByb3h5ID0gMDsK
ICAgICB3cmFwcGVyID0gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0KHByb3h5LCAm
aW5mbywgaW1wbCk7Ci0gICAgaWYgKHdyYXBwZXIuSXNFbXB0eSgpKQorICAgIGlmIChVTkxJS0VM
WSh3cmFwcGVyLklzRW1wdHkoKSkpCiAgICAgICAgIHJldHVybiB3cmFwcGVyOwogCiAgICAgaW1w
bC0+cmVmKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggOGU2ZjYx
ZGZmODNhYWI1NjlmODliMjM3MTZmZDg5MWYyY2VmYjY1OS4uNWFiY2UwZTdkZThjNTg2MmIxODYz
N2QyMDRjNjI2ZTVlZDEyNjlmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROYW1lZENvbnN0cnVjdG9yLmNw
cApAQCAtMTYwLDcgKzE2MCw3IEBAIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0TmFtZWRD
b25zdHJ1Y3Rvcjo6d3JhcFNsb3coVGVzdE5hbWVkQ29uc3RydWN0b3IqIGltCiAgICAgdjg6Okhh
bmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyOwogICAgIFY4UHJveHkqIHByb3h5ID0gMDsKICAgICB3
cmFwcGVyID0gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0KHByb3h5LCAmaW5mbywg
aW1wbCk7Ci0gICAgaWYgKHdyYXBwZXIuSXNFbXB0eSgpKQorICAgIGlmIChVTkxJS0VMWSh3cmFw
cGVyLklzRW1wdHkoKSkpCiAgICAgICAgIHJldHVybiB3cmFwcGVyOwogCiAgICAgaW1wbC0+cmVm
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3RPYmouY3BwCmluZGV4IDRhMjAyOWEyMjFhMTQ1YmY0MThlMmJiYmE0YmYzMjgyYTE0NDI3
ZGMuLjZlMmM2YTc0ZDIwMWJkMTI4ZDgzOTVmMzJmODY4NzA0Mjg3ZjRlYjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3Bw
CkBAIC0yMDkzLDcgKzIwOTMsNyBAQCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdE9iajo6
d3JhcFNsb3coVGVzdE9iaiogaW1wbCkKICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBw
ZXI7CiAgICAgVjhQcm94eSogcHJveHkgPSAwOwogICAgIHdyYXBwZXIgPSBWOERPTVdyYXBwZXI6
Omluc3RhbnRpYXRlVjhPYmplY3QocHJveHksICZpbmZvLCBpbXBsKTsKLSAgICBpZiAod3JhcHBl
ci5Jc0VtcHR5KCkpCisgICAgaWYgKFVOTElLRUxZKHdyYXBwZXIuSXNFbXB0eSgpKSkKICAgICAg
ICAgcmV0dXJuIHdyYXBwZXI7CiAKICAgICBpbXBsLT5yZWYoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKaW5kZXggYWFmMjk4
ZTNjNzQ1ODVjZjEwNWU3NGIxMzNkNzNiMzU5YzFhY2NkNC4uZjMyOWFiMGYzMzU0NWYyMjRiNDhi
NjJkNjQwODVjZDk1MjQ2MDVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKQEAgLTE5Nyw3ICsxOTcsNyBAQCB2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+IFY4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6d3Jh
cFNsb3coVGVzdFNlcmlhbAogICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlcjsKICAg
ICBWOFByb3h5KiBwcm94eSA9IDA7CiAgICAgd3JhcHBlciA9IFY4RE9NV3JhcHBlcjo6aW5zdGFu
dGlhdGVWOE9iamVjdChwcm94eSwgJmluZm8sIGltcGwpOwotICAgIGlmICh3cmFwcGVyLklzRW1w
dHkoKSkKKyAgICBpZiAoVU5MSUtFTFkod3JhcHBlci5Jc0VtcHR5KCkpKQogICAgICAgICByZXR1
cm4gd3JhcHBlcjsKIAogICAgIGltcGwtPnJlZigpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>