<?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>145283</bug_id>
          
          <creation_ts>2015-05-21 14:21:13 -0700</creation_ts>
          <short_desc>AX: debugging attributes for text markers</short_desc>
          <delta_ts>2015-06-03 10:01:30 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=145608</see_also>
          <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>
          
          <blocked>145596</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Doug Russell">d_russell</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>hyungwook.lee</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>kangil.han</cc>
    
    <cc>mario</cc>
    
    <cc>mrobinson</cc>
    
    <cc>ossy</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1096669</commentid>
    <comment_count>0</comment_count>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-05-21 14:21:13 -0700</bug_when>
    <thetext>AXTextMarkers are opaque data types which can make debugging navigation and selection difficult. New debug build only accessibility attributes to return debug descriptions or to print debug info would be very helpful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096670</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-05-21 14:22:48 -0700</bug_when>
    <thetext>&lt;rdar://problem/21064014&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096671</commentid>
    <comment_count>2</comment_count>
      <attachid>253542</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-05-21 14:33:41 -0700</bug_when>
    <thetext>Created attachment 253542
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096724</commentid>
    <comment_count>3</comment_count>
      <attachid>253542</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2015-05-21 17:48:19 -0700</bug_when>
    <thetext>Comment on attachment 253542
patch

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

thanks

&gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:3796
&gt; +    if ([attribute isEqualToString:@&quot;AXTextMarkerDebugDescription&quot;]) {

can you put these into a separate method completely and can you put the logic in an ObjC method so that these can be called from within the debugger itself

&gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:3797
&gt; +        VisiblePosition visiblePosition = [self visiblePositionForTextMarker:(textMarker)];

i don&apos;t think the parens are necessary here
(textMarker)

&gt; Source/WebCore/dom/Text.cpp:231
&gt; +        result.appendLiteral(&quot;count=&quot;);

this looks like it should be length instead of count</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096725</commentid>
    <comment_count>4</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2015-05-21 17:48:29 -0700</bug_when>
    <thetext>also change log needed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097263</commentid>
    <comment_count>5</comment_count>
      <attachid>253692</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-05-25 13:28:23 -0700</bug_when>
    <thetext>Created attachment 253692
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097269</commentid>
    <comment_count>6</comment_count>
      <attachid>253692</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2015-05-25 14:56:58 -0700</bug_when>
    <thetext>Comment on attachment 253692
patch

Doesn&apos;t seem like any review comments were addressed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097362</commentid>
    <comment_count>7</comment_count>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-05-26 11:55:25 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Comment on attachment 253692 [details]
&gt; patch
&gt; 
&gt; Doesn&apos;t seem like any review comments were addressed

Sorry, uploaded the old patch. Attaching the right one now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097363</commentid>
    <comment_count>8</comment_count>
      <attachid>253714</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-05-26 11:56:12 -0700</bug_when>
    <thetext>Created attachment 253714
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097696</commentid>
    <comment_count>9</comment_count>
      <attachid>253714</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-05-27 12:14:36 -0700</bug_when>
    <thetext>Comment on attachment 253714
patch

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

&gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:3495
&gt; +    VisiblePosition visiblePosition = [self visiblePositionForTextMarker:textMarker];
&gt; +    const int FormatBufferSize = 1024;
&gt; +    char format[FormatBufferSize];
&gt; +    visiblePosition.formatForDebugger(format, FormatBufferSize);
&gt; +    return (NSString *)String(format, FormatBufferSize);

I would write this differently:

    char description[1024];
    [self visiblePositionForTextMarker:textMarker](description, sizeof(description));
    return [NSString stringWithUTF8String:description];

There’s no reason for the local variables or to involve WTF::String.

&gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:3506
&gt; +    const int FormatBufferSize = 2048;
&gt; +    char format[FormatBufferSize];
&gt; +    formatForDebugger(visiblePositionRange, format, FormatBufferSize);
&gt; +    return (NSString *)String(format, FormatBufferSize);

I would write this differently:

    char description[2048];
    formatForDebugger(visiblePositionRange, description, sizeof(description));
    return [NSString stringWithUTF8String:description];

&gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:3515
&gt; +    node-&gt;showNode(&quot;&quot;);

This should just be:

    node-&gt;showNode();

No reason to pass &quot;&quot; explicitly.

&gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:3541
&gt; +    strncpy(buffer, result.toString().utf8().data(), length - 1);

Even though the other format for debugger functions incorrectly do this, you should not do it. The good way to do it in Cocoa-specific code is:

    strlcpy(buffer, result.toString().utf8().data(), length);

As you can see on the man page for strncpy, it doesn’t do the right thing unless you write an additional line of code to NUL terminate the string when it overflows the buffer size. This also should be fixed in the other places in WebKit that do this incorrectly, but please don’t introduce a new one.

&gt; Source/WebCore/dom/Text.cpp:234
&gt; +        result.appendLiteral(&quot;; &quot;);
&gt; +        result.appendLiteral(&quot;value=\&quot;&quot;);

Seems like those could be a single call to appendLiteral.

&gt; Source/WebCore/dom/Text.cpp:236
&gt; +        result.appendLiteral(&quot;\&quot;&quot;);

This could be append(&apos;&quot;&apos;) instead, slightly more efficient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098982</commentid>
    <comment_count>10</comment_count>
      <attachid>254126</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-06-02 17:39:12 -0700</bug_when>
    <thetext>Created attachment 254126
patch

updates from review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098983</commentid>
    <comment_count>11</comment_count>
      <attachid>254126</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-02 17:42:16 -0700</bug_when>
    <thetext>Comment on attachment 254126
patch

Rejecting attachment 254126 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 254126, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in Source/WebCore/ChangeLog contains OOPS!.

Full output: http://webkit-queues.appspot.com/results/5969369683197952</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099006</commentid>
    <comment_count>12</comment_count>
      <attachid>254126</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-02 18:30:08 -0700</bug_when>
    <thetext>Comment on attachment 254126
patch

Clearing flags on attachment: 254126

Committed r185137: &lt;http://trac.webkit.org/changeset/185137&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099007</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-02 18:30:13 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099057</commentid>
    <comment_count>14</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-06-02 22:03:57 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Comment on attachment 254126 [details]
&gt; patch
&gt; 
&gt; Clearing flags on attachment: 254126
&gt; 
&gt; Committed r185137: &lt;http://trac.webkit.org/changeset/185137&gt;

It broke the debug GTK build:
../../Source/WebCore/dom/Text.cpp:238:60: error: ‘strlcpy’ was not declared in this scope
     strlcpy(buffer, result.toString().utf8().data(), length);

$man strncpy
&quot;strlcpy() is not present in glibc and is not standardized by POSIX,
but is available on Linux via the libbsd library.&quot;

I just reported this issue, but don&apos;t have any time
to try to fix it myself. cc-ing GTK maintainters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099081</commentid>
    <comment_count>15</comment_count>
    <who name="Hyungwook Lee">hyungwook.lee</who>
    <bug_when>2015-06-02 23:11:22 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #12)
&gt; &gt; Comment on attachment 254126 [details]
&gt; &gt; patch
&gt; &gt; 
&gt; &gt; Clearing flags on attachment: 254126
&gt; &gt; 
&gt; &gt; Committed r185137: &lt;http://trac.webkit.org/changeset/185137&gt;
&gt; 
&gt; It broke the debug GTK build:
&gt; ../../Source/WebCore/dom/Text.cpp:238:60: error: ‘strlcpy’ was not declared
&gt; in this scope
&gt;      strlcpy(buffer, result.toString().utf8().data(), length);
&gt; 
&gt; $man strncpy
&gt; &quot;strlcpy() is not present in glibc and is not standardized by POSIX,
&gt; but is available on Linux via the libbsd library.&quot;
&gt; 
&gt; I just reported this issue, but don&apos;t have any time
&gt; to try to fix it myself. cc-ing GTK maintainters.

EFL port has same build break too. I upload a fix to Bug 145596.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253542</attachid>
            <date>2015-05-21 14:33:41 -0700</date>
            <delta_ts>2015-05-25 13:28:23 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-AX-debugging-attributes-for-text-markers.patch</filename>
            <type>text/plain</type>
            <size>4531</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSBkN2VhM2M5N2FlNzRkOWNmNTc3MDYxZWQ3NjUzZTI0YWM4N2Q5MjYxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFRodSwgMjEgTWF5IDIwMTUgMTQ6MjE6MzIgLTA3MDAKU3ViamVjdDogW1BBVENIXSBBWDog
ZGVidWdnaW5nIGF0dHJpYnV0ZXMgZm9yIHRleHQgbWFya2VycwoKaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTI4MwotLS0KIC4uLi9tYWMvV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJNYWMubW0gICAgICAgIHwgNTYgKysrKysrKysrKysrKysrKysrKysrLQog
U291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwICAgICAgICAgICAgICAgICAgICAgICAgfCAgNiAr
Ky0KIDIgZmlsZXMgY2hhbmdlZCwgNjAgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFj
L1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCmluZGV4IDEzNTQ2NzguLjVhN2Fj
ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCkBAIC0zNDg1LDYg
KzM0ODUsMjQgQEAgc3RhdGljIFJlbmRlck9iamVjdCogcmVuZGVyZXJGb3JWaWV3KE5TVmlldyog
dmlldykKICAgICByZXR1cm4gW2F0dHJTdHJpbmcgUlRGRnJvbVJhbmdlOiBOU01ha2VSYW5nZSgw
LCBbYXR0clN0cmluZyBsZW5ndGhdKSBkb2N1bWVudEF0dHJpYnV0ZXM6QHsgfV07CiB9CiAKKyNp
ZiBFTkFCTEUoVFJFRV9ERUJVR0dJTkcpCitzdGF0aWMgdm9pZCBmb3JtYXRGb3JEZWJ1Z2dlcihj
b25zdCBWaXNpYmxlUG9zaXRpb25SYW5nZSYgcmFuZ2UsIGNoYXIqIGJ1ZmZlciwgdW5zaWduZWQg
bGVuZ3RoKQoreworICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OworICAgIAorICAgIGNvbnN0IGlu
dCBGb3JtYXRCdWZmZXJTaXplID0gMTAyNDsKKyAgICBjaGFyIGZvcm1hdFtGb3JtYXRCdWZmZXJT
aXplXTsKKyAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiZnJvbSAiKTsKKyAgICByYW5nZS5zdGFy
dC5mb3JtYXRGb3JEZWJ1Z2dlcihmb3JtYXQsIEZvcm1hdEJ1ZmZlclNpemUpOworICAgIHJlc3Vs
dC5hcHBlbmQoZm9ybWF0KTsKKyAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiIHRvICIpOworICAg
IHJhbmdlLmVuZC5mb3JtYXRGb3JEZWJ1Z2dlcihmb3JtYXQsIEZvcm1hdEJ1ZmZlclNpemUpOwor
ICAgIHJlc3VsdC5hcHBlbmQoZm9ybWF0KTsKKyAgICAKKyAgICBzdHJuY3B5KGJ1ZmZlciwgcmVz
dWx0LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgbGVuZ3RoIC0gMSk7Cit9CisjZW5kaWYKKwog
LSAoaWQpYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOihOU1N0cmluZyopYXR0cmlidXRlIGZv
clBhcmFtZXRlcjooaWQpcGFyYW1ldGVyCiB7CiAgICAgaWQgdGV4dE1hcmtlciA9IG5pbDsKQEAg
LTM3NzMsNyArMzc5MSw0MyBAQCBzdGF0aWMgUmVuZGVyT2JqZWN0KiByZW5kZXJlckZvclZpZXco
TlNWaWV3KiB2aWV3KQogICAgICAgICBWaXNpYmxlUG9zaXRpb25SYW5nZSB2aXNpYmxlUG9zUmFu
Z2UgPSBbc2VsZiB2aXNpYmxlUG9zaXRpb25SYW5nZUZvclRleHRNYXJrZXJSYW5nZTp0ZXh0TWFy
a2VyUmFuZ2VdOwogICAgICAgICByZXR1cm4gW3NlbGYgdGV4dE1hcmtlckZvclZpc2libGVQb3Np
dGlvbjp2aXNpYmxlUG9zUmFuZ2UuZW5kXTsKICAgICB9Ci0gICAgCisKKyNpZiBFTkFCTEUoVFJF
RV9ERUJVR0dJTkcpCisgICAgaWYgKFthdHRyaWJ1dGUgaXNFcXVhbFRvU3RyaW5nOkAiQVhUZXh0
TWFya2VyRGVidWdEZXNjcmlwdGlvbiJdKSB7CisgICAgICAgIFZpc2libGVQb3NpdGlvbiB2aXNp
YmxlUG9zaXRpb24gPSBbc2VsZiB2aXNpYmxlUG9zaXRpb25Gb3JUZXh0TWFya2VyOih0ZXh0TWFy
a2VyKV07CisgICAgICAgIGNvbnN0IGludCBGb3JtYXRCdWZmZXJTaXplID0gMTAyNDsKKyAgICAg
ICAgY2hhciBmb3JtYXRbRm9ybWF0QnVmZmVyU2l6ZV07CisgICAgICAgIHZpc2libGVQb3NpdGlv
bi5mb3JtYXRGb3JEZWJ1Z2dlcihmb3JtYXQsIEZvcm1hdEJ1ZmZlclNpemUpOworICAgICAgICBy
ZXR1cm4gKE5TU3RyaW5nICopU3RyaW5nKGZvcm1hdCwgRm9ybWF0QnVmZmVyU2l6ZSk7CisgICAg
fQorCisgICAgaWYgKFthdHRyaWJ1dGUgaXNFcXVhbFRvU3RyaW5nOkAiQVhUZXh0TWFya2VyTm9k
ZURlYnVnRGVzY3JpcHRpb24iXSkgeworICAgICAgICBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBv
c2l0aW9uID0gW3NlbGYgdmlzaWJsZVBvc2l0aW9uRm9yVGV4dE1hcmtlcjoodGV4dE1hcmtlcild
OworICAgICAgICBpZiAoTm9kZSogbm9kZSA9IHZpc2libGVQb3NpdGlvbi5kZWVwRXF1aXZhbGVu
dCgpLmRlcHJlY2F0ZWROb2RlKCkpIHsKKyAgICAgICAgICAgIG5vZGUtPnNob3dOb2RlKCIiKTsK
KyAgICAgICAgICAgIG5vZGUtPnNob3dOb2RlUGF0aEZvclRoaXMoKTsKKyAgICAgICAgfQorICAg
ICAgICByZXR1cm4gbmlsOworICAgIH0KKworICAgIGlmIChbYXR0cmlidXRlIGlzRXF1YWxUb1N0
cmluZzpAIkFYVGV4dE1hcmtlck5vZGVUcmVlRGVidWdEZXNjcmlwdGlvbiJdKSB7CisgICAgICAg
IFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb24gPSBbc2VsZiB2aXNpYmxlUG9zaXRpb25G
b3JUZXh0TWFya2VyOih0ZXh0TWFya2VyKV07CisgICAgICAgIGlmIChOb2RlKiBub2RlID0gdmlz
aWJsZVBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZE5vZGUoKSkKKyAgICAgICAg
ICAgIG5vZGUtPnNob3dUcmVlRm9yVGhpcygpOworICAgICAgICByZXR1cm4gbmlsOworICAgIH0K
KworICAgIGlmIChbYXR0cmlidXRlIGlzRXF1YWxUb1N0cmluZzpAIkFYVGV4dE1hcmtlclJhbmdl
RGVidWdEZXNjcmlwdGlvbiJdKSB7CisgICAgICAgIFZpc2libGVQb3NpdGlvblJhbmdlIHZpc2li
bGVQb3NpdGlvblJhbmdlID0gW3NlbGYgdmlzaWJsZVBvc2l0aW9uUmFuZ2VGb3JUZXh0TWFya2Vy
UmFuZ2U6dGV4dE1hcmtlclJhbmdlXTsKKyAgICAgICAgaWYgKHZpc2libGVQb3NpdGlvblJhbmdl
LmlzTnVsbCgpKQorICAgICAgICAgICAgcmV0dXJuIEAiPG51bGw+IjsKKyAgICAgICAgY29uc3Qg
aW50IEZvcm1hdEJ1ZmZlclNpemUgPSAyMDQ4OworICAgICAgICBjaGFyIGZvcm1hdFtGb3JtYXRC
dWZmZXJTaXplXTsKKyAgICAgICAgZm9ybWF0Rm9yRGVidWdnZXIodmlzaWJsZVBvc2l0aW9uUmFu
Z2UsIGZvcm1hdCwgRm9ybWF0QnVmZmVyU2l6ZSk7CisgICAgICAgIHJldHVybiAoTlNTdHJpbmcg
KilTdHJpbmcoZm9ybWF0LCBGb3JtYXRCdWZmZXJTaXplKTsKKyAgICB9CisjZW5kaWYKKwogICAg
IGlmIChpczxBY2Nlc3NpYmlsaXR5VGFibGU+KCptX29iamVjdCkgJiYgZG93bmNhc3Q8QWNjZXNz
aWJpbGl0eVRhYmxlPigqbV9vYmplY3QpLmlzRXhwb3NhYmxlVGhyb3VnaEFjY2Vzc2liaWxpdHko
KSkgewogICAgICAgICBpZiAoW2F0dHJpYnV0ZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmls
aXR5Q2VsbEZvckNvbHVtbkFuZFJvd1BhcmFtZXRlcml6ZWRBdHRyaWJ1dGVdKSB7CiAgICAgICAg
ICAgICBpZiAoYXJyYXkgPT0gbmlsIHx8IFthcnJheSBjb3VudF0gIT0gMikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNw
cAppbmRleCBhMGE1YzZmLi43NTM2NmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
VGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCkBAIC0yMjgsOCArMjI4
LDEyIEBAIHZvaWQgVGV4dDo6Zm9ybWF0Rm9yRGVidWdnZXIoY2hhciogYnVmZmVyLCB1bnNpZ25l
ZCBsZW5ndGgpIGNvbnN0CiAgICAgaWYgKHMubGVuZ3RoKCkgPiAwKSB7CiAgICAgICAgIGlmIChy
ZXN1bHQubGVuZ3RoKCkpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiOyAiKTsK
LSAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoInZhbHVlPSIpOworICAgICAgICByZXN1bHQu
YXBwZW5kTGl0ZXJhbCgiY291bnQ9Iik7CisgICAgICAgIHJlc3VsdC5hcHBlbmROdW1iZXIocy5s
ZW5ndGgoKSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCI7ICIpOworICAgICAgICBy
ZXN1bHQuYXBwZW5kTGl0ZXJhbCgidmFsdWU9XCIiKTsKICAgICAgICAgcmVzdWx0LmFwcGVuZChz
KTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIlwiIik7CiAgICAgfQogCiAgICAgc3Ry
bmNweShidWZmZXIsIHJlc3VsdC50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIGxlbmd0aCAtIDEp
OwotLSAKMi4zLjQgKEFwcGxlIEdpdC01NikKCg==
</data>
<flag name="review"
          id="278480"
          type_id="1"
          status="-"
          setter="cfleizach"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253692</attachid>
            <date>2015-05-25 13:28:23 -0700</date>
            <delta_ts>2015-05-26 11:56:12 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-AX-debugging-attributes-for-text-markers.patch</filename>
            <type>text/plain</type>
            <size>6092</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSBlZTU4MzZhZTcxZTRlMjFhMGYxZGVlOGZmMjNhYmE0YmI5N2IwMzFlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFRodSwgMjEgTWF5IDIwMTUgMTQ6MjE6MzIgLTA3MDAKU3ViamVjdDogW1BBVENIXSBBWDog
ZGVidWdnaW5nIGF0dHJpYnV0ZXMgZm9yIHRleHQgbWFya2VycwoKaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTI4MwotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjcgKysrKysrKysrKysKIC4uLi9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gICAgICAgIHwgNTYgKysrKysrKysrKysr
KysrKysrKysrLQogU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgNiArKy0KIDMgZmlsZXMgY2hhbmdlZCwgODcgaW5zZXJ0aW9ucygrKSwgMiBkZWxl
dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2QwOWFmYi4uMGU4ZWRkNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDMwIEBACisyMDE1LTA1LTI1ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUu
Y29tPgorCisgICAgICAgIEFYOiBkZWJ1Z2dpbmcgYXR0cmlidXRlcyBmb3IgdGV4dCBtYXJrZXJz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDUyODMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBWFRleHRN
YXJrZXJEZWJ1Z0Rlc2NyaXB0aW9uOiByZXR1cm5zIHRoZSByZXN1bHQgb2YKKyAgICAgICAgVmlz
aWJsZVBvc2l0aW9uOjpmb3JtYXRGb3JEZWJ1Z2dlcigpIGZvciB0aGUgdmlzaWJsZSBwb3NpdGlv
biB0aGF0IGEgdGV4dCBtYXJrZXIKKyAgICAgICAgcmVwcmVzZW50cy4KKyAgICAgICAgQVhUZXh0
TWFya2VyTm9kZURlYnVnRGVzY3JpcHRpb246IGNhbGxzIE5vZGU6OnNob3dOb2RlKCkgYW5kCisg
ICAgICAgIE5vZGU6OnNob3dOb2RlUGF0aEZvclRoaXMoKSBmb3IgdGhlIHZpc2libGUgcG9zaXRp
b24gdGhhdCBhIHRleHQgbWFya2VyCisgICAgICAgIHJlcHJlc2VudHMuCisgICAgICAgIEFYVGV4
dE1hcmtlck5vZGVUcmVlRGVidWdEZXNjcmlwdGlvbjogY2FsbHMgTm9kZTo6c2hvd1RyZWVGb3JU
aGlzKCkgZm9yIHRoZQorICAgICAgICB2aXNpYmxlIHBvc2l0aW9uIHRoYXQgYSB0ZXh0IG1hcmtl
ciByZXByZXNlbnRzLgorICAgICAgICBBWFRleHRNYXJrZXJSYW5nZURlYnVnRGVzY3JpcHRpb246
IHJldHVybnMgdGhlIHJlc3VsdCBvZgorICAgICAgICBmb3JtYXRGb3JEZWJ1Z2dlcihWaXNpYmxl
UG9zaXRpb25SYW5nZSkgZm9yIHRoZSB2aXNpYmxlIHBvc2l0aW9uIHJhbmdlIHRoYXQgYSB0ZXh0
CisgICAgICAgIG1hcmtlciByYW5nZSByZXByZXNlbnRzLgorCisgICAgICAgIFRoaXMgaXMgZGVi
dWcgb25seSB0b29saW5nLiBUZXN0cyB3b3VsZCBiZSBmbGFrZXkgYW5kIG5vdCB2ZXJ5IGhlbHBm
dWwuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlck1hYy5tbToKKyAgICAgICAgKGZvcm1hdEZvckRlYnVnZ2VyKToKKyAgICAgICAgKC1b
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVl
OmZvclBhcmFtZXRlcjpdKToKKyAgICAgICAgKiBkb20vVGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0Ojpmb3JtYXRGb3JEZWJ1Z2dlcik6CisKIDIwMTUtMDUtMjQgIFNhbSBXZWluaWcg
IDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBDcmFzaCB3aGVuIHVzaW5nIGEgcmVtb3ZlZCBT
Y3JpcHRNZXNzYWdlSGFuZGxlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5t
bQppbmRleCAxMzU0Njc4Li41YTdhY2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlck1hYy5tbQpAQCAtMzQ4NSw2ICszNDg1LDI0IEBAIHN0YXRpYyBSZW5kZXJPYmplY3QqIHJl
bmRlcmVyRm9yVmlldyhOU1ZpZXcqIHZpZXcpCiAgICAgcmV0dXJuIFthdHRyU3RyaW5nIFJURkZy
b21SYW5nZTogTlNNYWtlUmFuZ2UoMCwgW2F0dHJTdHJpbmcgbGVuZ3RoXSkgZG9jdW1lbnRBdHRy
aWJ1dGVzOkB7IH1dOwogfQogCisjaWYgRU5BQkxFKFRSRUVfREVCVUdHSU5HKQorc3RhdGljIHZv
aWQgZm9ybWF0Rm9yRGVidWdnZXIoY29uc3QgVmlzaWJsZVBvc2l0aW9uUmFuZ2UmIHJhbmdlLCBj
aGFyKiBidWZmZXIsIHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICBTdHJpbmdCdWlsZGVyIHJlc3Vs
dDsKKyAgICAKKyAgICBjb25zdCBpbnQgRm9ybWF0QnVmZmVyU2l6ZSA9IDEwMjQ7CisgICAgY2hh
ciBmb3JtYXRbRm9ybWF0QnVmZmVyU2l6ZV07CisgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoImZy
b20gIik7CisgICAgcmFuZ2Uuc3RhcnQuZm9ybWF0Rm9yRGVidWdnZXIoZm9ybWF0LCBGb3JtYXRC
dWZmZXJTaXplKTsKKyAgICByZXN1bHQuYXBwZW5kKGZvcm1hdCk7CisgICAgcmVzdWx0LmFwcGVu
ZExpdGVyYWwoIiB0byAiKTsKKyAgICByYW5nZS5lbmQuZm9ybWF0Rm9yRGVidWdnZXIoZm9ybWF0
LCBGb3JtYXRCdWZmZXJTaXplKTsKKyAgICByZXN1bHQuYXBwZW5kKGZvcm1hdCk7CisgICAgCisg
ICAgc3RybmNweShidWZmZXIsIHJlc3VsdC50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIGxlbmd0
aCAtIDEpOworfQorI2VuZGlmCisKIC0gKGlkKWFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZToo
TlNTdHJpbmcqKWF0dHJpYnV0ZSBmb3JQYXJhbWV0ZXI6KGlkKXBhcmFtZXRlcgogewogICAgIGlk
IHRleHRNYXJrZXIgPSBuaWw7CkBAIC0zNzczLDcgKzM3OTEsNDMgQEAgc3RhdGljIFJlbmRlck9i
amVjdCogcmVuZGVyZXJGb3JWaWV3KE5TVmlldyogdmlldykKICAgICAgICAgVmlzaWJsZVBvc2l0
aW9uUmFuZ2UgdmlzaWJsZVBvc1JhbmdlID0gW3NlbGYgdmlzaWJsZVBvc2l0aW9uUmFuZ2VGb3JU
ZXh0TWFya2VyUmFuZ2U6dGV4dE1hcmtlclJhbmdlXTsKICAgICAgICAgcmV0dXJuIFtzZWxmIHRl
eHRNYXJrZXJGb3JWaXNpYmxlUG9zaXRpb246dmlzaWJsZVBvc1JhbmdlLmVuZF07CiAgICAgfQot
ICAgIAorCisjaWYgRU5BQkxFKFRSRUVfREVCVUdHSU5HKQorICAgIGlmIChbYXR0cmlidXRlIGlz
RXF1YWxUb1N0cmluZzpAIkFYVGV4dE1hcmtlckRlYnVnRGVzY3JpcHRpb24iXSkgeworICAgICAg
ICBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uID0gW3NlbGYgdmlzaWJsZVBvc2l0aW9u
Rm9yVGV4dE1hcmtlcjoodGV4dE1hcmtlcildOworICAgICAgICBjb25zdCBpbnQgRm9ybWF0QnVm
ZmVyU2l6ZSA9IDEwMjQ7CisgICAgICAgIGNoYXIgZm9ybWF0W0Zvcm1hdEJ1ZmZlclNpemVdOwor
ICAgICAgICB2aXNpYmxlUG9zaXRpb24uZm9ybWF0Rm9yRGVidWdnZXIoZm9ybWF0LCBGb3JtYXRC
dWZmZXJTaXplKTsKKyAgICAgICAgcmV0dXJuIChOU1N0cmluZyAqKVN0cmluZyhmb3JtYXQsIEZv
cm1hdEJ1ZmZlclNpemUpOworICAgIH0KKworICAgIGlmIChbYXR0cmlidXRlIGlzRXF1YWxUb1N0
cmluZzpAIkFYVGV4dE1hcmtlck5vZGVEZWJ1Z0Rlc2NyaXB0aW9uIl0pIHsKKyAgICAgICAgVmlz
aWJsZVBvc2l0aW9uIHZpc2libGVQb3NpdGlvbiA9IFtzZWxmIHZpc2libGVQb3NpdGlvbkZvclRl
eHRNYXJrZXI6KHRleHRNYXJrZXIpXTsKKyAgICAgICAgaWYgKE5vZGUqIG5vZGUgPSB2aXNpYmxl
UG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkTm9kZSgpKSB7CisgICAgICAgICAg
ICBub2RlLT5zaG93Tm9kZSgiIik7CisgICAgICAgICAgICBub2RlLT5zaG93Tm9kZVBhdGhGb3JU
aGlzKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICB9CisKKyAgICBpZiAo
W2F0dHJpYnV0ZSBpc0VxdWFsVG9TdHJpbmc6QCJBWFRleHRNYXJrZXJOb2RlVHJlZURlYnVnRGVz
Y3JpcHRpb24iXSkgeworICAgICAgICBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uID0g
W3NlbGYgdmlzaWJsZVBvc2l0aW9uRm9yVGV4dE1hcmtlcjoodGV4dE1hcmtlcildOworICAgICAg
ICBpZiAoTm9kZSogbm9kZSA9IHZpc2libGVQb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJl
Y2F0ZWROb2RlKCkpCisgICAgICAgICAgICBub2RlLT5zaG93VHJlZUZvclRoaXMoKTsKKyAgICAg
ICAgcmV0dXJuIG5pbDsKKyAgICB9CisKKyAgICBpZiAoW2F0dHJpYnV0ZSBpc0VxdWFsVG9TdHJp
bmc6QCJBWFRleHRNYXJrZXJSYW5nZURlYnVnRGVzY3JpcHRpb24iXSkgeworICAgICAgICBWaXNp
YmxlUG9zaXRpb25SYW5nZSB2aXNpYmxlUG9zaXRpb25SYW5nZSA9IFtzZWxmIHZpc2libGVQb3Np
dGlvblJhbmdlRm9yVGV4dE1hcmtlclJhbmdlOnRleHRNYXJrZXJSYW5nZV07CisgICAgICAgIGlm
ICh2aXNpYmxlUG9zaXRpb25SYW5nZS5pc051bGwoKSkKKyAgICAgICAgICAgIHJldHVybiBAIjxu
dWxsPiI7CisgICAgICAgIGNvbnN0IGludCBGb3JtYXRCdWZmZXJTaXplID0gMjA0ODsKKyAgICAg
ICAgY2hhciBmb3JtYXRbRm9ybWF0QnVmZmVyU2l6ZV07CisgICAgICAgIGZvcm1hdEZvckRlYnVn
Z2VyKHZpc2libGVQb3NpdGlvblJhbmdlLCBmb3JtYXQsIEZvcm1hdEJ1ZmZlclNpemUpOworICAg
ICAgICByZXR1cm4gKE5TU3RyaW5nICopU3RyaW5nKGZvcm1hdCwgRm9ybWF0QnVmZmVyU2l6ZSk7
CisgICAgfQorI2VuZGlmCisKICAgICBpZiAoaXM8QWNjZXNzaWJpbGl0eVRhYmxlPigqbV9vYmpl
Y3QpICYmIGRvd25jYXN0PEFjY2Vzc2liaWxpdHlUYWJsZT4oKm1fb2JqZWN0KS5pc0V4cG9zYWJs
ZVRocm91Z2hBY2Nlc3NpYmlsaXR5KCkpIHsKICAgICAgICAgaWYgKFthdHRyaWJ1dGUgaXNFcXVh
bFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eUNlbGxGb3JDb2x1bW5BbmRSb3dQYXJhbWV0ZXJpemVk
QXR0cmlidXRlXSkgewogICAgICAgICAgICAgaWYgKGFycmF5ID09IG5pbCB8fCBbYXJyYXkgY291
bnRdICE9IDIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKaW5kZXggYTBhNWM2Zi4uNzUzNjZiMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9U
ZXh0LmNwcApAQCAtMjI4LDggKzIyOCwxMiBAQCB2b2lkIFRleHQ6OmZvcm1hdEZvckRlYnVnZ2Vy
KGNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgbGVuZ3RoKSBjb25zdAogICAgIGlmIChzLmxlbmd0aCgp
ID4gMCkgewogICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCgpKQogICAgICAgICAgICAgcmVzdWx0
LmFwcGVuZExpdGVyYWwoIjsgIik7Ci0gICAgICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCJ2YWx1
ZT0iKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoImNvdW50PSIpOworICAgICAgICBy
ZXN1bHQuYXBwZW5kTnVtYmVyKHMubGVuZ3RoKCkpOworICAgICAgICByZXN1bHQuYXBwZW5kTGl0
ZXJhbCgiOyAiKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoInZhbHVlPVwiIik7CiAg
ICAgICAgIHJlc3VsdC5hcHBlbmQocyk7CisgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCJc
IiIpOwogICAgIH0KIAogICAgIHN0cm5jcHkoYnVmZmVyLCByZXN1bHQudG9TdHJpbmcoKS51dGY4
KCkuZGF0YSgpLCBsZW5ndGggLSAxKTsKLS0gCjIuMy40IChBcHBsZSBHaXQtNTYpCgo=
</data>
<flag name="review"
          id="278632"
          type_id="1"
          status="-"
          setter="cfleizach"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253714</attachid>
            <date>2015-05-26 11:56:12 -0700</date>
            <delta_ts>2015-06-02 17:39:12 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-AX-debugging-attributes-for-text-markers.patch</filename>
            <type>text/plain</type>
            <size>6823</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSBlMGYxZTYxY2E5YmM4MjFlOTg2ODMwZmM1YTk1ODEyMGMxOWE0OGFhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFRodSwgMjEgTWF5IDIwMTUgMTQ6MjE6MzIgLTA3MDAKU3ViamVjdDogW1BBVENIXSBBWDog
ZGVidWdnaW5nIGF0dHJpYnV0ZXMgZm9yIHRleHQgbWFya2VycwoKaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTI4MwotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMzEgKysrKysrKysrCiAuLi4vbWFjL1dlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tICAgICAgICB8IDc3ICsrKysrKysrKysrKysr
KysrKysrKy0KIFNvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcCAgICAgICAgICAgICAgICAgICAg
ICAgIHwgIDYgKy0KIDMgZmlsZXMgY2hhbmdlZCwgMTEyIGluc2VydGlvbnMoKyksIDIgZGVsZXRp
b25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IGNkMDlhZmIuLjNhMDg1NjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNCBAQAorMjAxNS0wNS0yNSAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNv
bT4KKworICAgICAgICBBWDogZGVidWdnaW5nIGF0dHJpYnV0ZXMgZm9yIHRleHQgbWFya2Vycwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1MjgzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQVhUZXh0TWFy
a2VyRGVidWdEZXNjcmlwdGlvbjogcmV0dXJucyB0aGUgcmVzdWx0IG9mCisgICAgICAgIFZpc2li
bGVQb3NpdGlvbjo6Zm9ybWF0Rm9yRGVidWdnZXIoKSBmb3IgdGhlIHZpc2libGUgcG9zaXRpb24g
dGhhdCBhIHRleHQgbWFya2VyCisgICAgICAgIHJlcHJlc2VudHMuCisgICAgICAgIEFYVGV4dE1h
cmtlck5vZGVEZWJ1Z0Rlc2NyaXB0aW9uOiBjYWxscyBOb2RlOjpzaG93Tm9kZSgpIGFuZAorICAg
ICAgICBOb2RlOjpzaG93Tm9kZVBhdGhGb3JUaGlzKCkgZm9yIHRoZSB2aXNpYmxlIHBvc2l0aW9u
IHRoYXQgYSB0ZXh0IG1hcmtlcgorICAgICAgICByZXByZXNlbnRzLgorICAgICAgICBBWFRleHRN
YXJrZXJOb2RlVHJlZURlYnVnRGVzY3JpcHRpb246IGNhbGxzIE5vZGU6OnNob3dUcmVlRm9yVGhp
cygpIGZvciB0aGUKKyAgICAgICAgdmlzaWJsZSBwb3NpdGlvbiB0aGF0IGEgdGV4dCBtYXJrZXIg
cmVwcmVzZW50cy4KKyAgICAgICAgQVhUZXh0TWFya2VyUmFuZ2VEZWJ1Z0Rlc2NyaXB0aW9uOiBy
ZXR1cm5zIHRoZSByZXN1bHQgb2YKKyAgICAgICAgZm9ybWF0Rm9yRGVidWdnZXIoVmlzaWJsZVBv
c2l0aW9uUmFuZ2UpIGZvciB0aGUgdmlzaWJsZSBwb3NpdGlvbiByYW5nZSB0aGF0IGEgdGV4dAor
ICAgICAgICBtYXJrZXIgcmFuZ2UgcmVwcmVzZW50cy4KKworICAgICAgICBUaGlzIGlzIGRlYnVn
IG9ubHkgdG9vbGluZy4gVGVzdHMgd291bGQgYmUgZmxha2V5IGFuZCBub3QgdmVyeSBoZWxwZnVs
LgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJNYWMubW06CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGRl
YnVnRGVzY3JpcHRpb25Gb3JUZXh0TWFya2VyOl0pOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlciBkZWJ1Z0Rlc2NyaXB0aW9uRm9yVGV4dE1hcmtlclJhbmdlOl0pOgor
ICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBzaG93Tm9kZUZvclRleHRN
YXJrZXI6XSk6CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIHNob3dO
b2RlVHJlZUZvclRleHRNYXJrZXI6XSk6CisgICAgICAgIChmb3JtYXRGb3JEZWJ1Z2dlcik6Cisg
ICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxpdHlBdHRy
aWJ1dGVWYWx1ZTpmb3JQYXJhbWV0ZXI6XSk6CisgICAgICAgICogZG9tL1RleHQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dDo6Zm9ybWF0Rm9yRGVidWdnZXIpOgorCiAyMDE1LTA1LTI0ICBT
YW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ3Jhc2ggd2hlbiB1c2luZyBh
IHJlbW92ZWQgU2NyaXB0TWVzc2FnZUhhbmRsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJNYWMubW0KaW5kZXggMTM1NDY3OC4uYTJmZDU5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJNYWMubW0KQEAgLTM0ODUsNiArMzQ4NSw2MyBAQCBzdGF0aWMgUmVuZGVy
T2JqZWN0KiByZW5kZXJlckZvclZpZXcoTlNWaWV3KiB2aWV3KQogICAgIHJldHVybiBbYXR0clN0
cmluZyBSVEZGcm9tUmFuZ2U6IE5TTWFrZVJhbmdlKDAsIFthdHRyU3RyaW5nIGxlbmd0aF0pIGRv
Y3VtZW50QXR0cmlidXRlczpAeyB9XTsKIH0KIAorI2lmIEVOQUJMRShUUkVFX0RFQlVHR0lORykK
Ky0gKE5TU3RyaW5nICopZGVidWdEZXNjcmlwdGlvbkZvclRleHRNYXJrZXI6KGlkKXRleHRNYXJr
ZXIKK3sKKyAgICBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uID0gW3NlbGYgdmlzaWJs
ZVBvc2l0aW9uRm9yVGV4dE1hcmtlcjp0ZXh0TWFya2VyXTsKKyAgICBjb25zdCBpbnQgRm9ybWF0
QnVmZmVyU2l6ZSA9IDEwMjQ7CisgICAgY2hhciBmb3JtYXRbRm9ybWF0QnVmZmVyU2l6ZV07Cisg
ICAgdmlzaWJsZVBvc2l0aW9uLmZvcm1hdEZvckRlYnVnZ2VyKGZvcm1hdCwgRm9ybWF0QnVmZmVy
U2l6ZSk7CisgICAgcmV0dXJuIChOU1N0cmluZyAqKVN0cmluZyhmb3JtYXQsIEZvcm1hdEJ1ZmZl
clNpemUpOworfQorCistIChOU1N0cmluZyAqKWRlYnVnRGVzY3JpcHRpb25Gb3JUZXh0TWFya2Vy
UmFuZ2U6KGlkKXRleHRNYXJrZXJSYW5nZQoreworICAgIFZpc2libGVQb3NpdGlvblJhbmdlIHZp
c2libGVQb3NpdGlvblJhbmdlID0gW3NlbGYgdmlzaWJsZVBvc2l0aW9uUmFuZ2VGb3JUZXh0TWFy
a2VyUmFuZ2U6dGV4dE1hcmtlclJhbmdlXTsKKyAgICBpZiAodmlzaWJsZVBvc2l0aW9uUmFuZ2Uu
aXNOdWxsKCkpCisgICAgICAgIHJldHVybiBAIjxudWxsPiI7CisgICAgY29uc3QgaW50IEZvcm1h
dEJ1ZmZlclNpemUgPSAyMDQ4OworICAgIGNoYXIgZm9ybWF0W0Zvcm1hdEJ1ZmZlclNpemVdOwor
ICAgIGZvcm1hdEZvckRlYnVnZ2VyKHZpc2libGVQb3NpdGlvblJhbmdlLCBmb3JtYXQsIEZvcm1h
dEJ1ZmZlclNpemUpOworICAgIHJldHVybiAoTlNTdHJpbmcgKilTdHJpbmcoZm9ybWF0LCBGb3Jt
YXRCdWZmZXJTaXplKTsKK30KKworLSAodm9pZClzaG93Tm9kZUZvclRleHRNYXJrZXI6KGlkKXRl
eHRNYXJrZXIKK3sKKyAgICBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uID0gW3NlbGYg
dmlzaWJsZVBvc2l0aW9uRm9yVGV4dE1hcmtlcjp0ZXh0TWFya2VyXTsKKyAgICBOb2RlKiBub2Rl
ID0gdmlzaWJsZVBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZE5vZGUoKTsKKyAg
ICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKyAgICBub2RlLT5zaG93Tm9kZSgiIik7Cisg
ICAgbm9kZS0+c2hvd05vZGVQYXRoRm9yVGhpcygpOworfQorCistICh2b2lkKXNob3dOb2RlVHJl
ZUZvclRleHRNYXJrZXI6KGlkKXRleHRNYXJrZXIKK3sKKyAgICBWaXNpYmxlUG9zaXRpb24gdmlz
aWJsZVBvc2l0aW9uID0gW3NlbGYgdmlzaWJsZVBvc2l0aW9uRm9yVGV4dE1hcmtlcjp0ZXh0TWFy
a2VyXTsKKyAgICBOb2RlKiBub2RlID0gdmlzaWJsZVBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCku
ZGVwcmVjYXRlZE5vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKyAgICBu
b2RlLT5zaG93VHJlZUZvclRoaXMoKTsKK30KKworc3RhdGljIHZvaWQgZm9ybWF0Rm9yRGVidWdn
ZXIoY29uc3QgVmlzaWJsZVBvc2l0aW9uUmFuZ2UmIHJhbmdlLCBjaGFyKiBidWZmZXIsIHVuc2ln
bmVkIGxlbmd0aCkKK3sKKyAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKKyAgICAKKyAgICBjb25z
dCBpbnQgRm9ybWF0QnVmZmVyU2l6ZSA9IDEwMjQ7CisgICAgY2hhciBmb3JtYXRbRm9ybWF0QnVm
ZmVyU2l6ZV07CisgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoImZyb20gIik7CisgICAgcmFuZ2Uu
c3RhcnQuZm9ybWF0Rm9yRGVidWdnZXIoZm9ybWF0LCBGb3JtYXRCdWZmZXJTaXplKTsKKyAgICBy
ZXN1bHQuYXBwZW5kKGZvcm1hdCk7CisgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIiB0byAiKTsK
KyAgICByYW5nZS5lbmQuZm9ybWF0Rm9yRGVidWdnZXIoZm9ybWF0LCBGb3JtYXRCdWZmZXJTaXpl
KTsKKyAgICByZXN1bHQuYXBwZW5kKGZvcm1hdCk7CisgICAgCisgICAgc3RybmNweShidWZmZXIs
IHJlc3VsdC50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIGxlbmd0aCAtIDEpOworfQorI2VuZGlm
CisKIC0gKGlkKWFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTooTlNTdHJpbmcqKWF0dHJpYnV0
ZSBmb3JQYXJhbWV0ZXI6KGlkKXBhcmFtZXRlcgogewogICAgIGlkIHRleHRNYXJrZXIgPSBuaWw7
CkBAIC0zNzczLDcgKzM4MzAsMjUgQEAgc3RhdGljIFJlbmRlck9iamVjdCogcmVuZGVyZXJGb3JW
aWV3KE5TVmlldyogdmlldykKICAgICAgICAgVmlzaWJsZVBvc2l0aW9uUmFuZ2UgdmlzaWJsZVBv
c1JhbmdlID0gW3NlbGYgdmlzaWJsZVBvc2l0aW9uUmFuZ2VGb3JUZXh0TWFya2VyUmFuZ2U6dGV4
dE1hcmtlclJhbmdlXTsKICAgICAgICAgcmV0dXJuIFtzZWxmIHRleHRNYXJrZXJGb3JWaXNpYmxl
UG9zaXRpb246dmlzaWJsZVBvc1JhbmdlLmVuZF07CiAgICAgfQotICAgIAorCisjaWYgRU5BQkxF
KFRSRUVfREVCVUdHSU5HKQorICAgIGlmIChbYXR0cmlidXRlIGlzRXF1YWxUb1N0cmluZzpAIkFY
VGV4dE1hcmtlckRlYnVnRGVzY3JpcHRpb24iXSkKKyAgICAgICAgcmV0dXJuIFtzZWxmIGRlYnVn
RGVzY3JpcHRpb25Gb3JUZXh0TWFya2VyOnRleHRNYXJrZXJdOworCisgICAgaWYgKFthdHRyaWJ1
dGUgaXNFcXVhbFRvU3RyaW5nOkAiQVhUZXh0TWFya2VyUmFuZ2VEZWJ1Z0Rlc2NyaXB0aW9uIl0p
CisgICAgICAgIHJldHVybiBbc2VsZiBkZWJ1Z0Rlc2NyaXB0aW9uRm9yVGV4dE1hcmtlclJhbmdl
OnRleHRNYXJrZXJSYW5nZV07CisKKyAgICBpZiAoW2F0dHJpYnV0ZSBpc0VxdWFsVG9TdHJpbmc6
QCJBWFRleHRNYXJrZXJOb2RlRGVidWdEZXNjcmlwdGlvbiJdKSB7CisgICAgICAgIFtzZWxmIHNo
b3dOb2RlRm9yVGV4dE1hcmtlcjp0ZXh0TWFya2VyXTsKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAg
ICB9CisKKyAgICBpZiAoW2F0dHJpYnV0ZSBpc0VxdWFsVG9TdHJpbmc6QCJBWFRleHRNYXJrZXJO
b2RlVHJlZURlYnVnRGVzY3JpcHRpb24iXSkgeworICAgICAgICBbc2VsZiBzaG93Tm9kZVRyZWVG
b3JUZXh0TWFya2VyOnRleHRNYXJrZXJdOworICAgICAgICByZXR1cm4gbmlsOworICAgIH0KKyNl
bmRpZgorCiAgICAgaWYgKGlzPEFjY2Vzc2liaWxpdHlUYWJsZT4oKm1fb2JqZWN0KSAmJiBkb3du
Y2FzdDxBY2Nlc3NpYmlsaXR5VGFibGU+KCptX29iamVjdCkuaXNFeHBvc2FibGVUaHJvdWdoQWNj
ZXNzaWJpbGl0eSgpKSB7CiAgICAgICAgIGlmIChbYXR0cmlidXRlIGlzRXF1YWxUb1N0cmluZzpO
U0FjY2Vzc2liaWxpdHlDZWxsRm9yQ29sdW1uQW5kUm93UGFyYW1ldGVyaXplZEF0dHJpYnV0ZV0p
IHsKICAgICAgICAgICAgIGlmIChhcnJheSA9PSBuaWwgfHwgW2FycmF5IGNvdW50XSAhPSAyKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1RleHQuY3BwCmluZGV4IGEwYTVjNmYuLjlmOGEyYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9UZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKQEAg
LTIyOCw4ICsyMjgsMTIgQEAgdm9pZCBUZXh0Ojpmb3JtYXRGb3JEZWJ1Z2dlcihjaGFyKiBidWZm
ZXIsIHVuc2lnbmVkIGxlbmd0aCkgY29uc3QKICAgICBpZiAocy5sZW5ndGgoKSA+IDApIHsKICAg
ICAgICAgaWYgKHJlc3VsdC5sZW5ndGgoKSkKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRl
cmFsKCI7ICIpOwotICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgidmFsdWU9Iik7CisgICAg
ICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCJsZW5ndGg9Iik7CisgICAgICAgIHJlc3VsdC5hcHBl
bmROdW1iZXIocy5sZW5ndGgoKSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCI7ICIp
OworICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgidmFsdWU9XCIiKTsKICAgICAgICAgcmVz
dWx0LmFwcGVuZChzKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIlwiIik7CiAgICAg
fQogCiAgICAgc3RybmNweShidWZmZXIsIHJlc3VsdC50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCks
IGxlbmd0aCAtIDEpOwotLSAKMi4zLjQgKEFwcGxlIEdpdC01NikKCg==
</data>
<flag name="review"
          id="278658"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254126</attachid>
            <date>2015-06-02 17:39:12 -0700</date>
            <delta_ts>2015-06-02 18:30:08 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-AX-debugging-attributes-for-text-markers.patch</filename>
            <type>text/plain</type>
            <size>6752</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSA1YmIxYzA5NzcxN2Y5YmIyY2U1ZTVmZjRmNjk2MWY1MzY1ZTI0ZTkwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFRodSwgMjEgTWF5IDIwMTUgMTQ6MjE6MzIgLTA3MDAKU3ViamVjdDogW1BBVENIXSBBWDog
ZGVidWdnaW5nIGF0dHJpYnV0ZXMgZm9yIHRleHQgbWFya2VycwoKaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTI4MwotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMzEgKysrKysrKysrCiAuLi4vbWFjL1dlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tICAgICAgICB8IDc2ICsrKysrKysrKysrKysr
KysrKysrKy0KIFNvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcCAgICAgICAgICAgICAgICAgICAg
ICAgIHwgIDcgKy0KIDMgZmlsZXMgY2hhbmdlZCwgMTExIGluc2VydGlvbnMoKyksIDMgZGVsZXRp
b25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDI3ZDIzNTMuLjk3ZTllZGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNCBAQAorMjAxNS0wNS0yNSAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNv
bT4KKworICAgICAgICBBWDogZGVidWdnaW5nIGF0dHJpYnV0ZXMgZm9yIHRleHQgbWFya2Vycwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1MjgzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQVhUZXh0TWFy
a2VyRGVidWdEZXNjcmlwdGlvbjogcmV0dXJucyB0aGUgcmVzdWx0IG9mCisgICAgICAgIFZpc2li
bGVQb3NpdGlvbjo6Zm9ybWF0Rm9yRGVidWdnZXIoKSBmb3IgdGhlIHZpc2libGUgcG9zaXRpb24g
dGhhdCBhIHRleHQgbWFya2VyCisgICAgICAgIHJlcHJlc2VudHMuCisgICAgICAgIEFYVGV4dE1h
cmtlck5vZGVEZWJ1Z0Rlc2NyaXB0aW9uOiBjYWxscyBOb2RlOjpzaG93Tm9kZSgpIGFuZAorICAg
ICAgICBOb2RlOjpzaG93Tm9kZVBhdGhGb3JUaGlzKCkgZm9yIHRoZSB2aXNpYmxlIHBvc2l0aW9u
IHRoYXQgYSB0ZXh0IG1hcmtlcgorICAgICAgICByZXByZXNlbnRzLgorICAgICAgICBBWFRleHRN
YXJrZXJOb2RlVHJlZURlYnVnRGVzY3JpcHRpb246IGNhbGxzIE5vZGU6OnNob3dUcmVlRm9yVGhp
cygpIGZvciB0aGUKKyAgICAgICAgdmlzaWJsZSBwb3NpdGlvbiB0aGF0IGEgdGV4dCBtYXJrZXIg
cmVwcmVzZW50cy4KKyAgICAgICAgQVhUZXh0TWFya2VyUmFuZ2VEZWJ1Z0Rlc2NyaXB0aW9uOiBy
ZXR1cm5zIHRoZSByZXN1bHQgb2YKKyAgICAgICAgZm9ybWF0Rm9yRGVidWdnZXIoVmlzaWJsZVBv
c2l0aW9uUmFuZ2UpIGZvciB0aGUgdmlzaWJsZSBwb3NpdGlvbiByYW5nZSB0aGF0IGEgdGV4dAor
ICAgICAgICBtYXJrZXIgcmFuZ2UgcmVwcmVzZW50cy4KKworICAgICAgICBUaGlzIGlzIGRlYnVn
IG9ubHkgdG9vbGluZy4gVGVzdHMgd291bGQgYmUgZmxha2V5IGFuZCBub3QgdmVyeSBoZWxwZnVs
LgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJNYWMubW06CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGRl
YnVnRGVzY3JpcHRpb25Gb3JUZXh0TWFya2VyOl0pOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlciBkZWJ1Z0Rlc2NyaXB0aW9uRm9yVGV4dE1hcmtlclJhbmdlOl0pOgor
ICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBzaG93Tm9kZUZvclRleHRN
YXJrZXI6XSk6CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIHNob3dO
b2RlVHJlZUZvclRleHRNYXJrZXI6XSk6CisgICAgICAgIChmb3JtYXRGb3JEZWJ1Z2dlcik6Cisg
ICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxpdHlBdHRy
aWJ1dGVWYWx1ZTpmb3JQYXJhbWV0ZXI6XSk6CisgICAgICAgICogZG9tL1RleHQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dDo6Zm9ybWF0Rm9yRGVidWdnZXIpOgorCiAyMDE1LTA2LTAyICBE
ZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBObyBuZWVkIHRvIGd1YXJk
IHRoZSBzaXplcyBhdHRyaWJ1dGUgYWdhaW5zdCBQSUNUVVJFX1NJWkVTIGluIHByZWxvYWQgc2Nh
bm5lci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KaW5kZXggMTM1NDY3
OC4uMzkyMzE1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KQEAg
LTM0ODUsNiArMzQ4NSw2MiBAQCBzdGF0aWMgUmVuZGVyT2JqZWN0KiByZW5kZXJlckZvclZpZXco
TlNWaWV3KiB2aWV3KQogICAgIHJldHVybiBbYXR0clN0cmluZyBSVEZGcm9tUmFuZ2U6IE5TTWFr
ZVJhbmdlKDAsIFthdHRyU3RyaW5nIGxlbmd0aF0pIGRvY3VtZW50QXR0cmlidXRlczpAeyB9XTsK
IH0KIAorI2lmIEVOQUJMRShUUkVFX0RFQlVHR0lORykKKy0gKE5TU3RyaW5nICopZGVidWdEZXNj
cmlwdGlvbkZvclRleHRNYXJrZXI6KGlkKXRleHRNYXJrZXIKK3sKKyAgICBjaGFyIGRlc2NyaXB0
aW9uWzEwMjRdOworICAgIFtzZWxmIHZpc2libGVQb3NpdGlvbkZvclRleHRNYXJrZXI6dGV4dE1h
cmtlcl0uZm9ybWF0Rm9yRGVidWdnZXIoZGVzY3JpcHRpb24sIHNpemVvZihkZXNjcmlwdGlvbikp
OworICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5nV2l0aFVURjhTdHJpbmc6ZGVzY3JpcHRpb25d
OworCit9CisKKy0gKE5TU3RyaW5nICopZGVidWdEZXNjcmlwdGlvbkZvclRleHRNYXJrZXJSYW5n
ZTooaWQpdGV4dE1hcmtlclJhbmdlCit7CisgICAgVmlzaWJsZVBvc2l0aW9uUmFuZ2UgdmlzaWJs
ZVBvc2l0aW9uUmFuZ2UgPSBbc2VsZiB2aXNpYmxlUG9zaXRpb25SYW5nZUZvclRleHRNYXJrZXJS
YW5nZTp0ZXh0TWFya2VyUmFuZ2VdOworICAgIGlmICh2aXNpYmxlUG9zaXRpb25SYW5nZS5pc051
bGwoKSkKKyAgICAgICAgcmV0dXJuIEAiPG51bGw+IjsKKyAgICBjaGFyIGRlc2NyaXB0aW9uWzIw
NDhdOworICAgIGZvcm1hdEZvckRlYnVnZ2VyKHZpc2libGVQb3NpdGlvblJhbmdlLCBkZXNjcmlw
dGlvbiwgc2l6ZW9mKGRlc2NyaXB0aW9uKSk7CisgICAgcmV0dXJuIFtOU1N0cmluZyBzdHJpbmdX
aXRoVVRGOFN0cmluZzpkZXNjcmlwdGlvbl07CisKK30KKworLSAodm9pZClzaG93Tm9kZUZvclRl
eHRNYXJrZXI6KGlkKXRleHRNYXJrZXIKK3sKKyAgICBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBv
c2l0aW9uID0gW3NlbGYgdmlzaWJsZVBvc2l0aW9uRm9yVGV4dE1hcmtlcjp0ZXh0TWFya2VyXTsK
KyAgICBOb2RlKiBub2RlID0gdmlzaWJsZVBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVj
YXRlZE5vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKyAgICBub2RlLT5z
aG93Tm9kZSgpOworICAgIG5vZGUtPnNob3dOb2RlUGF0aEZvclRoaXMoKTsKK30KKworLSAodm9p
ZClzaG93Tm9kZVRyZWVGb3JUZXh0TWFya2VyOihpZCl0ZXh0TWFya2VyCit7CisgICAgVmlzaWJs
ZVBvc2l0aW9uIHZpc2libGVQb3NpdGlvbiA9IFtzZWxmIHZpc2libGVQb3NpdGlvbkZvclRleHRN
YXJrZXI6dGV4dE1hcmtlcl07CisgICAgTm9kZSogbm9kZSA9IHZpc2libGVQb3NpdGlvbi5kZWVw
RXF1aXZhbGVudCgpLmRlcHJlY2F0ZWROb2RlKCk7CisgICAgaWYgKCFub2RlKQorICAgICAgICBy
ZXR1cm47CisgICAgbm9kZS0+c2hvd1RyZWVGb3JUaGlzKCk7Cit9CisKK3N0YXRpYyB2b2lkIGZv
cm1hdEZvckRlYnVnZ2VyKGNvbnN0IFZpc2libGVQb3NpdGlvblJhbmdlJiByYW5nZSwgY2hhciog
YnVmZmVyLCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7Cisg
ICAgCisgICAgY29uc3QgaW50IEZvcm1hdEJ1ZmZlclNpemUgPSAxMDI0OworICAgIGNoYXIgZm9y
bWF0W0Zvcm1hdEJ1ZmZlclNpemVdOworICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCJmcm9tICIp
OworICAgIHJhbmdlLnN0YXJ0LmZvcm1hdEZvckRlYnVnZ2VyKGZvcm1hdCwgRm9ybWF0QnVmZmVy
U2l6ZSk7CisgICAgcmVzdWx0LmFwcGVuZChmb3JtYXQpOworICAgIHJlc3VsdC5hcHBlbmRMaXRl
cmFsKCIgdG8gIik7CisgICAgcmFuZ2UuZW5kLmZvcm1hdEZvckRlYnVnZ2VyKGZvcm1hdCwgRm9y
bWF0QnVmZmVyU2l6ZSk7CisgICAgcmVzdWx0LmFwcGVuZChmb3JtYXQpOworICAgIAorICAgIHN0
cmxjcHkoYnVmZmVyLCByZXN1bHQudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBsZW5ndGgpOwor
fQorI2VuZGlmCisKIC0gKGlkKWFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTooTlNTdHJpbmcq
KWF0dHJpYnV0ZSBmb3JQYXJhbWV0ZXI6KGlkKXBhcmFtZXRlcgogewogICAgIGlkIHRleHRNYXJr
ZXIgPSBuaWw7CkBAIC0zNzczLDcgKzM4MjksMjUgQEAgc3RhdGljIFJlbmRlck9iamVjdCogcmVu
ZGVyZXJGb3JWaWV3KE5TVmlldyogdmlldykKICAgICAgICAgVmlzaWJsZVBvc2l0aW9uUmFuZ2Ug
dmlzaWJsZVBvc1JhbmdlID0gW3NlbGYgdmlzaWJsZVBvc2l0aW9uUmFuZ2VGb3JUZXh0TWFya2Vy
UmFuZ2U6dGV4dE1hcmtlclJhbmdlXTsKICAgICAgICAgcmV0dXJuIFtzZWxmIHRleHRNYXJrZXJG
b3JWaXNpYmxlUG9zaXRpb246dmlzaWJsZVBvc1JhbmdlLmVuZF07CiAgICAgfQotICAgIAorCisj
aWYgRU5BQkxFKFRSRUVfREVCVUdHSU5HKQorICAgIGlmIChbYXR0cmlidXRlIGlzRXF1YWxUb1N0
cmluZzpAIkFYVGV4dE1hcmtlckRlYnVnRGVzY3JpcHRpb24iXSkKKyAgICAgICAgcmV0dXJuIFtz
ZWxmIGRlYnVnRGVzY3JpcHRpb25Gb3JUZXh0TWFya2VyOnRleHRNYXJrZXJdOworCisgICAgaWYg
KFthdHRyaWJ1dGUgaXNFcXVhbFRvU3RyaW5nOkAiQVhUZXh0TWFya2VyUmFuZ2VEZWJ1Z0Rlc2Ny
aXB0aW9uIl0pCisgICAgICAgIHJldHVybiBbc2VsZiBkZWJ1Z0Rlc2NyaXB0aW9uRm9yVGV4dE1h
cmtlclJhbmdlOnRleHRNYXJrZXJSYW5nZV07CisKKyAgICBpZiAoW2F0dHJpYnV0ZSBpc0VxdWFs
VG9TdHJpbmc6QCJBWFRleHRNYXJrZXJOb2RlRGVidWdEZXNjcmlwdGlvbiJdKSB7CisgICAgICAg
IFtzZWxmIHNob3dOb2RlRm9yVGV4dE1hcmtlcjp0ZXh0TWFya2VyXTsKKyAgICAgICAgcmV0dXJu
IG5pbDsKKyAgICB9CisKKyAgICBpZiAoW2F0dHJpYnV0ZSBpc0VxdWFsVG9TdHJpbmc6QCJBWFRl
eHRNYXJrZXJOb2RlVHJlZURlYnVnRGVzY3JpcHRpb24iXSkgeworICAgICAgICBbc2VsZiBzaG93
Tm9kZVRyZWVGb3JUZXh0TWFya2VyOnRleHRNYXJrZXJdOworICAgICAgICByZXR1cm4gbmlsOwor
ICAgIH0KKyNlbmRpZgorCiAgICAgaWYgKGlzPEFjY2Vzc2liaWxpdHlUYWJsZT4oKm1fb2JqZWN0
KSAmJiBkb3duY2FzdDxBY2Nlc3NpYmlsaXR5VGFibGU+KCptX29iamVjdCkuaXNFeHBvc2FibGVU
aHJvdWdoQWNjZXNzaWJpbGl0eSgpKSB7CiAgICAgICAgIGlmIChbYXR0cmlidXRlIGlzRXF1YWxU
b1N0cmluZzpOU0FjY2Vzc2liaWxpdHlDZWxsRm9yQ29sdW1uQW5kUm93UGFyYW1ldGVyaXplZEF0
dHJpYnV0ZV0pIHsKICAgICAgICAgICAgIGlmIChhcnJheSA9PSBuaWwgfHwgW2FycmF5IGNvdW50
XSAhPSAyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL1RleHQuY3BwCmluZGV4IGEwYTVjNmYuLjk3MGYxMmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4
dC5jcHAKQEAgLTIyOCwxMSArMjI4LDE0IEBAIHZvaWQgVGV4dDo6Zm9ybWF0Rm9yRGVidWdnZXIo
Y2hhciogYnVmZmVyLCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0CiAgICAgaWYgKHMubGVuZ3RoKCkg
PiAwKSB7CiAgICAgICAgIGlmIChyZXN1bHQubGVuZ3RoKCkpCiAgICAgICAgICAgICByZXN1bHQu
YXBwZW5kTGl0ZXJhbCgiOyAiKTsKLSAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoInZhbHVl
PSIpOworICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgibGVuZ3RoPSIpOworICAgICAgICBy
ZXN1bHQuYXBwZW5kTnVtYmVyKHMubGVuZ3RoKCkpOworICAgICAgICByZXN1bHQuYXBwZW5kTGl0
ZXJhbCgiOyB2YWx1ZT1cIiIpOwogICAgICAgICByZXN1bHQuYXBwZW5kKHMpOworICAgICAgICBy
ZXN1bHQuYXBwZW5kKCciJyk7CiAgICAgfQogCi0gICAgc3RybmNweShidWZmZXIsIHJlc3VsdC50
b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIGxlbmd0aCAtIDEpOworICAgIHN0cmxjcHkoYnVmZmVy
LCByZXN1bHQudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBsZW5ndGgpOwogfQogI2VuZGlmCiAK
LS0gCjIuMy40IChBcHBsZSBHaXQtNTYpCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>