<?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>26262</bug_id>
          
          <creation_ts>2009-06-08 16:17:07 -0700</creation_ts>
          <short_desc>Implement HTML5 draggable</short_desc>
          <delta_ts>2009-12-25 08:35:03 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.whatwg.org/specs/web-apps/current-work/#the-draggable-attribute</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>32934</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Erik Arvidsson">arv</reporter>
          <assigned_to name="Erik Arvidsson">arv</assigned_to>
          <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>124833</commentid>
    <comment_count>0</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2009-06-08 16:17:07 -0700</bug_when>
    <thetext>Currently, to drag something in webkit it has to be a link or an image (or text selection). HTML5 defines a draggable attribute that allows any element to be draggable.

http://www.whatwg.org/specs/web-apps/current-work/#the-draggable-attribute</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129228</commentid>
    <comment_count>1</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2009-06-30 18:43:55 -0700</bug_when>
    <thetext>This is actually trivial. All we need to do is add the following to the ua style sheet.

[draggable] {
    -webkit-user-drag: element;
    -webkit-user-select: none;
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129650</commentid>
    <comment_count>2</comment_count>
      <attachid>32215</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2009-07-02 18:45:05 -0700</bug_when>
    <thetext>Created attachment 32215
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129655</commentid>
    <comment_count>3</comment_count>
      <attachid>32215</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-07-02 20:57:37 -0700</bug_when>
    <thetext>Comment on attachment 32215
Patch

The style part should probably be implemented in parseMappedAttribute instead of the ua stylesheet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129680</commentid>
    <comment_count>4</comment_count>
      <attachid>32215</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2009-07-03 00:57:06 -0700</bug_when>
    <thetext>Comment on attachment 32215
Patch

Hyatt confirms that &quot;draggable&quot; should be implemented in code via parseMappedAttribute rather than in the UA stylesheet, because in our CSS implementation it&apos;s fairly inefficient to have an attribute selector that&apos;s not scoped to particular tags. I believe HTMLElement::parseMappedAttribute would be the right place.

r- to fix this, patch otherwise looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129775</commentid>
    <comment_count>5</comment_count>
      <attachid>32253</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2009-07-04 00:09:42 -0700</bug_when>
    <thetext>Created attachment 32253
Uses parseMappedAttribute instead of the user style sheet

I also did some testing with Firefox 3.5 and it ignores the case of true and false so I made all the checks ignore the case. Also, added code to correctly handle when the attribute is set to something other than true or false and updated the test to reflect that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129777</commentid>
    <comment_count>6</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2009-07-04 00:14:05 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 32215 [details])
&gt; Hyatt confirms that &quot;draggable&quot; should be implemented in code via
&gt; parseMappedAttribute rather than in the UA stylesheet, because in our CSS
&gt; implementation it&apos;s fairly inefficient to have an attribute selector that&apos;s not
&gt; scoped to particular tags. I believe HTMLElement::parseMappedAttribute would be
&gt; the right place.

Thanks for the hint about parseMappedAttribute. It makes total sense to me now. I&apos;ll try to keep that in mind any time I think I need to touch the UA stylesheet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129798</commentid>
    <comment_count>7</comment_count>
      <attachid>32253</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-07-04 11:23:12 -0700</bug_when>
    <thetext>Comment on attachment 32253
Uses parseMappedAttribute instead of the user style sheet

&gt; +    if (equalIgnoringCase(getAttribute(draggableAttr), &quot;true&quot;))
&gt; +        return true;
&gt; +    if (equalIgnoringCase(getAttribute(draggableAttr), &quot;false&quot;))
&gt; +        return false;

It would be more efficient to call getAttribute only once. A local variable of type const AtomicString&amp; can be used to hold the attribute value.

&gt; +void HTMLElement::setDraggable(MappedAttribute* attr)

I think it would be best to give this a different name, rather than using overloading. Perhaps it could be called parseDraggableAttribute.

&gt; +void HTMLElement::setDraggable(const bool&amp; value)

This should just be bool, not const bool&amp;.

&gt; +    void setDraggable(MappedAttribute*);

This newly-added member function should be private.

This looks good, but I&apos;m going to say review- since I&apos;d really like to see the name and visibility of the setDraggable function that takes an attribute changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129824</commentid>
    <comment_count>8</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2009-07-04 20:55:15 -0700</bug_when>
    <thetext>(In reply to comment #7)

Thanks for the review Darin

&gt; (From update of attachment 32253 [details])
&gt; &gt; +    if (equalIgnoringCase(getAttribute(draggableAttr), &quot;true&quot;))
&gt; &gt; +        return true;
&gt; &gt; +    if (equalIgnoringCase(getAttribute(draggableAttr), &quot;false&quot;))
&gt; &gt; +        return false;
&gt; 
&gt; It would be more efficient to call getAttribute only once. A local variable of
&gt; type const AtomicString&amp; can be used to hold the attribute value.

Done.

&gt; &gt; +void HTMLElement::setDraggable(MappedAttribute* attr)
&gt; 
&gt; I think it would be best to give this a different name, rather than using
&gt; overloading. Perhaps it could be called parseDraggableAttribute.

I ended up inlining it in parseMappedAttribute since the logic is pretty simple and other cases are more complicated already.

&gt; &gt; +void HTMLElement::setDraggable(const bool&amp; value)
&gt; 
&gt; This should just be bool, not const bool&amp;.

Done.
 
&gt; &gt; +    void setDraggable(MappedAttribute*);
&gt; 
&gt; This newly-added member function should be private.
&gt; 
&gt; This looks good, but I&apos;m going to say review- since I&apos;d really like to see the
&gt; name and visibility of the setDraggable function that takes an attribute
&gt; changed.

Another patch coming in a sec</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129825</commentid>
    <comment_count>9</comment_count>
      <attachid>32266</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2009-07-04 20:56:43 -0700</bug_when>
    <thetext>Created attachment 32266
Fixed Darin&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129846</commentid>
    <comment_count>10</comment_count>
      <attachid>32266</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2009-07-05 04:22:30 -0700</bug_when>
    <thetext>Comment on attachment 32266
Fixed Darin&apos;s comments.

Looks to me like the comments are all addressed, and I do not see any new issues. Thanks for the contribution and the several revised versions! r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130011</commentid>
    <comment_count>11</comment_count>
      <attachid>32266</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-06 14:14:39 -0700</bug_when>
    <thetext>Comment on attachment 32266
Fixed Darin&apos;s comments.

There are style issues in this patch:

Spacing:
+    for (var i = 16; i &lt; 24; i++) {
+      elements[i].draggable = i &lt; 20;
+    }

Extra {
 151         } else if (equalIgnoringCase(value, &quot;false&quot;)) {
 152             addCSSProperty(attr, CSSPropertyWebkitUserDrag, CSSValueNone);
 153         }

Extra space:
 357     if (equalIgnoringCase(value , &quot;true&quot;))

Those certainly could be corrected when landing.  But having them here, makes this hard to land automatically.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130016</commentid>
    <comment_count>12</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2009-07-06 14:21:19 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 32266 [details])
&gt; There are style issues in this patch:
&gt; 
&gt; Spacing:
&gt; +    for (var i = 16; i &lt; 24; i++) {
&gt; +      elements[i].draggable = i &lt; 20;
&gt; +    }
&gt; 
&gt; Extra {
&gt;  151         } else if (equalIgnoringCase(value, &quot;false&quot;)) {
&gt;  152             addCSSProperty(attr, CSSPropertyWebkitUserDrag, CSSValueNone);
&gt;  153         }
&gt; 
&gt; Extra space:
&gt;  357     if (equalIgnoringCase(value , &quot;true&quot;))
&gt; 
&gt; Those certainly could be corrected when landing.  But having them here, makes
&gt; this hard to land automatically.

I&apos;ll just fix them and ask for another review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130023</commentid>
    <comment_count>13</comment_count>
      <attachid>32327</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2009-07-06 14:32:27 -0700</bug_when>
    <thetext>Created attachment 32327
Style nits fixed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131434</commentid>
    <comment_count>14</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2009-07-13 16:17:05 -0700</bug_when>
    <thetext>Can anyone submit this for me? I do not have commit rights.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131450</commentid>
    <comment_count>15</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-07-13 17:42:20 -0700</bug_when>
    <thetext>This changes the result of fast/dom/domListEnumeration.html but the patch doesn&apos;t include new results. I had to fix that myself. I&apos;m concerned, because this should have showed up when you ran the regression tests yourself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131456</commentid>
    <comment_count>16</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2009-07-13 17:50:00 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; This changes the result of fast/dom/domListEnumeration.html but the patch
&gt; doesn&apos;t include new results. I had to fix that myself. I&apos;m concerned, because
&gt; this should have showed up when you ran the regression tests yourself.

My bad. Feel free to r- and I&apos;ll look into it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131461</commentid>
    <comment_count>17</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-07-13 18:06:13 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/45851</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32215</attachid>
            <date>2009-07-02 18:45:05 -0700</date>
            <delta_ts>2009-07-04 00:09:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>draggable.patch</filename>
            <type>text/plain</type>
            <size>10596</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NTUxNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzIgQEAKKzIwMDktMDctMDIgIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
