<?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>27660</bug_id>
          
          <creation_ts>2009-07-24 11:59:57 -0700</creation_ts>
          <short_desc>createMarkup does not handle CSS properly</short_desc>
          <delta_ts>2009-12-14 10:25:51 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>eric</cc>
    
    <cc>jparent</cc>
    
    <cc>justin.garcia</cc>
    
    <cc>sullivan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>134614</commentid>
    <comment_count>0</comment_count>
      <attachid>33458</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2009-07-24 11:59:57 -0700</bug_when>
    <thetext>Created attachment 33458
Demonstrates the bug using InsertOrderedList

createMarkup adds span with style, which is directly taken from CSSMutableDeclaration class.  But this causes the following problems:

1. -webkit-text-decorations-in-effect hasn&apos;t been converted to text-decoration.
2. It produces CSS regardless of whether StyleWithCSS is on or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134622</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-24 12:21:38 -0700</bug_when>
    <thetext>This is also not a P1.  Please see http://webkit.org/quality/bugpriorities.html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134692</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2009-07-24 17:40:24 -0700</bug_when>
    <thetext>Changing specialCommonAncestor turned out to be rather challenging because of /LayoutTests/editing/deleting/pruning-after-merge-2.html.

In this test, we have
&lt;div id=&quot;test&quot; contenteditable=&quot;true&quot;&gt;&lt;div&gt;foo&lt;/div&gt;&lt;div style=&quot;border: 1px solid blue; padding: 5px&quot;&gt;&lt;b&gt;&lt;div style=&quot;border: 1px solid red; padding: 5px&quot;&gt;bar&lt;/div&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;

and we try to delete both div&apos;s that surrounds &quot;bar&quot;.  But allowing specialCommonAncestor to be any presentational node (u, s, strike, i, em, b, &amp; strong) causes this div be included in the fragment.

However, this is malformed HTML to begin with since we are allowing block element inside an inline element.  Should we delete the inner div?  Or should we delete b between div&apos;s?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134693</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2009-07-24 17:41:32 -0700</bug_when>
    <thetext>editing/deleting/delete-3857753-fix.html and editing/pasteboard/display-block-on-spans.html will also require rebaseline but that will be nothing but improvement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134706</commentid>
    <comment_count>4</comment_count>
      <attachid>33483</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2009-07-24 21:05:34 -0700</bug_when>
    <thetext>Created attachment 33483
fixes the bug but may worsen the bug 26483</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134849</commentid>
    <comment_count>5</comment_count>
      <attachid>33483</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-26 23:59:34 -0700</bug_when>
    <thetext>Comment on attachment 33483
fixes the bug but may worsen the bug 26483

Isn&apos;t this patch doing two separate things?

It looks like the addStyleMarkup change is just code-cleanup, and is very easy to r+.  The isElementPresentational usage change seems to be a functional change.  Can we separate these two changes into separate patches, or am I missing something?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134858</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2009-07-27 01:16:09 -0700</bug_when>
    <thetext>As you mentioned, I&apos;m making two changes:
1. Addition of addStyleMarkup
2. Modification of isElementPresentational (=elementHasTextDecorationProperty)

But they are inseparable in that fixing the bug requires me changing isElementPresentational which means I need to add the first ASSERT of addStyleMarkup in three places to signify that -webkit-text-decorations-in-effect isn&apos;t passed to the style.

On the other hand, if I were to make addStyleMarkup first, I need to ensure that -webkit-text-decorations-in-effect isn&apos;t passed to the style because that&apos;s what the function must assume. But this means I need to fix elementHasTextDecorationProperty beforehand. But I could make this change first if you really want me to separate the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135005</commentid>
    <comment_count>7</comment_count>
      <attachid>33483</attachid>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2009-07-27 13:40:38 -0700</bug_when>
    <thetext>Comment on attachment 33483
fixes the bug but may worsen the bug 26483

No need to separate the patch, it&apos;s rather small.

+    // All text-decoration-related elements should have been treated as special ancestor

Small typo.  Should read &quot;as special ancestors&quot;.

+    DEFINE_STATIC_LOCAL(const String, divCloseTag, (&quot;&lt;/div&gt;&quot;));
+    DEFINE_STATIC_LOCAL(const String, styleSpanOpen, (&quot;&lt;span class=\&quot;&quot; AppleStyleSpanClass &quot;\&quot; style=\&quot;&quot;));
+    DEFINE_STATIC_LOCAL(const String, styleSpanClose, (&quot;&lt;/span&gt;&quot;));

I&apos;d name it &quot;divClose&quot; for consistency.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135079</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2009-07-27 17:57:10 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/46446</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171463</commentid>
    <comment_count>9</comment_count>
    <who name="John Sullivan">sullivan</who>
    <bug_when>2009-12-14 10:25:51 -0800</bug_when>
    <thetext>The assertion added in this patch is firing in a case involving copying link text -- https://bugs.webkit.org/show_bug.cgi?id=32525.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>33458</attachid>
            <date>2009-07-24 11:59:57 -0700</date>
            <delta_ts>2009-07-24 12:01:24 -0700</delta_ts>
            <desc>Demonstrates the bug using InsertOrderedList</desc>
            <filename>createMarkup.html</filename>
            <type>text/html</type>
            <size>638</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">PGhlYWQ+CjxzY3JpcHQ+CmZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICB2YXIgZSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7CiAgICB2YXIgcyA9IGRvY3VtZW50LmdldFNlbGVjdGlv
bigpOwogICAgdmFyIHIgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpOwogICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2JlZm9yZScpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KGUuaW5uZXJIVE1MKSk7CiAgICByLnNlbGVjdE5vZGUoZSk7CiAgICBzLnJlbW92ZUFsbFJhbmdl
cygpOwogICAgcy5hZGRSYW5nZShyKTsKICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJJbnNlcnRP
cmRlcmVkTGlzdCIpOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FmdGVyJykuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZS5pbm5lckhUTUwpKTsKfQo8L3NjcmlwdD4K
PC9oZWFkPgoKPGJvZHkgY29udGVudGVkaXRhYmxlPSJ0cnVlIiBvbmxvYWQ9InJ1blRlc3QoKTsi
Pgo8ZGl2IGlkPSJ0ZXN0Ij48dT5oZWxsbzwvdT48L2Rpdj4KCjxkaXY+QmVmb3JlOiA8c3BhbiBp
ZD0iYmVmb3JlIj48L3NwYW4+PC9kaXY+CjxkaXY+QWZ0ZXI6IDxzcGFuIGlkPSJhZnRlciI+PC9z
cGFuPjwvZGl2Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33483</attachid>
            <date>2009-07-24 21:05:34 -0700</date>
            <delta_ts>2009-07-27 13:40:38 -0700</delta_ts>
            <desc>fixes the bug but may worsen the bug 26483</desc>
            <filename>fix27660</filename>
            <type>text/plain</type>
            <size>20795</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NjM4NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMDktMDctMjQgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgY3Jl
