<?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>28899</bug_id>
          
          <creation_ts>2009-09-01 17:30:53 -0700</creation_ts>
          <short_desc>WebKit should broadcast an MSAA event when jumping to a named anchor</short_desc>
          <delta_ts>2009-09-14 14:28:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Honeycutt">jhoneycutt</reporter>
          <assigned_to name="Jon Honeycutt">jhoneycutt</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>144069</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2009-09-01 17:30:53 -0700</bug_when>
    <thetext>Firefox broadcasts an EVENT_SYSTEM_SCROLLINGSTART event when jumping to a named anchor. WebKit should also broadcast this event.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144678</commentid>
    <comment_count>1</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2009-09-03 20:02:49 -0700</bug_when>
    <thetext>&lt;rdar://problem/7197644&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146892</commentid>
    <comment_count>2</comment_count>
      <attachid>39504</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2009-09-11 21:42:10 -0700</bug_when>
    <thetext>Created attachment 39504
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146893</commentid>
    <comment_count>3</comment_count>
      <attachid>39505</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2009-09-11 21:42:40 -0700</bug_when>
    <thetext>Created attachment 39505
DRT changes, layout test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147041</commentid>
    <comment_count>4</comment_count>
      <attachid>39504</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-09-14 06:31:10 -0700</bug_when>
    <thetext>Comment on attachment 39504
patch

&gt; +    DWORD msaaEvent;
&gt; +    switch (notification) {
&gt; +        case AXFocusedUIElementChanged:
&gt; +            msaaEvent = EVENT_OBJECT_FOCUS;
&gt; +            break;
&gt; +
&gt; +        case AXScrolledToAnchor:
&gt; +            msaaEvent = EVENT_SYSTEM_SCROLLINGSTART;
&gt; +            break;
&gt; +
&gt; +        default:
&gt; +            return;
&gt; +    }

It might be clearer to use a HashMap, though it probably doesn&apos;t matter as long as we only have two events we care about.

&gt; +    // Windows will end up calling get_accChild() on the root accessible
&gt; +    // object for the WebView, passing the child ID that we specify below. We
&gt; +    // negate the AXID so we know that the caller is passing the ID of an
&gt; +    // element, not the index of a child element.
&gt; +
&gt; +    ASSERT(obj-&gt;axObjectID() &gt;= 1 &amp;&amp; obj-&gt;axObjectID() &lt;= numeric_limits&lt;LONG&gt;::max());

You should split this up into two assertions.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147042</commentid>
    <comment_count>5</comment_count>
      <attachid>39505</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-09-14 06:33:45 -0700</bug_when>
    <thetext>Comment on attachment 39505
DRT changes, layout test

This patch looks fine, but your new test and result are missing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147140</commentid>
    <comment_count>6</comment_count>
      <attachid>39565</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2009-09-14 12:49:26 -0700</bug_when>
    <thetext>Created attachment 39565
DRT changes, layout test

Whoops! Added the test and result.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147141</commentid>
    <comment_count>7</comment_count>
      <attachid>39565</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-09-14 12:53:35 -0700</bug_when>
    <thetext>Comment on attachment 39565
DRT changes, layout test

&gt; +            function test()
&gt; +            {
&gt; +                if (window.layoutTestController)
&gt; +                    document.getElementById(&quot;notDRT&quot;).style.visibility = &quot;hidden&quot;;
&gt; +
&gt; +                accessibilityController.logScrollingStartEvents();
&gt; +                layoutTestController.waitUntilDone();
&gt; +                layoutTestController.dumpAsText();
&gt; +                setTimeout(scrollToAnchor, 0);
&gt; +            }
&gt; +
&gt; +            function scrollToAnchor()
&gt; +            {
&gt; +                if (window.eventSender) {
&gt; +                    var input = document.getElementById(&apos;ANCHORLINK&apos;);
&gt; +                    var x = input.offsetLeft;
&gt; +                    var y = input.offsetTop;
&gt; +                    eventSender.mouseMoveTo(x, y);
&gt; +                    eventSender.mouseDown();
&gt; +                    eventSender.mouseUp();
&gt; +                }
&gt; +
&gt; +                layoutTestController.notifyDone();
&gt; +            }

This will throw a bunch of JS exceptions when window.layoutTestController or window.accessibilityController don&apos;t exist.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147154</commentid>
    <comment_count>8</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2009-09-14 13:13:40 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 39565 [details])
&gt; 
&gt; This will throw a bunch of JS exceptions when window.layoutTestController or
&gt; window.accessibilityController don&apos;t exist.

I changed test() to return early in this case.

&gt; 
&gt; r=me

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147189</commentid>
    <comment_count>9</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2009-09-14 14:28:15 -0700</bug_when>
    <thetext>Committed r48367, r48368.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39504</attachid>
            <date>2009-09-11 21:42:10 -0700</date>
            <delta_ts>2009-09-14 06:31:09 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-rdar-problem-7197644-WebKit-should-broadcast-an-MSAA.patch</filename>
            <type>text/plain</type>
            <size>15748</size>
            <attacher name="Jon Honeycutt">jhoneycutt</attacher>
            
              <data encoding="base64">RnJvbSA2M2QwNTI4OWZjM2Q3Mjg4MTdiM2I4MzE3ODdmNzQ3MjczY2Q4YjdiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gSG9uZXljdXR0IDxqaG9uZXljdXR0QGFwcGxlLmNvbT4K