bXBsZW1lbnQgSFRNTDUgZHJhZ2dhYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yNjI2MgorCisgICAgICAgIFRoaXMgYWRkcyBET00gYmluZGluZ3Mg
Zm9yIHRoZSBkcmFnZ2FibGUgRE9NIHByb3BlcnR5LiBTZXR0aW5nIHRoaXMgc2V0cyB0aGUgSFRN
TCBhdHRyaWJ1dGUgZHJhZ2dhYmxlLgorICAgICAgICBUaGUgaHRtbC5jc3Mgd2FzIHVwZGF0ZWQg
dG8gbWFwIHRoaXMgYXR0cmlidXRlIHRvIHRoZSBDU1MgcHJvcGVydGllcyB0aGF0IGdvdmVybiB3
aGV0aGVyIGFuIGVsZW1lbnQgaXMKKyAgICAgICAgZHJhZ2dhYmxlIG9yIG5vdC4KKworICAgICAg
ICBTcGVjOiBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3Jr
L211bHRpcGFnZS9lZGl0aW5nLmh0bWwjdGhlLWRyYWdnYWJsZS1hdHRyaWJ1dGUKKworICAgICAg
ICBUZXN0OiBmYXN0L2h0bWwvZHJhZ2dhYmxlLmh0bWwKKworICAgICAgICAqIGNzcy9odG1sLmNz
czoKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxBbmNob3JFbGVtZW50OjpkcmFnZ2FibGUpOgorICAgICAgICAqIGh0bWwvSFRNTEFu
Y2hvckVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbjoKKyAg
ICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVt
ZW50OjpkcmFnZ2FibGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OnNldERyYWdn
YWJsZSk6CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRN
TEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpkcmFnZ2FibGUpOgorICAgICAgICAqIGh0
bWwvSFRNTEltYWdlRWxlbWVudC5oOgorCiAyMDA5LTA3LTAyICBSb2xhbmQgU3RlaW5lciAgPHJv
bGFuZHN0ZWluZXJAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRl
bC4KSW5kZXg6IFdlYkNvcmUvY3NzL2h0bWwuY3NzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3Nz
L2h0bWwuY3NzCShyZXZpc2lvbiA0NTQ4NikKKysrIFdlYkNvcmUvY3NzL2h0bWwuY3NzCSh3b3Jr
aW5nIGNvcHkpCkBAIC01OTIsNiArNTkyLDE1IEBAIGE6LXdlYmtpdC1hbnktbGluazphY3RpdmUg
ewogICAgIGNvbG9yOiAtd2Via2l0LWFjdGl2ZWxpbmsKIH0KIAorW2RyYWdnYWJsZT0idHJ1ZSJd
IHsKKyAgICAtd2Via2l0LXVzZXItZHJhZzogZWxlbWVudDsKKyAgICAtd2Via2l0LXVzZXItc2Vs
ZWN0OiBub25lOworfQorCitbZHJhZ2dhYmxlPSJmYWxzZSJdIHsKKyAgICAtd2Via2l0LXVzZXIt
ZHJhZzogbm9uZTsKK30KKwogLyogb3RoZXIgZWxlbWVudHMgKi8KIAogbm9mcmFtZXMgewpJbmRl
eDogV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCShyZXZpc2lvbiA0NTQ4NikKKysrIFdlYkNv
cmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1MCw2ICsz
NTAsMTIgQEAgdm9pZCBIVE1MQW5jaG9yRWxlbWVudDo6c2V0Q29vcmRzKGNvbnN0IAogICAgIHNl
dEF0dHJpYnV0ZShjb29yZHNBdHRyLCB2YWx1ZSk7CiB9CiAKK2Jvb2wgSFRNTEFuY2hvckVsZW1l
bnQ6OmRyYWdnYWJsZSgpIGNvbnN0Cit7CisgICAgLy8gc2hvdWxkIGJlIGRyYWdnYWJsZSBieSBk
ZWZhdWx0IGlmIHdlIGhhdmUgYW4gaHJlZiBhdHRyaWJ1dGUuCisgICAgcmV0dXJuIGhhc0F0dHJp
YnV0ZShocmVmQXR0cikgJiYgZ2V0QXR0cmlidXRlKGRyYWdnYWJsZUF0dHIpICE9ICJmYWxzZSIg
fHwgSFRNTEVsZW1lbnQ6OmRyYWdnYWJsZSgpOyAgICAgICAgCit9CisKIEtVUkwgSFRNTEFuY2hv
ckVsZW1lbnQ6OmhyZWYoKSBjb25zdAogewogICAgIHJldHVybiBkb2N1bWVudCgpLT5jb21wbGV0
ZVVSTChnZXRBdHRyaWJ1dGUoaHJlZkF0dHIpKTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MQW5j
aG9yRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVu
dC5oCShyZXZpc2lvbiA0NTQ4NikKKysrIFdlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC01OCw2ICs1OCw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBBdG9t
aWNTdHJpbmcmIGNvb3JkcygpIGNvbnN0OwogICAgIHZvaWQgc2V0Q29vcmRzKGNvbnN0IEF0b21p
Y1N0cmluZyYpOwogCisgICAgYm9vbCBkcmFnZ2FibGUoKSBjb25zdDsKKwogICAgIEtVUkwgaHJl
ZigpIGNvbnN0OwogICAgIHZvaWQgc2V0SHJlZihjb25zdCBBdG9taWNTdHJpbmcmKTsKIApJbmRl
eDogV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCShyZXZpc2lvbiA0NTQ4NikKKysrIFdlYkNv
cmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTY5LDYgKzY5
LDcgQEAgZGVmZXIKIGRpcgogZGlyZWN0aW9uCiBkaXNhYmxlZAorZHJhZ2dhYmxlCiBlbmN0eXBl
CiBlbmQKIGV4cGFuZGVkCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJKHJldmlzaW9uIDQ1NDg2KQor
KysgV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjkyLDYg
KzY5MiwxNiBAQCB2b2lkIEhUTUxFbGVtZW50OjpzZXRDb250ZW50RWRpdGFibGUoY29uCiAgICAg
ICAgIHNldEF0dHJpYnV0ZShjb250ZW50ZWRpdGFibGVBdHRyLCBlbmFibGVkLmlzRW1wdHkoKSA/
ICJ0cnVlIiA6IGVuYWJsZWQpOwogfQogCitib29sIEhUTUxFbGVtZW50OjpkcmFnZ2FibGUoKSBj
b25zdAoreworICAgIHJldHVybiBnZXRBdHRyaWJ1dGUoZHJhZ2dhYmxlQXR0cikgPT0gInRydWUi
OworfQorCit2b2lkIEhUTUxFbGVtZW50OjpzZXREcmFnZ2FibGUoY29uc3QgYm9vbCYgdmFsdWUp
Cit7CisgICAgc2V0QXR0cmlidXRlKGRyYWdnYWJsZUF0dHIsIHZhbHVlID8gInRydWUiIDogImZh
bHNlIik7Cit9CisKIHZvaWQgSFRNTEVsZW1lbnQ6OmNsaWNrKCkKIHsKICAgICBkaXNwYXRjaFNp
bXVsYXRlZENsaWNrKDAsIGZhbHNlLCBmYWxzZSk7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEVs
ZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAkocmV2aXNp
b24gNDU0ODYpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtNzksNiArNzksOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRFZGl0
YWJsZShNYXBwZWRBdHRyaWJ1dGUqKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudEVkaXRh
YmxlKGNvbnN0IFN0cmluZyYpOwogCisgICAgdmlydHVhbCBib29sIGRyYWdnYWJsZSgpIGNvbnN0
OworICAgIHZpcnR1YWwgdm9pZCBzZXREcmFnZ2FibGUoY29uc3QgYm9vbCYpOworCiAgICAgdm9p
ZCBjbGljaygpOwogCiAgICAgdmlydHVhbCB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRU
b0FueUVsZW1lbnQpOwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaWRsCShyZXZpc2lvbiA0NTQ4NikKKysr
IFdlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2
LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRO
dWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0PWNsYXNzXSBET01TdHJpbmcgY2xhc3NOYW1lOwogCiAg
ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgdGFiSW5kZXg7CisgICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgZHJhZ2dhYmxlOwogCiAgICAg
ICAgIC8vIEV4dGVuc2lvbnMKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVs
bFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGlubmVySFRNTApJbmRleDogV2ViQ29yZS9odG1sL0hU
TUxJbWFnZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MSW1hZ2VF
bGVtZW50LmNwcAkocmV2aXNpb24gNDU0ODYpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxOSw2ICszMTksMTIgQEAgdm9pZCBIVE1MSW1h
Z2VFbGVtZW50OjpzZXRCb3JkZXIoY29uc3QgUwogICAgIHNldEF0dHJpYnV0ZShib3JkZXJBdHRy
LCB2YWx1ZSk7CiB9CiAKK2Jvb2wgSFRNTEltYWdlRWxlbWVudDo6ZHJhZ2dhYmxlKCkgY29uc3QK
K3sKKyAgICAvLyBJbWFnZSBlbGVtZW50cyBhcmUgZHJhZ2dhYmxlIGJ5IGRlZmF1bHQuCisgICAg
cmV0dXJuIGdldEF0dHJpYnV0ZShkcmFnZ2FibGVBdHRyKSAhPSAiZmFsc2UiOworfQorCiB2b2lk
IEhUTUxJbWFnZUVsZW1lbnQ6OnNldEhlaWdodChpbnQgdmFsdWUpCiB7CiAgICAgc2V0QXR0cmli
dXRlKGhlaWdodEF0dHIsIFN0cmluZzo6bnVtYmVyKHZhbHVlKSk7CkluZGV4OiBXZWJDb3JlL2h0
bWwvSFRNTEltYWdlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MSW1h
Z2VFbGVtZW50LmgJKHJldmlzaW9uIDQ1NDg2KQorKysgV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVs
ZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtODEsNiArODEsOCBAQCBwdWJsaWM6CiAgICAgU3Ry
aW5nIGJvcmRlcigpIGNvbnN0OwogICAgIHZvaWQgc2V0Qm9yZGVyKGNvbnN0IFN0cmluZyYpOwog
CisgICAgdmlydHVhbCBib29sIGRyYWdnYWJsZSgpIGNvbnN0OworCiAgICAgdm9pZCBzZXRIZWln
aHQoaW50KTsKIAogICAgIGludCBoc3BhY2UoKSBjb25zdDsKSW5kZXg6IExheW91dFRlc3RzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDQ1
NTE3KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MjIgQEAKKzIwMDktMDctMDIgIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQg
SFRNTDUgZHJhZ2dhYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yNjI2MgorCisgICAgICAgIFRoaXMgYWRkcyBET00gYmluZGluZ3MgZm9yIHRoZSBk
cmFnZ2FibGUgRE9NIHByb3BlcnR5LiBTZXR0aW5nIHRoaXMgc2V0cyB0aGUgSFRNTCBhdHRyaWJ1
dGUgZHJhZ2dhYmxlLgorICAgICAgICBUaGUgaHRtbC5jc3Mgd2FzIHVwZGF0ZWQgdG8gbWFwIHRo
aXMgYXR0cmlidXRlIHRvIHRoZSBDU1MgcHJvcGVydGllcyB0aGF0IGdvdmVybiB3aGV0aGVyIGFu
IGVsZW1lbnQgaXMKKyAgICAgICAgZHJhZ2dhYmxlIG9yIG5vdC4KKworICAgICAgICBTcGVjOiBo
dHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFn
ZS9lZGl0aW5nLmh0bWwjdGhlLWRyYWdnYWJsZS1hdHRyaWJ1dGUKKworICAgICAgICAqIGZhc3Qv
aHRtbC9kcmFnZ2FibGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2h0bWwv
ZHJhZ2dhYmxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaHRtbC9yZXNvdXJjZXM6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvaHRtbC9yZXNvdXJjZXMvaW1hZ2VzOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2h0bWwvcmVzb3VyY2VzL2ltYWdlcy9saW1lLnBuZzogQWRkZWQuCisKIDIwMDkt
MDctMDIgIFBpZXJyZSBkJ0hlcmJlbW9udCAgPHBkaGVyYmVtb250QGFwcGxlLmNvbT4KIAogICAg
ICAgICBBZGRlZCB0aGUgdGVzdCByZXN1bHQgb2YgcjQ1NTExIGZvciBwbGF0Zm9ybS9tYWMuCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2h0bWwvZHJhZ2dhYmxlLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2h0bWwvZHJhZ2dhYmxlLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvaHRtbC9kcmFnZ2FibGUtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM4IEBACitJbnRyaW5zaWMKKworIHdlYmtpdC5vcmcg
PGEgbm8gaHJlZj4gPHNwYW4+CitkcmFnZ2FibGUgYXR0ciBzZXQgdG8gdHJ1ZQorCisgd2Via2l0
Lm9yZyA8YSBubyBocmVmPiA8c3Bhbj4KK2RyYWdnYWJsZSBhdHRyIHNldCB0byBmYWxzZQorCisg
d2Via2l0Lm9yZyA8YSBubyBocmVmPiA8c3Bhbj4KK2RyYWdnYWJsZSBkb20gcHJvcCBzZXQgdG8g
dHJ1ZQorCisgd2Via2l0Lm9yZyA8YSBubyBocmVmPiA8c3Bhbj4KK2RyYWdnYWJsZSBkb20gcHJv
cCBzZXQgdG8gZmFsc2UKKworIHdlYmtpdC5vcmcgPGEgbm8gaHJlZj4gPHNwYW4+Citkb20gLSBh
dHRyCistLS0tLS0tLS0tCit0cnVlIC0gbnVsbAordHJ1ZSAtIG51bGwKK2ZhbHNlIC0gbnVsbAor
ZmFsc2UgLSBudWxsCit0cnVlIC0gdHJ1ZQordHJ1ZSAtIHRydWUKK3RydWUgLSB0cnVlCit0cnVl
IC0gdHJ1ZQorZmFsc2UgLSBmYWxzZQorZmFsc2UgLSBmYWxzZQorZmFsc2UgLSBmYWxzZQorZmFs
c2UgLSBmYWxzZQordHJ1ZSAtIHRydWUKK3RydWUgLSB0cnVlCit0cnVlIC0gdHJ1ZQordHJ1ZSAt
IHRydWUKK2ZhbHNlIC0gZmFsc2UKK2ZhbHNlIC0gZmFsc2UKK2ZhbHNlIC0gZmFsc2UKK2ZhbHNl
IC0gZmFsc2UKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9odG1sL2RyYWdnYWJsZS5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvaHRtbC9kcmFnZ2FibGUuaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvaHRtbC9kcmFnZ2FibGUuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw4NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHRp
dGxlPkhUTUw1IERyYWdnYWJsZTwvdGl0bGU+Cis8c3R5bGU+CisKK1tkcmFnZ2FibGU9InRydWUi
XSB7CisgICAgb3V0bGluZTogMXB4IHNvbGlkIGxpbWU7Cit9CisKK1tkcmFnZ2FibGU9ImZhbHNl
Il0geworICAgIG91dGxpbmU6IDFweCBzb2xpZCBwaW5rOworfQorCis8L3N0eWxlPgorPHNjcmlw
dD4KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgdmFyIGVsZW1lbnRzID0gZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbCgnYm9keSA+IDpub3QoaDIpJyk7CisKKyAgICBmb3IgKHZhciBpID0gMTI7
IGkgPCAyMDsgaSsrKSB7CisgICAgICBlbGVtZW50c1tpXS5kcmFnZ2FibGUgPSBpIDwgMTY7Cisg
ICAgfQorCisgICAgdmFyIHMgPSAnZG9tIC0gYXR0clxuLS0tLS0tLS0tLVxuJzsKKyAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIHMgKz0gZWxl
bWVudHNbaV0uZHJhZ2dhYmxlICsgJyAtICcgKyBlbGVtZW50c1tpXS5nZXRBdHRyaWJ1dGUoJ2Ry
YWdnYWJsZScpICsgJ1xuJzsKKyAgICB9CisKKyAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgncHJlJyk7CisgICAgcHJlLnRleHRDb250ZW50ID0gczsKKyAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKHByZSk7CisgICAgCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOyAgICAK
K307CisKK2RvY3VtZW50Lm9uZHJhZ3N0YXJ0ID0gZnVuY3Rpb24oZSkKK3sKKyAgICBlLmRhdGFU
cmFuc2Zlci5zZXREYXRhKCdUZXh0JywgZS50YXJnZXQudGV4dENvbnRlbnQgfHwgZS50YXJnZXQu
c3JjIHx8IGUudGFyZ2V0LmhyZWYpOworfTsKKworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBv
bmxvYWQ9InRlc3QoKSI+CisKKzxoMj5JbnRyaW5zaWM8L2gyPgorCis8aW1nIHNyYz0icmVzb3Vy
Y2VzL2ltYWdlcy9saW1lLnBuZyI+Cis8YSBocmVmPSJodHRwOi8vd2ViZ2tpdC5vcmciPndlYmtp
dC5vcmc8L2E+Cis8YT4mbHQ7YSBubyBocmVmJmd0OzwvYT4KKzxzcGFuPiZsdDtzcGFuJmd0Ozwv
c3Bhbj4KKworPGgyPmRyYWdnYWJsZSBhdHRyIHNldCB0byB0cnVlPC9oMj4KKworPGltZyBzcmM9
InJlc291cmNlcy9pbWFnZXMvbGltZS5wbmciIGRyYWdnYWJsZT0idHJ1ZSI+Cis8YSBocmVmPSJo
dHRwOi8vd2ViZ2tpdC5vcmciIGRyYWdnYWJsZT0idHJ1ZSI+d2Via2l0Lm9yZzwvYT4KKzxhIGRy
YWdnYWJsZT0idHJ1ZSI+Jmx0O2Egbm8gaHJlZiZndDs8L2E+Cis8c3BhbiBkcmFnZ2FibGU9InRy
dWUiPiZsdDtzcGFuJmd0Ozwvc3Bhbj4KKworPGgyPmRyYWdnYWJsZSBhdHRyIHNldCB0byBmYWxz
ZTwvaDI+CisKKzxpbWcgc3JjPSJyZXNvdXJjZXMvaW1hZ2VzL2xpbWUucG5nIiBkcmFnZ2FibGU9
ImZhbHNlIj4KKzxhIGhyZWY9Imh0dHA6Ly93ZWJna2l0Lm9yZyIgZHJhZ2dhYmxlPSJmYWxzZSI+
d2Via2l0Lm9yZzwvYT4KKzxhIGRyYWdnYWJsZT0iZmFsc2UiPiZsdDthIG5vIGhyZWYmZ3Q7PC9h
PgorPHNwYW4gZHJhZ2dhYmxlPSJmYWxzZSI+Jmx0O3NwYW4mZ3Q7PC9zcGFuPgorCis8aDI+ZHJh
Z2dhYmxlIGRvbSBwcm9wIHNldCB0byB0cnVlPC9oMj4KKworPGltZyBzcmM9InJlc291cmNlcy9p
bWFnZXMvbGltZS5wbmciPgorPGEgaHJlZj0iaHR0cDovL3dlYmdraXQub3JnIj53ZWJraXQub3Jn
PC9hPgorPGE+Jmx0O2Egbm8gaHJlZiZndDs8L2E+Cis8c3Bhbj4mbHQ7c3BhbiZndDs8L3NwYW4+
CisKKzxoMj5kcmFnZ2FibGUgZG9tIHByb3Agc2V0IHRvIGZhbHNlPC9oMj4KKworPGltZyBzcmM9
InJlc291cmNlcy9pbWFnZXMvbGltZS5wbmciPgorPGEgaHJlZj0iaHR0cDovL3dlYmdraXQub3Jn
Ij53ZWJraXQub3JnPC9hPgorPGE+Jmx0O2Egbm8gaHJlZiZndDs8L2E+Cis8c3Bhbj4mbHQ7c3Bh
biZndDs8L3NwYW4+CisKKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
aHRtbC9yZXNvdXJjZXMvaW1hZ2VzL2xpbWUucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6
IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBhcHBsaWNhdGlv
bi9vY3RldC1zdHJlYW0KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvaHRt
bC9yZXNvdXJjZXMvaW1hZ2VzL2xpbWUucG5nCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlw
ZQogICArIGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKCmlWQk9SdzBLR2dvQUFBQU5TVWhFVWdB
QUFESUFBQUF5Q0FNQUFBQXA0WGlEQUFBQUExQk1WRVVBL3dBMFhzQ29BQUFBR0VsRVFWUjQKWHUz
QUFRRUFBQUNDb1A2dmJvaXdBQUFBRGduMkFBSDNYeVBzQUFBQUFFbEZUa1N1UW1DQwoK
</data>
<flag name="review"
          id="16704"
          type_id="1"
          status="-"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32253</attachid>
            <date>2009-07-04 00:09:42 -0700</date>
            <delta_ts>2009-07-04 20:56:43 -0700</delta_ts>
            <desc>Uses parseMappedAttribute instead of the user style sheet</desc>
            <filename>draggable.patch</filename>
            <type>text/plain</type>
            <size>11464</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NTUxNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMDktMDctMDIgIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