YXRlTWFya3VwIGRvZXMgbm90IGhhbmRsZSBDU1MgcHJvcGVybHkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NjYwCisKKyAgICAgICAgVGhpcyBwYXRj
aCBpc29sYXRlcyBjb2RlIHRoYXQgY3JlYXRlcyBtYXJrdXAgZm9yIHN0eWxlcyBpbiBhZGRTdHls
ZU1hcmt1cAorICAgICAgICBJdCBhbHNvIG1ha2VzIGFsbCBwcmVzZW50YXRpb25hbCBlbGVtZW50
cyAodSwgcywgc3RyaWtlLCBpLCBlbSwgYiwgc3Ryb25nKSBzcGVjaWFsIGFuY2VzdG9yIGluIGNy
ZWF0ZU1hcmt1cAorICAgICAgICBzbyB0aGF0IHdlIGNhbiBhc3N1bWUgbm8gdGV4dCBkZWNvcmF0
aW9uIHN0eWxlIGlzIHBhc3NlZCB0byBhZGRTdHlsZU1hcmt1cC4KKworICAgICAgICAqIGVkaXRp
bmcvbWFya3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnByb3BlcnR5TWlzc2luZ09yRXF1YWxU
b05vbmUpOiBDaGFuZ2VkIHRoZSBmaXJzdCBhcmd1bWVudCBmcm9tIENTU011dGFibGVTdHlsZURl
Y2xlcmF0aW9uIHRvIENTU1N0eWxlRGVjbGFyYXRpb24KKyAgICAgICAgKFdlYkNvcmU6OmlzRWxl
bWVudFByZXNlbnRhdGlvbmFsKTogVXNlZCB0byBiZSBlbGVtZW50SGFzVGV4dERlY29yYXRpb25Q
cm9wZXJ0eSwgbm93IHN1cHBvcnRzIHByZXNlbnRhdGlvbmFsIHRhZ3MKKyAgICAgICAgKFdlYkNv
cmU6OmFkZFN0eWxlTWFya3VwKTogQWRkcyBtYXJrdXAgZm9yIHN0eWxlIHNwYW4gYW5kIGRpdgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTWFya3VwKTogVXNlcyBpc0VsZW1lbnRQcmVzZW50YXRp
b25hbCBhbmQgYWRkU3R5bGVNYXJrdXAKKwogMjAwOS0wNy0yNCAgTWFkcyBBZ2VyICA8YWdlckBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KSW5kZXg6IFdl
YkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9t
YXJrdXAuY3BwCShyZXZpc2lvbiA0NjM3NSkKKysrIFdlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02OTIsNyArNjkyLDcgQEAgc3RhdGljIFBhc3NSZWZQdHI8Q1NT
TXV0YWJsZVN0eWxlRGVjbGFyYQogICAgIHJldHVybiBzdHlsZS5yZWxlYXNlKCk7CiB9CiAKLXN0
YXRpYyBib29sIHByb3BlcnR5TWlzc2luZ09yRXF1YWxUb05vbmUoQ1NTTXV0YWJsZVN0eWxlRGVj
bGFyYXRpb24qIHN0eWxlLCBpbnQgcHJvcGVydHlJRCkKK3N0YXRpYyBib29sIHByb3BlcnR5TWlz
c2luZ09yRXF1YWxUb05vbmUoQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUsIGludCBwcm9wZXJ0
eUlEKQogewogICAgIGlmICghc3R5bGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTcwNCw4
ICs3MDQsMTEgQEAgc3RhdGljIGJvb2wgcHJvcGVydHlNaXNzaW5nT3JFcXVhbFRvTm9uZQogICAg
IHJldHVybiBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlLmdldCgpKS0+Z2V0
SWRlbnQoKSA9PSBDU1NWYWx1ZU5vbmU7CiB9CiAKLXN0YXRpYyBib29sIGVsZW1lbnRIYXNUZXh0
RGVjb3JhdGlvblByb3BlcnR5KGNvbnN0IE5vZGUqIG5vZGUpCitzdGF0aWMgYm9vbCBpc0VsZW1l
bnRQcmVzZW50YXRpb25hbChjb25zdCBOb2RlKiBub2RlKQogeworICAgIGlmIChub2RlLT5oYXNU
YWdOYW1lKHVUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUoc1RhZykgfHwgbm9kZS0+aGFzVGFnTmFt
ZShzdHJpa2VUYWcpIHx8CisgICAgICAgIG5vZGUtPmhhc1RhZ05hbWUoaVRhZykgfHwgbm9kZS0+
aGFzVGFnTmFtZShlbVRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZShiVGFnKSB8fCBub2RlLT5oYXNU
YWdOYW1lKHN0cm9uZ1RhZykpCisgICAgICAgIHJldHVybiB0cnVlOwogICAgIFJlZlB0cjxDU1NN
dXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gc3R5bGUgPSBzdHlsZUZyb21NYXRjaGVkUnVsZXNBbmRJ
bmxpbmVEZWNsKG5vZGUpOwogICAgIGlmICghc3R5bGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
QEAgLTc2Myw2ICs3NjYsMjUgQEAgc3RhdGljIGJvb2wgc2hvdWxkSW5jbHVkZVdyYXBwZXJGb3JG
dWxseQogICAgICAgICAgICBzdHlsZS0+Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0eUJh
Y2tncm91bmRDb2xvcik7CiB9CiAKK3N0YXRpYyB2b2lkIGFkZFN0eWxlTWFya3VwKFZlY3RvcjxT
dHJpbmc+JiBwcmVNYXJrdXBzLCBWZWN0b3I8U3RyaW5nPiYgcG9zdE1hcmt1cHMsIENTU1N0eWxl
RGVjbGFyYXRpb24qIHN0eWxlLCBEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgaXNCbG9jayA9IGZh
bHNlKQoreworICAgIC8vIEFsbCB0ZXh0LWRlY29yYXRpb24tcmVsYXRlZCBlbGVtZW50cyBzaG91
bGQgaGF2ZSBiZWVuIHRyZWF0ZWQgYXMgc3BlY2lhbCBhbmNlc3RvcgorICAgIC8vIElmIHdlIGV2
ZXIgaGl0IHRoaXMgQVNTRVJULCB3ZSBzaG91bGQgZXhwb3J0IFN0eWxlQ2hhbmdlIGluIEFwcGx5
U3R5bGVDb21tYW5kIGFuZCB1c2UgaXQgaGVyZQorICAgIEFTU0VSVChwcm9wZXJ0eU1pc3NpbmdP
ckVxdWFsVG9Ob25lKHN0eWxlLCBDU1NQcm9wZXJ0eVRleHREZWNvcmF0aW9uKSAmJiBwcm9wZXJ0
eU1pc3NpbmdPckVxdWFsVG9Ob25lKHN0eWxlLCBDU1NQcm9wZXJ0eVdlYmtpdFRleHREZWNvcmF0
aW9uc0luRWZmZWN0KSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGRp
dlN0eWxlLCAoIjxkaXYgc3R5bGU9XCIiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBTdHJpbmcsIGRpdkNsb3NlVGFnLCAoIjwvZGl2PiIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IFN0cmluZywgc3R5bGVTcGFuT3BlbiwgKCI8c3BhbiBjbGFzcz1cIiIgQXBwbGVT
dHlsZVNwYW5DbGFzcyAiXCIgc3R5bGU9XCIiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBTdHJpbmcsIHN0eWxlU3BhbkNsb3NlLCAoIjwvc3Bhbj4iKSk7CisgICAgVmVjdG9yPFVD
aGFyPiBvcGVuVGFnOworICAgIGFwcGVuZChvcGVuVGFnLCBpc0Jsb2NrID8gZGl2U3R5bGUgOiBz
dHlsZVNwYW5PcGVuKTsKKyAgICBhcHBlbmRBdHRyaWJ1dGVWYWx1ZShvcGVuVGFnLCBzdHlsZS0+
Y3NzVGV4dCgpLCBkb2N1bWVudC0+aXNIVE1MRG9jdW1lbnQoKSk7CisgICAgb3BlblRhZy5hcHBl
bmQoJ1wiJyk7CisgICAgb3BlblRhZy5hcHBlbmQoJz4nKTsKKyAgICBwcmVNYXJrdXBzLmFwcGVu
ZChTdHJpbmc6OmFkb3B0KG9wZW5UYWcpKTsKKyAgICAKKyAgICBwb3N0TWFya3Vwcy5hcHBlbmQo
aXNCbG9jayA/IGRpdkNsb3NlVGFnIDogc3R5bGVTcGFuQ2xvc2UpOworfQorCiAvLyBGSVhNRTog
U2hvdWxkbid0IHdlIG9taXQgc3R5bGUgaW5mbyB3aGVuIGFubm90YXRlID09IERvTm90QW5ub3Rh
dGVGb3JJbnRlcmNoYW5nZT8gCiAvLyBGSVhNRTogQXQgbGVhc3QsIGFubm90YXRpb24gYW5kIHN0
eWxlIGluZm8gc2hvdWxkIHByb2JhYmx5IG5vdCBiZSBpbmNsdWRlZCBpbiByYW5nZS5tYXJrdXBT
dHJpbmcoKQogU3RyaW5nIGNyZWF0ZU1hcmt1cChjb25zdCBSYW5nZSogcmFuZ2UsIFZlY3RvcjxO
b2RlKj4qIG5vZGVzLCBFQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSBhbm5vdGF0ZSwgYm9vbCBjb252
ZXJ0QmxvY2tzVG9JbmxpbmVzKQpAQCAtNzc2LDggKzc5OCw2IEBAIFN0cmluZyBjcmVhdGVNYXJr
dXAoY29uc3QgUmFuZ2UqIHJhbmdlLCAKICAgICBpZiAoIWRvY3VtZW50KQogICAgICAgICByZXR1
cm4gIiI7CiAKLSAgICBib29sIGRvY3VtZW50SXNIVE1MID0gZG9jdW1lbnQtPmlzSFRNTERvY3Vt
ZW50KCk7Ci0KICAgICAvLyBEaXNhYmxlIHRoZSBkZWxldGUgYnV0dG9uIHNvIGl0J3MgZWxlbWVu
dHMgYXJlIG5vdCBzZXJpYWxpemVkIGludG8gdGhlIG1hcmt1cCwKICAgICAvLyBidXQgbWFrZSBz
dXJlIG5laXRoZXIgZW5kcG9pbnQgaXMgaW5zaWRlIHRoZSBkZWxldGUgdXNlciBpbnRlcmZhY2Uu
CiAgICAgRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQtPmZyYW1lKCk7CkBAIC05MjcsMTIgKzk0Nywx
MiBAQCBTdHJpbmcgY3JlYXRlTWFya3VwKGNvbnN0IFJhbmdlKiByYW5nZSwgCiAgICAgICAgICAg
ICBpZiAoaXNNYWlsQmxvY2txdW90ZShhbmNlc3RvcikpCiAgICAgICAgICAgICAgICAgc3BlY2lh
bENvbW1vbkFuY2VzdG9yID0gYW5jZXN0b3I7CiAgICAgfQotICAgIAorCiAgICAgTm9kZSogY2hl
Y2tBbmNlc3RvciA9IHNwZWNpYWxDb21tb25BbmNlc3RvciA/IHNwZWNpYWxDb21tb25BbmNlc3Rv
ciA6IGNvbW1vbkFuY2VzdG9yOwogICAgIGlmIChjaGVja0FuY2VzdG9yLT5yZW5kZXJlcigpKSB7
Ci0gICAgICAgIFJlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gY2hlY2tBbmNlc3Rv
clN0eWxlID0gY29tcHV0ZWRTdHlsZShjaGVja0FuY2VzdG9yKS0+ZGVwcmVjYXRlZENvcHlJbmhl
cml0YWJsZVByb3BlcnRpZXMoKTsKLSAgICAgICAgaWYgKCFwcm9wZXJ0eU1pc3NpbmdPckVxdWFs
VG9Ob25lKGNoZWNrQW5jZXN0b3JTdHlsZS5nZXQoKSwgQ1NTUHJvcGVydHlXZWJraXRUZXh0RGVj
b3JhdGlvbnNJbkVmZmVjdCkpCi0gICAgICAgICAgICBzcGVjaWFsQ29tbW9uQW5jZXN0b3IgPSBl
bmNsb3NpbmdOb2RlT2ZUeXBlKFBvc2l0aW9uKGNoZWNrQW5jZXN0b3IsIDApLCAmZWxlbWVudEhh
c1RleHREZWNvcmF0aW9uUHJvcGVydHkpOworICAgICAgICBOb2RlKiBuZXdTcGVjaWFsQ29tbW9u
QW5jZXN0b3IgPSBoaWdoZXN0RW5jbG9zaW5nTm9kZU9mVHlwZShQb3NpdGlvbihjaGVja0FuY2Vz
dG9yLCAwKSwgJmlzRWxlbWVudFByZXNlbnRhdGlvbmFsKTsKKyAgICAgICAgaWYgKG5ld1NwZWNp
YWxDb21tb25BbmNlc3RvcikKKyAgICAgICAgICAgIHNwZWNpYWxDb21tb25BbmNlc3RvciA9IG5l
d1NwZWNpYWxDb21tb25BbmNlc3RvcjsKICAgICB9CiAgICAgCiAgICAgLy8gSWYgYSBzaW5nbGUg
dGFiIGlzIHNlbGVjdGVkLCBjb21tb25BbmNlc3RvciB3aWxsIGJlIGEgdGV4dCBub2RlIGluc2lk
ZSBhIHRhYiBzcGFuLgpAQCAtOTY2LDE4ICs5ODYsOCBAQCBTdHJpbmcgY3JlYXRlTWFya3VwKGNv
bnN0IFJhbmdlKiByYW5nZSwgCiAgICAgICAgICAgICAgICAgaWYgKCFmdWxseVNlbGVjdGVkUm9v
dFN0eWxlLT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnR5QmFja2dyb3VuZEltYWdlKSAm
JiBzdGF0aWNfY2FzdDxFbGVtZW50Kj4oZnVsbHlTZWxlY3RlZFJvb3QpLT5oYXNBdHRyaWJ1dGUo
YmFja2dyb3VuZEF0dHIpKQogICAgICAgICAgICAgICAgICAgICBmdWxseVNlbGVjdGVkUm9vdFN0
eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJhY2tncm91bmRJbWFnZSwgInVybCgnIiArIHN0
YXRpY19jYXN0PEVsZW1lbnQqPihmdWxseVNlbGVjdGVkUm9vdCktPmdldEF0dHJpYnV0ZShiYWNr
Z3JvdW5kQXR0cikgKyAiJykiKTsKICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBp
ZiAoZnVsbHlTZWxlY3RlZFJvb3RTdHlsZS0+bGVuZ3RoKCkpIHsKLSAgICAgICAgICAgICAgICAg
ICAgVmVjdG9yPFVDaGFyPiBvcGVuVGFnOwotICAgICAgICAgICAgICAgICAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IFN0cmluZywgZGl2U3R5bGUsICgiPGRpdiBzdHlsZT1cIiIpKTsKLSAg
ICAgICAgICAgICAgICAgICAgYXBwZW5kKG9wZW5UYWcsIGRpdlN0eWxlKTsKLSAgICAgICAgICAg
ICAgICAgICAgYXBwZW5kQXR0cmlidXRlVmFsdWUob3BlblRhZywgZnVsbHlTZWxlY3RlZFJvb3RT
dHlsZS0+Y3NzVGV4dCgpLCBkb2N1bWVudElzSFRNTCk7Ci0gICAgICAgICAgICAgICAgICAgIG9w
ZW5UYWcuYXBwZW5kKCdcIicpOwotICAgICAgICAgICAgICAgICAgICBvcGVuVGFnLmFwcGVuZCgn
PicpOwotICAgICAgICAgICAgICAgICAgICBwcmVNYXJrdXBzLmFwcGVuZChTdHJpbmc6OmFkb3B0
KG9wZW5UYWcpKTsKLQotICAgICAgICAgICAgICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNv
bnN0IFN0cmluZywgZGl2Q2xvc2VUYWcsICgiPC9kaXY+IikpOwotICAgICAgICAgICAgICAgICAg
ICBtYXJrdXBzLmFwcGVuZChkaXZDbG9zZVRhZyk7Ci0gICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIGlmIChmdWxseVNlbGVjdGVkUm9vdFN0eWxlLT5sZW5ndGgoKSkKKyAgICAgICAg
ICAgICAgICAgICAgYWRkU3R5bGVNYXJrdXAocHJlTWFya3VwcywgbWFya3VwcywgZnVsbHlTZWxl
Y3RlZFJvb3RTdHlsZS5nZXQoKSwgZG9jdW1lbnQsIHRydWUpOwogICAgICAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAgICAgICAvLyBTaW5jZSB0aGlzIG5vZGUgYW5kIGFsbCB0aGUgb3RoZXIg
YW5jZXN0b3JzIGFyZSBub3QgaW4gdGhlIHNlbGVjdGlvbiB3ZSB3YW50IHRvIHNldCBSYW5nZUZ1
bGx5U2VsZWN0c05vZGUgdG8gRG9lc05vdEZ1bGx5U2VsZWN0Tm9kZQogICAgICAgICAgICAgICAg
IC8vIHNvIHRoYXQgc3R5bGVzIHRoYXQgYWZmZWN0IHRoZSBleHRlcmlvciBvZiB0aGUgbm9kZSBh
cmUgbm90IGluY2x1ZGVkLgpAQCAtOTkzLDEwICsxMDAzLDcgQEAgU3RyaW5nIGNyZWF0ZU1hcmt1
cChjb25zdCBSYW5nZSogcmFuZ2UsIAogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAgICAgfQotICAgIAotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBzdHls
ZVNwYW5PcGVuLCAoIjxzcGFuIGNsYXNzPVwiIiBBcHBsZVN0eWxlU3BhbkNsYXNzICJcIiBzdHls
ZT1cIiIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgc3R5bGVTcGFu
Q2xvc2UsICgiPC9zcGFuPiIpKTsKLSAgICAKKwogICAgIC8vIEFkZCBhIHdyYXBwZXIgc3BhbiB3
aXRoIHRoZSBzdHlsZXMgdGhhdCBhbGwgb2YgdGhlIG5vZGVzIGluIHRoZSBtYXJrdXAgaW5oZXJp
dC4KICAgICBOb2RlKiBwYXJlbnRPZkxhc3RDbG9zZWQgPSBsYXN0Q2xvc2VkID8gbGFzdENsb3Nl
ZC0+cGFyZW50Tm9kZSgpIDogMDsKICAgICBpZiAocGFyZW50T2ZMYXN0Q2xvc2VkICYmIHBhcmVu
dE9mTGFzdENsb3NlZC0+cmVuZGVyZXIoKSkgewpAQCAtMTAxNiwxNiArMTAyMyw4IEBAIFN0cmlu
ZyBjcmVhdGVNYXJrdXAoY29uc3QgUmFuZ2UqIHJhbmdlLCAKICAgICAgICAgaWYgKGNvbnZlcnRC
bG9ja3NUb0lubGluZXMpCiAgICAgICAgICAgICBzdHlsZS0+cmVtb3ZlQmxvY2tQcm9wZXJ0aWVz
KCk7CiAKLSAgICAgICAgaWYgKHN0eWxlLT5sZW5ndGgoKSA+IDApIHsKLSAgICAgICAgICAgIFZl
Y3RvcjxVQ2hhcj4gb3BlblRhZzsKLSAgICAgICAgICAgIGFwcGVuZChvcGVuVGFnLCBzdHlsZVNw
YW5PcGVuKTsKLSAgICAgICAgICAgIGFwcGVuZEF0dHJpYnV0ZVZhbHVlKG9wZW5UYWcsIHN0eWxl
LT5jc3NUZXh0KCksIGRvY3VtZW50SXNIVE1MKTsKLSAgICAgICAgICAgIG9wZW5UYWcuYXBwZW5k
KCdcIicpOwotICAgICAgICAgICAgb3BlblRhZy5hcHBlbmQoJz4nKTsKLSAgICAgICAgICAgIHBy
ZU1hcmt1cHMuYXBwZW5kKFN0cmluZzo6YWRvcHQob3BlblRhZykpOwotICAgICAgICAgICAgCi0g
ICAgICAgICAgICBtYXJrdXBzLmFwcGVuZChzdHlsZVNwYW5DbG9zZSk7Ci0gICAgICAgIH0KKyAg
ICAgICAgaWYgKHN0eWxlLT5sZW5ndGgoKSA+IDApCisgICAgICAgICAgICBhZGRTdHlsZU1hcmt1
cChwcmVNYXJrdXBzLCBtYXJrdXBzLCBzdHlsZS5nZXQoKSwgZG9jdW1lbnQpOwogICAgIH0KICAg
ICAKICAgICBpZiAobGFzdENsb3NlZCAmJiBsYXN0Q2xvc2VkICE9IGRvY3VtZW50LT5kb2N1bWVu
dEVsZW1lbnQoKSkgewpAQCAtMTAzNCwxNSArMTAzMyw4IEBAIFN0cmluZyBjcmVhdGVNYXJrdXAo
Y29uc3QgUmFuZ2UqIHJhbmdlLCAKICAgICAgICAgLy8gYXBwbGllZCBzdHlsZXMuCiAgICAgICAg
IFJlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gZGVmYXVsdFN0eWxlID0gY29tcHV0
ZWRTdHlsZShkb2N1bWVudC0+ZG9jdW1lbnRFbGVtZW50KCkpLT5kZXByZWNhdGVkQ29weUluaGVy
aXRhYmxlUHJvcGVydGllcygpOwogICAgICAgICAKLSAgICAgICAgaWYgKGRlZmF1bHRTdHlsZS0+
bGVuZ3RoKCkgPiAwKSB7Ci0gICAgICAgICAgICBWZWN0b3I8VUNoYXI+IG9wZW5UYWc7Ci0gICAg
ICAgICAgICBhcHBlbmQob3BlblRhZywgc3R5bGVTcGFuT3Blbik7Ci0gICAgICAgICAgICBhcHBl
bmRBdHRyaWJ1dGVWYWx1ZShvcGVuVGFnLCBkZWZhdWx0U3R5bGUtPmNzc1RleHQoKSwgZG9jdW1l
bnRJc0hUTUwpOwotICAgICAgICAgICAgb3BlblRhZy5hcHBlbmQoJ1wiJyk7Ci0gICAgICAgICAg
ICBvcGVuVGFnLmFwcGVuZCgnPicpOwotICAgICAgICAgICAgcHJlTWFya3Vwcy5hcHBlbmQoU3Ry
aW5nOjphZG9wdChvcGVuVGFnKSk7Ci0gICAgICAgICAgICBtYXJrdXBzLmFwcGVuZChzdHlsZVNw
YW5DbG9zZSk7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKGRlZmF1bHRTdHlsZS0+bGVuZ3RoKCkg
PiAwKQorICAgICAgICAgICAgYWRkU3R5bGVNYXJrdXAocHJlTWFya3VwcywgbWFya3VwcywgZGVm
YXVsdFN0eWxlLmdldCgpLCBkb2N1bWVudCk7CiAgICAgfQogCiAgICAgLy8gRklYTUU6IFRoZSBp
bnRlcmNoYW5nZSBuZXdsaW5lIHNob3VsZCBiZSBwbGFjZWQgaW4gdGhlIGJsb2NrIHRoYXQgaXQn
cyBpbiwgbm90IGFmdGVyIGFsbCBvZiB0aGUgY29udGVudCwgdW5jb25kaXRpb25hbGx5LgpJbmRl
eDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkocmV2aXNpb24gNDYzODgpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwyMyBAQAorMjAwOS0wNy0yNCAgUnlvc3VrZSBOaXdhICA8cm5pd2FA
d2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBjcmVhdGVNYXJrdXAgZG9lcyBub3QgaGFuZGxlIENTUyBwcm9wZXJseQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc2NjAKKyAgICAgICAgCisg
ICAgICAgIGlubGluZS1zdHlsZS1hZnRlci1pbmRlbnRvdXRkZW50IHRlc3RzIHdoZXRoZXIgdGhl
IG9yaWdpbmFsIGlubGluZSBzdHlsZSBpcyBwcmVzZXJ2ZWQgYWZ0ZXIgb3V0ZGVudGF0aW9uCisg
ICAgICAgIGltbWVkaWF0ZWx5IGFmdGVyIGluZGVudGF0aW9uLgorCisgICAgICAgICogZWRpdGlu
Zy9kZWxldGluZy9wcnVuaW5nLWFmdGVyLW1lcmdlLTIuaHRtbDogUmVwbGFjZWQgYiB0aGF0IGNv
bnRhaW5zIGRpdiB3aXRoIGEgZGl2IHdpdGggZm9udC13ZWlnaHQKKyAgICAgICAgKiBlZGl0aW5n
L2V4ZWNDb21tYW5kL2lubGluZS1zdHlsZS1hZnRlci1pbmRlbnRvdXRkZW50LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9pbmxpbmUtc3R5bGUtYWZ0
ZXItaW5kZW50b3V0ZGVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21t
YW5kL3Jlc291cmNlcy9pbmxpbmUtc3R5bGUtYWZ0ZXItaW5kZW50b3V0ZGVudC5qczogQWRkZWQu
CisgICAgICAgICh0ZXN0Q3JlYXRlTWFya3VwKToKKyAgICAgICAgKHNob3VsZEJlU2FtZUFmdGVy
Q3JlYXRlTWFya3VwKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9kZWxldGluZy9k
ZWxldGUtMzg1Nzc1My1maXgtZXhwZWN0ZWQudHh0OiBleHRyYSBpIHRhZyBpcyBhZGRlZCAoc3Rp
bGwgcGFzc2VzIHBpeGVsIHRlc3RzKQorICAgICAgICAqIHBsYXRmb3JtL21hYy9lZGl0aW5nL2Rl
bGV0aW5nL3BydW5pbmctYWZ0ZXItbWVyZ2UtMi1leHBlY3RlZC50eHQ6IGV4dHJhIGRpdiBhcyBl
eHBsYWluZWQgYWJvdmUKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9wYXN0ZWJvYXJk
L2Rpc3BsYXktYmxvY2stb24tc3BhbnMtZXhwZWN0ZWQudHh0OiBidWcgMjY0ODMgYXBwZWFyaW5n
CisKIDIwMDktMDctMjQgIE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAgICBT
a2lwIGEgdGVzdCB0aGF0IGlzIGZhaWxpbmcgaW50ZXJtaXR0ZW50bHkgb24gdGhlIFdpbmRvd3Mg
YnVpbGQgYm90LgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9wcnVuaW5nLWFm
dGVyLW1lcmdlLTIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0
aW5nL3BydW5pbmctYWZ0ZXItbWVyZ2UtMi5odG1sCShyZXZpc2lvbiA0NjM3NSkKKysrIExheW91
dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvcHJ1bmluZy1hZnRlci1tZXJnZS0yLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTQsNyArNCw3IEBAIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CiA8L3NjcmlwdD4KIDxwPlRoaXMgdGVzdHMgdG8gc2VlIGlmIGRlbGV0aW9uIGNvcnJlY3RseSBw
cnVuZXMgdGhlIGNvbnRhaW5lcnMgb2YgdGhlIHBhcmFncmFwaCBiZWluZyBtb3ZlZCBkdXJpbmcg
YSBtZXJnZS4gIFlvdSBzaG91bGQgc2VlICdmb288Yj5iYXI8L2I+JyBiZWxvdy48L3A+CiAKLTxk
aXYgaWQ9InRlc3QiIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSI+PGRpdj5mb288L2Rpdj48ZGl2IHN0
eWxlPSJib3JkZXI6IDFweCBzb2xpZCBibHVlOyBwYWRkaW5nOiA1cHgiPjxiPjxkaXYgc3R5bGU9
ImJvcmRlcjogMXB4IHNvbGlkIHJlZDsgcGFkZGluZzogNXB4Ij5iYXI8L2Rpdj48L2I+PC9kaXY+
PC9kaXY+Cis8ZGl2IGlkPSJ0ZXN0IiBjb250ZW50ZWRpdGFibGU9InRydWUiPjxkaXY+Zm9vPC9k
aXY+PGRpdiBzdHlsZT0iYm9yZGVyOiAxcHggc29saWQgYmx1ZTsgcGFkZGluZzogNXB4OyBmb250
LXdlaWdodDogYm9sZDsiPjxkaXYgc3R5bGU9ImJvcmRlcjogMXB4IHNvbGlkIHJlZDsgcGFkZGlu
ZzogNXB4Ij5iYXI8L2Rpdj48L2Rpdj48L2Rpdj4KIAogPHNjcmlwdD4KIHZhciBlID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhl
Y0NvbW1hbmQvaW5saW5lLXN0eWxlLWFmdGVyLWluZGVudG91dGRlbnQtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5saW5lLXN0eWxl
LWFmdGVyLWluZGVudG91dGRlbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmxpbmUtc3R5bGUtYWZ0ZXItaW5kZW50b3V0ZGVu
dC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjAgQEAKK1RoaXMgdGVzdHMg
Y3JlYXRlTWFya3VwIHZpYSBpbnNlcnRPcmRlcmVkTGlzdC4gSXQgbWFrZXMgc3VyZSB0aGF0IHdl
IGRvbid0IGRlbGV0ZSBmb250IHN0eWxlcyBhbmQgdGV4dCBkZWNvcmF0aW9ucy4gVGhpcyB0ZXN0
IG11c3QgYmUgcmV3cml0dGVuIHdoZW4gaW5zZXJ0T3JkZXJlZExpc3QgaXMgbW9kaWZpZWQgbm90
IHRvIHVzZSBtb3ZlUGFyYWdyYXBoLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyB0ZXN0Q3JlYXRlTWFya3VwKCc8Yj5oZWxsbzwvYj4nKSBpcyAnPGI+aGVsbG88L2I+Jwor
UEFTUyB0ZXN0Q3JlYXRlTWFya3VwKCc8c3Ryb25nPmhlbGxvPC9zdHJvbmc+JykgaXMgJzxzdHJv
bmc+aGVsbG88L3N0cm9uZz4nCitQQVNTIHRlc3RDcmVhdGVNYXJrdXAoJzxpPmhlbGxvPC9pPicp
IGlzICc8aT5oZWxsbzwvaT4nCitQQVNTIHRlc3RDcmVhdGVNYXJrdXAoJzxlbT5oZWxsbzwvZW0+
JykgaXMgJzxlbT5oZWxsbzwvZW0+JworUEFTUyB0ZXN0Q3JlYXRlTWFya3VwKCc8cz5oZWxsbzwv
cz4nKSBpcyAnPHM+aGVsbG88L3M+JworUEFTUyB0ZXN0Q3JlYXRlTWFya3VwKCc8c3RyaWtlPmhl
bGxvPC9zdHJpa2U+JykgaXMgJzxzdHJpa2U+aGVsbG88L3N0cmlrZT4nCitQQVNTIHRlc3RDcmVh
dGVNYXJrdXAoJzxlbT48cz48dT5oZWxsbzwvdT48L3M+PC9lbT4nKSBpcyAnPGVtPjxzPjx1Pmhl
bGxvPC91Pjwvcz48L2VtPicKK1BBU1MgdGVzdENyZWF0ZU1hcmt1cCgnPHU+PHM+PGVtPjx1Pmhl
bGxvPC91PjwvZW0+PC9zPjwvdT4nKSBpcyAnPHU+PHM+PGVtPjx1PmhlbGxvPC91PjwvZW0+PC9z
PjwvdT4nCitQQVNTIHRlc3RDcmVhdGVNYXJrdXAoJzxpPjxzcGFuIHN0eWxlPSJ0ZXh0LWRlY29y
YXRpb246IHVuZGVybGluZSBvdmVybGluZSBsaW5lLXRocm91Z2g7Ij53b3JsZDwvc3Bhbj48L2k+
JykgaXMgJzxpPjxzcGFuIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBvdmVybGlu
ZSBsaW5lLXRocm91Z2g7Ij53b3JsZDwvc3Bhbj48L2k+JworUEFTUyB0ZXN0Q3JlYXRlTWFya3Vw
KCc8ZW0+PHUgc3R5bGU9ImZvbnQtd2VpZ2h0OiBib2xkOyI+aGVsbG88L3U+PC9lbT4nKSBpcyAn
PGVtPjx1IHN0eWxlPSJmb250LXdlaWdodDogYm9sZDsiPmhlbGxvPC91PjwvZW0+JworUEFTUyB0
ZXN0Q3JlYXRlTWFya3VwKCdoZWxsbyA8dT53b3JsZDwvdT4gd2Via2l0JykgaXMgJ2hlbGxvIDx1
PndvcmxkPC91PiB3ZWJraXQnCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmxp
bmUtc3R5bGUtYWZ0ZXItaW5kZW50b3V0ZGVudC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5saW5lLXN0eWxlLWFmdGVyLWluZGVudG91dGRlbnQu
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5s
aW5lLXN0eWxlLWFmdGVyLWluZGVudG91dGRlbnQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvaW5saW5lLXN0eWxlLWFmdGVyLWluZGVudG91dGRlbnQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0
aW5nL2V4ZWNDb21tYW5kL3Jlc291cmNlcy9pbmxpbmUtc3R5bGUtYWZ0ZXItaW5kZW50b3V0ZGVu
dC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3Jlc291
cmNlcy9pbmxpbmUtc3R5bGUtYWZ0ZXItaW5kZW50b3V0ZGVudC5qcwkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvcmVzb3VyY2VzL2lubGluZS1zdHlsZS1h
ZnRlci1pbmRlbnRvdXRkZW50LmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ1IEBACitkZXNj
cmlwdGlvbigiVGhpcyB0ZXN0cyBjcmVhdGVNYXJrdXAgdmlhIGluc2VydE9yZGVyZWRMaXN0LiAg
SXQgbWFrZXMgc3VyZSB0aGF0IHdlIGRvbid0IGRlbGV0ZSBmb250IHN0eWxlcyBhbmQgdGV4dCBk
ZWNvcmF0aW9ucy4gIFRoaXMgdGVzdCBtdXN0IGJlIHJld3JpdHRlbiB3aGVuIGluc2VydE9yZGVy
ZWRMaXN0IGlzIG1vZGlmaWVkIG5vdCB0byB1c2UgbW92ZVBhcmFncmFwaC4iKTsKKwordmFyIGJv
dW5kZWRDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK3ZhciBjb250
YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK2JvdW5kZWRDb250YWluZXIu
Y29udGVudEVkaXRhbGJlID0gZmFsc2U7Citib3VuZGVkQ29udGFpbmVyLmFwcGVuZENoaWxkKGNv
bnRhaW5lcik7Citjb250YWluZXIuY29udGVudEVkaXRhYmxlID0gdHJ1ZTsKK2RvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoYm91bmRlZENvbnRhaW5lcik7CisKK2Z1bmN0aW9uIHRlc3RDcmVhdGVN
YXJrdXAoIHRleHQgKQoreworCWNvbnRhaW5lci5pbm5lckhUTUwgPSB0ZXh0OworCisgICAgdmFy
IHMgPSBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKTsKKyAgICB2YXIgciA9IGRvY3VtZW50LmNyZWF0
ZVJhbmdlKCk7CisJci5zZXRTdGFydChjb250YWluZXIuZmlyc3RDaGlsZCwgMCk7CisJci5zZXRF
bmQoY29udGFpbmVyLmxhc3RDaGlsZCwgMSk7CisgICAgcy5yZW1vdmVBbGxSYW5nZXMoKTsKKyAg
ICBzLmFkZFJhbmdlKHIpOworICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJpbnNlcnRPcmRlcmVk
TGlzdCIpOworICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJpbnNlcnRPcmRlcmVkTGlzdCIpOwor
CisJcmV0dXJuIGNvbnRhaW5lci5pbm5lckhUTUw7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlU2Ft
ZUFmdGVyQ3JlYXRlTWFya3VwKHRlc3QpCit7CisJc2hvdWxkQmUoInRlc3RDcmVhdGVNYXJrdXAo
JyIrdGVzdCsiJykiLCAiJyIrdGVzdCsiJyIpOworfQorCitzaG91bGRCZVNhbWVBZnRlckNyZWF0
ZU1hcmt1cCgnPGI+aGVsbG88L2I+Jyk7CitzaG91bGRCZVNhbWVBZnRlckNyZWF0ZU1hcmt1cCgn
PHN0cm9uZz5oZWxsbzwvc3Ryb25nPicpOworc2hvdWxkQmVTYW1lQWZ0ZXJDcmVhdGVNYXJrdXAo
JzxpPmhlbGxvPC9pPicpOworc2hvdWxkQmVTYW1lQWZ0ZXJDcmVhdGVNYXJrdXAoJzxlbT5oZWxs
bzwvZW0+Jyk7CitzaG91bGRCZVNhbWVBZnRlckNyZWF0ZU1hcmt1cCgnPHM+aGVsbG88L3M+Jyk7
CitzaG91bGRCZVNhbWVBZnRlckNyZWF0ZU1hcmt1cCgnPHN0cmlrZT5oZWxsbzwvc3RyaWtlPicp
Oworc2hvdWxkQmVTYW1lQWZ0ZXJDcmVhdGVNYXJrdXAoJzxlbT48cz48dT5oZWxsbzwvdT48L3M+
PC9lbT4nKTsKK3Nob3VsZEJlU2FtZUFmdGVyQ3JlYXRlTWFya3VwKCc8dT48cz48ZW0+PHU+aGVs
bG88L3U+PC9lbT48L3M+PC91PicpOworc2hvdWxkQmVTYW1lQWZ0ZXJDcmVhdGVNYXJrdXAoJzxp
PjxzcGFuIHN0eWxlPVwidGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgb3ZlcmxpbmUgbGluZS10
aHJvdWdoO1wiPndvcmxkPC9zcGFuPjwvaT4nKTsKK3Nob3VsZEJlU2FtZUFmdGVyQ3JlYXRlTWFy
a3VwKCc8ZW0+PHUgc3R5bGU9ImZvbnQtd2VpZ2h0OiBib2xkOyI+aGVsbG88L3U+PC9lbT4nKTsK
K3Nob3VsZEJlU2FtZUFmdGVyQ3JlYXRlTWFya3VwKCdoZWxsbyA8dT53b3JsZDwvdT4gd2Via2l0
Jyk7CisKK2RvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYm91bmRlZENvbnRhaW5lcik7CisKK3Zh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLTM4NTc3NTMtZml4LWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9kZWxldGluZy9kZWxl
dGUtMzg1Nzc1My1maXgtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0NjM3NSkKKysrIExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS0zODU3NzUzLWZpeC1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIyLDggKzIyLDkgQEAgbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
MjV4MjgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI1OiAib24iCiAgICAg
ICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDEyeDI4Ci0gICAgICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDI1LDApIHNpemUgMTJ4MjgKLSAgICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDI1LDApIHdpZHRoIDEyOiAibyIKKyAgICAgICAgICAgIFJlbmRlcklubGlu
ZSB7SX0gYXQgKDAsMCkgc2l6ZSAxMngyOAorICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDI1LDApIHNpemUgMTJ4MjgKKyAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjUs
MCkgd2lkdGggMTI6ICJvIgogICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDE0LDQyKSBzaXpl
IDc1NngyOAogICAgICAgICBSZW5kZXJJbmxpbmUge0J9IGF0ICgwLDApIHNpemUgNTR4MjgKICAg
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA1NHgyOApJbmRleDogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvZGVsZXRpbmcvcHJ1bmluZy1hZnRlci1tZXJn
ZS0yLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZWRpdGluZy9kZWxldGluZy9wcnVuaW5nLWFmdGVyLW1lcmdlLTItZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiA0NjM3NSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2RlbGV0aW5n
L3BydW5pbmctYWZ0ZXItbWVyZ2UtMi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIs
NyArMiw3IEBAIEVESVRJTkcgREVMRUdBVEU6IHNob3VsZEJlZ2luRWRpdGluZ0luRE8KIEVESVRJ
TkcgREVMRUdBVEU6IHdlYlZpZXdEaWRCZWdpbkVkaXRpbmc6V2ViVmlld0RpZEJlZ2luRWRpdGlu
Z05vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlv
bjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCiBFRElUSU5HIERFTEVHQVRF
OiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3Rp
ZmljYXRpb24KLUVESVRJTkcgREVMRUdBVEU6IHNob3VsZERlbGV0ZURPTVJhbmdlOnJhbmdlIGZy
b20gMyBvZiAjdGV4dCA+IERJViA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDAg
b2YgRElWID4gQiA+IERJViA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50CitFRElUSU5H
IERFTEVHQVRFOiBzaG91bGREZWxldGVET01SYW5nZTpyYW5nZSBmcm9tIDMgb2YgI3RleHQgPiBE
SVYgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAwIG9mIERJViA+IERJViA+IERJ
ViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50CiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlk
Q2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVE
SVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6KG51bGwpIHRvRE9N
UmFuZ2U6cmFuZ2UgZnJvbSAzIG9mICN0ZXh0ID4gRElWID4gRElWID4gQk9EWSA+IEhUTUwgPiAj
ZG9jdW1lbnQgdG8gMyBvZiAjdGV4dCA+IERJViA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3Vt
ZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5n
OkZBTFNFCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZp
ZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KSW5kZXg6IExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9lZGl0aW5nL3Bhc3RlYm9hcmQvZGlzcGxheS1ibG9jay1vbi1zcGFucy1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvcGFz
dGVib2FyZC9kaXNwbGF5LWJsb2NrLW9uLXNwYW5zLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNDYz
NzUpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9wYXN0ZWJvYXJkL2Rpc3Bs
YXktYmxvY2stb24tc3BhbnMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01LDcgKzUs
NyBAQCBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0CiBFRElUSU5HIERF
TEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rp
b25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHNob3VsZEluc2VydE5vZGU6I2RvY3Vt
ZW50LWZyYWdtZW50IHJlcGxhY2luZ0RPTVJhbmdlOnJhbmdlIGZyb20gMCBvZiAjdGV4dCA+IEIg
PiBTUEFOID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNCBvZiAjdGV4dCA+IEIg
PiBTUEFOID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgZ2l2ZW5BY3Rpb246V2ViVmll
d0luc2VydEFjdGlvblBhc3RlZAogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNl
bGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCi1FRElUSU5HIERF
TEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOihudWxsKSB0b0RPTVJhbmdlOnJh
bmdlIGZyb20gNCBvZiAjdGV4dCA+IFNQQU4gPiBTUEFOID4gRElWID4gQk9EWSA+IEhUTUwgPiAj
ZG9jdW1lbnQgdG8gNCBvZiAjdGV4dCA+IFNQQU4gPiBTUEFOID4gRElWID4gQk9EWSA+IEhUTUwg
PiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxT
ZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9N
UmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA0IG9mICN0ZXh0ID4gQiA+IFNQQU4g
PiBCID4gU1BBTiA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDQgb2YgI3RleHQg
PiBCID4gU1BBTiA+IEIgPiBTUEFOID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZm
aW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UK
IEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENo
YW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENo
YW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCiBsYXllciBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKQEAgLTMzLDkgKzMzLDExIEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAg
ICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMTM3eDE4CiAgICAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDEzNzogIlRoaXMgaXMgYSBwYXJhZ3JhcGgu
IgogICAgICAgICBSZW5kZXJCbG9jayB7U1BBTn0gYXQgKDAsMTgpIHNpemUgNzg0eDE4Ci0gICAg
ICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDE4MngxOAotICAgICAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzB4MTgKLSAgICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzA6ICJUaGlzIgorICAgICAgICAgIFJlbmRlcklubGlu
ZSB7Qn0gYXQgKDAsMCkgc2l6ZSAxODJ4MTgKKyAgICAgICAgICAgIFJlbmRlcklubGluZSB7U1BB
Tn0gYXQgKDAsMCkgc2l6ZSAzMHgxOAorICAgICAgICAgICAgICBSZW5kZXJJbmxpbmUge0J9IGF0
ICgwLDApIHNpemUgMzB4MTgKKyAgICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDAsMCkgc2l6ZSAzMHgxOAorICAgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lk
dGggMzA6ICJUaGlzIgogICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgzMCwwKSBz
aXplIDE1MngxOAogICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMzAsMCkgd2lkdGggMTUyOiAi
IGlzIGFub3RoZXIgcGFyYWdyYXBoLiIKLWNhcmV0OiBwb3NpdGlvbiA0IG9mIGNoaWxkIDAgeyN0
ZXh0fSBvZiBjaGlsZCAwIHtTUEFOfSBvZiBjaGlsZCAyIHtTUEFOfSBvZiBjaGlsZCA1IHtESVZ9
IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9IG9mIGRvY3VtZW50CitjYXJldDog
cG9zaXRpb24gNCBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMCB7Qn0gb2YgY2hpbGQgMCB7
U1BBTn0gb2YgY2hpbGQgMCB7Qn0gb2YgY2hpbGQgMiB7U1BBTn0gb2YgY2hpbGQgNSB7RElWfSBv
ZiBjaGlsZCAxIHtCT0RZfSBvZiBjaGlsZCAwIHtIVE1MfSBvZiBkb2N1bWVudAo=
</data>
<flag name="review"
          id="17754"
          type_id="1"
          status="+"
          setter="justin.garcia"
    />
          </attachment>
      

    </bug>

</bugzilla>