<?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>66789</bug_id>
          
          <creation_ts>2011-08-23 11:13:41 -0700</creation_ts>
          <short_desc>MessageEvent.ports shouldn&apos;t ever be null.</short_desc>
          <delta_ts>2011-08-24 10:42:48 -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>DOM</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>
          
          <blocked>65209</blocked>
    
    <blocked>66829</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="David Levin">levin</reporter>
          <assigned_to name="David Levin">levin</assigned_to>
          <cc>kbr</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>455524</commentid>
    <comment_count>0</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-08-23 11:13:41 -0700</bug_when>
    <thetext>Currently we set it to null in various circumstances and this doesn&apos;t follow the spec.

Also, see http://www.w3.org/Bugs/Public/show_bug.cgi?id=13675</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455561</commentid>
    <comment_count>1</comment_count>
      <attachid>104877</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-08-23 11:54:03 -0700</bug_when>
    <thetext>Created attachment 104877
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455656</commentid>
    <comment_count>2</comment_count>
      <attachid>104877</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-08-23 13:21:56 -0700</bug_when>
    <thetext>Comment on attachment 104877
Patch

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

&gt; LayoutTests/fast/workers/resources/worker-thread-multi-port.js:4
&gt; +            testPassed(&quot;event.ports is non-null and zero- ength when no port sent&quot;);

I think this is an editing mistake where you turned the &quot;l&quot; into a space instead of turning the&quot;-&quot; into a space.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455760</commentid>
    <comment_count>3</comment_count>
      <attachid>104921</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-08-23 15:57:49 -0700</bug_when>
    <thetext>Created attachment 104921
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455763</commentid>
    <comment_count>4</comment_count>
      <attachid>104877</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-08-23 15:58:08 -0700</bug_when>
    <thetext>Comment on attachment 104877
Patch

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

&gt; Source/WebCore/bindings/js/JSMessageEventCustom.cpp:49
&gt;      MessagePortArray* ports = static_cast&lt;MessageEvent*&gt;(impl())-&gt;ports();
&gt;      if (!ports || ports-&gt;isEmpty())
&gt; -        return jsNull();
&gt; +        return constructEmptyArray(exec, globalObject());

It seems there is no need to check ports-&gt;isEmpty() any more here, since empty is no longer a special case. Unless we want a performance optimization for the empty case.

It also seems to me we could change things so a MessageEvent always has a MessagePortArray in it, and then we might not need a custom binding at all!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455765</commentid>
    <comment_count>5</comment_count>
      <attachid>104921</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-08-23 15:59:10 -0700</bug_when>
    <thetext>Comment on attachment 104921
Patch

I made a comment on the old patch that still applies. Seems to me that the “ports is an empty array instead of null” rule could be in the DOM instead of in the binding.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455885</commentid>
    <comment_count>6</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-08-23 17:49:15 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 104877 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=104877&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/bindings/js/JSMessageEventCustom.cpp:49
&gt; &gt;      MessagePortArray* ports = static_cast&lt;MessageEvent*&gt;(impl())-&gt;ports();
&gt; &gt;      if (!ports || ports-&gt;isEmpty())
&gt; &gt; -        return jsNull();
&gt; &gt; +        return constructEmptyArray(exec, globalObject());
&gt; 
&gt; It seems there is no need to check ports-&gt;isEmpty() any more here, since empty is no longer a special case. Unless we want a performance optimization for the empty case.

Good point. I&apos;ll clean that up before check-in.

&gt; 
&gt; It also seems to me we could change things so a MessageEvent always has a MessagePortArray in it, and then we might not need a custom binding at all!

I tried this and failed -- probably something simple. (Along with a few other changes) I tried to express the array as follows
-        readonly attribute [CustomGetter] Array ports;
+        readonly attribute MessagePort[] ports;
but that didn&apos;t work and I couldn&apos;t quickly figure out how to do the array, so I filed 66829 to do this later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455886</commentid>
    <comment_count>7</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-08-23 17:51:12 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; I tried this and failed -- probably something simple. (Along with a few other changes) I tried to express the array as follows
&gt; -        readonly attribute [CustomGetter] Array ports;
&gt; +        readonly attribute MessagePort[] ports;
&gt; but that didn&apos;t work and I couldn&apos;t quickly figure out how to do the array, so I filed 66829 to do this later.

I also tried 
        readonly attribute  Array ports;
and had problems.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456190</commentid>
    <comment_count>8</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-08-24 10:42:48 -0700</bug_when>
    <thetext>Committed as http://trac.webkit.org/changeset/93709</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104877</attachid>
            <date>2011-08-23 11:54:03 -0700</date>
            <delta_ts>2011-08-23 15:58:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66789-20110823115402.patch</filename>
            <type>text/plain</type>
            <size>19084</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTM1NjUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjYjZkZWQzNGJlZmUzMmMwY2JmNzNj