bXBsZW1lbnQgSFRNTDUgZHJhZ2dhYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yNjI2MgorCisgICAgICAgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciB0
aGUgSFRNTDUgZHJhZ2dhYmxlIGF0dHJpYnV0ZSBhbmQgaXRzIERPTSBiaW5kaW5nLiBJdCBtYXBz
IHRoZSBkcmFnZ2FibGUgcHJvcGVydHkKKyAgICAgICAgdG8gdGhlIENTUyBwcm9wZXJ0aWVzIC13
ZWJraXQtdXNlci1kcmFnIGFuZCAtd2Via2l0LXVzZXItc2VsZWN0IHJlc3BlY3RpdmVseS4KKwor
ICAgICAgICBTcGVjOiBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVu
dC13b3JrL211bHRpcGFnZS9lZGl0aW5nLmh0bWwjdGhlLWRyYWdnYWJsZS1hdHRyaWJ1dGUKKwor
ICAgICAgICBUZXN0OiBmYXN0L2h0bWwvZHJhZ2dhYmxlLmh0bWwKKworICAgICAgICAqIGNzcy9o
dG1sLmNzczoKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxBbmNob3JFbGVtZW50OjpkcmFnZ2FibGUpOgorICAgICAgICAqIGh0bWwv
SFRNTEFuY2hvckVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5p
bjoKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxFbGVtZW50OjpkcmFnZ2FibGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OnNl
dERyYWdnYWJsZSk6CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5oOgorICAgICAgICAqIGh0
bWwvSFRNTEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpkcmFnZ2FibGUpOgorICAgICAg
ICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5oOgorCiAyMDA5LTA3LTAyICBSb2xhbmQgU3RlaW5l
ciAgPHJvbGFuZHN0ZWluZXJAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmlj
IFNlaWRlbC4KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAkocmV2aXNpb24gNDU0
ODYpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zNTAsNiArMzUwLDE2IEBAIHZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OnNldENvb3Jkcyhj
b25zdCAKICAgICBzZXRBdHRyaWJ1dGUoY29vcmRzQXR0ciwgdmFsdWUpOwogfQogCitib29sIEhU
TUxBbmNob3JFbGVtZW50OjpkcmFnZ2FibGUoKSBjb25zdAoreworICAgIC8vIFNob3VsZCBiZSBk
cmFnZ2FibGUgaWYgd2UgaGF2ZSBhbiBocmVmIGF0dHJpYnV0ZS4KKyAgICBpZiAoZXF1YWxJZ25v
cmluZ0Nhc2UoZ2V0QXR0cmlidXRlKGRyYWdnYWJsZUF0dHIpLCAidHJ1ZSIpKQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoZ2V0QXR0cmlidXRlKGRyYWdn
YWJsZUF0dHIpLCAiZmFsc2UiKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBo
YXNBdHRyaWJ1dGUoaHJlZkF0dHIpOworfQorCiBLVVJMIEhUTUxBbmNob3JFbGVtZW50OjpocmVm
KCkgY29uc3QKIHsKICAgICByZXR1cm4gZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoZ2V0QXR0cmli
dXRlKGhyZWZBdHRyKSk7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaAkocmV2aXNpb24g
NDU0ODYpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtNTgsNiArNTgsOCBAQCBwdWJsaWM6CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBjb29y
ZHMoKSBjb25zdDsKICAgICB2b2lkIHNldENvb3Jkcyhjb25zdCBBdG9taWNTdHJpbmcmKTsKIAor
ICAgIHZpcnR1YWwgYm9vbCBkcmFnZ2FibGUoKSBjb25zdDsKKwogICAgIEtVUkwgaHJlZigpIGNv
bnN0OwogICAgIHZvaWQgc2V0SHJlZihjb25zdCBBdG9taWNTdHJpbmcmKTsKIApJbmRleDogV2Vi
Q29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0
bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCShyZXZpc2lvbiA0NTQ4NikKKysrIFdlYkNvcmUvaHRt
bC9IVE1MQXR0cmlidXRlTmFtZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTY5LDYgKzY5LDcgQEAg
ZGVmZXIKIGRpcgogZGlyZWN0aW9uCiBkaXNhYmxlZAorZHJhZ2dhYmxlCiBlbmN0eXBlCiBlbmQK
IGV4cGFuZGVkCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJKHJldmlzaW9uIDQ1NDg2KQorKysgV2Vi
Q29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQzLDYgKzE0Myw4
IEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKE0KICAgICB9IGVsc2Ug
aWYgKGF0dHItPm5hbWUoKSA9PSBkaXJBdHRyKSB7CiAgICAgICAgIGFkZENTU1Byb3BlcnR5KGF0
dHIsIENTU1Byb3BlcnR5RGlyZWN0aW9uLCBhdHRyLT52YWx1ZSgpKTsKICAgICAgICAgYWRkQ1NT
UHJvcGVydHkoYXR0ciwgQ1NTUHJvcGVydHlVbmljb2RlQmlkaSwgaGFzTG9jYWxOYW1lKGJkb1Rh
ZykgPyBDU1NWYWx1ZUJpZGlPdmVycmlkZSA6IENTU1ZhbHVlRW1iZWQpOworICAgIH0gZWxzZSBp
ZiAoYXR0ci0+bmFtZSgpID09IGRyYWdnYWJsZUF0dHIpIHsKKyAgICAgICAgc2V0RHJhZ2dhYmxl
KGF0dHIpOwogICAgIH0KIC8vIHN0YW5kYXJkIGV2ZW50cwogICAgIGVsc2UgaWYgKGF0dHItPm5h
bWUoKSA9PSBvbmNsaWNrQXR0cikgewpAQCAtNjkyLDYgKzY5NCwyNyBAQCB2b2lkIEhUTUxFbGVt
ZW50OjpzZXRDb250ZW50RWRpdGFibGUoY29uCiAgICAgICAgIHNldEF0dHJpYnV0ZShjb250ZW50
ZWRpdGFibGVBdHRyLCBlbmFibGVkLmlzRW1wdHkoKSA/ICJ0cnVlIiA6IGVuYWJsZWQpOwogfQog
Citib29sIEhUTUxFbGVtZW50OjpkcmFnZ2FibGUoKSBjb25zdAoreworICAgIHJldHVybiBlcXVh
bElnbm9yaW5nQ2FzZShnZXRBdHRyaWJ1dGUoZHJhZ2dhYmxlQXR0ciksICJ0cnVlIik7Cit9CisK
K3ZvaWQgSFRNTEVsZW1lbnQ6OnNldERyYWdnYWJsZShNYXBwZWRBdHRyaWJ1dGUqIGF0dHIpIAor
eworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZW5hYmxlZCA9IGF0dHItPnZhbHVlKCk7CisgICAg
aWYgKGVxdWFsSWdub3JpbmdDYXNlKGVuYWJsZWQsICJ0cnVlIikpIHsKKyAgICAgICAgYWRkQ1NT
UHJvcGVydHkoYXR0ciwgQ1NTUHJvcGVydHlXZWJraXRVc2VyRHJhZywgQ1NTVmFsdWVFbGVtZW50
KTsKKyAgICAgICAgYWRkQ1NTUHJvcGVydHkoYXR0ciwgQ1NTUHJvcGVydHlXZWJraXRVc2VyU2Vs
ZWN0LCBDU1NWYWx1ZU5vbmUpOworICAgIH0gZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoZW5h
YmxlZCwgImZhbHNlIikpIHsKKyAgICAgICAgYWRkQ1NTUHJvcGVydHkoYXR0ciwgQ1NTUHJvcGVy
dHlXZWJraXRVc2VyRHJhZywgQ1NTVmFsdWVOb25lKTsKKyAgICB9Cit9CisKK3ZvaWQgSFRNTEVs
ZW1lbnQ6OnNldERyYWdnYWJsZShjb25zdCBib29sJiB2YWx1ZSkKK3sKKyAgICBzZXRBdHRyaWJ1
dGUoZHJhZ2dhYmxlQXR0ciwgdmFsdWUgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKK30KKwogdm9pZCBI
VE1MRWxlbWVudDo6Y2xpY2soKQogewogICAgIGRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soMCwgZmFs
c2UsIGZhbHNlKTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCShyZXZpc2lvbiA0NTQ4NikKKysrIFdlYkNv
cmUvaHRtbC9IVE1MRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC03OSw2ICs3OSwxMCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRFZGl0YWJsZShNYXBwZWRBdHRyaWJ1
dGUqKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudEVkaXRhYmxlKGNvbnN0IFN0cmluZyYp
OwogCisgICAgdmlydHVhbCBib29sIGRyYWdnYWJsZSgpIGNvbnN0OworICAgIHZvaWQgc2V0RHJh
Z2dhYmxlKE1hcHBlZEF0dHJpYnV0ZSopOworICAgIHZvaWQgc2V0RHJhZ2dhYmxlKGNvbnN0IGJv
b2wmKTsKKwogICAgIHZvaWQgY2xpY2soKTsKIAogICAgIHZpcnR1YWwgdm9pZCBhY2Nlc3NLZXlB
Y3Rpb24oYm9vbCBzZW5kVG9BbnlFbGVtZW50KTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRWxl
bWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbAkocmV2
aXNpb24gNDU0ODYpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaWRsCSh3b3JraW5nIGNv
cHkpCkBAIC0zNiw2ICszNiw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgICAgICAgICAgYXR0
cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdD1jbGFzc10gRE9NU3RyaW5n
IGNsYXNzTmFtZTsKIAogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAg
IHRhYkluZGV4OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIGRy
YWdnYWJsZTsKIAogICAgICAgICAvLyBFeHRlbnNpb25zCiAgICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBpbm5lckhUTUwKSW5kZXg6
IFdlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAJKHJldmlzaW9uIDQ1NDg2KQorKysgV2ViQ29yZS9o
dG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMTksNiArMzE5LDEy
IEBAIHZvaWQgSFRNTEltYWdlRWxlbWVudDo6c2V0Qm9yZGVyKGNvbnN0IFMKICAgICBzZXRBdHRy
aWJ1dGUoYm9yZGVyQXR0ciwgdmFsdWUpOwogfQogCitib29sIEhUTUxJbWFnZUVsZW1lbnQ6OmRy
YWdnYWJsZSgpIGNvbnN0Cit7CisgICAgLy8gSW1hZ2UgZWxlbWVudHMgYXJlIGRyYWdnYWJsZSBi
eSBkZWZhdWx0LgorICAgIHJldHVybiAhZXF1YWxJZ25vcmluZ0Nhc2UoZ2V0QXR0cmlidXRlKGRy
YWdnYWJsZUF0dHIpLCAiZmFsc2UiKTsKK30KKwogdm9pZCBIVE1MSW1hZ2VFbGVtZW50OjpzZXRI
ZWlnaHQoaW50IHZhbHVlKQogewogICAgIHNldEF0dHJpYnV0ZShoZWlnaHRBdHRyLCBTdHJpbmc6
Om51bWJlcih2YWx1ZSkpOwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCShyZXZpc2lvbiA0
NTQ4NikKKysrIFdlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTgxLDYgKzgxLDggQEAgcHVibGljOgogICAgIFN0cmluZyBib3JkZXIoKSBjb25zdDsKICAg
ICB2b2lkIHNldEJvcmRlcihjb25zdCBTdHJpbmcmKTsKIAorICAgIHZpcnR1YWwgYm9vbCBkcmFn
Z2FibGUoKSBjb25zdDsKKwogICAgIHZvaWQgc2V0SGVpZ2h0KGludCk7CiAKICAgICBpbnQgaHNw
YWNlKCkgY29uc3Q7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0NTUxNykKKysrIExheW91dFRlc3RzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDA5LTA3LTAyICBFcmlr
IEFydmlkc3NvbiAgPGFydkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IEhUTUw1IGRyYWdnYWJsZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjYyNjIKKworICAgICAg
ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgdGhlIEhUTUw1IGRyYWdnYWJsZSBhdHRyaWJ1dGUgYW5k
IGl0cyBET00gYmluZGluZy4gSXQgbWFwcyB0aGUgZHJhZ2dhYmxlIHByb3BlcnR5CisgICAgICAg
IHRvIHRoZSBDU1MgcHJvcGVydGllcyAtd2Via2l0LXVzZXItZHJhZyBhbmQgLXdlYmtpdC11c2Vy
LXNlbGVjdCByZXNwZWN0aXZlbHkuCisKKyAgICAgICAgU3BlYzogaHR0cDovL3d3dy53aGF0d2cu
b3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvZWRpdGluZy5odG1sI3Ro
ZS1kcmFnZ2FibGUtYXR0cmlidXRlCisKKyAgICAgICAgKiBmYXN0L2h0bWwvZHJhZ2dhYmxlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9odG1sL2RyYWdnYWJsZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2h0bWwvcmVzb3VyY2VzOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2h0bWwvcmVzb3VyY2VzL2ltYWdlczogQWRkZWQuCisgICAgICAgICogZmFzdC9odG1sL3Jl
c291cmNlcy9pbWFnZXMvbGltZS5wbmc6IEFkZGVkLgorCiAyMDA5LTA3LTAyICBQaWVycmUgZCdI
ZXJiZW1vbnQgIDxwZGhlcmJlbW9udEBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkZWQgdGhlIHRl
c3QgcmVzdWx0IG9mIHI0NTUxMSBmb3IgcGxhdGZvcm0vbWFjLgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9odG1sL2RyYWdnYWJsZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9odG1sL2RyYWdnYWJsZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2h0bWwvZHJhZ2dhYmxlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw0NSBAQAorSW50cmluc2ljCisKKyB3ZWJraXQub3JnIDxhIG5vIGhyZWY+IDxzcGFu
PgorZHJhZ2dhYmxlIGF0dHIgc2V0IHRvIHRydWUKKworIHdlYmtpdC5vcmcgPGEgbm8gaHJlZj4g
PHNwYW4+CitkcmFnZ2FibGUgYXR0ciBzZXQgdG8gZmFsc2UKKworIHdlYmtpdC5vcmcgPGEgbm8g
aHJlZj4gPHNwYW4+CitkcmFnZ2FibGUgYXR0ciBzZXQgdG8gbWF5YmUKKworIHdlYmtpdC5vcmcg
PGEgbm8gaHJlZj4gPHNwYW4+CitkcmFnZ2FibGUgZG9tIHByb3Agc2V0IHRvIHRydWUKKworIHdl
YmtpdC5vcmcgPGEgbm8gaHJlZj4gPHNwYW4+CitkcmFnZ2FibGUgZG9tIHByb3Agc2V0IHRvIGZh
bHNlCisKKyB3ZWJraXQub3JnIDxhIG5vIGhyZWY+IDxzcGFuPgorZG9tIC0gYXR0cgorLS0tLS0t
LS0tLQordHJ1ZSAtIG51bGwKK3RydWUgLSBudWxsCitmYWxzZSAtIG51bGwKK2ZhbHNlIC0gbnVs
bAordHJ1ZSAtIHRydWUKK3RydWUgLSB0cnVlCit0cnVlIC0gdHJ1ZQordHJ1ZSAtIHRydWUKK2Zh
bHNlIC0gZmFsc2UKK2ZhbHNlIC0gZmFsc2UKK2ZhbHNlIC0gZmFsc2UKK2ZhbHNlIC0gZmFsc2UK
K3RydWUgLSBtYXliZQordHJ1ZSAtIG1heWJlCitmYWxzZSAtIG1heWJlCitmYWxzZSAtIG1heWJl
Cit0cnVlIC0gdHJ1ZQordHJ1ZSAtIHRydWUKK3RydWUgLSB0cnVlCit0cnVlIC0gdHJ1ZQorZmFs
c2UgLSBmYWxzZQorZmFsc2UgLSBmYWxzZQorZmFsc2UgLSBmYWxzZQorZmFsc2UgLSBmYWxzZQor
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2h0bWwvZHJhZ2dhYmxlLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9odG1sL2RyYWdnYWJsZS5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9odG1sL2RyYWdnYWJsZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDkxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+SFRNTDUg
RHJhZ2dhYmxlPC90aXRsZT4KKzxzdHlsZT4KKworW2RyYWdnYWJsZT0idHJ1ZSJdIHsKKyAgICBv
dXRsaW5lOiAxcHggc29saWQgbGltZTsKK30KKworW2RyYWdnYWJsZT0iZmFsc2UiXSB7CisgICAg
b3V0bGluZTogMXB4IHNvbGlkIHBpbms7Cit9CisKKzwvc3R5bGU+Cis8c2NyaXB0PgorCitmdW5j
dGlvbiB0ZXN0KCkKK3sKKyAgICB2YXIgZWxlbWVudHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCdib2R5ID4gOm5vdChoMiknKTsKKworICAgIGZvciAodmFyIGkgPSAxNjsgaSA8IDI0OyBp
KyspIHsKKyAgICAgIGVsZW1lbnRzW2ldLmRyYWdnYWJsZSA9IGkgPCAyMDsKKyAgICB9CisKKyAg
ICB2YXIgcyA9ICdkb20gLSBhdHRyXG4tLS0tLS0tLS0tXG4nOworICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgcyArPSBlbGVtZW50c1tpXS5k
cmFnZ2FibGUgKyAnIC0gJyArIGVsZW1lbnRzW2ldLmdldEF0dHJpYnV0ZSgnZHJhZ2dhYmxlJykg
KyAnXG4nOworICAgIH0KKworICAgIHZhciBwcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdw
cmUnKTsKKyAgICBwcmUudGV4dENvbnRlbnQgPSBzOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQocHJlKTsKKyAgICAKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7ICAgIAorfTsKKworZG9j
dW1lbnQub25kcmFnc3RhcnQgPSBmdW5jdGlvbihlKQoreworICAgIGUuZGF0YVRyYW5zZmVyLnNl
dERhdGEoJ1RleHQnLCBlLnRhcmdldC50ZXh0Q29udGVudCB8fCBlLnRhcmdldC5zcmMgfHwgZS50
YXJnZXQuaHJlZik7Cit9OworCis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVz
dCgpIj4KKworPGgyPkludHJpbnNpYzwvaDI+CisKKzxpbWcgc3JjPSJyZXNvdXJjZXMvaW1hZ2Vz
L2xpbWUucG5nIj4KKzxhIGhyZWY9Imh0dHA6Ly93ZWJna2l0Lm9yZyI+d2Via2l0Lm9yZzwvYT4K
KzxhPiZsdDthIG5vIGhyZWYmZ3Q7PC9hPgorPHNwYW4+Jmx0O3NwYW4mZ3Q7PC9zcGFuPgorCis8
aDI+ZHJhZ2dhYmxlIGF0dHIgc2V0IHRvIHRydWU8L2gyPgorCis8aW1nIHNyYz0icmVzb3VyY2Vz
L2ltYWdlcy9saW1lLnBuZyIgZHJhZ2dhYmxlPSJ0cnVlIj4KKzxhIGhyZWY9Imh0dHA6Ly93ZWJn
a2l0Lm9yZyIgZHJhZ2dhYmxlPSJ0cnVlIj53ZWJraXQub3JnPC9hPgorPGEgZHJhZ2dhYmxlPSJ0
cnVlIj4mbHQ7YSBubyBocmVmJmd0OzwvYT4KKzxzcGFuIGRyYWdnYWJsZT0idHJ1ZSI+Jmx0O3Nw
YW4mZ3Q7PC9zcGFuPgorCis8aDI+ZHJhZ2dhYmxlIGF0dHIgc2V0IHRvIGZhbHNlPC9oMj4KKwor
PGltZyBzcmM9InJlc291cmNlcy9pbWFnZXMvbGltZS5wbmciIGRyYWdnYWJsZT0iZmFsc2UiPgor
PGEgaHJlZj0iaHR0cDovL3dlYmdraXQub3JnIiBkcmFnZ2FibGU9ImZhbHNlIj53ZWJraXQub3Jn
PC9hPgorPGEgZHJhZ2dhYmxlPSJmYWxzZSI+Jmx0O2Egbm8gaHJlZiZndDs8L2E+Cis8c3BhbiBk
cmFnZ2FibGU9ImZhbHNlIj4mbHQ7c3BhbiZndDs8L3NwYW4+CisKKzxoMj5kcmFnZ2FibGUgYXR0
ciBzZXQgdG8gbWF5YmU8L2gyPgorCis8aW1nIHNyYz0icmVzb3VyY2VzL2ltYWdlcy9saW1lLnBu
ZyIgZHJhZ2dhYmxlPSJtYXliZSI+Cis8YSBocmVmPSJodHRwOi8vd2ViZ2tpdC5vcmciIGRyYWdn
YWJsZT0ibWF5YmUiPndlYmtpdC5vcmc8L2E+Cis8YSBkcmFnZ2FibGU9Im1heWJlIj4mbHQ7YSBu
byBocmVmJmd0OzwvYT4KKzxzcGFuIGRyYWdnYWJsZT0ibWF5YmUiPiZsdDtzcGFuJmd0Ozwvc3Bh
bj4KKworPGgyPmRyYWdnYWJsZSBkb20gcHJvcCBzZXQgdG8gdHJ1ZTwvaDI+CisKKzxpbWcgc3Jj
PSJyZXNvdXJjZXMvaW1hZ2VzL2xpbWUucG5nIj4KKzxhIGhyZWY9Imh0dHA6Ly93ZWJna2l0Lm9y
ZyI+d2Via2l0Lm9yZzwvYT4KKzxhPiZsdDthIG5vIGhyZWYmZ3Q7PC9hPgorPHNwYW4+Jmx0O3Nw
YW4mZ3Q7PC9zcGFuPgorCis8aDI+ZHJhZ2dhYmxlIGRvbSBwcm9wIHNldCB0byBmYWxzZTwvaDI+
CisKKzxpbWcgc3JjPSJyZXNvdXJjZXMvaW1hZ2VzL2xpbWUucG5nIj4KKzxhIGhyZWY9Imh0dHA6
Ly93ZWJna2l0Lm9yZyI+d2Via2l0Lm9yZzwvYT4KKzxhPiZsdDthIG5vIGhyZWYmZ3Q7PC9hPgor
PHNwYW4+Jmx0O3NwYW4mZ3Q7PC9zcGFuPgorCis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2h0bWwvcmVzb3VyY2VzL2ltYWdlcy9saW1lLnBuZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNh
bm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBl
ID0gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRU
ZXN0cy9mYXN0L2h0bWwvcmVzb3VyY2VzL2ltYWdlcy9saW1lLnBuZwpfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6
IHN2bjptaW1lLXR5cGUKICAgKyBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KCgppVkJPUncwS0dn
b0FBQUFOU1VoRVVnQUFBRElBQUFBeUNBTUFBQUFwNFhpREFBQUFBMUJNVkVVQS93QTBYc0NvQUFB
QUdFbEVRVlI0Clh1M0FBUUVBQUFDQ29QNnZib2l3QUFBQURnbjJBQUgzWHlQc0FBQUFBRWxGVGtT
dVFtQ0MKCg==
</data>
<flag name="review"
          id="16737"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32266</attachid>
            <date>2009-07-04 20:56:43 -0700</date>
            <delta_ts>2009-07-06 14:32:27 -0700</delta_ts>
            <desc>Fixed Darin&apos;s comments.</desc>
            <filename>draggable.patch</filename>
            <type>text/plain</type>
            <size>11356</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NTUxNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMDktMDctMDIgIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