RGF0ZTogRnJpLCAxMSBTZXAgMjAwOSAyMDozNToyOSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMS8y
XSA8cmRhcjovL3Byb2JsZW0vNzE5NzY0ND4gV2ViS2l0IHNob3VsZCBicm9hZGNhc3QgYW4gTVNB
QSBldmVudCB3aGVuCiBqdW1waW5nIHRvIGEgbmFtZWQgYW5jaG9yCgpodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg4OTkKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgoKKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6Oik6CkFkZGVkIGRlY2xhcmF0aW9uIGZvciBoYW5kbGVTY3JvbGxlZFRvQW5jaG9yKCkuIEFk
ZGVkIGEgbmV3IGVudHJ5IHRvCnRoZSBlbnVtIG9mIGFjY2Vzc2liaWxpdHkgbm90aWZpY2F0aW9u
cy4KCiogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlPYmplY3Q6OmZpcnN0QWNjZXNzaWJsZU9iamVjdEZyb21Ob2RlKToKQ29kZSBt
b3ZlZCBmcm9tIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmludGVybmFsTGlua0VsZW1lbnQo
KSBhbmQKcmVmYWN0b3JlZCBzbGlnaHRseTsgd2Fsa3MgdGhlIHRyZWUgdW50aWwgaXQgZmluZHMg
YSBOb2RlICh3aXRoIGEKcmVuZGVyZXIpIHdob3NlIGFjY2Vzc2liaWxpdHkgaXMgbm90IGlnbm9y
ZWQuCgoqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgpBZGRlZCBhIGRlY2xh
cmF0aW9uIGZvciBmaXJzdEFjY2Vzc2libGVPYmplY3RGcm9tTm9kZSgpLgoKKiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6aW50ZXJuYWxMaW5rRWxlbWVudCk6CkNvZGUgbW92ZWQgdG8gQWNjZXNz
aWJpbGl0eU9iamVjdDo6Zmlyc3RBY2Nlc3NpYmxlT2JqZWN0RnJvbU5vZGUoKS4KCiogYWNjZXNz
aWJpbGl0eS9jaHJvbWl1bS9BWE9iamVjdENhY2hlQ2hyb21pdW0uY3BwOgooV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6aGFuZGxlU2Nyb2xsZWRUb0FuY2hvcik6ClN0dWJiZWQuCgoqIGFjY2Vzc2li
aWxpdHkvZ3RrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
aGFuZGxlU2Nyb2xsZWRUb0FuY2hvcik6ClN0dWJiZWQuCgoqIGFjY2Vzc2liaWxpdHkvbWFjL0FY
T2JqZWN0Q2FjaGVNYWMubW06CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1O
b3RpZmljYXRpb24pOgpBZGQgYSBkZWZhdWx0IGNhc2UgdGhhdCByZXR1cm5zIGVhcmx5IGZvciBu
b3RpZmljYXRpb25zIHRoYXQgTWFjCmRvZXNuJ3QgaGFuZGxlLgooV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6aGFuZGxlU2Nyb2xsZWRUb0FuY2hvcik6ClN0dWJiZWQuCgoqIGFjY2Vzc2liaWxpdHkv
d2luL0FYT2JqZWN0Q2FjaGVXaW4uY3BwOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6aGFuZGxl
U2Nyb2xsZWRUb0FuY2hvcik6ClBvc3QgYW4gQVhTY3JvbGxlZFRvQW5jaG9yIG5vdGlmaWNhdGlv
biBmb3IgdGhlIGZpcnN0IGFjY2Vzc2libGUgZnJvbQp0aGUgYW5jaG9yIE5vZGUuCihXZWJDb3Jl
OjpBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24pOgpJZiB0aGUgbm90aWZp
Y2F0aW9uIGlzIEFYRm9jdXNlZFVJRWxlbWVudENoYW5nZWQsIGZpcmUgYW4KRVZFTlRfT0JKRUNU
X0ZPQ1VTLiBJZiB0aGUgbm90aWZpY2F0aW9uIGlzIEFYU2Nyb2xsZWRUb0FuY2hvciwgZmlyZQpF
VkVOVF9TWVNURU1fU0NST0xMSU5HU1RBUlQsIG1hdGNoaW5nIEZpcmVmb3guCihXZWJDb3JlOjpB
WE9iamVjdENhY2hlOjpoYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZCk6CkNvZGUgbW92ZWQg
dG8gcG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKCkuCgoqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKFdl
YkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xsVG9BbmNob3IpOgpDYWxsIEFYT2JqZWN0Q2FjaGU6Omhh
bmRsZVNjcm9sbGVkVG9BbmNob3IoKS4KLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgNTcgKysrKysrKysrKysrKysrKysrKysKIFdlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggICAgICAgICAgICAgIHwgICAgNiArKy0K
IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCAgICAgIHwgICAy
OSArKysrKysrKysrCiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5o
ICAgICAgICB8ICAgIDEgKwogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdC5jcHAgICAgfCAgIDE4ICstLS0tLQogLi4uL2Nocm9taXVtL0FYT2JqZWN0Q2FjaGVDaHJv
bWl1bS5jcHAgICAgICAgICAgICAgfCAgICA0ICsrCiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3Rr
L0FYT2JqZWN0Q2FjaGVBdGsuY3BwICAgICB8ICAgIDQgKysKIFdlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSAgICAgIHwgICAgNiArKwogV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L3dpbi9BWE9iamVjdENhY2hlV2luLmNwcCAgICAgfCAgIDQ5ICsrKysrKysrKysrKysr
LS0tCiBXZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgIDMgKwogMTAgZmlsZXMgY2hhbmdlZCwgMTU0IGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9u
cygtKQoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggZWZiYjBiNC4uZWI1Zjk3YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MCBAQAorMjAwOS0wOS0xMSAgSm9uIEhv
bmV5Y3V0dCAgPGpob25leWN1dHRAYXBwbGUuY29tPgorCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS83MTk3NjQ0PiBXZWJLaXQgc2hvdWxkIGJyb2FkY2FzdCBhbiBNU0FBIGV2ZW50IHdoZW4KKyAg
ICAgICAganVtcGluZyB0byBhIG5hbWVkIGFuY2hvcgorCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODg5OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjopOgorICAgICAgICBBZGRlZCBkZWNs
YXJhdGlvbiBmb3IgaGFuZGxlU2Nyb2xsZWRUb0FuY2hvcigpLiBBZGRlZCBhIG5ldyBlbnRyeSB0
bworICAgICAgICB0aGUgZW51bSBvZiBhY2Nlc3NpYmlsaXR5IG5vdGlmaWNhdGlvbnMuCisKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6Zmlyc3RBY2Nlc3NpYmxlT2JqZWN0RnJvbU5v
ZGUpOgorICAgICAgICBDb2RlIG1vdmVkIGZyb20gQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
aW50ZXJuYWxMaW5rRWxlbWVudCgpIGFuZAorICAgICAgICByZWZhY3RvcmVkIHNsaWdodGx5OyB3
YWxrcyB0aGUgdHJlZSB1bnRpbCBpdCBmaW5kcyBhIE5vZGUgKHdpdGggYQorICAgICAgICByZW5k
ZXJlcikgd2hvc2UgYWNjZXNzaWJpbGl0eSBpcyBub3QgaWdub3JlZC4KKworICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgorICAgICAgICBBZGRlZCBhIGRlY2xh
cmF0aW9uIGZvciBmaXJzdEFjY2Vzc2libGVPYmplY3RGcm9tTm9kZSgpLgorCisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmludGVybmFsTGlua0VsZW1lbnQpOgor
ICAgICAgICBDb2RlIG1vdmVkIHRvIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmZpcnN0QWNjZXNzaWJs
ZU9iamVjdEZyb21Ob2RlKCkuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2Nocm9taXVtL0FY
T2JqZWN0Q2FjaGVDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hl
OjpoYW5kbGVTY3JvbGxlZFRvQW5jaG9yKToKKyAgICAgICAgU3R1YmJlZC4KKworICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvZ3RrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6aGFuZGxlU2Nyb2xsZWRUb0FuY2hvcik6CisgICAgICAgIFN0dWJi
ZWQuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9u
KToKKyAgICAgICAgQWRkIGEgZGVmYXVsdCBjYXNlIHRoYXQgcmV0dXJucyBlYXJseSBmb3Igbm90
aWZpY2F0aW9ucyB0aGF0IE1hYworICAgICAgICBkb2Vzbid0IGhhbmRsZS4KKyAgICAgICAgKFdl
YkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGVkVG9BbmNob3IpOgorICAgICAgICBT
dHViYmVkLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS93aW4vQVhPYmplY3RDYWNoZVdpbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxlZFRvQW5j
aG9yKToKKyAgICAgICAgUG9zdCBhbiBBWFNjcm9sbGVkVG9BbmNob3Igbm90aWZpY2F0aW9uIGZv
ciB0aGUgZmlyc3QgYWNjZXNzaWJsZSBmcm9tCisgICAgICAgIHRoZSBhbmNob3IgTm9kZS4KKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbik6
CisgICAgICAgIElmIHRoZSBub3RpZmljYXRpb24gaXMgQVhGb2N1c2VkVUlFbGVtZW50Q2hhbmdl
ZCwgZmlyZSBhbgorICAgICAgICBFVkVOVF9PQkpFQ1RfRk9DVVMuIElmIHRoZSBub3RpZmljYXRp
b24gaXMgQVhTY3JvbGxlZFRvQW5jaG9yLCBmaXJlCisgICAgICAgIEVWRU5UX1NZU1RFTV9TQ1JP
TExJTkdTVEFSVCwgbWF0Y2hpbmcgRmlyZWZveC4KKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OmhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkKToKKyAgICAgICAgQ29kZSBtb3Zl
ZCB0byBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oKS4KKworICAgICAgICAqIHBhZ2UvRnJhbWVW
aWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xsVG9BbmNob3IpOgor
ICAgICAgICBDYWxsIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGVkVG9BbmNob3IoKS4KKwog
MjAwOS0wOS0xMSAgRXJpayBBcnZpZHNzb24gIDxhcnZAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuaCBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
LmgKaW5kZXggNWNkM2ZlNC4uNWE3NWY4NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5oCkBAIC04MSw2ICs4MSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9p
ZCBoYW5kbGVBY3RpdmVEZXNjZW5kYW50Q2hhbmdlZChSZW5kZXJPYmplY3QqKTsKICAgICAgICAg
dm9pZCBoYW5kbGVBcmlhUm9sZUNoYW5nZWQoUmVuZGVyT2JqZWN0Kik7CiAgICAgICAgIHZvaWQg
aGFuZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQoUmVuZGVyT2JqZWN0KiBvbGRGb2N1c2VkUmVu
ZGVyZXIsIFJlbmRlck9iamVjdCogbmV3Rm9jdXNlZFJlbmRlcmVyKTsKKyAgICAgICAgdm9pZCBo
YW5kbGVTY3JvbGxlZFRvQW5jaG9yKGNvbnN0IE5vZGUqIGFuY2hvck5vZGUpOworCiAgICAgICAg
IHN0YXRpYyB2b2lkIGVuYWJsZUFjY2Vzc2liaWxpdHkoKSB7IGdBY2Nlc3NpYmlsaXR5RW5hYmxl
ZCA9IHRydWU7IH0KICAgICAgICAgc3RhdGljIHZvaWQgZW5hYmxlRW5oYW5jZWRVc2VySW50ZXJm
YWNlQWNjZXNzaWJpbGl0eSgpIHsgZ0FjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJbnRlcmZhY2VF
bmFibGVkID0gdHJ1ZTsgfQogICAgICAgICAKQEAgLTEwMyw3ICsxMDUsOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgICAgICBBWExvYWRDb21wbGV0ZSwKICAgICAgICAgICAgIEFYU2Vs
ZWN0ZWRDaGlsZHJlbkNoYW5nZWQsCiAgICAgICAgICAgICBBWFNlbGVjdGVkVGV4dENoYW5nZWQs
Ci0gICAgICAgICAgICBBWFZhbHVlQ2hhbmdlZAorICAgICAgICAgICAgQVhWYWx1ZUNoYW5nZWQs
CisgICAgICAgICAgICBBWFNjcm9sbGVkVG9BbmNob3IsCiAgICAgICAgIH07CiAgICAgICAgIAog
ICAgICAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiwgQVhOb3RpZmljYXRp
b24sIGJvb2wgcG9zdFRvRWxlbWVudCk7CkBAIC0xMzYsNiArMTM5LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24o
UmVuZGVyT2JqZWN0KiwgQVhOb3RpZmljYXRpb24sIGJvb2wgcG9zdFRvRWxlbWVudCkgeyB9CiAg
ICAgaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFj
Y2Vzc2liaWxpdHlPYmplY3QqLCBBWE5vdGlmaWNhdGlvbikgeyB9CiAgICAgaW5saW5lIHZvaWQg
QVhPYmplY3RDYWNoZTo6aGFuZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQoUmVuZGVyT2JqZWN0
KiwgUmVuZGVyT2JqZWN0KikgeyB9CisgICAgaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFu
ZGxlU2Nyb2xsZWRUb0FuY2hvcihjb25zdCBOb2RlKikgeyB9CiAjZW5kaWYKIAogfQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDJmMDdlNWMu
LmQ3MDkzZTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmNwcAorKysgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5jcHAKQEAgLTkwLDYgKzkwLDM1IEBAIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxp
dHlPYmplY3Q6OnBhcmVudE9iamVjdFVuaWdub3JlZCgpIGNvbnN0CiAgICAgcmV0dXJuIHBhcmVu
dDsKIH0KIAorQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eU9iamVjdDo6Zmlyc3RB
Y2Nlc3NpYmxlT2JqZWN0RnJvbU5vZGUoY29uc3QgTm9kZSogbm9kZSkKK3sKKyAgICBBU1NFUlQo
QVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSk7CisKKyAgICBpZiAoIW5vZGUp
CisgICAgICAgIHJldHVybiAwOworCisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbm9kZS0+ZG9j
dW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm4gMDsKKworICAgIEFY
T2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQtPmF4T2JqZWN0Q2FjaGUoKTsKKworICAgIEFj
Y2Vzc2liaWxpdHlPYmplY3QqIGFjY2Vzc2libGVPYmplY3QgPSBjYWNoZS0+Z2V0T3JDcmVhdGUo
bm9kZS0+cmVuZGVyZXIoKSk7CisgICAgd2hpbGUgKGFjY2Vzc2libGVPYmplY3QgJiYgYWNjZXNz
aWJsZU9iamVjdC0+YWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpKSB7CisgICAgICAgIG5vZGUgPSBu
b2RlLT50cmF2ZXJzZU5leHROb2RlKCk7CisKKyAgICAgICAgd2hpbGUgKG5vZGUgJiYgIW5vZGUt
PnJlbmRlcmVyKCkpCisgICAgICAgICAgICBub2RlID0gbm9kZS0+dHJhdmVyc2VOZXh0U2libGlu
ZygpOworCisgICAgICAgIGlmICghbm9kZSkKKyAgICAgICAgICAgIHJldHVybiAwOworCisgICAg
ICAgIGFjY2Vzc2libGVPYmplY3QgPSBjYWNoZS0+Z2V0T3JDcmVhdGUobm9kZS0+cmVuZGVyZXIo
KSk7CisgICAgfQorCisgICAgcmV0dXJuIGFjY2Vzc2libGVPYmplY3Q7Cit9CisKIGJvb2wgQWNj
ZXNzaWJpbGl0eU9iamVjdDo6aXNBUklBSW5wdXQoQWNjZXNzaWJpbGl0eVJvbGUgYXJpYVJvbGUp
CiB7CiAgICAgcmV0dXJuIGFyaWFSb2xlID09IFJhZGlvQnV0dG9uUm9sZSB8fCBhcmlhUm9sZSA9
PSBDaGVja0JveFJvbGUgfHwgYXJpYVJvbGUgPT0gVGV4dEZpZWxkUm9sZTsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDJlMmU2YTMuLjg3NjJmZDgg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgK
KysrIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApAQCAtMzEw
LDYgKzMxMCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBh
cmVudE9iamVjdCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IHBhcmVudE9iamVjdFVuaWdub3JlZCgpIGNvbnN0OwogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0
eU9iamVjdCogcGFyZW50T2JqZWN0SWZFeGlzdHMoKSBjb25zdCB7IHJldHVybiAwOyB9CisgICAg
c3RhdGljIEFjY2Vzc2liaWxpdHlPYmplY3QqIGZpcnN0QWNjZXNzaWJsZU9iamVjdEZyb21Ob2Rl
KGNvbnN0IE5vZGUqKTsKIAogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JzZXJ2
YWJsZU9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIHZvaWQgbGlua2Vk
VUlFbGVtZW50cyhBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKSBjb25zdCB7IH0KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cCBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApp
bmRleCBkMTllODU0Li4wZTVmNzY4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0xMTM4LDIyICsxMTM4LDEwIEBAIEFj
Y2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmludGVybmFsTGlu
a0VsZW1lbnQoKSBjb25zdAogICAgIGlmICghbGlua2VkTm9kZSkKICAgICAgICAgcmV0dXJuIDA7
CiAgICAgCi0gICAgLy8gdGhlIGVsZW1lbnQgd2UgZmluZCBtYXkgbm90IGJlIGFjY2Vzc2libGUs
IGtlZXAgc2VhcmNoaW5nIHVudGlsIHdlIGZpbmQgYSBnb29kIG9uZQotICAgIEFjY2Vzc2liaWxp
dHlPYmplY3QqIGxpbmtlZEFYRWxlbWVudCA9IG1fcmVuZGVyZXItPmRvY3VtZW50KCktPmF4T2Jq
ZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUobGlua2VkTm9kZS0+cmVuZGVyZXIoKSk7Ci0gICAgd2hp
bGUgKGxpbmtlZEFYRWxlbWVudCAmJiBsaW5rZWRBWEVsZW1lbnQtPmFjY2Vzc2liaWxpdHlJc0ln
bm9yZWQoKSkgewotICAgICAgICBsaW5rZWROb2RlID0gbGlua2VkTm9kZS0+dHJhdmVyc2VOZXh0
Tm9kZSgpOwotICAgICAgICAKLSAgICAgICAgd2hpbGUgKGxpbmtlZE5vZGUgJiYgIWxpbmtlZE5v
ZGUtPnJlbmRlcmVyKCkpCi0gICAgICAgICAgICBsaW5rZWROb2RlID0gbGlua2VkTm9kZS0+dHJh
dmVyc2VOZXh0U2libGluZygpOwotICAgICAgICAKLSAgICAgICAgaWYgKCFsaW5rZWROb2RlKQot
ICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIGxpbmtlZEFYRWxlbWVudCA9IG1fcmVuZGVy
ZXItPmRvY3VtZW50KCktPmF4T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUobGlua2VkTm9kZS0+
cmVuZGVyZXIoKSk7Ci0gICAgfQotICAgIAotICAgIHJldHVybiBsaW5rZWRBWEVsZW1lbnQ7Cisg
ICAgLy8gVGhlIGVsZW1lbnQgd2UgZmluZCBtYXkgbm90IGJlIGFjY2Vzc2libGUsIHNvIGZpbmQg
dGhlIGZpcnN0IGFjY2Vzc2libGUgb2JqZWN0LgorICAgIHJldHVybiBmaXJzdEFjY2Vzc2libGVP
YmplY3RGcm9tTm9kZShsaW5rZWROb2RlKTsKIH0KLSAgICAKKwogdm9pZCBBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjphZGRSYWRpb0J1dHRvbkdyb3VwTWVtYmVycyhBY2Nlc3NpYmlsaXR5Q2hp
bGRyZW5WZWN0b3ImIGxpbmtlZFVJRWxlbWVudHMpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3JlbmRl
cmVyIHx8IHJvbGVWYWx1ZSgpICE9IFJhZGlvQnV0dG9uUm9sZSkKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9jaHJvbWl1bS9BWE9iamVjdENhY2hlQ2hyb21pdW0uY3BwIGIvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2Nocm9taXVtL0FYT2JqZWN0Q2FjaGVDaHJvbWl1bS5jcHAKaW5k
ZXggYzVkMWRkNC4uYTk3ZGZlMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2No
cm9taXVtL0FYT2JqZWN0Q2FjaGVDaHJvbWl1bS5jcHAKKysrIGIvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2Nocm9taXVtL0FYT2JqZWN0Q2FjaGVDaHJvbWl1bS5jcHAKQEAgLTUxLDQgKzUxLDggQEAg
dm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChSZW5kZXJP
YmplY3QqLCBSZW5kZXJPYmplY3QqKQogewogfQogCit2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRs
ZVNjcm9sbGVkVG9BbmNob3IoY29uc3QgTm9kZSopCit7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQVhPYmplY3RDYWNo
ZUF0ay5jcHAgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FYT2JqZWN0Q2FjaGVBdGsuY3Bw
CmluZGV4IDJlN2NhNjYuLmNjNTE1YWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9ndGsvQVhPYmplY3RDYWNoZUF0ay5jcHAKKysrIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0
ay9BWE9iamVjdENhY2hlQXRrLmNwcApAQCAtNjAsNCArNjAsOCBAQCB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OmhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkKFJlbmRlck9iamVjdCogb2xkRm9jdXNl
ZFJlbmRlcgogICAgIH0KIH0KIAordm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxlZFRv
QW5jaG9yKGNvbnN0IE5vZGUqKQoreworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gYi9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KaW5kZXggZjZmN2Jk
Ny4uMmYxOGNmMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVj
dENhY2hlTWFjLm1tCisrKyBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNo
ZU1hYy5tbQpAQCAtODAsNiArODAsOCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpYwogICAgICAg
ICBjYXNlIEFYVmFsdWVDaGFuZ2VkOgogICAgICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gTlNB
Y2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uOwogICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAogICAg
IE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb24ob2JqLT53cmFwcGVyKCksIG1hY05vdGlm
aWNhdGlvbik7CkBAIC05MCw2ICs5MiwxMCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUZv
Y3VzZWRVSUVsZW1lbnRDaGFuZ2VkKFJlbmRlck9iamVjdCosIFJlbmRlck9iamVjdCopCiAgICAg
W1tXZWJDb3JlVmlld0ZhY3Rvcnkgc2hhcmVkRmFjdG9yeV0gYWNjZXNzaWJpbGl0eUhhbmRsZUZv
Y3VzQ2hhbmdlZF07CiB9CiAKK3ZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Nyb2xsZWRUb0Fu
Y2hvcihjb25zdCBOb2RlKikKK3sKK30KKwogfQogCiAjZW5kaWYgLy8gSEFWRShBQ0NFU1NJQklM
SVRZKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3dpbi9BWE9iamVjdENhY2hl
V2luLmNwcCBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93aW4vQVhPYmplY3RDYWNoZVdpbi5jcHAK
aW5kZXggNmYwNjIwMy4uM2RiYzM1NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L3dpbi9BWE9iamVjdENhY2hlV2luLmNwcAorKysgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvd2lu
L0FYT2JqZWN0Q2FjaGVXaW4uY3BwCkBAIC01MSw4ICs1MSw0OCBAQCB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OmF0dGFjaFdyYXBwZXIoQWNjZXNzaWJpbGl0eU9iamVjdCopCiAgICAgLy8gc29mdHdhcmUg
cmVxdWVzdHMgdGhlbSB2aWEgZ2V0X2FjY0NoaWxkLgogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6
OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhOb3RpZmlj
YXRpb24pCit2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGVkVG9BbmNob3IoY29uc3Qg
Tm9kZSogYW5jaG9yTm9kZSkKIHsKKyAgICAvLyBUaGUgYW5jaG9yIG5vZGUgbWF5IG5vdCBiZSBh
Y2Nlc3NpYmxlLiBQb3N0IHRoZSBub3RpZmljYXRpb24gZm9yIHRoZQorICAgIC8vIGZpcnN0IGFj
Y2Vzc2libGUgb2JqZWN0LgorICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmls
aXR5T2JqZWN0OjpmaXJzdEFjY2Vzc2libGVPYmplY3RGcm9tTm9kZShhbmNob3JOb2RlKSwgQVhT
Y3JvbGxlZFRvQW5jaG9yKTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1O
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWNhdGlvbiBub3Rp
ZmljYXRpb24pCit7CisgICAgaWYgKCFvYmopCisgICAgICAgIHJldHVybjsKKworICAgIERvY3Vt
ZW50KiBkb2N1bWVudCA9IG9iai0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAg
ICAgICByZXR1cm47CisKKyAgICBQYWdlKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2UoKTsKKyAgICBp
ZiAoIXBhZ2UgfHwgIXBhZ2UtPmNocm9tZSgpLT5wbGF0Zm9ybVdpbmRvdygpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBEV09SRCBtc2FhRXZlbnQ7CisgICAgc3dpdGNoIChub3RpZmljYXRpb24p
IHsKKyAgICAgICAgY2FzZSBBWEZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkOgorICAgICAgICAgICAg
bXNhYUV2ZW50ID0gRVZFTlRfT0JKRUNUX0ZPQ1VTOworICAgICAgICAgICAgYnJlYWs7CisKKyAg
ICAgICAgY2FzZSBBWFNjcm9sbGVkVG9BbmNob3I6CisgICAgICAgICAgICBtc2FhRXZlbnQgPSBF
VkVOVF9TWVNURU1fU0NST0xMSU5HU1RBUlQ7CisgICAgICAgICAgICBicmVhazsKKworICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIFdpbmRvd3Mg
d2lsbCBlbmQgdXAgY2FsbGluZyBnZXRfYWNjQ2hpbGQoKSBvbiB0aGUgcm9vdCBhY2Nlc3NpYmxl
CisgICAgLy8gb2JqZWN0IGZvciB0aGUgV2ViVmlldywgcGFzc2luZyB0aGUgY2hpbGQgSUQgdGhh
dCB3ZSBzcGVjaWZ5IGJlbG93LiBXZQorICAgIC8vIG5lZ2F0ZSB0aGUgQVhJRCBzbyB3ZSBrbm93
IHRoYXQgdGhlIGNhbGxlciBpcyBwYXNzaW5nIHRoZSBJRCBvZiBhbgorICAgIC8vIGVsZW1lbnQs
IG5vdCB0aGUgaW5kZXggb2YgYSBjaGlsZCBlbGVtZW50LgorCisgICAgQVNTRVJUKG9iai0+YXhP
YmplY3RJRCgpID49IDEgJiYgb2JqLT5heE9iamVjdElEKCkgPD0gbnVtZXJpY19saW1pdHM8TE9O
Rz46Om1heCgpKTsKKworICAgIE5vdGlmeVdpbkV2ZW50KG1zYWFFdmVudCwgcGFnZS0+Y2hyb21l
KCktPnBsYXRmb3JtV2luZG93KCksIE9CSklEX0NMSUVOVCwgLXN0YXRpY19jYXN0PExPTkc+KG9i
ai0+YXhPYmplY3RJRCgpKSk7CiB9CiAKIEFYSUQgQVhPYmplY3RDYWNoZTo6cGxhdGZvcm1HZW5l
cmF0ZUFYSUQoKSBjb25zdApAQCAtODgsMTMgKzEyOCw4IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6
aGFuZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQoUmVuZGVyT2JqZWN0KiwgUmVuZGVyT2JqZWN0
KiBuCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVCghZm9jdXNlZE9iamVjdC0+YWNjZXNz
aWJpbGl0eUlzSWdub3JlZCgpKTsKLSAgICBBU1NFUlQoZm9jdXNlZE9iamVjdC0+YXhPYmplY3RJ
RCgpID49IDEgJiYgZm9jdXNlZE9iamVjdC0+YXhPYmplY3RJRCgpIDw9IG51bWVyaWNfbGltaXRz
PExPTkc+OjptYXgoKSk7CiAKLSAgICAvLyBXaW5kb3dzIHdpbGwgZW5kIHVwIGNhbGxpbmcgZ2V0
X2FjY0NoaWxkKCkgb24gdGhlIHJvb3QgYWNjZXNzaWJsZQotICAgIC8vIG9iamVjdCBmb3IgdGhl
IFdlYlZpZXcsIHBhc3NpbmcgdGhlIGNoaWxkIElEIHRoYXQgd2Ugc3BlY2lmeSBiZWxvdy4gV2UK
LSAgICAvLyBuZWdhdGUgdGhlIEFYSUQgc28gd2Uga25vdyB0aGF0IHRoZSBjYWxsZXIgaXMgcGFz
c2luZyB0aGUgSUQgb2YgYW4KLSAgICAvLyBlbGVtZW50LCBub3QgdGhlIGluZGV4IG9mIGEgY2hp
bGQgZWxlbWVudC4KLSAgICBOb3RpZnlXaW5FdmVudChFVkVOVF9PQkpFQ1RfRk9DVVMsIHBhZ2Ut
PmNocm9tZSgpLT5wbGF0Zm9ybVdpbmRvdygpLCBPQkpJRF9DTElFTlQsIC1zdGF0aWNfY2FzdDxM
T05HPihmb2N1c2VkT2JqZWN0LT5heE9iamVjdElEKCkpKTsKKyAgICBwb3N0UGxhdGZvcm1Ob3Rp
ZmljYXRpb24oZm9jdXNlZE9iamVjdCwgQVhGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZCk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXcuY3BwIGIvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggYjI4YzMyYi4uODA3ZDk5
MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5jcHAKQEAgLTExNzgsNiArMTE3OCw5IEBAIHZvaWQgRnJhbWVWaWV3Ojpz
Y3JvbGxUb0FuY2hvcigpCiAgICAgLy8gQWxpZ24gdG8gdGhlIHRvcCBhbmQgdG8gdGhlIGNsb3Nl
c3Qgc2lkZSAodGhpcyBtYXRjaGVzIG90aGVyIGJyb3dzZXJzKS4KICAgICBhbmNob3JOb2RlLT5y
ZW5kZXJlcigpLT5lbmNsb3NpbmdMYXllcigpLT5zY3JvbGxSZWN0VG9WaXNpYmxlKHJlY3QsIHRy
dWUsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub0VkZ2VJZk5lZWRlZCwgU2Nyb2xsQWxpZ25tZW50
OjphbGlnblRvcEFsd2F5cyk7CiAKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0
eUVuYWJsZWQoKSkKKyAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+YXhPYmplY3RDYWNoZSgp
LT5oYW5kbGVTY3JvbGxlZFRvQW5jaG9yKGFuY2hvck5vZGUuZ2V0KCkpOworCiAgICAgLy8gc2Ny
b2xsUmVjdFRvVmlzaWJsZSBjYW4gY2FsbCBpbnRvIHNjcm9sbFJlY3RJbnRvVmlld1JlY3Vyc2l2
ZWx5KCksIHdoaWNoIHJlc2V0cyBtX21haW50YWluU2Nyb2xsUG9zaXRpb25BbmNob3IuCiAgICAg
bV9tYWludGFpblNjcm9sbFBvc2l0aW9uQW5jaG9yID0gYW5jaG9yTm9kZTsKIH0KLS0gCjEuNi40
LnJjMC4xNy5nZDllYjAKCg==
</data>
<flag name="review"
          id="20600"
          type_id="1"
          status="+"
          setter="aroben"
    />
    <flag name="commit-queue"
          id="20642"
          type_id="3"
          status="-"
          setter="aroben"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39505</attachid>
            <date>2009-09-11 21:42:40 -0700</date>
            <delta_ts>2009-09-14 12:49:26 -0700</delta_ts>
            <desc>DRT changes, layout test</desc>
            <filename>0002-DRT-test-part-of.patch</filename>
            <type>text/plain</type>
            <size>10936</size>
            <attacher name="Jon Honeycutt">jhoneycutt</attacher>
            
              <data encoding="base64">RnJvbSBkOWM2MjNmZDNmZGQyMTViMTIwMDUyNTE4OTM5OTMxMjg1NzY2YzA2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gSG9uZXljdXR0IDxqaG9uZXljdXR0QGFwcGxlLmNvbT4K