NTgxOTg4ZjAwZGM0OTE3NDNlLi4yMDhkZDJkNDg2OTc4Y2UwYjlhOTBlM2M3OTc5OTE2YmVmOWRi
NjRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTEtMDgtMjMgIERhdmlkIExldmluICA8bGV2
aW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1lc3NhZ2VFdmVudC5wb3J0cyBzaG91bGRuJ3Qg
ZXZlciBiZSBudWxsLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjY3ODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGaXggYWxsIHRlc3RzIHdoaWNoIHZlcmlmaWVkIHRoYXQgTWVzc2FnZUV2ZW50cy5wb3J0
cyB3YXMgbnVsbCBpbiB2YXJpb3VzIGNhc2VzLgorCisgICAgICAgICogZmFzdC9kb20vV2luZG93
L3dpbmRvdy1wb3N0bWVzc2FnZS1hcmdzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2V2
ZW50cy9tZXNzYWdlLXBvcnQtbXVsdGktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZXZl
bnRzL3Jlc291cmNlcy9tZXNzYWdlLXBvcnQtbXVsdGkuanM6CisgICAgICAgIChjaGFubmVsLnBv
cnQyLm9ubWVzc2FnZSk6CisgICAgICAgICogZmFzdC93b3JrZXJzL3Jlc291cmNlcy93b3JrZXIt
Y29udGV4dC1tdWx0aS1wb3J0LmpzOgorICAgICAgICAod29ya2VyLm9ubWVzc2FnZSk6CisgICAg
ICAgICogZmFzdC93b3JrZXJzL3Jlc291cmNlcy93b3JrZXItbWVzc2FnZXBvcnQuanM6CisgICAg
ICAgIChvbm1lc3NhZ2UpOgorICAgICAgICAqIGZhc3Qvd29ya2Vycy9yZXNvdXJjZXMvd29ya2Vy
LXRocmVhZC1tdWx0aS1wb3J0LmpzOgorICAgICAgICAob25tZXNzYWdlKToKKyAgICAgICAgKiBm
YXN0L3dvcmtlcnMvd29ya2VyLWNvbnRleHQtbXVsdGktcG9ydC1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC93b3JrZXJzL3dvcmtlci1tZXNzYWdlcG9ydC1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC93b3JrZXJzL3dvcmtlci1tdWx0aS1wb3J0LWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9ldmVudHMvbWVzc2FnZS1wb3J0LW11bHRp
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC93b3Jr
ZXJzL3dvcmtlci1jb250ZXh0LW11bHRpLXBvcnQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L3dvcmtlcnMvd29ya2VyLW11bHRpLXBvcnQtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZG9tL1dpbmRvdy93aW5k
b3ctcG9zdG1lc3NhZ2UtYXJncy1leHBlY3RlZC50eHQ6CisKIDIwMTEtMDgtMjIgIEFsaWNlIEJv
eGhhbGwgIDxhYm94aGFsbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQ2hy
aXMgRmxlaXphY2guCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXBvc3RtZXNzYWdlLWFyZ3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1hcmdzLWV4cGVjdGVkLnR4dAppbmRleCAwNTRkOTE4
YjEzMTg0OGEwMDk3YmI2OGIwNTU4NDY0OWRkYjA1NjNkLi44OTk2OGMxNDc2MmE5OGNmMThhNDEz
OGJhZTlhMzRlODlkMGY4YjljIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvd2luZG93LXBvc3RtZXNzYWdlLWFyZ3MtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtYXJncy1leHBlY3RlZC50eHQKQEAg
LTksMTAgKzksMTAgQEAgUEFTUzogUG9zdGluZyBtZXNzYWdlICgnNicsIHVuZGVmaW5lZCkgZGlk
IG5vdCB0aHJvdyBhbiBleGNlcHRpb24KIFBBU1M6IFBvc3RpbmcgbWVzc2FnZSAoJzcnLCBbb2Jq
ZWN0IE1lc3NhZ2VQb3J0XSxbb2JqZWN0IE1lc3NhZ2VQb3J0XSkgZGlkIG5vdCB0aHJvdyBhbiBl
eGNlcHRpb24KIFBBU1M6IFBvc3RpbmcgbWVzc2FnZSAoJzIxNDc0ODM2NDgnLCBudWxsKSBkaWQg
bm90IHRocm93IGFuIGV4Y2VwdGlvbgogUEFTUzogUG9zdGluZyBtZXNzYWdlICgnZG9uZScsICop
IGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uCi1SZWNlaXZlZCBtZXNzYWdlICc0JwotUmVjZWl2
ZWQgbWVzc2FnZSAnNScKLVJlY2VpdmVkIG1lc3NhZ2UgJzYnCitSZWNlaXZlZCBtZXNzYWdlICc0
JyB3aXRoIDAgcG9ydHMuCitSZWNlaXZlZCBtZXNzYWdlICc1JyB3aXRoIDAgcG9ydHMuCitSZWNl
aXZlZCBtZXNzYWdlICc2JyB3aXRoIDAgcG9ydHMuCiBSZWNlaXZlZCBtZXNzYWdlICc3JyB3aXRo
IDIgcG9ydHMuCi1SZWNlaXZlZCBtZXNzYWdlICcyMTQ3NDgzNjQ4JwotUmVjZWl2ZWQgbWVzc2Fn
ZSAnZG9uZScKK1JlY2VpdmVkIG1lc3NhZ2UgJzIxNDc0ODM2NDgnIHdpdGggMCBwb3J0cy4KK1Jl
Y2VpdmVkIG1lc3NhZ2UgJ2RvbmUnIHdpdGggMCBwb3J0cy4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvbWVzc2FnZS1wb3J0LW11bHRpLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL21lc3NhZ2UtcG9ydC1tdWx0aS1leHBlY3RlZC50eHQKaW5kZXgg
ZmY3NTU0NWJkMWM5MTc1ZTYyZTJlYzI4MTQ4ODM0ZjUwYWE4ZDNmZS4uMTYzYmRlZDVkYjViNzZk
YTc5MzE3NTBmOTM2ZWE1Yjg1YWNjMGY4ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvbWVzc2FnZS1wb3J0LW11bHRpLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9tZXNzYWdlLXBvcnQtbXVsdGktZXhwZWN0ZWQudHh0CkBAIC0xMCw4ICsxMCw4
IEBAIFBBU1MgY2hhbm5lbC5wb3J0MS5wb3N0TWVzc2FnZSgibm90QVBvcnQiLCBbY2hhbm5lbDMu
cG9ydDEsIHt9LCBjaGFubmVsMy5wb3J0Ml0pCiBQQVNTIGNoYW5uZWwucG9ydDEucG9zdE1lc3Nh
Z2UoIm5vdEFuQXJyYXkiLCBjaGFubmVsMy5wb3J0MSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogVHlwZSBlcnJvci4KIFBBU1MgY2hhbm5lbC5wb3J0MS5wb3N0TWVzc2FnZSgibm90QVNlcXVl
bmNlIiwgW3tsZW5ndGg6IDN9XSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJv
ci4KIFBBU1MgY2hhbm5lbC5wb3J0MS5wb3N0TWVzc2FnZSgibGFyZ2VTZXF1ZW5jZSIsIGxhcmdl
UG9ydEFycmF5KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00g
RXhjZXB0aW9uIDExLgotUEFTUyBldmVudC5wb3J0cyBpcyBudWxsIHdoZW4gbm8gcG9ydCBzZW50
Ci1QQVNTIGV2ZW50LnBvcnRzIGlzIG51bGwgd2hlbiBlbXB0eSBhcnJheSBzZW50CitQQVNTIGV2
ZW50LnBvcnRzIGlzIG5vbi1udWxsIGFuZCB6ZXJvIGxlbmd0aCB3aGVuIG5vIHBvcnQgc2VudAor
UEFTUyBldmVudC5wb3J0cyBpcyBub24tbnVsbCBhbmQgemVybyBsZW5ndGggd2hlbiBlbXB0eSBh
cnJheSBzZW50CiBQQVNTIGV2ZW50LnBvcnRzIGNvbnRhaW5zIHR3byBwb3J0cyB3aGVuIHR3byBw
b3J0cyBzZW50CiBQQVNTIGV2ZW50LnBvcnRzIGNvbnRhaW5zIHR3byBwb3J0cyB3aGVuIHR3byBw
b3J0cyByZS1zZW50IGFmdGVyIGVycm9yCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3Jlc291cmNlcy9tZXNzYWdlLXBvcnQtbXVsdGkuanMgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9yZXNvdXJjZXMvbWVzc2FnZS1wb3J0LW11bHRpLmpzCmluZGV4IDhkZjU0OWU2MWJh
YWJlMWNkZjhjZTllMjg1ZTQzNWZjNTU5MzBkOTguLjJhZGUyNzQ5MTJkOGZlMWQ5YmFkNWJmNmEx
MjhjZDQ4N2FiZDdlYzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291
cmNlcy9tZXNzYWdlLXBvcnQtbXVsdGkuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
cmVzb3VyY2VzL21lc3NhZ2UtcG9ydC1tdWx0aS5qcwpAQCAtMzUsMTUgKzM1LDE1IEBAIGNoYW5u
ZWwucG9ydDEucG9zdE1lc3NhZ2UoImRvbmUiKTsKIAogY2hhbm5lbC5wb3J0Mi5vbm1lc3NhZ2Ug
PSBmdW5jdGlvbihldmVudCkgewogICAgIGlmIChldmVudC5kYXRhID09ICJub3BvcnQiKSB7Ci0g
ICAgICAgIGlmICghZXZlbnQucG9ydHMpCi0gICAgICAgICAgICB0ZXN0UGFzc2VkKCJldmVudC5w
b3J0cyBpcyBudWxsIHdoZW4gbm8gcG9ydCBzZW50Iik7CisgICAgICAgIGlmIChldmVudC5wb3J0
cyAmJiAhZXZlbnQucG9ydHMubGVuZ3RoKQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiZXZlbnQu
cG9ydHMgaXMgbm9uLW51bGwgYW5kIHplcm8gbGVuZ3RoIHdoZW4gbm8gcG9ydCBzZW50Iik7CiAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoImV2ZW50LnBvcnRzIHNob3VsZCBi
ZSBudWxsIHdoZW4gbm8gcG9ydCBzZW50Iik7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJldmVu
dC5wb3J0cyBpcyBudWxsIG9yIG5vbi16ZXJvIGxlbmd0aCB3aGVuIG5vIHBvcnQgc2VudCIpOwog
ICAgIH0gZWxzZSBpZiAoZXZlbnQuZGF0YSA9PSAiemVybyBwb3J0cyIpIHsKLSAgICAgICAgaWYg
KCFldmVudC5wb3J0cykKLSAgICAgICAgICAgIHRlc3RQYXNzZWQoImV2ZW50LnBvcnRzIGlzIG51
bGwgd2hlbiBlbXB0eSBhcnJheSBzZW50Iik7CisgICAgICAgIGlmIChldmVudC5wb3J0cyAmJiAh
ZXZlbnQucG9ydHMubGVuZ3RoKQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiZXZlbnQucG9ydHMg
aXMgbm9uLW51bGwgYW5kIHplcm8gbGVuZ3RoIHdoZW4gZW1wdHkgYXJyYXkgc2VudCIpOwogICAg
ICAgICBlbHNlCi0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJldmVudC5wb3J0cyBzaG91bGQgYmUg
bnVsbCB3aGVuIGVtcHR5IGFycmF5IHNlbnQiKTsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoImV2
ZW50LnBvcnRzIGlzIG51bGwgb3Igbm9uLXplcm8gbGVuZ3RoIHdoZW4gZW1wdHkgYXJyYXkgc2Vu
dCIpOwogICAgIH0gZWxzZSBpZiAoZXZlbnQuZGF0YSA9PSAidHdvIHBvcnRzIikgewogICAgICAg
ICBpZiAoIWV2ZW50LnBvcnRzKSB7CiAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJldmVudC5wb3J0
cyBzaG91bGQgYmUgbm9uLW51bGwgd2hlbiBwb3J0cyBzZW50Iik7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVzb3VyY2VzL3dvcmtlci1jb250ZXh0LW11bHRpLXBvcnQu
anMgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVzb3VyY2VzL3dvcmtlci1jb250ZXh0LW11
bHRpLXBvcnQuanMKaW5kZXggNGI1NWNiODY4NGIyMTQzZDdiZDJiNGNjMTgxNDYwOTEzZGVhYTEz
Ny4uOTA4YTUwZmY2ZWMyNTRmYmJkZTVmODkzZWY1ODk4MGM3NzkwN2U1NiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3Jlc291cmNlcy93b3JrZXItY29udGV4dC1tdWx0aS1w
b3J0LmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9yZXNvdXJjZXMvd29ya2VyLWNv
bnRleHQtbXVsdGktcG9ydC5qcwpAQCAtMTIsMTUgKzEyLDE1IEBAIHdvcmtlci5vbm1lc3NhZ2Ug
PSBmdW5jdGlvbihldmVudCkgewogICAgIGlmIChldmVudC5kYXRhID09ICJkb25lIikKICAgICAg
ICAgZXZlbnQucG9ydHNbMF0ub25tZXNzYWdlID0gZG9uZTsKICAgICBlbHNlIGlmIChldmVudC5k
YXRhID09ICJub3BvcnQiKSB7Ci0gICAgICAgIGlmICghZXZlbnQucG9ydHMpCi0gICAgICAgICAg
ICB0ZXN0UGFzc2VkKCJldmVudC5wb3J0cyBpcyBudWxsIHdoZW4gbm8gcG9ydCBzZW50Iik7Cisg
ICAgICAgIGlmIChldmVudC5wb3J0cyAmJiAhZXZlbnQucG9ydHMubGVuZ3RoKQorICAgICAgICAg
ICAgdGVzdFBhc3NlZCgiZXZlbnQucG9ydHMgaXMgbm9uLW51bGwgYW5kIHplcm8gbGVuZ3RoIHdo
ZW4gbm8gcG9ydCBzZW50Iik7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHRlc3RGYWlsZWQo
ImV2ZW50LnBvcnRzIHNob3VsZCBiZSBudWxsIHdoZW4gbm8gcG9ydCBzZW50Iik7CisgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJldmVudC5wb3J0cyBpcyBudWxsIG9yIG5vbi16ZXJvIGxlbmd0aCB3
aGVuIG5vIHBvcnQgc2VudCIpOwogICAgIH0gZWxzZSBpZiAoZXZlbnQuZGF0YSA9PSAiemVybyBw
b3J0cyIpIHsKLSAgICAgICAgaWYgKCFldmVudC5wb3J0cykKLSAgICAgICAgICAgIHRlc3RQYXNz
ZWQoImV2ZW50LnBvcnRzIGlzIG51bGwgd2hlbiBlbXB0eSBhcnJheSBzZW50Iik7CisgICAgICAg
IGlmIChldmVudC5wb3J0cyAmJiAhZXZlbnQucG9ydHMubGVuZ3RoKQorICAgICAgICAgICAgdGVz
dFBhc3NlZCgiZXZlbnQucG9ydHMgaXMgbm9uLW51bGwgYW5kIHplcm8gbGVuZ3RoIHdoZW4gZW1w
dHkgYXJyYXkgc2VudCIpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJl
dmVudC5wb3J0cyBzaG91bGQgYmUgbnVsbCB3aGVuIGVtcHR5IGFycmF5IHNlbnQiKTsKKyAgICAg
ICAgICAgIHRlc3RGYWlsZWQoImV2ZW50LnBvcnRzIGlzIG51bGwgb3Igbm9uLXplcm8gbGVuZ3Ro
IHdoZW4gZW1wdHkgYXJyYXkgc2VudCIpOwogICAgIH0gZWxzZSBpZiAoZXZlbnQuZGF0YSA9PSAi
dHdvIHBvcnRzIikgewogICAgICAgICBpZiAoIWV2ZW50LnBvcnRzKSB7CiAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJldmVudC5wb3J0cyBzaG91bGQgYmUgbm9uLW51bGwgd2hlbiBwb3J0cyBzZW50
Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVzb3VyY2VzL3dvcmtl
ci1tZXNzYWdlcG9ydC5qcyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9yZXNvdXJjZXMvd29y
a2VyLW1lc3NhZ2Vwb3J0LmpzCmluZGV4IGE3YjRmNzcwNGMxMGRjOGMwY2I2NDliNTIyN2NlYTJk
OTNlZGI1YjEuLjFlMDFiMGE1MmI1ODZiMDBjYmJiMjhiMjM1Mjk1OWY3ZmExNTBlMzkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9yZXNvdXJjZXMvd29ya2VyLW1lc3NhZ2Vw
b3J0LmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9yZXNvdXJjZXMvd29ya2VyLW1l
c3NhZ2Vwb3J0LmpzCkBAIC04LDEwICs4LDEwIEBAIG9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2dCkg
ewogICAgICAgICAgICAgcG9zdE1lc3NhZ2UoIkZBSUw6IERpZCBub3QgcmVjZWl2ZSBleHBlY3Rl
ZCBNZXNzYWdlUG9ydCIpOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChldnQuZGF0YSA9PSAi
bm9wb3J0IikgewotICAgICAgICBpZiAoZXZ0LnBvcnRzKSB7Ci0gICAgICAgICAgICBwb3N0TWVz
c2FnZSgiRkFJTDogUmVjZWl2ZWQgbWVzc2FnZSBwb3J0Iik7CisgICAgICAgIGlmICghZXZ0LnBv
cnRzIHx8IGV2dC5wb3J0cy5sZW5ndGgpIHsKKyAgICAgICAgICAgIHBvc3RNZXNzYWdlKCJGQUlM
OiBSZWNlaXZlZCBtZXNzYWdlIHBvcnQgb3IgbnVsbCBwb3J0cyBhcnJheSIpOwogICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgcG9zdE1lc3NhZ2UoIlBBU1M6IGV2dC5wb3J0cyA9IG51bGwg
YXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgICAgIHBvc3RNZXNzYWdlKCJQQVNTOiBldnQucG9ydHMg
PSBbXSBhcyBleHBlY3RlZCIpOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChldnQuZGF0YSA9
PSAic3BhbSIpIHsKICAgICAgICAgZm9yICh2YXIgaSA9IDAgOyBpIDwgMTAwMCA7IGkrKykgewpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3Jlc291cmNlcy93b3JrZXItdGhy
ZWFkLW11bHRpLXBvcnQuanMgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVzb3VyY2VzL3dv
cmtlci10aHJlYWQtbXVsdGktcG9ydC5qcwppbmRleCBiZjM1ZWIwMWNlYzhkZTczNzc3Nzc2YzE0
ZGNiNTk0NjY1MjRkMzM5Li4wOTdkYjlhYjU5NWNlNGVhM2YyYzBmZDJjZTAwYzNkOWYyZDdlODQ1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVzb3VyY2VzL3dvcmtlci10
aHJlYWQtbXVsdGktcG9ydC5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVzb3Vy
Y2VzL3dvcmtlci10aHJlYWQtbXVsdGktcG9ydC5qcwpAQCAtMSwxNCArMSwxNCBAQAogb25tZXNz
YWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICBpZiAoZXZlbnQuZGF0YSA9PSAibm9wb3J0Iikg
ewotICAgICAgICBpZiAoIWV2ZW50LnBvcnRzKQotICAgICAgICAgICAgdGVzdFBhc3NlZCgiZXZl
bnQucG9ydHMgaXMgbnVsbCB3aGVuIG5vIHBvcnQgc2VudCIpOworICAgICAgICBpZiAoZXZlbnQu
cG9ydHMgJiYgIWV2ZW50LnBvcnRzLmxlbmd0aCkKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoImV2
ZW50LnBvcnRzIGlzIG5vbi1udWxsIGFuZCB6ZXJvLSBlbmd0aCB3aGVuIG5vIHBvcnQgc2VudCIp
OwogICAgICAgICBlbHNlCi0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJldmVudC5wb3J0cyBzaG91
bGQgYmUgbnVsbCB3aGVuIG5vIHBvcnQgc2VudCIpOworICAgICAgICAgICAgdGVzdEZhaWxlZCgi
ZXZlbnQucG9ydHMgaXMgbnVsbCBvciBub24temVybyBsZW5ndGggd2hlbiBubyBwb3J0IHNlbnQi
KTsKICAgICB9IGVsc2UgaWYgKGV2ZW50LmRhdGEgPT0gInplcm8gcG9ydHMiKSB7Ci0gICAgICAg
IGlmICghZXZlbnQucG9ydHMpCi0gICAgICAgICAgICB0ZXN0UGFzc2VkKCJldmVudC5wb3J0cyBp
cyBudWxsIHdoZW4gZW1wdHkgYXJyYXkgc2VudCIpOworICAgICAgICBpZiAoZXZlbnQucG9ydHMg
JiYgIWV2ZW50LnBvcnRzLmxlbmd0aCkKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoImV2ZW50LnBv
cnRzIGlzIG5vbi1udWxsIGFuZCB6ZXJvIGxlbmd0aCB3aGVuIGVtcHR5IGFycmF5IHNlbnQiKTsK
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgdGVzdEZhaWxlZCgiZXZlbnQucG9ydHMgc2hvdWxk
IGJlIG51bGwgd2hlbiBlbXB0eSBhcnJheSBzZW50Iik7CisgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJldmVudC5wb3J0cyBpcyBudWxsIG9yIG5vbi16ZXJvIGxlbmd0aCB3aGVuIGVtcHR5IGFycmF5
IHNlbnQiKTsKICAgICB9IGVsc2UgaWYgKGV2ZW50LmRhdGEgPT0gInR3byBwb3J0cyIpIHsKICAg
ICAgICAgaWYgKCFldmVudC5wb3J0cykgewogICAgICAgICAgICAgdGVzdEZhaWxlZCgiZXZlbnQu
cG9ydHMgc2hvdWxkIGJlIG5vbi1udWxsIHdoZW4gcG9ydHMgc2VudCIpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtlci1jb250ZXh0LW11bHRpLXBvcnQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtlci1jb250ZXh0LW11bHRpLXBv
cnQtZXhwZWN0ZWQudHh0CmluZGV4IGZjYTFmZjg5MWY0ZmEzZjc1NTYwNTcxZTA4NWI2MWJjODBk
OTIxNWIuLjYxNjkxZmFhNzRlYjFjZmQzNWU0NzgwYTZjNDkxNWM5NzU1ZDFjMDggMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItY29udGV4dC1tdWx0aS1wb3J0LWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvd29ya2VyLWNvbnRleHQt
bXVsdGktcG9ydC1leHBlY3RlZC50eHQKQEAgLTMsOCArMyw4IEBAIFRoaXMgdGVzdCBjaGVja3Mg
dGhlIHZhcmlvdXMgdXNlIGNhc2VzIGFyb3VuZCBzZW5kaW5nIG11bHRpcGxlIHBvcnRzIHRocm91
Z2ggV29yCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBldmVudC5wb3J0cyBp
cyBudWxsIHdoZW4gbm8gcG9ydCBzZW50Ci1QQVNTIGV2ZW50LnBvcnRzIGlzIG51bGwgd2hlbiBl
bXB0eSBhcnJheSBzZW50CitQQVNTIGV2ZW50LnBvcnRzIGlzIG5vbi1udWxsIGFuZCB6ZXJvIGxl
bmd0aCB3aGVuIG5vIHBvcnQgc2VudAorUEFTUyBldmVudC5wb3J0cyBpcyBub24tbnVsbCBhbmQg
emVybyBsZW5ndGggd2hlbiBlbXB0eSBhcnJheSBzZW50CiBQQVNTIGV2ZW50LnBvcnRzIGNvbnRh
aW5zIHR3byBwb3J0cyB3aGVuIHR3byBwb3J0cyBzZW50CiBQQVNTIHBvc3RpbmcgYSBudWxsIHBv
cnQgZGlkIHRocm93OiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEK
IFBBU1MgcG9zdGluZyBhIG5vbi1wb3J0IGRpZCB0aHJvdzogVHlwZUVycm9yOiBUeXBlIGVycm9y
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvd29ya2VyLW1lc3NhZ2Vwb3J0
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItbWVzc2FnZXBv
cnQtZXhwZWN0ZWQudHh0CmluZGV4IDkwMzk4ZTFkMjI4ZjMzMjQwZWM1MjlkZDE2NjU3MDMyMDY1
NTZiZGIuLjkwNmI2YjgwYTczY2RhMmI2ZjJmM2U0ZWEzNmVmZWYxMTdjZWQ3NWQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItbWVzc2FnZXBvcnQtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItbWVzc2FnZXBvcnQtZXhw
ZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAogVGVzdCB0aGF0IHBhZ2VzIGFuZCB3b3JrZXJzIGNh
biBzZW5kIE1lc3NhZ2VQb3J0cyB0byBvbmUgYW5vdGhlci4gU2hvdWxkIHByaW50ICJET05FIiB3
aGVuIGRvbmUuCiAKLVBBU1M6IGV2dC5wb3J0cyA9IG51bGwgYXMgZXhwZWN0ZWQKK1BBU1M6IGV2
dC5wb3J0cyA9IFtdIGFzIGV4cGVjdGVkCiBQQVNTOiBSZWNlaXZlZCBtZXNzYWdlIHBvcnQKIFBB
U1M6IFJlY2VpdmVkIHJlc3BvbnNlIGZyb20gV29ya2VyIHZpYSBNZXNzYWdlUG9ydAogUEFTUzog
R290IHBvcnQgZnJvbSB3b3JrZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vy
cy93b3JrZXItbXVsdGktcG9ydC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtl
cnMvd29ya2VyLW11bHRpLXBvcnQtZXhwZWN0ZWQudHh0CmluZGV4IDg4YjQwNjJiNGQ1NzRjMTdh
N2E3NDBhM2YxY2ZmNWU1MTk4OTZlNGEuLmEzZmVhMWY2Yzc0ZTk1Yzk4YzBjZjYxZmM3NTBiNDM0
YjRkMTBhNTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItbXVs
dGktcG9ydC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtl
ci1tdWx0aS1wb3J0LWV4cGVjdGVkLnR4dApAQCAtNyw4ICs3LDggQEAgUEFTUyB3b3JrZXIucG9z
dE1lc3NhZ2UoIm51bGwgcG9ydCIsIFtjaGFubmVsMy5wb3J0MSwgbnVsbCwgY2hhbm5lbDMucG9y
dDJdKSB0aHIKIFBBU1Mgd29ya2VyLnBvc3RNZXNzYWdlKCJub3RBUG9ydCIsIFtjaGFubmVsMy5w
b3J0MSwge30sIGNoYW5uZWwzLnBvcnQyXSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlw
ZSBlcnJvci4KIFBBU1Mgd29ya2VyLnBvc3RNZXNzYWdlKCJub3RBbkFycmF5IiwgY2hhbm5lbDMu
cG9ydDEpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNTIHdvcmtl
ci5wb3N0TWVzc2FnZSgibm90QVNlcXVlbmNlIiwgW3tsZW5ndGg6IDN9XSkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgZXZlbnQucG9ydHMgaXMgbnVsbCB3aGVu
IG5vIHBvcnQgc2VudAotUEFTUyBldmVudC5wb3J0cyBpcyBudWxsIHdoZW4gZW1wdHkgYXJyYXkg
c2VudAorUEFTUyBldmVudC5wb3J0cyBpcyBub24tbnVsbCBhbmQgemVyby0gZW5ndGggd2hlbiBu
byBwb3J0IHNlbnQKK1BBU1MgZXZlbnQucG9ydHMgaXMgbm9uLW51bGwgYW5kIHplcm8gbGVuZ3Ro
IHdoZW4gZW1wdHkgYXJyYXkgc2VudAogUEFTUyBldmVudC5wb3J0cyBjb250YWlucyB0d28gcG9y
dHMgd2hlbiB0d28gcG9ydHMgc2VudAogUEFTUyBldmVudC5wb3J0cyBjb250YWlucyB0d28gcG9y
dHMgd2hlbiB0d28gcG9ydHMgcmUtc2VudCBhZnRlciBlcnJvcgogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9ldmVudHMvbWVzc2FnZS1wb3J0LW11
bHRpLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0
L2V2ZW50cy9tZXNzYWdlLXBvcnQtbXVsdGktZXhwZWN0ZWQudHh0CmluZGV4IDk4MWViOTJmZjdk
MjBkN2QzNTQzYjdhZWI0ODViNWFhZjU0NGZhMjUuLjEwNDhkZmFhOGM3ZTFkMzJhYWY4ODVmMTc0
NDIyNzc0YTM3YWJjM2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LXdpbi9mYXN0L2V2ZW50cy9tZXNzYWdlLXBvcnQtbXVsdGktZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L2V2ZW50cy9tZXNzYWdlLXBvcnQt
bXVsdGktZXhwZWN0ZWQudHh0CkBAIC05LDggKzksOCBAQCBQQVNTIGNoYW5uZWwucG9ydDEucG9z
dE1lc3NhZ2UoIm51bGwgcG9ydCIsIFtjaGFubmVsMy5wb3J0MSwgbnVsbCwgY2hhbm5lbDMucG9y
dAogUEFTUyBjaGFubmVsLnBvcnQxLnBvc3RNZXNzYWdlKCJub3RBUG9ydCIsIFtjaGFubmVsMy5w
b3J0MSwge30sIGNoYW5uZWwzLnBvcnQyXSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTWVz
c2FnZVBvcnRBcnJheSBhcmd1bWVudCBtdXN0IGNvbnRhaW4gb25seSBNZXNzYWdlUG9ydHMuCiBQ
QVNTIGNoYW5uZWwucG9ydDEucG9zdE1lc3NhZ2UoIm5vdEFuQXJyYXkiLCBjaGFubmVsMy5wb3J0
MSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTWVzc2FnZVBvcnRBcnJheSBhcmd1bWVudCBo
YXMgbm8gbGVuZ3RoIGF0dHJpYnV0ZS4KIFBBU1MgY2hhbm5lbC5wb3J0MS5wb3N0TWVzc2FnZSgi
bm90QVNlcXVlbmNlIiwgW3tsZW5ndGg6IDN9XSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjog
TWVzc2FnZVBvcnRBcnJheSBhcmd1bWVudCBtdXN0IGNvbnRhaW4gb25seSBNZXNzYWdlUG9ydHMu
Ci1QQVNTIGV2ZW50LnBvcnRzIGlzIG51bGwgd2hlbiBubyBwb3J0IHNlbnQKLVBBU1MgZXZlbnQu
cG9ydHMgaXMgbnVsbCB3aGVuIGVtcHR5IGFycmF5IHNlbnQKK1BBU1MgZXZlbnQucG9ydHMgaXMg
bm9uLW51bGwgYW5kIHplcm8gbGVuZ3RoIHdoZW4gbm8gcG9ydCBzZW50CitQQVNTIGV2ZW50LnBv
cnRzIGlzIG5vbi1udWxsIGFuZCB6ZXJvIGxlbmd0aCB3aGVuIGVtcHR5IGFycmF5IHNlbnQKIFBB
U1MgZXZlbnQucG9ydHMgY29udGFpbnMgdHdvIHBvcnRzIHdoZW4gdHdvIHBvcnRzIHNlbnQKIFBB
U1MgZXZlbnQucG9ydHMgY29udGFpbnMgdHdvIHBvcnRzIHdoZW4gdHdvIHBvcnRzIHJlLXNlbnQg
YWZ0ZXIgZXJyb3IKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL2Zhc3Qvd29ya2Vycy93b3JrZXItY29udGV4dC1tdWx0aS1wb3J0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L3dvcmtlcnMvd29ya2VyLWNv
bnRleHQtbXVsdGktcG9ydC1leHBlY3RlZC50eHQKaW5kZXggZTY2MjcwZjEyN2JkMzk5M2M1MTZh
OWNlZTE3NjE4YjM3YzVlY2M2NS4uNGU4ODQ5MWZiOGE5YzU3ZTk4ZGFhN2VhNTdhNmJkNmVmM2Q5
NTg2MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3Qv
d29ya2Vycy93b3JrZXItY29udGV4dC1tdWx0aS1wb3J0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC93b3JrZXJzL3dvcmtlci1jb250ZXh0
LW11bHRpLXBvcnQtZXhwZWN0ZWQudHh0CkBAIC0zLDggKzMsOCBAQCBUaGlzIHRlc3QgY2hlY2tz
IHRoZSB2YXJpb3VzIHVzZSBjYXNlcyBhcm91bmQgc2VuZGluZyBtdWx0aXBsZSBwb3J0cyB0aHJv
dWdoIFdvcgogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1MgZXZlbnQucG9ydHMg
aXMgbnVsbCB3aGVuIG5vIHBvcnQgc2VudAotUEFTUyBldmVudC5wb3J0cyBpcyBudWxsIHdoZW4g
ZW1wdHkgYXJyYXkgc2VudAorUEFTUyBldmVudC5wb3J0cyBpcyBub24tbnVsbCBhbmQgemVybyBs
ZW5ndGggd2hlbiBubyBwb3J0IHNlbnQKK1BBU1MgZXZlbnQucG9ydHMgaXMgbm9uLW51bGwgYW5k
IHplcm8gbGVuZ3RoIHdoZW4gZW1wdHkgYXJyYXkgc2VudAogUEFTUyBldmVudC5wb3J0cyBjb250
YWlucyB0d28gcG9ydHMgd2hlbiB0d28gcG9ydHMgc2VudAogUEFTUyBwb3N0aW5nIGEgbnVsbCBw
b3J0IGRpZCB0aHJvdzogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDEx
CiBQQVNTIHBvc3RpbmcgYSBub24tcG9ydCBkaWQgdGhyb3c6IFR5cGVFcnJvcjogTWVzc2FnZVBv
cnRBcnJheSBhcmd1bWVudCBtdXN0IGNvbnRhaW4gb25seSBNZXNzYWdlUG9ydHMKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L3dvcmtlcnMvd29ya2Vy
LW11bHRpLXBvcnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL2Zhc3Qvd29ya2Vycy93b3JrZXItbXVsdGktcG9ydC1leHBlY3RlZC50eHQKaW5kZXggZjEx
Yzc0YzhkYzhjMzIwMTFhYzdiZWY5OTRjZmNjNmVlY2RlNGFlZC4uZDFkOTZlYTFmMTM0NDFkMmM3
OTIxZWVlZDZlOTI4YmY5NDZlYmZkMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL2Zhc3Qvd29ya2Vycy93b3JrZXItbXVsdGktcG9ydC1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3Qvd29ya2Vycy93b3Jr
ZXItbXVsdGktcG9ydC1leHBlY3RlZC50eHQKQEAgLTcsOCArNyw4IEBAIFBBU1Mgd29ya2VyLnBv
c3RNZXNzYWdlKCJudWxsIHBvcnQiLCBbY2hhbm5lbDMucG9ydDEsIG51bGwsIGNoYW5uZWwzLnBv
cnQyXSkgdGhyCiBQQVNTIHdvcmtlci5wb3N0TWVzc2FnZSgibm90QVBvcnQiLCBbY2hhbm5lbDMu
cG9ydDEsIHt9LCBjaGFubmVsMy5wb3J0Ml0pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE1l
c3NhZ2VQb3J0QXJyYXkgYXJndW1lbnQgbXVzdCBjb250YWluIG9ubHkgTWVzc2FnZVBvcnRzLgog
UEFTUyB3b3JrZXIucG9zdE1lc3NhZ2UoIm5vdEFuQXJyYXkiLCBjaGFubmVsMy5wb3J0MSkgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTWVzc2FnZVBvcnRBcnJheSBhcmd1bWVudCBoYXMgbm8g
bGVuZ3RoIGF0dHJpYnV0ZS4KIFBBU1Mgd29ya2VyLnBvc3RNZXNzYWdlKCJub3RBU2VxdWVuY2Ui
LCBbe2xlbmd0aDogM31dKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBNZXNzYWdlUG9ydEFy
cmF5IGFyZ3VtZW50IG11c3QgY29udGFpbiBvbmx5IE1lc3NhZ2VQb3J0cy4KLVBBU1MgZXZlbnQu
cG9ydHMgaXMgbnVsbCB3aGVuIG5vIHBvcnQgc2VudAotUEFTUyBldmVudC5wb3J0cyBpcyBudWxs
IHdoZW4gZW1wdHkgYXJyYXkgc2VudAorUEFTUyBldmVudC5wb3J0cyBpcyBub24tbnVsbCBhbmQg
emVybyBsZW5ndGggd2hlbiBubyBwb3J0IHNlbnQKK1BBU1MgZXZlbnQucG9ydHMgaXMgbm9uLW51
bGwgYW5kIHplcm8gbGVuZ3RoIHdoZW4gZW1wdHkgYXJyYXkgc2VudAogUEFTUyBldmVudC5wb3J0
cyBjb250YWlucyB0d28gcG9ydHMgd2hlbiB0d28gcG9ydHMgc2VudAogUEFTUyBldmVudC5wb3J0
cyBjb250YWlucyB0d28gcG9ydHMgd2hlbiB0d28gcG9ydHMgcmUtc2VudCBhZnRlciBlcnJvcgog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2RvbS9XaW5k
b3cvd2luZG93LXBvc3RtZXNzYWdlLWFyZ3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1hcmdzLWV4
cGVjdGVkLnR4dAppbmRleCA1ZWNlODQxNGNmN2Q3OTQyNzhlZGY3MmNkMmY1ZjllNTk0ODU1Mjll
Li40NWVjNzNkMjMyZDY3YTJiM2U2Y2ViNGZjNzE4YWM4OTUxZTU3ODdmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3Rt
ZXNzYWdlLWFyZ3MtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtYXJncy1leHBlY3RlZC50eHQK
QEAgLTksMTAgKzksMTAgQEAgUEFTUzogUG9zdGluZyBtZXNzYWdlICgnNicsIHVuZGVmaW5lZCkg
ZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24KIFBBU1M6IFBvc3RpbmcgbWVzc2FnZSAoJzcnLCBb
b2JqZWN0IE1lc3NhZ2VQb3J0XSxbb2JqZWN0IE1lc3NhZ2VQb3J0XSkgZGlkIG5vdCB0aHJvdyBh
biBleGNlcHRpb24KIFBBU1M6IFBvc3RpbmcgbWVzc2FnZSAoJzIxNDc0ODM2NDgnLCBudWxsKSBk
aWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbgogUEFTUzogUG9zdGluZyBtZXNzYWdlICgnZG9uZScs
ICopIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uCi1SZWNlaXZlZCBtZXNzYWdlICc0JwotUmVj
ZWl2ZWQgbWVzc2FnZSAnNScKLVJlY2VpdmVkIG1lc3NhZ2UgJzYnCitSZWNlaXZlZCBtZXNzYWdl
ICc0JyB3aXRoIDAgcG9ydHMuCitSZWNlaXZlZCBtZXNzYWdlICc1JyB3aXRoIDAgcG9ydHMuCitS
ZWNlaXZlZCBtZXNzYWdlICc2JyB3aXRoIDAgcG9ydHMuCiBSZWNlaXZlZCBtZXNzYWdlICc3JyB3
aXRoIDIgcG9ydHMuCi1SZWNlaXZlZCBtZXNzYWdlICcyMTQ3NDgzNjQ4JwotUmVjZWl2ZWQgbWVz
c2FnZSAnZG9uZScKK1JlY2VpdmVkIG1lc3NhZ2UgJzIxNDc0ODM2NDgnIHdpdGggMCBwb3J0cy4K
K1JlY2VpdmVkIG1lc3NhZ2UgJ2RvbmUnIHdpdGggMCBwb3J0cy4KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDVj
YWI1Y2NhZDU1MzJiOTA1N2ZhNjEyNzg5Mjc0YTAzMDE2ZWZlMTIuLjk4MzBkZjlhOWY5ZjIzYjg3
NTAyYmMwMzg1MTdiYjdhZmVhYWQ3ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAx
MS0wOC0yMyAgRGF2aWQgTGV2aW4gIDxsZXZpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTWVz
c2FnZUV2ZW50LnBvcnRzIHNob3VsZG4ndCBldmVyIGJlIG51bGwuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02Njc4OQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNNZXNzYWdlRXZl
bnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNNZXNzYWdlRXZlbnQ6OnBvcnRzKTog
TmV2ZXIgcmV0dXJuIG51bGwuCisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2Fn
ZUV2ZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4TWVzc2FnZUV2ZW50Ojpwb3J0
c0FjY2Vzc29yR2V0dGVyKTogRGl0dG8uCisKIDIwMTEtMDgtMjIgIEFsaWNlIEJveGhhbGwgIDxh
Ym94aGFsbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRmxlaXph
Y2guCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVu
dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1
c3RvbS5jcHAKaW5kZXggMjE1ZTE1ZjBhODk2N2IxMzcxM2VhNTg0NmVmNTlkMWQ5MzFjYTJjYi4u
NDZmNTg5OGM2MmYxNTMyY2U3YzRhZmQzMGQ1NmExMmIwNTFjNDQ3NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcApAQCAtNDYs
NyArNDYsNyBAQCBKU1ZhbHVlIEpTTWVzc2FnZUV2ZW50Ojpwb3J0cyhFeGVjU3RhdGUqIGV4ZWMp
IGNvbnN0CiB7CiAgICAgTWVzc2FnZVBvcnRBcnJheSogcG9ydHMgPSBzdGF0aWNfY2FzdDxNZXNz
YWdlRXZlbnQqPihpbXBsKCkpLT5wb3J0cygpOwogICAgIGlmICghcG9ydHMgfHwgcG9ydHMtPmlz
RW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIGpzTnVsbCgpOworICAgICAgICByZXR1cm4gY29uc3Ry
dWN0RW1wdHlBcnJheShleGVjLCBnbG9iYWxPYmplY3QoKSk7CiAKICAgICBNYXJrZWRBcmd1bWVu
dEJ1ZmZlciBsaXN0OwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcG9ydHMtPnNpemUoKTsg
aSsrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVz
c2FnZUV2ZW50Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OE1lc3NhZ2VFdmVudEN1c3RvbS5jcHAKaW5kZXggNDc1ZGUyYTA5OTlkYjFkYjVhMzM3ZWI2OGFi
NTQ0NjhiNGRmMGJhMS4uYzdiOWI5ZWM3YzI2YWY2YjNmYzhlOTQwMjA5MmM2ODkyNmJlNjllMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUV2
ZW50Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhN
ZXNzYWdlRXZlbnRDdXN0b20uY3BwCkBAIC00OSw3ICs0OSw3IEBAIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBWOE1lc3NhZ2VFdmVudDo6cG9ydHNBY2Nlc3NvckdldHRlcih2ODo6TG9jYWw8djg6OlN0
cmluZz4KIAogICAgIE1lc3NhZ2VQb3J0QXJyYXkqIHBvcnRzID0gZXZlbnQtPnBvcnRzKCk7CiAg
ICAgaWYgKCFwb3J0cyB8fCBwb3J0cy0+aXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gdjg6Ok51
bGwoKTsKKyAgICAgICAgcmV0dXJuIHY4OjpBcnJheTo6TmV3KDApOwogCiAgICAgdjg6OkxvY2Fs
PHY4OjpBcnJheT4gcG9ydEFycmF5ID0gdjg6OkFycmF5OjpOZXcocG9ydHMtPnNpemUoKSk7CiAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwb3J0cy0+c2l6ZSgpOyArK2kpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104921</attachid>
            <date>2011-08-23 15:57:49 -0700</date>
            <delta_ts>2011-08-23 15:59:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66789-20110823155747.patch</filename>
            <type>text/plain</type>
            <size>19084</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTM1NjUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjYjZkZWQzNGJlZmUzMmMwY2JmNzNj