bXBsZW1lbnQgSFRNTDUgZHJhZ2dhYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yNjI2MgorCisgICAgICAgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciB0
aGUgSFRNTDUgZHJhZ2dhYmxlIGF0dHJpYnV0ZSBhbmQgaXRzIERPTSBiaW5kaW5nLiBJdCBtYXBz
IHRoZSBkcmFnZ2FibGUgcHJvcGVydHkKKyAgICAgICAgdG8gdGhlIENTUyBwcm9wZXJ0aWVzIC13
ZWJraXQtdXNlci1kcmFnIGFuZCAtd2Via2l0LXVzZXItc2VsZWN0IHJlc3BlY3RpdmVseS4KKwor
ICAgICAgICBTcGVjOiBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVu
dC13b3JrL211bHRpcGFnZS9lZGl0aW5nLmh0bWwjdGhlLWRyYWdnYWJsZS1hdHRyaWJ1dGUKKwor
ICAgICAgICBUZXN0OiBmYXN0L2h0bWwvZHJhZ2dhYmxlLmh0bWwKKworICAgICAgICAqIGNzcy9o
dG1sLmNzczoKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxBbmNob3JFbGVtZW50OjpkcmFnZ2FibGUpOgorICAgICAgICAqIGh0bWwv
SFRNTEFuY2hvckVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5p
bjoKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxFbGVtZW50OjpkcmFnZ2FibGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OnNl
dERyYWdnYWJsZSk6CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5oOgorICAgICAgICAqIGh0
bWwvSFRNTEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpkcmFnZ2FibGUpOgorICAgICAg
ICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5oOgorCiAyMDA5LTA3LTAyICBSb2xhbmQgU3RlaW5l
ciAgPHJvbGFuZHN0ZWluZXJAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmlj
IFNlaWRlbC4KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAkocmV2aXNpb24gNDU0
ODYpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zNTAsNiArMzUwLDE3IEBAIHZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OnNldENvb3Jkcyhj
b25zdCAKICAgICBzZXRBdHRyaWJ1dGUoY29vcmRzQXR0ciwgdmFsdWUpOwogfQogCitib29sIEhU
TUxBbmNob3JFbGVtZW50OjpkcmFnZ2FibGUoKSBjb25zdAoreworICAgIC8vIFNob3VsZCBiZSBk
cmFnZ2FibGUgaWYgd2UgaGF2ZSBhbiBocmVmIGF0dHJpYnV0ZS4KKyAgICBjb25zdCBBdG9taWNT
dHJpbmcmIHZhbHVlID0gZ2V0QXR0cmlidXRlKGRyYWdnYWJsZUF0dHIpOworICAgIGlmIChlcXVh
bElnbm9yaW5nQ2FzZSh2YWx1ZSAsICJ0cnVlIikpCisgICAgICAgIHJldHVybiB0cnVlOworICAg
IGlmIChlcXVhbElnbm9yaW5nQ2FzZSh2YWx1ZSwgImZhbHNlIikpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICByZXR1cm4gaGFzQXR0cmlidXRlKGhyZWZBdHRyKTsKK30KKwogS1VSTCBIVE1M
QW5jaG9yRWxlbWVudDo6aHJlZigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGRvY3VtZW50KCktPmNv
bXBsZXRlVVJMKGdldEF0dHJpYnV0ZShocmVmQXR0cikpOwpJbmRleDogV2ViQ29yZS9odG1sL0hU
TUxBbmNob3JFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxBbmNob3JF
bGVtZW50LmgJKHJldmlzaW9uIDQ1NDg2KQorKysgV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDYgKzU4LDggQEAgcHVibGljOgogICAgIGNvbnN0
IEF0b21pY1N0cmluZyYgY29vcmRzKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRDb29yZHMoY29uc3Qg
QXRvbWljU3RyaW5nJik7CiAKKyAgICB2aXJ0dWFsIGJvb2wgZHJhZ2dhYmxlKCkgY29uc3Q7CisK
ICAgICBLVVJMIGhyZWYoKSBjb25zdDsKICAgICB2b2lkIHNldEhyZWYoY29uc3QgQXRvbWljU3Ry
aW5nJik7CiAKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgkocmV2aXNpb24gNDU0
ODYpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCSh3b3JraW5nIGNvcHkp
CkBAIC02OSw2ICs2OSw3IEBAIGRlZmVyCiBkaXIKIGRpcmVjdGlvbgogZGlzYWJsZWQKK2RyYWdn
YWJsZQogZW5jdHlwZQogZW5kCiBleHBhbmRlZApJbmRleDogV2ViQ29yZS9odG1sL0hUTUxFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCShyZXZp
c2lvbiA0NTQ4NikKKysrIFdlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE0Myw2ICsxNDMsMTQgQEAgdm9pZCBIVE1MRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRy
aWJ1dGUoTQogICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IGRpckF0dHIpIHsKICAgICAg
ICAgYWRkQ1NTUHJvcGVydHkoYXR0ciwgQ1NTUHJvcGVydHlEaXJlY3Rpb24sIGF0dHItPnZhbHVl
KCkpOwogICAgICAgICBhZGRDU1NQcm9wZXJ0eShhdHRyLCBDU1NQcm9wZXJ0eVVuaWNvZGVCaWRp
LCBoYXNMb2NhbE5hbWUoYmRvVGFnKSA/IENTU1ZhbHVlQmlkaU92ZXJyaWRlIDogQ1NTVmFsdWVF
bWJlZCk7CisgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gZHJhZ2dhYmxlQXR0cikgewor
ICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlID0gYXR0ci0+dmFsdWUoKTsKKyAgICAg
ICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHZhbHVlLCAidHJ1ZSIpKSB7CisgICAgICAgICAgICBh
ZGRDU1NQcm9wZXJ0eShhdHRyLCBDU1NQcm9wZXJ0eVdlYmtpdFVzZXJEcmFnLCBDU1NWYWx1ZUVs
ZW1lbnQpOworICAgICAgICAgICAgYWRkQ1NTUHJvcGVydHkoYXR0ciwgQ1NTUHJvcGVydHlXZWJr
aXRVc2VyU2VsZWN0LCBDU1NWYWx1ZU5vbmUpOworICAgICAgICB9IGVsc2UgaWYgKGVxdWFsSWdu
b3JpbmdDYXNlKHZhbHVlLCAiZmFsc2UiKSkgeworICAgICAgICAgICAgYWRkQ1NTUHJvcGVydHko
YXR0ciwgQ1NTUHJvcGVydHlXZWJraXRVc2VyRHJhZywgQ1NTVmFsdWVOb25lKTsKKyAgICAgICAg
fQogICAgIH0KIC8vIHN0YW5kYXJkIGV2ZW50cwogICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9
PSBvbmNsaWNrQXR0cikgewpAQCAtNjkyLDYgKzcwMCwxNiBAQCB2b2lkIEhUTUxFbGVtZW50Ojpz
ZXRDb250ZW50RWRpdGFibGUoY29uCiAgICAgICAgIHNldEF0dHJpYnV0ZShjb250ZW50ZWRpdGFi
bGVBdHRyLCBlbmFibGVkLmlzRW1wdHkoKSA/ICJ0cnVlIiA6IGVuYWJsZWQpOwogfQogCitib29s
IEhUTUxFbGVtZW50OjpkcmFnZ2FibGUoKSBjb25zdAoreworICAgIHJldHVybiBlcXVhbElnbm9y
aW5nQ2FzZShnZXRBdHRyaWJ1dGUoZHJhZ2dhYmxlQXR0ciksICJ0cnVlIik7Cit9CisKK3ZvaWQg
SFRNTEVsZW1lbnQ6OnNldERyYWdnYWJsZShib29sIHZhbHVlKQoreworICAgIHNldEF0dHJpYnV0
ZShkcmFnZ2FibGVBdHRyLCB2YWx1ZSA/ICJ0cnVlIiA6ICJmYWxzZSIpOworfQorCiB2b2lkIEhU
TUxFbGVtZW50OjpjbGljaygpCiB7CiAgICAgZGlzcGF0Y2hTaW11bGF0ZWRDbGljaygwLCBmYWxz
ZSwgZmFsc2UpOwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgJKHJldmlzaW9uIDQ1NDg2KQorKysgV2ViQ29y
ZS9odG1sL0hUTUxFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTc5LDYgKzc5LDkgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50RWRpdGFibGUoTWFwcGVkQXR0cmlidXRl
Kik7CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRFZGl0YWJsZShjb25zdCBTdHJpbmcmKTsK
IAorICAgIHZpcnR1YWwgYm9vbCBkcmFnZ2FibGUoKSBjb25zdDsKKyAgICB2b2lkIHNldERyYWdn
YWJsZShib29sKTsKKwogICAgIHZvaWQgY2xpY2soKTsKIAogICAgIHZpcnR1YWwgdm9pZCBhY2Nl
c3NLZXlBY3Rpb24oYm9vbCBzZW5kVG9BbnlFbGVtZW50KTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9I
VE1MRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50Lmlk
bAkocmV2aXNpb24gNDU0ODYpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdD1jbGFzc10gRE9N
U3RyaW5nIGNsYXNzTmFtZTsKIAogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgbG9uZyAgICAg
ICAgICAgIHRhYkluZGV4OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiAgICAg
ICAgIGRyYWdnYWJsZTsKIAogICAgICAgICAvLyBFeHRlbnNpb25zCiAgICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBpbm5lckhUTUwK
SW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAJKHJldmlzaW9uIDQ1NDg2KQorKysgV2Vi
Q29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMTksNiAr
MzE5LDEyIEBAIHZvaWQgSFRNTEltYWdlRWxlbWVudDo6c2V0Qm9yZGVyKGNvbnN0IFMKICAgICBz
ZXRBdHRyaWJ1dGUoYm9yZGVyQXR0ciwgdmFsdWUpOwogfQogCitib29sIEhUTUxJbWFnZUVsZW1l
bnQ6OmRyYWdnYWJsZSgpIGNvbnN0Cit7CisgICAgLy8gSW1hZ2UgZWxlbWVudHMgYXJlIGRyYWdn
YWJsZSBieSBkZWZhdWx0LgorICAgIHJldHVybiAhZXF1YWxJZ25vcmluZ0Nhc2UoZ2V0QXR0cmli
dXRlKGRyYWdnYWJsZUF0dHIpLCAiZmFsc2UiKTsKK30KKwogdm9pZCBIVE1MSW1hZ2VFbGVtZW50
OjpzZXRIZWlnaHQoaW50IHZhbHVlKQogewogICAgIHNldEF0dHJpYnV0ZShoZWlnaHRBdHRyLCBT
dHJpbmc6Om51bWJlcih2YWx1ZSkpOwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCShyZXZp
c2lvbiA0NTQ4NikKKysrIFdlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTgxLDYgKzgxLDggQEAgcHVibGljOgogICAgIFN0cmluZyBib3JkZXIoKSBjb25z
dDsKICAgICB2b2lkIHNldEJvcmRlcihjb25zdCBTdHJpbmcmKTsKIAorICAgIHZpcnR1YWwgYm9v
bCBkcmFnZ2FibGUoKSBjb25zdDsKKwogICAgIHZvaWQgc2V0SGVpZ2h0KGludCk7CiAKICAgICBp
bnQgaHNwYWNlKCkgY29uc3Q7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0NTUxNykKKysrIExheW91dFRl
c3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDA5LTA3LTAy
ICBFcmlrIEFydmlkc3NvbiAgPGFydkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IEhUTUw1IGRyYWdnYWJsZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjYyNjIKKwor
ICAgICAgICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgdGhlIEhUTUw1IGRyYWdnYWJsZSBhdHRyaWJ1
dGUgYW5kIGl0cyBET00gYmluZGluZy4gSXQgbWFwcyB0aGUgZHJhZ2dhYmxlIHByb3BlcnR5Cisg
ICAgICAgIHRvIHRoZSBDU1MgcHJvcGVydGllcyAtd2Via2l0LXVzZXItZHJhZyBhbmQgLXdlYmtp
dC11c2VyLXNlbGVjdCByZXNwZWN0aXZlbHkuCisKKyAgICAgICAgU3BlYzogaHR0cDovL3d3dy53
aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvZWRpdGluZy5o
dG1sI3RoZS1kcmFnZ2FibGUtYXR0cmlidXRlCisKKyAgICAgICAgKiBmYXN0L2h0bWwvZHJhZ2dh
YmxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9odG1sL2RyYWdnYWJsZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2h0bWwvcmVzb3VyY2VzOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2h0bWwvcmVzb3VyY2VzL2ltYWdlczogQWRkZWQuCisgICAgICAgICogZmFzdC9o
dG1sL3Jlc291cmNlcy9pbWFnZXMvbGltZS5wbmc6IEFkZGVkLgorCiAyMDA5LTA3LTAyICBQaWVy
cmUgZCdIZXJiZW1vbnQgIDxwZGhlcmJlbW9udEBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkZWQg
dGhlIHRlc3QgcmVzdWx0IG9mIHI0NTUxMSBmb3IgcGxhdGZvcm0vbWFjLgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9odG1sL2RyYWdnYWJsZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9odG1sL2RyYWdnYWJsZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2h0bWwvZHJhZ2dhYmxlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw0NSBAQAorSW50cmluc2ljCisKKyB3ZWJraXQub3JnIDxhIG5vIGhyZWY+
IDxzcGFuPgorZHJhZ2dhYmxlIGF0dHIgc2V0IHRvIHRydWUKKworIHdlYmtpdC5vcmcgPGEgbm8g
aHJlZj4gPHNwYW4+CitkcmFnZ2FibGUgYXR0ciBzZXQgdG8gZmFsc2UKKworIHdlYmtpdC5vcmcg
PGEgbm8gaHJlZj4gPHNwYW4+CitkcmFnZ2FibGUgYXR0ciBzZXQgdG8gbWF5YmUKKworIHdlYmtp
dC5vcmcgPGEgbm8gaHJlZj4gPHNwYW4+CitkcmFnZ2FibGUgZG9tIHByb3Agc2V0IHRvIHRydWUK
KworIHdlYmtpdC5vcmcgPGEgbm8gaHJlZj4gPHNwYW4+CitkcmFnZ2FibGUgZG9tIHByb3Agc2V0
IHRvIGZhbHNlCisKKyB3ZWJraXQub3JnIDxhIG5vIGhyZWY+IDxzcGFuPgorZG9tIC0gYXR0cgor
LS0tLS0tLS0tLQordHJ1ZSAtIG51bGwKK3RydWUgLSBudWxsCitmYWxzZSAtIG51bGwKK2ZhbHNl
IC0gbnVsbAordHJ1ZSAtIHRydWUKK3RydWUgLSB0cnVlCit0cnVlIC0gdHJ1ZQordHJ1ZSAtIHRy
dWUKK2ZhbHNlIC0gZmFsc2UKK2ZhbHNlIC0gZmFsc2UKK2ZhbHNlIC0gZmFsc2UKK2ZhbHNlIC0g
ZmFsc2UKK3RydWUgLSBtYXliZQordHJ1ZSAtIG1heWJlCitmYWxzZSAtIG1heWJlCitmYWxzZSAt
IG1heWJlCit0cnVlIC0gdHJ1ZQordHJ1ZSAtIHRydWUKK3RydWUgLSB0cnVlCit0cnVlIC0gdHJ1
ZQorZmFsc2UgLSBmYWxzZQorZmFsc2UgLSBmYWxzZQorZmFsc2UgLSBmYWxzZQorZmFsc2UgLSBm
YWxzZQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2h0bWwvZHJhZ2dhYmxlLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9odG1sL2RyYWdnYWJsZS5odG1sCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9odG1sL2RyYWdnYWJsZS5odG1sCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDkxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+
SFRNTDUgRHJhZ2dhYmxlPC90aXRsZT4KKzxzdHlsZT4KKworW2RyYWdnYWJsZT0idHJ1ZSJdIHsK
KyAgICBvdXRsaW5lOiAxcHggc29saWQgbGltZTsKK30KKworW2RyYWdnYWJsZT0iZmFsc2UiXSB7
CisgICAgb3V0bGluZTogMXB4IHNvbGlkIHBpbms7Cit9CisKKzwvc3R5bGU+Cis8c2NyaXB0Pgor
CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB2YXIgZWxlbWVudHMgPSBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKCdib2R5ID4gOm5vdChoMiknKTsKKworICAgIGZvciAodmFyIGkgPSAxNjsgaSA8
IDI0OyBpKyspIHsKKyAgICAgIGVsZW1lbnRzW2ldLmRyYWdnYWJsZSA9IGkgPCAyMDsKKyAgICB9
CisKKyAgICB2YXIgcyA9ICdkb20gLSBhdHRyXG4tLS0tLS0tLS0tXG4nOworICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgcyArPSBlbGVtZW50
c1tpXS5kcmFnZ2FibGUgKyAnIC0gJyArIGVsZW1lbnRzW2ldLmdldEF0dHJpYnV0ZSgnZHJhZ2dh
YmxlJykgKyAnXG4nOworICAgIH0KKworICAgIHZhciBwcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdwcmUnKTsKKyAgICBwcmUudGV4dENvbnRlbnQgPSBzOworICAgIGRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQocHJlKTsKKyAgICAKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7ICAgIAorfTsK
KworZG9jdW1lbnQub25kcmFnc3RhcnQgPSBmdW5jdGlvbihlKQoreworICAgIGUuZGF0YVRyYW5z
ZmVyLnNldERhdGEoJ1RleHQnLCBlLnRhcmdldC50ZXh0Q29udGVudCB8fCBlLnRhcmdldC5zcmMg
fHwgZS50YXJnZXQuaHJlZik7Cit9OworCis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0idGVzdCgpIj4KKworPGgyPkludHJpbnNpYzwvaDI+CisKKzxpbWcgc3JjPSJyZXNvdXJjZXMv
aW1hZ2VzL2xpbWUucG5nIj4KKzxhIGhyZWY9Imh0dHA6Ly93ZWJna2l0Lm9yZyI+d2Via2l0Lm9y
ZzwvYT4KKzxhPiZsdDthIG5vIGhyZWYmZ3Q7PC9hPgorPHNwYW4+Jmx0O3NwYW4mZ3Q7PC9zcGFu
PgorCis8aDI+ZHJhZ2dhYmxlIGF0dHIgc2V0IHRvIHRydWU8L2gyPgorCis8aW1nIHNyYz0icmVz
b3VyY2VzL2ltYWdlcy9saW1lLnBuZyIgZHJhZ2dhYmxlPSJ0cnVlIj4KKzxhIGhyZWY9Imh0dHA6
Ly93ZWJna2l0Lm9yZyIgZHJhZ2dhYmxlPSJ0cnVlIj53ZWJraXQub3JnPC9hPgorPGEgZHJhZ2dh
YmxlPSJ0cnVlIj4mbHQ7YSBubyBocmVmJmd0OzwvYT4KKzxzcGFuIGRyYWdnYWJsZT0idHJ1ZSI+
Jmx0O3NwYW4mZ3Q7PC9zcGFuPgorCis8aDI+ZHJhZ2dhYmxlIGF0dHIgc2V0IHRvIGZhbHNlPC9o
Mj4KKworPGltZyBzcmM9InJlc291cmNlcy9pbWFnZXMvbGltZS5wbmciIGRyYWdnYWJsZT0iZmFs
c2UiPgorPGEgaHJlZj0iaHR0cDovL3dlYmdraXQub3JnIiBkcmFnZ2FibGU9ImZhbHNlIj53ZWJr
aXQub3JnPC9hPgorPGEgZHJhZ2dhYmxlPSJmYWxzZSI+Jmx0O2Egbm8gaHJlZiZndDs8L2E+Cis8
c3BhbiBkcmFnZ2FibGU9ImZhbHNlIj4mbHQ7c3BhbiZndDs8L3NwYW4+CisKKzxoMj5kcmFnZ2Fi
bGUgYXR0ciBzZXQgdG8gbWF5YmU8L2gyPgorCis8aW1nIHNyYz0icmVzb3VyY2VzL2ltYWdlcy9s
aW1lLnBuZyIgZHJhZ2dhYmxlPSJtYXliZSI+Cis8YSBocmVmPSJodHRwOi8vd2ViZ2tpdC5vcmci
IGRyYWdnYWJsZT0ibWF5YmUiPndlYmtpdC5vcmc8L2E+Cis8YSBkcmFnZ2FibGU9Im1heWJlIj4m
bHQ7YSBubyBocmVmJmd0OzwvYT4KKzxzcGFuIGRyYWdnYWJsZT0ibWF5YmUiPiZsdDtzcGFuJmd0
Ozwvc3Bhbj4KKworPGgyPmRyYWdnYWJsZSBkb20gcHJvcCBzZXQgdG8gdHJ1ZTwvaDI+CisKKzxp
bWcgc3JjPSJyZXNvdXJjZXMvaW1hZ2VzL2xpbWUucG5nIj4KKzxhIGhyZWY9Imh0dHA6Ly93ZWJn
a2l0Lm9yZyI+d2Via2l0Lm9yZzwvYT4KKzxhPiZsdDthIG5vIGhyZWYmZ3Q7PC9hPgorPHNwYW4+
Jmx0O3NwYW4mZ3Q7PC9zcGFuPgorCis8aDI+ZHJhZ2dhYmxlIGRvbSBwcm9wIHNldCB0byBmYWxz
ZTwvaDI+CisKKzxpbWcgc3JjPSJyZXNvdXJjZXMvaW1hZ2VzL2xpbWUucG5nIj4KKzxhIGhyZWY9
Imh0dHA6Ly93ZWJna2l0Lm9yZyI+d2Via2l0Lm9yZzwvYT4KKzxhPiZsdDthIG5vIGhyZWYmZ3Q7
PC9hPgorPHNwYW4+Jmx0O3NwYW4mZ3Q7PC9zcGFuPgorCis8L2JvZHk+Cis8L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2h0bWwvcmVzb3VyY2VzL2ltYWdlcy9saW1lLnBuZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWlt
ZS10eXBlID0gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBM
YXlvdXRUZXN0cy9mYXN0L2h0bWwvcmVzb3VyY2VzL2ltYWdlcy9saW1lLnBuZwpfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Ck5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KCgppVkJP
UncwS0dnb0FBQUFOU1VoRVVnQUFBRElBQUFBeUNBTUFBQUFwNFhpREFBQUFBMUJNVkVVQS93QTBY
c0NvQUFBQUdFbEVRVlI0Clh1M0FBUUVBQUFDQ29QNnZib2l3QUFBQURnbjJBQUgzWHlQc0FBQUFB
RWxGVGtTdVFtQ0MKCg==
</data>
<flag name="review"
          id="16746"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32327</attachid>
            <date>2009-07-06 14:32:27 -0700</date>
            <delta_ts>2009-07-06 14:37:51 -0700</delta_ts>
            <desc>Style nits fixed</desc>
            <filename>draggable.patch</filename>
            <type>text/plain</type>
            <size>11344</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NTUxNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMDktMDctMDIgIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