RGF0ZTogRnJpLCAxMSBTZXAgMjAwOSAyMDo0MDoxOSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMi8y
XSBEUlQvdGVzdCBwYXJ0IG9mCiA8cmRhcjovL3Byb2JsZW0vNzE5NzY0ND4gV2ViS2l0IHNob3Vs
ZCBicm9hZGNhc3QgYW4gTVNBQSBldmVudCB3aGVuCiBqdW1waW5nIHRvIGEgbmFtZWQgYW5jaG9y
CgpodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg4OTkKClJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgoKV2ViS2l0VG9vbHM6CgoqIER1bXBSZW5kZXJUcmVlL0FjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmNwcDoKKGxvZ1Njcm9sbGluZ1N0YXJ0RXZlbnRzQ2FsbGJhY2sp
OgpUdXJuIG9uIGxvZ2dpbmcgb2Ygc2Nyb2xsaW5nIHN0YXJ0IGV2ZW50cy4KKEFjY2Vzc2liaWxp
dHlDb250cm9sbGVyOjpnZXRKU0NsYXNzKToKQWRkIGEgImxvZ1Njcm9sbGluZ1N0YXJ0RXZlbnRz
IiB0byB0aGUgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIncyBKUwpjbGFzcyBkZWZpbml0aW9uLgoo
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUpOgpUdXJuIG9m
ZiBsb2dnaW5nIG9mIHNjcm9sbGluZyBzdGFydCBldmVudHMuCgoqIER1bXBSZW5kZXJUcmVlL0Fj
Y2Vzc2liaWxpdHlDb250cm9sbGVyLmg6CkRlY2xhcmUgc2V0TG9nU2Nyb2xsaW5nU3RhcnRFdmVu
dHMoKS4gQWRkIGEgbWVtYmVyIGZvciB0aGUgc2Nyb2xsaW5nCnN0YXJ0IGV2ZW50IGhvb2suCgoq
IER1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5jcHA6CihBY2Nl
c3NpYmlsaXR5Q29udHJvbGxlcjo6c2V0TG9nU2Nyb2xsaW5nU3RhcnRFdmVudHMpOgpTdHViYmVk
LgoKKiBEdW1wUmVuZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJXaW4uY3BwOgoo
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OkFjY2Vzc2liaWxpdHlDb250cm9sbGVyKToKSW5pdGlh
bGl6ZSB0aGUgaGFuZGxlIHRvIDAuCihsb2dFdmVudFByb2MpOgpSZW5hbWVkIGZyb20gbG9nRm9j
dXNFdmVudFByb2M7IG5vdyBsb2dzIHNjcm9sbGluZyBzdGFydCBldmVudHMsIHRvby4KUmVtb3Zl
ZCB0aGUgYXNzZXJ0aW9uIHRoYXQgdGhlIGV2ZW50IGlzIGEgZm9jdXMgZXZlbnQuIEFkZGVkIGEg
c3dpdGNoCnRvIHByaW50IGEgbWVzc2FnZSBmb3IgZm9jdXMsIHNjcm9sbGluZyBzdGFydCwgYW5k
IG90aGVyLCB1bmtub3duCmV2ZW50cy4KKEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpzZXRMb2dG
b2N1c0V2ZW50cyk6CkNoYW5nZWQgdG8gdXNlIGxvZ0V2ZW50UHJvYy4KKEFjY2Vzc2liaWxpdHlD
b250cm9sbGVyOjpzZXRMb2dTY3JvbGxpbmdTdGFydEV2ZW50cyk6CklmIHR1cm5pbmcgbG9nZ2lu
ZyBvZmYsIHVuaG9vayB0aGUgc2Nyb2xsaW5nIHN0YXJ0IGV2ZW50IGhvb2ssIGFuZCBjbGVhcgp0
aGUgbWVtYmVyIGhvbGRpbmcgdGhlIGhhbmRsZS4gSWYgdHVybmluZyBvbiwgcXVlcnkgZm9yIHRo
ZSByb290CmFjY2Vzc2libGUsIHNvIHRoYXQgYWNjZXNzaWJpbGl0eSBpcyBlbmFibGVkIGZvciB0
aGUgV2ViVmlldywgYW5kIGNhbGwKU2V0V2luRXZlbnRIb29rIHRvIHNldHVwIGFuIGV2ZW50IGhv
b2sgdXNpbmcgbG9nRXZlbnRQcm9jIGFzIHRoZQpjYWxsYmFjayBmdW5jdGlvbi4KCkxheW91dFRl
c3RzOgoKKiBwbGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9zY3JvbGwtdG8tYW5jaG9yLWV4cGVj
dGVkLnR4dDogQWRkZWQuCiogcGxhdGZvcm0vd2luL2FjY2Vzc2liaWxpdHkvc2Nyb2xsLXRvLWFu
Y2hvci5odG1sOgpBZGRlZC4gVHVybnMgb24gc2Nyb2xsaW5nIHN0YXJ0IGV2ZW50IGxvZ2dpbmcs
IHRoZW4ganVtcHMgdG8gYW4KYW5jaG9yIGF0IHRoZSBib3R0b20gb2YgdGhlIHBhZ2UuCi0tLQog
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE1
ICsrKysrKysKIFdlYktpdFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICA0NCArKysrKysrKysrKysrKysrKysrKwogLi4uL0R1bXBSZW5kZXJUcmVlL0FjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmNwcCAgICAgfCAgICA5ICsrKysKIC4uLi9EdW1wUmVuZGVyVHJl
ZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oICAgICAgIHwgICAgMiArCiAuLi4vbWFjL0FjY2Vz
c2liaWxpdHlDb250cm9sbGVyTWFjLm1tICAgICAgICAgICAgICB8ICAgIDUgKysKIC4uLi93aW4v
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJXaW4uY3BwICAgICAgICAgICAgIHwgICA0MSArKysrKysr
KysrKysrKysrLS0KIDYgZmlsZXMgY2hhbmdlZCwgMTExIGluc2VydGlvbnMoKyksIDUgZGVsZXRp
b25zKC0pCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IGE3OGIxNGEuLmRlMzIxYjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAor
MjAwOS0wOS0xMSAgSm9uIEhvbmV5Y3V0dCAgPGpob25leWN1dHRAYXBwbGUuY29tPgorCisgICAg
ICAgIERSVC90ZXN0IHBhcnQgb2YKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxOTc2NDQ+IFdl
YktpdCBzaG91bGQgYnJvYWRjYXN0IGFuIE1TQUEgZXZlbnQgd2hlbgorICAgICAgICBqdW1waW5n
IHRvIGEgbmFtZWQgYW5jaG9yCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI4ODk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9zY3JvbGwtdG8tYW5jaG9y
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd2luL2FjY2Vzc2liaWxp
dHkvc2Nyb2xsLXRvLWFuY2hvci5odG1sOgorICAgICAgICBBZGRlZC4gVHVybnMgb24gc2Nyb2xs
aW5nIHN0YXJ0IGV2ZW50IGxvZ2dpbmcsIHRoZW4ganVtcHMgdG8gYW4KKyAgICAgICAgYW5jaG9y
IGF0IHRoZSBib3R0b20gb2YgdGhlIHBhZ2UuCisKIDIwMDktMDktMTEgIEVyaWsgQXJ2aWRzc29u
ICA8YXJ2QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4K
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBkZGFhODI1Li4wYjQwNjA4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMDktMDkt
MTEgIEpvbiBIb25leWN1dHQgIDxqaG9uZXljdXR0QGFwcGxlLmNvbT4KKworICAgICAgICBEUlQv
dGVzdCBwYXJ0IG9mCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTk3NjQ0PiBXZWJLaXQgc2hv
dWxkIGJyb2FkY2FzdCBhbiBNU0FBIGV2ZW50IHdoZW4KKyAgICAgICAganVtcGluZyB0byBhIG5h
bWVkIGFuY2hvcgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yODg5OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAobG9nU2Nyb2xsaW5nU3RhcnRFdmVudHNDYWxsYmFjayk6CisgICAgICAgIFR1cm4gb24gbG9n
Z2luZyBvZiBzY3JvbGxpbmcgc3RhcnQgZXZlbnRzLgorICAgICAgICAoQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXI6OmdldEpTQ2xhc3MpOgorICAgICAgICBBZGQgYSAibG9nU2Nyb2xsaW5nU3RhcnRF
dmVudHMiIHRvIHRoZSBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcidzIEpTCisgICAgICAgIGNsYXNz
IGRlZmluaXRpb24uCisgICAgICAgIChBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cmVzZXRUb0Nv
bnNpc3RlbnRTdGF0ZSk6CisgICAgICAgIFR1cm4gb2ZmIGxvZ2dpbmcgb2Ygc2Nyb2xsaW5nIHN0
YXJ0IGV2ZW50cy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlDb250
cm9sbGVyLmg6CisgICAgICAgIERlY2xhcmUgc2V0TG9nU2Nyb2xsaW5nU3RhcnRFdmVudHMoKS4g
QWRkIGEgbWVtYmVyIGZvciB0aGUgc2Nyb2xsaW5nCisgICAgICAgIHN0YXJ0IGV2ZW50IGhvb2su
CisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJN
YWMuY3BwOgorICAgICAgICAoQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnNldExvZ1Njcm9sbGlu
Z1N0YXJ0RXZlbnRzKToKKyAgICAgICAgU3R1YmJlZC4KKworICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL3dpbi9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcldpbi5jcHA6CisgICAgICAgIChBY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpOgorICAgICAgICBJbml0
aWFsaXplIHRoZSBoYW5kbGUgdG8gMC4KKyAgICAgICAgKGxvZ0V2ZW50UHJvYyk6CisgICAgICAg
IFJlbmFtZWQgZnJvbSBsb2dGb2N1c0V2ZW50UHJvYzsgbm93IGxvZ3Mgc2Nyb2xsaW5nIHN0YXJ0
IGV2ZW50cywgdG9vLgorICAgICAgICBSZW1vdmVkIHRoZSBhc3NlcnRpb24gdGhhdCB0aGUgZXZl
bnQgaXMgYSBmb2N1cyBldmVudC4gQWRkZWQgYSBzd2l0Y2gKKyAgICAgICAgdG8gcHJpbnQgYSBt
ZXNzYWdlIGZvciBmb2N1cywgc2Nyb2xsaW5nIHN0YXJ0LCBhbmQgb3RoZXIsIHVua25vd24KKyAg
ICAgICAgZXZlbnRzLgorICAgICAgICAoQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnNldExvZ0Zv
Y3VzRXZlbnRzKToKKyAgICAgICAgQ2hhbmdlZCB0byB1c2UgbG9nRXZlbnRQcm9jLgorICAgICAg
ICAoQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnNldExvZ1Njcm9sbGluZ1N0YXJ0RXZlbnRzKToK
KyAgICAgICAgSWYgdHVybmluZyBsb2dnaW5nIG9mZiwgdW5ob29rIHRoZSBzY3JvbGxpbmcgc3Rh
cnQgZXZlbnQgaG9vaywgYW5kIGNsZWFyCisgICAgICAgIHRoZSBtZW1iZXIgaG9sZGluZyB0aGUg
aGFuZGxlLiBJZiB0dXJuaW5nIG9uLCBxdWVyeSBmb3IgdGhlIHJvb3QKKyAgICAgICAgYWNjZXNz
aWJsZSwgc28gdGhhdCBhY2Nlc3NpYmlsaXR5IGlzIGVuYWJsZWQgZm9yIHRoZSBXZWJWaWV3LCBh
bmQgY2FsbAorICAgICAgICBTZXRXaW5FdmVudEhvb2sgdG8gc2V0dXAgYW4gZXZlbnQgaG9vayB1
c2luZyBsb2dFdmVudFByb2MgYXMgdGhlCisgICAgICAgIGNhbGxiYWNrIGZ1bmN0aW9uLgorCiAy
MDA5LTA5LTExICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBEYXZpZCBMZXZpbi4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcAppbmRleCBmY2NhM2IwLi5hZjFkYWY2IDEw
MDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuY3BwCkBAIC01OSwxMCArNTksMTggQEAgc3RhdGljIEpTVmFsdWVSZWYgbG9nRm9j
dXNFdmVudHNDYWxsYmFjayhKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiwgSlNPYmplY3QK
ICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY3R4KTsKIH0KIAorc3RhdGljIEpTVmFs
dWVSZWYgbG9nU2Nyb2xsaW5nU3RhcnRFdmVudHNDYWxsYmFjayhKU0NvbnRleHRSZWYgY3R4LCBK
U09iamVjdFJlZiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90LCBjb25zdCBKU1ZhbHVl
UmVmW10sIEpTVmFsdWVSZWYqKQoreworICAgIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyKiBjb250
cm9sbGVyID0gc3RhdGljX2Nhc3Q8QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIqPihKU09iamVjdEdl
dFByaXZhdGUodGhpc09iamVjdCkpOworICAgIGNvbnRyb2xsZXItPnNldExvZ1Njcm9sbGluZ1N0
YXJ0RXZlbnRzKHRydWUpOworICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjdHgpOwor
fQorCiBKU0NsYXNzUmVmIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpnZXRKU0NsYXNzKCkKIHsK
ICAgICBzdGF0aWMgSlNTdGF0aWNGdW5jdGlvbiBzdGF0aWNGdW5jdGlvbnNbXSA9IHsKICAgICAg
ICAgeyAibG9nRm9jdXNFdmVudHMiLCBsb2dGb2N1c0V2ZW50c0NhbGxiYWNrLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisg
ICAgICAgIHsgImxvZ1Njcm9sbGluZ1N0YXJ0RXZlbnRzIiwgbG9nU2Nyb2xsaW5nU3RhcnRFdmVu
dHNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7IDAsIDAsIDAgfQogICAgIH07CiAKQEAgLTg0
LDQgKzkyLDUgQEAgSlNDbGFzc1JlZiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6Z2V0SlNDbGFz
cygpCiB2b2lkIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpyZXNldFRvQ29uc2lzdGVudFN0YXRl
KCkKIHsKICAgICBzZXRMb2dGb2N1c0V2ZW50cyhmYWxzZSk7CisgICAgc2V0TG9nU2Nyb2xsaW5n
U3RhcnRFdmVudHMoZmFsc2UpOwogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgKaW5kZXggNjRjMzdlNC4uYTEwZThiZSAxMDA2
NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuaAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5oCkBAIC00NSw2ICs0NSw3IEBAIHB1YmxpYzoKICAgICBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50IGZvY3VzZWRFbGVtZW50KCk7CiAKICAgICB2b2lkIHNldExvZ0ZvY3VzRXZlbnRzKGJvb2wp
OworICAgIHZvaWQgc2V0TG9nU2Nyb2xsaW5nU3RhcnRFdmVudHMoYm9vbCk7CiAKICAgICB2b2lk
IHJlc2V0VG9Db25zaXN0ZW50U3RhdGUoKTsKIApAQCAtNTMsNiArNTQsNyBAQCBwcml2YXRlOgog
CiAjaWYgUExBVEZPUk0oV0lOKQogICAgIEhXSU5FVkVOVEhPT0sgbV9mb2N1c0V2ZW50SG9vazsK
KyAgICBIV0lORVZFTlRIT09LIG1fc2Nyb2xsaW5nU3RhcnRFdmVudEhvb2s7CiAjZW5kaWYKIH07
CiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmls
aXR5Q29udHJvbGxlck1hYy5tbSBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nl
c3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbQppbmRleCBkYzdmNTJlLi42N2UwZmE0IDEwMDY0NAot
LS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXJNYWMubW0KKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxp
dHlDb250cm9sbGVyTWFjLm1tCkBAIC01NywzICs1Nyw4IEBAIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnJvb3RFbGVtZW50KCkKIHZvaWQgQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXI6OnNldExvZ0ZvY3VzRXZlbnRzKGJvb2wpCiB7CiB9CisKK3ZvaWQgQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnNldExvZ1Njcm9sbGluZ1N0YXJ0RXZlbnRzKGJvb2wpCit7
Cit9CisKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcldpbi5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4v
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJXaW4uY3BwCmluZGV4IDg4MDIzOWIuLmFjNjRlZmIgMTAw
NjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlcldpbi5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0FjY2Vz
c2liaWxpdHlDb250cm9sbGVyV2luLmNwcApAQCAtMzgsNiArMzgsNyBAQCB1c2luZyBuYW1lc3Bh
Y2Ugc3RkOwogCiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIoKQogICAgIDogbV9mb2N1c0V2ZW50SG9vaygwKQorICAgICwgbV9zY3JvbGxpbmdTdGFydEV2
ZW50SG9vaygwKQogewogfQogCkBAIC04OCwxMCArODksOCBAQCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpyb290RWxlbWVudCgpCiAgICAgcmV0dXJuIHJv
b3RBY2Nlc3NpYmxlOwogfQogCi1zdGF0aWMgdm9pZCBDQUxMQkFDSyBsb2dGb2N1c0V2ZW50UHJv
YyhIV0lORVZFTlRIT09LIGhXaW5FdmVudEhvb2ssIERXT1JEIGV2ZW50LCBIV05EIGh3bmQsIExP
TkcgaWRPYmplY3QsIExPTkcgaWRDaGlsZCwgRFdPUkQsIERXT1JEKQorc3RhdGljIHZvaWQgQ0FM
TEJBQ0sgbG9nRXZlbnRQcm9jKEhXSU5FVkVOVEhPT0sgaFdpbkV2ZW50SG9vaywgRFdPUkQgZXZl
bnQsIEhXTkQgaHduZCwgTE9ORyBpZE9iamVjdCwgTE9ORyBpZENoaWxkLCBEV09SRCwgRFdPUkQp
CiB7Ci0gICAgQVNTRVJUX0FSRyhldmVudCwgZXZlbnQgPT0gRVZFTlRfT0JKRUNUX0ZPQ1VTKTsK
LQogICAgIC8vIEdldCB0aGUgYWNjZXNzaWJsZSBvYmplY3QgZm9yIHRoaXMgZXZlbnQuCiAgICAg
Q09NUHRyPElBY2Nlc3NpYmxlPiBwYXJlbnRPYmplY3Q7CiAKQEAgLTEwOCw3ICsxMDcsMTkgQEAg
c3RhdGljIHZvaWQgQ0FMTEJBQ0sgbG9nRm9jdXNFdmVudFByb2MoSFdJTkVWRU5USE9PSyBoV2lu
RXZlbnRIb29rLCBEV09SRCBldmVudCwKICAgICB3c3RyaW5nIG5hbWUobmFtZUJTVFIsIDo6U3lz
U3RyaW5nTGVuKG5hbWVCU1RSKSk7CiAgICAgU3lzRnJlZVN0cmluZyhuYW1lQlNUUik7CiAKLSAg
ICBwcmludGYoIlJlY2VpdmVkIGZvY3VzIGV2ZW50IGZvciBvYmplY3QgJyVTJy5cbiIsIG5hbWUu
Y19zdHIoKSk7CisgICAgc3dpdGNoIChldmVudCkgeworICAgICAgICBjYXNlIEVWRU5UX09CSkVD
VF9GT0NVUzoKKyAgICAgICAgICAgIHByaW50ZigiUmVjZWl2ZWQgZm9jdXMgZXZlbnQgZm9yIG9i
amVjdCAnJVMnLlxuIiwgbmFtZS5jX3N0cigpKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAg
ICAgIGNhc2UgRVZFTlRfU1lTVEVNX1NDUk9MTElOR1NUQVJUOgorICAgICAgICAgICAgcHJpbnRm
KCJSZWNlaXZlZCBzY3JvbGxpbmcgc3RhcnQgZXZlbnQgZm9yIG9iamVjdCAnJVMnLlxuIiwgbmFt
ZS5jX3N0cigpKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICBwcmludGYoIlJlY2VpdmVkIHVua25vd24gZXZlbnQgZm9yIG9iamVjdCAnJVMnLlxu
IiwgbmFtZS5jX3N0cigpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KIH0KIAogdm9pZCBB
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6c2V0TG9nRm9jdXNFdmVudHMoYm9vbCBsb2dGb2N1c0V2
ZW50cykKQEAgLTEyNiw3ICsxMzcsMjcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6
c2V0TG9nRm9jdXNFdmVudHMoYm9vbCBsb2dGb2N1c0V2ZW50cykKICAgICAvLyB0aGUgcm9vdCBh
Y2Nlc3NpYmxlIG9iamVjdC4KICAgICByb290RWxlbWVudCgpOwogCi0gICAgbV9mb2N1c0V2ZW50
SG9vayA9IFNldFdpbkV2ZW50SG9vayhFVkVOVF9PQkpFQ1RfRk9DVVMsIEVWRU5UX09CSkVDVF9G
T0NVUywgR2V0TW9kdWxlSGFuZGxlKDApLCBsb2dGb2N1c0V2ZW50UHJvYywgR2V0Q3VycmVudFBy
b2Nlc3NJZCgpLCAwLCBXSU5FVkVOVF9JTkNPTlRFWFQpOworICAgIG1fZm9jdXNFdmVudEhvb2sg
PSBTZXRXaW5FdmVudEhvb2soRVZFTlRfT0JKRUNUX0ZPQ1VTLCBFVkVOVF9PQkpFQ1RfRk9DVVMs
IEdldE1vZHVsZUhhbmRsZSgwKSwgbG9nRXZlbnRQcm9jLCBHZXRDdXJyZW50UHJvY2Vzc0lkKCks
IDAsIFdJTkVWRU5UX0lOQ09OVEVYVCk7CiAKICAgICBBU1NFUlQobV9mb2N1c0V2ZW50SG9vayk7
CiB9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnNldExvZ1Njcm9sbGluZ1N0YXJ0
RXZlbnRzKGJvb2wgbG9nU2Nyb2xsaW5nU3RhcnRFdmVudHMpCit7CisgICAgaWYgKCEhbV9zY3Jv
bGxpbmdTdGFydEV2ZW50SG9vayA9PSBsb2dTY3JvbGxpbmdTdGFydEV2ZW50cykKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKCFsb2dTY3JvbGxpbmdTdGFydEV2ZW50cykgeworICAgICAgICBV
bmhvb2tXaW5FdmVudChtX3Njcm9sbGluZ1N0YXJ0RXZlbnRIb29rKTsKKyAgICAgICAgbV9zY3Jv
bGxpbmdTdGFydEV2ZW50SG9vayA9IDA7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAv
LyBFbnN1cmUgdGhhdCBhY2Nlc3NpYmlsaXR5IGlzIGluaXRpYWxpemVkIGZvciB0aGUgV2ViVmll
dyBieSBxdWVyeWluZyBmb3IKKyAgICAvLyB0aGUgcm9vdCBhY2Nlc3NpYmxlIG9iamVjdC4KKyAg
ICByb290RWxlbWVudCgpOworCisgICAgbV9zY3JvbGxpbmdTdGFydEV2ZW50SG9vayA9IFNldFdp
bkV2ZW50SG9vayhFVkVOVF9TWVNURU1fU0NST0xMSU5HU1RBUlQsIEVWRU5UX1NZU1RFTV9TQ1JP
TExJTkdTVEFSVCwgR2V0TW9kdWxlSGFuZGxlKDApLCBsb2dFdmVudFByb2MsIEdldEN1cnJlbnRQ
cm9jZXNzSWQoKSwgMCwgV0lORVZFTlRfSU5DT05URVhUKTsKKworICAgIEFTU0VSVChtX3Njcm9s
bGluZ1N0YXJ0RXZlbnRIb29rKTsKK30KLS0gCjEuNi40LnJjMC4xNy5nZDllYjAKCg==
</data>
<flag name="review"
          id="20601"
          type_id="1"
          status="-"
          setter="aroben"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39565</attachid>
            <date>2009-09-14 12:49:26 -0700</date>
            <delta_ts>2009-09-14 12:53:34 -0700</delta_ts>
            <desc>DRT changes, layout test</desc>
            <filename>0002-DRT-test-part-of.patch</filename>
            <type>text/plain</type>
            <size>13438</size>
            <attacher name="Jon Honeycutt">jhoneycutt</attacher>
            
              <data encoding="base64">RnJvbSA2NGQ5ODMxYTljYjZkMjExMjY5OTI3NjNlMmY1NzhjMDg1MzkzYjE3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gSG9uZXljdXR0IDxqaG9uZXljdXR0QGFwcGxlLmNvbT4K