NTgxOTg4ZjAwZGM0OTE3NDNlLi4yMDhkZDJkNDg2OTc4Y2UwYjlhOTBlM2M3OTc5OTE2YmVmOWRi
NjRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTEtMDgtMjMgIERhdmlkIExldmluICA8bGV2
aW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1lc3NhZ2VFdmVudC5wb3J0cyBzaG91bGRuJ3Qg
ZXZlciBiZSBudWxsLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjY3ODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGaXggYWxsIHRlc3RzIHdoaWNoIHZlcmlmaWVkIHRoYXQgTWVzc2FnZUV2ZW50cy5wb3J0
cyB3YXMgbnVsbCBpbiB2YXJpb3VzIGNhc2VzLgorCisgICAgICAgICogZmFzdC9kb20vV2luZG93
L3dpbmRvdy1wb3N0bWVzc2FnZS1hcmdzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2V2
ZW50cy9tZXNzYWdlLXBvcnQtbXVsdGktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZXZl
bnRzL3Jlc291cmNlcy9tZXNzYWdlLXBvcnQtbXVsdGkuanM6CisgICAgICAgIChjaGFubmVsLnBv
cnQyLm9ubWVzc2FnZSk6CisgICAgICAgICogZmFzdC93b3JrZXJzL3Jlc291cmNlcy93b3JrZXIt
Y29udGV4dC1tdWx0aS1wb3J0LmpzOgorICAgICAgICAod29ya2VyLm9ubWVzc2FnZSk6CisgICAg
ICAgICogZmFzdC93b3JrZXJzL3Jlc291cmNlcy93b3JrZXItbWVzc2FnZXBvcnQuanM6CisgICAg
ICAgIChvbm1lc3NhZ2UpOgorICAgICAgICAqIGZhc3Qvd29ya2Vycy9yZXNvdXJjZXMvd29ya2Vy
LXRocmVhZC1tdWx0aS1wb3J0LmpzOgorICAgICAgICAob25tZXNzYWdlKToKKyAgICAgICAgKiBm
YXN0L3dvcmtlcnMvd29ya2VyLWNvbnRleHQtbXVsdGktcG9ydC1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC93b3JrZXJzL3dvcmtlci1tZXNzYWdlcG9ydC1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC93b3JrZXJzL3dvcmtlci1tdWx0aS1wb3J0LWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9ldmVudHMvbWVzc2FnZS1wb3J0LW11bHRp
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC93b3Jr
ZXJzL3dvcmtlci1jb250ZXh0LW11bHRpLXBvcnQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L3dvcmtlcnMvd29ya2VyLW11bHRpLXBvcnQtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZG9tL1dpbmRvdy93aW5k
b3ctcG9zdG1lc3NhZ2UtYXJncy1leHBlY3RlZC50eHQ6CisKIDIwMTEtMDgtMjIgIEFsaWNlIEJv
eGhhbGwgIDxhYm94aGFsbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQ2hy
aXMgRmxlaXphY2guCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXBvc3RtZXNzYWdlLWFyZ3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1hcmdzLWV4cGVjdGVkLnR4dAppbmRleCAwNTRkOTE4
YjEzMTg0OGEwMDk3YmI2OGIwNTU4NDY0OWRkYjA1NjNkLi44OTk2OGMxNDc2MmE5OGNmMThhNDEz
OGJhZTlhMzRlODlkMGY4YjljIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvd2luZG93LXBvc3RtZXNzYWdlLWFyZ3MtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtYXJncy1leHBlY3RlZC50eHQKQEAg
LTksMTAgKzksMTAgQEAgUEFTUzogUG9zdGluZyBtZXNzYWdlICgnNicsIHVuZGVmaW5lZCkgZGlk
IG5vdCB0aHJvdyBhbiBleGNlcHRpb24KIFBBU1M6IFBvc3RpbmcgbWVzc2FnZSAoJzcnLCBbb2Jq
ZWN0IE1lc3NhZ2VQb3J0XSxbb2JqZWN0IE1lc3NhZ2VQb3J0XSkgZGlkIG5vdCB0aHJvdyBhbiBl
eGNlcHRpb24KIFBBU1M6IFBvc3RpbmcgbWVzc2FnZSAoJzIxNDc0ODM2NDgnLCBudWxsKSBkaWQg
bm90IHRocm93IGFuIGV4Y2VwdGlvbgogUEFTUzogUG9zdGluZyBtZXNzYWdlICgnZG9uZScsICop
IGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uCi1SZWNlaXZlZCBtZXNzYWdlICc0JwotUmVjZWl2
ZWQgbWVzc2FnZSAnNScKLVJlY2VpdmVkIG1lc3NhZ2UgJzYnCitSZWNlaXZlZCBtZXNzYWdlICc0
JyB3aXRoIDAgcG9ydHMuCitSZWNlaXZlZCBtZXNzYWdlICc1JyB3aXRoIDAgcG9ydHMuCitSZWNl
aXZlZCBtZXNzYWdlICc2JyB3aXRoIDAgcG9ydHMuCiBSZWNlaXZlZCBtZXNzYWdlICc3JyB3aXRo
IDIgcG9ydHMuCi1SZWNlaXZlZCBtZXNzYWdlICcyMTQ3NDgzNjQ4JwotUmVjZWl2ZWQgbWVzc2Fn
ZSAnZG9uZScKK1JlY2VpdmVkIG1lc3NhZ2UgJzIxNDc0ODM2NDgnIHdpdGggMCBwb3J0cy4KK1Jl
Y2VpdmVkIG1lc3NhZ2UgJ2RvbmUnIHdpdGggMCBwb3J0cy4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvbWVzc2FnZS1wb3J0LW11bHRpLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL21lc3NhZ2UtcG9ydC1tdWx0aS1leHBlY3RlZC50eHQKaW5kZXgg
ZmY3NTU0NWJkMWM5MTc1ZTYyZTJlYzI4MTQ4ODM0ZjUwYWE4ZDNmZS4uMTYzYmRlZDVkYjViNzZk
YTc5MzE3NTBmOTM2ZWE1Yjg1YWNjMGY4ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvbWVzc2FnZS1wb3J0LW11bHRpLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9tZXNzYWdlLXBvcnQtbXVsdGktZXhwZWN0ZWQudHh0CkBAIC0xMCw4ICsxMCw4
IEBAIFBBU1MgY2hhbm5lbC5wb3J0MS5wb3N0TWVzc2FnZSgibm90QVBvcnQiLCBbY2hhbm5lbDMu
cG9ydDEsIHt9LCBjaGFubmVsMy5wb3J0Ml0pCiBQQVNTIGNoYW5uZWwucG9ydDEucG9zdE1lc3Nh
Z2UoIm5vdEFuQXJyYXkiLCBjaGFubmVsMy5wb3J0MSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogVHlwZSBlcnJvci4KIFBBU1MgY2hhbm5lbC5wb3J0MS5wb3N0TWVzc2FnZSgibm90QVNlcXVl
bmNlIiwgW3tsZW5ndGg6IDN9XSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJv
ci4KIFBBU1MgY2hhbm5lbC5wb3J0MS5wb3N0TWVzc2FnZSgibGFyZ2VTZXF1ZW5jZSIsIGxhcmdl
UG9ydEFycmF5KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00g
RXhjZXB0aW9uIDExLgotUEFTUyBldmVudC5wb3J0cyBpcyBudWxsIHdoZW4gbm8gcG9ydCBzZW50
Ci1QQVNTIGV2ZW50LnBvcnRzIGlzIG51bGwgd2hlbiBlbXB0eSBhcnJheSBzZW50CitQQVNTIGV2
ZW50LnBvcnRzIGlzIG5vbi1udWxsIGFuZCB6ZXJvIGxlbmd0aCB3aGVuIG5vIHBvcnQgc2VudAor
UEFTUyBldmVudC5wb3J0cyBpcyBub24tbnVsbCBhbmQgemVybyBsZW5ndGggd2hlbiBlbXB0eSBh
cnJheSBzZW50CiBQQVNTIGV2ZW50LnBvcnRzIGNvbnRhaW5zIHR3byBwb3J0cyB3aGVuIHR3byBw
b3J0cyBzZW50CiBQQVNTIGV2ZW50LnBvcnRzIGNvbnRhaW5zIHR3byBwb3J0cyB3aGVuIHR3byBw
b3J0cyByZS1zZW50IGFmdGVyIGVycm9yCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3Jlc291cmNlcy9tZXNzYWdlLXBvcnQtbXVsdGkuanMgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9yZXNvdXJjZXMvbWVzc2FnZS1wb3J0LW11bHRpLmpzCmluZGV4IDhkZjU0OWU2MWJh
YWJlMWNkZjhjZTllMjg1ZTQzNWZjNTU5MzBkOTguLjJhZGUyNzQ5MTJkOGZlMWQ5YmFkNWJmNmEx
MjhjZDQ4N2FiZDdlYzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291
cmNlcy9tZXNzYWdlLXBvcnQtbXVsdGkuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
cmVzb3VyY2VzL21lc3NhZ2UtcG9ydC1tdWx0aS5qcwpAQCAtMzUsMTUgKzM1LDE1IEBAIGNoYW5u
ZWwucG9ydDEucG9zdE1lc3NhZ2UoImRvbmUiKTsKIAogY2hhbm5lbC5wb3J0Mi5vbm1lc3NhZ2Ug
PSBmdW5jdGlvbihldmVudCkgewogICAgIGlmIChldmVudC5kYXRhID09ICJub3BvcnQiKSB7Ci0g
ICAgICAgIGlmICghZXZlbnQucG9ydHMpCi0gICAgICAgICAgICB0ZXN0UGFzc2VkKCJldmVudC5w
b3J0cyBpcyBudWxsIHdoZW4gbm8gcG9ydCBzZW50Iik7CisgICAgICAgIGlmIChldmVudC5wb3J0
cyAmJiAhZXZlbnQucG9ydHMubGVuZ3RoKQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiZXZlbnQu
cG9ydHMgaXMgbm9uLW51bGwgYW5kIHplcm8gbGVuZ3RoIHdoZW4gbm8gcG9ydCBzZW50Iik7CiAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoImV2ZW50LnBvcnRzIHNob3VsZCBi
ZSBudWxsIHdoZW4gbm8gcG9ydCBzZW50Iik7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJldmVu
dC5wb3J0cyBpcyBudWxsIG9yIG5vbi16ZXJvIGxlbmd0aCB3aGVuIG5vIHBvcnQgc2VudCIpOwog
ICAgIH0gZWxzZSBpZiAoZXZlbnQuZGF0YSA9PSAiemVybyBwb3J0cyIpIHsKLSAgICAgICAgaWYg
KCFldmVudC5wb3J0cykKLSAgICAgICAgICAgIHRlc3RQYXNzZWQoImV2ZW50LnBvcnRzIGlzIG51
bGwgd2hlbiBlbXB0eSBhcnJheSBzZW50Iik7CisgICAgICAgIGlmIChldmVudC5wb3J0cyAmJiAh
ZXZlbnQucG9ydHMubGVuZ3RoKQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiZXZlbnQucG9ydHMg
aXMgbm9uLW51bGwgYW5kIHplcm8gbGVuZ3RoIHdoZW4gZW1wdHkgYXJyYXkgc2VudCIpOwogICAg
ICAgICBlbHNlCi0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJldmVudC5wb3J0cyBzaG91bGQgYmUg
bnVsbCB3aGVuIGVtcHR5IGFycmF5IHNlbnQiKTsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoImV2
ZW50LnBvcnRzIGlzIG51bGwgb3Igbm9uLXplcm8gbGVuZ3RoIHdoZW4gZW1wdHkgYXJyYXkgc2Vu
dCIpOwogICAgIH0gZWxzZSBpZiAoZXZlbnQuZGF0YSA9PSAidHdvIHBvcnRzIikgewogICAgICAg
ICBpZiAoIWV2ZW50LnBvcnRzKSB7CiAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJldmVudC5wb3J0
cyBzaG91bGQgYmUgbm9uLW51bGwgd2hlbiBwb3J0cyBzZW50Iik7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVzb3VyY2VzL3dvcmtlci1jb250ZXh0LW11bHRpLXBvcnQu
anMgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVzb3VyY2VzL3dvcmtlci1jb250ZXh0LW11
bHRpLXBvcnQuanMKaW5kZXggNGI1NWNiODY4NGIyMTQzZDdiZDJiNGNjMTgxNDYwOTEzZGVhYTEz
Ny4uOTA4YTUwZmY2ZWMyNTRmYmJkZTVmODkzZWY1ODk4MGM3NzkwN2U1NiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3Jlc291cmNlcy93b3JrZXItY29udGV4dC1tdWx0aS1w
b3J0LmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9yZXNvdXJjZXMvd29ya2VyLWNv
bnRleHQtbXVsdGktcG9ydC5qcwpAQCAtMTIsMTUgKzEyLDE1IEBAIHdvcmtlci5vbm1lc3NhZ2Ug
PSBmdW5jdGlvbihldmVudCkgewogICAgIGlmIChldmVudC5kYXRhID09ICJkb25lIikKICAgICAg
ICAgZXZlbnQucG9ydHNbMF0ub25tZXNzYWdlID0gZG9uZTsKICAgICBlbHNlIGlmIChldmVudC5k
YXRhID09ICJub3BvcnQiKSB7Ci0gICAgICAgIGlmICghZXZlbnQucG9ydHMpCi0gICAgICAgICAg
ICB0ZXN0UGFzc2VkKCJldmVudC5wb3J0cyBpcyBudWxsIHdoZW4gbm8gcG9ydCBzZW50Iik7Cisg
ICAgICAgIGlmIChldmVudC5wb3J0cyAmJiAhZXZlbnQucG9ydHMubGVuZ3RoKQorICAgICAgICAg
ICAgdGVzdFBhc3NlZCgiZXZlbnQucG9ydHMgaXMgbm9uLW51bGwgYW5kIHplcm8gbGVuZ3RoIHdo
ZW4gbm8gcG9ydCBzZW50Iik7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHRlc3RGYWlsZWQo
ImV2ZW50LnBvcnRzIHNob3VsZCBiZSBudWxsIHdoZW4gbm8gcG9ydCBzZW50Iik7CisgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJldmVudC5wb3J0cyBpcyBudWxsIG9yIG5vbi16ZXJvIGxlbmd0aCB3
aGVuIG5vIHBvcnQgc2VudCIpOwogICAgIH0gZWxzZSBpZiAoZXZlbnQuZGF0YSA9PSAiemVybyBw
b3J0cyIpIHsKLSAgICAgICAgaWYgKCFldmVudC5wb3J0cykKLSAgICAgICAgICAgIHRlc3RQYXNz
ZWQoImV2ZW50LnBvcnRzIGlzIG51bGwgd2hlbiBlbXB0eSBhcnJheSBzZW50Iik7CisgICAgICAg
IGlmIChldmVudC5wb3J0cyAmJiAhZXZlbnQucG9ydHMubGVuZ3RoKQorICAgICAgICAgICAgdGVz
dFBhc3NlZCgiZXZlbnQucG9ydHMgaXMgbm9uLW51bGwgYW5kIHplcm8gbGVuZ3RoIHdoZW4gZW1w
dHkgYXJyYXkgc2VudCIpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJl
dmVudC5wb3J0cyBzaG91bGQgYmUgbnVsbCB3aGVuIGVtcHR5IGFycmF5IHNlbnQiKTsKKyAgICAg
ICAgICAgIHRlc3RGYWlsZWQoImV2ZW50LnBvcnRzIGlzIG51bGwgb3Igbm9uLXplcm8gbGVuZ3Ro
IHdoZW4gZW1wdHkgYXJyYXkgc2VudCIpOwogICAgIH0gZWxzZSBpZiAoZXZlbnQuZGF0YSA9PSAi
dHdvIHBvcnRzIikgewogICAgICAgICBpZiAoIWV2ZW50LnBvcnRzKSB7CiAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJldmVudC5wb3J0cyBzaG91bGQgYmUgbm9uLW51bGwgd2hlbiBwb3J0cyBzZW50
Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVzb3VyY2VzL3dvcmtl
ci1tZXNzYWdlcG9ydC5qcyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9yZXNvdXJjZXMvd29y
a2VyLW1lc3NhZ2Vwb3J0LmpzCmluZGV4IGE3YjRmNzcwNGMxMGRjOGMwY2I2NDliNTIyN2NlYTJk
OTNlZGI1YjEuLjFlMDFiMGE1MmI1ODZiMDBjYmJiMjhiMjM1Mjk1OWY3ZmExNTBlMzkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9yZXNvdXJjZXMvd29ya2VyLW1lc3NhZ2Vw
b3J0LmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9yZXNvdXJjZXMvd29ya2VyLW1l
c3NhZ2Vwb3J0LmpzCkBAIC04LDEwICs4LDEwIEBAIG9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2dCkg
ewogICAgICAgICAgICAgcG9zdE1lc3NhZ2UoIkZBSUw6IERpZCBub3QgcmVjZWl2ZSBleHBlY3Rl
ZCBNZXNzYWdlUG9ydCIpOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChldnQuZGF0YSA9PSAi
bm9wb3J0IikgewotICAgICAgICBpZiAoZXZ0LnBvcnRzKSB7Ci0gICAgICAgICAgICBwb3N0TWVz
c2FnZSgiRkFJTDogUmVjZWl2ZWQgbWVzc2FnZSBwb3J0Iik7CisgICAgICAgIGlmICghZXZ0LnBv
cnRzIHx8IGV2dC5wb3J0cy5sZW5ndGgpIHsKKyAgICAgICAgICAgIHBvc3RNZXNzYWdlKCJGQUlM
OiBSZWNlaXZlZCBtZXNzYWdlIHBvcnQgb3IgbnVsbCBwb3J0cyBhcnJheSIpOwogICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgcG9zdE1lc3NhZ2UoIlBBU1M6IGV2dC5wb3J0cyA9IG51bGwg
YXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgICAgIHBvc3RNZXNzYWdlKCJQQVNTOiBldnQucG9ydHMg
PSBbXSBhcyBleHBlY3RlZCIpOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChldnQuZGF0YSA9
PSAic3BhbSIpIHsKICAgICAgICAgZm9yICh2YXIgaSA9IDAgOyBpIDwgMTAwMCA7IGkrKykgewpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3Jlc291cmNlcy93b3JrZXItdGhy
ZWFkLW11bHRpLXBvcnQuanMgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVzb3VyY2VzL3dv
cmtlci10aHJlYWQtbXVsdGktcG9ydC5qcwppbmRleCBiZjM1ZWIwMWNlYzhkZTczNzc3Nzc2YzE0
ZGNiNTk0NjY1MjRkMzM5Li42YmVkMmZmNTAyYjBhOTdlZDRiOTMwMjMxOWIxNTc4MGRkMTQzNGRi
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVzb3VyY2VzL3dvcmtlci10
aHJlYWQtbXVsdGktcG9ydC5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVzb3Vy
Y2VzL3dvcmtlci10aHJlYWQtbXVsdGktcG9ydC5qcwpAQCAtMSwxNCArMSwxNCBAQAogb25tZXNz
YWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICBpZiAoZXZlbnQuZGF0YSA9PSAibm9wb3J0Iikg
ewotICAgICAgICBpZiAoIWV2ZW50LnBvcnRzKQotICAgICAgICAgICAgdGVzdFBhc3NlZCgiZXZl
bnQucG9ydHMgaXMgbnVsbCB3aGVuIG5vIHBvcnQgc2VudCIpOworICAgICAgICBpZiAoZXZlbnQu
cG9ydHMgJiYgIWV2ZW50LnBvcnRzLmxlbmd0aCkKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoImV2
ZW50LnBvcnRzIGlzIG5vbi1udWxsIGFuZCB6ZXJvIGxlbmd0aCB3aGVuIG5vIHBvcnQgc2VudCIp
OwogICAgICAgICBlbHNlCi0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJldmVudC5wb3J0cyBzaG91
bGQgYmUgbnVsbCB3aGVuIG5vIHBvcnQgc2VudCIpOworICAgICAgICAgICAgdGVzdEZhaWxlZCgi
ZXZlbnQucG9ydHMgaXMgbnVsbCBvciBub24temVybyBsZW5ndGggd2hlbiBubyBwb3J0IHNlbnQi
KTsKICAgICB9IGVsc2UgaWYgKGV2ZW50LmRhdGEgPT0gInplcm8gcG9ydHMiKSB7Ci0gICAgICAg
IGlmICghZXZlbnQucG9ydHMpCi0gICAgICAgICAgICB0ZXN0UGFzc2VkKCJldmVudC5wb3J0cyBp
cyBudWxsIHdoZW4gZW1wdHkgYXJyYXkgc2VudCIpOworICAgICAgICBpZiAoZXZlbnQucG9ydHMg
JiYgIWV2ZW50LnBvcnRzLmxlbmd0aCkKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoImV2ZW50LnBv
cnRzIGlzIG5vbi1udWxsIGFuZCB6ZXJvIGxlbmd0aCB3aGVuIGVtcHR5IGFycmF5IHNlbnQiKTsK
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgdGVzdEZhaWxlZCgiZXZlbnQucG9ydHMgc2hvdWxk
IGJlIG51bGwgd2hlbiBlbXB0eSBhcnJheSBzZW50Iik7CisgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJldmVudC5wb3J0cyBpcyBudWxsIG9yIG5vbi16ZXJvIGxlbmd0aCB3aGVuIGVtcHR5IGFycmF5
IHNlbnQiKTsKICAgICB9IGVsc2UgaWYgKGV2ZW50LmRhdGEgPT0gInR3byBwb3J0cyIpIHsKICAg
ICAgICAgaWYgKCFldmVudC5wb3J0cykgewogICAgICAgICAgICAgdGVzdEZhaWxlZCgiZXZlbnQu
cG9ydHMgc2hvdWxkIGJlIG5vbi1udWxsIHdoZW4gcG9ydHMgc2VudCIpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtlci1jb250ZXh0LW11bHRpLXBvcnQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtlci1jb250ZXh0LW11bHRpLXBv
cnQtZXhwZWN0ZWQudHh0CmluZGV4IGZjYTFmZjg5MWY0ZmEzZjc1NTYwNTcxZTA4NWI2MWJjODBk
OTIxNWIuLjYxNjkxZmFhNzRlYjFjZmQzNWU0NzgwYTZjNDkxNWM5NzU1ZDFjMDggMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItY29udGV4dC1tdWx0aS1wb3J0LWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvd29ya2VyLWNvbnRleHQt
bXVsdGktcG9ydC1leHBlY3RlZC50eHQKQEAgLTMsOCArMyw4IEBAIFRoaXMgdGVzdCBjaGVja3Mg
dGhlIHZhcmlvdXMgdXNlIGNhc2VzIGFyb3VuZCBzZW5kaW5nIG11bHRpcGxlIHBvcnRzIHRocm91
Z2ggV29yCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBldmVudC5wb3J0cyBp
cyBudWxsIHdoZW4gbm8gcG9ydCBzZW50Ci1QQVNTIGV2ZW50LnBvcnRzIGlzIG51bGwgd2hlbiBl
bXB0eSBhcnJheSBzZW50CitQQVNTIGV2ZW50LnBvcnRzIGlzIG5vbi1udWxsIGFuZCB6ZXJvIGxl
bmd0aCB3aGVuIG5vIHBvcnQgc2VudAorUEFTUyBldmVudC5wb3J0cyBpcyBub24tbnVsbCBhbmQg
emVybyBsZW5ndGggd2hlbiBlbXB0eSBhcnJheSBzZW50CiBQQVNTIGV2ZW50LnBvcnRzIGNvbnRh
aW5zIHR3byBwb3J0cyB3aGVuIHR3byBwb3J0cyBzZW50CiBQQVNTIHBvc3RpbmcgYSBudWxsIHBv
cnQgZGlkIHRocm93OiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEK
IFBBU1MgcG9zdGluZyBhIG5vbi1wb3J0IGRpZCB0aHJvdzogVHlwZUVycm9yOiBUeXBlIGVycm9y
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvd29ya2VyLW1lc3NhZ2Vwb3J0
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItbWVzc2FnZXBv
cnQtZXhwZWN0ZWQudHh0CmluZGV4IDkwMzk4ZTFkMjI4ZjMzMjQwZWM1MjlkZDE2NjU3MDMyMDY1
NTZiZGIuLjkwNmI2YjgwYTczY2RhMmI2ZjJmM2U0ZWEzNmVmZWYxMTdjZWQ3NWQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItbWVzc2FnZXBvcnQtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItbWVzc2FnZXBvcnQtZXhw
ZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAogVGVzdCB0aGF0IHBhZ2VzIGFuZCB3b3JrZXJzIGNh
biBzZW5kIE1lc3NhZ2VQb3J0cyB0byBvbmUgYW5vdGhlci4gU2hvdWxkIHByaW50ICJET05FIiB3
aGVuIGRvbmUuCiAKLVBBU1M6IGV2dC5wb3J0cyA9IG51bGwgYXMgZXhwZWN0ZWQKK1BBU1M6IGV2
dC5wb3J0cyA9IFtdIGFzIGV4cGVjdGVkCiBQQVNTOiBSZWNlaXZlZCBtZXNzYWdlIHBvcnQKIFBB
U1M6IFJlY2VpdmVkIHJlc3BvbnNlIGZyb20gV29ya2VyIHZpYSBNZXNzYWdlUG9ydAogUEFTUzog
R290IHBvcnQgZnJvbSB3b3JrZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vy
cy93b3JrZXItbXVsdGktcG9ydC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtl
cnMvd29ya2VyLW11bHRpLXBvcnQtZXhwZWN0ZWQudHh0CmluZGV4IDg4YjQwNjJiNGQ1NzRjMTdh
N2E3NDBhM2YxY2ZmNWU1MTk4OTZlNGEuLjk5ZWI4YzgwNzAxY2U2NmIwOTdjNzhkMjY3MGI2MzJh
ZmI0YjAzNDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItbXVs
dGktcG9ydC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtl
ci1tdWx0aS1wb3J0LWV4cGVjdGVkLnR4dApAQCAtNyw4ICs3LDggQEAgUEFTUyB3b3JrZXIucG9z
dE1lc3NhZ2UoIm51bGwgcG9ydCIsIFtjaGFubmVsMy5wb3J0MSwgbnVsbCwgY2hhbm5lbDMucG9y
dDJdKSB0aHIKIFBBU1Mgd29ya2VyLnBvc3RNZXNzYWdlKCJub3RBUG9ydCIsIFtjaGFubmVsMy5w
b3J0MSwge30sIGNoYW5uZWwzLnBvcnQyXSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlw
ZSBlcnJvci4KIFBBU1Mgd29ya2VyLnBvc3RNZXNzYWdlKCJub3RBbkFycmF5IiwgY2hhbm5lbDMu
cG9ydDEpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNTIHdvcmtl
ci5wb3N0TWVzc2FnZSgibm90QVNlcXVlbmNlIiwgW3tsZW5ndGg6IDN9XSkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgZXZlbnQucG9ydHMgaXMgbnVsbCB3aGVu
IG5vIHBvcnQgc2VudAotUEFTUyBldmVudC5wb3J0cyBpcyBudWxsIHdoZW4gZW1wdHkgYXJyYXkg
c2VudAorUEFTUyBldmVudC5wb3J0cyBpcyBub24tbnVsbCBhbmQgemVybyBsZW5ndGggd2hlbiBu
byBwb3J0IHNlbnQKK1BBU1MgZXZlbnQucG9ydHMgaXMgbm9uLW51bGwgYW5kIHplcm8gbGVuZ3Ro
IHdoZW4gZW1wdHkgYXJyYXkgc2VudAogUEFTUyBldmVudC5wb3J0cyBjb250YWlucyB0d28gcG9y
dHMgd2hlbiB0d28gcG9ydHMgc2VudAogUEFTUyBldmVudC5wb3J0cyBjb250YWlucyB0d28gcG9y
dHMgd2hlbiB0d28gcG9ydHMgcmUtc2VudCBhZnRlciBlcnJvcgogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9ldmVudHMvbWVzc2FnZS1wb3J0LW11
bHRpLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0
L2V2ZW50cy9tZXNzYWdlLXBvcnQtbXVsdGktZXhwZWN0ZWQudHh0CmluZGV4IDk4MWViOTJmZjdk
MjBkN2QzNTQzYjdhZWI0ODViNWFhZjU0NGZhMjUuLjEwNDhkZmFhOGM3ZTFkMzJhYWY4ODVmMTc0
NDIyNzc0YTM3YWJjM2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LXdpbi9mYXN0L2V2ZW50cy9tZXNzYWdlLXBvcnQtbXVsdGktZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L2V2ZW50cy9tZXNzYWdlLXBvcnQt
bXVsdGktZXhwZWN0ZWQudHh0CkBAIC05LDggKzksOCBAQCBQQVNTIGNoYW5uZWwucG9ydDEucG9z
dE1lc3NhZ2UoIm51bGwgcG9ydCIsIFtjaGFubmVsMy5wb3J0MSwgbnVsbCwgY2hhbm5lbDMucG9y
dAogUEFTUyBjaGFubmVsLnBvcnQxLnBvc3RNZXNzYWdlKCJub3RBUG9ydCIsIFtjaGFubmVsMy5w
b3J0MSwge30sIGNoYW5uZWwzLnBvcnQyXSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTWVz
c2FnZVBvcnRBcnJheSBhcmd1bWVudCBtdXN0IGNvbnRhaW4gb25seSBNZXNzYWdlUG9ydHMuCiBQ
QVNTIGNoYW5uZWwucG9ydDEucG9zdE1lc3NhZ2UoIm5vdEFuQXJyYXkiLCBjaGFubmVsMy5wb3J0
MSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTWVzc2FnZVBvcnRBcnJheSBhcmd1bWVudCBo
YXMgbm8gbGVuZ3RoIGF0dHJpYnV0ZS4KIFBBU1MgY2hhbm5lbC5wb3J0MS5wb3N0TWVzc2FnZSgi
bm90QVNlcXVlbmNlIiwgW3tsZW5ndGg6IDN9XSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjog
TWVzc2FnZVBvcnRBcnJheSBhcmd1bWVudCBtdXN0IGNvbnRhaW4gb25seSBNZXNzYWdlUG9ydHMu
Ci1QQVNTIGV2ZW50LnBvcnRzIGlzIG51bGwgd2hlbiBubyBwb3J0IHNlbnQKLVBBU1MgZXZlbnQu
cG9ydHMgaXMgbnVsbCB3aGVuIGVtcHR5IGFycmF5IHNlbnQKK1BBU1MgZXZlbnQucG9ydHMgaXMg
bm9uLW51bGwgYW5kIHplcm8gbGVuZ3RoIHdoZW4gbm8gcG9ydCBzZW50CitQQVNTIGV2ZW50LnBv
cnRzIGlzIG5vbi1udWxsIGFuZCB6ZXJvIGxlbmd0aCB3aGVuIGVtcHR5IGFycmF5IHNlbnQKIFBB
U1MgZXZlbnQucG9ydHMgY29udGFpbnMgdHdvIHBvcnRzIHdoZW4gdHdvIHBvcnRzIHNlbnQKIFBB
U1MgZXZlbnQucG9ydHMgY29udGFpbnMgdHdvIHBvcnRzIHdoZW4gdHdvIHBvcnRzIHJlLXNlbnQg
YWZ0ZXIgZXJyb3IKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL2Zhc3Qvd29ya2Vycy93b3JrZXItY29udGV4dC1tdWx0aS1wb3J0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L3dvcmtlcnMvd29ya2VyLWNv
bnRleHQtbXVsdGktcG9ydC1leHBlY3RlZC50eHQKaW5kZXggZTY2MjcwZjEyN2JkMzk5M2M1MTZh
OWNlZTE3NjE4YjM3YzVlY2M2NS4uNGU4ODQ5MWZiOGE5YzU3ZTk4ZGFhN2VhNTdhNmJkNmVmM2Q5
NTg2MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3Qv
d29ya2Vycy93b3JrZXItY29udGV4dC1tdWx0aS1wb3J0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC93b3JrZXJzL3dvcmtlci1jb250ZXh0
LW11bHRpLXBvcnQtZXhwZWN0ZWQudHh0CkBAIC0zLDggKzMsOCBAQCBUaGlzIHRlc3QgY2hlY2tz
IHRoZSB2YXJpb3VzIHVzZSBjYXNlcyBhcm91bmQgc2VuZGluZyBtdWx0aXBsZSBwb3J0cyB0aHJv
dWdoIFdvcgogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1MgZXZlbnQucG9ydHMg
aXMgbnVsbCB3aGVuIG5vIHBvcnQgc2VudAotUEFTUyBldmVudC5wb3J0cyBpcyBudWxsIHdoZW4g
ZW1wdHkgYXJyYXkgc2VudAorUEFTUyBldmVudC5wb3J0cyBpcyBub24tbnVsbCBhbmQgemVybyBs
ZW5ndGggd2hlbiBubyBwb3J0IHNlbnQKK1BBU1MgZXZlbnQucG9ydHMgaXMgbm9uLW51bGwgYW5k
IHplcm8gbGVuZ3RoIHdoZW4gZW1wdHkgYXJyYXkgc2VudAogUEFTUyBldmVudC5wb3J0cyBjb250
YWlucyB0d28gcG9ydHMgd2hlbiB0d28gcG9ydHMgc2VudAogUEFTUyBwb3N0aW5nIGEgbnVsbCBw
b3J0IGRpZCB0aHJvdzogRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDEx
CiBQQVNTIHBvc3RpbmcgYSBub24tcG9ydCBkaWQgdGhyb3c6IFR5cGVFcnJvcjogTWVzc2FnZVBv
cnRBcnJheSBhcmd1bWVudCBtdXN0IGNvbnRhaW4gb25seSBNZXNzYWdlUG9ydHMKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L3dvcmtlcnMvd29ya2Vy
LW11bHRpLXBvcnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL2Zhc3Qvd29ya2Vycy93b3JrZXItbXVsdGktcG9ydC1leHBlY3RlZC50eHQKaW5kZXggZjEx
Yzc0YzhkYzhjMzIwMTFhYzdiZWY5OTRjZmNjNmVlY2RlNGFlZC4uZDFkOTZlYTFmMTM0NDFkMmM3
OTIxZWVlZDZlOTI4YmY5NDZlYmZkMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL2Zhc3Qvd29ya2Vycy93b3JrZXItbXVsdGktcG9ydC1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3Qvd29ya2Vycy93b3Jr
ZXItbXVsdGktcG9ydC1leHBlY3RlZC50eHQKQEAgLTcsOCArNyw4IEBAIFBBU1Mgd29ya2VyLnBv
c3RNZXNzYWdlKCJudWxsIHBvcnQiLCBbY2hhbm5lbDMucG9ydDEsIG51bGwsIGNoYW5uZWwzLnBv
cnQyXSkgdGhyCiBQQVNTIHdvcmtlci5wb3N0TWVzc2FnZSgibm90QVBvcnQiLCBbY2hhbm5lbDMu
cG9ydDEsIHt9LCBjaGFubmVsMy5wb3J0Ml0pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE1l
c3NhZ2VQb3J0QXJyYXkgYXJndW1lbnQgbXVzdCBjb250YWluIG9ubHkgTWVzc2FnZVBvcnRzLgog
UEFTUyB3b3JrZXIucG9zdE1lc3NhZ2UoIm5vdEFuQXJyYXkiLCBjaGFubmVsMy5wb3J0MSkgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTWVzc2FnZVBvcnRBcnJheSBhcmd1bWVudCBoYXMgbm8g
bGVuZ3RoIGF0dHJpYnV0ZS4KIFBBU1Mgd29ya2VyLnBvc3RNZXNzYWdlKCJub3RBU2VxdWVuY2Ui
LCBbe2xlbmd0aDogM31dKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBNZXNzYWdlUG9ydEFy
cmF5IGFyZ3VtZW50IG11c3QgY29udGFpbiBvbmx5IE1lc3NhZ2VQb3J0cy4KLVBBU1MgZXZlbnQu
cG9ydHMgaXMgbnVsbCB3aGVuIG5vIHBvcnQgc2VudAotUEFTUyBldmVudC5wb3J0cyBpcyBudWxs
IHdoZW4gZW1wdHkgYXJyYXkgc2VudAorUEFTUyBldmVudC5wb3J0cyBpcyBub24tbnVsbCBhbmQg
emVybyBsZW5ndGggd2hlbiBubyBwb3J0IHNlbnQKK1BBU1MgZXZlbnQucG9ydHMgaXMgbm9uLW51
bGwgYW5kIHplcm8gbGVuZ3RoIHdoZW4gZW1wdHkgYXJyYXkgc2VudAogUEFTUyBldmVudC5wb3J0
cyBjb250YWlucyB0d28gcG9ydHMgd2hlbiB0d28gcG9ydHMgc2VudAogUEFTUyBldmVudC5wb3J0
cyBjb250YWlucyB0d28gcG9ydHMgd2hlbiB0d28gcG9ydHMgcmUtc2VudCBhZnRlciBlcnJvcgog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2RvbS9XaW5k
b3cvd2luZG93LXBvc3RtZXNzYWdlLWFyZ3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1hcmdzLWV4
cGVjdGVkLnR4dAppbmRleCA1ZWNlODQxNGNmN2Q3OTQyNzhlZGY3MmNkMmY1ZjllNTk0ODU1Mjll
Li40NWVjNzNkMjMyZDY3YTJiM2U2Y2ViNGZjNzE4YWM4OTUxZTU3ODdmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3Rt
ZXNzYWdlLWFyZ3MtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtYXJncy1leHBlY3RlZC50eHQK
QEAgLTksMTAgKzksMTAgQEAgUEFTUzogUG9zdGluZyBtZXNzYWdlICgnNicsIHVuZGVmaW5lZCkg
ZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24KIFBBU1M6IFBvc3RpbmcgbWVzc2FnZSAoJzcnLCBb
b2JqZWN0IE1lc3NhZ2VQb3J0XSxbb2JqZWN0IE1lc3NhZ2VQb3J0XSkgZGlkIG5vdCB0aHJvdyBh
biBleGNlcHRpb24KIFBBU1M6IFBvc3RpbmcgbWVzc2FnZSAoJzIxNDc0ODM2NDgnLCBudWxsKSBk
aWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbgogUEFTUzogUG9zdGluZyBtZXNzYWdlICgnZG9uZScs
ICopIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uCi1SZWNlaXZlZCBtZXNzYWdlICc0JwotUmVj
ZWl2ZWQgbWVzc2FnZSAnNScKLVJlY2VpdmVkIG1lc3NhZ2UgJzYnCitSZWNlaXZlZCBtZXNzYWdl
ICc0JyB3aXRoIDAgcG9ydHMuCitSZWNlaXZlZCBtZXNzYWdlICc1JyB3aXRoIDAgcG9ydHMuCitS
ZWNlaXZlZCBtZXNzYWdlICc2JyB3aXRoIDAgcG9ydHMuCiBSZWNlaXZlZCBtZXNzYWdlICc3JyB3
aXRoIDIgcG9ydHMuCi1SZWNlaXZlZCBtZXNzYWdlICcyMTQ3NDgzNjQ4JwotUmVjZWl2ZWQgbWVz
c2FnZSAnZG9uZScKK1JlY2VpdmVkIG1lc3NhZ2UgJzIxNDc0ODM2NDgnIHdpdGggMCBwb3J0cy4K
K1JlY2VpdmVkIG1lc3NhZ2UgJ2RvbmUnIHdpdGggMCBwb3J0cy4KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDVj
YWI1Y2NhZDU1MzJiOTA1N2ZhNjEyNzg5Mjc0YTAzMDE2ZWZlMTIuLjk4MzBkZjlhOWY5ZjIzYjg3
NTAyYmMwMzg1MTdiYjdhZmVhYWQ3ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAx
MS0wOC0yMyAgRGF2aWQgTGV2aW4gIDxsZXZpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTWVz
c2FnZUV2ZW50LnBvcnRzIHNob3VsZG4ndCBldmVyIGJlIG51bGwuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02Njc4OQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNNZXNzYWdlRXZl
bnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNNZXNzYWdlRXZlbnQ6OnBvcnRzKTog
TmV2ZXIgcmV0dXJuIG51bGwuCisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2Fn
ZUV2ZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4TWVzc2FnZUV2ZW50Ojpwb3J0
c0FjY2Vzc29yR2V0dGVyKTogRGl0dG8uCisKIDIwMTEtMDgtMjIgIEFsaWNlIEJveGhhbGwgIDxh
Ym94aGFsbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRmxlaXph
Y2guCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVu
dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1
c3RvbS5jcHAKaW5kZXggMjE1ZTE1ZjBhODk2N2IxMzcxM2VhNTg0NmVmNTlkMWQ5MzFjYTJjYi4u
NDZmNTg5OGM2MmYxNTMyY2U3YzRhZmQzMGQ1NmExMmIwNTFjNDQ3NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcApAQCAtNDYs
NyArNDYsNyBAQCBKU1ZhbHVlIEpTTWVzc2FnZUV2ZW50Ojpwb3J0cyhFeGVjU3RhdGUqIGV4ZWMp
IGNvbnN0CiB7CiAgICAgTWVzc2FnZVBvcnRBcnJheSogcG9ydHMgPSBzdGF0aWNfY2FzdDxNZXNz
YWdlRXZlbnQqPihpbXBsKCkpLT5wb3J0cygpOwogICAgIGlmICghcG9ydHMgfHwgcG9ydHMtPmlz
RW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIGpzTnVsbCgpOworICAgICAgICByZXR1cm4gY29uc3Ry
dWN0RW1wdHlBcnJheShleGVjLCBnbG9iYWxPYmplY3QoKSk7CiAKICAgICBNYXJrZWRBcmd1bWVu
dEJ1ZmZlciBsaXN0OwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcG9ydHMtPnNpemUoKTsg
aSsrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVz
c2FnZUV2ZW50Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OE1lc3NhZ2VFdmVudEN1c3RvbS5jcHAKaW5kZXggNDc1ZGUyYTA5OTlkYjFkYjVhMzM3ZWI2OGFi
NTQ0NjhiNGRmMGJhMS4uYzdiOWI5ZWM3YzI2YWY2YjNmYzhlOTQwMjA5MmM2ODkyNmJlNjllMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUV2
ZW50Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhN
ZXNzYWdlRXZlbnRDdXN0b20uY3BwCkBAIC00OSw3ICs0OSw3IEBAIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBWOE1lc3NhZ2VFdmVudDo6cG9ydHNBY2Nlc3NvckdldHRlcih2ODo6TG9jYWw8djg6OlN0
cmluZz4KIAogICAgIE1lc3NhZ2VQb3J0QXJyYXkqIHBvcnRzID0gZXZlbnQtPnBvcnRzKCk7CiAg
ICAgaWYgKCFwb3J0cyB8fCBwb3J0cy0+aXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gdjg6Ok51
bGwoKTsKKyAgICAgICAgcmV0dXJuIHY4OjpBcnJheTo6TmV3KDApOwogCiAgICAgdjg6OkxvY2Fs
PHY4OjpBcnJheT4gcG9ydEFycmF5ID0gdjg6OkFycmF5OjpOZXcocG9ydHMtPnNpemUoKSk7CiAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwb3J0cy0+c2l6ZSgpOyArK2kpCg==
</data>
<flag name="review"
          id="100924"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>