bXBsZW1lbnQgSFRNTDUgZHJhZ2dhYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yNjI2MgorCisgICAgICAgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciB0
aGUgSFRNTDUgZHJhZ2dhYmxlIGF0dHJpYnV0ZSBhbmQgaXRzIERPTSBiaW5kaW5nLiBJdCBtYXBz
IHRoZSBkcmFnZ2FibGUgcHJvcGVydHkKKyAgICAgICAgdG8gdGhlIENTUyBwcm9wZXJ0aWVzIC13
ZWJraXQtdXNlci1kcmFnIGFuZCAtd2Via2l0LXVzZXItc2VsZWN0IHJlc3BlY3RpdmVseS4KKwor
ICAgICAgICBTcGVjOiBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVu
dC13b3JrL211bHRpcGFnZS9lZGl0aW5nLmh0bWwjdGhlLWRyYWdnYWJsZS1hdHRyaWJ1dGUKKwor
ICAgICAgICBUZXN0OiBmYXN0L2h0bWwvZHJhZ2dhYmxlLmh0bWwKKworICAgICAgICAqIGNzcy9o
dG1sLmNzczoKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxBbmNob3JFbGVtZW50OjpkcmFnZ2FibGUpOgorICAgICAgICAqIGh0bWwv
SFRNTEFuY2hvckVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5p
bjoKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxFbGVtZW50OjpkcmFnZ2FibGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OnNl
dERyYWdnYWJsZSk6CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5oOgorICAgICAgICAqIGh0
bWwvSFRNTEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpkcmFnZ2FibGUpOgorICAgICAg
ICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5oOgorCiAyMDA5LTA3LTAyICBSb2xhbmQgU3RlaW5l
ciAgPHJvbGFuZHN0ZWluZXJAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmlj
IFNlaWRlbC4KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAkocmV2aXNpb24gNDU0
ODYpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zNTAsNiArMzUwLDE3IEBAIHZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OnNldENvb3Jkcyhj
b25zdCAKICAgICBzZXRBdHRyaWJ1dGUoY29vcmRzQXR0ciwgdmFsdWUpOwogfQogCitib29sIEhU
TUxBbmNob3JFbGVtZW50OjpkcmFnZ2FibGUoKSBjb25zdAoreworICAgIC8vIFNob3VsZCBiZSBk
cmFnZ2FibGUgaWYgd2UgaGF2ZSBhbiBocmVmIGF0dHJpYnV0ZS4KKyAgICBjb25zdCBBdG9taWNT
dHJpbmcmIHZhbHVlID0gZ2V0QXR0cmlidXRlKGRyYWdnYWJsZUF0dHIpOworICAgIGlmIChlcXVh
bElnbm9yaW5nQ2FzZSh2YWx1ZSwgInRydWUiKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
aWYgKGVxdWFsSWdub3JpbmdDYXNlKHZhbHVlLCAiZmFsc2UiKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIHJldHVybiBoYXNBdHRyaWJ1dGUoaHJlZkF0dHIpOworfQorCiBLVVJMIEhUTUxB
bmNob3JFbGVtZW50OjpocmVmKCkgY29uc3QKIHsKICAgICByZXR1cm4gZG9jdW1lbnQoKS0+Y29t
cGxldGVVUkwoZ2V0QXR0cmlidXRlKGhyZWZBdHRyKSk7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRN
TEFuY2hvckVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVs
ZW1lbnQuaAkocmV2aXNpb24gNDU0ODYpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1l
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTgsNiArNTgsOCBAQCBwdWJsaWM6CiAgICAgY29uc3Qg
QXRvbWljU3RyaW5nJiBjb29yZHMoKSBjb25zdDsKICAgICB2b2lkIHNldENvb3Jkcyhjb25zdCBB
dG9taWNTdHJpbmcmKTsKIAorICAgIHZpcnR1YWwgYm9vbCBkcmFnZ2FibGUoKSBjb25zdDsKKwog
ICAgIEtVUkwgaHJlZigpIGNvbnN0OwogICAgIHZvaWQgc2V0SHJlZihjb25zdCBBdG9taWNTdHJp
bmcmKTsKIApJbmRleDogV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCShyZXZpc2lvbiA0NTQ4
NikKKysrIFdlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4JKHdvcmtpbmcgY29weSkK
QEAgLTY5LDYgKzY5LDcgQEAgZGVmZXIKIGRpcgogZGlyZWN0aW9uCiBkaXNhYmxlZAorZHJhZ2dh
YmxlCiBlbmN0eXBlCiBlbmQKIGV4cGFuZGVkCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJKHJldmlz
aW9uIDQ1NDg2KQorKysgV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTQzLDYgKzE0MywxMyBAQCB2b2lkIEhUTUxFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJp
YnV0ZShNCiAgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gZGlyQXR0cikgewogICAgICAg
ICBhZGRDU1NQcm9wZXJ0eShhdHRyLCBDU1NQcm9wZXJ0eURpcmVjdGlvbiwgYXR0ci0+dmFsdWUo
KSk7CiAgICAgICAgIGFkZENTU1Byb3BlcnR5KGF0dHIsIENTU1Byb3BlcnR5VW5pY29kZUJpZGks
IGhhc0xvY2FsTmFtZShiZG9UYWcpID8gQ1NTVmFsdWVCaWRpT3ZlcnJpZGUgOiBDU1NWYWx1ZUVt
YmVkKTsKKyAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBkcmFnZ2FibGVBdHRyKSB7Cisg
ICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUgPSBhdHRyLT52YWx1ZSgpOworICAgICAg
ICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UodmFsdWUsICJ0cnVlIikpIHsKKyAgICAgICAgICAgIGFk
ZENTU1Byb3BlcnR5KGF0dHIsIENTU1Byb3BlcnR5V2Via2l0VXNlckRyYWcsIENTU1ZhbHVlRWxl
bWVudCk7CisgICAgICAgICAgICBhZGRDU1NQcm9wZXJ0eShhdHRyLCBDU1NQcm9wZXJ0eVdlYmtp
dFVzZXJTZWxlY3QsIENTU1ZhbHVlTm9uZSk7CisgICAgICAgIH0gZWxzZSBpZiAoZXF1YWxJZ25v
cmluZ0Nhc2UodmFsdWUsICJmYWxzZSIpKQorICAgICAgICAgICAgYWRkQ1NTUHJvcGVydHkoYXR0
ciwgQ1NTUHJvcGVydHlXZWJraXRVc2VyRHJhZywgQ1NTVmFsdWVOb25lKTsKICAgICB9CiAvLyBz
dGFuZGFyZCBldmVudHMKICAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gb25jbGlja0F0dHIp
IHsKQEAgLTY5Miw2ICs2OTksMTYgQEAgdm9pZCBIVE1MRWxlbWVudDo6c2V0Q29udGVudEVkaXRh
YmxlKGNvbgogICAgICAgICBzZXRBdHRyaWJ1dGUoY29udGVudGVkaXRhYmxlQXR0ciwgZW5hYmxl
ZC5pc0VtcHR5KCkgPyAidHJ1ZSIgOiBlbmFibGVkKTsKIH0KIAorYm9vbCBIVE1MRWxlbWVudDo6
ZHJhZ2dhYmxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZXF1YWxJZ25vcmluZ0Nhc2UoZ2V0QXR0
cmlidXRlKGRyYWdnYWJsZUF0dHIpLCAidHJ1ZSIpOworfQorCit2b2lkIEhUTUxFbGVtZW50Ojpz
ZXREcmFnZ2FibGUoYm9vbCB2YWx1ZSkKK3sKKyAgICBzZXRBdHRyaWJ1dGUoZHJhZ2dhYmxlQXR0
ciwgdmFsdWUgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKK30KKwogdm9pZCBIVE1MRWxlbWVudDo6Y2xp
Y2soKQogewogICAgIGRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soMCwgZmFsc2UsIGZhbHNlKTsKSW5k
ZXg6IFdlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRt
bC9IVE1MRWxlbWVudC5oCShyZXZpc2lvbiA0NTQ4NikKKysrIFdlYkNvcmUvaHRtbC9IVE1MRWxl
bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC03OSw2ICs3OSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgc2V0Q29udGVudEVkaXRhYmxlKE1hcHBlZEF0dHJpYnV0ZSopOwogICAgIHZpcnR1
YWwgdm9pZCBzZXRDb250ZW50RWRpdGFibGUoY29uc3QgU3RyaW5nJik7CiAKKyAgICB2aXJ0dWFs
IGJvb2wgZHJhZ2dhYmxlKCkgY29uc3Q7CisgICAgdm9pZCBzZXREcmFnZ2FibGUoYm9vbCk7CisK
ICAgICB2b2lkIGNsaWNrKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJv
b2wgc2VuZFRvQW55RWxlbWVudCk7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaWRs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5pZGwJKHJldmlzaW9uIDQ1
NDg2KQorKysgV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAt
MzYsNiArMzYsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBb
Q29udmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3Q9Y2xhc3NdIERPTVN0cmluZyBjbGFzc05h
bWU7CiAKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGxvbmcgICAgICAgICAgICB0YWJJbmRl
eDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICBkcmFnZ2FibGU7
CiAKICAgICAgICAgLy8gRXh0ZW5zaW9ucwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0Nv
bnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgaW5uZXJIVE1MCkluZGV4OiBXZWJDb3Jl
L2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hU
TUxJbWFnZUVsZW1lbnQuY3BwCShyZXZpc2lvbiA0NTQ4NikKKysrIFdlYkNvcmUvaHRtbC9IVE1M
SW1hZ2VFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzE5LDYgKzMxOSwxMiBAQCB2b2lk
IEhUTUxJbWFnZUVsZW1lbnQ6OnNldEJvcmRlcihjb25zdCBTCiAgICAgc2V0QXR0cmlidXRlKGJv
cmRlckF0dHIsIHZhbHVlKTsKIH0KIAorYm9vbCBIVE1MSW1hZ2VFbGVtZW50OjpkcmFnZ2FibGUo
KSBjb25zdAoreworICAgIC8vIEltYWdlIGVsZW1lbnRzIGFyZSBkcmFnZ2FibGUgYnkgZGVmYXVs
dC4KKyAgICByZXR1cm4gIWVxdWFsSWdub3JpbmdDYXNlKGdldEF0dHJpYnV0ZShkcmFnZ2FibGVB
dHRyKSwgImZhbHNlIik7Cit9CisKIHZvaWQgSFRNTEltYWdlRWxlbWVudDo6c2V0SGVpZ2h0KGlu
dCB2YWx1ZSkKIHsKICAgICBzZXRBdHRyaWJ1dGUoaGVpZ2h0QXR0ciwgU3RyaW5nOjpudW1iZXIo
dmFsdWUpKTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaAkocmV2aXNpb24gNDU0ODYpCisr
KyBXZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC04MSw2
ICs4MSw4IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgYm9yZGVyKCkgY29uc3Q7CiAgICAgdm9pZCBz
ZXRCb3JkZXIoY29uc3QgU3RyaW5nJik7CiAKKyAgICB2aXJ0dWFsIGJvb2wgZHJhZ2dhYmxlKCkg
Y29uc3Q7CisKICAgICB2b2lkIHNldEhlaWdodChpbnQpOwogCiAgICAgaW50IGhzcGFjZSgpIGNv
bnN0OwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNDU1MTcpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAorMjAwOS0wNy0wMiAgRXJpayBBcnZpZHNz
b24gIDxhcnZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEltcGxlbWVudCBIVE1MNSBkcmFnZ2FibGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2MjYyCisKKyAgICAgICAgVGhpcyBh
ZGRzIHN1cHBvcnQgZm9yIHRoZSBIVE1MNSBkcmFnZ2FibGUgYXR0cmlidXRlIGFuZCBpdHMgRE9N
IGJpbmRpbmcuIEl0IG1hcHMgdGhlIGRyYWdnYWJsZSBwcm9wZXJ0eQorICAgICAgICB0byB0aGUg
Q1NTIHByb3BlcnRpZXMgLXdlYmtpdC11c2VyLWRyYWcgYW5kIC13ZWJraXQtdXNlci1zZWxlY3Qg
cmVzcGVjdGl2ZWx5LgorCisgICAgICAgIFNwZWM6IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVj
cy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL2VkaXRpbmcuaHRtbCN0aGUtZHJhZ2dh
YmxlLWF0dHJpYnV0ZQorCisgICAgICAgICogZmFzdC9odG1sL2RyYWdnYWJsZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaHRtbC9kcmFnZ2FibGUuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9odG1sL3Jlc291cmNlczogQWRkZWQuCisgICAgICAgICogZmFzdC9odG1s
L3Jlc291cmNlcy9pbWFnZXM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaHRtbC9yZXNvdXJjZXMv
aW1hZ2VzL2xpbWUucG5nOiBBZGRlZC4KKwogMjAwOS0wNy0wMiAgUGllcnJlIGQnSGVyYmVtb250
ICA8cGRoZXJiZW1vbnRAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZGVkIHRoZSB0ZXN0IHJlc3Vs
dCBvZiByNDU1MTEgZm9yIHBsYXRmb3JtL21hYy4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvaHRt
bC9kcmFnZ2FibGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
aHRtbC9kcmFnZ2FibGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9odG1sL2RyYWdnYWJsZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NDUgQEAKK0ludHJpbnNpYworCisgd2Via2l0Lm9yZyA8YSBubyBocmVmPiA8c3Bhbj4KK2RyYWdn
YWJsZSBhdHRyIHNldCB0byB0cnVlCisKKyB3ZWJraXQub3JnIDxhIG5vIGhyZWY+IDxzcGFuPgor
ZHJhZ2dhYmxlIGF0dHIgc2V0IHRvIGZhbHNlCisKKyB3ZWJraXQub3JnIDxhIG5vIGhyZWY+IDxz
cGFuPgorZHJhZ2dhYmxlIGF0dHIgc2V0IHRvIG1heWJlCisKKyB3ZWJraXQub3JnIDxhIG5vIGhy
ZWY+IDxzcGFuPgorZHJhZ2dhYmxlIGRvbSBwcm9wIHNldCB0byB0cnVlCisKKyB3ZWJraXQub3Jn
IDxhIG5vIGhyZWY+IDxzcGFuPgorZHJhZ2dhYmxlIGRvbSBwcm9wIHNldCB0byBmYWxzZQorCisg
d2Via2l0Lm9yZyA8YSBubyBocmVmPiA8c3Bhbj4KK2RvbSAtIGF0dHIKKy0tLS0tLS0tLS0KK3Ry
dWUgLSBudWxsCit0cnVlIC0gbnVsbAorZmFsc2UgLSBudWxsCitmYWxzZSAtIG51bGwKK3RydWUg
LSB0cnVlCit0cnVlIC0gdHJ1ZQordHJ1ZSAtIHRydWUKK3RydWUgLSB0cnVlCitmYWxzZSAtIGZh
bHNlCitmYWxzZSAtIGZhbHNlCitmYWxzZSAtIGZhbHNlCitmYWxzZSAtIGZhbHNlCit0cnVlIC0g
bWF5YmUKK3RydWUgLSBtYXliZQorZmFsc2UgLSBtYXliZQorZmFsc2UgLSBtYXliZQordHJ1ZSAt
IHRydWUKK3RydWUgLSB0cnVlCit0cnVlIC0gdHJ1ZQordHJ1ZSAtIHRydWUKK2ZhbHNlIC0gZmFs
c2UKK2ZhbHNlIC0gZmFsc2UKK2ZhbHNlIC0gZmFsc2UKK2ZhbHNlIC0gZmFsc2UKKwpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9odG1sL2RyYWdnYWJsZS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvaHRtbC9kcmFnZ2FibGUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2Zhc3QvaHRtbC9kcmFnZ2FibGUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5MSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPkhUTUw1IERyYWdnYWJs
ZTwvdGl0bGU+Cis8c3R5bGU+CisKK1tkcmFnZ2FibGU9InRydWUiXSB7CisgICAgb3V0bGluZTog
MXB4IHNvbGlkIGxpbWU7Cit9CisKK1tkcmFnZ2FibGU9ImZhbHNlIl0geworICAgIG91dGxpbmU6
IDFweCBzb2xpZCBwaW5rOworfQorCis8L3N0eWxlPgorPHNjcmlwdD4KKworZnVuY3Rpb24gdGVz
dCgpCit7CisgICAgdmFyIGVsZW1lbnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYm9k
eSA+IDpub3QoaDIpJyk7CisKKyAgICBmb3IgKHZhciBpID0gMTY7IGkgPCAyNDsgaSsrKSB7Cisg
ICAgICAgIGVsZW1lbnRzW2ldLmRyYWdnYWJsZSA9IGkgPCAyMDsKKyAgICB9CisKKyAgICB2YXIg
cyA9ICdkb20gLSBhdHRyXG4tLS0tLS0tLS0tXG4nOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
ZWxlbWVudHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgcyArPSBlbGVtZW50c1tpXS5kcmFnZ2Fi
bGUgKyAnIC0gJyArIGVsZW1lbnRzW2ldLmdldEF0dHJpYnV0ZSgnZHJhZ2dhYmxlJykgKyAnXG4n
OworICAgIH0KKworICAgIHZhciBwcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwcmUnKTsK
KyAgICBwcmUudGV4dENvbnRlbnQgPSBzOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
cHJlKTsKKyAgICAKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7ICAgIAorfTsKKworZG9jdW1lbnQu
b25kcmFnc3RhcnQgPSBmdW5jdGlvbihlKQoreworICAgIGUuZGF0YVRyYW5zZmVyLnNldERhdGEo
J1RleHQnLCBlLnRhcmdldC50ZXh0Q29udGVudCB8fCBlLnRhcmdldC5zcmMgfHwgZS50YXJnZXQu
aHJlZik7Cit9OworCis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4K
KworPGgyPkludHJpbnNpYzwvaDI+CisKKzxpbWcgc3JjPSJyZXNvdXJjZXMvaW1hZ2VzL2xpbWUu
cG5nIj4KKzxhIGhyZWY9Imh0dHA6Ly93ZWJna2l0Lm9yZyI+d2Via2l0Lm9yZzwvYT4KKzxhPiZs
dDthIG5vIGhyZWYmZ3Q7PC9hPgorPHNwYW4+Jmx0O3NwYW4mZ3Q7PC9zcGFuPgorCis8aDI+ZHJh
Z2dhYmxlIGF0dHIgc2V0IHRvIHRydWU8L2gyPgorCis8aW1nIHNyYz0icmVzb3VyY2VzL2ltYWdl
cy9saW1lLnBuZyIgZHJhZ2dhYmxlPSJ0cnVlIj4KKzxhIGhyZWY9Imh0dHA6Ly93ZWJna2l0Lm9y
ZyIgZHJhZ2dhYmxlPSJ0cnVlIj53ZWJraXQub3JnPC9hPgorPGEgZHJhZ2dhYmxlPSJ0cnVlIj4m
bHQ7YSBubyBocmVmJmd0OzwvYT4KKzxzcGFuIGRyYWdnYWJsZT0idHJ1ZSI+Jmx0O3NwYW4mZ3Q7
PC9zcGFuPgorCis8aDI+ZHJhZ2dhYmxlIGF0dHIgc2V0IHRvIGZhbHNlPC9oMj4KKworPGltZyBz
cmM9InJlc291cmNlcy9pbWFnZXMvbGltZS5wbmciIGRyYWdnYWJsZT0iZmFsc2UiPgorPGEgaHJl
Zj0iaHR0cDovL3dlYmdraXQub3JnIiBkcmFnZ2FibGU9ImZhbHNlIj53ZWJraXQub3JnPC9hPgor
PGEgZHJhZ2dhYmxlPSJmYWxzZSI+Jmx0O2Egbm8gaHJlZiZndDs8L2E+Cis8c3BhbiBkcmFnZ2Fi
bGU9ImZhbHNlIj4mbHQ7c3BhbiZndDs8L3NwYW4+CisKKzxoMj5kcmFnZ2FibGUgYXR0ciBzZXQg
dG8gbWF5YmU8L2gyPgorCis8aW1nIHNyYz0icmVzb3VyY2VzL2ltYWdlcy9saW1lLnBuZyIgZHJh
Z2dhYmxlPSJtYXliZSI+Cis8YSBocmVmPSJodHRwOi8vd2ViZ2tpdC5vcmciIGRyYWdnYWJsZT0i
bWF5YmUiPndlYmtpdC5vcmc8L2E+Cis8YSBkcmFnZ2FibGU9Im1heWJlIj4mbHQ7YSBubyBocmVm
Jmd0OzwvYT4KKzxzcGFuIGRyYWdnYWJsZT0ibWF5YmUiPiZsdDtzcGFuJmd0Ozwvc3Bhbj4KKwor
PGgyPmRyYWdnYWJsZSBkb20gcHJvcCBzZXQgdG8gdHJ1ZTwvaDI+CisKKzxpbWcgc3JjPSJyZXNv
dXJjZXMvaW1hZ2VzL2xpbWUucG5nIj4KKzxhIGhyZWY9Imh0dHA6Ly93ZWJna2l0Lm9yZyI+d2Vi
a2l0Lm9yZzwvYT4KKzxhPiZsdDthIG5vIGhyZWYmZ3Q7PC9hPgorPHNwYW4+Jmx0O3NwYW4mZ3Q7
PC9zcGFuPgorCis8aDI+ZHJhZ2dhYmxlIGRvbSBwcm9wIHNldCB0byBmYWxzZTwvaDI+CisKKzxp
bWcgc3JjPSJyZXNvdXJjZXMvaW1hZ2VzL2xpbWUucG5nIj4KKzxhIGhyZWY9Imh0dHA6Ly93ZWJn
a2l0Lm9yZyI+d2Via2l0Lm9yZzwvYT4KKzxhPiZsdDthIG5vIGhyZWYmZ3Q7PC9hPgorPHNwYW4+
Jmx0O3NwYW4mZ3Q7PC9zcGFuPgorCis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2h0bWwvcmVzb3VyY2VzL2ltYWdlcy9saW1lLnBuZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBk
aXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gYXBw
bGljYXRpb24vb2N0ZXQtc3RyZWFtCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9m
YXN0L2h0bWwvcmVzb3VyY2VzL2ltYWdlcy9saW1lLnBuZwpfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjpt
aW1lLXR5cGUKICAgKyBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KCgppVkJPUncwS0dnb0FBQUFO
U1VoRVVnQUFBRElBQUFBeUNBTUFBQUFwNFhpREFBQUFBMUJNVkVVQS93QTBYc0NvQUFBQUdFbEVR
VlI0Clh1M0FBUUVBQUFDQ29QNnZib2l3QUFBQURnbjJBQUgzWHlQc0FBQUFBRWxGVGtTdVFtQ0MK
Cg==
</data>
<flag name="review"
          id="16789"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>