RGF0ZTogRnJpLCAxMSBTZXAgMjAwOSAyMDo0MDoxOSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMi8y
XSBEUlQvdGVzdCBwYXJ0IG9mCiA8cmRhcjovL3Byb2JsZW0vNzE5NzY0ND4gV2ViS2l0IHNob3Vs
ZCBicm9hZGNhc3QgYW4gTVNBQSBldmVudCB3aGVuCiBqdW1waW5nIHRvIGEgbmFtZWQgYW5jaG9y
CgpodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg4OTkKClJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgoKV2ViS2l0VG9vbHM6CgoqIER1bXBSZW5kZXJUcmVlL0FjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmNwcDoKKGxvZ1Njcm9sbGluZ1N0YXJ0RXZlbnRzQ2FsbGJhY2sp
OgpUdXJuIG9uIGxvZ2dpbmcgb2Ygc2Nyb2xsaW5nIHN0YXJ0IGV2ZW50cy4KKEFjY2Vzc2liaWxp
dHlDb250cm9sbGVyOjpnZXRKU0NsYXNzKToKQWRkIGEgImxvZ1Njcm9sbGluZ1N0YXJ0RXZlbnRz
IiB0byB0aGUgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIncyBKUwpjbGFzcyBkZWZpbml0aW9uLgoo
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUpOgpUdXJuIG9m
ZiBsb2dnaW5nIG9mIHNjcm9sbGluZyBzdGFydCBldmVudHMuCgoqIER1bXBSZW5kZXJUcmVlL0Fj
Y2Vzc2liaWxpdHlDb250cm9sbGVyLmg6CkRlY2xhcmUgc2V0TG9nU2Nyb2xsaW5nU3RhcnRFdmVu
dHMoKS4gQWRkIGEgbWVtYmVyIGZvciB0aGUgc2Nyb2xsaW5nCnN0YXJ0IGV2ZW50IGhvb2suCgoq
IER1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5jcHA6CihBY2Nl
c3NpYmlsaXR5Q29udHJvbGxlcjo6c2V0TG9nU2Nyb2xsaW5nU3RhcnRFdmVudHMpOgpTdHViYmVk
LgoKKiBEdW1wUmVuZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJXaW4uY3BwOgoo
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OkFjY2Vzc2liaWxpdHlDb250cm9sbGVyKToKSW5pdGlh
bGl6ZSB0aGUgaGFuZGxlIHRvIDAuCihsb2dFdmVudFByb2MpOgpSZW5hbWVkIGZyb20gbG9nRm9j
dXNFdmVudFByb2M7IG5vdyBsb2dzIHNjcm9sbGluZyBzdGFydCBldmVudHMsIHRvby4KUmVtb3Zl
ZCB0aGUgYXNzZXJ0aW9uIHRoYXQgdGhlIGV2ZW50IGlzIGEgZm9jdXMgZXZlbnQuIEFkZGVkIGEg
c3dpdGNoCnRvIHByaW50IGEgbWVzc2FnZSBmb3IgZm9jdXMsIHNjcm9sbGluZyBzdGFydCwgYW5k
IG90aGVyLCB1bmtub3duCmV2ZW50cy4KKEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpzZXRMb2dG
b2N1c0V2ZW50cyk6CkNoYW5nZWQgdG8gdXNlIGxvZ0V2ZW50UHJvYy4KKEFjY2Vzc2liaWxpdHlD
b250cm9sbGVyOjpzZXRMb2dTY3JvbGxpbmdTdGFydEV2ZW50cyk6CklmIHR1cm5pbmcgbG9nZ2lu
ZyBvZmYsIHVuaG9vayB0aGUgc2Nyb2xsaW5nIHN0YXJ0IGV2ZW50IGhvb2ssIGFuZCBjbGVhcgp0
aGUgbWVtYmVyIGhvbGRpbmcgdGhlIGhhbmRsZS4gSWYgdHVybmluZyBvbiwgcXVlcnkgZm9yIHRo
ZSByb290CmFjY2Vzc2libGUsIHNvIHRoYXQgYWNjZXNzaWJpbGl0eSBpcyBlbmFibGVkIGZvciB0
aGUgV2ViVmlldywgYW5kIGNhbGwKU2V0V2luRXZlbnRIb29rIHRvIHNldHVwIGFuIGV2ZW50IGhv
b2sgdXNpbmcgbG9nRXZlbnRQcm9jIGFzIHRoZQpjYWxsYmFjayBmdW5jdGlvbi4KCkxheW91dFRl
c3RzOgoKKiBwbGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9zY3JvbGwtdG8tYW5jaG9yLWV4cGVj
dGVkLnR4dDogQWRkZWQuCiogcGxhdGZvcm0vd2luL2FjY2Vzc2liaWxpdHkvc2Nyb2xsLXRvLWFu
Y2hvci5odG1sOgpBZGRlZC4gVHVybnMgb24gc2Nyb2xsaW5nIHN0YXJ0IGV2ZW50IGxvZ2dpbmcs
IHRoZW4ganVtcHMgdG8gYW4KYW5jaG9yIGF0IHRoZSBib3R0b20gb2YgdGhlIHBhZ2UuCi0tLQog
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE1
ICsrKysrKysKIC4uLi9hY2Nlc3NpYmlsaXR5L3Njcm9sbC10by1hbmNob3ItZXhwZWN0ZWQudHh0
ICAgIHwgICAgOCArKysrCiAuLi4vd2luL2FjY2Vzc2liaWxpdHkvc2Nyb2xsLXRvLWFuY2hvci5o
dG1sICAgICAgICB8ICAgNDQgKysrKysrKysrKysrKysrKysrKysKIFdlYktpdFRvb2xzL0NoYW5n
ZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0NCArKysrKysrKysrKysrKysr
KysrKwogLi4uL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcCAgICAg
fCAgICA5ICsrKysKIC4uLi9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5o
ICAgICAgIHwgICAgMiArCiAuLi4vbWFjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFjLm1tICAg
ICAgICAgICAgICB8ICAgIDUgKysKIC4uLi93aW4vQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJXaW4u
Y3BwICAgICAgICAgICAgIHwgICA0MSArKysrKysrKysrKysrKysrLS0KIDggZmlsZXMgY2hhbmdl
ZCwgMTYzIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQg
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2FjY2Vzc2liaWxpdHkvc2Nyb2xsLXRvLWFuY2hvci1l
eHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4v
YWNjZXNzaWJpbGl0eS9zY3JvbGwtdG8tYW5jaG9yLmh0bWwKCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTc4YjE0YS4uZGUz
MjFiNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDA5LTA5LTExICBKb24gSG9uZXljdXR0ICA8
amhvbmV5Y3V0dEBhcHBsZS5jb20+CisKKyAgICAgICAgRFJUL3Rlc3QgcGFydCBvZgorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNzE5NzY0ND4gV2ViS2l0IHNob3VsZCBicm9hZGNhc3QgYW4gTVNB
QSBldmVudCB3aGVuCisgICAgICAgIGp1bXBpbmcgdG8gYSBuYW1lZCBhbmNob3IKKworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg4OTkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL3dpbi9h
Y2Nlc3NpYmlsaXR5L3Njcm9sbC10by1hbmNob3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9zY3JvbGwtdG8tYW5jaG9yLmh0bWw6Cisg
ICAgICAgIEFkZGVkLiBUdXJucyBvbiBzY3JvbGxpbmcgc3RhcnQgZXZlbnQgbG9nZ2luZywgdGhl
biBqdW1wcyB0byBhbgorICAgICAgICBhbmNob3IgYXQgdGhlIGJvdHRvbSBvZiB0aGUgcGFnZS4K
KwogMjAwOS0wOS0xMSAgRXJpayBBcnZpZHNzb24gIDxhcnZAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luL2FjY2Vzc2liaWxpdHkvc2Nyb2xsLXRvLWFuY2hvci1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9zY3JvbGwtdG8tYW5jaG9yLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNDBkZmZiCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2FjY2Vzc2liaWxpdHkv
c2Nyb2xsLXRvLWFuY2hvci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitSZWNlaXZlZCBz
Y3JvbGxpbmcgc3RhcnQgZXZlbnQgZm9yIG9iamVjdCAnQm90dG9tIG9mIHRoZSBwYWdlJy4KK0xp
bmsgdG8gQm90dG9tIG9mIHRoZSBwYWdlCitUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBqdW1waW5n
IHRvIGFuIGFuY2hvciBmaXJlcyBhbiBNU0FBIGV2ZW50LgorCisKK0JvdHRvbSBvZiB0aGUgcGFn
ZQorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9hY2Nlc3NpYmlsaXR5
L3Njcm9sbC10by1hbmNob3IuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9hY2Nlc3Np
YmlsaXR5L3Njcm9sbC10by1hbmNob3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi40MjY5ZWRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL2FjY2Vzc2liaWxpdHkvc2Nyb2xsLXRvLWFuY2hvci5odG1sCkBAIC0wLDAgKzEsNDQgQEAK
KzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgZnVuY3Rp
b24gdGVzdCgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoIm5vdERSVCIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKworICAgICAgICAg
ICAgICAgIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmxvZ1Njcm9sbGluZ1N0YXJ0RXZlbnRzKCk7
CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwor
ICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAg
ICAgICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRvQW5jaG9yLCAwKTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgZnVuY3Rpb24gc2Nyb2xsVG9BbmNob3IoKQorICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgICAgICAg
ICAgICAgdmFyIGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ0FOQ0hPUkxJTksnKTsK
KyAgICAgICAgICAgICAgICAgICAgdmFyIHggPSBpbnB1dC5vZmZzZXRMZWZ0OworICAgICAgICAg
ICAgICAgICAgICB2YXIgeSA9IGlucHV0Lm9mZnNldFRvcDsKKyAgICAgICAgICAgICAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CisgICAgICAgICAgICAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZVVwKCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4K
KyAgICA8L2hlYWQ+CisKKyAgICA8Ym9keSBvbmxvYWQ9InRlc3QoKSI+CisgICAgICAgIDxkaXYg
aWQ9IkFOQ0hPUkxJTksiPgorICAgICAgICAgICAgPGEgaHJlZj0iI2JvdHRvbSI+TGluayB0byBC
b3R0b20gb2YgdGhlIHBhZ2U8L2E+CisgICAgICAgIDwvZGl2PgorCisgICAgICAgIDxwPlRoaXMg
dGVzdCB2ZXJpZmllcyB0aGF0IGp1bXBpbmcgdG8gYW4gYW5jaG9yIGZpcmVzIGFuIE1TQUEgZXZl
bnQuPC9wPgorCisgICAgICAgIDxwIGlkPSJub3REUlQiPlRoaXMgdGVzdCBzaG91bGQgb25seSBi
ZSBydW4gaW5zaWRlIG9mIER1bXBSZW5kZXJUcmVlLjwvcD4KKworICAgICAgICA8ZGl2IHN0eWxl
PSJoZWlnaHQ6IDEwMDBweDsiPjwvZGl2PgorCisgICAgICAgIDxhIG5hbWU9ImJvdHRvbSI+PGgz
PkJvdHRvbSBvZiB0aGUgcGFnZTwvaDM+PC9hPgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwppbmRl
eCBkZGFhODI1Li4wYjQwNjA4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cKKysr
IGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMDktMDktMTEgIEpv
biBIb25leWN1dHQgIDxqaG9uZXljdXR0QGFwcGxlLmNvbT4KKworICAgICAgICBEUlQvdGVzdCBw
YXJ0IG9mCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTk3NjQ0PiBXZWJLaXQgc2hvdWxkIGJy
b2FkY2FzdCBhbiBNU0FBIGV2ZW50IHdoZW4KKyAgICAgICAganVtcGluZyB0byBhIG5hbWVkIGFu
Y2hvcgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
ODg5OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAobG9n
U2Nyb2xsaW5nU3RhcnRFdmVudHNDYWxsYmFjayk6CisgICAgICAgIFR1cm4gb24gbG9nZ2luZyBv
ZiBzY3JvbGxpbmcgc3RhcnQgZXZlbnRzLgorICAgICAgICAoQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXI6OmdldEpTQ2xhc3MpOgorICAgICAgICBBZGQgYSAibG9nU2Nyb2xsaW5nU3RhcnRFdmVudHMi
IHRvIHRoZSBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcidzIEpTCisgICAgICAgIGNsYXNzIGRlZmlu
aXRpb24uCisgICAgICAgIChBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cmVzZXRUb0NvbnNpc3Rl
bnRTdGF0ZSk6CisgICAgICAgIFR1cm4gb2ZmIGxvZ2dpbmcgb2Ygc2Nyb2xsaW5nIHN0YXJ0IGV2
ZW50cy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVy
Lmg6CisgICAgICAgIERlY2xhcmUgc2V0TG9nU2Nyb2xsaW5nU3RhcnRFdmVudHMoKS4gQWRkIGEg
bWVtYmVyIGZvciB0aGUgc2Nyb2xsaW5nCisgICAgICAgIHN0YXJ0IGV2ZW50IGhvb2suCisKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJNYWMuY3Bw
OgorICAgICAgICAoQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnNldExvZ1Njcm9sbGluZ1N0YXJ0
RXZlbnRzKToKKyAgICAgICAgU3R1YmJlZC4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dp
bi9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcldpbi5jcHA6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5
Q29udHJvbGxlcjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpOgorICAgICAgICBJbml0aWFsaXpl
IHRoZSBoYW5kbGUgdG8gMC4KKyAgICAgICAgKGxvZ0V2ZW50UHJvYyk6CisgICAgICAgIFJlbmFt
ZWQgZnJvbSBsb2dGb2N1c0V2ZW50UHJvYzsgbm93IGxvZ3Mgc2Nyb2xsaW5nIHN0YXJ0IGV2ZW50
cywgdG9vLgorICAgICAgICBSZW1vdmVkIHRoZSBhc3NlcnRpb24gdGhhdCB0aGUgZXZlbnQgaXMg
YSBmb2N1cyBldmVudC4gQWRkZWQgYSBzd2l0Y2gKKyAgICAgICAgdG8gcHJpbnQgYSBtZXNzYWdl
IGZvciBmb2N1cywgc2Nyb2xsaW5nIHN0YXJ0LCBhbmQgb3RoZXIsIHVua25vd24KKyAgICAgICAg
ZXZlbnRzLgorICAgICAgICAoQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnNldExvZ0ZvY3VzRXZl
bnRzKToKKyAgICAgICAgQ2hhbmdlZCB0byB1c2UgbG9nRXZlbnRQcm9jLgorICAgICAgICAoQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnNldExvZ1Njcm9sbGluZ1N0YXJ0RXZlbnRzKToKKyAgICAg
ICAgSWYgdHVybmluZyBsb2dnaW5nIG9mZiwgdW5ob29rIHRoZSBzY3JvbGxpbmcgc3RhcnQgZXZl
bnQgaG9vaywgYW5kIGNsZWFyCisgICAgICAgIHRoZSBtZW1iZXIgaG9sZGluZyB0aGUgaGFuZGxl
LiBJZiB0dXJuaW5nIG9uLCBxdWVyeSBmb3IgdGhlIHJvb3QKKyAgICAgICAgYWNjZXNzaWJsZSwg
c28gdGhhdCBhY2Nlc3NpYmlsaXR5IGlzIGVuYWJsZWQgZm9yIHRoZSBXZWJWaWV3LCBhbmQgY2Fs
bAorICAgICAgICBTZXRXaW5FdmVudEhvb2sgdG8gc2V0dXAgYW4gZXZlbnQgaG9vayB1c2luZyBs
b2dFdmVudFByb2MgYXMgdGhlCisgICAgICAgIGNhbGxiYWNrIGZ1bmN0aW9uLgorCiAyMDA5LTA5
LTExICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBEYXZpZCBMZXZpbi4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0Fj
Y2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0Fj
Y2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcAppbmRleCBmY2NhM2IwLi5hZjFkYWY2IDEwMDY0NAot
LS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5j
cHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuY3BwCkBAIC01OSwxMCArNTksMTggQEAgc3RhdGljIEpTVmFsdWVSZWYgbG9nRm9jdXNFdmVu
dHNDYWxsYmFjayhKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiwgSlNPYmplY3QKICAgICBy
ZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY3R4KTsKIH0KIAorc3RhdGljIEpTVmFsdWVSZWYg
bG9nU2Nyb2xsaW5nU3RhcnRFdmVudHNDYWxsYmFjayhKU0NvbnRleHRSZWYgY3R4LCBKU09iamVj
dFJlZiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90LCBjb25zdCBKU1ZhbHVlUmVmW10s
IEpTVmFsdWVSZWYqKQoreworICAgIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyKiBjb250cm9sbGVy
ID0gc3RhdGljX2Nhc3Q8QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZh
dGUodGhpc09iamVjdCkpOworICAgIGNvbnRyb2xsZXItPnNldExvZ1Njcm9sbGluZ1N0YXJ0RXZl
bnRzKHRydWUpOworICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjdHgpOworfQorCiBK
U0NsYXNzUmVmIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpnZXRKU0NsYXNzKCkKIHsKICAgICBz
dGF0aWMgSlNTdGF0aWNGdW5jdGlvbiBzdGF0aWNGdW5jdGlvbnNbXSA9IHsKICAgICAgICAgeyAi
bG9nRm9jdXNFdmVudHMiLCBsb2dGb2N1c0V2ZW50c0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAgICAg
IHsgImxvZ1Njcm9sbGluZ1N0YXJ0RXZlbnRzIiwgbG9nU2Nyb2xsaW5nU3RhcnRFdmVudHNDYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LAogICAgICAgICB7IDAsIDAsIDAgfQogICAgIH07CiAKQEAgLTg0LDQgKzky
LDUgQEAgSlNDbGFzc1JlZiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6Z2V0SlNDbGFzcygpCiB2
b2lkIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKCkKIHsK
ICAgICBzZXRMb2dGb2N1c0V2ZW50cyhmYWxzZSk7CisgICAgc2V0TG9nU2Nyb2xsaW5nU3RhcnRF
dmVudHMoZmFsc2UpOwogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0Fj
Y2Vzc2liaWxpdHlDb250cm9sbGVyLmgKaW5kZXggNjRjMzdlNC4uYTEwZThiZSAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAor
KysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5o
CkBAIC00NSw2ICs0NSw3IEBAIHB1YmxpYzoKICAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IGZv
Y3VzZWRFbGVtZW50KCk7CiAKICAgICB2b2lkIHNldExvZ0ZvY3VzRXZlbnRzKGJvb2wpOworICAg
IHZvaWQgc2V0TG9nU2Nyb2xsaW5nU3RhcnRFdmVudHMoYm9vbCk7CiAKICAgICB2b2lkIHJlc2V0
VG9Db25zaXN0ZW50U3RhdGUoKTsKIApAQCAtNTMsNiArNTQsNyBAQCBwcml2YXRlOgogCiAjaWYg
UExBVEZPUk0oV0lOKQogICAgIEhXSU5FVkVOVEhPT0sgbV9mb2N1c0V2ZW50SG9vazsKKyAgICBI
V0lORVZFTlRIT09LIG1fc2Nyb2xsaW5nU3RhcnRFdmVudEhvb2s7CiAjZW5kaWYKIH07CiAKZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlck1hYy5tbSBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmls
aXR5Q29udHJvbGxlck1hYy5tbQppbmRleCBkYzdmNTJlLi42N2UwZmE0IDEwMDY0NAotLS0gYS9X
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJNYWMu
bW0KKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlDb250
cm9sbGVyTWFjLm1tCkBAIC01NywzICs1Nyw4IEBAIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnJvb3RFbGVtZW50KCkKIHZvaWQgQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXI6OnNldExvZ0ZvY3VzRXZlbnRzKGJvb2wpCiB7CiB9CisKK3ZvaWQgQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXI6OnNldExvZ1Njcm9sbGluZ1N0YXJ0RXZlbnRzKGJvb2wpCit7Cit9CisK
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5
Q29udHJvbGxlcldpbi5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXJXaW4uY3BwCmluZGV4IDg4MDIzOWIuLmFjNjRlZmIgMTAwNjQ0Ci0t
LSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5Q29udHJvbGxl
cldpbi5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0FjY2Vzc2liaWxp
dHlDb250cm9sbGVyV2luLmNwcApAQCAtMzgsNiArMzgsNyBAQCB1c2luZyBuYW1lc3BhY2Ugc3Rk
OwogCiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIoKQog
ICAgIDogbV9mb2N1c0V2ZW50SG9vaygwKQorICAgICwgbV9zY3JvbGxpbmdTdGFydEV2ZW50SG9v
aygwKQogewogfQogCkBAIC04OCwxMCArODksOCBAQCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IEFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyOjpyb290RWxlbWVudCgpCiAgICAgcmV0dXJuIHJvb3RBY2Nl
c3NpYmxlOwogfQogCi1zdGF0aWMgdm9pZCBDQUxMQkFDSyBsb2dGb2N1c0V2ZW50UHJvYyhIV0lO
RVZFTlRIT09LIGhXaW5FdmVudEhvb2ssIERXT1JEIGV2ZW50LCBIV05EIGh3bmQsIExPTkcgaWRP
YmplY3QsIExPTkcgaWRDaGlsZCwgRFdPUkQsIERXT1JEKQorc3RhdGljIHZvaWQgQ0FMTEJBQ0sg
bG9nRXZlbnRQcm9jKEhXSU5FVkVOVEhPT0sgaFdpbkV2ZW50SG9vaywgRFdPUkQgZXZlbnQsIEhX
TkQgaHduZCwgTE9ORyBpZE9iamVjdCwgTE9ORyBpZENoaWxkLCBEV09SRCwgRFdPUkQpCiB7Ci0g
ICAgQVNTRVJUX0FSRyhldmVudCwgZXZlbnQgPT0gRVZFTlRfT0JKRUNUX0ZPQ1VTKTsKLQogICAg
IC8vIEdldCB0aGUgYWNjZXNzaWJsZSBvYmplY3QgZm9yIHRoaXMgZXZlbnQuCiAgICAgQ09NUHRy
PElBY2Nlc3NpYmxlPiBwYXJlbnRPYmplY3Q7CiAKQEAgLTEwOCw3ICsxMDcsMTkgQEAgc3RhdGlj
IHZvaWQgQ0FMTEJBQ0sgbG9nRm9jdXNFdmVudFByb2MoSFdJTkVWRU5USE9PSyBoV2luRXZlbnRI
b29rLCBEV09SRCBldmVudCwKICAgICB3c3RyaW5nIG5hbWUobmFtZUJTVFIsIDo6U3lzU3RyaW5n
TGVuKG5hbWVCU1RSKSk7CiAgICAgU3lzRnJlZVN0cmluZyhuYW1lQlNUUik7CiAKLSAgICBwcmlu
dGYoIlJlY2VpdmVkIGZvY3VzIGV2ZW50IGZvciBvYmplY3QgJyVTJy5cbiIsIG5hbWUuY19zdHIo
KSk7CisgICAgc3dpdGNoIChldmVudCkgeworICAgICAgICBjYXNlIEVWRU5UX09CSkVDVF9GT0NV
UzoKKyAgICAgICAgICAgIHByaW50ZigiUmVjZWl2ZWQgZm9jdXMgZXZlbnQgZm9yIG9iamVjdCAn
JVMnLlxuIiwgbmFtZS5jX3N0cigpKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNh
c2UgRVZFTlRfU1lTVEVNX1NDUk9MTElOR1NUQVJUOgorICAgICAgICAgICAgcHJpbnRmKCJSZWNl
aXZlZCBzY3JvbGxpbmcgc3RhcnQgZXZlbnQgZm9yIG9iamVjdCAnJVMnLlxuIiwgbmFtZS5jX3N0
cigpKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICBwcmludGYoIlJlY2VpdmVkIHVua25vd24gZXZlbnQgZm9yIG9iamVjdCAnJVMnLlxuIiwgbmFt
ZS5jX3N0cigpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KIH0KIAogdm9pZCBBY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcjo6c2V0TG9nRm9jdXNFdmVudHMoYm9vbCBsb2dGb2N1c0V2ZW50cykK
QEAgLTEyNiw3ICsxMzcsMjcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6c2V0TG9n
Rm9jdXNFdmVudHMoYm9vbCBsb2dGb2N1c0V2ZW50cykKICAgICAvLyB0aGUgcm9vdCBhY2Nlc3Np
YmxlIG9iamVjdC4KICAgICByb290RWxlbWVudCgpOwogCi0gICAgbV9mb2N1c0V2ZW50SG9vayA9
IFNldFdpbkV2ZW50SG9vayhFVkVOVF9PQkpFQ1RfRk9DVVMsIEVWRU5UX09CSkVDVF9GT0NVUywg
R2V0TW9kdWxlSGFuZGxlKDApLCBsb2dGb2N1c0V2ZW50UHJvYywgR2V0Q3VycmVudFByb2Nlc3NJ
ZCgpLCAwLCBXSU5FVkVOVF9JTkNPTlRFWFQpOworICAgIG1fZm9jdXNFdmVudEhvb2sgPSBTZXRX
aW5FdmVudEhvb2soRVZFTlRfT0JKRUNUX0ZPQ1VTLCBFVkVOVF9PQkpFQ1RfRk9DVVMsIEdldE1v
ZHVsZUhhbmRsZSgwKSwgbG9nRXZlbnRQcm9jLCBHZXRDdXJyZW50UHJvY2Vzc0lkKCksIDAsIFdJ
TkVWRU5UX0lOQ09OVEVYVCk7CiAKICAgICBBU1NFUlQobV9mb2N1c0V2ZW50SG9vayk7CiB9CisK
K3ZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnNldExvZ1Njcm9sbGluZ1N0YXJ0RXZlbnRz
KGJvb2wgbG9nU2Nyb2xsaW5nU3RhcnRFdmVudHMpCit7CisgICAgaWYgKCEhbV9zY3JvbGxpbmdT
dGFydEV2ZW50SG9vayA9PSBsb2dTY3JvbGxpbmdTdGFydEV2ZW50cykKKyAgICAgICAgcmV0dXJu
OworCisgICAgaWYgKCFsb2dTY3JvbGxpbmdTdGFydEV2ZW50cykgeworICAgICAgICBVbmhvb2tX
aW5FdmVudChtX3Njcm9sbGluZ1N0YXJ0RXZlbnRIb29rKTsKKyAgICAgICAgbV9zY3JvbGxpbmdT
dGFydEV2ZW50SG9vayA9IDA7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBFbnN1
cmUgdGhhdCBhY2Nlc3NpYmlsaXR5IGlzIGluaXRpYWxpemVkIGZvciB0aGUgV2ViVmlldyBieSBx
dWVyeWluZyBmb3IKKyAgICAvLyB0aGUgcm9vdCBhY2Nlc3NpYmxlIG9iamVjdC4KKyAgICByb290
RWxlbWVudCgpOworCisgICAgbV9zY3JvbGxpbmdTdGFydEV2ZW50SG9vayA9IFNldFdpbkV2ZW50
SG9vayhFVkVOVF9TWVNURU1fU0NST0xMSU5HU1RBUlQsIEVWRU5UX1NZU1RFTV9TQ1JPTExJTkdT
VEFSVCwgR2V0TW9kdWxlSGFuZGxlKDApLCBsb2dFdmVudFByb2MsIEdldEN1cnJlbnRQcm9jZXNz
SWQoKSwgMCwgV0lORVZFTlRfSU5DT05URVhUKTsKKworICAgIEFTU0VSVChtX3Njcm9sbGluZ1N0
YXJ0RXZlbnRIb29rKTsKK30KLS0gCjEuNi40LnJjMC4xNy5nZDllYjAKCg==
</data>
<flag name="review"
          id="20665"
          type_id="1"
          status="+"
          setter="aroben"
    />
    <flag name="commit-queue"
          id="20666"
          type_id="3"
          status="-"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>