<?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>124071</bug_id>
          
          <creation_ts>2013-11-08 13:55:39 -0800</creation_ts>
          <short_desc>Web Inspector: [CSS Shapes] Highlight shape-outside when its element is selected in the Web Inspector</short_desc>
          <delta_ts>2013-11-11 14:23:26 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>124070</blocked>
    
    <blocked>124080</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Bear Travis">betravis</reporter>
          <assigned_to name="Bear Travis">betravis</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>lmcliste</cc>
    
    <cc>syoichi</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>948827</commentid>
    <comment_count>0</comment_count>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-11-08 13:55:39 -0800</bug_when>
    <thetext>A first step to visualizing shapes would be to highlight them at the same time as drawing the box highlights.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948828</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-11-08 13:56:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/15427868&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948854</commentid>
    <comment_count>2</comment_count>
      <attachid>216442</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-11-08 14:33:30 -0800</bug_when>
    <thetext>Created attachment 216442
Initial patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948860</commentid>
    <comment_count>3</comment_count>
      <attachid>216444</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-11-08 14:43:21 -0800</bug_when>
    <thetext>Created attachment 216444
Screenshot of highlight behavior

What the highlighting behavior looks like.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948866</commentid>
    <comment_count>4</comment_count>
      <attachid>216442</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2013-11-08 15:08:48 -0800</bug_when>
    <thetext>Comment on attachment 216442
Initial patch

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

&gt; Source/WebCore/inspector/InspectorOverlay.cpp:594
&gt; +#if ENABLE(CSS_SHAPES)

Shouldn&apos;t all of these new functions be enclosed in the #if ENABLE?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948872</commentid>
    <comment_count>5</comment_count>
      <attachid>216449</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-11-08 15:15:59 -0800</bug_when>
    <thetext>Created attachment 216449
Increasing compile guard scope

Done and done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948903</commentid>
    <comment_count>6</comment_count>
      <attachid>216449</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2013-11-08 15:58:58 -0800</bug_when>
    <thetext>Comment on attachment 216449
Increasing compile guard scope

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

&gt; Source/WebCore/inspector/InspectorOverlay.cpp:616
&gt; +    }
&gt; +    case Shape::PolygonType: {

Newline would be nice here.

&gt; Source/WebCore/inspector/InspectorOverlay.cpp:625
&gt; +        }
&gt; +        for (size_t i = 1; i &lt; polygon.numberOfVertices(); i++) {

Ditto.

&gt; Source/WebCore/inspector/InspectorOverlay.cpp:629
&gt; +        }
&gt; +        if (polygon.numberOfVertices())

Ditto.

&gt; Source/WebCore/inspector/InspectorOverlay.cpp:633
&gt; +    default: break;

Instead of default, use a case for RasterType. That way any new shape type added won&apos;t me ignored and cause a compile warning. And add a FIXME comment about why raster isn&apos;t supported yet.

&gt; Source/WebCore/inspector/InspectorOverlay.cpp:635
&gt; +    }
&gt; +    if (path.length()) {

Newline would be nice here.

&gt; Source/WebCore/inspector/InspectorOverlay.cpp:638
&gt; +        PathApplyInfo info;
&gt; +        RefPtr&lt;InspectorArray&gt; shapePath = InspectorArray::create();
&gt; +        info.rootView = containingFrame-&gt;page()-&gt;mainFrame().view();

Putting the info variable closer to where it is used would be nice.

&gt; Source/WebCore/inspector/InspectorOverlay.cpp:643
&gt; +        info.renderer = renderer;
&gt; +        path.apply(&amp;info, &amp;appendPathSegment);
&gt; +        shapeObject-&gt;setArray(&quot;path&quot;, shapePath.release());

A newline between these lines would help separate the setup from the work.

&gt; Source/WebCore/inspector/InspectorOverlay.cpp:707
&gt; +        RefPtr&lt;InspectorObject&gt; shapeObject = buildObjectForShapeOutside(containingFrame, renderBox);
&gt; +        if (shapeObject)

Can be combined into one line with shapeObject being defined in the if ().

&gt; Source/WebCore/inspector/InspectorOverlayPage.js:216
&gt; +        switch(commands[0]) {
&gt; +            // 1 point
&gt; +            case &apos;M&apos;:
&gt; +                commands = pathCommand(context, commands, &quot;moveTo&quot;, 2);
&gt; +                break;
&gt; +            // 1 point
&gt; +            case &apos;L&apos;:
&gt; +                commands = pathCommand(context, commands, &quot;lineTo&quot;, 2);
&gt; +                break;
&gt; +            // 3 points
&gt; +            case &apos;C&apos;:
&gt; +                commands = pathCommand(context, commands, &quot;bezierCurveTo&quot;, 6);
&gt; +                break;
&gt; +            default:
&gt; +                commands = commands.slice(1);
&gt; +        }

WebKit style does not indent the cases. They align with the switch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948914</commentid>
    <comment_count>7</comment_count>
      <attachid>216457</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-11-08 16:19:53 -0800</bug_when>
    <thetext>Created attachment 216457
Incorporating feedback

Making the suggested changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948965</commentid>
    <comment_count>8</comment_count>
      <attachid>216470</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-11-08 17:50:54 -0800</bug_when>
    <thetext>Created attachment 216470
Updating patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948981</commentid>
    <comment_count>9</comment_count>
      <attachid>216457</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-11-08 18:53:49 -0800</bug_when>
    <thetext>Comment on attachment 216457
Incorporating feedback

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

Some late mostly drive-by comments, but one bit of concern.

&gt; Source/WebCore/inspector/InspectorOverlay.cpp:553
&gt; +static void appendPathCommandAndPoints(PathApplyInfo* info, const String&amp; command, const FloatPoint points[], unsigned length)

Nit: Instead of passing length, this could be determined dynamically:

    unsigned length = points ? WTF_ARRAY_LENGTH(points) : 0;

Might be safer if things ever changed. But I think you have the right idea, since the overlay has hardcoded to match numbers.

&gt; Source/WebCore/inspector/InspectorOverlay.cpp:571
&gt; +        appendPathCommandAndPoints(pathApplyInfo, &quot;M&quot;, pathElement-&gt;points, 1);

The constant strings in each of these &quot;M&quot;, &quot;L&quot;, &quot;C&quot;, etc could be made ASCIILiterals for a faster conversation to WTFString:
&lt;http://trac.webkit.org/wiki/EfficientStrings&gt;

    ASCIILiteral(&quot;M&quot;)

&gt; Source/WebCore/inspector/InspectorOverlay.cpp:638
&gt; +    case Shape::RasterType: break;

It would be clearer to put the FIXME &amp; break inside the case. But that is not a big deal.

&gt; Source/WebCore/inspector/InspectorOverlayPage.js:195
&gt; +function pathCommand(context, commands, name, length) {
&gt; +    context[name].apply(context, commands.slice(1, length + 1));
&gt; +    return commands.slice(length + 1);
&gt; +}
&gt; +
&gt; +function drawPath(context, commands, fillColor, outlineColor)

I have some concerns about this code. While it is clever and elegant, it does a lot of unnecessary array manipulation.

I wondered if this could cause unnecessary allocations / copies. Especially since array.slice(…) with primitives returns a copy. For a very long list of values that would be bad.

I wrote up a test comparing arrayManipulation (via slice) to an implementation that just walks the single array (via index) and the results were dramatically different:
&lt;http://jsfiddle.net/4r4v3/&gt;

Of course, this all depends on how long the list of commands are… But still, I&apos;d suggest revisiting this and just walking over the array.

&gt; Source/WebCore/inspector/InspectorOverlayPage.js:217
&gt; +    while(commands.length) {
&gt; +        switch(commands[0]) {
&gt; +        // 1 point
&gt; +        case &apos;M&apos;:
&gt; +            commands = pathCommand(context, commands, &quot;moveTo&quot;, 2);
&gt; +            break;
&gt; +        // 1 point
&gt; +        case &apos;L&apos;:
&gt; +            commands = pathCommand(context, commands, &quot;lineTo&quot;, 2);
&gt; +            break;
&gt; +        // 3 points
&gt; +        case &apos;C&apos;:
&gt; +            commands = pathCommand(context, commands, &quot;bezierCurveTo&quot;, 6);
&gt; +            break;
&gt; +        default:
&gt; +            commands = commands.slice(1);
&gt; +        }
&gt; +    }

Does this need to handle &quot;Q&quot;, output above via PathElementAddQuadCurveToPoint, outputting 2 points?

&gt; Source/WebCore/rendering/shapes/ShapeInfo.h:140
&gt; +    ShapeInfo(const RenderType* renderer): m_renderer(renderer) { }

Nit: I know you are not changing this, but normally for constructors with a single argument we add the &quot;explicit&quot; keyword to prevent implicit casts. Feel free to add that here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948982</commentid>
    <comment_count>10</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-11-08 18:54:37 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; The constant strings in each of these &quot;M&quot;, &quot;L&quot;, &quot;C&quot;, etc could be made ASCIILiterals for a faster conversation to WTFString:

Lol. &quot;conversation&quot; =&gt; &quot;conversion&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949020</commentid>
    <comment_count>11</comment_count>
      <attachid>216486</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-11-09 01:16:10 -0800</bug_when>
    <thetext>Created attachment 216486
Incorporating Feedback

Got in all of the above feedback except for using WTF_ARRAY_LENGTH, which unfortunately isn&apos;t viable as the array is passed in as a pointer.

The path commands for a shape should tend to be short, but it shouldn&apos;t be a problem to iterate by index rather than continuously splicing.

The shapes don&apos;t ever generate quad curves, but I went ahead and added them for completeness. Only move, line, and bezier curves are used.

I may eventually clean this up via SVGPathStringBuilder, but I would have to reimplement the rounded rectangle generation code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949346</commentid>
    <comment_count>12</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-11-11 09:55:50 -0800</bug_when>
    <thetext>Do you need a cq+? (You could put cq? to signal this).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949367</commentid>
    <comment_count>13</comment_count>
      <attachid>216486</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-11-11 10:33:58 -0800</bug_when>
    <thetext>Comment on attachment 216486
Incorporating Feedback

I just wanted to check that the changes met your concerns. I&apos;ll take your comment as a yes ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949369</commentid>
    <comment_count>14</comment_count>
      <attachid>216486</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-11 10:59:53 -0800</bug_when>
    <thetext>Comment on attachment 216486
Incorporating Feedback

Rejecting attachment 216486 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-01&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 216486, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
t.org/repository/webkit/trunk ...
Authentication realm: &lt;http://svn.webkit.org:80&gt; Mac OS Forge
Password for &apos;commit-queue@webkit.org&apos;: 
Authentication realm: &lt;http://svn.webkit.org:80&gt; Mac OS Forge
Username: Use of uninitialized value $username in chomp at /usr/share/git-core/perl/Git/SVN/Prompt.pm line 114.
error: git-svn died of signal 11

Failed to run &quot;[&apos;git&apos;, &apos;svn&apos;, &apos;dcommit&apos;, &apos;--rmdir&apos;]&quot; exit_code: 139 cwd: /Volumes/Data/EWS/WebKit
Updating OpenSource
Current branch master is up to date.

Full output: http://webkit-queues.appspot.com/results/22868489</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949438</commentid>
    <comment_count>15</comment_count>
      <attachid>216607</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-11-11 13:52:11 -0800</bug_when>
    <thetext>Created attachment 216607
Updating patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949453</commentid>
    <comment_count>16</comment_count>
      <attachid>216607</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-11 14:23:23 -0800</bug_when>
    <thetext>Comment on attachment 216607
Updating patch

Clearing flags on attachment: 216607

Committed r159070: &lt;http://trac.webkit.org/changeset/159070&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949454</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-11 14:23:26 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216442</attachid>
            <date>2013-11-08 14:33:30 -0800</date>
            <delta_ts>2013-11-08 15:15:57 -0800</delta_ts>
            <desc>Initial patch</desc>
            <filename>bug-124071-20131108143329.patch</filename>
            <type>text/plain</type>
            <size>26059</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU4OTQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTAwMTIyNzQxZjAyMTBj
YmYyODNhMGFlOTg3OTQxZWM5MzMxYTIyYS4uNjg0NjEwNjQ2YWYxMzQ0NGM1MDAyNzMxZjVhNDQ5
MzNkMDBmYmEwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEzLTExLTA4ICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBb
Q1NTIFNoYXBlc10gSGlnaGxpZ2h0IHNoYXBlLW91dHNpZGUgd2hlbiBpdHMgZWxlbWVudCBpcyBz
ZWxlY3RlZCBpbiB0aGUgV2ViIEluc3BlY3RvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0MDcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkaW5nIGNvZGUgdG8gcGFzcyBjb21wdXRlZCBzaGFwZSBp
bmZvcm1hdGlvbiAocGF0aCBhbmQgYm91bmRzKSB0byB0aGUgSW5zcGVjdG9yIG92ZXJsYXkKKyAg
ICAgICAgY2FudmFzLCBhbmQgdGhlIGNvZGUgdG8gZGlzcGxheSBpdC4gVGhlIGNvZGUgY3JlYXRl
cyBhIHBhdGggYmFzZWQgb24gU2hhcGVJbmZvJ3MgY29tcHV0ZWQKKyAgICAgICAgc2hhcGUuIFRo
ZSBzaGFwZSBoaWdobGlnaHQgZHJhd3Mgd2hlbmV2ZXIgYW4gZWxlbWVudCBpcyBoaWdobGlnaHRl
ZCwgdmlhIHNlbGVjdGlvbiBpbgorICAgICAgICB0aGUgSW5zcGVjdG9yIGVsZW1lbnRzIHZpZXcu
CisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yLXByb3RvY29sL21vZGVsL2hpZ2hsaWdodC1zaGFw
ZS1vdXRzaWRlLmh0bWwKKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsUG9pbnRUb1Jvb3QpOiBDb252ZXJ0IGEgbG9jYWwg
cG9pbnQgdG8gYmUgcmVsYXRpdmUgdG8gdGhlIHJvb3Qgdmlldy4KKyAgICAgICAgKFdlYkNvcmU6
OmFwcGVuZFBhdGhDb21tYW5kQW5kUG9pbnRzKTogSGVscGVyIGZvciBidWlsZGluZyBhIHNpbmds
ZSBzZWdtZW50J3Mgd29ydGgKKyAgICAgICAgb2YgdGhlIG92ZXJhbGwgcGF0aC4KKyAgICAgICAg
KFdlYkNvcmU6OmFwcGVuZFBhdGhTZWdtZW50KTogQnVpbGQgYSBzaW5nbGUgc2VnbWVudCdzIHdv
cnRoIG9mIHRoZSBvdmVyYWxsIHBhdGguCisgICAgICAgIChXZWJDb3JlOjpidWlsZE9iamVjdEZv
clNoYXBlT3V0c2lkZSk6IEJ1aWxkIGFuIG9iamVjdCB0byBwYXNzIHRvIHRoZSBJbnNwZWN0b3Ig
b3ZlcmxheQorICAgICAgICB0aGF0IHJlcHJlc2VudHMgdGhlIHNoYXBlLgorICAgICAgICAoV2Vi
Q29yZTo6YnVpbGRPYmplY3RGb3JFbGVtZW50SW5mbyk6IENhbGwgYnVpbGRPYmplY3RGb3JTaGFw
ZU91dHNpZGUgYW5kIHBhc3MgdGhlCisgICAgICAgIHJlc3VsdGluZyBvYmplY3QgYWxvbmcuCisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXlQYWdlLmpzOgorICAgICAgICAocGF0
aENvbW1hbmQpOiBEcmF3IGEgc2luZ2xlIHBhdGggY29tbWFuZC4KKyAgICAgICAgKGRyYXdQYXRo
KTogRHJhdyB0aGUgb3ZlcmFsbCBwYXRoLgorICAgICAgICAoX2RyYXdTaGFwZUhpZ2hsaWdodCk6
IERyYXcgdGhlIGhpZ2hsaWdodCBmb3IgdGhlIGdpdmVuIHNoYXBlSW5mby4KKyAgICAgICAgKGRy
YXdOb2RlSGlnaGxpZ2h0KTogQ2FsbCBfZHJhd1NoYXBlSGlnaGxpZ2h0LgorICAgICAgICAqIHJl
bmRlcmluZy9zaGFwZXMvUG9seWdvblNoYXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpQb2x5Z29u
U2hhcGU6OnBvbHlnb24pOiBFeHBvc2UgdGhlIHVuZGVybHlpbmcgdmVydGV4IGluZm9ybWF0aW9u
IGZvciBhCisgICAgICAgIFBvbHlnb25TaGFwZS4KKyAgICAgICAgKiByZW5kZXJpbmcvc2hhcGVz
L1Jhc3RlclNoYXBlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9SZWN0YW5nbGVTaGFw
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVjdGFuZ2xlU2hhcGU6OmxvZ2ljYWxSeCk6IEV4cG9z
ZSB0aGUgbG9naWNhbCByYWRpaSBmb3IgYSBzaGFwZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlY3Rh
bmdsZVNoYXBlOjpsb2dpY2FsUnkpOiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvc2hhcGVz
L1NoYXBlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluZm8uaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNoYXBlSW5mbzo6Y29tcHV0ZWRTaGFwZVBoeXNpY2FsQm91bmRpbmdCb3gp
OiBUaGUgcGh5c2ljYWwgYm91bmRzIG9mIGEKKyAgICAgICAgc2hhcGUgaW4gcmVuZGVyZXIgY29v
cmRpbmF0ZXMuCisgICAgICAgIChXZWJDb3JlOjpTaGFwZUluZm86OnNoYXBlVG9SZW5kZXJlclBv
aW50KTogQ29udmVydCBzaGFwZSBjb29yZGluYXRlcyB0byByZW5kZXJlcgorICAgICAgICBjb29y
ZGluYXRlcy4KKyAgICAgICAgKFdlYkNvcmU6OlNoYXBlSW5mbzo6c2hhcGVUb1JlbmRlcmVyU2l6
ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2hhcGVJbmZvOjpTaGFwZUluZm8pOgorCiAy
MDEzLTExLTA4ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQwNjQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAppbmRleCBhZjNmMjZlMzZm
MTRmY2UwYTY1NWE2ZjBmMDY0ZWVhZjQ0ZWNlMTFmLi4yZTZlMmVjNmZhMjI4YzA0NDhhN2FkNzRj
MjkwZTVmMDlkODBjZTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yT3ZlcmxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ck92ZXJsYXkuY3BwCkBAIC00Myw2ICs0Myw4IEBACiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCiAj
aW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQb2x5Z29uU2hh
cGUuaCIKKyNpbmNsdWRlICJSZWN0YW5nbGVTaGFwZS5oIgogI2luY2x1ZGUgIlJlbmRlckJveE1v
ZGVsT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRl
ckZsb3dUaHJlYWQuaCIKQEAgLTUzMiw2ICs1MzQsMTE5IEBAIHN0YXRpYyBQYXNzUmVmUHRyPElu
c3BlY3RvckFycmF5PiBidWlsZE9iamVjdEZvclJlbmRlcmVyRnJhZ21lbnRzKFJlbmRlck9iamVj
dCoKICAgICByZXR1cm4gZnJhZ21lbnRzQXJyYXkucmVsZWFzZSgpOwogfQogCitzdGF0aWMgRmxv
YXRQb2ludCBsb2NhbFBvaW50VG9Sb290KFJlbmRlck9iamVjdCogcmVuZGVyZXIsIGNvbnN0IEZy
YW1lVmlldyogbWFpblZpZXcsIGNvbnN0IEZyYW1lVmlldyogdmlldywgY29uc3QgRmxvYXRQb2lu
dCYgcG9pbnQpCit7CisgICAgRmxvYXRQb2ludCByZXN1bHQgPSByZW5kZXJlci0+bG9jYWxUb0Fi
c29sdXRlKHBvaW50KTsKKyAgICByZXN1bHQgPSB2aWV3LT5jb250ZW50c1RvUm9vdFZpZXcocm91
bmRlZEludFBvaW50KHJlc3VsdCkpOworICAgIHJlc3VsdCArPSBtYWluVmlldy0+c2Nyb2xsT2Zm
c2V0KCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RydWN0IFBhdGhBcHBseUluZm8gewor
ICAgIEZyYW1lVmlldyogcm9vdFZpZXc7CisgICAgRnJhbWVWaWV3KiB2aWV3OworICAgIEluc3Bl
Y3RvckFycmF5KiBhcnJheTsKKyAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyOworfTsKKworc3Rh
dGljIHZvaWQgYXBwZW5kUGF0aENvbW1hbmRBbmRQb2ludHMoUGF0aEFwcGx5SW5mbyogaW5mbywg
Y29uc3QgU3RyaW5nJiBjb21tYW5kLCBjb25zdCBGbG9hdFBvaW50IHBvaW50c1tdLCB1bnNpZ25l
ZCBsZW5ndGgpCit7CisgICAgRmxvYXRQb2ludCBwb2ludDsKKyAgICBpbmZvLT5hcnJheS0+cHVz
aFN0cmluZyhjb21tYW5kKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyBp
KyspIHsKKyAgICAgICAgcG9pbnQgPSBsb2NhbFBvaW50VG9Sb290KGluZm8tPnJlbmRlcmVyLCBp
bmZvLT5yb290VmlldywgaW5mby0+dmlldywgcG9pbnRzW2ldKTsKKyAgICAgICAgaW5mby0+YXJy
YXktPnB1c2hOdW1iZXIocG9pbnQueCgpKTsKKyAgICAgICAgaW5mby0+YXJyYXktPnB1c2hOdW1i
ZXIocG9pbnQueSgpKTsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkIGFwcGVuZFBhdGhTZWdtZW50
KHZvaWQqIGluZm8sIGNvbnN0IFBhdGhFbGVtZW50KiBwYXRoRWxlbWVudCkKK3sKKyAgICBQYXRo
QXBwbHlJbmZvKiBwYXRoQXBwbHlJbmZvID0gc3RhdGljX2Nhc3Q8UGF0aEFwcGx5SW5mbyo+KGlu
Zm8pOworICAgIEZsb2F0UG9pbnQgcG9pbnQ7CisgICAgc3dpdGNoIChwYXRoRWxlbWVudC0+dHlw
ZSkgeworICAgIC8vIFRoZSBwb2ludHMgbWVtYmVyIHdpbGwgY29udGFpbiAxIHZhbHVlLgorICAg
IGNhc2UgUGF0aEVsZW1lbnRNb3ZlVG9Qb2ludDoKKyAgICAgICAgYXBwZW5kUGF0aENvbW1hbmRB
bmRQb2ludHMocGF0aEFwcGx5SW5mbywgIk0iLCBwYXRoRWxlbWVudC0+cG9pbnRzLCAxKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgLy8gVGhlIHBvaW50cyBtZW1iZXIgd2lsbCBjb250YWluIDEgdmFs
dWUuCisgICAgY2FzZSBQYXRoRWxlbWVudEFkZExpbmVUb1BvaW50OgorICAgICAgICBhcHBlbmRQ
YXRoQ29tbWFuZEFuZFBvaW50cyhwYXRoQXBwbHlJbmZvLCAiTCIsIHBhdGhFbGVtZW50LT5wb2lu
dHMsIDEpOworICAgICAgICBicmVhazsKKyAgICAvLyBUaGUgcG9pbnRzIG1lbWJlciB3aWxsIGNv
bnRhaW4gMyB2YWx1ZXMuCisgICAgY2FzZSBQYXRoRWxlbWVudEFkZEN1cnZlVG9Qb2ludDoKKyAg
ICAgICAgYXBwZW5kUGF0aENvbW1hbmRBbmRQb2ludHMocGF0aEFwcGx5SW5mbywgIkMiLCBwYXRo
RWxlbWVudC0+cG9pbnRzLCAzKTsKKyAgICAgICAgYnJlYWs7CisgICAgLy8gVGhlIHBvaW50cyBt
ZW1iZXIgd2lsbCBjb250YWluIDIgdmFsdWVzLgorICAgIGNhc2UgUGF0aEVsZW1lbnRBZGRRdWFk
Q3VydmVUb1BvaW50OgorICAgICAgICBhcHBlbmRQYXRoQ29tbWFuZEFuZFBvaW50cyhwYXRoQXBw
bHlJbmZvLCAiUSIsIHBhdGhFbGVtZW50LT5wb2ludHMsIDIpOworICAgICAgICBicmVhazsKKyAg
ICAvLyBUaGUgcG9pbnRzIG1lbWJlciB3aWxsIGNvbnRhaW4gbm8gdmFsdWVzLgorICAgIGNhc2Ug
UGF0aEVsZW1lbnRDbG9zZVN1YnBhdGg6CisgICAgICAgIGFwcGVuZFBhdGhDb21tYW5kQW5kUG9p
bnRzKHBhdGhBcHBseUluZm8sICJaIiwgbnVsbHB0ciwgMCk7CisgICAgICAgIGJyZWFrOworICAg
IGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsK
KyAgICB9Cit9CisKKyNpZiBFTkFCTEUoQ1NTX1NIQVBFUykKK3N0YXRpYyBQYXNzUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gYnVpbGRPYmplY3RGb3JTaGFwZU91dHNpZGUoRnJhbWUqIGNvbnRhaW5p
bmdGcmFtZSwgUmVuZGVyQm94KiByZW5kZXJlcikKK3sKKyAgICBjb25zdCBTaGFwZU91dHNpZGVJ
bmZvKiBzaGFwZU91dHNpZGVJbmZvID0gcmVuZGVyZXItPnNoYXBlT3V0c2lkZUluZm8oKTsKKyAg
ICBpZiAoIXNoYXBlT3V0c2lkZUluZm8pCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAg
UmVmUHRyPEluc3BlY3Rvck9iamVjdD4gc2hhcGVPYmplY3QgPSBJbnNwZWN0b3JPYmplY3Q6OmNy
ZWF0ZSgpOworICAgIExheW91dFJlY3Qgc2hhcGVCb3VuZHMgPSBzaGFwZU91dHNpZGVJbmZvLT5j
b21wdXRlZFNoYXBlUGh5c2ljYWxCb3VuZGluZ0JveCgpOworICAgIEZsb2F0UXVhZCBzaGFwZVF1
YWQgPSByZW5kZXJlci0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3Qoc2hhcGVCb3VuZHMp
KTsKKyAgICBjb250ZW50c1F1YWRUb1BhZ2UoY29udGFpbmluZ0ZyYW1lLT5wYWdlKCktPm1haW5G
cmFtZSgpLnZpZXcoKSwgY29udGFpbmluZ0ZyYW1lLT52aWV3KCksIHNoYXBlUXVhZCk7CisgICAg
c2hhcGVPYmplY3QtPnNldEFycmF5KCJib3VuZHMiLCBidWlsZEFycmF5Rm9yUXVhZChzaGFwZVF1
YWQpKTsKKworICAgIFBhdGggcGF0aDsKKyAgICBzd2l0Y2ggKHNoYXBlT3V0c2lkZUluZm8tPmNv
bXB1dGVkU2hhcGUoKS0+dHlwZSgpKSB7CisgICAgY2FzZSBTaGFwZTo6Um91bmRlZFJlY3Rhbmds
ZVR5cGU6IHsKKyAgICAgICAgY29uc3QgUmVjdGFuZ2xlU2hhcGUqIHNoYXBlID0gc3RhdGljX2Nh
c3Q8Y29uc3QgUmVjdGFuZ2xlU2hhcGUqPihzaGFwZU91dHNpZGVJbmZvLT5jb21wdXRlZFNoYXBl
KCkpOworICAgICAgICBGbG9hdFNpemUgcmFkaWkoc2hhcGUtPmxvZ2ljYWxSeCgpLCBzaGFwZS0+
bG9naWNhbFJ5KCkpOworICAgICAgICByYWRpaSA9IHNoYXBlT3V0c2lkZUluZm8tPnNoYXBlVG9S
ZW5kZXJlclNpemUocmFkaWkpOworICAgICAgICBwYXRoLmFkZFJvdW5kZWRSZWN0KHNoYXBlQm91
bmRzLCByYWRpaSwgUGF0aDo6UHJlZmVyQmV6aWVyUm91bmRlZFJlY3QpOworICAgICAgICBicmVh
azsKKyAgICB9CisgICAgY2FzZSBTaGFwZTo6UG9seWdvblR5cGU6IHsKKyAgICAgICAgY29uc3Qg
UG9seWdvblNoYXBlKiBzaGFwZSA9IHN0YXRpY19jYXN0PGNvbnN0IFBvbHlnb25TaGFwZSo+KHNo
YXBlT3V0c2lkZUluZm8tPmNvbXB1dGVkU2hhcGUoKSk7CisgICAgICAgIGNvbnN0IEZsb2F0UG9s
eWdvbiYgcG9seWdvbiA9IHNoYXBlLT5wb2x5Z29uKCk7CisgICAgICAgIEZsb2F0UG9pbnQgdmVy
dGV4OworCisgICAgICAgIGlmIChwb2x5Z29uLm51bWJlck9mVmVydGljZXMoKSkgeworICAgICAg
ICAgICAgdmVydGV4ID0gc2hhcGVPdXRzaWRlSW5mby0+c2hhcGVUb1JlbmRlcmVyUG9pbnQocG9s
eWdvbi52ZXJ0ZXhBdCgwKSk7CisgICAgICAgICAgICBwYXRoLm1vdmVUbyh2ZXJ0ZXgpOworICAg
ICAgICB9CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAxOyBpIDwgcG9seWdvbi5udW1iZXJPZlZl
cnRpY2VzKCk7IGkrKykgeworICAgICAgICAgICAgRmxvYXRQb2ludCB2ZXJ0ZXggPSBzaGFwZU91
dHNpZGVJbmZvLT5zaGFwZVRvUmVuZGVyZXJQb2ludChwb2x5Z29uLnZlcnRleEF0KGkpKTsKKyAg
ICAgICAgICAgIHBhdGguYWRkTGluZVRvKHZlcnRleCk7CisgICAgICAgIH0KKyAgICAgICAgaWYg
KHBvbHlnb24ubnVtYmVyT2ZWZXJ0aWNlcygpKQorICAgICAgICAgICAgcGF0aC5jbG9zZVN1YnBh
dGgoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGRlZmF1bHQ6IGJyZWFrOworICAgIH0K
KyAgICBpZiAocGF0aC5sZW5ndGgoKSkgeworICAgICAgICBQYXRoQXBwbHlJbmZvIGluZm87Cisg
ICAgICAgIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4gc2hhcGVQYXRoID0gSW5zcGVjdG9yQXJyYXk6
OmNyZWF0ZSgpOworICAgICAgICBpbmZvLnJvb3RWaWV3ID0gY29udGFpbmluZ0ZyYW1lLT5wYWdl
KCktPm1haW5GcmFtZSgpLnZpZXcoKTsKKyAgICAgICAgaW5mby52aWV3ID0gY29udGFpbmluZ0Zy
YW1lLT52aWV3KCk7CisgICAgICAgIGluZm8uYXJyYXkgPSBzaGFwZVBhdGguZ2V0KCk7CisgICAg
ICAgIGluZm8ucmVuZGVyZXIgPSByZW5kZXJlcjsKKyAgICAgICAgcGF0aC5hcHBseSgmaW5mbywg
JmFwcGVuZFBhdGhTZWdtZW50KTsKKyAgICAgICAgc2hhcGVPYmplY3QtPnNldEFycmF5KCJwYXRo
Iiwgc2hhcGVQYXRoLnJlbGVhc2UoKSk7CisgICAgfQorCisgICAgcmV0dXJuIHNoYXBlT2JqZWN0
LnJlbGVhc2UoKTsKK30KKyNlbmRpZgorCiBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+IGJ1aWxkT2JqZWN0Rm9yRWxlbWVudEluZm8oTm9kZSogbm9kZSkKIHsKICAgICBpZiAoIW5v
ZGUtPmlzRWxlbWVudE5vZGUoKSB8fCAhbm9kZS0+ZG9jdW1lbnQoKS5mcmFtZSgpKQpAQCAtNTg1
LDYgKzcwMCwxNSBAQCBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2Jq
ZWN0Rm9yRWxlbWVudEluZm8oTm9kZSogbm9kZSkKICAgICAgICAgZWxlbWVudEluZm8tPnNldE9i
amVjdCgiY29udGVudEZsb3dJbmZvIiwgY29udGVudEZsb3dJbmZvLnJlbGVhc2UoKSk7CiAgICAg
fQogCisjaWYgRU5BQkxFKENTU19TSEFQRVMpCisgICAgaWYgKHJlbmRlcmVyLT5pc0JveCgpKSB7
CisgICAgICAgIFJlbmRlckJveCogcmVuZGVyQm94ID0gdG9SZW5kZXJCb3gocmVuZGVyZXIpOwor
ICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBzaGFwZU9iamVjdCA9IGJ1aWxkT2JqZWN0
Rm9yU2hhcGVPdXRzaWRlKGNvbnRhaW5pbmdGcmFtZSwgcmVuZGVyQm94KTsKKyAgICAgICAgaWYg
KHNoYXBlT2JqZWN0KQorICAgICAgICAgICAgZWxlbWVudEluZm8tPnNldE9iamVjdCgic2hhcGVP
dXRzaWRlSW5mbyIsIHNoYXBlT2JqZWN0LnJlbGVhc2UoKSk7CisgICAgfQorI2VuZGlmCisKICAg
ICByZXR1cm4gZWxlbWVudEluZm8ucmVsZWFzZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheVBhZ2UuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheVBhZ2UuanMKaW5kZXggOTRmMjg2MjVmMmU2OGZj
NmIyOWM4ZTRmMTBkMWM2Zjk1ZDFmZGUzZi4uMzE3ZTE2YjZkZjVjZTQxNDE3YjY0MmFiOTYxYzE4
MjE0YWJlOGViMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ck92ZXJsYXlQYWdlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JP
dmVybGF5UGFnZS5qcwpAQCAtMTgsNiArMTgsOSBAQCBjb25zdCByZWdpb25OdW1iZXJGb250ID0g
ImJvbGQgNDBwdCBzYW5zLXNlcmlmIjsKIGNvbnN0IHJlZ2lvbk51bWJlckZpbGxDb2xvciA9ICJy
Z2JhKDI1NSwgMjU1LCAyNTUsIDAuOSkiOwogY29uc3QgcmVnaW9uTnVtYmVyU3Ryb2tlQ29sb3Ig
PSAicmdiKDYxLCAxMjcsIDIwNCkiOwogCisvLyBDU1MgU2hhcGVzIGhpZ2hsaWdodCBjb2xvcnMK
K2NvbnN0IHNoYXBlSGlnaGxpZ2h0Q29sb3IgPSAicmdiKDI1NSwgMTA1LCAxODApIjsKKwogZnVu
Y3Rpb24gZHJhd1BhdXNlZEluRGVidWdnZXJNZXNzYWdlKG1lc3NhZ2UpCiB7CiAgICAgdmFyIHBh
dXNlZEluRGVidWdnZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGF1c2VkLWluLWRlYnVn
Z2VyIik7CkBAIC0xODQsNiArMTg3LDQ4IEBAIGZ1bmN0aW9uIGRyYXdPdXRsaW5lZFF1YWQocXVh
ZCwgZmlsbENvbG9yLCBvdXRsaW5lQ29sb3IpCiAgICAgY29udGV4dC5yZXN0b3JlKCk7CiB9CiAK
K2Z1bmN0aW9uIHBhdGhDb21tYW5kKGNvbnRleHQsIGNvbW1hbmRzLCBuYW1lLCBsZW5ndGgpIHsK
KyAgICBjb250ZXh0W25hbWVdLmFwcGx5KGNvbnRleHQsIGNvbW1hbmRzLnNsaWNlKDEsIGxlbmd0
aCArIDEpKTsKKyAgICByZXR1cm4gY29tbWFuZHMuc2xpY2UobGVuZ3RoICsgMSk7Cit9CisKK2Z1
bmN0aW9uIGRyYXdQYXRoKGNvbnRleHQsIGNvbW1hbmRzLCBmaWxsQ29sb3IsIG91dGxpbmVDb2xv
cikKK3sKKyAgICBjb250ZXh0LnNhdmUoKTsKKyAgICBjb250ZXh0LmJlZ2luUGF0aCgpOworCisg
ICAgd2hpbGUoY29tbWFuZHMubGVuZ3RoKSB7CisgICAgICAgIHN3aXRjaChjb21tYW5kc1swXSkg
eworICAgICAgICAgICAgLy8gMSBwb2ludAorICAgICAgICAgICAgY2FzZSAnTSc6CisgICAgICAg
ICAgICAgICAgY29tbWFuZHMgPSBwYXRoQ29tbWFuZChjb250ZXh0LCBjb21tYW5kcywgIm1vdmVU
byIsIDIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgLy8gMSBwb2ludAor
ICAgICAgICAgICAgY2FzZSAnTCc6CisgICAgICAgICAgICAgICAgY29tbWFuZHMgPSBwYXRoQ29t
bWFuZChjb250ZXh0LCBjb21tYW5kcywgImxpbmVUbyIsIDIpOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgLy8gMyBwb2ludHMKKyAgICAgICAgICAgIGNhc2UgJ0MnOgorICAg
ICAgICAgICAgICAgIGNvbW1hbmRzID0gcGF0aENvbW1hbmQoY29udGV4dCwgY29tbWFuZHMsICJi
ZXppZXJDdXJ2ZVRvIiwgNik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgICAgIGNvbW1hbmRzID0gY29tbWFuZHMuc2xpY2UoMSk7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBjb250ZXh0LmNsb3NlUGF0aCgpOworICAgIGNvbnRleHQu
ZmlsbFN0eWxlID0gZmlsbENvbG9yOworICAgIGNvbnRleHQuZmlsbCgpOworCisgICAgaWYgKG91
dGxpbmVDb2xvcikgeworICAgICAgICBjb250ZXh0LmxpbmVXaWR0aCA9IDI7CisgICAgICAgIGNv
bnRleHQuc3Ryb2tlU3R5bGUgPSBvdWxpbmVDb2xvcjsKKyAgICAgICAgY29udGV4dC5zdHJva2Uo
KTsKKyAgICB9CisKKyAgICBjb250ZXh0LnJlc3RvcmUoKTsKK30KKwogZnVuY3Rpb24gZHJhd091
dGxpbmVkUXVhZFdpdGhDbGlwKHF1YWQsIGNsaXBRdWFkLCBmaWxsQ29sb3IpCiB7CiAgICAgdmFy
IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKQEAgLTUwNiw2ICs1
NTEsMTMgQEAgZnVuY3Rpb24gX2RyYXdSZWdpb25zSGlnaGxpZ2h0KHJlZ2lvbnMpCiAgICAgfQog
fQogCitmdW5jdGlvbiBfZHJhd1NoYXBlSGlnaGxpZ2h0KHNoYXBlSW5mbykgeworICAgIGlmIChz
aGFwZUluZm8ucGF0aCkKKyAgICAgICAgZHJhd1BhdGgoY29udGV4dCwgc2hhcGVJbmZvLnBhdGgs
IHNoYXBlSGlnaGxpZ2h0Q29sb3IpOworICAgIGVsc2UKKyAgICAgICAgZHJhd091dGxpbmVkUXVh
ZChzaGFwZUluZm8uYm91bmRzLCBzaGFwZUhpZ2hsaWdodENvbG9yLCBzaGFwZUhpZ2hsaWdodENv
bG9yKTsKK30KKwogZnVuY3Rpb24gX2RyYXdGcmFnbWVudEhpZ2hsaWdodChoaWdobGlnaHQpCiB7
CiAgICAgaWYgKCFoaWdobGlnaHQucXVhZHMubGVuZ3RoKSB7CkBAIC01ODAsNiArNjMyLDkgQEAg
ZnVuY3Rpb24gZHJhd05vZGVIaWdobGlnaHQoaGlnaGxpZ2h0KQogICAgIGlmIChoaWdobGlnaHQu
ZWxlbWVudEluZm8gJiYgaGlnaGxpZ2h0LmVsZW1lbnRJbmZvLnJlZ2lvbkZsb3dJbmZvKQogICAg
ICAgICBfZHJhd1JlZ2lvbnNIaWdobGlnaHQoaGlnaGxpZ2h0LmVsZW1lbnRJbmZvLnJlZ2lvbkZs
b3dJbmZvLnJlZ2lvbnMsIGhpZ2hsaWdodCk7CiAKKyAgICBpZiAoaGlnaGxpZ2h0LmVsZW1lbnRJ
bmZvICYmIGhpZ2hsaWdodC5lbGVtZW50SW5mby5zaGFwZU91dHNpZGVJbmZvKQorICAgICAgICBf
ZHJhd1NoYXBlSGlnaGxpZ2h0KGhpZ2hsaWdodC5lbGVtZW50SW5mby5zaGFwZU91dHNpZGVJbmZv
KTsKKwogICAgIGNvbnRleHQucmVzdG9yZSgpOwogCiAgICAgdmFyIGVsZW1lbnRUaXRsZUNvbnRh
aW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlbGVtZW50LXRpdGxlLWNvbnRhaW5lciIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Qb2x5Z29uU2hh
cGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUG9seWdvblNoYXBlLmgKaW5k
ZXggMjY2ODI1Y2E3MzQ4MWIwYWI4OWMwYTBkMTE2MmU0NjEwZWY0MDM1NS4uZTFhNjU3NTA1OGU4
ZWYwNmZkMzhhYWI5NjkyM2QwOWE2Yzg4OTZjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3NoYXBlcy9Qb2x5Z29uU2hhcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc2hhcGVzL1BvbHlnb25TaGFwZS5oCkBAIC05Nyw2ICs5NywxMCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGdldEluY2x1ZGVkSW50ZXJ2YWxzKExheW91dFVuaXQgbG9naWNhbFRv
cCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBTZWdtZW50TGlzdCYpIGNvbnN0IE9WRVJSSURF
OwogICAgIHZpcnR1YWwgYm9vbCBmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKExheW91
dFVuaXQgbWluTG9naWNhbEludGVydmFsVG9wLCBjb25zdCBMYXlvdXRTaXplJiBtaW5Mb2dpY2Fs
SW50ZXJ2YWxTaXplLCBMYXlvdXRVbml0JikgY29uc3QgT1ZFUlJJREU7CiAKKyAgICB2aXJ0dWFs
IFNoYXBlVHlwZSB0eXBlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gU2hhcGU6OlBvbHlnb25U
eXBlOyB9CisKKyAgICBjb25zdCBGbG9hdFBvbHlnb24mIHBvbHlnb24oKSBjb25zdCB7IHJldHVy
biBtX3BvbHlnb247IH0KKwogcHJpdmF0ZToKICAgICBjb25zdCBGbG9hdFBvbHlnb24mIHNoYXBl
TWFyZ2luQm91bmRzKCkgY29uc3Q7CiAgICAgY29uc3QgRmxvYXRQb2x5Z29uJiBzaGFwZVBhZGRp
bmdCb3VuZHMoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
aGFwZXMvUmFzdGVyU2hhcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUmFz
dGVyU2hhcGUuaAppbmRleCBlNDQ4OTQ5N2RhNTJhMDUzNjIxZTc0NzIyYWU1ZDM2Yjc3NTU2ZDg1
Li4xZjU0Y2I3ZjQ0NjZhNDI3ZjMxZmViNTRjYTU3MzEwN2I1N2I4Y2MyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1Jhc3RlclNoYXBlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9SYXN0ZXJTaGFwZS5oCkBAIC05Myw2ICs5Myw4IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0SW5jbHVkZWRJbnRlcnZhbHMoTGF5b3V0VW5p
dCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIFNlZ21lbnRMaXN0JikgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2lj
YWxUb3AoTGF5b3V0VW5pdCBtaW5Mb2dpY2FsSW50ZXJ2YWxUb3AsIGNvbnN0IExheW91dFNpemUm
IG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUsIExheW91dFVuaXQmKSBjb25zdCBPVkVSUklERTsKIAor
ICAgIHZpcnR1YWwgU2hhcGVUeXBlIHR5cGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBTaGFw
ZTo6UmFzdGVyVHlwZTsgfQorCiBwcml2YXRlOgogICAgIGNvbnN0IFJhc3RlclNoYXBlSW50ZXJ2
YWxzJiBtYXJnaW5JbnRlcnZhbHMoKSBjb25zdDsKICAgICBjb25zdCBSYXN0ZXJTaGFwZUludGVy
dmFscyYgcGFkZGluZ0ludGVydmFscygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3NoYXBlcy9SZWN0YW5nbGVTaGFwZS5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3NoYXBlcy9SZWN0YW5nbGVTaGFwZS5oCmluZGV4IGU5ZWNmMDUwNGJiOTkzYzkxMTAz
OTA2MzQ5MzQ1ZWU0Mjk0NDZkNTkuLjAwMDc4Yjg3ZmNiZGZhM2ZhNGI2ZGU1ODM1MzI1NzdlZWNi
OGNkYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUmVjdGFu
Z2xlU2hhcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1JlY3Rhbmds
ZVNoYXBlLmgKQEAgLTc1LDYgKzc1LDExIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0
SW5jbHVkZWRJbnRlcnZhbHMoTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IGxvZ2lj
YWxIZWlnaHQsIFNlZ21lbnRMaXN0JikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29s
IGZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AoTGF5b3V0VW5pdCBtaW5Mb2dpY2FsSW50
ZXJ2YWxUb3AsIGNvbnN0IExheW91dFNpemUmIG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUsIExheW91
dFVuaXQmKSBjb25zdCBPVkVSUklERTsKIAorICAgIExheW91dFVuaXQgbG9naWNhbFJ4KCkgY29u
c3QgeyByZXR1cm4gbV9ib3VuZHMucngoKTsgfQorICAgIExheW91dFVuaXQgbG9naWNhbFJ5KCkg
Y29uc3QgeyByZXR1cm4gbV9ib3VuZHMucnkoKTsgfQorCisgICAgdmlydHVhbCBTaGFwZVR5cGUg
dHlwZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIFNoYXBlOjpSb3VuZGVkUmVjdGFuZ2xlVHlw
ZTsgfQorCiBwcml2YXRlOgogICAgIEZsb2F0Um91bmRlZFJlY3Qgc2hhcGVNYXJnaW5Cb3VuZHMo
KSBjb25zdDsKICAgICBGbG9hdFJvdW5kZWRSZWN0IHNoYXBlUGFkZGluZ0JvdW5kcygpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5oCmluZGV4IGY3NzVlNWVlZjQz
NGZhYTc4MzM3ODlhZTg2ZTA5MTdkYzVjYmUwNzEuLmJkMmQyOTZlNDM1NDIzYjJjZDU4YWM3MjBk
NDIwMjgwMjU4N2Q1ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFw
ZXMvU2hhcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmgK
QEAgLTYwLDYgKzYwLDEyIEBAIHR5cGVkZWYgVmVjdG9yPExpbmVTZWdtZW50PiBTZWdtZW50TGlz
dDsKIAogY2xhc3MgU2hhcGUgewogcHVibGljOgorICAgIGVudW0gU2hhcGVUeXBlIHsKKyAgICAg
ICAgUm91bmRlZFJlY3RhbmdsZVR5cGUsCisgICAgICAgIFBvbHlnb25UeXBlLAorICAgICAgICBS
YXN0ZXJUeXBlCisgICAgfTsKKwogICAgIHN0YXRpYyBQYXNzT3duUHRyPFNoYXBlPiBjcmVhdGVT
aGFwZShjb25zdCBCYXNpY1NoYXBlKiwgY29uc3QgTGF5b3V0U2l6ZSYgbG9naWNhbEJveFNpemUs
IFdyaXRpbmdNb2RlLCBMZW5ndGggbWFyZ2luLCBMZW5ndGggcGFkZGluZyk7CiAgICAgc3RhdGlj
IFBhc3NPd25QdHI8U2hhcGU+IGNyZWF0ZVNoYXBlKGNvbnN0IFN0eWxlSW1hZ2UqLCBmbG9hdCB0
aHJlc2hvbGQsIGNvbnN0IExheW91dFNpemUmIGxvZ2ljYWxCb3hTaXplLCBXcml0aW5nTW9kZSwg
TGVuZ3RoIG1hcmdpbiwgTGVuZ3RoIHBhZGRpbmcpOwogCkBAIC03Miw2ICs3OCw4IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RXhjbHVkZWRJbnRlcnZhbHMoTGF5b3V0VW5pdCBsb2dp
Y2FsVG9wLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIFNlZ21lbnRMaXN0JikgY29uc3QgPSAw
OwogICAgIHZpcnR1YWwgYm9vbCBmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKExheW91
dFVuaXQgbWluTG9naWNhbEludGVydmFsVG9wLCBjb25zdCBMYXlvdXRTaXplJiBtaW5Mb2dpY2Fs
SW50ZXJ2YWxTaXplLCBMYXlvdXRVbml0JiByZXN1bHQpIGNvbnN0ID0gMDsKIAorICAgIHZpcnR1
YWwgU2hhcGVUeXBlIHR5cGUoKSBjb25zdCA9IDA7CisKIHByb3RlY3RlZDoKICAgICBmbG9hdCBz
aGFwZU1hcmdpbigpIGNvbnN0IHsgcmV0dXJuIG1fbWFyZ2luOyB9CiAgICAgZmxvYXQgc2hhcGVQ
YWRkaW5nKCkgY29uc3QgeyByZXR1cm4gbV9wYWRkaW5nOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5mby5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3NoYXBlcy9TaGFwZUluZm8uaAppbmRleCA5NzlkYWY0MjlmYmZhNDIzODNkMGRjN2Vh
OWY0NGFlYTM4M2JjMTMxLi45MjQwNTRmNTAzZjZmMWJhOTRlZTU4MTZiMDczOWVlYWMxMDAyNWI4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5mby5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmgKQEAgLTEw
NSwxMSArMTA1LDQwIEBAIHB1YmxpYzoKICAgICBjb25zdCBSZW5kZXJUeXBlKiBvd25lcigpIGNv
bnN0IHsgcmV0dXJuIG1fcmVuZGVyZXI7IH0KICAgICBMYXlvdXRTaXplIHNoYXBlU2l6ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fc2hhcGVMb2dpY2FsU2l6ZTsgfQogCi1wcm90ZWN0ZWQ6Ci0gICAgU2hh
cGVJbmZvKGNvbnN0IFJlbmRlclR5cGUqIHJlbmRlcmVyKTogbV9yZW5kZXJlcihyZW5kZXJlcikg
eyB9CisgICAgTGF5b3V0UmVjdCBjb21wdXRlZFNoYXBlUGh5c2ljYWxCb3VuZGluZ0JveCgpIGNv
bnN0CisgICAgeworICAgICAgICBMYXlvdXRSZWN0IHBoeXNpY2FsQm91bmRpbmdCb3ggPSBjb21w
dXRlZFNoYXBlTG9naWNhbEJvdW5kaW5nQm94KCk7CisgICAgICAgIHBoeXNpY2FsQm91bmRpbmdC
b3guc2V0WChwaHlzaWNhbEJvdW5kaW5nQm94LngoKSArIGxvZ2ljYWxMZWZ0T2Zmc2V0KCkpOwor
ICAgICAgICBwaHlzaWNhbEJvdW5kaW5nQm94LnNldFkocGh5c2ljYWxCb3VuZGluZ0JveC55KCkg
KyBsb2dpY2FsVG9wT2Zmc2V0KCkpOworICAgICAgICBpZiAobV9yZW5kZXJlci0+c3R5bGUoKS5p
c0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpKQorICAgICAgICAgICAgcGh5c2ljYWxCb3VuZGlu
Z0JveC5zZXRZKG1fcmVuZGVyZXItPmxvZ2ljYWxIZWlnaHQoKSAtIHBoeXNpY2FsQm91bmRpbmdC
b3gubWF4WSgpKTsKKyAgICAgICAgaWYgKCFtX3JlbmRlcmVyLT5zdHlsZSgpLmlzSG9yaXpvbnRh
bFdyaXRpbmdNb2RlKCkpCisgICAgICAgICAgICBwaHlzaWNhbEJvdW5kaW5nQm94ID0gcGh5c2lj
YWxCb3VuZGluZ0JveC50cmFuc3Bvc2VkUmVjdCgpOworICAgICAgICByZXR1cm4gcGh5c2ljYWxC
b3VuZGluZ0JveDsKKyAgICB9CisKKyAgICBGbG9hdFBvaW50IHNoYXBlVG9SZW5kZXJlclBvaW50
KEZsb2F0UG9pbnQgcG9pbnQpIGNvbnN0CisgICAgeworICAgICAgICBGbG9hdFBvaW50IHJlc3Vs
dCA9IEZsb2F0UG9pbnQocG9pbnQueCgpICsgbG9naWNhbExlZnRPZmZzZXQoKSwgcG9pbnQueSgp
ICsgbG9naWNhbFRvcE9mZnNldCgpKTsKKyAgICAgICAgaWYgKG1fcmVuZGVyZXItPnN0eWxlKCku
aXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUoKSkKKyAgICAgICAgICAgIHJlc3VsdC5zZXRZKG1f
cmVuZGVyZXItPmxvZ2ljYWxIZWlnaHQoKSAtIHJlc3VsdC55KCkpOworICAgICAgICBpZiAoIW1f
cmVuZGVyZXItPnN0eWxlKCkuaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKKyAgICAgICAgICAg
IHJlc3VsdCA9IHJlc3VsdC50cmFuc3Bvc2VkUG9pbnQoKTsKKyAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICB9CisKKyAgICBGbG9hdFNpemUgc2hhcGVUb1JlbmRlcmVyU2l6ZShGbG9hdFNpemUg
c2l6ZSkgY29uc3QKKyAgICB7CisgICAgICAgIGlmICghbV9yZW5kZXJlci0+c3R5bGUoKS5pc0hv
cml6b250YWxXcml0aW5nTW9kZSgpKQorICAgICAgICAgICAgcmV0dXJuIHNpemUudHJhbnNwb3Nl
ZFNpemUoKTsKKyAgICAgICAgcmV0dXJuIHNpemU7CisgICAgfQogCiAgICAgY29uc3QgU2hhcGUq
IGNvbXB1dGVkU2hhcGUoKSBjb25zdDsKIAorcHJvdGVjdGVkOgorICAgIFNoYXBlSW5mbyhjb25z
dCBSZW5kZXJUeXBlKiByZW5kZXJlcik6IG1fcmVuZGVyZXIocmVuZGVyZXIpIHsgfQorCiAgICAg
dmlydHVhbCBMYXlvdXRSZWN0IGNvbXB1dGVkU2hhcGVMb2dpY2FsQm91bmRpbmdCb3goKSBjb25z
dCA9IDA7CiAgICAgdmlydHVhbCBTaGFwZVZhbHVlKiBzaGFwZVZhbHVlKCkgY29uc3QgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBnZXRJbnRlcnZhbHMoTGF5b3V0VW5pdCwgTGF5b3V0VW5pdCwgU2Vn
bWVudExpc3QmKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjgxNmU2NjIzZDA4MTFhODgyYjk0NGI3YTg3
NTk4ZTc4NjRjNzJmZi4uZjcyMjUyYjY0ZTI5NjgxYWFmMzVlNzhjMzBiNGE1NTNkZjg0OTYxNyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEzLTExLTA4ICBCZWFyIFRyYXZpcyAgPGJldHJhdmlz
QGFkb2JlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBbQ1NTIFNoYXBlc10gSGlnaGxp
Z2h0IHNoYXBlLW91dHNpZGUgd2hlbiBpdHMgZWxlbWVudCBpcyBzZWxlY3RlZCBpbiB0aGUgV2Vi
IEluc3BlY3RvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTI0MDcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGVzdCB0aGF0IHRoZSBpbmZvcm1hdGlvbiBwYXNzZWQgdG8gdGhlIEluc3BlY3RvciBvdmVy
bGF5IHByb3Blcmx5IGNvcnJlc3BvbmRzIHRvIHRoZQorICAgICAgICB1bmRlcmx5aW5nIHNoYXBl
LiBSZXRyaWV2aW5nIHRoZSBzaGFwZSBoaWdobGlnaHQgaW5mb3JtYXRpb24gaW52b2x2ZXMgYSBz
ZXJpZXMgb2YKKyAgICAgICAgc3RlcHMgYW5kIGhhcyBiZWVuIGFic3RyYWN0ZWQgaW50byBzaGFw
ZS1pbmZvLWhlbHBlci5qcywgd2hpY2ggc3VwcGxpZXMKKyAgICAgICAgSW5zcGVjdG9yLnNoYXBl
T3V0c2lkZUluZm8gaW5zaWRlIGFuIEluc3BlY3RvciB0ZXN0LCBhbmQgdGhlIFNoYXBlSW5mb0hl
bHBlci5ydW5TaGFwZXNUZXN0CisgICAgICAgIG1ldGhvZCB0byBiZWdpbiBhIHRlc3QuCisKKyAg
ICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvbW9kZWwvaGlnaGxpZ2h0LXNoYXBlLW91dHNpZGUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvbW9kZWwv
aGlnaGxpZ2h0LXNoYXBlLW91dHNpZGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9y
LXByb3RvY29sL3Jlc291cmNlcy9zaGFwZS1pbmZvLWhlbHBlci5qczogQWRkZWQuCisgICAgICAg
ICh3aW5kb3cuU2hhcGVJbmZvSGVscGVyKTogRXhwb3NlcyBTaGFwZUluZm9IZWxwZXIucnVuU2hh
cGVzVGVzdC4KKwogMjAxMy0xMS0wOCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNv
bT4KIAogICAgICAgICBJbXBsZW1lbnQgSldLIGtleSBpbXBvcnQgZm9yIEhNQUMgYW5kIEFFUy1D
QkMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9tb2RlbC9oaWdo
bGlnaHQtc2hhcGUtb3V0c2lkZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvbW9kZWwvaGlnaGxpZ2h0LXNoYXBlLW91dHNpZGUtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjhhODFkODk4MTVkMGE0Zjg4Yzk3NWJmMzJhMzZkNTA0YTI5NTIyZTMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbW9kZWwvaGlnaGxpZ2h0
LXNoYXBlLW91dHNpZGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorUEFTUzogQWN0dWFs
IFtNIDUwIDUwIEwgMTUwIDUwIEwgMTUwIDEwMCBMIDUwIDEwMCBMIDUwIDUwIFpdIEV4cGVjdGVk
IFtNIDUwIDUwIEwgMTUwIDUwIEwgMTUwIDEwMCBMIDUwIDEwMCBMIDUwIDUwIFpdCitQQVNTOiBB
Y3R1YWwgW00gNTAgNTAgTCAxMDAgNTAgTCAxMDAgMTAwIEwgNTAgMTAwIFpdIEV4cGVjdGVkIFtN
IDUwIDUwIEwgMTAwIDUwIEwgMTAwIDEwMCBMIDUwIDEwMCBaXQorUEFTUzogQWN0dWFsIFtNIDc1
IDc1IEwgMTc1IDc1IEwgMTc1IDEyNSBMIDc1IDEyNSBMIDc1IDc1IFpdIEV4cGVjdGVkIFtNIDc1
IDc1IEwgMTc1IDc1IEwgMTc1IDEyNSBMIDc1IDEyNSBMIDc1IDc1IFpdCitQQVNTOiBBY3R1YWwg
W00gNTAgNTAgTCAxNTAgNTAgTCAxNTAgMTAwIEwgNTAgMTAwIEwgNTAgNTAgWl0gRXhwZWN0ZWQg
W00gNTAgNTAgTCAxNTAgNTAgTCAxNTAgMTAwIEwgNTAgMTAwIEwgNTAgNTAgWl0KK1BBU1M6IEFj
dHVhbCBbTSA1MCA1MCBMIDE1MCA1MCBMIDE1MCAxMDAgTCA1MCAxMDAgTCA1MCA1MCBaXSBFeHBl
Y3RlZCBbTSA1MCA1MCBMIDE1MCA1MCBMIDE1MCAxMDAgTCA1MCAxMDAgTCA1MCA1MCBaXQorUEFT
UzogQWN0dWFsIFtNIDUwIDUwIEwgMTUwIDUwIEwgMTUwIDEwMCBMIDUwIDEwMCBMIDUwIDUwIFpd
IEV4cGVjdGVkIFtNIDUwIDUwIEwgMTUwIDUwIEwgMTUwIDEwMCBMIDUwIDEwMCBMIDUwIDUwIFpd
CitQQVNTOiBBY3R1YWwgW00gNzUgNzUgTCAxNzUgNzUgTCAxNzUgMTI1IEwgNzUgMTI1IEwgNzUg
NzUgWl0gRXhwZWN0ZWQgW00gNzUgNzUgTCAxNzUgNzUgTCAxNzUgMTI1IEwgNzUgMTI1IEwgNzUg
NzUgWl0KK1BBU1M6IEFjdHVhbCBbTSA1MCA1MCBMIDE1MCA1MCBMIDE1MCAxMDAgTCA1MCAxMDAg
TCA1MCA1MCBaXSBFeHBlY3RlZCBbTSA1MCA1MCBMIDE1MCA1MCBMIDE1MCAxMDAgTCA1MCAxMDAg
TCA1MCA1MCBaXQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wv
bW9kZWwvaGlnaGxpZ2h0LXNoYXBlLW91dHNpZGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9tb2RlbC9oaWdobGlnaHQtc2hhcGUtb3V0c2lkZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmUxNTM1NjJjMjA3ZDdlMTM0ODU4ODJjOTZjM2Y1OGJmMzRmMmEzYmEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbW9kZWwvaGlnaGxpZ2h0LXNoYXBl
LW91dHNpZGUuaHRtbApAQCAtMCwwICsxLDEwMyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4K
K2JvZHkgeworICAgIG1hcmdpbjogMDsKK30KKy5zaGFwZSB7CisgICAgZmxvYXQ6IGxlZnQ7Cisg
ICAgd2lkdGg6IDIwMHB4OworICAgIGhlaWdodDogMjAwcHg7CisgICAgbWFyZ2luLXJpZ2h0OiAt
MjAwcHg7Cit9CisucGFkZGVkIHsKKyAgICB3aWR0aDogMTAwcHg7CisgICAgaGVpZ2h0OiAxMDBw
eDsKKyAgICBwYWRkaW5nOiAyNXB4IDc1cHggNzVweCAyNXB4OworfQorLmJvcmRlci1ib3ggewor
ICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cit9CisudmVydGljYWwtbHIgeworICAgIC13ZWJr
aXQtd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1scjsKK30KKy52ZXJ0aWNhbC1ybCB7CisgICAgLXdl
YmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsOworfQorLnJlY3RhbmdsZSB7CisgICAgLXdl
YmtpdC1zaGFwZS1vdXRzaWRlOiByZWN0YW5nbGUoNTBweCwgNTBweCwgMTAwcHgsIDUwcHgpOwor
fQorLnBvbHlnb24geworICAgIC13ZWJraXQtc2hhcGUtb3V0c2lkZTogcG9seWdvbig1MHB4IDUw
cHgsIDEwMHB4IDUwcHgsIDEwMHB4IDEwMHB4LCA1MHB4IDEwMHB4KTsKK30KKzwvc3R5bGU+Cis8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9yZXNvdXJjZXMvc2hhcGUtaW5mby1o
ZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHNoYXBlVGVzdHMoKSB7Cisg
ICAgdmFyIHRlc3RzID0gWworICAgIHsKKyAgICAgICAgJ3NlbGVjdG9yJyA6ICcucmVjdGFuZ2xl
JywKKyAgICAgICAgJ3BhdGgnIDogWydNJywgNTAsIDUwLCAnTCcsIDE1MCwgNTAsICdMJywgMTUw
LCAxMDAsICdMJywgNTAsIDEwMCwgJ0wnLCA1MCwgNTAsICdaJ10KKyAgICB9LAorICAgIHsKKyAg
ICAgICAgJ3NlbGVjdG9yJyA6ICcucG9seWdvbicsCisgICAgICAgICdwYXRoJyA6IFsnTScsIDUw
LCA1MCwgJ0wnLCAxMDAsIDUwLCAnTCcsIDEwMCwgMTAwLCAnTCcsIDUwLCAxMDAsICdaJ10KKyAg
ICB9LAorICAgIHsKKyAgICAgICAgJ3NlbGVjdG9yJyA6ICcucmVjdGFuZ2xlLnBhZGRlZCcsCisg
ICAgICAgICdwYXRoJyA6IFsnTScsIDc1LCA3NSwgJ0wnLCAxNzUsIDc1LCAnTCcsIDE3NSwgMTI1
LCAnTCcsIDc1LCAxMjUsICdMJywgNzUsIDc1LCAnWiddCisgICAgfSwKKyAgICB7CisgICAgICAg
ICdzZWxlY3RvcicgOiAnLnJlY3RhbmdsZS5wYWRkZWQuYm9yZGVyLWJveCcsCisgICAgICAgICdw
YXRoJyA6IFsnTScsIDUwLCA1MCwgJ0wnLCAxNTAsIDUwLCAnTCcsIDE1MCwgMTAwLCAnTCcsIDUw
LCAxMDAsICdMJywgNTAsIDUwLCAnWiddCisgICAgfSwKKyAgICB7CisgICAgICAgICdzZWxlY3Rv
cicgOiAnLnJlY3RhbmdsZS52ZXJ0aWNhbC1scicsCisgICAgICAgICdwYXRoJyA6IFsnTScsIDUw
LCA1MCwgJ0wnLCAxNTAsIDUwLCAnTCcsIDE1MCwgMTAwLCAnTCcsIDUwLCAxMDAsICdMJywgNTAs
IDUwLCAnWiddCisgICAgfSwKKyAgICB7CisgICAgICAgICdzZWxlY3RvcicgOiAnLnJlY3Rhbmds
ZS52ZXJ0aWNhbC1ybCcsCisgICAgICAgICdwYXRoJyA6IFsnTScsIDUwLCA1MCwgJ0wnLCAxNTAs
IDUwLCAnTCcsIDE1MCwgMTAwLCAnTCcsIDUwLCAxMDAsICdMJywgNTAsIDUwLCAnWiddCisgICAg
fSwKKyAgICB7CisgICAgICAgICdzZWxlY3RvcicgOiAnLnJlY3RhbmdsZS5wYWRkZWQudmVydGlj
YWwtcmwnLAorICAgICAgICAncGF0aCcgOiBbJ00nLCA3NSwgNzUsICdMJywgMTc1LCA3NSwgJ0wn
LCAxNzUsIDEyNSwgJ0wnLCA3NSwgMTI1LCAnTCcsIDc1LCA3NSwgJ1onXQorICAgIH0sCisgICAg
eworICAgICAgICAnc2VsZWN0b3InIDogJy5yZWN0YW5nbGUucGFkZGVkLnZlcnRpY2FsLXJsLmJv
cmRlci1ib3gnLAorICAgICAgICAncGF0aCcgOiBbJ00nLCA1MCwgNTAsICdMJywgMTUwLCA1MCwg
J0wnLCAxNTAsIDEwMCwgJ0wnLCA1MCwgMTAwLCAnTCcsIDUwLCA1MCwgJ1onXQorICAgIH0KKyAg
ICBdOworCisgICAgZnVuY3Rpb24gZG9UZXN0cyh0ZXN0cykgeworICAgICAgICBpZiAoIXRlc3Rz
Lmxlbmd0aCkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICB2YXIgdGVzdCA9IHRlc3RzWzBd
OworICAgICAgICB0ZXN0cyA9IHRlc3RzLnNwbGljZSgxKTsKKyAgICAgICAgSW5zcGVjdG9yVGVz
dC5zaGFwZU91dHNpZGVJbmZvKHRlc3Quc2VsZWN0b3IsIGZ1bmN0aW9uKHNoYXBlT3V0c2lkZSkg
eworICAgICAgICAgICAgdmFyIGFjdHVhbCA9IHNoYXBlT3V0c2lkZS5wYXRoLmpvaW4oJyAnKTsK
KyAgICAgICAgICAgIHZhciBleHBlY3RlZCA9IHRlc3QucGF0aC5qb2luKCcgJyk7CisgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChhY3R1YWwgPT09IGV4cGVjdGVkLCAiQWN0dWFsIFsi
ICsgYWN0dWFsICsgIl0gRXhwZWN0ZWQgWyIgKyBleHBlY3RlZCArICJdIik7CisgICAgICAgICAg
ICBkb1Rlc3RzKHRlc3RzKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZG9UZXN0cyh0ZXN0
cyk7Cit9Cit3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7IFNoYXBlSW5mb0hlbHBlci5ydW5T
aGFwZVRlc3Qoc2hhcGVUZXN0cyk7IH0KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAg
PGRpdiBjbGFzcz0nc2hhcGUgcmVjdGFuZ2xlJz48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSdzaGFw
ZSBwb2x5Z29uJz48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSdzaGFwZSBwYWRkZWQgcmVjdGFuZ2xl
Jz48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSdzaGFwZSBwYWRkZWQgcmVjdGFuZ2xlIGJvcmRlci1i
b3gnPjwvZGl2PgorICAgIDxkaXYgY2xhc3M9J3NoYXBlIHJlY3RhbmdsZSB2ZXJ0aWNhbC1scic+
PC9kaXY+CisgICAgPGRpdiBjbGFzcz0nc2hhcGUgcmVjdGFuZ2xlIHZlcnRpY2FsLXJsJz48L2Rp
dj4KKyAgICA8ZGl2IGNsYXNzPSdzaGFwZSBwYWRkZWQgcmVjdGFuZ2xlIHZlcnRpY2FsLXJsJz48
L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSdzaGFwZSBwYWRkZWQgcmVjdGFuZ2xlIHZlcnRpY2FsLXJs
IGJvcmRlci1ib3gnPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3Jlc291cmNlcy9zaGFwZS1pbmZvLWhlbHBlci5qcyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9yZXNvdXJjZXMvc2hhcGUtaW5mby1oZWxw
ZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZGJlMWQ0ODYzNzM4OTVhMWJiOWQzY2JkYzU4YjA0YThiZjMwYmM4
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9yZXNv
dXJjZXMvc2hhcGUtaW5mby1oZWxwZXIuanMKQEAgLTAsMCArMSw2NCBAQAord2luZG93LlNoYXBl
SW5mb0hlbHBlciA9IChmdW5jdGlvbigpIHsKKyAgICBmdW5jdGlvbiBzaGFwZU91dHNpZGVJbmZv
KHNlbGVjdG9yLCBjYWxsYmFjaykgeworICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJET00uZ2V0RG9jdW1lbnQiLCB7fSwgb25Hb3REb2N1bWVudCk7CisKKyAgICAgICAgZnVuY3Rp
b24gb25Hb3REb2N1bWVudChtc2cpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tG
b3JFcnJvcihtc2cpOworICAgICAgICAgICAgdmFyIG5vZGUgPSBtc2cucmVzdWx0LnJvb3Q7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJET00ucXVlcnlTZWxlY3RvciIs
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5vZGVJZCI6IG5vZGUubm9kZUlkLAor
ICAgICAgICAgICAgICAgICJzZWxlY3RvciI6IHNlbGVjdG9yCisgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgb25RdWVyeVNlbGVjdG9yKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9u
IG9uUXVlcnlTZWxlY3Rvcihtc2cpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tG
b3JFcnJvcihtc2cpOworICAgICAgICAgICAgdmFyIG5vZGUgPSBtc2cucmVzdWx0OworICAgICAg
ICAgICAgdmFyIGhpZ2hsaWdodENvbmZpZyA9IHsKKyAgICAgICAgICAgICAgICBzaG93SW5mbzog
dHJ1ZSwKKyAgICAgICAgICAgICAgICBjb250ZW50Q29sb3I6IHtyOiAyNTUsIGc6IDI1NSwgYjog
MjU1fSwKKyAgICAgICAgICAgICAgICBwYWRkaW5nQ29sb3I6IHtyOiAyNTUsIGc6IDI1NSwgYjog
MjU1fSwKKyAgICAgICAgICAgICAgICBib3JkZXJDb2xvcjoge3I6IDI1NSwgZzogMjU1LCBiOiAy
NTV9LAorICAgICAgICAgICAgICAgIG1hcmdpbkNvbG9yOiB7cjogMjU1LCBnOiAyNTUsIGI6IDI1
NX0sCisgICAgICAgICAgICB9OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFu
ZCgiRE9NLmhpZ2hsaWdodE5vZGUiLAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJu
b2RlSWQiOiBub2RlLm5vZGVJZCwKKyAgICAgICAgICAgICAgICAiaGlnaGxpZ2h0Q29uZmlnIjog
aGlnaGxpZ2h0Q29uZmlnCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgb25IaWdobGlnaHRO
b2RlKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIG9uSGlnaGxpZ2h0Tm9kZShtc2cp
IHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihtc2cpOworICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsCisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgImV4cHJlc3Npb24iOiAid2luZG93LmludGVybmFs
cy5pbnNwZWN0b3JIaWdobGlnaHRPYmplY3QoKSIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICBvblJ1bnRpbWVFdmFsdWF0ZSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBvblJ1
bnRpbWVFdmFsdWF0ZShtc2cpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JF
cnJvcihtc2cpOworICAgICAgICAgICAgdmFyIHZhbHVlID0gSlNPTi5wYXJzZShtc2cucmVzdWx0
LnJlc3VsdC52YWx1ZSk7CisgICAgICAgICAgICBjYWxsYmFjayh2YWx1ZS5lbGVtZW50SW5mby5z
aGFwZU91dHNpZGVJbmZvKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blNo
YXBlVGVzdCh0ZXN0Zm4pIHsKKyAgICAgICAgdmFyIGJvZHkgPSBbCisgICAgICAgICAgICAiSW5z
cGVjdG9yVGVzdC5zaGFwZU91dHNpZGVJbmZvID0gIiArIHNoYXBlT3V0c2lkZUluZm8udG9TdHJp
bmcoKSwKKyAgICAgICAgICAgICIoIiArIHRlc3Rmbi50b1N0cmluZygpICsgIikoKSIKKyAgICAg
ICAgXTsKKyAgICAgICAgd2luZG93LnRlc3QgPSBuZXcgRnVuY3Rpb24oCisgICAgICAgICAgICBi
b2R5LmpvaW4oJztcbicpCisgICAgICAgICk7CisgICAgICAgIHJ1blRlc3QoKTsKKyAgICB9CisK
KyAgICByZXR1cm4geworICAgICAgICAncnVuU2hhcGVUZXN0JyA6IHJ1blNoYXBlVGVzdAorICAg
IH0KK30pKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>216444</attachid>
            <date>2013-11-08 14:43:21 -0800</date>
            <delta_ts>2013-11-08 14:43:21 -0800</delta_ts>
            <desc>Screenshot of highlight behavior</desc>
            <filename>Screen Shot 2013-11-08 at 2.41.51 PM.png</filename>
            <type>image/png</type>
            <size>105266</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">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
ZDvbGYBIbUhqUj49/R7JBXGmAHwbmJ6eapue/laH5O4PAOicnM3FJdZyTQB4chzoDiHXplVmpv+z
+Q/nD/4WVAYYAAAAAZ1pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6
eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYg
eG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4K
ICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZXhp
Zj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8ZXhpZjpQaXhlbFhE
aW1lbnNpb24+NjA4PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZ
RGltZW5zaW9uPjMwNjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0
aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgpbS8IjAABAAElEQVR4AeydCVxV1dbAjy9Q
UEFxwJISHB+WQGI59NS8UA5ZQuXQEyxRE7SewKtELHNoUHgNYGVqThX4UrS81EssBXJES00wIYMU
FQxIUDC5yTW//7nr3uMFLoil9Xqf+6ebtdde017nnLXO3ufcfRpdvHhRsSo3up5dOjE4YIEenPfk
pN1LRjpY9SqKMTl6cMCCNLU3KCZ51XR3u2rdf1CjYqG3c3hWQGblBq/q5tqy54qILQKM+bEjPaLw
ild8aeY0Fwu6IX+Nx1JGug+DNWZ36fTeVqy/QWZD9P6BNMbC1JCh/glZtYaMTYZ9fo690gatLE8b
73RlJhpSYx73n5HAqZdRcaBP8ytjLju4OsQrqMZR0E5+AazrX375BQVgtPLLuX3D2w7Y2n/RiU/G
NqX7l1/oMv29BFy4cAGM1AIAU6qKds/5x9SUPCVsyX9Gd3UUpHUtxN9888199933l7/8ha5GpqJp
v+GGG0DSBRrDoKcLmFq67OzsgKULDARCbDQaIaNJDYZmYmJi+/btoSwqKgoKCkKsvb09BGBEuEgW
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
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216449</attachid>
            <date>2013-11-08 15:15:59 -0800</date>
            <delta_ts>2013-11-08 16:19:51 -0800</delta_ts>
            <desc>Increasing compile guard scope</desc>
            <filename>bug-124071-20131108151558.patch</filename>
            <type>text/plain</type>
            <size>26059</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU4OTQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTAwMTIyNzQxZjAyMTBj
YmYyODNhMGFlOTg3OTQxZWM5MzMxYTIyYS4uNjg0NjEwNjQ2YWYxMzQ0NGM1MDAyNzMxZjVhNDQ5
MzNkMDBmYmEwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEzLTExLTA4ICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBb
Q1NTIFNoYXBlc10gSGlnaGxpZ2h0IHNoYXBlLW91dHNpZGUgd2hlbiBpdHMgZWxlbWVudCBpcyBz
ZWxlY3RlZCBpbiB0aGUgV2ViIEluc3BlY3RvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0MDcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkaW5nIGNvZGUgdG8gcGFzcyBjb21wdXRlZCBzaGFwZSBp
bmZvcm1hdGlvbiAocGF0aCBhbmQgYm91bmRzKSB0byB0aGUgSW5zcGVjdG9yIG92ZXJsYXkKKyAg
ICAgICAgY2FudmFzLCBhbmQgdGhlIGNvZGUgdG8gZGlzcGxheSBpdC4gVGhlIGNvZGUgY3JlYXRl
cyBhIHBhdGggYmFzZWQgb24gU2hhcGVJbmZvJ3MgY29tcHV0ZWQKKyAgICAgICAgc2hhcGUuIFRo
ZSBzaGFwZSBoaWdobGlnaHQgZHJhd3Mgd2hlbmV2ZXIgYW4gZWxlbWVudCBpcyBoaWdobGlnaHRl
ZCwgdmlhIHNlbGVjdGlvbiBpbgorICAgICAgICB0aGUgSW5zcGVjdG9yIGVsZW1lbnRzIHZpZXcu
CisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yLXByb3RvY29sL21vZGVsL2hpZ2hsaWdodC1zaGFw
ZS1vdXRzaWRlLmh0bWwKKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsUG9pbnRUb1Jvb3QpOiBDb252ZXJ0IGEgbG9jYWwg
cG9pbnQgdG8gYmUgcmVsYXRpdmUgdG8gdGhlIHJvb3Qgdmlldy4KKyAgICAgICAgKFdlYkNvcmU6
OmFwcGVuZFBhdGhDb21tYW5kQW5kUG9pbnRzKTogSGVscGVyIGZvciBidWlsZGluZyBhIHNpbmds
ZSBzZWdtZW50J3Mgd29ydGgKKyAgICAgICAgb2YgdGhlIG92ZXJhbGwgcGF0aC4KKyAgICAgICAg
KFdlYkNvcmU6OmFwcGVuZFBhdGhTZWdtZW50KTogQnVpbGQgYSBzaW5nbGUgc2VnbWVudCdzIHdv
cnRoIG9mIHRoZSBvdmVyYWxsIHBhdGguCisgICAgICAgIChXZWJDb3JlOjpidWlsZE9iamVjdEZv
clNoYXBlT3V0c2lkZSk6IEJ1aWxkIGFuIG9iamVjdCB0byBwYXNzIHRvIHRoZSBJbnNwZWN0b3Ig
b3ZlcmxheQorICAgICAgICB0aGF0IHJlcHJlc2VudHMgdGhlIHNoYXBlLgorICAgICAgICAoV2Vi
Q29yZTo6YnVpbGRPYmplY3RGb3JFbGVtZW50SW5mbyk6IENhbGwgYnVpbGRPYmplY3RGb3JTaGFw
ZU91dHNpZGUgYW5kIHBhc3MgdGhlCisgICAgICAgIHJlc3VsdGluZyBvYmplY3QgYWxvbmcuCisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXlQYWdlLmpzOgorICAgICAgICAocGF0
aENvbW1hbmQpOiBEcmF3IGEgc2luZ2xlIHBhdGggY29tbWFuZC4KKyAgICAgICAgKGRyYXdQYXRo
KTogRHJhdyB0aGUgb3ZlcmFsbCBwYXRoLgorICAgICAgICAoX2RyYXdTaGFwZUhpZ2hsaWdodCk6
IERyYXcgdGhlIGhpZ2hsaWdodCBmb3IgdGhlIGdpdmVuIHNoYXBlSW5mby4KKyAgICAgICAgKGRy
YXdOb2RlSGlnaGxpZ2h0KTogQ2FsbCBfZHJhd1NoYXBlSGlnaGxpZ2h0LgorICAgICAgICAqIHJl
bmRlcmluZy9zaGFwZXMvUG9seWdvblNoYXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpQb2x5Z29u
U2hhcGU6OnBvbHlnb24pOiBFeHBvc2UgdGhlIHVuZGVybHlpbmcgdmVydGV4IGluZm9ybWF0aW9u
IGZvciBhCisgICAgICAgIFBvbHlnb25TaGFwZS4KKyAgICAgICAgKiByZW5kZXJpbmcvc2hhcGVz
L1Jhc3RlclNoYXBlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9SZWN0YW5nbGVTaGFw
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVjdGFuZ2xlU2hhcGU6OmxvZ2ljYWxSeCk6IEV4cG9z
ZSB0aGUgbG9naWNhbCByYWRpaSBmb3IgYSBzaGFwZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlY3Rh
bmdsZVNoYXBlOjpsb2dpY2FsUnkpOiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvc2hhcGVz
L1NoYXBlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluZm8uaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNoYXBlSW5mbzo6Y29tcHV0ZWRTaGFwZVBoeXNpY2FsQm91bmRpbmdCb3gp
OiBUaGUgcGh5c2ljYWwgYm91bmRzIG9mIGEKKyAgICAgICAgc2hhcGUgaW4gcmVuZGVyZXIgY29v
cmRpbmF0ZXMuCisgICAgICAgIChXZWJDb3JlOjpTaGFwZUluZm86OnNoYXBlVG9SZW5kZXJlclBv
aW50KTogQ29udmVydCBzaGFwZSBjb29yZGluYXRlcyB0byByZW5kZXJlcgorICAgICAgICBjb29y
ZGluYXRlcy4KKyAgICAgICAgKFdlYkNvcmU6OlNoYXBlSW5mbzo6c2hhcGVUb1JlbmRlcmVyU2l6
ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2hhcGVJbmZvOjpTaGFwZUluZm8pOgorCiAy
MDEzLTExLTA4ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQwNjQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAppbmRleCBhZjNmMjZlMzZm
MTRmY2UwYTY1NWE2ZjBmMDY0ZWVhZjQ0ZWNlMTFmLi41YmI0NGIzZDcxMjFjNjU5Y2QxMmJiOGRi
YjYxNzJhYWZkZWRhNWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yT3ZlcmxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ck92ZXJsYXkuY3BwCkBAIC00Myw2ICs0Myw4IEBACiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCiAj
aW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQb2x5Z29uU2hh
cGUuaCIKKyNpbmNsdWRlICJSZWN0YW5nbGVTaGFwZS5oIgogI2luY2x1ZGUgIlJlbmRlckJveE1v
ZGVsT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRl
ckZsb3dUaHJlYWQuaCIKQEAgLTUzMiw2ICs1MzQsMTE5IEBAIHN0YXRpYyBQYXNzUmVmUHRyPElu
c3BlY3RvckFycmF5PiBidWlsZE9iamVjdEZvclJlbmRlcmVyRnJhZ21lbnRzKFJlbmRlck9iamVj
dCoKICAgICByZXR1cm4gZnJhZ21lbnRzQXJyYXkucmVsZWFzZSgpOwogfQogCisjaWYgRU5BQkxF
KENTU19TSEFQRVMpCitzdGF0aWMgRmxvYXRQb2ludCBsb2NhbFBvaW50VG9Sb290KFJlbmRlck9i
amVjdCogcmVuZGVyZXIsIGNvbnN0IEZyYW1lVmlldyogbWFpblZpZXcsIGNvbnN0IEZyYW1lVmll
dyogdmlldywgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQpCit7CisgICAgRmxvYXRQb2ludCByZXN1
bHQgPSByZW5kZXJlci0+bG9jYWxUb0Fic29sdXRlKHBvaW50KTsKKyAgICByZXN1bHQgPSB2aWV3
LT5jb250ZW50c1RvUm9vdFZpZXcocm91bmRlZEludFBvaW50KHJlc3VsdCkpOworICAgIHJlc3Vs
dCArPSBtYWluVmlldy0+c2Nyb2xsT2Zmc2V0KCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwor
c3RydWN0IFBhdGhBcHBseUluZm8geworICAgIEZyYW1lVmlldyogcm9vdFZpZXc7CisgICAgRnJh
bWVWaWV3KiB2aWV3OworICAgIEluc3BlY3RvckFycmF5KiBhcnJheTsKKyAgICBSZW5kZXJPYmpl
Y3QqIHJlbmRlcmVyOworfTsKKworc3RhdGljIHZvaWQgYXBwZW5kUGF0aENvbW1hbmRBbmRQb2lu
dHMoUGF0aEFwcGx5SW5mbyogaW5mbywgY29uc3QgU3RyaW5nJiBjb21tYW5kLCBjb25zdCBGbG9h
dFBvaW50IHBvaW50c1tdLCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgRmxvYXRQb2ludCBwb2lu
dDsKKyAgICBpbmZvLT5hcnJheS0+cHVzaFN0cmluZyhjb21tYW5kKTsKKyAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKKyAgICAgICAgcG9pbnQgPSBsb2NhbFBvaW50
VG9Sb290KGluZm8tPnJlbmRlcmVyLCBpbmZvLT5yb290VmlldywgaW5mby0+dmlldywgcG9pbnRz
W2ldKTsKKyAgICAgICAgaW5mby0+YXJyYXktPnB1c2hOdW1iZXIocG9pbnQueCgpKTsKKyAgICAg
ICAgaW5mby0+YXJyYXktPnB1c2hOdW1iZXIocG9pbnQueSgpKTsKKyAgICB9Cit9CisKK3N0YXRp
YyB2b2lkIGFwcGVuZFBhdGhTZWdtZW50KHZvaWQqIGluZm8sIGNvbnN0IFBhdGhFbGVtZW50KiBw
YXRoRWxlbWVudCkKK3sKKyAgICBQYXRoQXBwbHlJbmZvKiBwYXRoQXBwbHlJbmZvID0gc3RhdGlj
X2Nhc3Q8UGF0aEFwcGx5SW5mbyo+KGluZm8pOworICAgIEZsb2F0UG9pbnQgcG9pbnQ7CisgICAg
c3dpdGNoIChwYXRoRWxlbWVudC0+dHlwZSkgeworICAgIC8vIFRoZSBwb2ludHMgbWVtYmVyIHdp
bGwgY29udGFpbiAxIHZhbHVlLgorICAgIGNhc2UgUGF0aEVsZW1lbnRNb3ZlVG9Qb2ludDoKKyAg
ICAgICAgYXBwZW5kUGF0aENvbW1hbmRBbmRQb2ludHMocGF0aEFwcGx5SW5mbywgIk0iLCBwYXRo
RWxlbWVudC0+cG9pbnRzLCAxKTsKKyAgICAgICAgYnJlYWs7CisgICAgLy8gVGhlIHBvaW50cyBt
ZW1iZXIgd2lsbCBjb250YWluIDEgdmFsdWUuCisgICAgY2FzZSBQYXRoRWxlbWVudEFkZExpbmVU
b1BvaW50OgorICAgICAgICBhcHBlbmRQYXRoQ29tbWFuZEFuZFBvaW50cyhwYXRoQXBwbHlJbmZv
LCAiTCIsIHBhdGhFbGVtZW50LT5wb2ludHMsIDEpOworICAgICAgICBicmVhazsKKyAgICAvLyBU
aGUgcG9pbnRzIG1lbWJlciB3aWxsIGNvbnRhaW4gMyB2YWx1ZXMuCisgICAgY2FzZSBQYXRoRWxl
bWVudEFkZEN1cnZlVG9Qb2ludDoKKyAgICAgICAgYXBwZW5kUGF0aENvbW1hbmRBbmRQb2ludHMo
cGF0aEFwcGx5SW5mbywgIkMiLCBwYXRoRWxlbWVudC0+cG9pbnRzLCAzKTsKKyAgICAgICAgYnJl
YWs7CisgICAgLy8gVGhlIHBvaW50cyBtZW1iZXIgd2lsbCBjb250YWluIDIgdmFsdWVzLgorICAg
IGNhc2UgUGF0aEVsZW1lbnRBZGRRdWFkQ3VydmVUb1BvaW50OgorICAgICAgICBhcHBlbmRQYXRo
Q29tbWFuZEFuZFBvaW50cyhwYXRoQXBwbHlJbmZvLCAiUSIsIHBhdGhFbGVtZW50LT5wb2ludHMs
IDIpOworICAgICAgICBicmVhazsKKyAgICAvLyBUaGUgcG9pbnRzIG1lbWJlciB3aWxsIGNvbnRh
aW4gbm8gdmFsdWVzLgorICAgIGNhc2UgUGF0aEVsZW1lbnRDbG9zZVN1YnBhdGg6CisgICAgICAg
IGFwcGVuZFBhdGhDb21tYW5kQW5kUG9pbnRzKHBhdGhBcHBseUluZm8sICJaIiwgbnVsbHB0ciwg
MCk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK3N0YXRpYyBQYXNzUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gYnVpbGRPYmplY3RGb3JTaGFwZU91dHNpZGUoRnJhbWUqIGNvbnRhaW5p
bmdGcmFtZSwgUmVuZGVyQm94KiByZW5kZXJlcikKK3sKKyAgICBjb25zdCBTaGFwZU91dHNpZGVJ
bmZvKiBzaGFwZU91dHNpZGVJbmZvID0gcmVuZGVyZXItPnNoYXBlT3V0c2lkZUluZm8oKTsKKyAg
ICBpZiAoIXNoYXBlT3V0c2lkZUluZm8pCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAg
UmVmUHRyPEluc3BlY3Rvck9iamVjdD4gc2hhcGVPYmplY3QgPSBJbnNwZWN0b3JPYmplY3Q6OmNy
ZWF0ZSgpOworICAgIExheW91dFJlY3Qgc2hhcGVCb3VuZHMgPSBzaGFwZU91dHNpZGVJbmZvLT5j
b21wdXRlZFNoYXBlUGh5c2ljYWxCb3VuZGluZ0JveCgpOworICAgIEZsb2F0UXVhZCBzaGFwZVF1
YWQgPSByZW5kZXJlci0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3Qoc2hhcGVCb3VuZHMp
KTsKKyAgICBjb250ZW50c1F1YWRUb1BhZ2UoY29udGFpbmluZ0ZyYW1lLT5wYWdlKCktPm1haW5G
cmFtZSgpLnZpZXcoKSwgY29udGFpbmluZ0ZyYW1lLT52aWV3KCksIHNoYXBlUXVhZCk7CisgICAg
c2hhcGVPYmplY3QtPnNldEFycmF5KCJib3VuZHMiLCBidWlsZEFycmF5Rm9yUXVhZChzaGFwZVF1
YWQpKTsKKworICAgIFBhdGggcGF0aDsKKyAgICBzd2l0Y2ggKHNoYXBlT3V0c2lkZUluZm8tPmNv
bXB1dGVkU2hhcGUoKS0+dHlwZSgpKSB7CisgICAgY2FzZSBTaGFwZTo6Um91bmRlZFJlY3Rhbmds
ZVR5cGU6IHsKKyAgICAgICAgY29uc3QgUmVjdGFuZ2xlU2hhcGUqIHNoYXBlID0gc3RhdGljX2Nh
c3Q8Y29uc3QgUmVjdGFuZ2xlU2hhcGUqPihzaGFwZU91dHNpZGVJbmZvLT5jb21wdXRlZFNoYXBl
KCkpOworICAgICAgICBGbG9hdFNpemUgcmFkaWkoc2hhcGUtPmxvZ2ljYWxSeCgpLCBzaGFwZS0+
bG9naWNhbFJ5KCkpOworICAgICAgICByYWRpaSA9IHNoYXBlT3V0c2lkZUluZm8tPnNoYXBlVG9S
ZW5kZXJlclNpemUocmFkaWkpOworICAgICAgICBwYXRoLmFkZFJvdW5kZWRSZWN0KHNoYXBlQm91
bmRzLCByYWRpaSwgUGF0aDo6UHJlZmVyQmV6aWVyUm91bmRlZFJlY3QpOworICAgICAgICBicmVh
azsKKyAgICB9CisgICAgY2FzZSBTaGFwZTo6UG9seWdvblR5cGU6IHsKKyAgICAgICAgY29uc3Qg
UG9seWdvblNoYXBlKiBzaGFwZSA9IHN0YXRpY19jYXN0PGNvbnN0IFBvbHlnb25TaGFwZSo+KHNo
YXBlT3V0c2lkZUluZm8tPmNvbXB1dGVkU2hhcGUoKSk7CisgICAgICAgIGNvbnN0IEZsb2F0UG9s
eWdvbiYgcG9seWdvbiA9IHNoYXBlLT5wb2x5Z29uKCk7CisgICAgICAgIEZsb2F0UG9pbnQgdmVy
dGV4OworCisgICAgICAgIGlmIChwb2x5Z29uLm51bWJlck9mVmVydGljZXMoKSkgeworICAgICAg
ICAgICAgdmVydGV4ID0gc2hhcGVPdXRzaWRlSW5mby0+c2hhcGVUb1JlbmRlcmVyUG9pbnQocG9s
eWdvbi52ZXJ0ZXhBdCgwKSk7CisgICAgICAgICAgICBwYXRoLm1vdmVUbyh2ZXJ0ZXgpOworICAg
ICAgICB9CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAxOyBpIDwgcG9seWdvbi5udW1iZXJPZlZl
cnRpY2VzKCk7IGkrKykgeworICAgICAgICAgICAgRmxvYXRQb2ludCB2ZXJ0ZXggPSBzaGFwZU91
dHNpZGVJbmZvLT5zaGFwZVRvUmVuZGVyZXJQb2ludChwb2x5Z29uLnZlcnRleEF0KGkpKTsKKyAg
ICAgICAgICAgIHBhdGguYWRkTGluZVRvKHZlcnRleCk7CisgICAgICAgIH0KKyAgICAgICAgaWYg
KHBvbHlnb24ubnVtYmVyT2ZWZXJ0aWNlcygpKQorICAgICAgICAgICAgcGF0aC5jbG9zZVN1YnBh
dGgoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGRlZmF1bHQ6IGJyZWFrOworICAgIH0K
KyAgICBpZiAocGF0aC5sZW5ndGgoKSkgeworICAgICAgICBQYXRoQXBwbHlJbmZvIGluZm87Cisg
ICAgICAgIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4gc2hhcGVQYXRoID0gSW5zcGVjdG9yQXJyYXk6
OmNyZWF0ZSgpOworICAgICAgICBpbmZvLnJvb3RWaWV3ID0gY29udGFpbmluZ0ZyYW1lLT5wYWdl
KCktPm1haW5GcmFtZSgpLnZpZXcoKTsKKyAgICAgICAgaW5mby52aWV3ID0gY29udGFpbmluZ0Zy
YW1lLT52aWV3KCk7CisgICAgICAgIGluZm8uYXJyYXkgPSBzaGFwZVBhdGguZ2V0KCk7CisgICAg
ICAgIGluZm8ucmVuZGVyZXIgPSByZW5kZXJlcjsKKyAgICAgICAgcGF0aC5hcHBseSgmaW5mbywg
JmFwcGVuZFBhdGhTZWdtZW50KTsKKyAgICAgICAgc2hhcGVPYmplY3QtPnNldEFycmF5KCJwYXRo
Iiwgc2hhcGVQYXRoLnJlbGVhc2UoKSk7CisgICAgfQorCisgICAgcmV0dXJuIHNoYXBlT2JqZWN0
LnJlbGVhc2UoKTsKK30KKyNlbmRpZgorCiBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+IGJ1aWxkT2JqZWN0Rm9yRWxlbWVudEluZm8oTm9kZSogbm9kZSkKIHsKICAgICBpZiAoIW5v
ZGUtPmlzRWxlbWVudE5vZGUoKSB8fCAhbm9kZS0+ZG9jdW1lbnQoKS5mcmFtZSgpKQpAQCAtNTg1
LDYgKzcwMCwxNSBAQCBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2Jq
ZWN0Rm9yRWxlbWVudEluZm8oTm9kZSogbm9kZSkKICAgICAgICAgZWxlbWVudEluZm8tPnNldE9i
amVjdCgiY29udGVudEZsb3dJbmZvIiwgY29udGVudEZsb3dJbmZvLnJlbGVhc2UoKSk7CiAgICAg
fQogCisjaWYgRU5BQkxFKENTU19TSEFQRVMpCisgICAgaWYgKHJlbmRlcmVyLT5pc0JveCgpKSB7
CisgICAgICAgIFJlbmRlckJveCogcmVuZGVyQm94ID0gdG9SZW5kZXJCb3gocmVuZGVyZXIpOwor
ICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBzaGFwZU9iamVjdCA9IGJ1aWxkT2JqZWN0
Rm9yU2hhcGVPdXRzaWRlKGNvbnRhaW5pbmdGcmFtZSwgcmVuZGVyQm94KTsKKyAgICAgICAgaWYg
KHNoYXBlT2JqZWN0KQorICAgICAgICAgICAgZWxlbWVudEluZm8tPnNldE9iamVjdCgic2hhcGVP
dXRzaWRlSW5mbyIsIHNoYXBlT2JqZWN0LnJlbGVhc2UoKSk7CisgICAgfQorI2VuZGlmCisKICAg
ICByZXR1cm4gZWxlbWVudEluZm8ucmVsZWFzZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheVBhZ2UuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheVBhZ2UuanMKaW5kZXggOTRmMjg2MjVmMmU2OGZj
NmIyOWM4ZTRmMTBkMWM2Zjk1ZDFmZGUzZi4uMzE3ZTE2YjZkZjVjZTQxNDE3YjY0MmFiOTYxYzE4
MjE0YWJlOGViMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ck92ZXJsYXlQYWdlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JP
dmVybGF5UGFnZS5qcwpAQCAtMTgsNiArMTgsOSBAQCBjb25zdCByZWdpb25OdW1iZXJGb250ID0g
ImJvbGQgNDBwdCBzYW5zLXNlcmlmIjsKIGNvbnN0IHJlZ2lvbk51bWJlckZpbGxDb2xvciA9ICJy
Z2JhKDI1NSwgMjU1LCAyNTUsIDAuOSkiOwogY29uc3QgcmVnaW9uTnVtYmVyU3Ryb2tlQ29sb3Ig
PSAicmdiKDYxLCAxMjcsIDIwNCkiOwogCisvLyBDU1MgU2hhcGVzIGhpZ2hsaWdodCBjb2xvcnMK
K2NvbnN0IHNoYXBlSGlnaGxpZ2h0Q29sb3IgPSAicmdiKDI1NSwgMTA1LCAxODApIjsKKwogZnVu
Y3Rpb24gZHJhd1BhdXNlZEluRGVidWdnZXJNZXNzYWdlKG1lc3NhZ2UpCiB7CiAgICAgdmFyIHBh
dXNlZEluRGVidWdnZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGF1c2VkLWluLWRlYnVn
Z2VyIik7CkBAIC0xODQsNiArMTg3LDQ4IEBAIGZ1bmN0aW9uIGRyYXdPdXRsaW5lZFF1YWQocXVh
ZCwgZmlsbENvbG9yLCBvdXRsaW5lQ29sb3IpCiAgICAgY29udGV4dC5yZXN0b3JlKCk7CiB9CiAK
K2Z1bmN0aW9uIHBhdGhDb21tYW5kKGNvbnRleHQsIGNvbW1hbmRzLCBuYW1lLCBsZW5ndGgpIHsK
KyAgICBjb250ZXh0W25hbWVdLmFwcGx5KGNvbnRleHQsIGNvbW1hbmRzLnNsaWNlKDEsIGxlbmd0
aCArIDEpKTsKKyAgICByZXR1cm4gY29tbWFuZHMuc2xpY2UobGVuZ3RoICsgMSk7Cit9CisKK2Z1
bmN0aW9uIGRyYXdQYXRoKGNvbnRleHQsIGNvbW1hbmRzLCBmaWxsQ29sb3IsIG91dGxpbmVDb2xv
cikKK3sKKyAgICBjb250ZXh0LnNhdmUoKTsKKyAgICBjb250ZXh0LmJlZ2luUGF0aCgpOworCisg
ICAgd2hpbGUoY29tbWFuZHMubGVuZ3RoKSB7CisgICAgICAgIHN3aXRjaChjb21tYW5kc1swXSkg
eworICAgICAgICAgICAgLy8gMSBwb2ludAorICAgICAgICAgICAgY2FzZSAnTSc6CisgICAgICAg
ICAgICAgICAgY29tbWFuZHMgPSBwYXRoQ29tbWFuZChjb250ZXh0LCBjb21tYW5kcywgIm1vdmVU
byIsIDIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgLy8gMSBwb2ludAor
ICAgICAgICAgICAgY2FzZSAnTCc6CisgICAgICAgICAgICAgICAgY29tbWFuZHMgPSBwYXRoQ29t
bWFuZChjb250ZXh0LCBjb21tYW5kcywgImxpbmVUbyIsIDIpOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgLy8gMyBwb2ludHMKKyAgICAgICAgICAgIGNhc2UgJ0MnOgorICAg
ICAgICAgICAgICAgIGNvbW1hbmRzID0gcGF0aENvbW1hbmQoY29udGV4dCwgY29tbWFuZHMsICJi
ZXppZXJDdXJ2ZVRvIiwgNik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgICAgIGNvbW1hbmRzID0gY29tbWFuZHMuc2xpY2UoMSk7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBjb250ZXh0LmNsb3NlUGF0aCgpOworICAgIGNvbnRleHQu
ZmlsbFN0eWxlID0gZmlsbENvbG9yOworICAgIGNvbnRleHQuZmlsbCgpOworCisgICAgaWYgKG91
dGxpbmVDb2xvcikgeworICAgICAgICBjb250ZXh0LmxpbmVXaWR0aCA9IDI7CisgICAgICAgIGNv
bnRleHQuc3Ryb2tlU3R5bGUgPSBvdWxpbmVDb2xvcjsKKyAgICAgICAgY29udGV4dC5zdHJva2Uo
KTsKKyAgICB9CisKKyAgICBjb250ZXh0LnJlc3RvcmUoKTsKK30KKwogZnVuY3Rpb24gZHJhd091
dGxpbmVkUXVhZFdpdGhDbGlwKHF1YWQsIGNsaXBRdWFkLCBmaWxsQ29sb3IpCiB7CiAgICAgdmFy
IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKQEAgLTUwNiw2ICs1
NTEsMTMgQEAgZnVuY3Rpb24gX2RyYXdSZWdpb25zSGlnaGxpZ2h0KHJlZ2lvbnMpCiAgICAgfQog
fQogCitmdW5jdGlvbiBfZHJhd1NoYXBlSGlnaGxpZ2h0KHNoYXBlSW5mbykgeworICAgIGlmIChz
aGFwZUluZm8ucGF0aCkKKyAgICAgICAgZHJhd1BhdGgoY29udGV4dCwgc2hhcGVJbmZvLnBhdGgs
IHNoYXBlSGlnaGxpZ2h0Q29sb3IpOworICAgIGVsc2UKKyAgICAgICAgZHJhd091dGxpbmVkUXVh
ZChzaGFwZUluZm8uYm91bmRzLCBzaGFwZUhpZ2hsaWdodENvbG9yLCBzaGFwZUhpZ2hsaWdodENv
bG9yKTsKK30KKwogZnVuY3Rpb24gX2RyYXdGcmFnbWVudEhpZ2hsaWdodChoaWdobGlnaHQpCiB7
CiAgICAgaWYgKCFoaWdobGlnaHQucXVhZHMubGVuZ3RoKSB7CkBAIC01ODAsNiArNjMyLDkgQEAg
ZnVuY3Rpb24gZHJhd05vZGVIaWdobGlnaHQoaGlnaGxpZ2h0KQogICAgIGlmIChoaWdobGlnaHQu
ZWxlbWVudEluZm8gJiYgaGlnaGxpZ2h0LmVsZW1lbnRJbmZvLnJlZ2lvbkZsb3dJbmZvKQogICAg
ICAgICBfZHJhd1JlZ2lvbnNIaWdobGlnaHQoaGlnaGxpZ2h0LmVsZW1lbnRJbmZvLnJlZ2lvbkZs
b3dJbmZvLnJlZ2lvbnMsIGhpZ2hsaWdodCk7CiAKKyAgICBpZiAoaGlnaGxpZ2h0LmVsZW1lbnRJ
bmZvICYmIGhpZ2hsaWdodC5lbGVtZW50SW5mby5zaGFwZU91dHNpZGVJbmZvKQorICAgICAgICBf
ZHJhd1NoYXBlSGlnaGxpZ2h0KGhpZ2hsaWdodC5lbGVtZW50SW5mby5zaGFwZU91dHNpZGVJbmZv
KTsKKwogICAgIGNvbnRleHQucmVzdG9yZSgpOwogCiAgICAgdmFyIGVsZW1lbnRUaXRsZUNvbnRh
aW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlbGVtZW50LXRpdGxlLWNvbnRhaW5lciIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Qb2x5Z29uU2hh
cGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUG9seWdvblNoYXBlLmgKaW5k
ZXggMjY2ODI1Y2E3MzQ4MWIwYWI4OWMwYTBkMTE2MmU0NjEwZWY0MDM1NS4uZTFhNjU3NTA1OGU4
ZWYwNmZkMzhhYWI5NjkyM2QwOWE2Yzg4OTZjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3NoYXBlcy9Qb2x5Z29uU2hhcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc2hhcGVzL1BvbHlnb25TaGFwZS5oCkBAIC05Nyw2ICs5NywxMCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGdldEluY2x1ZGVkSW50ZXJ2YWxzKExheW91dFVuaXQgbG9naWNhbFRv
cCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBTZWdtZW50TGlzdCYpIGNvbnN0IE9WRVJSSURF
OwogICAgIHZpcnR1YWwgYm9vbCBmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKExheW91
dFVuaXQgbWluTG9naWNhbEludGVydmFsVG9wLCBjb25zdCBMYXlvdXRTaXplJiBtaW5Mb2dpY2Fs
SW50ZXJ2YWxTaXplLCBMYXlvdXRVbml0JikgY29uc3QgT1ZFUlJJREU7CiAKKyAgICB2aXJ0dWFs
IFNoYXBlVHlwZSB0eXBlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gU2hhcGU6OlBvbHlnb25U
eXBlOyB9CisKKyAgICBjb25zdCBGbG9hdFBvbHlnb24mIHBvbHlnb24oKSBjb25zdCB7IHJldHVy
biBtX3BvbHlnb247IH0KKwogcHJpdmF0ZToKICAgICBjb25zdCBGbG9hdFBvbHlnb24mIHNoYXBl
TWFyZ2luQm91bmRzKCkgY29uc3Q7CiAgICAgY29uc3QgRmxvYXRQb2x5Z29uJiBzaGFwZVBhZGRp
bmdCb3VuZHMoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
aGFwZXMvUmFzdGVyU2hhcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUmFz
dGVyU2hhcGUuaAppbmRleCBlNDQ4OTQ5N2RhNTJhMDUzNjIxZTc0NzIyYWU1ZDM2Yjc3NTU2ZDg1
Li4xZjU0Y2I3ZjQ0NjZhNDI3ZjMxZmViNTRjYTU3MzEwN2I1N2I4Y2MyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1Jhc3RlclNoYXBlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9SYXN0ZXJTaGFwZS5oCkBAIC05Myw2ICs5Myw4IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0SW5jbHVkZWRJbnRlcnZhbHMoTGF5b3V0VW5p
dCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIFNlZ21lbnRMaXN0JikgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2lj
YWxUb3AoTGF5b3V0VW5pdCBtaW5Mb2dpY2FsSW50ZXJ2YWxUb3AsIGNvbnN0IExheW91dFNpemUm
IG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUsIExheW91dFVuaXQmKSBjb25zdCBPVkVSUklERTsKIAor
ICAgIHZpcnR1YWwgU2hhcGVUeXBlIHR5cGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBTaGFw
ZTo6UmFzdGVyVHlwZTsgfQorCiBwcml2YXRlOgogICAgIGNvbnN0IFJhc3RlclNoYXBlSW50ZXJ2
YWxzJiBtYXJnaW5JbnRlcnZhbHMoKSBjb25zdDsKICAgICBjb25zdCBSYXN0ZXJTaGFwZUludGVy
dmFscyYgcGFkZGluZ0ludGVydmFscygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3NoYXBlcy9SZWN0YW5nbGVTaGFwZS5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3NoYXBlcy9SZWN0YW5nbGVTaGFwZS5oCmluZGV4IGU5ZWNmMDUwNGJiOTkzYzkxMTAz
OTA2MzQ5MzQ1ZWU0Mjk0NDZkNTkuLjAwMDc4Yjg3ZmNiZGZhM2ZhNGI2ZGU1ODM1MzI1NzdlZWNi
OGNkYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUmVjdGFu
Z2xlU2hhcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1JlY3Rhbmds
ZVNoYXBlLmgKQEAgLTc1LDYgKzc1LDExIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0
SW5jbHVkZWRJbnRlcnZhbHMoTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IGxvZ2lj
YWxIZWlnaHQsIFNlZ21lbnRMaXN0JikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29s
IGZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AoTGF5b3V0VW5pdCBtaW5Mb2dpY2FsSW50
ZXJ2YWxUb3AsIGNvbnN0IExheW91dFNpemUmIG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUsIExheW91
dFVuaXQmKSBjb25zdCBPVkVSUklERTsKIAorICAgIExheW91dFVuaXQgbG9naWNhbFJ4KCkgY29u
c3QgeyByZXR1cm4gbV9ib3VuZHMucngoKTsgfQorICAgIExheW91dFVuaXQgbG9naWNhbFJ5KCkg
Y29uc3QgeyByZXR1cm4gbV9ib3VuZHMucnkoKTsgfQorCisgICAgdmlydHVhbCBTaGFwZVR5cGUg
dHlwZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIFNoYXBlOjpSb3VuZGVkUmVjdGFuZ2xlVHlw
ZTsgfQorCiBwcml2YXRlOgogICAgIEZsb2F0Um91bmRlZFJlY3Qgc2hhcGVNYXJnaW5Cb3VuZHMo
KSBjb25zdDsKICAgICBGbG9hdFJvdW5kZWRSZWN0IHNoYXBlUGFkZGluZ0JvdW5kcygpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5oCmluZGV4IGY3NzVlNWVlZjQz
NGZhYTc4MzM3ODlhZTg2ZTA5MTdkYzVjYmUwNzEuLmJkMmQyOTZlNDM1NDIzYjJjZDU4YWM3MjBk
NDIwMjgwMjU4N2Q1ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFw
ZXMvU2hhcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmgK
QEAgLTYwLDYgKzYwLDEyIEBAIHR5cGVkZWYgVmVjdG9yPExpbmVTZWdtZW50PiBTZWdtZW50TGlz
dDsKIAogY2xhc3MgU2hhcGUgewogcHVibGljOgorICAgIGVudW0gU2hhcGVUeXBlIHsKKyAgICAg
ICAgUm91bmRlZFJlY3RhbmdsZVR5cGUsCisgICAgICAgIFBvbHlnb25UeXBlLAorICAgICAgICBS
YXN0ZXJUeXBlCisgICAgfTsKKwogICAgIHN0YXRpYyBQYXNzT3duUHRyPFNoYXBlPiBjcmVhdGVT
aGFwZShjb25zdCBCYXNpY1NoYXBlKiwgY29uc3QgTGF5b3V0U2l6ZSYgbG9naWNhbEJveFNpemUs
IFdyaXRpbmdNb2RlLCBMZW5ndGggbWFyZ2luLCBMZW5ndGggcGFkZGluZyk7CiAgICAgc3RhdGlj
IFBhc3NPd25QdHI8U2hhcGU+IGNyZWF0ZVNoYXBlKGNvbnN0IFN0eWxlSW1hZ2UqLCBmbG9hdCB0
aHJlc2hvbGQsIGNvbnN0IExheW91dFNpemUmIGxvZ2ljYWxCb3hTaXplLCBXcml0aW5nTW9kZSwg
TGVuZ3RoIG1hcmdpbiwgTGVuZ3RoIHBhZGRpbmcpOwogCkBAIC03Miw2ICs3OCw4IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RXhjbHVkZWRJbnRlcnZhbHMoTGF5b3V0VW5pdCBsb2dp
Y2FsVG9wLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIFNlZ21lbnRMaXN0JikgY29uc3QgPSAw
OwogICAgIHZpcnR1YWwgYm9vbCBmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKExheW91
dFVuaXQgbWluTG9naWNhbEludGVydmFsVG9wLCBjb25zdCBMYXlvdXRTaXplJiBtaW5Mb2dpY2Fs
SW50ZXJ2YWxTaXplLCBMYXlvdXRVbml0JiByZXN1bHQpIGNvbnN0ID0gMDsKIAorICAgIHZpcnR1
YWwgU2hhcGVUeXBlIHR5cGUoKSBjb25zdCA9IDA7CisKIHByb3RlY3RlZDoKICAgICBmbG9hdCBz
aGFwZU1hcmdpbigpIGNvbnN0IHsgcmV0dXJuIG1fbWFyZ2luOyB9CiAgICAgZmxvYXQgc2hhcGVQ
YWRkaW5nKCkgY29uc3QgeyByZXR1cm4gbV9wYWRkaW5nOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5mby5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3NoYXBlcy9TaGFwZUluZm8uaAppbmRleCA5NzlkYWY0MjlmYmZhNDIzODNkMGRjN2Vh
OWY0NGFlYTM4M2JjMTMxLi45MjQwNTRmNTAzZjZmMWJhOTRlZTU4MTZiMDczOWVlYWMxMDAyNWI4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5mby5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmgKQEAgLTEw
NSwxMSArMTA1LDQwIEBAIHB1YmxpYzoKICAgICBjb25zdCBSZW5kZXJUeXBlKiBvd25lcigpIGNv
bnN0IHsgcmV0dXJuIG1fcmVuZGVyZXI7IH0KICAgICBMYXlvdXRTaXplIHNoYXBlU2l6ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fc2hhcGVMb2dpY2FsU2l6ZTsgfQogCi1wcm90ZWN0ZWQ6Ci0gICAgU2hh
cGVJbmZvKGNvbnN0IFJlbmRlclR5cGUqIHJlbmRlcmVyKTogbV9yZW5kZXJlcihyZW5kZXJlcikg
eyB9CisgICAgTGF5b3V0UmVjdCBjb21wdXRlZFNoYXBlUGh5c2ljYWxCb3VuZGluZ0JveCgpIGNv
bnN0CisgICAgeworICAgICAgICBMYXlvdXRSZWN0IHBoeXNpY2FsQm91bmRpbmdCb3ggPSBjb21w
dXRlZFNoYXBlTG9naWNhbEJvdW5kaW5nQm94KCk7CisgICAgICAgIHBoeXNpY2FsQm91bmRpbmdC
b3guc2V0WChwaHlzaWNhbEJvdW5kaW5nQm94LngoKSArIGxvZ2ljYWxMZWZ0T2Zmc2V0KCkpOwor
ICAgICAgICBwaHlzaWNhbEJvdW5kaW5nQm94LnNldFkocGh5c2ljYWxCb3VuZGluZ0JveC55KCkg
KyBsb2dpY2FsVG9wT2Zmc2V0KCkpOworICAgICAgICBpZiAobV9yZW5kZXJlci0+c3R5bGUoKS5p
c0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpKQorICAgICAgICAgICAgcGh5c2ljYWxCb3VuZGlu
Z0JveC5zZXRZKG1fcmVuZGVyZXItPmxvZ2ljYWxIZWlnaHQoKSAtIHBoeXNpY2FsQm91bmRpbmdC
b3gubWF4WSgpKTsKKyAgICAgICAgaWYgKCFtX3JlbmRlcmVyLT5zdHlsZSgpLmlzSG9yaXpvbnRh
bFdyaXRpbmdNb2RlKCkpCisgICAgICAgICAgICBwaHlzaWNhbEJvdW5kaW5nQm94ID0gcGh5c2lj
YWxCb3VuZGluZ0JveC50cmFuc3Bvc2VkUmVjdCgpOworICAgICAgICByZXR1cm4gcGh5c2ljYWxC
b3VuZGluZ0JveDsKKyAgICB9CisKKyAgICBGbG9hdFBvaW50IHNoYXBlVG9SZW5kZXJlclBvaW50
KEZsb2F0UG9pbnQgcG9pbnQpIGNvbnN0CisgICAgeworICAgICAgICBGbG9hdFBvaW50IHJlc3Vs
dCA9IEZsb2F0UG9pbnQocG9pbnQueCgpICsgbG9naWNhbExlZnRPZmZzZXQoKSwgcG9pbnQueSgp
ICsgbG9naWNhbFRvcE9mZnNldCgpKTsKKyAgICAgICAgaWYgKG1fcmVuZGVyZXItPnN0eWxlKCku
aXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUoKSkKKyAgICAgICAgICAgIHJlc3VsdC5zZXRZKG1f
cmVuZGVyZXItPmxvZ2ljYWxIZWlnaHQoKSAtIHJlc3VsdC55KCkpOworICAgICAgICBpZiAoIW1f
cmVuZGVyZXItPnN0eWxlKCkuaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKKyAgICAgICAgICAg
IHJlc3VsdCA9IHJlc3VsdC50cmFuc3Bvc2VkUG9pbnQoKTsKKyAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICB9CisKKyAgICBGbG9hdFNpemUgc2hhcGVUb1JlbmRlcmVyU2l6ZShGbG9hdFNpemUg
c2l6ZSkgY29uc3QKKyAgICB7CisgICAgICAgIGlmICghbV9yZW5kZXJlci0+c3R5bGUoKS5pc0hv
cml6b250YWxXcml0aW5nTW9kZSgpKQorICAgICAgICAgICAgcmV0dXJuIHNpemUudHJhbnNwb3Nl
ZFNpemUoKTsKKyAgICAgICAgcmV0dXJuIHNpemU7CisgICAgfQogCiAgICAgY29uc3QgU2hhcGUq
IGNvbXB1dGVkU2hhcGUoKSBjb25zdDsKIAorcHJvdGVjdGVkOgorICAgIFNoYXBlSW5mbyhjb25z
dCBSZW5kZXJUeXBlKiByZW5kZXJlcik6IG1fcmVuZGVyZXIocmVuZGVyZXIpIHsgfQorCiAgICAg
dmlydHVhbCBMYXlvdXRSZWN0IGNvbXB1dGVkU2hhcGVMb2dpY2FsQm91bmRpbmdCb3goKSBjb25z
dCA9IDA7CiAgICAgdmlydHVhbCBTaGFwZVZhbHVlKiBzaGFwZVZhbHVlKCkgY29uc3QgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBnZXRJbnRlcnZhbHMoTGF5b3V0VW5pdCwgTGF5b3V0VW5pdCwgU2Vn
bWVudExpc3QmKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjgxNmU2NjIzZDA4MTFhODgyYjk0NGI3YTg3
NTk4ZTc4NjRjNzJmZi4uZjcyMjUyYjY0ZTI5NjgxYWFmMzVlNzhjMzBiNGE1NTNkZjg0OTYxNyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEzLTExLTA4ICBCZWFyIFRyYXZpcyAgPGJldHJhdmlz
QGFkb2JlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBbQ1NTIFNoYXBlc10gSGlnaGxp
Z2h0IHNoYXBlLW91dHNpZGUgd2hlbiBpdHMgZWxlbWVudCBpcyBzZWxlY3RlZCBpbiB0aGUgV2Vi
IEluc3BlY3RvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTI0MDcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGVzdCB0aGF0IHRoZSBpbmZvcm1hdGlvbiBwYXNzZWQgdG8gdGhlIEluc3BlY3RvciBvdmVy
bGF5IHByb3Blcmx5IGNvcnJlc3BvbmRzIHRvIHRoZQorICAgICAgICB1bmRlcmx5aW5nIHNoYXBl
LiBSZXRyaWV2aW5nIHRoZSBzaGFwZSBoaWdobGlnaHQgaW5mb3JtYXRpb24gaW52b2x2ZXMgYSBz
ZXJpZXMgb2YKKyAgICAgICAgc3RlcHMgYW5kIGhhcyBiZWVuIGFic3RyYWN0ZWQgaW50byBzaGFw
ZS1pbmZvLWhlbHBlci5qcywgd2hpY2ggc3VwcGxpZXMKKyAgICAgICAgSW5zcGVjdG9yLnNoYXBl
T3V0c2lkZUluZm8gaW5zaWRlIGFuIEluc3BlY3RvciB0ZXN0LCBhbmQgdGhlIFNoYXBlSW5mb0hl
bHBlci5ydW5TaGFwZXNUZXN0CisgICAgICAgIG1ldGhvZCB0byBiZWdpbiBhIHRlc3QuCisKKyAg
ICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvbW9kZWwvaGlnaGxpZ2h0LXNoYXBlLW91dHNpZGUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvbW9kZWwv
aGlnaGxpZ2h0LXNoYXBlLW91dHNpZGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9y
LXByb3RvY29sL3Jlc291cmNlcy9zaGFwZS1pbmZvLWhlbHBlci5qczogQWRkZWQuCisgICAgICAg
ICh3aW5kb3cuU2hhcGVJbmZvSGVscGVyKTogRXhwb3NlcyBTaGFwZUluZm9IZWxwZXIucnVuU2hh
cGVzVGVzdC4KKwogMjAxMy0xMS0wOCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNv
bT4KIAogICAgICAgICBJbXBsZW1lbnQgSldLIGtleSBpbXBvcnQgZm9yIEhNQUMgYW5kIEFFUy1D
QkMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9tb2RlbC9oaWdo
bGlnaHQtc2hhcGUtb3V0c2lkZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvbW9kZWwvaGlnaGxpZ2h0LXNoYXBlLW91dHNpZGUtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjhhODFkODk4MTVkMGE0Zjg4Yzk3NWJmMzJhMzZkNTA0YTI5NTIyZTMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbW9kZWwvaGlnaGxpZ2h0
LXNoYXBlLW91dHNpZGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorUEFTUzogQWN0dWFs
IFtNIDUwIDUwIEwgMTUwIDUwIEwgMTUwIDEwMCBMIDUwIDEwMCBMIDUwIDUwIFpdIEV4cGVjdGVk
IFtNIDUwIDUwIEwgMTUwIDUwIEwgMTUwIDEwMCBMIDUwIDEwMCBMIDUwIDUwIFpdCitQQVNTOiBB
Y3R1YWwgW00gNTAgNTAgTCAxMDAgNTAgTCAxMDAgMTAwIEwgNTAgMTAwIFpdIEV4cGVjdGVkIFtN
IDUwIDUwIEwgMTAwIDUwIEwgMTAwIDEwMCBMIDUwIDEwMCBaXQorUEFTUzogQWN0dWFsIFtNIDc1
IDc1IEwgMTc1IDc1IEwgMTc1IDEyNSBMIDc1IDEyNSBMIDc1IDc1IFpdIEV4cGVjdGVkIFtNIDc1
IDc1IEwgMTc1IDc1IEwgMTc1IDEyNSBMIDc1IDEyNSBMIDc1IDc1IFpdCitQQVNTOiBBY3R1YWwg
W00gNTAgNTAgTCAxNTAgNTAgTCAxNTAgMTAwIEwgNTAgMTAwIEwgNTAgNTAgWl0gRXhwZWN0ZWQg
W00gNTAgNTAgTCAxNTAgNTAgTCAxNTAgMTAwIEwgNTAgMTAwIEwgNTAgNTAgWl0KK1BBU1M6IEFj
dHVhbCBbTSA1MCA1MCBMIDE1MCA1MCBMIDE1MCAxMDAgTCA1MCAxMDAgTCA1MCA1MCBaXSBFeHBl
Y3RlZCBbTSA1MCA1MCBMIDE1MCA1MCBMIDE1MCAxMDAgTCA1MCAxMDAgTCA1MCA1MCBaXQorUEFT
UzogQWN0dWFsIFtNIDUwIDUwIEwgMTUwIDUwIEwgMTUwIDEwMCBMIDUwIDEwMCBMIDUwIDUwIFpd
IEV4cGVjdGVkIFtNIDUwIDUwIEwgMTUwIDUwIEwgMTUwIDEwMCBMIDUwIDEwMCBMIDUwIDUwIFpd
CitQQVNTOiBBY3R1YWwgW00gNzUgNzUgTCAxNzUgNzUgTCAxNzUgMTI1IEwgNzUgMTI1IEwgNzUg
NzUgWl0gRXhwZWN0ZWQgW00gNzUgNzUgTCAxNzUgNzUgTCAxNzUgMTI1IEwgNzUgMTI1IEwgNzUg
NzUgWl0KK1BBU1M6IEFjdHVhbCBbTSA1MCA1MCBMIDE1MCA1MCBMIDE1MCAxMDAgTCA1MCAxMDAg
TCA1MCA1MCBaXSBFeHBlY3RlZCBbTSA1MCA1MCBMIDE1MCA1MCBMIDE1MCAxMDAgTCA1MCAxMDAg
TCA1MCA1MCBaXQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wv
bW9kZWwvaGlnaGxpZ2h0LXNoYXBlLW91dHNpZGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9tb2RlbC9oaWdobGlnaHQtc2hhcGUtb3V0c2lkZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmUxNTM1NjJjMjA3ZDdlMTM0ODU4ODJjOTZjM2Y1OGJmMzRmMmEzYmEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbW9kZWwvaGlnaGxpZ2h0LXNoYXBl
LW91dHNpZGUuaHRtbApAQCAtMCwwICsxLDEwMyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4K
K2JvZHkgeworICAgIG1hcmdpbjogMDsKK30KKy5zaGFwZSB7CisgICAgZmxvYXQ6IGxlZnQ7Cisg
ICAgd2lkdGg6IDIwMHB4OworICAgIGhlaWdodDogMjAwcHg7CisgICAgbWFyZ2luLXJpZ2h0OiAt
MjAwcHg7Cit9CisucGFkZGVkIHsKKyAgICB3aWR0aDogMTAwcHg7CisgICAgaGVpZ2h0OiAxMDBw
eDsKKyAgICBwYWRkaW5nOiAyNXB4IDc1cHggNzVweCAyNXB4OworfQorLmJvcmRlci1ib3ggewor
ICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cit9CisudmVydGljYWwtbHIgeworICAgIC13ZWJr
aXQtd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1scjsKK30KKy52ZXJ0aWNhbC1ybCB7CisgICAgLXdl
YmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsOworfQorLnJlY3RhbmdsZSB7CisgICAgLXdl
YmtpdC1zaGFwZS1vdXRzaWRlOiByZWN0YW5nbGUoNTBweCwgNTBweCwgMTAwcHgsIDUwcHgpOwor
fQorLnBvbHlnb24geworICAgIC13ZWJraXQtc2hhcGUtb3V0c2lkZTogcG9seWdvbig1MHB4IDUw
cHgsIDEwMHB4IDUwcHgsIDEwMHB4IDEwMHB4LCA1MHB4IDEwMHB4KTsKK30KKzwvc3R5bGU+Cis8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9yZXNvdXJjZXMvc2hhcGUtaW5mby1o
ZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHNoYXBlVGVzdHMoKSB7Cisg
ICAgdmFyIHRlc3RzID0gWworICAgIHsKKyAgICAgICAgJ3NlbGVjdG9yJyA6ICcucmVjdGFuZ2xl
JywKKyAgICAgICAgJ3BhdGgnIDogWydNJywgNTAsIDUwLCAnTCcsIDE1MCwgNTAsICdMJywgMTUw
LCAxMDAsICdMJywgNTAsIDEwMCwgJ0wnLCA1MCwgNTAsICdaJ10KKyAgICB9LAorICAgIHsKKyAg
ICAgICAgJ3NlbGVjdG9yJyA6ICcucG9seWdvbicsCisgICAgICAgICdwYXRoJyA6IFsnTScsIDUw
LCA1MCwgJ0wnLCAxMDAsIDUwLCAnTCcsIDEwMCwgMTAwLCAnTCcsIDUwLCAxMDAsICdaJ10KKyAg
ICB9LAorICAgIHsKKyAgICAgICAgJ3NlbGVjdG9yJyA6ICcucmVjdGFuZ2xlLnBhZGRlZCcsCisg
ICAgICAgICdwYXRoJyA6IFsnTScsIDc1LCA3NSwgJ0wnLCAxNzUsIDc1LCAnTCcsIDE3NSwgMTI1
LCAnTCcsIDc1LCAxMjUsICdMJywgNzUsIDc1LCAnWiddCisgICAgfSwKKyAgICB7CisgICAgICAg
ICdzZWxlY3RvcicgOiAnLnJlY3RhbmdsZS5wYWRkZWQuYm9yZGVyLWJveCcsCisgICAgICAgICdw
YXRoJyA6IFsnTScsIDUwLCA1MCwgJ0wnLCAxNTAsIDUwLCAnTCcsIDE1MCwgMTAwLCAnTCcsIDUw
LCAxMDAsICdMJywgNTAsIDUwLCAnWiddCisgICAgfSwKKyAgICB7CisgICAgICAgICdzZWxlY3Rv
cicgOiAnLnJlY3RhbmdsZS52ZXJ0aWNhbC1scicsCisgICAgICAgICdwYXRoJyA6IFsnTScsIDUw
LCA1MCwgJ0wnLCAxNTAsIDUwLCAnTCcsIDE1MCwgMTAwLCAnTCcsIDUwLCAxMDAsICdMJywgNTAs
IDUwLCAnWiddCisgICAgfSwKKyAgICB7CisgICAgICAgICdzZWxlY3RvcicgOiAnLnJlY3Rhbmds
ZS52ZXJ0aWNhbC1ybCcsCisgICAgICAgICdwYXRoJyA6IFsnTScsIDUwLCA1MCwgJ0wnLCAxNTAs
IDUwLCAnTCcsIDE1MCwgMTAwLCAnTCcsIDUwLCAxMDAsICdMJywgNTAsIDUwLCAnWiddCisgICAg
fSwKKyAgICB7CisgICAgICAgICdzZWxlY3RvcicgOiAnLnJlY3RhbmdsZS5wYWRkZWQudmVydGlj
YWwtcmwnLAorICAgICAgICAncGF0aCcgOiBbJ00nLCA3NSwgNzUsICdMJywgMTc1LCA3NSwgJ0wn
LCAxNzUsIDEyNSwgJ0wnLCA3NSwgMTI1LCAnTCcsIDc1LCA3NSwgJ1onXQorICAgIH0sCisgICAg
eworICAgICAgICAnc2VsZWN0b3InIDogJy5yZWN0YW5nbGUucGFkZGVkLnZlcnRpY2FsLXJsLmJv
cmRlci1ib3gnLAorICAgICAgICAncGF0aCcgOiBbJ00nLCA1MCwgNTAsICdMJywgMTUwLCA1MCwg
J0wnLCAxNTAsIDEwMCwgJ0wnLCA1MCwgMTAwLCAnTCcsIDUwLCA1MCwgJ1onXQorICAgIH0KKyAg
ICBdOworCisgICAgZnVuY3Rpb24gZG9UZXN0cyh0ZXN0cykgeworICAgICAgICBpZiAoIXRlc3Rz
Lmxlbmd0aCkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICB2YXIgdGVzdCA9IHRlc3RzWzBd
OworICAgICAgICB0ZXN0cyA9IHRlc3RzLnNwbGljZSgxKTsKKyAgICAgICAgSW5zcGVjdG9yVGVz
dC5zaGFwZU91dHNpZGVJbmZvKHRlc3Quc2VsZWN0b3IsIGZ1bmN0aW9uKHNoYXBlT3V0c2lkZSkg
eworICAgICAgICAgICAgdmFyIGFjdHVhbCA9IHNoYXBlT3V0c2lkZS5wYXRoLmpvaW4oJyAnKTsK
KyAgICAgICAgICAgIHZhciBleHBlY3RlZCA9IHRlc3QucGF0aC5qb2luKCcgJyk7CisgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChhY3R1YWwgPT09IGV4cGVjdGVkLCAiQWN0dWFsIFsi
ICsgYWN0dWFsICsgIl0gRXhwZWN0ZWQgWyIgKyBleHBlY3RlZCArICJdIik7CisgICAgICAgICAg
ICBkb1Rlc3RzKHRlc3RzKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZG9UZXN0cyh0ZXN0
cyk7Cit9Cit3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7IFNoYXBlSW5mb0hlbHBlci5ydW5T
aGFwZVRlc3Qoc2hhcGVUZXN0cyk7IH0KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAg
PGRpdiBjbGFzcz0nc2hhcGUgcmVjdGFuZ2xlJz48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSdzaGFw
ZSBwb2x5Z29uJz48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSdzaGFwZSBwYWRkZWQgcmVjdGFuZ2xl
Jz48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSdzaGFwZSBwYWRkZWQgcmVjdGFuZ2xlIGJvcmRlci1i
b3gnPjwvZGl2PgorICAgIDxkaXYgY2xhc3M9J3NoYXBlIHJlY3RhbmdsZSB2ZXJ0aWNhbC1scic+
PC9kaXY+CisgICAgPGRpdiBjbGFzcz0nc2hhcGUgcmVjdGFuZ2xlIHZlcnRpY2FsLXJsJz48L2Rp
dj4KKyAgICA8ZGl2IGNsYXNzPSdzaGFwZSBwYWRkZWQgcmVjdGFuZ2xlIHZlcnRpY2FsLXJsJz48
L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSdzaGFwZSBwYWRkZWQgcmVjdGFuZ2xlIHZlcnRpY2FsLXJs
IGJvcmRlci1ib3gnPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3Jlc291cmNlcy9zaGFwZS1pbmZvLWhlbHBlci5qcyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9yZXNvdXJjZXMvc2hhcGUtaW5mby1oZWxw
ZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZGJlMWQ0ODYzNzM4OTVhMWJiOWQzY2JkYzU4YjA0YThiZjMwYmM4
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9yZXNv
dXJjZXMvc2hhcGUtaW5mby1oZWxwZXIuanMKQEAgLTAsMCArMSw2NCBAQAord2luZG93LlNoYXBl
SW5mb0hlbHBlciA9IChmdW5jdGlvbigpIHsKKyAgICBmdW5jdGlvbiBzaGFwZU91dHNpZGVJbmZv
KHNlbGVjdG9yLCBjYWxsYmFjaykgeworICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJET00uZ2V0RG9jdW1lbnQiLCB7fSwgb25Hb3REb2N1bWVudCk7CisKKyAgICAgICAgZnVuY3Rp
b24gb25Hb3REb2N1bWVudChtc2cpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tG
b3JFcnJvcihtc2cpOworICAgICAgICAgICAgdmFyIG5vZGUgPSBtc2cucmVzdWx0LnJvb3Q7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJET00ucXVlcnlTZWxlY3RvciIs
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5vZGVJZCI6IG5vZGUubm9kZUlkLAor
ICAgICAgICAgICAgICAgICJzZWxlY3RvciI6IHNlbGVjdG9yCisgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgb25RdWVyeVNlbGVjdG9yKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9u
IG9uUXVlcnlTZWxlY3Rvcihtc2cpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tG
b3JFcnJvcihtc2cpOworICAgICAgICAgICAgdmFyIG5vZGUgPSBtc2cucmVzdWx0OworICAgICAg
ICAgICAgdmFyIGhpZ2hsaWdodENvbmZpZyA9IHsKKyAgICAgICAgICAgICAgICBzaG93SW5mbzog
dHJ1ZSwKKyAgICAgICAgICAgICAgICBjb250ZW50Q29sb3I6IHtyOiAyNTUsIGc6IDI1NSwgYjog
MjU1fSwKKyAgICAgICAgICAgICAgICBwYWRkaW5nQ29sb3I6IHtyOiAyNTUsIGc6IDI1NSwgYjog
MjU1fSwKKyAgICAgICAgICAgICAgICBib3JkZXJDb2xvcjoge3I6IDI1NSwgZzogMjU1LCBiOiAy
NTV9LAorICAgICAgICAgICAgICAgIG1hcmdpbkNvbG9yOiB7cjogMjU1LCBnOiAyNTUsIGI6IDI1
NX0sCisgICAgICAgICAgICB9OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFu
ZCgiRE9NLmhpZ2hsaWdodE5vZGUiLAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJu
b2RlSWQiOiBub2RlLm5vZGVJZCwKKyAgICAgICAgICAgICAgICAiaGlnaGxpZ2h0Q29uZmlnIjog
aGlnaGxpZ2h0Q29uZmlnCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgb25IaWdobGlnaHRO
b2RlKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIG9uSGlnaGxpZ2h0Tm9kZShtc2cp
IHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihtc2cpOworICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsCisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgImV4cHJlc3Npb24iOiAid2luZG93LmludGVybmFs
cy5pbnNwZWN0b3JIaWdobGlnaHRPYmplY3QoKSIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICBvblJ1bnRpbWVFdmFsdWF0ZSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBvblJ1
bnRpbWVFdmFsdWF0ZShtc2cpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JF
cnJvcihtc2cpOworICAgICAgICAgICAgdmFyIHZhbHVlID0gSlNPTi5wYXJzZShtc2cucmVzdWx0
LnJlc3VsdC52YWx1ZSk7CisgICAgICAgICAgICBjYWxsYmFjayh2YWx1ZS5lbGVtZW50SW5mby5z
aGFwZU91dHNpZGVJbmZvKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blNo
YXBlVGVzdCh0ZXN0Zm4pIHsKKyAgICAgICAgdmFyIGJvZHkgPSBbCisgICAgICAgICAgICAiSW5z
cGVjdG9yVGVzdC5zaGFwZU91dHNpZGVJbmZvID0gIiArIHNoYXBlT3V0c2lkZUluZm8udG9TdHJp
bmcoKSwKKyAgICAgICAgICAgICIoIiArIHRlc3Rmbi50b1N0cmluZygpICsgIikoKSIKKyAgICAg
ICAgXTsKKyAgICAgICAgd2luZG93LnRlc3QgPSBuZXcgRnVuY3Rpb24oCisgICAgICAgICAgICBi
b2R5LmpvaW4oJztcbicpCisgICAgICAgICk7CisgICAgICAgIHJ1blRlc3QoKTsKKyAgICB9CisK
KyAgICByZXR1cm4geworICAgICAgICAncnVuU2hhcGVUZXN0JyA6IHJ1blNoYXBlVGVzdAorICAg
IH0KK30pKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216457</attachid>
            <date>2013-11-08 16:19:53 -0800</date>
            <delta_ts>2013-11-08 18:53:49 -0800</delta_ts>
            <desc>Incorporating feedback</desc>
            <filename>bug-124071-20131108161952.patch</filename>
            <type>text/plain</type>
            <size>26109</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU4OTQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTAwMTIyNzQxZjAyMTBj
YmYyODNhMGFlOTg3OTQxZWM5MzMxYTIyYS4uNjg0NjEwNjQ2YWYxMzQ0NGM1MDAyNzMxZjVhNDQ5
MzNkMDBmYmEwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEzLTExLTA4ICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBb
Q1NTIFNoYXBlc10gSGlnaGxpZ2h0IHNoYXBlLW91dHNpZGUgd2hlbiBpdHMgZWxlbWVudCBpcyBz
ZWxlY3RlZCBpbiB0aGUgV2ViIEluc3BlY3RvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0MDcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkaW5nIGNvZGUgdG8gcGFzcyBjb21wdXRlZCBzaGFwZSBp
bmZvcm1hdGlvbiAocGF0aCBhbmQgYm91bmRzKSB0byB0aGUgSW5zcGVjdG9yIG92ZXJsYXkKKyAg
ICAgICAgY2FudmFzLCBhbmQgdGhlIGNvZGUgdG8gZGlzcGxheSBpdC4gVGhlIGNvZGUgY3JlYXRl
cyBhIHBhdGggYmFzZWQgb24gU2hhcGVJbmZvJ3MgY29tcHV0ZWQKKyAgICAgICAgc2hhcGUuIFRo
ZSBzaGFwZSBoaWdobGlnaHQgZHJhd3Mgd2hlbmV2ZXIgYW4gZWxlbWVudCBpcyBoaWdobGlnaHRl
ZCwgdmlhIHNlbGVjdGlvbiBpbgorICAgICAgICB0aGUgSW5zcGVjdG9yIGVsZW1lbnRzIHZpZXcu
CisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yLXByb3RvY29sL21vZGVsL2hpZ2hsaWdodC1zaGFw
ZS1vdXRzaWRlLmh0bWwKKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsUG9pbnRUb1Jvb3QpOiBDb252ZXJ0IGEgbG9jYWwg
cG9pbnQgdG8gYmUgcmVsYXRpdmUgdG8gdGhlIHJvb3Qgdmlldy4KKyAgICAgICAgKFdlYkNvcmU6
OmFwcGVuZFBhdGhDb21tYW5kQW5kUG9pbnRzKTogSGVscGVyIGZvciBidWlsZGluZyBhIHNpbmds
ZSBzZWdtZW50J3Mgd29ydGgKKyAgICAgICAgb2YgdGhlIG92ZXJhbGwgcGF0aC4KKyAgICAgICAg
KFdlYkNvcmU6OmFwcGVuZFBhdGhTZWdtZW50KTogQnVpbGQgYSBzaW5nbGUgc2VnbWVudCdzIHdv
cnRoIG9mIHRoZSBvdmVyYWxsIHBhdGguCisgICAgICAgIChXZWJDb3JlOjpidWlsZE9iamVjdEZv
clNoYXBlT3V0c2lkZSk6IEJ1aWxkIGFuIG9iamVjdCB0byBwYXNzIHRvIHRoZSBJbnNwZWN0b3Ig
b3ZlcmxheQorICAgICAgICB0aGF0IHJlcHJlc2VudHMgdGhlIHNoYXBlLgorICAgICAgICAoV2Vi
Q29yZTo6YnVpbGRPYmplY3RGb3JFbGVtZW50SW5mbyk6IENhbGwgYnVpbGRPYmplY3RGb3JTaGFw
ZU91dHNpZGUgYW5kIHBhc3MgdGhlCisgICAgICAgIHJlc3VsdGluZyBvYmplY3QgYWxvbmcuCisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXlQYWdlLmpzOgorICAgICAgICAocGF0
aENvbW1hbmQpOiBEcmF3IGEgc2luZ2xlIHBhdGggY29tbWFuZC4KKyAgICAgICAgKGRyYXdQYXRo
KTogRHJhdyB0aGUgb3ZlcmFsbCBwYXRoLgorICAgICAgICAoX2RyYXdTaGFwZUhpZ2hsaWdodCk6
IERyYXcgdGhlIGhpZ2hsaWdodCBmb3IgdGhlIGdpdmVuIHNoYXBlSW5mby4KKyAgICAgICAgKGRy
YXdOb2RlSGlnaGxpZ2h0KTogQ2FsbCBfZHJhd1NoYXBlSGlnaGxpZ2h0LgorICAgICAgICAqIHJl
bmRlcmluZy9zaGFwZXMvUG9seWdvblNoYXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpQb2x5Z29u
U2hhcGU6OnBvbHlnb24pOiBFeHBvc2UgdGhlIHVuZGVybHlpbmcgdmVydGV4IGluZm9ybWF0aW9u
IGZvciBhCisgICAgICAgIFBvbHlnb25TaGFwZS4KKyAgICAgICAgKiByZW5kZXJpbmcvc2hhcGVz
L1Jhc3RlclNoYXBlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9SZWN0YW5nbGVTaGFw
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVjdGFuZ2xlU2hhcGU6OmxvZ2ljYWxSeCk6IEV4cG9z
ZSB0aGUgbG9naWNhbCByYWRpaSBmb3IgYSBzaGFwZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlY3Rh
bmdsZVNoYXBlOjpsb2dpY2FsUnkpOiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvc2hhcGVz
L1NoYXBlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluZm8uaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNoYXBlSW5mbzo6Y29tcHV0ZWRTaGFwZVBoeXNpY2FsQm91bmRpbmdCb3gp
OiBUaGUgcGh5c2ljYWwgYm91bmRzIG9mIGEKKyAgICAgICAgc2hhcGUgaW4gcmVuZGVyZXIgY29v
cmRpbmF0ZXMuCisgICAgICAgIChXZWJDb3JlOjpTaGFwZUluZm86OnNoYXBlVG9SZW5kZXJlclBv
aW50KTogQ29udmVydCBzaGFwZSBjb29yZGluYXRlcyB0byByZW5kZXJlcgorICAgICAgICBjb29y
ZGluYXRlcy4KKyAgICAgICAgKFdlYkNvcmU6OlNoYXBlSW5mbzo6c2hhcGVUb1JlbmRlcmVyU2l6
ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2hhcGVJbmZvOjpTaGFwZUluZm8pOgorCiAy
MDEzLTExLTA4ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQwNjQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAppbmRleCBhZjNmMjZlMzZm
MTRmY2UwYTY1NWE2ZjBmMDY0ZWVhZjQ0ZWNlMTFmLi44NjQ4OTFkNzEyNGU1YTNkMDRhNzcxZTk3
NTBkODdmOTk3NDE2NTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yT3ZlcmxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ck92ZXJsYXkuY3BwCkBAIC00Myw2ICs0Myw4IEBACiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCiAj
aW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQb2x5Z29uU2hh
cGUuaCIKKyNpbmNsdWRlICJSZWN0YW5nbGVTaGFwZS5oIgogI2luY2x1ZGUgIlJlbmRlckJveE1v
ZGVsT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRl
ckZsb3dUaHJlYWQuaCIKQEAgLTUzMiw2ICs1MzQsMTI3IEBAIHN0YXRpYyBQYXNzUmVmUHRyPElu
c3BlY3RvckFycmF5PiBidWlsZE9iamVjdEZvclJlbmRlcmVyRnJhZ21lbnRzKFJlbmRlck9iamVj
dCoKICAgICByZXR1cm4gZnJhZ21lbnRzQXJyYXkucmVsZWFzZSgpOwogfQogCisjaWYgRU5BQkxF
KENTU19TSEFQRVMpCitzdGF0aWMgRmxvYXRQb2ludCBsb2NhbFBvaW50VG9Sb290KFJlbmRlck9i
amVjdCogcmVuZGVyZXIsIGNvbnN0IEZyYW1lVmlldyogbWFpblZpZXcsIGNvbnN0IEZyYW1lVmll
dyogdmlldywgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQpCit7CisgICAgRmxvYXRQb2ludCByZXN1
bHQgPSByZW5kZXJlci0+bG9jYWxUb0Fic29sdXRlKHBvaW50KTsKKyAgICByZXN1bHQgPSB2aWV3
LT5jb250ZW50c1RvUm9vdFZpZXcocm91bmRlZEludFBvaW50KHJlc3VsdCkpOworICAgIHJlc3Vs
dCArPSBtYWluVmlldy0+c2Nyb2xsT2Zmc2V0KCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwor
c3RydWN0IFBhdGhBcHBseUluZm8geworICAgIEZyYW1lVmlldyogcm9vdFZpZXc7CisgICAgRnJh
bWVWaWV3KiB2aWV3OworICAgIEluc3BlY3RvckFycmF5KiBhcnJheTsKKyAgICBSZW5kZXJPYmpl
Y3QqIHJlbmRlcmVyOworfTsKKworc3RhdGljIHZvaWQgYXBwZW5kUGF0aENvbW1hbmRBbmRQb2lu
dHMoUGF0aEFwcGx5SW5mbyogaW5mbywgY29uc3QgU3RyaW5nJiBjb21tYW5kLCBjb25zdCBGbG9h
dFBvaW50IHBvaW50c1tdLCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgRmxvYXRQb2ludCBwb2lu
dDsKKyAgICBpbmZvLT5hcnJheS0+cHVzaFN0cmluZyhjb21tYW5kKTsKKyAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKKyAgICAgICAgcG9pbnQgPSBsb2NhbFBvaW50
VG9Sb290KGluZm8tPnJlbmRlcmVyLCBpbmZvLT5yb290VmlldywgaW5mby0+dmlldywgcG9pbnRz
W2ldKTsKKyAgICAgICAgaW5mby0+YXJyYXktPnB1c2hOdW1iZXIocG9pbnQueCgpKTsKKyAgICAg
ICAgaW5mby0+YXJyYXktPnB1c2hOdW1iZXIocG9pbnQueSgpKTsKKyAgICB9Cit9CisKK3N0YXRp
YyB2b2lkIGFwcGVuZFBhdGhTZWdtZW50KHZvaWQqIGluZm8sIGNvbnN0IFBhdGhFbGVtZW50KiBw
YXRoRWxlbWVudCkKK3sKKyAgICBQYXRoQXBwbHlJbmZvKiBwYXRoQXBwbHlJbmZvID0gc3RhdGlj
X2Nhc3Q8UGF0aEFwcGx5SW5mbyo+KGluZm8pOworICAgIEZsb2F0UG9pbnQgcG9pbnQ7CisgICAg
c3dpdGNoIChwYXRoRWxlbWVudC0+dHlwZSkgeworICAgIC8vIFRoZSBwb2ludHMgbWVtYmVyIHdp
bGwgY29udGFpbiAxIHZhbHVlLgorICAgIGNhc2UgUGF0aEVsZW1lbnRNb3ZlVG9Qb2ludDoKKyAg
ICAgICAgYXBwZW5kUGF0aENvbW1hbmRBbmRQb2ludHMocGF0aEFwcGx5SW5mbywgIk0iLCBwYXRo
RWxlbWVudC0+cG9pbnRzLCAxKTsKKyAgICAgICAgYnJlYWs7CisgICAgLy8gVGhlIHBvaW50cyBt
ZW1iZXIgd2lsbCBjb250YWluIDEgdmFsdWUuCisgICAgY2FzZSBQYXRoRWxlbWVudEFkZExpbmVU
b1BvaW50OgorICAgICAgICBhcHBlbmRQYXRoQ29tbWFuZEFuZFBvaW50cyhwYXRoQXBwbHlJbmZv
LCAiTCIsIHBhdGhFbGVtZW50LT5wb2ludHMsIDEpOworICAgICAgICBicmVhazsKKyAgICAvLyBU
aGUgcG9pbnRzIG1lbWJlciB3aWxsIGNvbnRhaW4gMyB2YWx1ZXMuCisgICAgY2FzZSBQYXRoRWxl
bWVudEFkZEN1cnZlVG9Qb2ludDoKKyAgICAgICAgYXBwZW5kUGF0aENvbW1hbmRBbmRQb2ludHMo
cGF0aEFwcGx5SW5mbywgIkMiLCBwYXRoRWxlbWVudC0+cG9pbnRzLCAzKTsKKyAgICAgICAgYnJl
YWs7CisgICAgLy8gVGhlIHBvaW50cyBtZW1iZXIgd2lsbCBjb250YWluIDIgdmFsdWVzLgorICAg
IGNhc2UgUGF0aEVsZW1lbnRBZGRRdWFkQ3VydmVUb1BvaW50OgorICAgICAgICBhcHBlbmRQYXRo
Q29tbWFuZEFuZFBvaW50cyhwYXRoQXBwbHlJbmZvLCAiUSIsIHBhdGhFbGVtZW50LT5wb2ludHMs
IDIpOworICAgICAgICBicmVhazsKKyAgICAvLyBUaGUgcG9pbnRzIG1lbWJlciB3aWxsIGNvbnRh
aW4gbm8gdmFsdWVzLgorICAgIGNhc2UgUGF0aEVsZW1lbnRDbG9zZVN1YnBhdGg6CisgICAgICAg
IGFwcGVuZFBhdGhDb21tYW5kQW5kUG9pbnRzKHBhdGhBcHBseUluZm8sICJaIiwgbnVsbHB0ciwg
MCk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK3N0YXRpYyBQYXNzUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gYnVpbGRPYmplY3RGb3JTaGFwZU91dHNpZGUoRnJhbWUqIGNvbnRhaW5p
bmdGcmFtZSwgUmVuZGVyQm94KiByZW5kZXJlcikKK3sKKyAgICBjb25zdCBTaGFwZU91dHNpZGVJ
bmZvKiBzaGFwZU91dHNpZGVJbmZvID0gcmVuZGVyZXItPnNoYXBlT3V0c2lkZUluZm8oKTsKKyAg
ICBpZiAoIXNoYXBlT3V0c2lkZUluZm8pCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAg
UmVmUHRyPEluc3BlY3Rvck9iamVjdD4gc2hhcGVPYmplY3QgPSBJbnNwZWN0b3JPYmplY3Q6OmNy
ZWF0ZSgpOworICAgIExheW91dFJlY3Qgc2hhcGVCb3VuZHMgPSBzaGFwZU91dHNpZGVJbmZvLT5j
b21wdXRlZFNoYXBlUGh5c2ljYWxCb3VuZGluZ0JveCgpOworICAgIEZsb2F0UXVhZCBzaGFwZVF1
YWQgPSByZW5kZXJlci0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3Qoc2hhcGVCb3VuZHMp
KTsKKyAgICBjb250ZW50c1F1YWRUb1BhZ2UoY29udGFpbmluZ0ZyYW1lLT5wYWdlKCktPm1haW5G
cmFtZSgpLnZpZXcoKSwgY29udGFpbmluZ0ZyYW1lLT52aWV3KCksIHNoYXBlUXVhZCk7CisgICAg
c2hhcGVPYmplY3QtPnNldEFycmF5KCJib3VuZHMiLCBidWlsZEFycmF5Rm9yUXVhZChzaGFwZVF1
YWQpKTsKKworICAgIFBhdGggcGF0aDsKKyAgICBzd2l0Y2ggKHNoYXBlT3V0c2lkZUluZm8tPmNv
bXB1dGVkU2hhcGUoKS0+dHlwZSgpKSB7CisgICAgY2FzZSBTaGFwZTo6Um91bmRlZFJlY3Rhbmds
ZVR5cGU6IHsKKyAgICAgICAgY29uc3QgUmVjdGFuZ2xlU2hhcGUqIHNoYXBlID0gc3RhdGljX2Nh
c3Q8Y29uc3QgUmVjdGFuZ2xlU2hhcGUqPihzaGFwZU91dHNpZGVJbmZvLT5jb21wdXRlZFNoYXBl
KCkpOworICAgICAgICBGbG9hdFNpemUgcmFkaWkoc2hhcGUtPmxvZ2ljYWxSeCgpLCBzaGFwZS0+
bG9naWNhbFJ5KCkpOworICAgICAgICByYWRpaSA9IHNoYXBlT3V0c2lkZUluZm8tPnNoYXBlVG9S
ZW5kZXJlclNpemUocmFkaWkpOworICAgICAgICBwYXRoLmFkZFJvdW5kZWRSZWN0KHNoYXBlQm91
bmRzLCByYWRpaSwgUGF0aDo6UHJlZmVyQmV6aWVyUm91bmRlZFJlY3QpOworICAgICAgICBicmVh
azsKKyAgICB9CisKKyAgICBjYXNlIFNoYXBlOjpQb2x5Z29uVHlwZTogeworICAgICAgICBjb25z
dCBQb2x5Z29uU2hhcGUqIHNoYXBlID0gc3RhdGljX2Nhc3Q8Y29uc3QgUG9seWdvblNoYXBlKj4o
c2hhcGVPdXRzaWRlSW5mby0+Y29tcHV0ZWRTaGFwZSgpKTsKKyAgICAgICAgY29uc3QgRmxvYXRQ
b2x5Z29uJiBwb2x5Z29uID0gc2hhcGUtPnBvbHlnb24oKTsKKyAgICAgICAgRmxvYXRQb2ludCB2
ZXJ0ZXg7CisKKyAgICAgICAgaWYgKHBvbHlnb24ubnVtYmVyT2ZWZXJ0aWNlcygpKSB7CisgICAg
ICAgICAgICB2ZXJ0ZXggPSBzaGFwZU91dHNpZGVJbmZvLT5zaGFwZVRvUmVuZGVyZXJQb2ludChw
b2x5Z29uLnZlcnRleEF0KDApKTsKKyAgICAgICAgICAgIHBhdGgubW92ZVRvKHZlcnRleCk7Cisg
ICAgICAgIH0KKworICAgICAgICBmb3IgKHNpemVfdCBpID0gMTsgaSA8IHBvbHlnb24ubnVtYmVy
T2ZWZXJ0aWNlcygpOyBpKyspIHsKKyAgICAgICAgICAgIEZsb2F0UG9pbnQgdmVydGV4ID0gc2hh
cGVPdXRzaWRlSW5mby0+c2hhcGVUb1JlbmRlcmVyUG9pbnQocG9seWdvbi52ZXJ0ZXhBdChpKSk7
CisgICAgICAgICAgICBwYXRoLmFkZExpbmVUbyh2ZXJ0ZXgpOworICAgICAgICB9CisKKyAgICAg
ICAgaWYgKHBvbHlnb24ubnVtYmVyT2ZWZXJ0aWNlcygpKQorICAgICAgICAgICAgcGF0aC5jbG9z
ZVN1YnBhdGgoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgLy8gRklYTUU6IEJ1ZyAx
MjQwODAgLSBSYXN0ZXJTaGFwZXMgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkIGFuZCBvbmx5IGRpc3Bs
YXkgdGhlaXIgc2hhcGUgYm91bmRzCisgICAgY2FzZSBTaGFwZTo6UmFzdGVyVHlwZTogYnJlYWs7
CisgICAgfQorCisgICAgaWYgKHBhdGgubGVuZ3RoKCkpIHsKKyAgICAgICAgUmVmUHRyPEluc3Bl
Y3RvckFycmF5PiBzaGFwZVBhdGggPSBJbnNwZWN0b3JBcnJheTo6Y3JlYXRlKCk7CisgICAgICAg
IFBhdGhBcHBseUluZm8gaW5mbzsKKyAgICAgICAgaW5mby5yb290VmlldyA9IGNvbnRhaW5pbmdG
cmFtZS0+cGFnZSgpLT5tYWluRnJhbWUoKS52aWV3KCk7CisgICAgICAgIGluZm8udmlldyA9IGNv
bnRhaW5pbmdGcmFtZS0+dmlldygpOworICAgICAgICBpbmZvLmFycmF5ID0gc2hhcGVQYXRoLmdl
dCgpOworICAgICAgICBpbmZvLnJlbmRlcmVyID0gcmVuZGVyZXI7CisKKyAgICAgICAgcGF0aC5h
cHBseSgmaW5mbywgJmFwcGVuZFBhdGhTZWdtZW50KTsKKworICAgICAgICBzaGFwZU9iamVjdC0+
c2V0QXJyYXkoInBhdGgiLCBzaGFwZVBhdGgucmVsZWFzZSgpKTsKKyAgICB9CisKKyAgICByZXR1
cm4gc2hhcGVPYmplY3QucmVsZWFzZSgpOworfQorI2VuZGlmCisKIHN0YXRpYyBQYXNzUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4gYnVpbGRPYmplY3RGb3JFbGVtZW50SW5mbyhOb2RlKiBub2RlKQog
ewogICAgIGlmICghbm9kZS0+aXNFbGVtZW50Tm9kZSgpIHx8ICFub2RlLT5kb2N1bWVudCgpLmZy
YW1lKCkpCkBAIC01ODUsNiArNzA4LDE0IEBAIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4gYnVpbGRPYmplY3RGb3JFbGVtZW50SW5mbyhOb2RlKiBub2RlKQogICAgICAgICBlbGVt
ZW50SW5mby0+c2V0T2JqZWN0KCJjb250ZW50Rmxvd0luZm8iLCBjb250ZW50Rmxvd0luZm8ucmVs
ZWFzZSgpKTsKICAgICB9CiAKKyNpZiBFTkFCTEUoQ1NTX1NIQVBFUykKKyAgICBpZiAocmVuZGVy
ZXItPmlzQm94KCkpIHsKKyAgICAgICAgUmVuZGVyQm94KiByZW5kZXJCb3ggPSB0b1JlbmRlckJv
eChyZW5kZXJlcik7CisgICAgICAgIGlmIChSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBzaGFwZU9i
amVjdCA9IGJ1aWxkT2JqZWN0Rm9yU2hhcGVPdXRzaWRlKGNvbnRhaW5pbmdGcmFtZSwgcmVuZGVy
Qm94KSkKKyAgICAgICAgICAgIGVsZW1lbnRJbmZvLT5zZXRPYmplY3QoInNoYXBlT3V0c2lkZUlu
Zm8iLCBzaGFwZU9iamVjdC5yZWxlYXNlKCkpOworICAgIH0KKyNlbmRpZgorCiAgICAgcmV0dXJu
IGVsZW1lbnRJbmZvLnJlbGVhc2UoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXlQYWdlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvck92ZXJsYXlQYWdlLmpzCmluZGV4IDk0ZjI4NjI1ZjJlNjhmYzZiMjljOGU0
ZjEwZDFjNmY5NWQxZmRlM2YuLjI0ZjZhMDdjODczOWY2ZTViM2RlMzk5M2UyOTdiYjNjZTdhYjc1
YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5
UGFnZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheVBh
Z2UuanMKQEAgLTE4LDYgKzE4LDkgQEAgY29uc3QgcmVnaW9uTnVtYmVyRm9udCA9ICJib2xkIDQw
cHQgc2Fucy1zZXJpZiI7CiBjb25zdCByZWdpb25OdW1iZXJGaWxsQ29sb3IgPSAicmdiYSgyNTUs
IDI1NSwgMjU1LCAwLjkpIjsKIGNvbnN0IHJlZ2lvbk51bWJlclN0cm9rZUNvbG9yID0gInJnYig2
MSwgMTI3LCAyMDQpIjsKIAorLy8gQ1NTIFNoYXBlcyBoaWdobGlnaHQgY29sb3JzCitjb25zdCBz
aGFwZUhpZ2hsaWdodENvbG9yID0gInJnYigyNTUsIDEwNSwgMTgwKSI7CisKIGZ1bmN0aW9uIGRy
YXdQYXVzZWRJbkRlYnVnZ2VyTWVzc2FnZShtZXNzYWdlKQogewogICAgIHZhciBwYXVzZWRJbkRl
YnVnZ2VyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBhdXNlZC1pbi1kZWJ1Z2dlciIpOwpA
QCAtMTg0LDYgKzE4Nyw0OCBAQCBmdW5jdGlvbiBkcmF3T3V0bGluZWRRdWFkKHF1YWQsIGZpbGxD
b2xvciwgb3V0bGluZUNvbG9yKQogICAgIGNvbnRleHQucmVzdG9yZSgpOwogfQogCitmdW5jdGlv
biBwYXRoQ29tbWFuZChjb250ZXh0LCBjb21tYW5kcywgbmFtZSwgbGVuZ3RoKSB7CisgICAgY29u
dGV4dFtuYW1lXS5hcHBseShjb250ZXh0LCBjb21tYW5kcy5zbGljZSgxLCBsZW5ndGggKyAxKSk7
CisgICAgcmV0dXJuIGNvbW1hbmRzLnNsaWNlKGxlbmd0aCArIDEpOworfQorCitmdW5jdGlvbiBk
cmF3UGF0aChjb250ZXh0LCBjb21tYW5kcywgZmlsbENvbG9yLCBvdXRsaW5lQ29sb3IpCit7Cisg
ICAgY29udGV4dC5zYXZlKCk7CisgICAgY29udGV4dC5iZWdpblBhdGgoKTsKKworICAgIHdoaWxl
KGNvbW1hbmRzLmxlbmd0aCkgeworICAgICAgICBzd2l0Y2goY29tbWFuZHNbMF0pIHsKKyAgICAg
ICAgLy8gMSBwb2ludAorICAgICAgICBjYXNlICdNJzoKKyAgICAgICAgICAgIGNvbW1hbmRzID0g
cGF0aENvbW1hbmQoY29udGV4dCwgY29tbWFuZHMsICJtb3ZlVG8iLCAyKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAvLyAxIHBvaW50CisgICAgICAgIGNhc2UgJ0wnOgorICAgICAgICAg
ICAgY29tbWFuZHMgPSBwYXRoQ29tbWFuZChjb250ZXh0LCBjb21tYW5kcywgImxpbmVUbyIsIDIp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIC8vIDMgcG9pbnRzCisgICAgICAgIGNhc2Ug
J0MnOgorICAgICAgICAgICAgY29tbWFuZHMgPSBwYXRoQ29tbWFuZChjb250ZXh0LCBjb21tYW5k
cywgImJlemllckN1cnZlVG8iLCA2KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgY29tbWFuZHMgPSBjb21tYW5kcy5zbGljZSgxKTsKKyAgICAgICAg
fQorICAgIH0KKworICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7CisgICAgY29udGV4dC5maWxsU3R5
bGUgPSBmaWxsQ29sb3I7CisgICAgY29udGV4dC5maWxsKCk7CisKKyAgICBpZiAob3V0bGluZUNv
bG9yKSB7CisgICAgICAgIGNvbnRleHQubGluZVdpZHRoID0gMjsKKyAgICAgICAgY29udGV4dC5z
dHJva2VTdHlsZSA9IG91bGluZUNvbG9yOworICAgICAgICBjb250ZXh0LnN0cm9rZSgpOworICAg
IH0KKworICAgIGNvbnRleHQucmVzdG9yZSgpOworfQorCiBmdW5jdGlvbiBkcmF3T3V0bGluZWRR
dWFkV2l0aENsaXAocXVhZCwgY2xpcFF1YWQsIGZpbGxDb2xvcikKIHsKICAgICB2YXIgY2FudmFz
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOwpAQCAtNTA2LDYgKzU1MSwxMyBA
QCBmdW5jdGlvbiBfZHJhd1JlZ2lvbnNIaWdobGlnaHQocmVnaW9ucykKICAgICB9CiB9CiAKK2Z1
bmN0aW9uIF9kcmF3U2hhcGVIaWdobGlnaHQoc2hhcGVJbmZvKSB7CisgICAgaWYgKHNoYXBlSW5m
by5wYXRoKQorICAgICAgICBkcmF3UGF0aChjb250ZXh0LCBzaGFwZUluZm8ucGF0aCwgc2hhcGVI
aWdobGlnaHRDb2xvcik7CisgICAgZWxzZQorICAgICAgICBkcmF3T3V0bGluZWRRdWFkKHNoYXBl
SW5mby5ib3VuZHMsIHNoYXBlSGlnaGxpZ2h0Q29sb3IsIHNoYXBlSGlnaGxpZ2h0Q29sb3IpOwor
fQorCiBmdW5jdGlvbiBfZHJhd0ZyYWdtZW50SGlnaGxpZ2h0KGhpZ2hsaWdodCkKIHsKICAgICBp
ZiAoIWhpZ2hsaWdodC5xdWFkcy5sZW5ndGgpIHsKQEAgLTU4MCw2ICs2MzIsOSBAQCBmdW5jdGlv
biBkcmF3Tm9kZUhpZ2hsaWdodChoaWdobGlnaHQpCiAgICAgaWYgKGhpZ2hsaWdodC5lbGVtZW50
SW5mbyAmJiBoaWdobGlnaHQuZWxlbWVudEluZm8ucmVnaW9uRmxvd0luZm8pCiAgICAgICAgIF9k
cmF3UmVnaW9uc0hpZ2hsaWdodChoaWdobGlnaHQuZWxlbWVudEluZm8ucmVnaW9uRmxvd0luZm8u
cmVnaW9ucywgaGlnaGxpZ2h0KTsKIAorICAgIGlmIChoaWdobGlnaHQuZWxlbWVudEluZm8gJiYg
aGlnaGxpZ2h0LmVsZW1lbnRJbmZvLnNoYXBlT3V0c2lkZUluZm8pCisgICAgICAgIF9kcmF3U2hh
cGVIaWdobGlnaHQoaGlnaGxpZ2h0LmVsZW1lbnRJbmZvLnNoYXBlT3V0c2lkZUluZm8pOworCiAg
ICAgY29udGV4dC5yZXN0b3JlKCk7CiAKICAgICB2YXIgZWxlbWVudFRpdGxlQ29udGFpbmVyID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVsZW1lbnQtdGl0bGUtY29udGFpbmVyIik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1BvbHlnb25TaGFwZS5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Qb2x5Z29uU2hhcGUuaAppbmRleCAyNjY4
MjVjYTczNDgxYjBhYjg5YzBhMGQxMTYyZTQ2MTBlZjQwMzU1Li5lMWE2NTc1MDU4ZThlZjA2ZmQz
OGFhYjk2OTIzZDA5YTZjODg5NmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc2hhcGVzL1BvbHlnb25TaGFwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
aGFwZXMvUG9seWdvblNoYXBlLmgKQEAgLTk3LDYgKzk3LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgZ2V0SW5jbHVkZWRJbnRlcnZhbHMoTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlv
dXRVbml0IGxvZ2ljYWxIZWlnaHQsIFNlZ21lbnRMaXN0JikgY29uc3QgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCBib29sIGZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AoTGF5b3V0VW5pdCBt
aW5Mb2dpY2FsSW50ZXJ2YWxUb3AsIGNvbnN0IExheW91dFNpemUmIG1pbkxvZ2ljYWxJbnRlcnZh
bFNpemUsIExheW91dFVuaXQmKSBjb25zdCBPVkVSUklERTsKIAorICAgIHZpcnR1YWwgU2hhcGVU
eXBlIHR5cGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBTaGFwZTo6UG9seWdvblR5cGU7IH0K
KworICAgIGNvbnN0IEZsb2F0UG9seWdvbiYgcG9seWdvbigpIGNvbnN0IHsgcmV0dXJuIG1fcG9s
eWdvbjsgfQorCiBwcml2YXRlOgogICAgIGNvbnN0IEZsb2F0UG9seWdvbiYgc2hhcGVNYXJnaW5C
b3VuZHMoKSBjb25zdDsKICAgICBjb25zdCBGbG9hdFBvbHlnb24mIHNoYXBlUGFkZGluZ0JvdW5k
cygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9S
YXN0ZXJTaGFwZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9SYXN0ZXJTaGFw
ZS5oCmluZGV4IGU0NDg5NDk3ZGE1MmEwNTM2MjFlNzQ3MjJhZTVkMzZiNzc1NTZkODUuLjFmNTRj
YjdmNDQ2NmE0MjdmMzFmZWI1NGNhNTczMTA3YjU3YjhjYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUmFzdGVyU2hhcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc2hhcGVzL1Jhc3RlclNoYXBlLmgKQEAgLTkzLDYgKzkzLDggQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBnZXRJbmNsdWRlZEludGVydmFscyhMYXlvdXRVbml0IGxvZ2lj
YWxUb3AsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCwgU2VnbWVudExpc3QmKSBjb25zdCBPVkVS
UklERTsKICAgICB2aXJ0dWFsIGJvb2wgZmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRvcChM
YXlvdXRVbml0IG1pbkxvZ2ljYWxJbnRlcnZhbFRvcCwgY29uc3QgTGF5b3V0U2l6ZSYgbWluTG9n
aWNhbEludGVydmFsU2l6ZSwgTGF5b3V0VW5pdCYpIGNvbnN0IE9WRVJSSURFOwogCisgICAgdmly
dHVhbCBTaGFwZVR5cGUgdHlwZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIFNoYXBlOjpSYXN0
ZXJUeXBlOyB9CisKIHByaXZhdGU6CiAgICAgY29uc3QgUmFzdGVyU2hhcGVJbnRlcnZhbHMmIG1h
cmdpbkludGVydmFscygpIGNvbnN0OwogICAgIGNvbnN0IFJhc3RlclNoYXBlSW50ZXJ2YWxzJiBw
YWRkaW5nSW50ZXJ2YWxzKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc2hhcGVzL1JlY3RhbmdsZVNoYXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c2hhcGVzL1JlY3RhbmdsZVNoYXBlLmgKaW5kZXggZTllY2YwNTA0YmI5OTNjOTExMDM5MDYzNDkz
NDVlZTQyOTQ0NmQ1OS4uMDAwNzhiODdmY2JkZmEzZmE0YjZkZTU4MzUzMjU3N2VlY2I4Y2RiZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9SZWN0YW5nbGVTaGFw
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUmVjdGFuZ2xlU2hhcGUu
aApAQCAtNzUsNiArNzUsMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRJbmNsdWRl
ZEludGVydmFscyhMYXlvdXRVbml0IGxvZ2ljYWxUb3AsIExheW91dFVuaXQgbG9naWNhbEhlaWdo
dCwgU2VnbWVudExpc3QmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgZmlyc3RJ
bmNsdWRlZEludGVydmFsTG9naWNhbFRvcChMYXlvdXRVbml0IG1pbkxvZ2ljYWxJbnRlcnZhbFRv
cCwgY29uc3QgTGF5b3V0U2l6ZSYgbWluTG9naWNhbEludGVydmFsU2l6ZSwgTGF5b3V0VW5pdCYp
IGNvbnN0IE9WRVJSSURFOwogCisgICAgTGF5b3V0VW5pdCBsb2dpY2FsUngoKSBjb25zdCB7IHJl
dHVybiBtX2JvdW5kcy5yeCgpOyB9CisgICAgTGF5b3V0VW5pdCBsb2dpY2FsUnkoKSBjb25zdCB7
IHJldHVybiBtX2JvdW5kcy5yeSgpOyB9CisKKyAgICB2aXJ0dWFsIFNoYXBlVHlwZSB0eXBlKCkg
Y29uc3QgT1ZFUlJJREUgeyByZXR1cm4gU2hhcGU6OlJvdW5kZWRSZWN0YW5nbGVUeXBlOyB9CisK
IHByaXZhdGU6CiAgICAgRmxvYXRSb3VuZGVkUmVjdCBzaGFwZU1hcmdpbkJvdW5kcygpIGNvbnN0
OwogICAgIEZsb2F0Um91bmRlZFJlY3Qgc2hhcGVQYWRkaW5nQm91bmRzKCkgY29uc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmgKaW5kZXggZjc3NWU1ZWVmNDM0ZmFhNzgz
Mzc4OWFlODZlMDkxN2RjNWNiZTA3MS4uYmQyZDI5NmU0MzU0MjNiMmNkNThhYzcyMGQ0MjAyODAy
NTg3ZDVkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFw
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGUuaApAQCAtNjAs
NiArNjAsMTIgQEAgdHlwZWRlZiBWZWN0b3I8TGluZVNlZ21lbnQ+IFNlZ21lbnRMaXN0OwogCiBj
bGFzcyBTaGFwZSB7CiBwdWJsaWM6CisgICAgZW51bSBTaGFwZVR5cGUgeworICAgICAgICBSb3Vu
ZGVkUmVjdGFuZ2xlVHlwZSwKKyAgICAgICAgUG9seWdvblR5cGUsCisgICAgICAgIFJhc3RlclR5
cGUKKyAgICB9OworCiAgICAgc3RhdGljIFBhc3NPd25QdHI8U2hhcGU+IGNyZWF0ZVNoYXBlKGNv
bnN0IEJhc2ljU2hhcGUqLCBjb25zdCBMYXlvdXRTaXplJiBsb2dpY2FsQm94U2l6ZSwgV3JpdGlu
Z01vZGUsIExlbmd0aCBtYXJnaW4sIExlbmd0aCBwYWRkaW5nKTsKICAgICBzdGF0aWMgUGFzc093
blB0cjxTaGFwZT4gY3JlYXRlU2hhcGUoY29uc3QgU3R5bGVJbWFnZSosIGZsb2F0IHRocmVzaG9s
ZCwgY29uc3QgTGF5b3V0U2l6ZSYgbG9naWNhbEJveFNpemUsIFdyaXRpbmdNb2RlLCBMZW5ndGgg
bWFyZ2luLCBMZW5ndGggcGFkZGluZyk7CiAKQEAgLTcyLDYgKzc4LDggQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBnZXRFeGNsdWRlZEludGVydmFscyhMYXlvdXRVbml0IGxvZ2ljYWxUb3As
IExheW91dFVuaXQgbG9naWNhbEhlaWdodCwgU2VnbWVudExpc3QmKSBjb25zdCA9IDA7CiAgICAg
dmlydHVhbCBib29sIGZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AoTGF5b3V0VW5pdCBt
aW5Mb2dpY2FsSW50ZXJ2YWxUb3AsIGNvbnN0IExheW91dFNpemUmIG1pbkxvZ2ljYWxJbnRlcnZh
bFNpemUsIExheW91dFVuaXQmIHJlc3VsdCkgY29uc3QgPSAwOwogCisgICAgdmlydHVhbCBTaGFw
ZVR5cGUgdHlwZSgpIGNvbnN0ID0gMDsKKwogcHJvdGVjdGVkOgogICAgIGZsb2F0IHNoYXBlTWFy
Z2luKCkgY29uc3QgeyByZXR1cm4gbV9tYXJnaW47IH0KICAgICBmbG9hdCBzaGFwZVBhZGRpbmco
KSBjb25zdCB7IHJldHVybiBtX3BhZGRpbmc7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c2hhcGVzL1NoYXBlSW5mby5oCmluZGV4IDk3OWRhZjQyOWZiZmE0MjM4M2QwZGM3ZWE5ZjQ0YWVh
MzgzYmMxMzEuLjkyNDA1NGY1MDNmNmYxYmE5NGVlNTgxNmIwNzM5ZWVhYzEwMDI1YjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluZm8uaApAQCAtMTA1LDExICsx
MDUsNDAgQEAgcHVibGljOgogICAgIGNvbnN0IFJlbmRlclR5cGUqIG93bmVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9yZW5kZXJlcjsgfQogICAgIExheW91dFNpemUgc2hhcGVTaXplKCkgY29uc3QgeyBy
ZXR1cm4gbV9zaGFwZUxvZ2ljYWxTaXplOyB9CiAKLXByb3RlY3RlZDoKLSAgICBTaGFwZUluZm8o
Y29uc3QgUmVuZGVyVHlwZSogcmVuZGVyZXIpOiBtX3JlbmRlcmVyKHJlbmRlcmVyKSB7IH0KKyAg
ICBMYXlvdXRSZWN0IGNvbXB1dGVkU2hhcGVQaHlzaWNhbEJvdW5kaW5nQm94KCkgY29uc3QKKyAg
ICB7CisgICAgICAgIExheW91dFJlY3QgcGh5c2ljYWxCb3VuZGluZ0JveCA9IGNvbXB1dGVkU2hh
cGVMb2dpY2FsQm91bmRpbmdCb3goKTsKKyAgICAgICAgcGh5c2ljYWxCb3VuZGluZ0JveC5zZXRY
KHBoeXNpY2FsQm91bmRpbmdCb3gueCgpICsgbG9naWNhbExlZnRPZmZzZXQoKSk7CisgICAgICAg
IHBoeXNpY2FsQm91bmRpbmdCb3guc2V0WShwaHlzaWNhbEJvdW5kaW5nQm94LnkoKSArIGxvZ2lj
YWxUb3BPZmZzZXQoKSk7CisgICAgICAgIGlmIChtX3JlbmRlcmVyLT5zdHlsZSgpLmlzRmxpcHBl
ZEJsb2Nrc1dyaXRpbmdNb2RlKCkpCisgICAgICAgICAgICBwaHlzaWNhbEJvdW5kaW5nQm94LnNl
dFkobV9yZW5kZXJlci0+bG9naWNhbEhlaWdodCgpIC0gcGh5c2ljYWxCb3VuZGluZ0JveC5tYXhZ
KCkpOworICAgICAgICBpZiAoIW1fcmVuZGVyZXItPnN0eWxlKCkuaXNIb3Jpem9udGFsV3JpdGlu
Z01vZGUoKSkKKyAgICAgICAgICAgIHBoeXNpY2FsQm91bmRpbmdCb3ggPSBwaHlzaWNhbEJvdW5k
aW5nQm94LnRyYW5zcG9zZWRSZWN0KCk7CisgICAgICAgIHJldHVybiBwaHlzaWNhbEJvdW5kaW5n
Qm94OworICAgIH0KKworICAgIEZsb2F0UG9pbnQgc2hhcGVUb1JlbmRlcmVyUG9pbnQoRmxvYXRQ
b2ludCBwb2ludCkgY29uc3QKKyAgICB7CisgICAgICAgIEZsb2F0UG9pbnQgcmVzdWx0ID0gRmxv
YXRQb2ludChwb2ludC54KCkgKyBsb2dpY2FsTGVmdE9mZnNldCgpLCBwb2ludC55KCkgKyBsb2dp
Y2FsVG9wT2Zmc2V0KCkpOworICAgICAgICBpZiAobV9yZW5kZXJlci0+c3R5bGUoKS5pc0ZsaXBw
ZWRCbG9ja3NXcml0aW5nTW9kZSgpKQorICAgICAgICAgICAgcmVzdWx0LnNldFkobV9yZW5kZXJl
ci0+bG9naWNhbEhlaWdodCgpIC0gcmVzdWx0LnkoKSk7CisgICAgICAgIGlmICghbV9yZW5kZXJl
ci0+c3R5bGUoKS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQorICAgICAgICAgICAgcmVzdWx0
ID0gcmVzdWx0LnRyYW5zcG9zZWRQb2ludCgpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
IH0KKworICAgIEZsb2F0U2l6ZSBzaGFwZVRvUmVuZGVyZXJTaXplKEZsb2F0U2l6ZSBzaXplKSBj
b25zdAorICAgIHsKKyAgICAgICAgaWYgKCFtX3JlbmRlcmVyLT5zdHlsZSgpLmlzSG9yaXpvbnRh
bFdyaXRpbmdNb2RlKCkpCisgICAgICAgICAgICByZXR1cm4gc2l6ZS50cmFuc3Bvc2VkU2l6ZSgp
OworICAgICAgICByZXR1cm4gc2l6ZTsKKyAgICB9CiAKICAgICBjb25zdCBTaGFwZSogY29tcHV0
ZWRTaGFwZSgpIGNvbnN0OwogCitwcm90ZWN0ZWQ6CisgICAgU2hhcGVJbmZvKGNvbnN0IFJlbmRl
clR5cGUqIHJlbmRlcmVyKTogbV9yZW5kZXJlcihyZW5kZXJlcikgeyB9CisKICAgICB2aXJ0dWFs
IExheW91dFJlY3QgY29tcHV0ZWRTaGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpIGNvbnN0ID0gMDsK
ICAgICB2aXJ0dWFsIFNoYXBlVmFsdWUqIHNoYXBlVmFsdWUoKSBjb25zdCA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGdldEludGVydmFscyhMYXlvdXRVbml0LCBMYXlvdXRVbml0LCBTZWdtZW50TGlz
dCYpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2ODE2ZTY2MjNkMDgxMWE4ODJiOTQ0YjdhODc1OThlNzg2
NGM3MmZmLi5mNzIyNTJiNjRlMjk2ODFhYWYzNWU3OGMzMGI0YTU1M2RmODQ5NjE3IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTMtMTEtMDggIEJlYXIgVHJhdmlzICA8YmV0cmF2aXNAYWRvYmUu
Y29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtDU1MgU2hhcGVzXSBIaWdobGlnaHQgc2hh
cGUtb3V0c2lkZSB3aGVuIGl0cyBlbGVtZW50IGlzIHNlbGVjdGVkIGluIHRoZSBXZWIgSW5zcGVj
dG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQw
NzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
IHRoYXQgdGhlIGluZm9ybWF0aW9uIHBhc3NlZCB0byB0aGUgSW5zcGVjdG9yIG92ZXJsYXkgcHJv
cGVybHkgY29ycmVzcG9uZHMgdG8gdGhlCisgICAgICAgIHVuZGVybHlpbmcgc2hhcGUuIFJldHJp
ZXZpbmcgdGhlIHNoYXBlIGhpZ2hsaWdodCBpbmZvcm1hdGlvbiBpbnZvbHZlcyBhIHNlcmllcyBv
ZgorICAgICAgICBzdGVwcyBhbmQgaGFzIGJlZW4gYWJzdHJhY3RlZCBpbnRvIHNoYXBlLWluZm8t
aGVscGVyLmpzLCB3aGljaCBzdXBwbGllcworICAgICAgICBJbnNwZWN0b3Iuc2hhcGVPdXRzaWRl
SW5mbyBpbnNpZGUgYW4gSW5zcGVjdG9yIHRlc3QsIGFuZCB0aGUgU2hhcGVJbmZvSGVscGVyLnJ1
blNoYXBlc1Rlc3QKKyAgICAgICAgbWV0aG9kIHRvIGJlZ2luIGEgdGVzdC4KKworICAgICAgICAq
IGluc3BlY3Rvci1wcm90b2NvbC9tb2RlbC9oaWdobGlnaHQtc2hhcGUtb3V0c2lkZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9tb2RlbC9oaWdobGln
aHQtc2hhcGUtb3V0c2lkZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9j
b2wvcmVzb3VyY2VzL3NoYXBlLWluZm8taGVscGVyLmpzOiBBZGRlZC4KKyAgICAgICAgKHdpbmRv
dy5TaGFwZUluZm9IZWxwZXIpOiBFeHBvc2VzIFNoYXBlSW5mb0hlbHBlci5ydW5TaGFwZXNUZXN0
LgorCiAyMDEzLTExLTA4ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAg
ICAgICAgIEltcGxlbWVudCBKV0sga2V5IGltcG9ydCBmb3IgSE1BQyBhbmQgQUVTLUNCQwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL21vZGVsL2hpZ2hsaWdodC1z
aGFwZS1vdXRzaWRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9tb2RlbC9oaWdobGlnaHQtc2hhcGUtb3V0c2lkZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OGE4MWQ4OTgxNWQwYTRmODhjOTc1YmYzMmEzNmQ1MDRhMjk1MjJlMwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9tb2RlbC9oaWdobGlnaHQtc2hhcGUt
b3V0c2lkZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitQQVNTOiBBY3R1YWwgW00gNTAg
NTAgTCAxNTAgNTAgTCAxNTAgMTAwIEwgNTAgMTAwIEwgNTAgNTAgWl0gRXhwZWN0ZWQgW00gNTAg
NTAgTCAxNTAgNTAgTCAxNTAgMTAwIEwgNTAgMTAwIEwgNTAgNTAgWl0KK1BBU1M6IEFjdHVhbCBb
TSA1MCA1MCBMIDEwMCA1MCBMIDEwMCAxMDAgTCA1MCAxMDAgWl0gRXhwZWN0ZWQgW00gNTAgNTAg
TCAxMDAgNTAgTCAxMDAgMTAwIEwgNTAgMTAwIFpdCitQQVNTOiBBY3R1YWwgW00gNzUgNzUgTCAx
NzUgNzUgTCAxNzUgMTI1IEwgNzUgMTI1IEwgNzUgNzUgWl0gRXhwZWN0ZWQgW00gNzUgNzUgTCAx
NzUgNzUgTCAxNzUgMTI1IEwgNzUgMTI1IEwgNzUgNzUgWl0KK1BBU1M6IEFjdHVhbCBbTSA1MCA1
MCBMIDE1MCA1MCBMIDE1MCAxMDAgTCA1MCAxMDAgTCA1MCA1MCBaXSBFeHBlY3RlZCBbTSA1MCA1
MCBMIDE1MCA1MCBMIDE1MCAxMDAgTCA1MCAxMDAgTCA1MCA1MCBaXQorUEFTUzogQWN0dWFsIFtN
IDUwIDUwIEwgMTUwIDUwIEwgMTUwIDEwMCBMIDUwIDEwMCBMIDUwIDUwIFpdIEV4cGVjdGVkIFtN
IDUwIDUwIEwgMTUwIDUwIEwgMTUwIDEwMCBMIDUwIDEwMCBMIDUwIDUwIFpdCitQQVNTOiBBY3R1
YWwgW00gNTAgNTAgTCAxNTAgNTAgTCAxNTAgMTAwIEwgNTAgMTAwIEwgNTAgNTAgWl0gRXhwZWN0
ZWQgW00gNTAgNTAgTCAxNTAgNTAgTCAxNTAgMTAwIEwgNTAgMTAwIEwgNTAgNTAgWl0KK1BBU1M6
IEFjdHVhbCBbTSA3NSA3NSBMIDE3NSA3NSBMIDE3NSAxMjUgTCA3NSAxMjUgTCA3NSA3NSBaXSBF
eHBlY3RlZCBbTSA3NSA3NSBMIDE3NSA3NSBMIDE3NSAxMjUgTCA3NSAxMjUgTCA3NSA3NSBaXQor
UEFTUzogQWN0dWFsIFtNIDUwIDUwIEwgMTUwIDUwIEwgMTUwIDEwMCBMIDUwIDEwMCBMIDUwIDUw
IFpdIEV4cGVjdGVkIFtNIDUwIDUwIEwgMTUwIDUwIEwgMTUwIDEwMCBMIDUwIDEwMCBMIDUwIDUw
IFpdCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9tb2RlbC9o
aWdobGlnaHQtc2hhcGUtb3V0c2lkZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3Rv
Y29sL21vZGVsL2hpZ2hsaWdodC1zaGFwZS1vdXRzaWRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTE1MzU2
MmMyMDdkN2UxMzQ4NTg4MmM5NmMzZjU4YmYzNGYyYTNiYQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9tb2RlbC9oaWdobGlnaHQtc2hhcGUtb3V0c2lk
ZS5odG1sCkBAIC0wLDAgKzEsMTAzIEBACis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorYm9keSB7
CisgICAgbWFyZ2luOiAwOworfQorLnNoYXBlIHsKKyAgICBmbG9hdDogbGVmdDsKKyAgICB3aWR0
aDogMjAwcHg7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgICBtYXJnaW4tcmlnaHQ6IC0yMDBweDsK
K30KKy5wYWRkZWQgeworICAgIHdpZHRoOiAxMDBweDsKKyAgICBoZWlnaHQ6IDEwMHB4OworICAg
IHBhZGRpbmc6IDI1cHggNzVweCA3NXB4IDI1cHg7Cit9CisuYm9yZGVyLWJveCB7CisgICAgYm94
LXNpemluZzogYm9yZGVyLWJveDsKK30KKy52ZXJ0aWNhbC1sciB7CisgICAgLXdlYmtpdC13cml0
aW5nLW1vZGU6IHZlcnRpY2FsLWxyOworfQorLnZlcnRpY2FsLXJsIHsKKyAgICAtd2Via2l0LXdy
aXRpbmctbW9kZTogdmVydGljYWwtcmw7Cit9CisucmVjdGFuZ2xlIHsKKyAgICAtd2Via2l0LXNo
YXBlLW91dHNpZGU6IHJlY3RhbmdsZSg1MHB4LCA1MHB4LCAxMDBweCwgNTBweCk7Cit9CisucG9s
eWdvbiB7CisgICAgLXdlYmtpdC1zaGFwZS1vdXRzaWRlOiBwb2x5Z29uKDUwcHggNTBweCwgMTAw
cHggNTBweCwgMTAwcHggMTAwcHgsIDUwcHggMTAwcHgpOworfQorPC9zdHlsZT4KKzxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yLXBy
b3RvY29sL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL3Jlc291cmNlcy9zaGFwZS1pbmZvLWhlbHBlci5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gc2hhcGVUZXN0cygpIHsKKyAgICB2YXIg
dGVzdHMgPSBbCisgICAgeworICAgICAgICAnc2VsZWN0b3InIDogJy5yZWN0YW5nbGUnLAorICAg
ICAgICAncGF0aCcgOiBbJ00nLCA1MCwgNTAsICdMJywgMTUwLCA1MCwgJ0wnLCAxNTAsIDEwMCwg
J0wnLCA1MCwgMTAwLCAnTCcsIDUwLCA1MCwgJ1onXQorICAgIH0sCisgICAgeworICAgICAgICAn
c2VsZWN0b3InIDogJy5wb2x5Z29uJywKKyAgICAgICAgJ3BhdGgnIDogWydNJywgNTAsIDUwLCAn
TCcsIDEwMCwgNTAsICdMJywgMTAwLCAxMDAsICdMJywgNTAsIDEwMCwgJ1onXQorICAgIH0sCisg
ICAgeworICAgICAgICAnc2VsZWN0b3InIDogJy5yZWN0YW5nbGUucGFkZGVkJywKKyAgICAgICAg
J3BhdGgnIDogWydNJywgNzUsIDc1LCAnTCcsIDE3NSwgNzUsICdMJywgMTc1LCAxMjUsICdMJywg
NzUsIDEyNSwgJ0wnLCA3NSwgNzUsICdaJ10KKyAgICB9LAorICAgIHsKKyAgICAgICAgJ3NlbGVj
dG9yJyA6ICcucmVjdGFuZ2xlLnBhZGRlZC5ib3JkZXItYm94JywKKyAgICAgICAgJ3BhdGgnIDog
WydNJywgNTAsIDUwLCAnTCcsIDE1MCwgNTAsICdMJywgMTUwLCAxMDAsICdMJywgNTAsIDEwMCwg
J0wnLCA1MCwgNTAsICdaJ10KKyAgICB9LAorICAgIHsKKyAgICAgICAgJ3NlbGVjdG9yJyA6ICcu
cmVjdGFuZ2xlLnZlcnRpY2FsLWxyJywKKyAgICAgICAgJ3BhdGgnIDogWydNJywgNTAsIDUwLCAn
TCcsIDE1MCwgNTAsICdMJywgMTUwLCAxMDAsICdMJywgNTAsIDEwMCwgJ0wnLCA1MCwgNTAsICda
J10KKyAgICB9LAorICAgIHsKKyAgICAgICAgJ3NlbGVjdG9yJyA6ICcucmVjdGFuZ2xlLnZlcnRp
Y2FsLXJsJywKKyAgICAgICAgJ3BhdGgnIDogWydNJywgNTAsIDUwLCAnTCcsIDE1MCwgNTAsICdM
JywgMTUwLCAxMDAsICdMJywgNTAsIDEwMCwgJ0wnLCA1MCwgNTAsICdaJ10KKyAgICB9LAorICAg
IHsKKyAgICAgICAgJ3NlbGVjdG9yJyA6ICcucmVjdGFuZ2xlLnBhZGRlZC52ZXJ0aWNhbC1ybCcs
CisgICAgICAgICdwYXRoJyA6IFsnTScsIDc1LCA3NSwgJ0wnLCAxNzUsIDc1LCAnTCcsIDE3NSwg
MTI1LCAnTCcsIDc1LCAxMjUsICdMJywgNzUsIDc1LCAnWiddCisgICAgfSwKKyAgICB7CisgICAg
ICAgICdzZWxlY3RvcicgOiAnLnJlY3RhbmdsZS5wYWRkZWQudmVydGljYWwtcmwuYm9yZGVyLWJv
eCcsCisgICAgICAgICdwYXRoJyA6IFsnTScsIDUwLCA1MCwgJ0wnLCAxNTAsIDUwLCAnTCcsIDE1
MCwgMTAwLCAnTCcsIDUwLCAxMDAsICdMJywgNTAsIDUwLCAnWiddCisgICAgfQorICAgIF07CisK
KyAgICBmdW5jdGlvbiBkb1Rlc3RzKHRlc3RzKSB7CisgICAgICAgIGlmICghdGVzdHMubGVuZ3Ro
KSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHZhciB0ZXN0ID0gdGVzdHNbMF07CisgICAg
ICAgIHRlc3RzID0gdGVzdHMuc3BsaWNlKDEpOworICAgICAgICBJbnNwZWN0b3JUZXN0LnNoYXBl
T3V0c2lkZUluZm8odGVzdC5zZWxlY3RvciwgZnVuY3Rpb24oc2hhcGVPdXRzaWRlKSB7CisgICAg
ICAgICAgICB2YXIgYWN0dWFsID0gc2hhcGVPdXRzaWRlLnBhdGguam9pbignICcpOworICAgICAg
ICAgICAgdmFyIGV4cGVjdGVkID0gdGVzdC5wYXRoLmpvaW4oJyAnKTsKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0KGFjdHVhbCA9PT0gZXhwZWN0ZWQsICJBY3R1YWwgWyIgKyBhY3R1
YWwgKyAiXSBFeHBlY3RlZCBbIiArIGV4cGVjdGVkICsgIl0iKTsKKyAgICAgICAgICAgIGRvVGVz
dHModGVzdHMpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBkb1Rlc3RzKHRlc3RzKTsKK30K
K3dpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsgU2hhcGVJbmZvSGVscGVyLnJ1blNoYXBlVGVz
dChzaGFwZVRlc3RzKTsgfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGNs
YXNzPSdzaGFwZSByZWN0YW5nbGUnPjwvZGl2PgorICAgIDxkaXYgY2xhc3M9J3NoYXBlIHBvbHln
b24nPjwvZGl2PgorICAgIDxkaXYgY2xhc3M9J3NoYXBlIHBhZGRlZCByZWN0YW5nbGUnPjwvZGl2
PgorICAgIDxkaXYgY2xhc3M9J3NoYXBlIHBhZGRlZCByZWN0YW5nbGUgYm9yZGVyLWJveCc+PC9k
aXY+CisgICAgPGRpdiBjbGFzcz0nc2hhcGUgcmVjdGFuZ2xlIHZlcnRpY2FsLWxyJz48L2Rpdj4K
KyAgICA8ZGl2IGNsYXNzPSdzaGFwZSByZWN0YW5nbGUgdmVydGljYWwtcmwnPjwvZGl2PgorICAg
IDxkaXYgY2xhc3M9J3NoYXBlIHBhZGRlZCByZWN0YW5nbGUgdmVydGljYWwtcmwnPjwvZGl2Pgor
ICAgIDxkaXYgY2xhc3M9J3NoYXBlIHBhZGRlZCByZWN0YW5nbGUgdmVydGljYWwtcmwgYm9yZGVy
LWJveCc+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3ItcHJvdG9jb2wvcmVzb3VyY2VzL3NoYXBlLWluZm8taGVscGVyLmpzIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3Jlc291cmNlcy9zaGFwZS1pbmZvLWhlbHBlci5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kYmUxZDQ4NjM3Mzg5NWExYmI5ZDNjYmRjNThiMDRhOGJmMzBiYzg4Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3Jlc291cmNlcy9z
aGFwZS1pbmZvLWhlbHBlci5qcwpAQCAtMCwwICsxLDY0IEBACit3aW5kb3cuU2hhcGVJbmZvSGVs
cGVyID0gKGZ1bmN0aW9uKCkgeworICAgIGZ1bmN0aW9uIHNoYXBlT3V0c2lkZUluZm8oc2VsZWN0
b3IsIGNhbGxiYWNrKSB7CisgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRPTS5n
ZXREb2N1bWVudCIsIHt9LCBvbkdvdERvY3VtZW50KTsKKworICAgICAgICBmdW5jdGlvbiBvbkdv
dERvY3VtZW50KG1zZykgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9y
KG1zZyk7CisgICAgICAgICAgICB2YXIgbm9kZSA9IG1zZy5yZXN1bHQucm9vdDsKKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRPTS5xdWVyeVNlbGVjdG9yIiwKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICAibm9kZUlkIjogbm9kZS5ub2RlSWQsCisgICAgICAg
ICAgICAgICAgInNlbGVjdG9yIjogc2VsZWN0b3IKKyAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICBvblF1ZXJ5U2VsZWN0b3IpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gb25RdWVy
eVNlbGVjdG9yKG1zZykgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9y
KG1zZyk7CisgICAgICAgICAgICB2YXIgbm9kZSA9IG1zZy5yZXN1bHQ7CisgICAgICAgICAgICB2
YXIgaGlnaGxpZ2h0Q29uZmlnID0geworICAgICAgICAgICAgICAgIHNob3dJbmZvOiB0cnVlLAor
ICAgICAgICAgICAgICAgIGNvbnRlbnRDb2xvcjoge3I6IDI1NSwgZzogMjU1LCBiOiAyNTV9LAor
ICAgICAgICAgICAgICAgIHBhZGRpbmdDb2xvcjoge3I6IDI1NSwgZzogMjU1LCBiOiAyNTV9LAor
ICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yOiB7cjogMjU1LCBnOiAyNTUsIGI6IDI1NX0sCisg
ICAgICAgICAgICAgICAgbWFyZ2luQ29sb3I6IHtyOiAyNTUsIGc6IDI1NSwgYjogMjU1fSwKKyAg
ICAgICAgICAgIH07CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJET00u
aGlnaGxpZ2h0Tm9kZSIsCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5vZGVJZCI6
IG5vZGUubm9kZUlkLAorICAgICAgICAgICAgICAgICJoaWdobGlnaHRDb25maWciOiBoaWdobGln
aHRDb25maWcKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBvbkhpZ2hsaWdodE5vZGUpOwor
ICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gb25IaWdobGlnaHROb2RlKG1zZykgeworICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKG1zZyk7CisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAiZXhwcmVzc2lvbiI6ICJ3aW5kb3cuaW50ZXJuYWxzLmluc3Bl
Y3RvckhpZ2hsaWdodE9iamVjdCgpIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIG9uUnVu
dGltZUV2YWx1YXRlKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIG9uUnVudGltZUV2
YWx1YXRlKG1zZykgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKG1z
Zyk7CisgICAgICAgICAgICB2YXIgdmFsdWUgPSBKU09OLnBhcnNlKG1zZy5yZXN1bHQucmVzdWx0
LnZhbHVlKTsKKyAgICAgICAgICAgIGNhbGxiYWNrKHZhbHVlLmVsZW1lbnRJbmZvLnNoYXBlT3V0
c2lkZUluZm8pOworICAgICAgICB9CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuU2hhcGVUZXN0
KHRlc3RmbikgeworICAgICAgICB2YXIgYm9keSA9IFsKKyAgICAgICAgICAgICJJbnNwZWN0b3JU
ZXN0LnNoYXBlT3V0c2lkZUluZm8gPSAiICsgc2hhcGVPdXRzaWRlSW5mby50b1N0cmluZygpLAor
ICAgICAgICAgICAgIigiICsgdGVzdGZuLnRvU3RyaW5nKCkgKyAiKSgpIgorICAgICAgICBdOwor
ICAgICAgICB3aW5kb3cudGVzdCA9IG5ldyBGdW5jdGlvbigKKyAgICAgICAgICAgIGJvZHkuam9p
bignO1xuJykKKyAgICAgICAgKTsKKyAgICAgICAgcnVuVGVzdCgpOworICAgIH0KKworICAgIHJl
dHVybiB7CisgICAgICAgICdydW5TaGFwZVRlc3QnIDogcnVuU2hhcGVUZXN0CisgICAgfQorfSko
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216470</attachid>
            <date>2013-11-08 17:50:54 -0800</date>
            <delta_ts>2013-11-09 01:16:10 -0800</delta_ts>
            <desc>Updating patch</desc>
            <filename>bug-124071-20131108175054.patch</filename>
            <type>text/plain</type>
            <size>26179</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU4OTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2ZmYjE2YTcwNzMxMDY3
ZGI1ZDI3ZGU1YzBlZDc1YTM2NmJjN2ExMC4uOTc5NDIzMGI1NDgxOWQ5ZTJhY2QyNDc4NTBmOWY1
OTU5NmZjMDM1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEzLTExLTA4ICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBb
Q1NTIFNoYXBlc10gSGlnaGxpZ2h0IHNoYXBlLW91dHNpZGUgd2hlbiBpdHMgZWxlbWVudCBpcyBz
ZWxlY3RlZCBpbiB0aGUgV2ViIEluc3BlY3RvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0MDcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltb3Ro
eSBIYXRjaGVyLgorCisgICAgICAgIEFkZGluZyBjb2RlIHRvIHBhc3MgY29tcHV0ZWQgc2hhcGUg
aW5mb3JtYXRpb24gKHBhdGggYW5kIGJvdW5kcykgdG8gdGhlIEluc3BlY3RvciBvdmVybGF5Cisg
ICAgICAgIGNhbnZhcywgYW5kIHRoZSBjb2RlIHRvIGRpc3BsYXkgaXQuIFRoZSBjb2RlIGNyZWF0
ZXMgYSBwYXRoIGJhc2VkIG9uIFNoYXBlSW5mbydzIGNvbXB1dGVkCisgICAgICAgIHNoYXBlLiBU
aGUgc2hhcGUgaGlnaGxpZ2h0IGRyYXdzIHdoZW5ldmVyIGFuIGVsZW1lbnQgaXMgaGlnaGxpZ2h0
ZWQsIHZpYSBzZWxlY3Rpb24gaW4KKyAgICAgICAgdGhlIEluc3BlY3RvciBlbGVtZW50cyB2aWV3
LgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci1wcm90b2NvbC9tb2RlbC9oaWdobGlnaHQtc2hh
cGUtb3V0c2lkZS5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpsb2NhbFBvaW50VG9Sb290KTogQ29udmVydCBhIGxvY2Fs
IHBvaW50IHRvIGJlIHJlbGF0aXZlIHRvIHRoZSByb290IHZpZXcuCisgICAgICAgIChXZWJDb3Jl
OjphcHBlbmRQYXRoQ29tbWFuZEFuZFBvaW50cyk6IEhlbHBlciBmb3IgYnVpbGRpbmcgYSBzaW5n
bGUgc2VnbWVudCdzIHdvcnRoCisgICAgICAgIG9mIHRoZSBvdmVyYWxsIHBhdGguCisgICAgICAg
IChXZWJDb3JlOjphcHBlbmRQYXRoU2VnbWVudCk6IEJ1aWxkIGEgc2luZ2xlIHNlZ21lbnQncyB3
b3J0aCBvZiB0aGUgb3ZlcmFsbCBwYXRoLgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRPYmplY3RG
b3JTaGFwZU91dHNpZGUpOiBCdWlsZCBhbiBvYmplY3QgdG8gcGFzcyB0byB0aGUgSW5zcGVjdG9y
IG92ZXJsYXkKKyAgICAgICAgdGhhdCByZXByZXNlbnRzIHRoZSBzaGFwZS4KKyAgICAgICAgKFdl
YkNvcmU6OmJ1aWxkT2JqZWN0Rm9yRWxlbWVudEluZm8pOiBDYWxsIGJ1aWxkT2JqZWN0Rm9yU2hh
cGVPdXRzaWRlIGFuZCBwYXNzIHRoZQorICAgICAgICByZXN1bHRpbmcgb2JqZWN0IGFsb25nLgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5UGFnZS5qczoKKyAgICAgICAgKHBh
dGhDb21tYW5kKTogRHJhdyBhIHNpbmdsZSBwYXRoIGNvbW1hbmQuCisgICAgICAgIChkcmF3UGF0
aCk6IERyYXcgdGhlIG92ZXJhbGwgcGF0aC4KKyAgICAgICAgKF9kcmF3U2hhcGVIaWdobGlnaHQp
OiBEcmF3IHRoZSBoaWdobGlnaHQgZm9yIHRoZSBnaXZlbiBzaGFwZUluZm8uCisgICAgICAgIChk
cmF3Tm9kZUhpZ2hsaWdodCk6IENhbGwgX2RyYXdTaGFwZUhpZ2hsaWdodC4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvc2hhcGVzL1BvbHlnb25TaGFwZS5oOgorICAgICAgICAoV2ViQ29yZTo6UG9seWdv
blNoYXBlOjpwb2x5Z29uKTogRXhwb3NlIHRoZSB1bmRlcmx5aW5nIHZlcnRleCBpbmZvcm1hdGlv
biBmb3IgYQorICAgICAgICBQb2x5Z29uU2hhcGUuCisgICAgICAgICogcmVuZGVyaW5nL3NoYXBl
cy9SYXN0ZXJTaGFwZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvUmVjdGFuZ2xlU2hh
cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlY3RhbmdsZVNoYXBlOjpsb2dpY2FsUngpOiBFeHBv
c2UgdGhlIGxvZ2ljYWwgcmFkaWkgZm9yIGEgc2hhcGUuCisgICAgICAgIChXZWJDb3JlOjpSZWN0
YW5nbGVTaGFwZTo6bG9naWNhbFJ5KTogRGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL3NoYXBl
cy9TaGFwZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTaGFwZUluZm86OmNvbXB1dGVkU2hhcGVQaHlzaWNhbEJvdW5kaW5nQm94
KTogVGhlIHBoeXNpY2FsIGJvdW5kcyBvZiBhCisgICAgICAgIHNoYXBlIGluIHJlbmRlcmVyIGNv
b3JkaW5hdGVzLgorICAgICAgICAoV2ViQ29yZTo6U2hhcGVJbmZvOjpzaGFwZVRvUmVuZGVyZXJQ
b2ludCk6IENvbnZlcnQgc2hhcGUgY29vcmRpbmF0ZXMgdG8gcmVuZGVyZXIKKyAgICAgICAgY29v
cmRpbmF0ZXMuCisgICAgICAgIChXZWJDb3JlOjpTaGFwZUluZm86OnNoYXBlVG9SZW5kZXJlclNp
emUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNoYXBlSW5mbzo6U2hhcGVJbmZvKToKKwog
MjAxMy0xMS0wOCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdGUgTGF5ZXIgVHJlZTogUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUgcGFydGlhbCBy
ZXBhaW50IGlzIGJyb2tlbiBmb3IgdGhlIHRpbGUgY2FjaGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAppbmRleCBhZjNmMjZlMzZmMTRmY2UwYTY1NWE2
ZjBmMDY0ZWVhZjQ0ZWNlMTFmLi44NjQ4OTFkNzEyNGU1YTNkMDRhNzcxZTk3NTBkODdmOTk3NDE2
NTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3Zlcmxh
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3Bw
CkBAIC00Myw2ICs0Myw4IEBACiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCiAjaW5jbHVkZSAiTm9k
ZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQb2x5Z29uU2hhcGUuaCIKKyNpbmNs
dWRlICJSZWN0YW5nbGVTaGFwZS5oIgogI2luY2x1ZGUgIlJlbmRlckJveE1vZGVsT2JqZWN0Lmgi
CiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRlckZsb3dUaHJlYWQu
aCIKQEAgLTUzMiw2ICs1MzQsMTI3IEBAIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3RvckFycmF5
PiBidWlsZE9iamVjdEZvclJlbmRlcmVyRnJhZ21lbnRzKFJlbmRlck9iamVjdCoKICAgICByZXR1
cm4gZnJhZ21lbnRzQXJyYXkucmVsZWFzZSgpOwogfQogCisjaWYgRU5BQkxFKENTU19TSEFQRVMp
CitzdGF0aWMgRmxvYXRQb2ludCBsb2NhbFBvaW50VG9Sb290KFJlbmRlck9iamVjdCogcmVuZGVy
ZXIsIGNvbnN0IEZyYW1lVmlldyogbWFpblZpZXcsIGNvbnN0IEZyYW1lVmlldyogdmlldywgY29u
c3QgRmxvYXRQb2ludCYgcG9pbnQpCit7CisgICAgRmxvYXRQb2ludCByZXN1bHQgPSByZW5kZXJl
ci0+bG9jYWxUb0Fic29sdXRlKHBvaW50KTsKKyAgICByZXN1bHQgPSB2aWV3LT5jb250ZW50c1Rv
Um9vdFZpZXcocm91bmRlZEludFBvaW50KHJlc3VsdCkpOworICAgIHJlc3VsdCArPSBtYWluVmll
dy0+c2Nyb2xsT2Zmc2V0KCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RydWN0IFBhdGhB
cHBseUluZm8geworICAgIEZyYW1lVmlldyogcm9vdFZpZXc7CisgICAgRnJhbWVWaWV3KiB2aWV3
OworICAgIEluc3BlY3RvckFycmF5KiBhcnJheTsKKyAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVy
OworfTsKKworc3RhdGljIHZvaWQgYXBwZW5kUGF0aENvbW1hbmRBbmRQb2ludHMoUGF0aEFwcGx5
SW5mbyogaW5mbywgY29uc3QgU3RyaW5nJiBjb21tYW5kLCBjb25zdCBGbG9hdFBvaW50IHBvaW50
c1tdLCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgRmxvYXRQb2ludCBwb2ludDsKKyAgICBpbmZv
LT5hcnJheS0+cHVzaFN0cmluZyhjb21tYW5kKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgbGVuZ3RoOyBpKyspIHsKKyAgICAgICAgcG9pbnQgPSBsb2NhbFBvaW50VG9Sb290KGluZm8t
PnJlbmRlcmVyLCBpbmZvLT5yb290VmlldywgaW5mby0+dmlldywgcG9pbnRzW2ldKTsKKyAgICAg
ICAgaW5mby0+YXJyYXktPnB1c2hOdW1iZXIocG9pbnQueCgpKTsKKyAgICAgICAgaW5mby0+YXJy
YXktPnB1c2hOdW1iZXIocG9pbnQueSgpKTsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkIGFwcGVu
ZFBhdGhTZWdtZW50KHZvaWQqIGluZm8sIGNvbnN0IFBhdGhFbGVtZW50KiBwYXRoRWxlbWVudCkK
K3sKKyAgICBQYXRoQXBwbHlJbmZvKiBwYXRoQXBwbHlJbmZvID0gc3RhdGljX2Nhc3Q8UGF0aEFw
cGx5SW5mbyo+KGluZm8pOworICAgIEZsb2F0UG9pbnQgcG9pbnQ7CisgICAgc3dpdGNoIChwYXRo
RWxlbWVudC0+dHlwZSkgeworICAgIC8vIFRoZSBwb2ludHMgbWVtYmVyIHdpbGwgY29udGFpbiAx
IHZhbHVlLgorICAgIGNhc2UgUGF0aEVsZW1lbnRNb3ZlVG9Qb2ludDoKKyAgICAgICAgYXBwZW5k
UGF0aENvbW1hbmRBbmRQb2ludHMocGF0aEFwcGx5SW5mbywgIk0iLCBwYXRoRWxlbWVudC0+cG9p
bnRzLCAxKTsKKyAgICAgICAgYnJlYWs7CisgICAgLy8gVGhlIHBvaW50cyBtZW1iZXIgd2lsbCBj
b250YWluIDEgdmFsdWUuCisgICAgY2FzZSBQYXRoRWxlbWVudEFkZExpbmVUb1BvaW50OgorICAg
ICAgICBhcHBlbmRQYXRoQ29tbWFuZEFuZFBvaW50cyhwYXRoQXBwbHlJbmZvLCAiTCIsIHBhdGhF
bGVtZW50LT5wb2ludHMsIDEpOworICAgICAgICBicmVhazsKKyAgICAvLyBUaGUgcG9pbnRzIG1l
bWJlciB3aWxsIGNvbnRhaW4gMyB2YWx1ZXMuCisgICAgY2FzZSBQYXRoRWxlbWVudEFkZEN1cnZl
VG9Qb2ludDoKKyAgICAgICAgYXBwZW5kUGF0aENvbW1hbmRBbmRQb2ludHMocGF0aEFwcGx5SW5m
bywgIkMiLCBwYXRoRWxlbWVudC0+cG9pbnRzLCAzKTsKKyAgICAgICAgYnJlYWs7CisgICAgLy8g
VGhlIHBvaW50cyBtZW1iZXIgd2lsbCBjb250YWluIDIgdmFsdWVzLgorICAgIGNhc2UgUGF0aEVs
ZW1lbnRBZGRRdWFkQ3VydmVUb1BvaW50OgorICAgICAgICBhcHBlbmRQYXRoQ29tbWFuZEFuZFBv
aW50cyhwYXRoQXBwbHlJbmZvLCAiUSIsIHBhdGhFbGVtZW50LT5wb2ludHMsIDIpOworICAgICAg
ICBicmVhazsKKyAgICAvLyBUaGUgcG9pbnRzIG1lbWJlciB3aWxsIGNvbnRhaW4gbm8gdmFsdWVz
LgorICAgIGNhc2UgUGF0aEVsZW1lbnRDbG9zZVN1YnBhdGg6CisgICAgICAgIGFwcGVuZFBhdGhD
b21tYW5kQW5kUG9pbnRzKHBhdGhBcHBseUluZm8sICJaIiwgbnVsbHB0ciwgMCk7CisgICAgICAg
IGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICBicmVhazsKKyAgICB9Cit9CisKK3N0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4gYnVpbGRPYmplY3RGb3JTaGFwZU91dHNpZGUoRnJhbWUqIGNvbnRhaW5pbmdGcmFtZSwgUmVu
ZGVyQm94KiByZW5kZXJlcikKK3sKKyAgICBjb25zdCBTaGFwZU91dHNpZGVJbmZvKiBzaGFwZU91
dHNpZGVJbmZvID0gcmVuZGVyZXItPnNoYXBlT3V0c2lkZUluZm8oKTsKKyAgICBpZiAoIXNoYXBl
T3V0c2lkZUluZm8pCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdD4gc2hhcGVPYmplY3QgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAg
IExheW91dFJlY3Qgc2hhcGVCb3VuZHMgPSBzaGFwZU91dHNpZGVJbmZvLT5jb21wdXRlZFNoYXBl
UGh5c2ljYWxCb3VuZGluZ0JveCgpOworICAgIEZsb2F0UXVhZCBzaGFwZVF1YWQgPSByZW5kZXJl
ci0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3Qoc2hhcGVCb3VuZHMpKTsKKyAgICBjb250
ZW50c1F1YWRUb1BhZ2UoY29udGFpbmluZ0ZyYW1lLT5wYWdlKCktPm1haW5GcmFtZSgpLnZpZXco
KSwgY29udGFpbmluZ0ZyYW1lLT52aWV3KCksIHNoYXBlUXVhZCk7CisgICAgc2hhcGVPYmplY3Qt
PnNldEFycmF5KCJib3VuZHMiLCBidWlsZEFycmF5Rm9yUXVhZChzaGFwZVF1YWQpKTsKKworICAg
IFBhdGggcGF0aDsKKyAgICBzd2l0Y2ggKHNoYXBlT3V0c2lkZUluZm8tPmNvbXB1dGVkU2hhcGUo
KS0+dHlwZSgpKSB7CisgICAgY2FzZSBTaGFwZTo6Um91bmRlZFJlY3RhbmdsZVR5cGU6IHsKKyAg
ICAgICAgY29uc3QgUmVjdGFuZ2xlU2hhcGUqIHNoYXBlID0gc3RhdGljX2Nhc3Q8Y29uc3QgUmVj
dGFuZ2xlU2hhcGUqPihzaGFwZU91dHNpZGVJbmZvLT5jb21wdXRlZFNoYXBlKCkpOworICAgICAg
ICBGbG9hdFNpemUgcmFkaWkoc2hhcGUtPmxvZ2ljYWxSeCgpLCBzaGFwZS0+bG9naWNhbFJ5KCkp
OworICAgICAgICByYWRpaSA9IHNoYXBlT3V0c2lkZUluZm8tPnNoYXBlVG9SZW5kZXJlclNpemUo
cmFkaWkpOworICAgICAgICBwYXRoLmFkZFJvdW5kZWRSZWN0KHNoYXBlQm91bmRzLCByYWRpaSwg
UGF0aDo6UHJlZmVyQmV6aWVyUm91bmRlZFJlY3QpOworICAgICAgICBicmVhazsKKyAgICB9CisK
KyAgICBjYXNlIFNoYXBlOjpQb2x5Z29uVHlwZTogeworICAgICAgICBjb25zdCBQb2x5Z29uU2hh
cGUqIHNoYXBlID0gc3RhdGljX2Nhc3Q8Y29uc3QgUG9seWdvblNoYXBlKj4oc2hhcGVPdXRzaWRl
SW5mby0+Y29tcHV0ZWRTaGFwZSgpKTsKKyAgICAgICAgY29uc3QgRmxvYXRQb2x5Z29uJiBwb2x5
Z29uID0gc2hhcGUtPnBvbHlnb24oKTsKKyAgICAgICAgRmxvYXRQb2ludCB2ZXJ0ZXg7CisKKyAg
ICAgICAgaWYgKHBvbHlnb24ubnVtYmVyT2ZWZXJ0aWNlcygpKSB7CisgICAgICAgICAgICB2ZXJ0
ZXggPSBzaGFwZU91dHNpZGVJbmZvLT5zaGFwZVRvUmVuZGVyZXJQb2ludChwb2x5Z29uLnZlcnRl
eEF0KDApKTsKKyAgICAgICAgICAgIHBhdGgubW92ZVRvKHZlcnRleCk7CisgICAgICAgIH0KKwor
ICAgICAgICBmb3IgKHNpemVfdCBpID0gMTsgaSA8IHBvbHlnb24ubnVtYmVyT2ZWZXJ0aWNlcygp
OyBpKyspIHsKKyAgICAgICAgICAgIEZsb2F0UG9pbnQgdmVydGV4ID0gc2hhcGVPdXRzaWRlSW5m
by0+c2hhcGVUb1JlbmRlcmVyUG9pbnQocG9seWdvbi52ZXJ0ZXhBdChpKSk7CisgICAgICAgICAg
ICBwYXRoLmFkZExpbmVUbyh2ZXJ0ZXgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHBvbHln
b24ubnVtYmVyT2ZWZXJ0aWNlcygpKQorICAgICAgICAgICAgcGF0aC5jbG9zZVN1YnBhdGgoKTsK
KyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgLy8gRklYTUU6IEJ1ZyAxMjQwODAgLSBSYXN0
ZXJTaGFwZXMgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkIGFuZCBvbmx5IGRpc3BsYXkgdGhlaXIgc2hh
cGUgYm91bmRzCisgICAgY2FzZSBTaGFwZTo6UmFzdGVyVHlwZTogYnJlYWs7CisgICAgfQorCisg
ICAgaWYgKHBhdGgubGVuZ3RoKCkpIHsKKyAgICAgICAgUmVmUHRyPEluc3BlY3RvckFycmF5PiBz
aGFwZVBhdGggPSBJbnNwZWN0b3JBcnJheTo6Y3JlYXRlKCk7CisgICAgICAgIFBhdGhBcHBseUlu
Zm8gaW5mbzsKKyAgICAgICAgaW5mby5yb290VmlldyA9IGNvbnRhaW5pbmdGcmFtZS0+cGFnZSgp
LT5tYWluRnJhbWUoKS52aWV3KCk7CisgICAgICAgIGluZm8udmlldyA9IGNvbnRhaW5pbmdGcmFt
ZS0+dmlldygpOworICAgICAgICBpbmZvLmFycmF5ID0gc2hhcGVQYXRoLmdldCgpOworICAgICAg
ICBpbmZvLnJlbmRlcmVyID0gcmVuZGVyZXI7CisKKyAgICAgICAgcGF0aC5hcHBseSgmaW5mbywg
JmFwcGVuZFBhdGhTZWdtZW50KTsKKworICAgICAgICBzaGFwZU9iamVjdC0+c2V0QXJyYXkoInBh
dGgiLCBzaGFwZVBhdGgucmVsZWFzZSgpKTsKKyAgICB9CisKKyAgICByZXR1cm4gc2hhcGVPYmpl
Y3QucmVsZWFzZSgpOworfQorI2VuZGlmCisKIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4gYnVpbGRPYmplY3RGb3JFbGVtZW50SW5mbyhOb2RlKiBub2RlKQogewogICAgIGlmICgh
bm9kZS0+aXNFbGVtZW50Tm9kZSgpIHx8ICFub2RlLT5kb2N1bWVudCgpLmZyYW1lKCkpCkBAIC01
ODUsNiArNzA4LDE0IEBAIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGRP
YmplY3RGb3JFbGVtZW50SW5mbyhOb2RlKiBub2RlKQogICAgICAgICBlbGVtZW50SW5mby0+c2V0
T2JqZWN0KCJjb250ZW50Rmxvd0luZm8iLCBjb250ZW50Rmxvd0luZm8ucmVsZWFzZSgpKTsKICAg
ICB9CiAKKyNpZiBFTkFCTEUoQ1NTX1NIQVBFUykKKyAgICBpZiAocmVuZGVyZXItPmlzQm94KCkp
IHsKKyAgICAgICAgUmVuZGVyQm94KiByZW5kZXJCb3ggPSB0b1JlbmRlckJveChyZW5kZXJlcik7
CisgICAgICAgIGlmIChSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBzaGFwZU9iamVjdCA9IGJ1aWxk
T2JqZWN0Rm9yU2hhcGVPdXRzaWRlKGNvbnRhaW5pbmdGcmFtZSwgcmVuZGVyQm94KSkKKyAgICAg
ICAgICAgIGVsZW1lbnRJbmZvLT5zZXRPYmplY3QoInNoYXBlT3V0c2lkZUluZm8iLCBzaGFwZU9i
amVjdC5yZWxlYXNlKCkpOworICAgIH0KKyNlbmRpZgorCiAgICAgcmV0dXJuIGVsZW1lbnRJbmZv
LnJlbGVhc2UoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvck92ZXJsYXlQYWdlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ck92ZXJsYXlQYWdlLmpzCmluZGV4IDk0ZjI4NjI1ZjJlNjhmYzZiMjljOGU0ZjEwZDFjNmY5NWQx
ZmRlM2YuLjI0ZjZhMDdjODczOWY2ZTViM2RlMzk5M2UyOTdiYjNjZTdhYjc1YmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5UGFnZS5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheVBhZ2UuanMKQEAgLTE4
LDYgKzE4LDkgQEAgY29uc3QgcmVnaW9uTnVtYmVyRm9udCA9ICJib2xkIDQwcHQgc2Fucy1zZXJp
ZiI7CiBjb25zdCByZWdpb25OdW1iZXJGaWxsQ29sb3IgPSAicmdiYSgyNTUsIDI1NSwgMjU1LCAw
LjkpIjsKIGNvbnN0IHJlZ2lvbk51bWJlclN0cm9rZUNvbG9yID0gInJnYig2MSwgMTI3LCAyMDQp
IjsKIAorLy8gQ1NTIFNoYXBlcyBoaWdobGlnaHQgY29sb3JzCitjb25zdCBzaGFwZUhpZ2hsaWdo
dENvbG9yID0gInJnYigyNTUsIDEwNSwgMTgwKSI7CisKIGZ1bmN0aW9uIGRyYXdQYXVzZWRJbkRl
YnVnZ2VyTWVzc2FnZShtZXNzYWdlKQogewogICAgIHZhciBwYXVzZWRJbkRlYnVnZ2VyID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBhdXNlZC1pbi1kZWJ1Z2dlciIpOwpAQCAtMTg0LDYgKzE4
Nyw0OCBAQCBmdW5jdGlvbiBkcmF3T3V0bGluZWRRdWFkKHF1YWQsIGZpbGxDb2xvciwgb3V0bGlu
ZUNvbG9yKQogICAgIGNvbnRleHQucmVzdG9yZSgpOwogfQogCitmdW5jdGlvbiBwYXRoQ29tbWFu
ZChjb250ZXh0LCBjb21tYW5kcywgbmFtZSwgbGVuZ3RoKSB7CisgICAgY29udGV4dFtuYW1lXS5h
cHBseShjb250ZXh0LCBjb21tYW5kcy5zbGljZSgxLCBsZW5ndGggKyAxKSk7CisgICAgcmV0dXJu
IGNvbW1hbmRzLnNsaWNlKGxlbmd0aCArIDEpOworfQorCitmdW5jdGlvbiBkcmF3UGF0aChjb250
ZXh0LCBjb21tYW5kcywgZmlsbENvbG9yLCBvdXRsaW5lQ29sb3IpCit7CisgICAgY29udGV4dC5z
YXZlKCk7CisgICAgY29udGV4dC5iZWdpblBhdGgoKTsKKworICAgIHdoaWxlKGNvbW1hbmRzLmxl
bmd0aCkgeworICAgICAgICBzd2l0Y2goY29tbWFuZHNbMF0pIHsKKyAgICAgICAgLy8gMSBwb2lu
dAorICAgICAgICBjYXNlICdNJzoKKyAgICAgICAgICAgIGNvbW1hbmRzID0gcGF0aENvbW1hbmQo
Y29udGV4dCwgY29tbWFuZHMsICJtb3ZlVG8iLCAyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAvLyAxIHBvaW50CisgICAgICAgIGNhc2UgJ0wnOgorICAgICAgICAgICAgY29tbWFuZHMg
PSBwYXRoQ29tbWFuZChjb250ZXh0LCBjb21tYW5kcywgImxpbmVUbyIsIDIpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIC8vIDMgcG9pbnRzCisgICAgICAgIGNhc2UgJ0MnOgorICAgICAg
ICAgICAgY29tbWFuZHMgPSBwYXRoQ29tbWFuZChjb250ZXh0LCBjb21tYW5kcywgImJlemllckN1
cnZlVG8iLCA2KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgY29tbWFuZHMgPSBjb21tYW5kcy5zbGljZSgxKTsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7CisgICAgY29udGV4dC5maWxsU3R5bGUgPSBmaWxsQ29s
b3I7CisgICAgY29udGV4dC5maWxsKCk7CisKKyAgICBpZiAob3V0bGluZUNvbG9yKSB7CisgICAg
ICAgIGNvbnRleHQubGluZVdpZHRoID0gMjsKKyAgICAgICAgY29udGV4dC5zdHJva2VTdHlsZSA9
IG91bGluZUNvbG9yOworICAgICAgICBjb250ZXh0LnN0cm9rZSgpOworICAgIH0KKworICAgIGNv
bnRleHQucmVzdG9yZSgpOworfQorCiBmdW5jdGlvbiBkcmF3T3V0bGluZWRRdWFkV2l0aENsaXAo
cXVhZCwgY2xpcFF1YWQsIGZpbGxDb2xvcikKIHsKICAgICB2YXIgY2FudmFzID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOwpAQCAtNTA2LDYgKzU1MSwxMyBAQCBmdW5jdGlvbiBf
ZHJhd1JlZ2lvbnNIaWdobGlnaHQocmVnaW9ucykKICAgICB9CiB9CiAKK2Z1bmN0aW9uIF9kcmF3
U2hhcGVIaWdobGlnaHQoc2hhcGVJbmZvKSB7CisgICAgaWYgKHNoYXBlSW5mby5wYXRoKQorICAg
ICAgICBkcmF3UGF0aChjb250ZXh0LCBzaGFwZUluZm8ucGF0aCwgc2hhcGVIaWdobGlnaHRDb2xv
cik7CisgICAgZWxzZQorICAgICAgICBkcmF3T3V0bGluZWRRdWFkKHNoYXBlSW5mby5ib3VuZHMs
IHNoYXBlSGlnaGxpZ2h0Q29sb3IsIHNoYXBlSGlnaGxpZ2h0Q29sb3IpOworfQorCiBmdW5jdGlv
biBfZHJhd0ZyYWdtZW50SGlnaGxpZ2h0KGhpZ2hsaWdodCkKIHsKICAgICBpZiAoIWhpZ2hsaWdo
dC5xdWFkcy5sZW5ndGgpIHsKQEAgLTU4MCw2ICs2MzIsOSBAQCBmdW5jdGlvbiBkcmF3Tm9kZUhp
Z2hsaWdodChoaWdobGlnaHQpCiAgICAgaWYgKGhpZ2hsaWdodC5lbGVtZW50SW5mbyAmJiBoaWdo
bGlnaHQuZWxlbWVudEluZm8ucmVnaW9uRmxvd0luZm8pCiAgICAgICAgIF9kcmF3UmVnaW9uc0hp
Z2hsaWdodChoaWdobGlnaHQuZWxlbWVudEluZm8ucmVnaW9uRmxvd0luZm8ucmVnaW9ucywgaGln
aGxpZ2h0KTsKIAorICAgIGlmIChoaWdobGlnaHQuZWxlbWVudEluZm8gJiYgaGlnaGxpZ2h0LmVs
ZW1lbnRJbmZvLnNoYXBlT3V0c2lkZUluZm8pCisgICAgICAgIF9kcmF3U2hhcGVIaWdobGlnaHQo
aGlnaGxpZ2h0LmVsZW1lbnRJbmZvLnNoYXBlT3V0c2lkZUluZm8pOworCiAgICAgY29udGV4dC5y
ZXN0b3JlKCk7CiAKICAgICB2YXIgZWxlbWVudFRpdGxlQ29udGFpbmVyID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImVsZW1lbnQtdGl0bGUtY29udGFpbmVyIik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1BvbHlnb25TaGFwZS5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3NoYXBlcy9Qb2x5Z29uU2hhcGUuaAppbmRleCAyNjY4MjVjYTczNDgxYjBh
Yjg5YzBhMGQxMTYyZTQ2MTBlZjQwMzU1Li5lMWE2NTc1MDU4ZThlZjA2ZmQzOGFhYjk2OTIzZDA5
YTZjODg5NmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1Bv
bHlnb25TaGFwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUG9seWdv
blNoYXBlLmgKQEAgLTk3LDYgKzk3LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0
SW5jbHVkZWRJbnRlcnZhbHMoTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IGxvZ2lj
YWxIZWlnaHQsIFNlZ21lbnRMaXN0JikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29s
IGZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AoTGF5b3V0VW5pdCBtaW5Mb2dpY2FsSW50
ZXJ2YWxUb3AsIGNvbnN0IExheW91dFNpemUmIG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUsIExheW91
dFVuaXQmKSBjb25zdCBPVkVSUklERTsKIAorICAgIHZpcnR1YWwgU2hhcGVUeXBlIHR5cGUoKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiBTaGFwZTo6UG9seWdvblR5cGU7IH0KKworICAgIGNvbnN0
IEZsb2F0UG9seWdvbiYgcG9seWdvbigpIGNvbnN0IHsgcmV0dXJuIG1fcG9seWdvbjsgfQorCiBw
cml2YXRlOgogICAgIGNvbnN0IEZsb2F0UG9seWdvbiYgc2hhcGVNYXJnaW5Cb3VuZHMoKSBjb25z
dDsKICAgICBjb25zdCBGbG9hdFBvbHlnb24mIHNoYXBlUGFkZGluZ0JvdW5kcygpIGNvbnN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9SYXN0ZXJTaGFwZS5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9SYXN0ZXJTaGFwZS5oCmluZGV4IDVj
MDE5MGQ2OTNmNGViNTJjMTg0YjkxNGRmMmQ0MzM1YmZlNjczNDguLjNjYWYxZWQwMWU0ZGM4MjU4
NTNjOTc1NmZjMjRlYWZlYjI3ODZhZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zaGFwZXMvUmFzdGVyU2hhcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c2hhcGVzL1Jhc3RlclNoYXBlLmgKQEAgLTEwMSw2ICsxMDEsOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGdldEluY2x1ZGVkSW50ZXJ2YWxzKExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5
b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBTZWdtZW50TGlzdCYpIGNvbnN0IE9WRVJSSURFOwogICAg
IHZpcnR1YWwgYm9vbCBmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKExheW91dFVuaXQg
bWluTG9naWNhbEludGVydmFsVG9wLCBjb25zdCBMYXlvdXRTaXplJiBtaW5Mb2dpY2FsSW50ZXJ2
YWxTaXplLCBMYXlvdXRVbml0JikgY29uc3QgT1ZFUlJJREU7CiAKKyAgICB2aXJ0dWFsIFNoYXBl
VHlwZSB0eXBlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gU2hhcGU6OlJhc3RlclR5cGU7IH0K
KwogcHJpdmF0ZToKICAgICBjb25zdCBSYXN0ZXJTaGFwZUludGVydmFscyYgbWFyZ2luSW50ZXJ2
YWxzKCkgY29uc3Q7CiAgICAgY29uc3QgUmFzdGVyU2hhcGVJbnRlcnZhbHMmIHBhZGRpbmdJbnRl
cnZhbHMoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFw
ZXMvUmVjdGFuZ2xlU2hhcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUmVj
dGFuZ2xlU2hhcGUuaAppbmRleCBlOWVjZjA1MDRiYjk5M2M5MTEwMzkwNjM0OTM0NWVlNDI5NDQ2
ZDU5Li4wMDA3OGI4N2ZjYmRmYTNmYTRiNmRlNTgzNTMyNTc3ZWVjYjhjZGJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1JlY3RhbmdsZVNoYXBlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9SZWN0YW5nbGVTaGFwZS5oCkBAIC03NSw2
ICs3NSwxMSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldEluY2x1ZGVkSW50ZXJ2YWxz
KExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBTZWdtZW50
TGlzdCYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBmaXJzdEluY2x1ZGVkSW50
ZXJ2YWxMb2dpY2FsVG9wKExheW91dFVuaXQgbWluTG9naWNhbEludGVydmFsVG9wLCBjb25zdCBM
YXlvdXRTaXplJiBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLCBMYXlvdXRVbml0JikgY29uc3QgT1ZF
UlJJREU7CiAKKyAgICBMYXlvdXRVbml0IGxvZ2ljYWxSeCgpIGNvbnN0IHsgcmV0dXJuIG1fYm91
bmRzLnJ4KCk7IH0KKyAgICBMYXlvdXRVbml0IGxvZ2ljYWxSeSgpIGNvbnN0IHsgcmV0dXJuIG1f
Ym91bmRzLnJ5KCk7IH0KKworICAgIHZpcnR1YWwgU2hhcGVUeXBlIHR5cGUoKSBjb25zdCBPVkVS
UklERSB7IHJldHVybiBTaGFwZTo6Um91bmRlZFJlY3RhbmdsZVR5cGU7IH0KKwogcHJpdmF0ZToK
ICAgICBGbG9hdFJvdW5kZWRSZWN0IHNoYXBlTWFyZ2luQm91bmRzKCkgY29uc3Q7CiAgICAgRmxv
YXRSb3VuZGVkUmVjdCBzaGFwZVBhZGRpbmdCb3VuZHMoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zaGFwZXMvU2hhcGUuaAppbmRleCBmNzc1ZTVlZWY0MzRmYWE3ODMzNzg5YWU4NmUw
OTE3ZGM1Y2JlMDcxLi5iZDJkMjk2ZTQzNTQyM2IyY2Q1OGFjNzIwZDQyMDI4MDI1ODdkNWRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5oCkBAIC02MCw2ICs2MCwxMiBA
QCB0eXBlZGVmIFZlY3RvcjxMaW5lU2VnbWVudD4gU2VnbWVudExpc3Q7CiAKIGNsYXNzIFNoYXBl
IHsKIHB1YmxpYzoKKyAgICBlbnVtIFNoYXBlVHlwZSB7CisgICAgICAgIFJvdW5kZWRSZWN0YW5n
bGVUeXBlLAorICAgICAgICBQb2x5Z29uVHlwZSwKKyAgICAgICAgUmFzdGVyVHlwZQorICAgIH07
CisKICAgICBzdGF0aWMgUGFzc093blB0cjxTaGFwZT4gY3JlYXRlU2hhcGUoY29uc3QgQmFzaWNT
aGFwZSosIGNvbnN0IExheW91dFNpemUmIGxvZ2ljYWxCb3hTaXplLCBXcml0aW5nTW9kZSwgTGVu
Z3RoIG1hcmdpbiwgTGVuZ3RoIHBhZGRpbmcpOwogICAgIHN0YXRpYyBQYXNzT3duUHRyPFNoYXBl
PiBjcmVhdGVTaGFwZShjb25zdCBTdHlsZUltYWdlKiwgZmxvYXQgdGhyZXNob2xkLCBjb25zdCBM
YXlvdXRTaXplJiBsb2dpY2FsQm94U2l6ZSwgV3JpdGluZ01vZGUsIExlbmd0aCBtYXJnaW4sIExl
bmd0aCBwYWRkaW5nKTsKIApAQCAtNzIsNiArNzgsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIGdldEV4Y2x1ZGVkSW50ZXJ2YWxzKExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5p
dCBsb2dpY2FsSGVpZ2h0LCBTZWdtZW50TGlzdCYpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJv
b2wgZmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRvcChMYXlvdXRVbml0IG1pbkxvZ2ljYWxJ
bnRlcnZhbFRvcCwgY29uc3QgTGF5b3V0U2l6ZSYgbWluTG9naWNhbEludGVydmFsU2l6ZSwgTGF5
b3V0VW5pdCYgcmVzdWx0KSBjb25zdCA9IDA7CiAKKyAgICB2aXJ0dWFsIFNoYXBlVHlwZSB0eXBl
KCkgY29uc3QgPSAwOworCiBwcm90ZWN0ZWQ6CiAgICAgZmxvYXQgc2hhcGVNYXJnaW4oKSBjb25z
dCB7IHJldHVybiBtX21hcmdpbjsgfQogICAgIGZsb2F0IHNoYXBlUGFkZGluZygpIGNvbnN0IHsg
cmV0dXJuIG1fcGFkZGluZzsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3NoYXBlcy9TaGFwZUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hh
cGVJbmZvLmgKaW5kZXggOTc5ZGFmNDI5ZmJmYTQyMzgzZDBkYzdlYTlmNDRhZWEzODNiYzEzMS4u
OTI0MDU0ZjUwM2Y2ZjFiYTk0ZWU1ODE2YjA3MzllZWFjMTAwMjViOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluZm8uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5mby5oCkBAIC0xMDUsMTEgKzEwNSw0MCBAQCBw
dWJsaWM6CiAgICAgY29uc3QgUmVuZGVyVHlwZSogb3duZXIoKSBjb25zdCB7IHJldHVybiBtX3Jl
bmRlcmVyOyB9CiAgICAgTGF5b3V0U2l6ZSBzaGFwZVNpemUoKSBjb25zdCB7IHJldHVybiBtX3No
YXBlTG9naWNhbFNpemU7IH0KIAotcHJvdGVjdGVkOgotICAgIFNoYXBlSW5mbyhjb25zdCBSZW5k
ZXJUeXBlKiByZW5kZXJlcik6IG1fcmVuZGVyZXIocmVuZGVyZXIpIHsgfQorICAgIExheW91dFJl
Y3QgY29tcHV0ZWRTaGFwZVBoeXNpY2FsQm91bmRpbmdCb3goKSBjb25zdAorICAgIHsKKyAgICAg
ICAgTGF5b3V0UmVjdCBwaHlzaWNhbEJvdW5kaW5nQm94ID0gY29tcHV0ZWRTaGFwZUxvZ2ljYWxC
b3VuZGluZ0JveCgpOworICAgICAgICBwaHlzaWNhbEJvdW5kaW5nQm94LnNldFgocGh5c2ljYWxC
b3VuZGluZ0JveC54KCkgKyBsb2dpY2FsTGVmdE9mZnNldCgpKTsKKyAgICAgICAgcGh5c2ljYWxC
b3VuZGluZ0JveC5zZXRZKHBoeXNpY2FsQm91bmRpbmdCb3gueSgpICsgbG9naWNhbFRvcE9mZnNl
dCgpKTsKKyAgICAgICAgaWYgKG1fcmVuZGVyZXItPnN0eWxlKCkuaXNGbGlwcGVkQmxvY2tzV3Jp
dGluZ01vZGUoKSkKKyAgICAgICAgICAgIHBoeXNpY2FsQm91bmRpbmdCb3guc2V0WShtX3JlbmRl
cmVyLT5sb2dpY2FsSGVpZ2h0KCkgLSBwaHlzaWNhbEJvdW5kaW5nQm94Lm1heFkoKSk7CisgICAg
ICAgIGlmICghbV9yZW5kZXJlci0+c3R5bGUoKS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQor
ICAgICAgICAgICAgcGh5c2ljYWxCb3VuZGluZ0JveCA9IHBoeXNpY2FsQm91bmRpbmdCb3gudHJh
bnNwb3NlZFJlY3QoKTsKKyAgICAgICAgcmV0dXJuIHBoeXNpY2FsQm91bmRpbmdCb3g7CisgICAg
fQorCisgICAgRmxvYXRQb2ludCBzaGFwZVRvUmVuZGVyZXJQb2ludChGbG9hdFBvaW50IHBvaW50
KSBjb25zdAorICAgIHsKKyAgICAgICAgRmxvYXRQb2ludCByZXN1bHQgPSBGbG9hdFBvaW50KHBv
aW50LngoKSArIGxvZ2ljYWxMZWZ0T2Zmc2V0KCksIHBvaW50LnkoKSArIGxvZ2ljYWxUb3BPZmZz
ZXQoKSk7CisgICAgICAgIGlmIChtX3JlbmRlcmVyLT5zdHlsZSgpLmlzRmxpcHBlZEJsb2Nrc1dy
aXRpbmdNb2RlKCkpCisgICAgICAgICAgICByZXN1bHQuc2V0WShtX3JlbmRlcmVyLT5sb2dpY2Fs
SGVpZ2h0KCkgLSByZXN1bHQueSgpKTsKKyAgICAgICAgaWYgKCFtX3JlbmRlcmVyLT5zdHlsZSgp
LmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCisgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQu
dHJhbnNwb3NlZFBvaW50KCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAg
RmxvYXRTaXplIHNoYXBlVG9SZW5kZXJlclNpemUoRmxvYXRTaXplIHNpemUpIGNvbnN0CisgICAg
eworICAgICAgICBpZiAoIW1fcmVuZGVyZXItPnN0eWxlKCkuaXNIb3Jpem9udGFsV3JpdGluZ01v
ZGUoKSkKKyAgICAgICAgICAgIHJldHVybiBzaXplLnRyYW5zcG9zZWRTaXplKCk7CisgICAgICAg
IHJldHVybiBzaXplOworICAgIH0KIAogICAgIGNvbnN0IFNoYXBlKiBjb21wdXRlZFNoYXBlKCkg
Y29uc3Q7CiAKK3Byb3RlY3RlZDoKKyAgICBTaGFwZUluZm8oY29uc3QgUmVuZGVyVHlwZSogcmVu
ZGVyZXIpOiBtX3JlbmRlcmVyKHJlbmRlcmVyKSB7IH0KKwogICAgIHZpcnR1YWwgTGF5b3V0UmVj
dCBjb21wdXRlZFNoYXBlTG9naWNhbEJvdW5kaW5nQm94KCkgY29uc3QgPSAwOwogICAgIHZpcnR1
YWwgU2hhcGVWYWx1ZSogc2hhcGVWYWx1ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
Z2V0SW50ZXJ2YWxzKExheW91dFVuaXQsIExheW91dFVuaXQsIFNlZ21lbnRMaXN0JikgY29uc3Qg
PSAwOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDMzNjAzMTM2NTY4MTNmMGVjYjY0YmFiYmYwNTc4ZDAwMWQ0YTAyMTcuLjNl
NjZjOWNiMWYyZGQ2YThmZTZiZmIzZGM3NGY0ZWU3OWM5YjZjNjMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MSBAQAorMjAxMy0xMS0wOCAgQmVhciBUcmF2aXMgIDxiZXRyYXZpc0BhZG9iZS5jb20+CisKKyAg
ICAgICAgV2ViIEluc3BlY3RvcjogW0NTUyBTaGFwZXNdIEhpZ2hsaWdodCBzaGFwZS1vdXRzaWRl
IHdoZW4gaXRzIGVsZW1lbnQgaXMgc2VsZWN0ZWQgaW4gdGhlIFdlYiBJbnNwZWN0b3IKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDA3MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IFRpbW90aHkgSGF0Y2hlci4KKworICAgICAgICBUZXN0IHRoYXQgdGhl
IGluZm9ybWF0aW9uIHBhc3NlZCB0byB0aGUgSW5zcGVjdG9yIG92ZXJsYXkgcHJvcGVybHkgY29y
cmVzcG9uZHMgdG8gdGhlCisgICAgICAgIHVuZGVybHlpbmcgc2hhcGUuIFJldHJpZXZpbmcgdGhl
IHNoYXBlIGhpZ2hsaWdodCBpbmZvcm1hdGlvbiBpbnZvbHZlcyBhIHNlcmllcyBvZgorICAgICAg
ICBzdGVwcyBhbmQgaGFzIGJlZW4gYWJzdHJhY3RlZCBpbnRvIHNoYXBlLWluZm8taGVscGVyLmpz
LCB3aGljaCBzdXBwbGllcworICAgICAgICBJbnNwZWN0b3Iuc2hhcGVPdXRzaWRlSW5mbyBpbnNp
ZGUgYW4gSW5zcGVjdG9yIHRlc3QsIGFuZCB0aGUgU2hhcGVJbmZvSGVscGVyLnJ1blNoYXBlc1Rl
c3QKKyAgICAgICAgbWV0aG9kIHRvIGJlZ2luIGEgdGVzdC4KKworICAgICAgICAqIGluc3BlY3Rv
ci1wcm90b2NvbC9tb2RlbC9oaWdobGlnaHQtc2hhcGUtb3V0c2lkZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9tb2RlbC9oaWdobGlnaHQtc2hhcGUt
b3V0c2lkZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvcmVzb3Vy
Y2VzL3NoYXBlLWluZm8taGVscGVyLmpzOiBBZGRlZC4KKyAgICAgICAgKHdpbmRvdy5TaGFwZUlu
Zm9IZWxwZXIpOiBFeHBvc2VzIFNoYXBlSW5mb0hlbHBlci5ydW5TaGFwZXNUZXN0LgorCiAyMDEz
LTExLTA4ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAg
IGdldEN1ZUFzSFRNTCgpIG9uIGFuIGVtcHR5IGN1ZSBzaG91bGQgcmV0dXJuIGEgZG9jdW1lbnQg
ZnJhZ21lbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9tb2Rl
bC9oaWdobGlnaHQtc2hhcGUtb3V0c2lkZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3ItcHJvdG9jb2wvbW9kZWwvaGlnaGxpZ2h0LXNoYXBlLW91dHNpZGUtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjhhODFkODk4MTVkMGE0Zjg4Yzk3NWJmMzJhMzZkNTA0YTI5NTIyZTMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbW9kZWwvaGln
aGxpZ2h0LXNoYXBlLW91dHNpZGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorUEFTUzog
QWN0dWFsIFtNIDUwIDUwIEwgMTUwIDUwIEwgMTUwIDEwMCBMIDUwIDEwMCBMIDUwIDUwIFpdIEV4
cGVjdGVkIFtNIDUwIDUwIEwgMTUwIDUwIEwgMTUwIDEwMCBMIDUwIDEwMCBMIDUwIDUwIFpdCitQ
QVNTOiBBY3R1YWwgW00gNTAgNTAgTCAxMDAgNTAgTCAxMDAgMTAwIEwgNTAgMTAwIFpdIEV4cGVj
dGVkIFtNIDUwIDUwIEwgMTAwIDUwIEwgMTAwIDEwMCBMIDUwIDEwMCBaXQorUEFTUzogQWN0dWFs
IFtNIDc1IDc1IEwgMTc1IDc1IEwgMTc1IDEyNSBMIDc1IDEyNSBMIDc1IDc1IFpdIEV4cGVjdGVk
IFtNIDc1IDc1IEwgMTc1IDc1IEwgMTc1IDEyNSBMIDc1IDEyNSBMIDc1IDc1IFpdCitQQVNTOiBB
Y3R1YWwgW00gNTAgNTAgTCAxNTAgNTAgTCAxNTAgMTAwIEwgNTAgMTAwIEwgNTAgNTAgWl0gRXhw
ZWN0ZWQgW00gNTAgNTAgTCAxNTAgNTAgTCAxNTAgMTAwIEwgNTAgMTAwIEwgNTAgNTAgWl0KK1BB
U1M6IEFjdHVhbCBbTSA1MCA1MCBMIDE1MCA1MCBMIDE1MCAxMDAgTCA1MCAxMDAgTCA1MCA1MCBa
XSBFeHBlY3RlZCBbTSA1MCA1MCBMIDE1MCA1MCBMIDE1MCAxMDAgTCA1MCAxMDAgTCA1MCA1MCBa
XQorUEFTUzogQWN0dWFsIFtNIDUwIDUwIEwgMTUwIDUwIEwgMTUwIDEwMCBMIDUwIDEwMCBMIDUw
IDUwIFpdIEV4cGVjdGVkIFtNIDUwIDUwIEwgMTUwIDUwIEwgMTUwIDEwMCBMIDUwIDEwMCBMIDUw
IDUwIFpdCitQQVNTOiBBY3R1YWwgW00gNzUgNzUgTCAxNzUgNzUgTCAxNzUgMTI1IEwgNzUgMTI1
IEwgNzUgNzUgWl0gRXhwZWN0ZWQgW00gNzUgNzUgTCAxNzUgNzUgTCAxNzUgMTI1IEwgNzUgMTI1
IEwgNzUgNzUgWl0KK1BBU1M6IEFjdHVhbCBbTSA1MCA1MCBMIDE1MCA1MCBMIDE1MCAxMDAgTCA1
MCAxMDAgTCA1MCA1MCBaXSBFeHBlY3RlZCBbTSA1MCA1MCBMIDE1MCA1MCBMIDE1MCAxMDAgTCA1
MCAxMDAgTCA1MCA1MCBaXQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvbW9kZWwvaGlnaGxpZ2h0LXNoYXBlLW91dHNpZGUuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9tb2RlbC9oaWdobGlnaHQtc2hhcGUtb3V0c2lkZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmUxNTM1NjJjMjA3ZDdlMTM0ODU4ODJjOTZjM2Y1OGJmMzRmMmEzYmEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbW9kZWwvaGlnaGxpZ2h0
LXNoYXBlLW91dHNpZGUuaHRtbApAQCAtMCwwICsxLDEwMyBAQAorPGh0bWw+Cis8aGVhZD4KKzxz
dHlsZT4KK2JvZHkgeworICAgIG1hcmdpbjogMDsKK30KKy5zaGFwZSB7CisgICAgZmxvYXQ6IGxl
ZnQ7CisgICAgd2lkdGg6IDIwMHB4OworICAgIGhlaWdodDogMjAwcHg7CisgICAgbWFyZ2luLXJp
Z2h0OiAtMjAwcHg7Cit9CisucGFkZGVkIHsKKyAgICB3aWR0aDogMTAwcHg7CisgICAgaGVpZ2h0
OiAxMDBweDsKKyAgICBwYWRkaW5nOiAyNXB4IDc1cHggNzVweCAyNXB4OworfQorLmJvcmRlci1i
b3ggeworICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cit9CisudmVydGljYWwtbHIgeworICAg
IC13ZWJraXQtd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1scjsKK30KKy52ZXJ0aWNhbC1ybCB7Cisg
ICAgLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsOworfQorLnJlY3RhbmdsZSB7Cisg
ICAgLXdlYmtpdC1zaGFwZS1vdXRzaWRlOiByZWN0YW5nbGUoNTBweCwgNTBweCwgMTAwcHgsIDUw
cHgpOworfQorLnBvbHlnb24geworICAgIC13ZWJraXQtc2hhcGUtb3V0c2lkZTogcG9seWdvbig1
MHB4IDUwcHgsIDEwMHB4IDUwcHgsIDEwMHB4IDEwMHB4LCA1MHB4IDEwMHB4KTsKK30KKzwvc3R5
bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9yZXNvdXJjZXMvc2hhcGUt
aW5mby1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHNoYXBlVGVzdHMo
KSB7CisgICAgdmFyIHRlc3RzID0gWworICAgIHsKKyAgICAgICAgJ3NlbGVjdG9yJyA6ICcucmVj
dGFuZ2xlJywKKyAgICAgICAgJ3BhdGgnIDogWydNJywgNTAsIDUwLCAnTCcsIDE1MCwgNTAsICdM
JywgMTUwLCAxMDAsICdMJywgNTAsIDEwMCwgJ0wnLCA1MCwgNTAsICdaJ10KKyAgICB9LAorICAg
IHsKKyAgICAgICAgJ3NlbGVjdG9yJyA6ICcucG9seWdvbicsCisgICAgICAgICdwYXRoJyA6IFsn
TScsIDUwLCA1MCwgJ0wnLCAxMDAsIDUwLCAnTCcsIDEwMCwgMTAwLCAnTCcsIDUwLCAxMDAsICda
J10KKyAgICB9LAorICAgIHsKKyAgICAgICAgJ3NlbGVjdG9yJyA6ICcucmVjdGFuZ2xlLnBhZGRl
ZCcsCisgICAgICAgICdwYXRoJyA6IFsnTScsIDc1LCA3NSwgJ0wnLCAxNzUsIDc1LCAnTCcsIDE3
NSwgMTI1LCAnTCcsIDc1LCAxMjUsICdMJywgNzUsIDc1LCAnWiddCisgICAgfSwKKyAgICB7Cisg
ICAgICAgICdzZWxlY3RvcicgOiAnLnJlY3RhbmdsZS5wYWRkZWQuYm9yZGVyLWJveCcsCisgICAg
ICAgICdwYXRoJyA6IFsnTScsIDUwLCA1MCwgJ0wnLCAxNTAsIDUwLCAnTCcsIDE1MCwgMTAwLCAn
TCcsIDUwLCAxMDAsICdMJywgNTAsIDUwLCAnWiddCisgICAgfSwKKyAgICB7CisgICAgICAgICdz
ZWxlY3RvcicgOiAnLnJlY3RhbmdsZS52ZXJ0aWNhbC1scicsCisgICAgICAgICdwYXRoJyA6IFsn
TScsIDUwLCA1MCwgJ0wnLCAxNTAsIDUwLCAnTCcsIDE1MCwgMTAwLCAnTCcsIDUwLCAxMDAsICdM
JywgNTAsIDUwLCAnWiddCisgICAgfSwKKyAgICB7CisgICAgICAgICdzZWxlY3RvcicgOiAnLnJl
Y3RhbmdsZS52ZXJ0aWNhbC1ybCcsCisgICAgICAgICdwYXRoJyA6IFsnTScsIDUwLCA1MCwgJ0wn
LCAxNTAsIDUwLCAnTCcsIDE1MCwgMTAwLCAnTCcsIDUwLCAxMDAsICdMJywgNTAsIDUwLCAnWidd
CisgICAgfSwKKyAgICB7CisgICAgICAgICdzZWxlY3RvcicgOiAnLnJlY3RhbmdsZS5wYWRkZWQu
dmVydGljYWwtcmwnLAorICAgICAgICAncGF0aCcgOiBbJ00nLCA3NSwgNzUsICdMJywgMTc1LCA3
NSwgJ0wnLCAxNzUsIDEyNSwgJ0wnLCA3NSwgMTI1LCAnTCcsIDc1LCA3NSwgJ1onXQorICAgIH0s
CisgICAgeworICAgICAgICAnc2VsZWN0b3InIDogJy5yZWN0YW5nbGUucGFkZGVkLnZlcnRpY2Fs
LXJsLmJvcmRlci1ib3gnLAorICAgICAgICAncGF0aCcgOiBbJ00nLCA1MCwgNTAsICdMJywgMTUw
LCA1MCwgJ0wnLCAxNTAsIDEwMCwgJ0wnLCA1MCwgMTAwLCAnTCcsIDUwLCA1MCwgJ1onXQorICAg
IH0KKyAgICBdOworCisgICAgZnVuY3Rpb24gZG9UZXN0cyh0ZXN0cykgeworICAgICAgICBpZiAo
IXRlc3RzLmxlbmd0aCkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3Qo
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICB2YXIgdGVzdCA9IHRl
c3RzWzBdOworICAgICAgICB0ZXN0cyA9IHRlc3RzLnNwbGljZSgxKTsKKyAgICAgICAgSW5zcGVj
dG9yVGVzdC5zaGFwZU91dHNpZGVJbmZvKHRlc3Quc2VsZWN0b3IsIGZ1bmN0aW9uKHNoYXBlT3V0
c2lkZSkgeworICAgICAgICAgICAgdmFyIGFjdHVhbCA9IHNoYXBlT3V0c2lkZS5wYXRoLmpvaW4o
JyAnKTsKKyAgICAgICAgICAgIHZhciBleHBlY3RlZCA9IHRlc3QucGF0aC5qb2luKCcgJyk7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChhY3R1YWwgPT09IGV4cGVjdGVkLCAiQWN0
dWFsIFsiICsgYWN0dWFsICsgIl0gRXhwZWN0ZWQgWyIgKyBleHBlY3RlZCArICJdIik7CisgICAg
ICAgICAgICBkb1Rlc3RzKHRlc3RzKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZG9UZXN0
cyh0ZXN0cyk7Cit9Cit3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7IFNoYXBlSW5mb0hlbHBl
ci5ydW5TaGFwZVRlc3Qoc2hhcGVUZXN0cyk7IH0KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
CisgICAgPGRpdiBjbGFzcz0nc2hhcGUgcmVjdGFuZ2xlJz48L2Rpdj4KKyAgICA8ZGl2IGNsYXNz
PSdzaGFwZSBwb2x5Z29uJz48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSdzaGFwZSBwYWRkZWQgcmVj
dGFuZ2xlJz48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSdzaGFwZSBwYWRkZWQgcmVjdGFuZ2xlIGJv
cmRlci1ib3gnPjwvZGl2PgorICAgIDxkaXYgY2xhc3M9J3NoYXBlIHJlY3RhbmdsZSB2ZXJ0aWNh
bC1scic+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0nc2hhcGUgcmVjdGFuZ2xlIHZlcnRpY2FsLXJs
Jz48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSdzaGFwZSBwYWRkZWQgcmVjdGFuZ2xlIHZlcnRpY2Fs
LXJsJz48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSdzaGFwZSBwYWRkZWQgcmVjdGFuZ2xlIHZlcnRp
Y2FsLXJsIGJvcmRlci1ib3gnPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3Jlc291cmNlcy9zaGFwZS1pbmZvLWhlbHBl
ci5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9yZXNvdXJjZXMvc2hhcGUtaW5m
by1oZWxwZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGJlMWQ0ODYzNzM4OTVhMWJiOWQzY2JkYzU4YjA0YThi
ZjMwYmM4OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9yZXNvdXJjZXMvc2hhcGUtaW5mby1oZWxwZXIuanMKQEAgLTAsMCArMSw2NCBAQAord2luZG93
LlNoYXBlSW5mb0hlbHBlciA9IChmdW5jdGlvbigpIHsKKyAgICBmdW5jdGlvbiBzaGFwZU91dHNp
ZGVJbmZvKHNlbGVjdG9yLCBjYWxsYmFjaykgeworICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRD
b21tYW5kKCJET00uZ2V0RG9jdW1lbnQiLCB7fSwgb25Hb3REb2N1bWVudCk7CisKKyAgICAgICAg
ZnVuY3Rpb24gb25Hb3REb2N1bWVudChtc2cpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
Y2hlY2tGb3JFcnJvcihtc2cpOworICAgICAgICAgICAgdmFyIG5vZGUgPSBtc2cucmVzdWx0LnJv
b3Q7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJET00ucXVlcnlTZWxl
Y3RvciIsCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5vZGVJZCI6IG5vZGUubm9k
ZUlkLAorICAgICAgICAgICAgICAgICJzZWxlY3RvciI6IHNlbGVjdG9yCisgICAgICAgICAgICB9
LAorICAgICAgICAgICAgb25RdWVyeVNlbGVjdG9yKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1
bmN0aW9uIG9uUXVlcnlTZWxlY3Rvcihtc2cpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
Y2hlY2tGb3JFcnJvcihtc2cpOworICAgICAgICAgICAgdmFyIG5vZGUgPSBtc2cucmVzdWx0Owor
ICAgICAgICAgICAgdmFyIGhpZ2hsaWdodENvbmZpZyA9IHsKKyAgICAgICAgICAgICAgICBzaG93
SW5mbzogdHJ1ZSwKKyAgICAgICAgICAgICAgICBjb250ZW50Q29sb3I6IHtyOiAyNTUsIGc6IDI1
NSwgYjogMjU1fSwKKyAgICAgICAgICAgICAgICBwYWRkaW5nQ29sb3I6IHtyOiAyNTUsIGc6IDI1
NSwgYjogMjU1fSwKKyAgICAgICAgICAgICAgICBib3JkZXJDb2xvcjoge3I6IDI1NSwgZzogMjU1
LCBiOiAyNTV9LAorICAgICAgICAgICAgICAgIG1hcmdpbkNvbG9yOiB7cjogMjU1LCBnOiAyNTUs
IGI6IDI1NX0sCisgICAgICAgICAgICB9OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5k
Q29tbWFuZCgiRE9NLmhpZ2hsaWdodE5vZGUiLAorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICJub2RlSWQiOiBub2RlLm5vZGVJZCwKKyAgICAgICAgICAgICAgICAiaGlnaGxpZ2h0Q29u
ZmlnIjogaGlnaGxpZ2h0Q29uZmlnCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgb25IaWdo
bGlnaHROb2RlKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIG9uSGlnaGxpZ2h0Tm9k
ZShtc2cpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihtc2cpOwor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIs
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgImV4cHJlc3Npb24iOiAid2luZG93Lmlu
dGVybmFscy5pbnNwZWN0b3JIaWdobGlnaHRPYmplY3QoKSIKKyAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICBvblJ1bnRpbWVFdmFsdWF0ZSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlv
biBvblJ1bnRpbWVFdmFsdWF0ZShtc2cpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hl
Y2tGb3JFcnJvcihtc2cpOworICAgICAgICAgICAgdmFyIHZhbHVlID0gSlNPTi5wYXJzZShtc2cu
cmVzdWx0LnJlc3VsdC52YWx1ZSk7CisgICAgICAgICAgICBjYWxsYmFjayh2YWx1ZS5lbGVtZW50
SW5mby5zaGFwZU91dHNpZGVJbmZvKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGZ1bmN0aW9u
IHJ1blNoYXBlVGVzdCh0ZXN0Zm4pIHsKKyAgICAgICAgdmFyIGJvZHkgPSBbCisgICAgICAgICAg
ICAiSW5zcGVjdG9yVGVzdC5zaGFwZU91dHNpZGVJbmZvID0gIiArIHNoYXBlT3V0c2lkZUluZm8u
dG9TdHJpbmcoKSwKKyAgICAgICAgICAgICIoIiArIHRlc3Rmbi50b1N0cmluZygpICsgIikoKSIK
KyAgICAgICAgXTsKKyAgICAgICAgd2luZG93LnRlc3QgPSBuZXcgRnVuY3Rpb24oCisgICAgICAg
ICAgICBib2R5LmpvaW4oJztcbicpCisgICAgICAgICk7CisgICAgICAgIHJ1blRlc3QoKTsKKyAg
ICB9CisKKyAgICByZXR1cm4geworICAgICAgICAncnVuU2hhcGVUZXN0JyA6IHJ1blNoYXBlVGVz
dAorICAgIH0KK30pKCk7Cg==
</data>
<flag name="review"
          id="239443"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216486</attachid>
            <date>2013-11-09 01:16:10 -0800</date>
            <delta_ts>2013-11-11 13:52:37 -0800</delta_ts>
            <desc>Incorporating Feedback</desc>
            <filename>shapes-inspector.patch</filename>
            <type>text/plain</type>
            <size>25815</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4NDBiNzc5Li5hZDdjY2U1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTMtMTEt
MDggIEJlYXIgVHJhdmlzICA8YmV0cmF2aXNAYWRvYmUuY29tPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFtDU1MgU2hhcGVzXSBIaWdobGlnaHQgc2hhcGUtb3V0c2lkZSB3aGVuIGl0cyBlbGVt
ZW50IGlzIHNlbGVjdGVkIGluIHRoZSBXZWIgSW5zcGVjdG9yCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQwNzEKKworICAgICAgICBSZXZpZXdlZCBi
eSBUaW1vdGh5IEhhdGNoZXIuCisKKyAgICAgICAgVGVzdCB0aGF0IHRoZSBpbmZvcm1hdGlvbiBw
YXNzZWQgdG8gdGhlIEluc3BlY3RvciBvdmVybGF5IHByb3Blcmx5IGNvcnJlc3BvbmRzIHRvIHRo
ZQorICAgICAgICB1bmRlcmx5aW5nIHNoYXBlLiBSZXRyaWV2aW5nIHRoZSBzaGFwZSBoaWdobGln
aHQgaW5mb3JtYXRpb24gaW52b2x2ZXMgYSBzZXJpZXMgb2YKKyAgICAgICAgc3RlcHMgYW5kIGhh
cyBiZWVuIGFic3RyYWN0ZWQgaW50byBzaGFwZS1pbmZvLWhlbHBlci5qcywgd2hpY2ggc3VwcGxp
ZXMKKyAgICAgICAgSW5zcGVjdG9yLnNoYXBlT3V0c2lkZUluZm8gaW5zaWRlIGFuIEluc3BlY3Rv
ciB0ZXN0LCBhbmQgdGhlIFNoYXBlSW5mb0hlbHBlci5ydW5TaGFwZXNUZXN0CisgICAgICAgIG1l
dGhvZCB0byBiZWdpbiBhIHRlc3QuCisKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvbW9k
ZWwvaGlnaGxpZ2h0LXNoYXBlLW91dHNpZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3ItcHJvdG9jb2wvbW9kZWwvaGlnaGxpZ2h0LXNoYXBlLW91dHNpZGUuaHRtbDog
QWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL3Jlc291cmNlcy9zaGFwZS1pbmZv
LWhlbHBlci5qczogQWRkZWQuCisgICAgICAgICh3aW5kb3cuU2hhcGVJbmZvSGVscGVyKTogRXhw
b3NlcyBTaGFwZUluZm9IZWxwZXIucnVuU2hhcGVzVGVzdC4KKwogMjAxMy0xMS0wOCAgVGhpYWdv
IGRlIEJhcnJvcyBMYWNlcmRhICA8dGhpYWdvLmxhY2VyZGFAb3BlbmJvc3NhLm9yZz4KIAogICAg
ICAgICBJbXByb3ZpbmcgcmVhZGFiaWxpdHkgb2YgTGF5b3V0VGVzdHMgaW4gZmFzdC9tZWRpYXN0
cmVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL21vZGVsL2hp
Z2hsaWdodC1zaGFwZS1vdXRzaWRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9tb2RlbC9oaWdobGlnaHQtc2hhcGUtb3V0c2lkZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGE4MWQ4OQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9tb2RlbC9oaWdobGlnaHQtc2hhcGUt
b3V0c2lkZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitQQVNTOiBBY3R1YWwgW00gNTAg
NTAgTCAxNTAgNTAgTCAxNTAgMTAwIEwgNTAgMTAwIEwgNTAgNTAgWl0gRXhwZWN0ZWQgW00gNTAg
NTAgTCAxNTAgNTAgTCAxNTAgMTAwIEwgNTAgMTAwIEwgNTAgNTAgWl0KK1BBU1M6IEFjdHVhbCBb
TSA1MCA1MCBMIDEwMCA1MCBMIDEwMCAxMDAgTCA1MCAxMDAgWl0gRXhwZWN0ZWQgW00gNTAgNTAg
TCAxMDAgNTAgTCAxMDAgMTAwIEwgNTAgMTAwIFpdCitQQVNTOiBBY3R1YWwgW00gNzUgNzUgTCAx
NzUgNzUgTCAxNzUgMTI1IEwgNzUgMTI1IEwgNzUgNzUgWl0gRXhwZWN0ZWQgW00gNzUgNzUgTCAx
NzUgNzUgTCAxNzUgMTI1IEwgNzUgMTI1IEwgNzUgNzUgWl0KK1BBU1M6IEFjdHVhbCBbTSA1MCA1
MCBMIDE1MCA1MCBMIDE1MCAxMDAgTCA1MCAxMDAgTCA1MCA1MCBaXSBFeHBlY3RlZCBbTSA1MCA1
MCBMIDE1MCA1MCBMIDE1MCAxMDAgTCA1MCAxMDAgTCA1MCA1MCBaXQorUEFTUzogQWN0dWFsIFtN
IDUwIDUwIEwgMTUwIDUwIEwgMTUwIDEwMCBMIDUwIDEwMCBMIDUwIDUwIFpdIEV4cGVjdGVkIFtN
IDUwIDUwIEwgMTUwIDUwIEwgMTUwIDEwMCBMIDUwIDEwMCBMIDUwIDUwIFpdCitQQVNTOiBBY3R1
YWwgW00gNTAgNTAgTCAxNTAgNTAgTCAxNTAgMTAwIEwgNTAgMTAwIEwgNTAgNTAgWl0gRXhwZWN0
ZWQgW00gNTAgNTAgTCAxNTAgNTAgTCAxNTAgMTAwIEwgNTAgMTAwIEwgNTAgNTAgWl0KK1BBU1M6
IEFjdHVhbCBbTSA3NSA3NSBMIDE3NSA3NSBMIDE3NSAxMjUgTCA3NSAxMjUgTCA3NSA3NSBaXSBF
eHBlY3RlZCBbTSA3NSA3NSBMIDE3NSA3NSBMIDE3NSAxMjUgTCA3NSAxMjUgTCA3NSA3NSBaXQor
UEFTUzogQWN0dWFsIFtNIDUwIDUwIEwgMTUwIDUwIEwgMTUwIDEwMCBMIDUwIDEwMCBMIDUwIDUw
IFpdIEV4cGVjdGVkIFtNIDUwIDUwIEwgMTUwIDUwIEwgMTUwIDEwMCBMIDUwIDEwMCBMIDUwIDUw
IFpdCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9tb2RlbC9o
aWdobGlnaHQtc2hhcGUtb3V0c2lkZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3Rv
Y29sL21vZGVsL2hpZ2hsaWdodC1zaGFwZS1vdXRzaWRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZTE1MzU2MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9tb2RlbC9oaWdobGlnaHQtc2hhcGUtb3V0c2lkZS5odG1sCkBA
IC0wLDAgKzEsMTAzIEBACis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorYm9keSB7CisgICAgbWFy
Z2luOiAwOworfQorLnNoYXBlIHsKKyAgICBmbG9hdDogbGVmdDsKKyAgICB3aWR0aDogMjAwcHg7
CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgICBtYXJnaW4tcmlnaHQ6IC0yMDBweDsKK30KKy5wYWRk
ZWQgeworICAgIHdpZHRoOiAxMDBweDsKKyAgICBoZWlnaHQ6IDEwMHB4OworICAgIHBhZGRpbmc6
IDI1cHggNzVweCA3NXB4IDI1cHg7Cit9CisuYm9yZGVyLWJveCB7CisgICAgYm94LXNpemluZzog
Ym9yZGVyLWJveDsKK30KKy52ZXJ0aWNhbC1sciB7CisgICAgLXdlYmtpdC13cml0aW5nLW1vZGU6
IHZlcnRpY2FsLWxyOworfQorLnZlcnRpY2FsLXJsIHsKKyAgICAtd2Via2l0LXdyaXRpbmctbW9k
ZTogdmVydGljYWwtcmw7Cit9CisucmVjdGFuZ2xlIHsKKyAgICAtd2Via2l0LXNoYXBlLW91dHNp
ZGU6IHJlY3RhbmdsZSg1MHB4LCA1MHB4LCAxMDBweCwgNTBweCk7Cit9CisucG9seWdvbiB7Cisg
ICAgLXdlYmtpdC1zaGFwZS1vdXRzaWRlOiBwb2x5Z29uKDUwcHggNTBweCwgMTAwcHggNTBweCwg
MTAwcHggMTAwcHgsIDUwcHggMTAwcHgpOworfQorPC9zdHlsZT4KKzxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3Jl
c291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9Ii4uL3Jlc291cmNlcy9zaGFwZS1pbmZvLWhlbHBlci5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gc2hhcGVUZXN0cygpIHsKKyAgICB2YXIgdGVzdHMgPSBb
CisgICAgeworICAgICAgICAnc2VsZWN0b3InIDogJy5yZWN0YW5nbGUnLAorICAgICAgICAncGF0
aCcgOiBbJ00nLCA1MCwgNTAsICdMJywgMTUwLCA1MCwgJ0wnLCAxNTAsIDEwMCwgJ0wnLCA1MCwg
MTAwLCAnTCcsIDUwLCA1MCwgJ1onXQorICAgIH0sCisgICAgeworICAgICAgICAnc2VsZWN0b3In
IDogJy5wb2x5Z29uJywKKyAgICAgICAgJ3BhdGgnIDogWydNJywgNTAsIDUwLCAnTCcsIDEwMCwg
NTAsICdMJywgMTAwLCAxMDAsICdMJywgNTAsIDEwMCwgJ1onXQorICAgIH0sCisgICAgeworICAg
ICAgICAnc2VsZWN0b3InIDogJy5yZWN0YW5nbGUucGFkZGVkJywKKyAgICAgICAgJ3BhdGgnIDog
WydNJywgNzUsIDc1LCAnTCcsIDE3NSwgNzUsICdMJywgMTc1LCAxMjUsICdMJywgNzUsIDEyNSwg
J0wnLCA3NSwgNzUsICdaJ10KKyAgICB9LAorICAgIHsKKyAgICAgICAgJ3NlbGVjdG9yJyA6ICcu
cmVjdGFuZ2xlLnBhZGRlZC5ib3JkZXItYm94JywKKyAgICAgICAgJ3BhdGgnIDogWydNJywgNTAs
IDUwLCAnTCcsIDE1MCwgNTAsICdMJywgMTUwLCAxMDAsICdMJywgNTAsIDEwMCwgJ0wnLCA1MCwg
NTAsICdaJ10KKyAgICB9LAorICAgIHsKKyAgICAgICAgJ3NlbGVjdG9yJyA6ICcucmVjdGFuZ2xl
LnZlcnRpY2FsLWxyJywKKyAgICAgICAgJ3BhdGgnIDogWydNJywgNTAsIDUwLCAnTCcsIDE1MCwg
NTAsICdMJywgMTUwLCAxMDAsICdMJywgNTAsIDEwMCwgJ0wnLCA1MCwgNTAsICdaJ10KKyAgICB9
LAorICAgIHsKKyAgICAgICAgJ3NlbGVjdG9yJyA6ICcucmVjdGFuZ2xlLnZlcnRpY2FsLXJsJywK
KyAgICAgICAgJ3BhdGgnIDogWydNJywgNTAsIDUwLCAnTCcsIDE1MCwgNTAsICdMJywgMTUwLCAx
MDAsICdMJywgNTAsIDEwMCwgJ0wnLCA1MCwgNTAsICdaJ10KKyAgICB9LAorICAgIHsKKyAgICAg
ICAgJ3NlbGVjdG9yJyA6ICcucmVjdGFuZ2xlLnBhZGRlZC52ZXJ0aWNhbC1ybCcsCisgICAgICAg
ICdwYXRoJyA6IFsnTScsIDc1LCA3NSwgJ0wnLCAxNzUsIDc1LCAnTCcsIDE3NSwgMTI1LCAnTCcs
IDc1LCAxMjUsICdMJywgNzUsIDc1LCAnWiddCisgICAgfSwKKyAgICB7CisgICAgICAgICdzZWxl
Y3RvcicgOiAnLnJlY3RhbmdsZS5wYWRkZWQudmVydGljYWwtcmwuYm9yZGVyLWJveCcsCisgICAg
ICAgICdwYXRoJyA6IFsnTScsIDUwLCA1MCwgJ0wnLCAxNTAsIDUwLCAnTCcsIDE1MCwgMTAwLCAn
TCcsIDUwLCAxMDAsICdMJywgNTAsIDUwLCAnWiddCisgICAgfQorICAgIF07CisKKyAgICBmdW5j
dGlvbiBkb1Rlc3RzKHRlc3RzKSB7CisgICAgICAgIGlmICghdGVzdHMubGVuZ3RoKSB7CisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisgICAgICAgIHZhciB0ZXN0ID0gdGVzdHNbMF07CisgICAgICAgIHRlc3Rz
ID0gdGVzdHMuc3BsaWNlKDEpOworICAgICAgICBJbnNwZWN0b3JUZXN0LnNoYXBlT3V0c2lkZUlu
Zm8odGVzdC5zZWxlY3RvciwgZnVuY3Rpb24oc2hhcGVPdXRzaWRlKSB7CisgICAgICAgICAgICB2
YXIgYWN0dWFsID0gc2hhcGVPdXRzaWRlLnBhdGguam9pbignICcpOworICAgICAgICAgICAgdmFy
IGV4cGVjdGVkID0gdGVzdC5wYXRoLmpvaW4oJyAnKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYXNzZXJ0KGFjdHVhbCA9PT0gZXhwZWN0ZWQsICJBY3R1YWwgWyIgKyBhY3R1YWwgKyAiXSBF
eHBlY3RlZCBbIiArIGV4cGVjdGVkICsgIl0iKTsKKyAgICAgICAgICAgIGRvVGVzdHModGVzdHMp
OworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBkb1Rlc3RzKHRlc3RzKTsKK30KK3dpbmRvdy5v
bmxvYWQgPSBmdW5jdGlvbigpIHsgU2hhcGVJbmZvSGVscGVyLnJ1blNoYXBlVGVzdChzaGFwZVRl
c3RzKTsgfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGNsYXNzPSdzaGFw
ZSByZWN0YW5nbGUnPjwvZGl2PgorICAgIDxkaXYgY2xhc3M9J3NoYXBlIHBvbHlnb24nPjwvZGl2
PgorICAgIDxkaXYgY2xhc3M9J3NoYXBlIHBhZGRlZCByZWN0YW5nbGUnPjwvZGl2PgorICAgIDxk
aXYgY2xhc3M9J3NoYXBlIHBhZGRlZCByZWN0YW5nbGUgYm9yZGVyLWJveCc+PC9kaXY+CisgICAg
PGRpdiBjbGFzcz0nc2hhcGUgcmVjdGFuZ2xlIHZlcnRpY2FsLWxyJz48L2Rpdj4KKyAgICA8ZGl2
IGNsYXNzPSdzaGFwZSByZWN0YW5nbGUgdmVydGljYWwtcmwnPjwvZGl2PgorICAgIDxkaXYgY2xh
c3M9J3NoYXBlIHBhZGRlZCByZWN0YW5nbGUgdmVydGljYWwtcmwnPjwvZGl2PgorICAgIDxkaXYg
Y2xhc3M9J3NoYXBlIHBhZGRlZCByZWN0YW5nbGUgdmVydGljYWwtcmwgYm9yZGVyLWJveCc+PC9k
aXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvcmVzb3VyY2VzL3NoYXBlLWluZm8taGVscGVyLmpzIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL3Jlc291cmNlcy9zaGFwZS1pbmZvLWhlbHBlci5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYmUxZDQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3Jlc291cmNlcy9zaGFwZS1pbmZvLWhlbHBlci5q
cwpAQCAtMCwwICsxLDY0IEBACit3aW5kb3cuU2hhcGVJbmZvSGVscGVyID0gKGZ1bmN0aW9uKCkg
eworICAgIGZ1bmN0aW9uIHNoYXBlT3V0c2lkZUluZm8oc2VsZWN0b3IsIGNhbGxiYWNrKSB7Cisg
ICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRPTS5nZXREb2N1bWVudCIsIHt9LCBv
bkdvdERvY3VtZW50KTsKKworICAgICAgICBmdW5jdGlvbiBvbkdvdERvY3VtZW50KG1zZykgewor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKG1zZyk7CisgICAgICAgICAg
ICB2YXIgbm9kZSA9IG1zZy5yZXN1bHQucm9vdDsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
c2VuZENvbW1hbmQoIkRPTS5xdWVyeVNlbGVjdG9yIiwKKyAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAibm9kZUlkIjogbm9kZS5ub2RlSWQsCisgICAgICAgICAgICAgICAgInNlbGVjdG9y
Ijogc2VsZWN0b3IKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBvblF1ZXJ5U2VsZWN0b3Ip
OworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gb25RdWVyeVNlbGVjdG9yKG1zZykgewor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKG1zZyk7CisgICAgICAgICAg
ICB2YXIgbm9kZSA9IG1zZy5yZXN1bHQ7CisgICAgICAgICAgICB2YXIgaGlnaGxpZ2h0Q29uZmln
ID0geworICAgICAgICAgICAgICAgIHNob3dJbmZvOiB0cnVlLAorICAgICAgICAgICAgICAgIGNv
bnRlbnRDb2xvcjoge3I6IDI1NSwgZzogMjU1LCBiOiAyNTV9LAorICAgICAgICAgICAgICAgIHBh
ZGRpbmdDb2xvcjoge3I6IDI1NSwgZzogMjU1LCBiOiAyNTV9LAorICAgICAgICAgICAgICAgIGJv
cmRlckNvbG9yOiB7cjogMjU1LCBnOiAyNTUsIGI6IDI1NX0sCisgICAgICAgICAgICAgICAgbWFy
Z2luQ29sb3I6IHtyOiAyNTUsIGc6IDI1NSwgYjogMjU1fSwKKyAgICAgICAgICAgIH07CisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJET00uaGlnaGxpZ2h0Tm9kZSIsCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5vZGVJZCI6IG5vZGUubm9kZUlkLAorICAg
ICAgICAgICAgICAgICJoaWdobGlnaHRDb25maWciOiBoaWdobGlnaHRDb25maWcKKyAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICBvbkhpZ2hsaWdodE5vZGUpOworICAgICAgICB9CisKKyAgICAg
ICAgZnVuY3Rpb24gb25IaWdobGlnaHROb2RlKG1zZykgeworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5jaGVja0ZvckVycm9yKG1zZyk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRD
b21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICAiZXhwcmVzc2lvbiI6ICJ3aW5kb3cuaW50ZXJuYWxzLmluc3BlY3RvckhpZ2hsaWdodE9iamVj
dCgpIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIG9uUnVudGltZUV2YWx1YXRlKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIG9uUnVudGltZUV2YWx1YXRlKG1zZykgeworICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKG1zZyk7CisgICAgICAgICAgICB2
YXIgdmFsdWUgPSBKU09OLnBhcnNlKG1zZy5yZXN1bHQucmVzdWx0LnZhbHVlKTsKKyAgICAgICAg
ICAgIGNhbGxiYWNrKHZhbHVlLmVsZW1lbnRJbmZvLnNoYXBlT3V0c2lkZUluZm8pOworICAgICAg
ICB9CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuU2hhcGVUZXN0KHRlc3RmbikgeworICAgICAg
ICB2YXIgYm9keSA9IFsKKyAgICAgICAgICAgICJJbnNwZWN0b3JUZXN0LnNoYXBlT3V0c2lkZUlu
Zm8gPSAiICsgc2hhcGVPdXRzaWRlSW5mby50b1N0cmluZygpLAorICAgICAgICAgICAgIigiICsg
dGVzdGZuLnRvU3RyaW5nKCkgKyAiKSgpIgorICAgICAgICBdOworICAgICAgICB3aW5kb3cudGVz
dCA9IG5ldyBGdW5jdGlvbigKKyAgICAgICAgICAgIGJvZHkuam9pbignO1xuJykKKyAgICAgICAg
KTsKKyAgICAgICAgcnVuVGVzdCgpOworICAgIH0KKworICAgIHJldHVybiB7CisgICAgICAgICdy
dW5TaGFwZVRlc3QnIDogcnVuU2hhcGVUZXN0CisgICAgfQorfSkoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBl
MGJkMTVkLi5mOGU1NTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTMtMTEtMDgg
IEJlYXIgVHJhdmlzICA8YmV0cmF2aXNAYWRvYmUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFtDU1MgU2hhcGVzXSBIaWdobGlnaHQgc2hhcGUtb3V0c2lkZSB3aGVuIGl0cyBlbGVtZW50
IGlzIHNlbGVjdGVkIGluIHRoZSBXZWIgSW5zcGVjdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQwNzEKKworICAgICAgICBSZXZpZXdlZCBieSBU
aW1vdGh5IEhhdGNoZXIuCisKKyAgICAgICAgQWRkaW5nIGNvZGUgdG8gcGFzcyBjb21wdXRlZCBz
aGFwZSBpbmZvcm1hdGlvbiAocGF0aCBhbmQgYm91bmRzKSB0byB0aGUgSW5zcGVjdG9yIG92ZXJs
YXkKKyAgICAgICAgY2FudmFzLCBhbmQgdGhlIGNvZGUgdG8gZGlzcGxheSBpdC4gVGhlIGNvZGUg
Y3JlYXRlcyBhIHBhdGggYmFzZWQgb24gU2hhcGVJbmZvJ3MgY29tcHV0ZWQKKyAgICAgICAgc2hh
cGUuIFRoZSBzaGFwZSBoaWdobGlnaHQgZHJhd3Mgd2hlbmV2ZXIgYW4gZWxlbWVudCBpcyBoaWdo
bGlnaHRlZCwgdmlhIHNlbGVjdGlvbiBpbgorICAgICAgICB0aGUgSW5zcGVjdG9yIGVsZW1lbnRz
IHZpZXcuCisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yLXByb3RvY29sL21vZGVsL2hpZ2hsaWdo
dC1zaGFwZS1vdXRzaWRlLmh0bWwKKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JPdmVy
bGF5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsUG9pbnRUb1Jvb3QpOiBDb252ZXJ0IGEg
bG9jYWwgcG9pbnQgdG8gYmUgcmVsYXRpdmUgdG8gdGhlIHJvb3Qgdmlldy4KKyAgICAgICAgKFdl
YkNvcmU6OmFwcGVuZFBhdGhDb21tYW5kQW5kUG9pbnRzKTogSGVscGVyIGZvciBidWlsZGluZyBh
IHNpbmdsZSBzZWdtZW50J3Mgd29ydGgKKyAgICAgICAgb2YgdGhlIG92ZXJhbGwgcGF0aC4KKyAg
ICAgICAgKFdlYkNvcmU6OmFwcGVuZFBhdGhTZWdtZW50KTogQnVpbGQgYSBzaW5nbGUgc2VnbWVu
dCdzIHdvcnRoIG9mIHRoZSBvdmVyYWxsIHBhdGguCisgICAgICAgIChXZWJDb3JlOjpidWlsZE9i
amVjdEZvclNoYXBlT3V0c2lkZSk6IEJ1aWxkIGFuIG9iamVjdCB0byBwYXNzIHRvIHRoZSBJbnNw
ZWN0b3Igb3ZlcmxheQorICAgICAgICB0aGF0IHJlcHJlc2VudHMgdGhlIHNoYXBlLgorICAgICAg
ICAoV2ViQ29yZTo6YnVpbGRPYmplY3RGb3JFbGVtZW50SW5mbyk6IENhbGwgYnVpbGRPYmplY3RG
b3JTaGFwZU91dHNpZGUgYW5kIHBhc3MgdGhlCisgICAgICAgIHJlc3VsdGluZyBvYmplY3QgYWxv
bmcuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXlQYWdlLmpzOgorICAgICAg
ICAocGF0aENvbW1hbmQpOiBEcmF3IGEgc2luZ2xlIHBhdGggY29tbWFuZC4KKyAgICAgICAgKGRy
YXdQYXRoKTogRHJhdyB0aGUgb3ZlcmFsbCBwYXRoLgorICAgICAgICAoX2RyYXdTaGFwZUhpZ2hs
aWdodCk6IERyYXcgdGhlIGhpZ2hsaWdodCBmb3IgdGhlIGdpdmVuIHNoYXBlSW5mby4KKyAgICAg
ICAgKGRyYXdOb2RlSGlnaGxpZ2h0KTogQ2FsbCBfZHJhd1NoYXBlSGlnaGxpZ2h0LgorICAgICAg
ICAqIHJlbmRlcmluZy9zaGFwZXMvUG9seWdvblNoYXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpQ
b2x5Z29uU2hhcGU6OnBvbHlnb24pOiBFeHBvc2UgdGhlIHVuZGVybHlpbmcgdmVydGV4IGluZm9y
bWF0aW9uIGZvciBhCisgICAgICAgIFBvbHlnb25TaGFwZS4KKyAgICAgICAgKiByZW5kZXJpbmcv
c2hhcGVzL1Jhc3RlclNoYXBlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9SZWN0YW5n
bGVTaGFwZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVjdGFuZ2xlU2hhcGU6OmxvZ2ljYWxSeCk6
IEV4cG9zZSB0aGUgbG9naWNhbCByYWRpaSBmb3IgYSBzaGFwZS4KKyAgICAgICAgKFdlYkNvcmU6
OlJlY3RhbmdsZVNoYXBlOjpsb2dpY2FsUnkpOiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcv
c2hhcGVzL1NoYXBlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluZm8uaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNoYXBlSW5mbzo6Y29tcHV0ZWRTaGFwZVBoeXNpY2FsQm91bmRp
bmdCb3gpOiBUaGUgcGh5c2ljYWwgYm91bmRzIG9mIGEKKyAgICAgICAgc2hhcGUgaW4gcmVuZGVy
ZXIgY29vcmRpbmF0ZXMuCisgICAgICAgIChXZWJDb3JlOjpTaGFwZUluZm86OnNoYXBlVG9SZW5k
ZXJlclBvaW50KTogQ29udmVydCBzaGFwZSBjb29yZGluYXRlcyB0byByZW5kZXJlcgorICAgICAg
ICBjb29yZGluYXRlcy4KKyAgICAgICAgKFdlYkNvcmU6OlNoYXBlSW5mbzo6c2hhcGVUb1JlbmRl
cmVyU2l6ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2hhcGVJbmZvOjpTaGFwZUluZm8p
OgorCiAyMDEzLTExLTA4ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZWluZGVudCBKU0RPTUJpbmRpbmcuaCAoZmluYWxseS4pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAKaW5kZXggYWYzZjI2ZS4uNGU4MjdmMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcApAQCAt
NDMsNiArNDMsOCBAQAogI2luY2x1ZGUgIk1haW5GcmFtZS5oIgogI2luY2x1ZGUgIk5vZGUuaCIK
ICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUG9seWdvblNoYXBlLmgiCisjaW5jbHVkZSAi
UmVjdGFuZ2xlU2hhcGUuaCIKICNpbmNsdWRlICJSZW5kZXJCb3hNb2RlbE9iamVjdC5oIgogI2lu
Y2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJGbG93VGhyZWFkLmgiCkBA
IC01MzIsNiArNTM0LDEyNSBAQCBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JBcnJheT4gYnVp
bGRPYmplY3RGb3JSZW5kZXJlckZyYWdtZW50cyhSZW5kZXJPYmplY3QqCiAgICAgcmV0dXJuIGZy
YWdtZW50c0FycmF5LnJlbGVhc2UoKTsKIH0KIAorI2lmIEVOQUJMRShDU1NfU0hBUEVTKQorc3Rh
dGljIEZsb2F0UG9pbnQgbG9jYWxQb2ludFRvUm9vdChSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBj
b25zdCBGcmFtZVZpZXcqIG1haW5WaWV3LCBjb25zdCBGcmFtZVZpZXcqIHZpZXcsIGNvbnN0IEZs
b2F0UG9pbnQmIHBvaW50KQoreworICAgIEZsb2F0UG9pbnQgcmVzdWx0ID0gcmVuZGVyZXItPmxv
Y2FsVG9BYnNvbHV0ZShwb2ludCk7CisgICAgcmVzdWx0ID0gdmlldy0+Y29udGVudHNUb1Jvb3RW
aWV3KHJvdW5kZWRJbnRQb2ludChyZXN1bHQpKTsKKyAgICByZXN1bHQgKz0gbWFpblZpZXctPnNj
cm9sbE9mZnNldCgpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0cnVjdCBQYXRoQXBwbHlJ
bmZvIHsKKyAgICBGcmFtZVZpZXcqIHJvb3RWaWV3OworICAgIEZyYW1lVmlldyogdmlldzsKKyAg
ICBJbnNwZWN0b3JBcnJheSogYXJyYXk7CisgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlcjsKK307
CisKK3N0YXRpYyB2b2lkIGFwcGVuZFBhdGhDb21tYW5kQW5kUG9pbnRzKFBhdGhBcHBseUluZm8q
IGluZm8sIGNvbnN0IFN0cmluZyYgY29tbWFuZCwgY29uc3QgRmxvYXRQb2ludCBwb2ludHNbXSwg
dW5zaWduZWQgbGVuZ3RoKQoreworICAgIEZsb2F0UG9pbnQgcG9pbnQ7CisgICAgaW5mby0+YXJy
YXktPnB1c2hTdHJpbmcoY29tbWFuZCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxl
bmd0aDsgaSsrKSB7CisgICAgICAgIHBvaW50ID0gbG9jYWxQb2ludFRvUm9vdChpbmZvLT5yZW5k
ZXJlciwgaW5mby0+cm9vdFZpZXcsIGluZm8tPnZpZXcsIHBvaW50c1tpXSk7CisgICAgICAgIGlu
Zm8tPmFycmF5LT5wdXNoTnVtYmVyKHBvaW50LngoKSk7CisgICAgICAgIGluZm8tPmFycmF5LT5w
dXNoTnVtYmVyKHBvaW50LnkoKSk7CisgICAgfQorfQorCitzdGF0aWMgdm9pZCBhcHBlbmRQYXRo
U2VnbWVudCh2b2lkKiBpbmZvLCBjb25zdCBQYXRoRWxlbWVudCogcGF0aEVsZW1lbnQpCit7Cisg
ICAgUGF0aEFwcGx5SW5mbyogcGF0aEFwcGx5SW5mbyA9IHN0YXRpY19jYXN0PFBhdGhBcHBseUlu
Zm8qPihpbmZvKTsKKyAgICBGbG9hdFBvaW50IHBvaW50OworICAgIHN3aXRjaCAocGF0aEVsZW1l
bnQtPnR5cGUpIHsKKyAgICAvLyBUaGUgcG9pbnRzIG1lbWJlciB3aWxsIGNvbnRhaW4gMSB2YWx1
ZS4KKyAgICBjYXNlIFBhdGhFbGVtZW50TW92ZVRvUG9pbnQ6CisgICAgICAgIGFwcGVuZFBhdGhD
b21tYW5kQW5kUG9pbnRzKHBhdGhBcHBseUluZm8sIEFTQ0lJTGl0ZXJhbCgiTSIpLCBwYXRoRWxl
bWVudC0+cG9pbnRzLCAxKTsKKyAgICAgICAgYnJlYWs7CisgICAgLy8gVGhlIHBvaW50cyBtZW1i
ZXIgd2lsbCBjb250YWluIDEgdmFsdWUuCisgICAgY2FzZSBQYXRoRWxlbWVudEFkZExpbmVUb1Bv
aW50OgorICAgICAgICBhcHBlbmRQYXRoQ29tbWFuZEFuZFBvaW50cyhwYXRoQXBwbHlJbmZvLCBB
U0NJSUxpdGVyYWwoIkwiKSwgcGF0aEVsZW1lbnQtPnBvaW50cywgMSk7CisgICAgICAgIGJyZWFr
OworICAgIC8vIFRoZSBwb2ludHMgbWVtYmVyIHdpbGwgY29udGFpbiAzIHZhbHVlcy4KKyAgICBj
YXNlIFBhdGhFbGVtZW50QWRkQ3VydmVUb1BvaW50OgorICAgICAgICBhcHBlbmRQYXRoQ29tbWFu
ZEFuZFBvaW50cyhwYXRoQXBwbHlJbmZvLCBBU0NJSUxpdGVyYWwoIkMiKSwgcGF0aEVsZW1lbnQt
PnBvaW50cywgMyk7CisgICAgICAgIGJyZWFrOworICAgIC8vIFRoZSBwb2ludHMgbWVtYmVyIHdp
bGwgY29udGFpbiAyIHZhbHVlcy4KKyAgICBjYXNlIFBhdGhFbGVtZW50QWRkUXVhZEN1cnZlVG9Q
b2ludDoKKyAgICAgICAgYXBwZW5kUGF0aENvbW1hbmRBbmRQb2ludHMocGF0aEFwcGx5SW5mbywg
QVNDSUlMaXRlcmFsKCJRIiksIHBhdGhFbGVtZW50LT5wb2ludHMsIDIpOworICAgICAgICBicmVh
azsKKyAgICAvLyBUaGUgcG9pbnRzIG1lbWJlciB3aWxsIGNvbnRhaW4gbm8gdmFsdWVzLgorICAg
IGNhc2UgUGF0aEVsZW1lbnRDbG9zZVN1YnBhdGg6CisgICAgICAgIGFwcGVuZFBhdGhDb21tYW5k
QW5kUG9pbnRzKHBhdGhBcHBseUluZm8sIEFTQ0lJTGl0ZXJhbCgiWiIpLCBudWxscHRyLCAwKTsK
KyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCitzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+IGJ1aWxkT2JqZWN0Rm9yU2hhcGVPdXRzaWRlKEZyYW1lKiBjb250YWluaW5nRnJhbWUs
IFJlbmRlckJveCogcmVuZGVyZXIpCit7CisgICAgY29uc3QgU2hhcGVPdXRzaWRlSW5mbyogc2hh
cGVPdXRzaWRlSW5mbyA9IHJlbmRlcmVyLT5zaGFwZU91dHNpZGVJbmZvKCk7CisgICAgaWYgKCFz
aGFwZU91dHNpZGVJbmZvKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIFJlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+IHNoYXBlT2JqZWN0ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsK
KyAgICBMYXlvdXRSZWN0IHNoYXBlQm91bmRzID0gc2hhcGVPdXRzaWRlSW5mby0+Y29tcHV0ZWRT
aGFwZVBoeXNpY2FsQm91bmRpbmdCb3goKTsKKyAgICBGbG9hdFF1YWQgc2hhcGVRdWFkID0gcmVu
ZGVyZXItPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KHNoYXBlQm91bmRzKSk7CisgICAg
Y29udGVudHNRdWFkVG9QYWdlKGNvbnRhaW5pbmdGcmFtZS0+cGFnZSgpLT5tYWluRnJhbWUoKS52
aWV3KCksIGNvbnRhaW5pbmdGcmFtZS0+dmlldygpLCBzaGFwZVF1YWQpOworICAgIHNoYXBlT2Jq
ZWN0LT5zZXRBcnJheSgiYm91bmRzIiwgYnVpbGRBcnJheUZvclF1YWQoc2hhcGVRdWFkKSk7CisK
KyAgICBQYXRoIHBhdGg7CisgICAgc3dpdGNoIChzaGFwZU91dHNpZGVJbmZvLT5jb21wdXRlZFNo
YXBlKCktPnR5cGUoKSkgeworICAgIGNhc2UgU2hhcGU6OlJvdW5kZWRSZWN0YW5nbGVUeXBlOiB7
CisgICAgICAgIGNvbnN0IFJlY3RhbmdsZVNoYXBlKiBzaGFwZSA9IHN0YXRpY19jYXN0PGNvbnN0
IFJlY3RhbmdsZVNoYXBlKj4oc2hhcGVPdXRzaWRlSW5mby0+Y29tcHV0ZWRTaGFwZSgpKTsKKyAg
ICAgICAgRmxvYXRTaXplIHJhZGlpKHNoYXBlLT5sb2dpY2FsUngoKSwgc2hhcGUtPmxvZ2ljYWxS
eSgpKTsKKyAgICAgICAgcmFkaWkgPSBzaGFwZU91dHNpZGVJbmZvLT5zaGFwZVRvUmVuZGVyZXJT
aXplKHJhZGlpKTsKKyAgICAgICAgcGF0aC5hZGRSb3VuZGVkUmVjdChzaGFwZUJvdW5kcywgcmFk
aWksIFBhdGg6OlByZWZlckJlemllclJvdW5kZWRSZWN0KTsKKyAgICAgICAgYnJlYWs7CisgICAg
fQorCisgICAgY2FzZSBTaGFwZTo6UG9seWdvblR5cGU6IHsKKyAgICAgICAgY29uc3QgUG9seWdv
blNoYXBlKiBzaGFwZSA9IHN0YXRpY19jYXN0PGNvbnN0IFBvbHlnb25TaGFwZSo+KHNoYXBlT3V0
c2lkZUluZm8tPmNvbXB1dGVkU2hhcGUoKSk7CisgICAgICAgIGNvbnN0IEZsb2F0UG9seWdvbiYg
cG9seWdvbiA9IHNoYXBlLT5wb2x5Z29uKCk7CisgICAgICAgIEZsb2F0UG9pbnQgdmVydGV4Owor
CisgICAgICAgIGlmIChwb2x5Z29uLm51bWJlck9mVmVydGljZXMoKSkgeworICAgICAgICAgICAg
dmVydGV4ID0gc2hhcGVPdXRzaWRlSW5mby0+c2hhcGVUb1JlbmRlcmVyUG9pbnQocG9seWdvbi52
ZXJ0ZXhBdCgwKSk7CisgICAgICAgICAgICBwYXRoLm1vdmVUbyh2ZXJ0ZXgpOworICAgICAgICB9
CisKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDE7IGkgPCBwb2x5Z29uLm51bWJlck9mVmVydGlj
ZXMoKTsgaSsrKSB7CisgICAgICAgICAgICBGbG9hdFBvaW50IHZlcnRleCA9IHNoYXBlT3V0c2lk
ZUluZm8tPnNoYXBlVG9SZW5kZXJlclBvaW50KHBvbHlnb24udmVydGV4QXQoaSkpOworICAgICAg
ICAgICAgcGF0aC5hZGRMaW5lVG8odmVydGV4KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChw
b2x5Z29uLm51bWJlck9mVmVydGljZXMoKSkKKyAgICAgICAgICAgIHBhdGguY2xvc2VTdWJwYXRo
KCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGNhc2UgU2hhcGU6OlJhc3RlclR5cGU6
CisgICAgICAgIC8vIEZJWE1FOiBCdWcgMTI0MDgwIC0gUmFzdGVyU2hhcGVzIGFyZSBub3QgeWV0
IHN1cHBvcnRlZCBhbmQgb25seSBkaXNwbGF5IHRoZWlyIHNoYXBlIGJvdW5kcworICAgICAgICBi
cmVhazsKKyAgICB9CisKKyAgICBpZiAocGF0aC5sZW5ndGgoKSkgeworICAgICAgICBSZWZQdHI8
SW5zcGVjdG9yQXJyYXk+IHNoYXBlUGF0aCA9IEluc3BlY3RvckFycmF5OjpjcmVhdGUoKTsKKyAg
ICAgICAgUGF0aEFwcGx5SW5mbyBpbmZvOworICAgICAgICBpbmZvLnJvb3RWaWV3ID0gY29udGFp
bmluZ0ZyYW1lLT5wYWdlKCktPm1haW5GcmFtZSgpLnZpZXcoKTsKKyAgICAgICAgaW5mby52aWV3
ID0gY29udGFpbmluZ0ZyYW1lLT52aWV3KCk7CisgICAgICAgIGluZm8uYXJyYXkgPSBzaGFwZVBh
dGguZ2V0KCk7CisgICAgICAgIGluZm8ucmVuZGVyZXIgPSByZW5kZXJlcjsKKworICAgICAgICBw
YXRoLmFwcGx5KCZpbmZvLCAmYXBwZW5kUGF0aFNlZ21lbnQpOworCisgICAgICAgIHNoYXBlT2Jq
ZWN0LT5zZXRBcnJheSgicGF0aCIsIHNoYXBlUGF0aC5yZWxlYXNlKCkpOworICAgIH0KKworICAg
IHJldHVybiBzaGFwZU9iamVjdC5yZWxlYXNlKCk7Cit9CisjZW5kaWYKKwogc3RhdGljIFBhc3NS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBidWlsZE9iamVjdEZvckVsZW1lbnRJbmZvKE5vZGUqIG5v
ZGUpCiB7CiAgICAgaWYgKCFub2RlLT5pc0VsZW1lbnROb2RlKCkgfHwgIW5vZGUtPmRvY3VtZW50
KCkuZnJhbWUoKSkKQEAgLTU4NSw2ICs3MDYsMTQgQEAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiBidWlsZE9iamVjdEZvckVsZW1lbnRJbmZvKE5vZGUqIG5vZGUpCiAgICAgICAg
IGVsZW1lbnRJbmZvLT5zZXRPYmplY3QoImNvbnRlbnRGbG93SW5mbyIsIGNvbnRlbnRGbG93SW5m
by5yZWxlYXNlKCkpOwogICAgIH0KIAorI2lmIEVOQUJMRShDU1NfU0hBUEVTKQorICAgIGlmIChy
ZW5kZXJlci0+aXNCb3goKSkgeworICAgICAgICBSZW5kZXJCb3gqIHJlbmRlckJveCA9IHRvUmVu
ZGVyQm94KHJlbmRlcmVyKTsKKyAgICAgICAgaWYgKFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHNo
YXBlT2JqZWN0ID0gYnVpbGRPYmplY3RGb3JTaGFwZU91dHNpZGUoY29udGFpbmluZ0ZyYW1lLCBy
ZW5kZXJCb3gpKQorICAgICAgICAgICAgZWxlbWVudEluZm8tPnNldE9iamVjdCgic2hhcGVPdXRz
aWRlSW5mbyIsIHNoYXBlT2JqZWN0LnJlbGVhc2UoKSk7CisgICAgfQorI2VuZGlmCisKICAgICBy
ZXR1cm4gZWxlbWVudEluZm8ucmVsZWFzZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheVBhZ2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheVBhZ2UuanMKaW5kZXggOTRmMjg2Mi4uZjA0NzNlMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXlQYWdl
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5UGFnZS5q
cwpAQCAtMTgsNiArMTgsOSBAQCBjb25zdCByZWdpb25OdW1iZXJGb250ID0gImJvbGQgNDBwdCBz
YW5zLXNlcmlmIjsKIGNvbnN0IHJlZ2lvbk51bWJlckZpbGxDb2xvciA9ICJyZ2JhKDI1NSwgMjU1
LCAyNTUsIDAuOSkiOwogY29uc3QgcmVnaW9uTnVtYmVyU3Ryb2tlQ29sb3IgPSAicmdiKDYxLCAx
MjcsIDIwNCkiOwogCisvLyBDU1MgU2hhcGVzIGhpZ2hsaWdodCBjb2xvcnMKK2NvbnN0IHNoYXBl
SGlnaGxpZ2h0Q29sb3IgPSAicmdiKDI1NSwgMTA1LCAxODApIjsKKwogZnVuY3Rpb24gZHJhd1Bh
dXNlZEluRGVidWdnZXJNZXNzYWdlKG1lc3NhZ2UpCiB7CiAgICAgdmFyIHBhdXNlZEluRGVidWdn
ZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGF1c2VkLWluLWRlYnVnZ2VyIik7CkBAIC0x
ODQsNiArMTg3LDU4IEBAIGZ1bmN0aW9uIGRyYXdPdXRsaW5lZFF1YWQocXVhZCwgZmlsbENvbG9y
LCBvdXRsaW5lQ29sb3IpCiAgICAgY29udGV4dC5yZXN0b3JlKCk7CiB9CiAKK2Z1bmN0aW9uIHBh
dGhDb21tYW5kKGNvbnRleHQsIGNvbW1hbmRzLCBuYW1lLCBpbmRleCwgbGVuZ3RoKSB7CisgICAg
Y29udGV4dFtuYW1lXS5hcHBseShjb250ZXh0LCBjb21tYW5kcy5zbGljZShpbmRleCArIDEsIGlu
ZGV4ICsgbGVuZ3RoICsgMSkpOworICAgIHJldHVybiBpbmRleCArIGxlbmd0aCArIDE7Cit9CisK
K2Z1bmN0aW9uIGRyYXdQYXRoKGNvbnRleHQsIGNvbW1hbmRzLCBmaWxsQ29sb3IsIG91dGxpbmVD
b2xvcikKK3sKKyAgICBjb250ZXh0LnNhdmUoKTsKKyAgICBjb250ZXh0LmJlZ2luUGF0aCgpOwor
CisgICAgdmFyIGNvbW1hbmRzSW5kZXggPSAwOworICAgIHZhciBjb21tYW5kc0xlbmd0aCA9IGNv
bW1hbmRzLmxlbmd0aDsKKyAgICB3aGlsZShjb21tYW5kc0luZGV4IDwgY29tbWFuZHNMZW5ndGgp
IHsKKyAgICAgICAgc3dpdGNoKGNvbW1hbmRzW2NvbW1hbmRzSW5kZXhdKSB7CisgICAgICAgIC8v
IDEgcG9pbnQKKyAgICAgICAgY2FzZSAnTSc6CisgICAgICAgICAgICBjb21tYW5kc0luZGV4ID0g
cGF0aENvbW1hbmQoY29udGV4dCwgY29tbWFuZHMsICJtb3ZlVG8iLCBjb21tYW5kc0luZGV4LCAy
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAvLyAxIHBvaW50CisgICAgICAgIGNhc2Ug
J0wnOgorICAgICAgICAgICAgY29tbWFuZHNJbmRleCA9IHBhdGhDb21tYW5kKGNvbnRleHQsIGNv
bW1hbmRzLCAibGluZVRvIiwgY29tbWFuZHNJbmRleCwgMik7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgLy8gMyBwb2ludHMKKyAgICAgICAgY2FzZSAnQyc6CisgICAgICAgICAgICBjb21t
YW5kc0luZGV4ID0gcGF0aENvbW1hbmQoY29udGV4dCwgY29tbWFuZHMsICJiZXppZXJDdXJ2ZVRv
IiwgY29tbWFuZHNJbmRleCwgNik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgLy8gMiBw
b2ludHMKKyAgICAgICAgY2FzZSAnUSc6CisgICAgICAgICAgICBjb21tYW5kc0luZGV4ID0gcGF0
aENvbW1hbmQoY29udGV4dCwgY29tbWFuZHMsICJxdWFkcmF0aWNDdXJ2ZVRvIiwgY29tbWFuZHNJ
bmRleCwgMik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgLy8gMCBwb2ludHMKKyAgICAg
ICAgY2FzZSAnWic6CisgICAgICAgICAgICBjb21tYW5kc0luZGV4ID0gcGF0aENvbW1hbmQoY29u
dGV4dCwgY29tbWFuZHMsICJjbG9zZVBhdGgiLCBjb21tYW5kc0luZGV4LCAwKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgY29tbWFuZHNJbmRleCsr
OworICAgICAgICB9CisgICAgfQorCisgICAgY29udGV4dC5jbG9zZVBhdGgoKTsKKyAgICBjb250
ZXh0LmZpbGxTdHlsZSA9IGZpbGxDb2xvcjsKKyAgICBjb250ZXh0LmZpbGwoKTsKKworICAgIGlm
IChvdXRsaW5lQ29sb3IpIHsKKyAgICAgICAgY29udGV4dC5saW5lV2lkdGggPSAyOworICAgICAg
ICBjb250ZXh0LnN0cm9rZVN0eWxlID0gb3V0bGluZUNvbG9yOworICAgICAgICBjb250ZXh0LnN0
cm9rZSgpOworICAgIH0KKworICAgIGNvbnRleHQucmVzdG9yZSgpOworfQorCiBmdW5jdGlvbiBk
cmF3T3V0bGluZWRRdWFkV2l0aENsaXAocXVhZCwgY2xpcFF1YWQsIGZpbGxDb2xvcikKIHsKICAg
ICB2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOwpAQCAtNTA2
LDYgKzU2MSwxMyBAQCBmdW5jdGlvbiBfZHJhd1JlZ2lvbnNIaWdobGlnaHQocmVnaW9ucykKICAg
ICB9CiB9CiAKK2Z1bmN0aW9uIF9kcmF3U2hhcGVIaWdobGlnaHQoc2hhcGVJbmZvKSB7CisgICAg
aWYgKHNoYXBlSW5mby5wYXRoKQorICAgICAgICBkcmF3UGF0aChjb250ZXh0LCBzaGFwZUluZm8u
cGF0aCwgc2hhcGVIaWdobGlnaHRDb2xvcik7CisgICAgZWxzZQorICAgICAgICBkcmF3T3V0bGlu
ZWRRdWFkKHNoYXBlSW5mby5ib3VuZHMsIHNoYXBlSGlnaGxpZ2h0Q29sb3IsIHNoYXBlSGlnaGxp
Z2h0Q29sb3IpOworfQorCiBmdW5jdGlvbiBfZHJhd0ZyYWdtZW50SGlnaGxpZ2h0KGhpZ2hsaWdo
dCkKIHsKICAgICBpZiAoIWhpZ2hsaWdodC5xdWFkcy5sZW5ndGgpIHsKQEAgLTU4MCw2ICs2NDIs
OSBAQCBmdW5jdGlvbiBkcmF3Tm9kZUhpZ2hsaWdodChoaWdobGlnaHQpCiAgICAgaWYgKGhpZ2hs
aWdodC5lbGVtZW50SW5mbyAmJiBoaWdobGlnaHQuZWxlbWVudEluZm8ucmVnaW9uRmxvd0luZm8p
CiAgICAgICAgIF9kcmF3UmVnaW9uc0hpZ2hsaWdodChoaWdobGlnaHQuZWxlbWVudEluZm8ucmVn
aW9uRmxvd0luZm8ucmVnaW9ucywgaGlnaGxpZ2h0KTsKIAorICAgIGlmIChoaWdobGlnaHQuZWxl
bWVudEluZm8gJiYgaGlnaGxpZ2h0LmVsZW1lbnRJbmZvLnNoYXBlT3V0c2lkZUluZm8pCisgICAg
ICAgIF9kcmF3U2hhcGVIaWdobGlnaHQoaGlnaGxpZ2h0LmVsZW1lbnRJbmZvLnNoYXBlT3V0c2lk
ZUluZm8pOworCiAgICAgY29udGV4dC5yZXN0b3JlKCk7CiAKICAgICB2YXIgZWxlbWVudFRpdGxl
Q29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVsZW1lbnQtdGl0bGUtY29udGFp
bmVyIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1BvbHln
b25TaGFwZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Qb2x5Z29uU2hhcGUu
aAppbmRleCAyNjY4MjVjLi5lMWE2NTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc2hhcGVzL1BvbHlnb25TaGFwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zaGFwZXMvUG9seWdvblNoYXBlLmgKQEAgLTk3LDYgKzk3LDEwIEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgZ2V0SW5jbHVkZWRJbnRlcnZhbHMoTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBM
YXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIFNlZ21lbnRMaXN0JikgY29uc3QgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCBib29sIGZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AoTGF5b3V0VW5p
dCBtaW5Mb2dpY2FsSW50ZXJ2YWxUb3AsIGNvbnN0IExheW91dFNpemUmIG1pbkxvZ2ljYWxJbnRl
cnZhbFNpemUsIExheW91dFVuaXQmKSBjb25zdCBPVkVSUklERTsKIAorICAgIHZpcnR1YWwgU2hh
cGVUeXBlIHR5cGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBTaGFwZTo6UG9seWdvblR5cGU7
IH0KKworICAgIGNvbnN0IEZsb2F0UG9seWdvbiYgcG9seWdvbigpIGNvbnN0IHsgcmV0dXJuIG1f
cG9seWdvbjsgfQorCiBwcml2YXRlOgogICAgIGNvbnN0IEZsb2F0UG9seWdvbiYgc2hhcGVNYXJn
aW5Cb3VuZHMoKSBjb25zdDsKICAgICBjb25zdCBGbG9hdFBvbHlnb24mIHNoYXBlUGFkZGluZ0Jv
dW5kcygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBl
cy9SYXN0ZXJTaGFwZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9SYXN0ZXJT
aGFwZS5oCmluZGV4IDVjMDE5MGQuLjNjYWYxZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zaGFwZXMvUmFzdGVyU2hhcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc2hhcGVzL1Jhc3RlclNoYXBlLmgKQEAgLTEwMSw2ICsxMDEsOCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGdldEluY2x1ZGVkSW50ZXJ2YWxzKExheW91dFVuaXQgbG9naWNhbFRv
cCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBTZWdtZW50TGlzdCYpIGNvbnN0IE9WRVJSSURF
OwogICAgIHZpcnR1YWwgYm9vbCBmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKExheW91
dFVuaXQgbWluTG9naWNhbEludGVydmFsVG9wLCBjb25zdCBMYXlvdXRTaXplJiBtaW5Mb2dpY2Fs
SW50ZXJ2YWxTaXplLCBMYXlvdXRVbml0JikgY29uc3QgT1ZFUlJJREU7CiAKKyAgICB2aXJ0dWFs
IFNoYXBlVHlwZSB0eXBlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gU2hhcGU6OlJhc3RlclR5
cGU7IH0KKwogcHJpdmF0ZToKICAgICBjb25zdCBSYXN0ZXJTaGFwZUludGVydmFscyYgbWFyZ2lu
SW50ZXJ2YWxzKCkgY29uc3Q7CiAgICAgY29uc3QgUmFzdGVyU2hhcGVJbnRlcnZhbHMmIHBhZGRp
bmdJbnRlcnZhbHMoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zaGFwZXMvUmVjdGFuZ2xlU2hhcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFw
ZXMvUmVjdGFuZ2xlU2hhcGUuaAppbmRleCBlOWVjZjA1MC4uMDAwNzhiOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9SZWN0YW5nbGVTaGFwZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUmVjdGFuZ2xlU2hhcGUuaApAQCAtNzUsNiAr
NzUsMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRJbmNsdWRlZEludGVydmFscyhM
YXlvdXRVbml0IGxvZ2ljYWxUb3AsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCwgU2VnbWVudExp
c3QmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgZmlyc3RJbmNsdWRlZEludGVy
dmFsTG9naWNhbFRvcChMYXlvdXRVbml0IG1pbkxvZ2ljYWxJbnRlcnZhbFRvcCwgY29uc3QgTGF5
b3V0U2l6ZSYgbWluTG9naWNhbEludGVydmFsU2l6ZSwgTGF5b3V0VW5pdCYpIGNvbnN0IE9WRVJS
SURFOwogCisgICAgTGF5b3V0VW5pdCBsb2dpY2FsUngoKSBjb25zdCB7IHJldHVybiBtX2JvdW5k
cy5yeCgpOyB9CisgICAgTGF5b3V0VW5pdCBsb2dpY2FsUnkoKSBjb25zdCB7IHJldHVybiBtX2Jv
dW5kcy5yeSgpOyB9CisKKyAgICB2aXJ0dWFsIFNoYXBlVHlwZSB0eXBlKCkgY29uc3QgT1ZFUlJJ
REUgeyByZXR1cm4gU2hhcGU6OlJvdW5kZWRSZWN0YW5nbGVUeXBlOyB9CisKIHByaXZhdGU6CiAg
ICAgRmxvYXRSb3VuZGVkUmVjdCBzaGFwZU1hcmdpbkJvdW5kcygpIGNvbnN0OwogICAgIEZsb2F0
Um91bmRlZFJlY3Qgc2hhcGVQYWRkaW5nQm91bmRzKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc2hhcGVzL1NoYXBlLmgKaW5kZXggZjc3NWU1ZS4uYmQyZDI5NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGUuaApAQCAtNjAsNiArNjAsMTIgQEAgdHlwZWRlZiBW
ZWN0b3I8TGluZVNlZ21lbnQ+IFNlZ21lbnRMaXN0OwogCiBjbGFzcyBTaGFwZSB7CiBwdWJsaWM6
CisgICAgZW51bSBTaGFwZVR5cGUgeworICAgICAgICBSb3VuZGVkUmVjdGFuZ2xlVHlwZSwKKyAg
ICAgICAgUG9seWdvblR5cGUsCisgICAgICAgIFJhc3RlclR5cGUKKyAgICB9OworCiAgICAgc3Rh
dGljIFBhc3NPd25QdHI8U2hhcGU+IGNyZWF0ZVNoYXBlKGNvbnN0IEJhc2ljU2hhcGUqLCBjb25z
dCBMYXlvdXRTaXplJiBsb2dpY2FsQm94U2l6ZSwgV3JpdGluZ01vZGUsIExlbmd0aCBtYXJnaW4s
IExlbmd0aCBwYWRkaW5nKTsKICAgICBzdGF0aWMgUGFzc093blB0cjxTaGFwZT4gY3JlYXRlU2hh
cGUoY29uc3QgU3R5bGVJbWFnZSosIGZsb2F0IHRocmVzaG9sZCwgY29uc3QgTGF5b3V0U2l6ZSYg
bG9naWNhbEJveFNpemUsIFdyaXRpbmdNb2RlLCBMZW5ndGggbWFyZ2luLCBMZW5ndGggcGFkZGlu
Zyk7CiAKQEAgLTcyLDYgKzc4LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRFeGNs
dWRlZEludGVydmFscyhMYXlvdXRVbml0IGxvZ2ljYWxUb3AsIExheW91dFVuaXQgbG9naWNhbEhl
aWdodCwgU2VnbWVudExpc3QmKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGZpcnN0SW5j
bHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AoTGF5b3V0VW5pdCBtaW5Mb2dpY2FsSW50ZXJ2YWxUb3As
IGNvbnN0IExheW91dFNpemUmIG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUsIExheW91dFVuaXQmIHJl
c3VsdCkgY29uc3QgPSAwOwogCisgICAgdmlydHVhbCBTaGFwZVR5cGUgdHlwZSgpIGNvbnN0ID0g
MDsKKwogcHJvdGVjdGVkOgogICAgIGZsb2F0IHNoYXBlTWFyZ2luKCkgY29uc3QgeyByZXR1cm4g
bV9tYXJnaW47IH0KICAgICBmbG9hdCBzaGFwZVBhZGRpbmcoKSBjb25zdCB7IHJldHVybiBtX3Bh
ZGRpbmc7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hh
cGVJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5mby5oCmlu
ZGV4IDk3OWRhZjQuLjZiMzRjOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zaGFwZXMvU2hhcGVJbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBl
cy9TaGFwZUluZm8uaApAQCAtMTA1LDExICsxMDUsNDAgQEAgcHVibGljOgogICAgIGNvbnN0IFJl
bmRlclR5cGUqIG93bmVyKCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJlcjsgfQogICAgIExheW91
dFNpemUgc2hhcGVTaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaGFwZUxvZ2ljYWxTaXplOyB9CiAK
LXByb3RlY3RlZDoKLSAgICBTaGFwZUluZm8oY29uc3QgUmVuZGVyVHlwZSogcmVuZGVyZXIpOiBt
X3JlbmRlcmVyKHJlbmRlcmVyKSB7IH0KKyAgICBMYXlvdXRSZWN0IGNvbXB1dGVkU2hhcGVQaHlz
aWNhbEJvdW5kaW5nQm94KCkgY29uc3QKKyAgICB7CisgICAgICAgIExheW91dFJlY3QgcGh5c2lj
YWxCb3VuZGluZ0JveCA9IGNvbXB1dGVkU2hhcGVMb2dpY2FsQm91bmRpbmdCb3goKTsKKyAgICAg
ICAgcGh5c2ljYWxCb3VuZGluZ0JveC5zZXRYKHBoeXNpY2FsQm91bmRpbmdCb3gueCgpICsgbG9n
aWNhbExlZnRPZmZzZXQoKSk7CisgICAgICAgIHBoeXNpY2FsQm91bmRpbmdCb3guc2V0WShwaHlz
aWNhbEJvdW5kaW5nQm94LnkoKSArIGxvZ2ljYWxUb3BPZmZzZXQoKSk7CisgICAgICAgIGlmICht
X3JlbmRlcmVyLT5zdHlsZSgpLmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCkpCisgICAgICAg
ICAgICBwaHlzaWNhbEJvdW5kaW5nQm94LnNldFkobV9yZW5kZXJlci0+bG9naWNhbEhlaWdodCgp
IC0gcGh5c2ljYWxCb3VuZGluZ0JveC5tYXhZKCkpOworICAgICAgICBpZiAoIW1fcmVuZGVyZXIt
PnN0eWxlKCkuaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKKyAgICAgICAgICAgIHBoeXNpY2Fs
Qm91bmRpbmdCb3ggPSBwaHlzaWNhbEJvdW5kaW5nQm94LnRyYW5zcG9zZWRSZWN0KCk7CisgICAg
ICAgIHJldHVybiBwaHlzaWNhbEJvdW5kaW5nQm94OworICAgIH0KKworICAgIEZsb2F0UG9pbnQg
c2hhcGVUb1JlbmRlcmVyUG9pbnQoRmxvYXRQb2ludCBwb2ludCkgY29uc3QKKyAgICB7CisgICAg
ICAgIEZsb2F0UG9pbnQgcmVzdWx0ID0gRmxvYXRQb2ludChwb2ludC54KCkgKyBsb2dpY2FsTGVm
dE9mZnNldCgpLCBwb2ludC55KCkgKyBsb2dpY2FsVG9wT2Zmc2V0KCkpOworICAgICAgICBpZiAo
bV9yZW5kZXJlci0+c3R5bGUoKS5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpKQorICAgICAg
ICAgICAgcmVzdWx0LnNldFkobV9yZW5kZXJlci0+bG9naWNhbEhlaWdodCgpIC0gcmVzdWx0Lnko
KSk7CisgICAgICAgIGlmICghbV9yZW5kZXJlci0+c3R5bGUoKS5pc0hvcml6b250YWxXcml0aW5n
TW9kZSgpKQorICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnRyYW5zcG9zZWRQb2ludCgpOwor
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIEZsb2F0U2l6ZSBzaGFwZVRvUmVu
ZGVyZXJTaXplKEZsb2F0U2l6ZSBzaXplKSBjb25zdAorICAgIHsKKyAgICAgICAgaWYgKCFtX3Jl
bmRlcmVyLT5zdHlsZSgpLmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCisgICAgICAgICAgICBy
ZXR1cm4gc2l6ZS50cmFuc3Bvc2VkU2l6ZSgpOworICAgICAgICByZXR1cm4gc2l6ZTsKKyAgICB9
CiAKICAgICBjb25zdCBTaGFwZSogY29tcHV0ZWRTaGFwZSgpIGNvbnN0OwogCitwcm90ZWN0ZWQ6
CisgICAgZXhwbGljaXQgU2hhcGVJbmZvKGNvbnN0IFJlbmRlclR5cGUqIHJlbmRlcmVyKTogbV9y
ZW5kZXJlcihyZW5kZXJlcikgeyB9CisKICAgICB2aXJ0dWFsIExheW91dFJlY3QgY29tcHV0ZWRT
aGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFNoYXBlVmFs
dWUqIHNoYXBlVmFsdWUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGdldEludGVydmFs
cyhMYXlvdXRVbml0LCBMYXlvdXRVbml0LCBTZWdtZW50TGlzdCYpIGNvbnN0ID0gMDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216607</attachid>
            <date>2013-11-11 13:52:11 -0800</date>
            <delta_ts>2013-11-11 14:23:23 -0800</delta_ts>
            <desc>Updating patch</desc>
            <filename>bug-124071-20131111135211.patch</filename>
            <type>text/plain</type>
            <size>26603</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5MDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODExMDFhZmJmZGU0OGZm
YzNkZjQzZWI5Y2E4ODU2OGFkODA1NDMyZi4uNGQwMzZlYTc0ZmNjYTA5N2MxYzFlODhhNTBmNmEw
NDk5NjgzODU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEzLTExLTExICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBb
Q1NTIFNoYXBlc10gSGlnaGxpZ2h0IHNoYXBlLW91dHNpZGUgd2hlbiBpdHMgZWxlbWVudCBpcyBz
ZWxlY3RlZCBpbiB0aGUgV2ViIEluc3BlY3RvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0MDcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltb3Ro
eSBIYXRjaGVyLgorCisgICAgICAgIEFkZGluZyBjb2RlIHRvIHBhc3MgY29tcHV0ZWQgc2hhcGUg
aW5mb3JtYXRpb24gKHBhdGggYW5kIGJvdW5kcykgdG8gdGhlIEluc3BlY3RvciBvdmVybGF5Cisg
ICAgICAgIGNhbnZhcywgYW5kIHRoZSBjb2RlIHRvIGRpc3BsYXkgaXQuIFRoZSBjb2RlIGNyZWF0
ZXMgYSBwYXRoIGJhc2VkIG9uIFNoYXBlSW5mbydzIGNvbXB1dGVkCisgICAgICAgIHNoYXBlLiBU
aGUgc2hhcGUgaGlnaGxpZ2h0IGRyYXdzIHdoZW5ldmVyIGFuIGVsZW1lbnQgaXMgaGlnaGxpZ2h0
ZWQsIHZpYSBzZWxlY3Rpb24gaW4KKyAgICAgICAgdGhlIEluc3BlY3RvciBlbGVtZW50cyB2aWV3
LgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci1wcm90b2NvbC9tb2RlbC9oaWdobGlnaHQtc2hh
cGUtb3V0c2lkZS5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpsb2NhbFBvaW50VG9Sb290KTogQ29udmVydCBhIGxvY2Fs
IHBvaW50IHRvIGJlIHJlbGF0aXZlIHRvIHRoZSByb290IHZpZXcuCisgICAgICAgIChXZWJDb3Jl
OjphcHBlbmRQYXRoQ29tbWFuZEFuZFBvaW50cyk6IEhlbHBlciBmb3IgYnVpbGRpbmcgYSBzaW5n
bGUgc2VnbWVudCdzIHdvcnRoCisgICAgICAgIG9mIHRoZSBvdmVyYWxsIHBhdGguCisgICAgICAg
IChXZWJDb3JlOjphcHBlbmRQYXRoU2VnbWVudCk6IEJ1aWxkIGEgc2luZ2xlIHNlZ21lbnQncyB3
b3J0aCBvZiB0aGUgb3ZlcmFsbCBwYXRoLgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRPYmplY3RG
b3JTaGFwZU91dHNpZGUpOiBCdWlsZCBhbiBvYmplY3QgdG8gcGFzcyB0byB0aGUgSW5zcGVjdG9y
IG92ZXJsYXkKKyAgICAgICAgdGhhdCByZXByZXNlbnRzIHRoZSBzaGFwZS4KKyAgICAgICAgKFdl
YkNvcmU6OmJ1aWxkT2JqZWN0Rm9yRWxlbWVudEluZm8pOiBDYWxsIGJ1aWxkT2JqZWN0Rm9yU2hh
cGVPdXRzaWRlIGFuZCBwYXNzIHRoZQorICAgICAgICByZXN1bHRpbmcgb2JqZWN0IGFsb25nLgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5UGFnZS5qczoKKyAgICAgICAgKHBh
dGhDb21tYW5kKTogRHJhdyBhIHNpbmdsZSBwYXRoIGNvbW1hbmQuCisgICAgICAgIChkcmF3UGF0
aCk6IERyYXcgdGhlIG92ZXJhbGwgcGF0aC4KKyAgICAgICAgKF9kcmF3U2hhcGVIaWdobGlnaHQp
OiBEcmF3IHRoZSBoaWdobGlnaHQgZm9yIHRoZSBnaXZlbiBzaGFwZUluZm8uCisgICAgICAgIChk
cmF3Tm9kZUhpZ2hsaWdodCk6IENhbGwgX2RyYXdTaGFwZUhpZ2hsaWdodC4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvc2hhcGVzL1BvbHlnb25TaGFwZS5oOgorICAgICAgICAoV2ViQ29yZTo6UG9seWdv
blNoYXBlOjpwb2x5Z29uKTogRXhwb3NlIHRoZSB1bmRlcmx5aW5nIHZlcnRleCBpbmZvcm1hdGlv
biBmb3IgYQorICAgICAgICBQb2x5Z29uU2hhcGUuCisgICAgICAgICogcmVuZGVyaW5nL3NoYXBl
cy9SYXN0ZXJTaGFwZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvUmVjdGFuZ2xlU2hh
cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlY3RhbmdsZVNoYXBlOjpsb2dpY2FsUngpOiBFeHBv
c2UgdGhlIGxvZ2ljYWwgcmFkaWkgZm9yIGEgc2hhcGUuCisgICAgICAgIChXZWJDb3JlOjpSZWN0
YW5nbGVTaGFwZTo6bG9naWNhbFJ5KTogRGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL3NoYXBl
cy9TaGFwZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTaGFwZUluZm86OmNvbXB1dGVkU2hhcGVQaHlzaWNhbEJvdW5kaW5nQm94
KTogVGhlIHBoeXNpY2FsIGJvdW5kcyBvZiBhCisgICAgICAgIHNoYXBlIGluIHJlbmRlcmVyIGNv
b3JkaW5hdGVzLgorICAgICAgICAoV2ViQ29yZTo6U2hhcGVJbmZvOjpzaGFwZVRvUmVuZGVyZXJQ
b2ludCk6IENvbnZlcnQgc2hhcGUgY29vcmRpbmF0ZXMgdG8gcmVuZGVyZXIKKyAgICAgICAgY29v
cmRpbmF0ZXMuCisgICAgICAgIChXZWJDb3JlOjpTaGFwZUluZm86OnNoYXBlVG9SZW5kZXJlclNp
emUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNoYXBlSW5mbzo6U2hhcGVJbmZvKToKKwog
MjAxMy0xMS0xMSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAg
ICBTdXBwb3J0IFdlYkNyeXB0byBLZXlQYWlyIGludGVyZmFjZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCmluZGV4IGFmM2YyNmUzNmYxNGZjZTBhNjU1
YTZmMGYwNjRlZWFmNDRlY2UxMWYuLjRlODI3ZjExOTBiNmNhODM5NjRiNzA3ZDhkNDNhNDIzODJk
M2M5N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVy
bGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5j
cHAKQEAgLTQzLDYgKzQzLDggQEAKICNpbmNsdWRlICJNYWluRnJhbWUuaCIKICNpbmNsdWRlICJO
b2RlLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBvbHlnb25TaGFwZS5oIgorI2lu
Y2x1ZGUgIlJlY3RhbmdsZVNoYXBlLmgiCiAjaW5jbHVkZSAiUmVuZGVyQm94TW9kZWxPYmplY3Qu
aCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyRmxvd1RocmVh
ZC5oIgpAQCAtNTMyLDYgKzUzNCwxMjUgQEAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yQXJy
YXk+IGJ1aWxkT2JqZWN0Rm9yUmVuZGVyZXJGcmFnbWVudHMoUmVuZGVyT2JqZWN0KgogICAgIHJl
dHVybiBmcmFnbWVudHNBcnJheS5yZWxlYXNlKCk7CiB9CiAKKyNpZiBFTkFCTEUoQ1NTX1NIQVBF
UykKK3N0YXRpYyBGbG9hdFBvaW50IGxvY2FsUG9pbnRUb1Jvb3QoUmVuZGVyT2JqZWN0KiByZW5k
ZXJlciwgY29uc3QgRnJhbWVWaWV3KiBtYWluVmlldywgY29uc3QgRnJhbWVWaWV3KiB2aWV3LCBj
b25zdCBGbG9hdFBvaW50JiBwb2ludCkKK3sKKyAgICBGbG9hdFBvaW50IHJlc3VsdCA9IHJlbmRl
cmVyLT5sb2NhbFRvQWJzb2x1dGUocG9pbnQpOworICAgIHJlc3VsdCA9IHZpZXctPmNvbnRlbnRz
VG9Sb290Vmlldyhyb3VuZGVkSW50UG9pbnQocmVzdWx0KSk7CisgICAgcmVzdWx0ICs9IG1haW5W
aWV3LT5zY3JvbGxPZmZzZXQoKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitzdHJ1Y3QgUGF0
aEFwcGx5SW5mbyB7CisgICAgRnJhbWVWaWV3KiByb290VmlldzsKKyAgICBGcmFtZVZpZXcqIHZp
ZXc7CisgICAgSW5zcGVjdG9yQXJyYXkqIGFycmF5OworICAgIFJlbmRlck9iamVjdCogcmVuZGVy
ZXI7Cit9OworCitzdGF0aWMgdm9pZCBhcHBlbmRQYXRoQ29tbWFuZEFuZFBvaW50cyhQYXRoQXBw
bHlJbmZvKiBpbmZvLCBjb25zdCBTdHJpbmcmIGNvbW1hbmQsIGNvbnN0IEZsb2F0UG9pbnQgcG9p
bnRzW10sIHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICBGbG9hdFBvaW50IHBvaW50OworICAgIGlu
Zm8tPmFycmF5LT5wdXNoU3RyaW5nKGNvbW1hbmQpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBsZW5ndGg7IGkrKykgeworICAgICAgICBwb2ludCA9IGxvY2FsUG9pbnRUb1Jvb3QoaW5m
by0+cmVuZGVyZXIsIGluZm8tPnJvb3RWaWV3LCBpbmZvLT52aWV3LCBwb2ludHNbaV0pOworICAg
ICAgICBpbmZvLT5hcnJheS0+cHVzaE51bWJlcihwb2ludC54KCkpOworICAgICAgICBpbmZvLT5h
cnJheS0+cHVzaE51bWJlcihwb2ludC55KCkpOworICAgIH0KK30KKworc3RhdGljIHZvaWQgYXBw
ZW5kUGF0aFNlZ21lbnQodm9pZCogaW5mbywgY29uc3QgUGF0aEVsZW1lbnQqIHBhdGhFbGVtZW50
KQoreworICAgIFBhdGhBcHBseUluZm8qIHBhdGhBcHBseUluZm8gPSBzdGF0aWNfY2FzdDxQYXRo
QXBwbHlJbmZvKj4oaW5mbyk7CisgICAgRmxvYXRQb2ludCBwb2ludDsKKyAgICBzd2l0Y2ggKHBh
dGhFbGVtZW50LT50eXBlKSB7CisgICAgLy8gVGhlIHBvaW50cyBtZW1iZXIgd2lsbCBjb250YWlu
IDEgdmFsdWUuCisgICAgY2FzZSBQYXRoRWxlbWVudE1vdmVUb1BvaW50OgorICAgICAgICBhcHBl
bmRQYXRoQ29tbWFuZEFuZFBvaW50cyhwYXRoQXBwbHlJbmZvLCBBU0NJSUxpdGVyYWwoIk0iKSwg
cGF0aEVsZW1lbnQtPnBvaW50cywgMSk7CisgICAgICAgIGJyZWFrOworICAgIC8vIFRoZSBwb2lu
dHMgbWVtYmVyIHdpbGwgY29udGFpbiAxIHZhbHVlLgorICAgIGNhc2UgUGF0aEVsZW1lbnRBZGRM
aW5lVG9Qb2ludDoKKyAgICAgICAgYXBwZW5kUGF0aENvbW1hbmRBbmRQb2ludHMocGF0aEFwcGx5
SW5mbywgQVNDSUlMaXRlcmFsKCJMIiksIHBhdGhFbGVtZW50LT5wb2ludHMsIDEpOworICAgICAg
ICBicmVhazsKKyAgICAvLyBUaGUgcG9pbnRzIG1lbWJlciB3aWxsIGNvbnRhaW4gMyB2YWx1ZXMu
CisgICAgY2FzZSBQYXRoRWxlbWVudEFkZEN1cnZlVG9Qb2ludDoKKyAgICAgICAgYXBwZW5kUGF0
aENvbW1hbmRBbmRQb2ludHMocGF0aEFwcGx5SW5mbywgQVNDSUlMaXRlcmFsKCJDIiksIHBhdGhF
bGVtZW50LT5wb2ludHMsIDMpOworICAgICAgICBicmVhazsKKyAgICAvLyBUaGUgcG9pbnRzIG1l
bWJlciB3aWxsIGNvbnRhaW4gMiB2YWx1ZXMuCisgICAgY2FzZSBQYXRoRWxlbWVudEFkZFF1YWRD
dXJ2ZVRvUG9pbnQ6CisgICAgICAgIGFwcGVuZFBhdGhDb21tYW5kQW5kUG9pbnRzKHBhdGhBcHBs
eUluZm8sIEFTQ0lJTGl0ZXJhbCgiUSIpLCBwYXRoRWxlbWVudC0+cG9pbnRzLCAyKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgLy8gVGhlIHBvaW50cyBtZW1iZXIgd2lsbCBjb250YWluIG5vIHZhbHVl
cy4KKyAgICBjYXNlIFBhdGhFbGVtZW50Q2xvc2VTdWJwYXRoOgorICAgICAgICBhcHBlbmRQYXRo
Q29tbWFuZEFuZFBvaW50cyhwYXRoQXBwbHlJbmZvLCBBU0NJSUxpdGVyYWwoIloiKSwgbnVsbHB0
ciwgMCk7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKworc3RhdGljIFBhc3NSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0PiBidWlsZE9iamVjdEZvclNoYXBlT3V0c2lkZShGcmFtZSogY29udGFpbmlu
Z0ZyYW1lLCBSZW5kZXJCb3gqIHJlbmRlcmVyKQoreworICAgIGNvbnN0IFNoYXBlT3V0c2lkZUlu
Zm8qIHNoYXBlT3V0c2lkZUluZm8gPSByZW5kZXJlci0+c2hhcGVPdXRzaWRlSW5mbygpOworICAg
IGlmICghc2hhcGVPdXRzaWRlSW5mbykKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBzaGFwZU9iamVjdCA9IEluc3BlY3Rvck9iamVjdDo6Y3Jl
YXRlKCk7CisgICAgTGF5b3V0UmVjdCBzaGFwZUJvdW5kcyA9IHNoYXBlT3V0c2lkZUluZm8tPmNv
bXB1dGVkU2hhcGVQaHlzaWNhbEJvdW5kaW5nQm94KCk7CisgICAgRmxvYXRRdWFkIHNoYXBlUXVh
ZCA9IHJlbmRlcmVyLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdChzaGFwZUJvdW5kcykp
OworICAgIGNvbnRlbnRzUXVhZFRvUGFnZShjb250YWluaW5nRnJhbWUtPnBhZ2UoKS0+bWFpbkZy
YW1lKCkudmlldygpLCBjb250YWluaW5nRnJhbWUtPnZpZXcoKSwgc2hhcGVRdWFkKTsKKyAgICBz
aGFwZU9iamVjdC0+c2V0QXJyYXkoImJvdW5kcyIsIGJ1aWxkQXJyYXlGb3JRdWFkKHNoYXBlUXVh
ZCkpOworCisgICAgUGF0aCBwYXRoOworICAgIHN3aXRjaCAoc2hhcGVPdXRzaWRlSW5mby0+Y29t
cHV0ZWRTaGFwZSgpLT50eXBlKCkpIHsKKyAgICBjYXNlIFNoYXBlOjpSb3VuZGVkUmVjdGFuZ2xl
VHlwZTogeworICAgICAgICBjb25zdCBSZWN0YW5nbGVTaGFwZSogc2hhcGUgPSBzdGF0aWNfY2Fz
dDxjb25zdCBSZWN0YW5nbGVTaGFwZSo+KHNoYXBlT3V0c2lkZUluZm8tPmNvbXB1dGVkU2hhcGUo
KSk7CisgICAgICAgIEZsb2F0U2l6ZSByYWRpaShzaGFwZS0+bG9naWNhbFJ4KCksIHNoYXBlLT5s
b2dpY2FsUnkoKSk7CisgICAgICAgIHJhZGlpID0gc2hhcGVPdXRzaWRlSW5mby0+c2hhcGVUb1Jl
bmRlcmVyU2l6ZShyYWRpaSk7CisgICAgICAgIHBhdGguYWRkUm91bmRlZFJlY3Qoc2hhcGVCb3Vu
ZHMsIHJhZGlpLCBQYXRoOjpQcmVmZXJCZXppZXJSb3VuZGVkUmVjdCk7CisgICAgICAgIGJyZWFr
OworICAgIH0KKworICAgIGNhc2UgU2hhcGU6OlBvbHlnb25UeXBlOiB7CisgICAgICAgIGNvbnN0
IFBvbHlnb25TaGFwZSogc2hhcGUgPSBzdGF0aWNfY2FzdDxjb25zdCBQb2x5Z29uU2hhcGUqPihz
aGFwZU91dHNpZGVJbmZvLT5jb21wdXRlZFNoYXBlKCkpOworICAgICAgICBjb25zdCBGbG9hdFBv
bHlnb24mIHBvbHlnb24gPSBzaGFwZS0+cG9seWdvbigpOworICAgICAgICBGbG9hdFBvaW50IHZl
cnRleDsKKworICAgICAgICBpZiAocG9seWdvbi5udW1iZXJPZlZlcnRpY2VzKCkpIHsKKyAgICAg
ICAgICAgIHZlcnRleCA9IHNoYXBlT3V0c2lkZUluZm8tPnNoYXBlVG9SZW5kZXJlclBvaW50KHBv
bHlnb24udmVydGV4QXQoMCkpOworICAgICAgICAgICAgcGF0aC5tb3ZlVG8odmVydGV4KTsKKyAg
ICAgICAgfQorCisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAxOyBpIDwgcG9seWdvbi5udW1iZXJP
ZlZlcnRpY2VzKCk7IGkrKykgeworICAgICAgICAgICAgRmxvYXRQb2ludCB2ZXJ0ZXggPSBzaGFw
ZU91dHNpZGVJbmZvLT5zaGFwZVRvUmVuZGVyZXJQb2ludChwb2x5Z29uLnZlcnRleEF0KGkpKTsK
KyAgICAgICAgICAgIHBhdGguYWRkTGluZVRvKHZlcnRleCk7CisgICAgICAgIH0KKworICAgICAg
ICBpZiAocG9seWdvbi5udW1iZXJPZlZlcnRpY2VzKCkpCisgICAgICAgICAgICBwYXRoLmNsb3Nl
U3VicGF0aCgpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBjYXNlIFNoYXBlOjpSYXN0
ZXJUeXBlOgorICAgICAgICAvLyBGSVhNRTogQnVnIDEyNDA4MCAtIFJhc3RlclNoYXBlcyBhcmUg
bm90IHlldCBzdXBwb3J0ZWQgYW5kIG9ubHkgZGlzcGxheSB0aGVpciBzaGFwZSBib3VuZHMKKyAg
ICAgICAgYnJlYWs7CisgICAgfQorCisgICAgaWYgKHBhdGgubGVuZ3RoKCkpIHsKKyAgICAgICAg
UmVmUHRyPEluc3BlY3RvckFycmF5PiBzaGFwZVBhdGggPSBJbnNwZWN0b3JBcnJheTo6Y3JlYXRl
KCk7CisgICAgICAgIFBhdGhBcHBseUluZm8gaW5mbzsKKyAgICAgICAgaW5mby5yb290VmlldyA9
IGNvbnRhaW5pbmdGcmFtZS0+cGFnZSgpLT5tYWluRnJhbWUoKS52aWV3KCk7CisgICAgICAgIGlu
Zm8udmlldyA9IGNvbnRhaW5pbmdGcmFtZS0+dmlldygpOworICAgICAgICBpbmZvLmFycmF5ID0g
c2hhcGVQYXRoLmdldCgpOworICAgICAgICBpbmZvLnJlbmRlcmVyID0gcmVuZGVyZXI7CisKKyAg
ICAgICAgcGF0aC5hcHBseSgmaW5mbywgJmFwcGVuZFBhdGhTZWdtZW50KTsKKworICAgICAgICBz
aGFwZU9iamVjdC0+c2V0QXJyYXkoInBhdGgiLCBzaGFwZVBhdGgucmVsZWFzZSgpKTsKKyAgICB9
CisKKyAgICByZXR1cm4gc2hhcGVPYmplY3QucmVsZWFzZSgpOworfQorI2VuZGlmCisKIHN0YXRp
YyBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGRPYmplY3RGb3JFbGVtZW50SW5mbyhO
b2RlKiBub2RlKQogewogICAgIGlmICghbm9kZS0+aXNFbGVtZW50Tm9kZSgpIHx8ICFub2RlLT5k
b2N1bWVudCgpLmZyYW1lKCkpCkBAIC01ODUsNiArNzA2LDE0IEBAIHN0YXRpYyBQYXNzUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4gYnVpbGRPYmplY3RGb3JFbGVtZW50SW5mbyhOb2RlKiBub2RlKQog
ICAgICAgICBlbGVtZW50SW5mby0+c2V0T2JqZWN0KCJjb250ZW50Rmxvd0luZm8iLCBjb250ZW50
Rmxvd0luZm8ucmVsZWFzZSgpKTsKICAgICB9CiAKKyNpZiBFTkFCTEUoQ1NTX1NIQVBFUykKKyAg
ICBpZiAocmVuZGVyZXItPmlzQm94KCkpIHsKKyAgICAgICAgUmVuZGVyQm94KiByZW5kZXJCb3gg
PSB0b1JlbmRlckJveChyZW5kZXJlcik7CisgICAgICAgIGlmIChSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiBzaGFwZU9iamVjdCA9IGJ1aWxkT2JqZWN0Rm9yU2hhcGVPdXRzaWRlKGNvbnRhaW5pbmdG
cmFtZSwgcmVuZGVyQm94KSkKKyAgICAgICAgICAgIGVsZW1lbnRJbmZvLT5zZXRPYmplY3QoInNo
YXBlT3V0c2lkZUluZm8iLCBzaGFwZU9iamVjdC5yZWxlYXNlKCkpOworICAgIH0KKyNlbmRpZgor
CiAgICAgcmV0dXJuIGVsZW1lbnRJbmZvLnJlbGVhc2UoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXlQYWdlLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXlQYWdlLmpzCmluZGV4IDk0ZjI4NjI1ZjJl
NjhmYzZiMjljOGU0ZjEwZDFjNmY5NWQxZmRlM2YuLmYwNDczZTIxZDc4MzU4MTAyNGRlMzRhNDVk
Nzg4YzhiNjEzMTk1YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JPdmVybGF5UGFnZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yT3ZlcmxheVBhZ2UuanMKQEAgLTE4LDYgKzE4LDkgQEAgY29uc3QgcmVnaW9uTnVtYmVyRm9u
dCA9ICJib2xkIDQwcHQgc2Fucy1zZXJpZiI7CiBjb25zdCByZWdpb25OdW1iZXJGaWxsQ29sb3Ig
PSAicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpIjsKIGNvbnN0IHJlZ2lvbk51bWJlclN0cm9rZUNv
bG9yID0gInJnYig2MSwgMTI3LCAyMDQpIjsKIAorLy8gQ1NTIFNoYXBlcyBoaWdobGlnaHQgY29s
b3JzCitjb25zdCBzaGFwZUhpZ2hsaWdodENvbG9yID0gInJnYigyNTUsIDEwNSwgMTgwKSI7CisK
IGZ1bmN0aW9uIGRyYXdQYXVzZWRJbkRlYnVnZ2VyTWVzc2FnZShtZXNzYWdlKQogewogICAgIHZh
ciBwYXVzZWRJbkRlYnVnZ2VyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBhdXNlZC1pbi1k
ZWJ1Z2dlciIpOwpAQCAtMTg0LDYgKzE4Nyw1OCBAQCBmdW5jdGlvbiBkcmF3T3V0bGluZWRRdWFk
KHF1YWQsIGZpbGxDb2xvciwgb3V0bGluZUNvbG9yKQogICAgIGNvbnRleHQucmVzdG9yZSgpOwog
fQogCitmdW5jdGlvbiBwYXRoQ29tbWFuZChjb250ZXh0LCBjb21tYW5kcywgbmFtZSwgaW5kZXgs
IGxlbmd0aCkgeworICAgIGNvbnRleHRbbmFtZV0uYXBwbHkoY29udGV4dCwgY29tbWFuZHMuc2xp
Y2UoaW5kZXggKyAxLCBpbmRleCArIGxlbmd0aCArIDEpKTsKKyAgICByZXR1cm4gaW5kZXggKyBs
ZW5ndGggKyAxOworfQorCitmdW5jdGlvbiBkcmF3UGF0aChjb250ZXh0LCBjb21tYW5kcywgZmls
bENvbG9yLCBvdXRsaW5lQ29sb3IpCit7CisgICAgY29udGV4dC5zYXZlKCk7CisgICAgY29udGV4
dC5iZWdpblBhdGgoKTsKKworICAgIHZhciBjb21tYW5kc0luZGV4ID0gMDsKKyAgICB2YXIgY29t
bWFuZHNMZW5ndGggPSBjb21tYW5kcy5sZW5ndGg7CisgICAgd2hpbGUoY29tbWFuZHNJbmRleCA8
IGNvbW1hbmRzTGVuZ3RoKSB7CisgICAgICAgIHN3aXRjaChjb21tYW5kc1tjb21tYW5kc0luZGV4
XSkgeworICAgICAgICAvLyAxIHBvaW50CisgICAgICAgIGNhc2UgJ00nOgorICAgICAgICAgICAg
Y29tbWFuZHNJbmRleCA9IHBhdGhDb21tYW5kKGNvbnRleHQsIGNvbW1hbmRzLCAibW92ZVRvIiwg
Y29tbWFuZHNJbmRleCwgMik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgLy8gMSBwb2lu
dAorICAgICAgICBjYXNlICdMJzoKKyAgICAgICAgICAgIGNvbW1hbmRzSW5kZXggPSBwYXRoQ29t
bWFuZChjb250ZXh0LCBjb21tYW5kcywgImxpbmVUbyIsIGNvbW1hbmRzSW5kZXgsIDIpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIC8vIDMgcG9pbnRzCisgICAgICAgIGNhc2UgJ0MnOgor
ICAgICAgICAgICAgY29tbWFuZHNJbmRleCA9IHBhdGhDb21tYW5kKGNvbnRleHQsIGNvbW1hbmRz
LCAiYmV6aWVyQ3VydmVUbyIsIGNvbW1hbmRzSW5kZXgsIDYpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIC8vIDIgcG9pbnRzCisgICAgICAgIGNhc2UgJ1EnOgorICAgICAgICAgICAgY29t
bWFuZHNJbmRleCA9IHBhdGhDb21tYW5kKGNvbnRleHQsIGNvbW1hbmRzLCAicXVhZHJhdGljQ3Vy
dmVUbyIsIGNvbW1hbmRzSW5kZXgsIDIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIC8v
IDAgcG9pbnRzCisgICAgICAgIGNhc2UgJ1onOgorICAgICAgICAgICAgY29tbWFuZHNJbmRleCA9
IHBhdGhDb21tYW5kKGNvbnRleHQsIGNvbW1hbmRzLCAiY2xvc2VQYXRoIiwgY29tbWFuZHNJbmRl
eCwgMCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IGNvbW1hbmRzSW5kZXgrKzsKKyAgICAgICAgfQorICAgIH0KKworICAgIGNvbnRleHQuY2xvc2VQ
YXRoKCk7CisgICAgY29udGV4dC5maWxsU3R5bGUgPSBmaWxsQ29sb3I7CisgICAgY29udGV4dC5m
aWxsKCk7CisKKyAgICBpZiAob3V0bGluZUNvbG9yKSB7CisgICAgICAgIGNvbnRleHQubGluZVdp
ZHRoID0gMjsKKyAgICAgICAgY29udGV4dC5zdHJva2VTdHlsZSA9IG91dGxpbmVDb2xvcjsKKyAg
ICAgICAgY29udGV4dC5zdHJva2UoKTsKKyAgICB9CisKKyAgICBjb250ZXh0LnJlc3RvcmUoKTsK
K30KKwogZnVuY3Rpb24gZHJhd091dGxpbmVkUXVhZFdpdGhDbGlwKHF1YWQsIGNsaXBRdWFkLCBm
aWxsQ29sb3IpCiB7CiAgICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
YW52YXMiKTsKQEAgLTUwNiw2ICs1NjEsMTMgQEAgZnVuY3Rpb24gX2RyYXdSZWdpb25zSGlnaGxp
Z2h0KHJlZ2lvbnMpCiAgICAgfQogfQogCitmdW5jdGlvbiBfZHJhd1NoYXBlSGlnaGxpZ2h0KHNo
YXBlSW5mbykgeworICAgIGlmIChzaGFwZUluZm8ucGF0aCkKKyAgICAgICAgZHJhd1BhdGgoY29u
dGV4dCwgc2hhcGVJbmZvLnBhdGgsIHNoYXBlSGlnaGxpZ2h0Q29sb3IpOworICAgIGVsc2UKKyAg
ICAgICAgZHJhd091dGxpbmVkUXVhZChzaGFwZUluZm8uYm91bmRzLCBzaGFwZUhpZ2hsaWdodENv
bG9yLCBzaGFwZUhpZ2hsaWdodENvbG9yKTsKK30KKwogZnVuY3Rpb24gX2RyYXdGcmFnbWVudEhp
Z2hsaWdodChoaWdobGlnaHQpCiB7CiAgICAgaWYgKCFoaWdobGlnaHQucXVhZHMubGVuZ3RoKSB7
CkBAIC01ODAsNiArNjQyLDkgQEAgZnVuY3Rpb24gZHJhd05vZGVIaWdobGlnaHQoaGlnaGxpZ2h0
KQogICAgIGlmIChoaWdobGlnaHQuZWxlbWVudEluZm8gJiYgaGlnaGxpZ2h0LmVsZW1lbnRJbmZv
LnJlZ2lvbkZsb3dJbmZvKQogICAgICAgICBfZHJhd1JlZ2lvbnNIaWdobGlnaHQoaGlnaGxpZ2h0
LmVsZW1lbnRJbmZvLnJlZ2lvbkZsb3dJbmZvLnJlZ2lvbnMsIGhpZ2hsaWdodCk7CiAKKyAgICBp
ZiAoaGlnaGxpZ2h0LmVsZW1lbnRJbmZvICYmIGhpZ2hsaWdodC5lbGVtZW50SW5mby5zaGFwZU91
dHNpZGVJbmZvKQorICAgICAgICBfZHJhd1NoYXBlSGlnaGxpZ2h0KGhpZ2hsaWdodC5lbGVtZW50
SW5mby5zaGFwZU91dHNpZGVJbmZvKTsKKwogICAgIGNvbnRleHQucmVzdG9yZSgpOwogCiAgICAg
dmFyIGVsZW1lbnRUaXRsZUNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlbGVt
ZW50LXRpdGxlLWNvbnRhaW5lciIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3NoYXBlcy9Qb2x5Z29uU2hhcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFw
ZXMvUG9seWdvblNoYXBlLmgKaW5kZXggMjY2ODI1Y2E3MzQ4MWIwYWI4OWMwYTBkMTE2MmU0NjEw
ZWY0MDM1NS4uZTFhNjU3NTA1OGU4ZWYwNmZkMzhhYWI5NjkyM2QwOWE2Yzg4OTZjNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Qb2x5Z29uU2hhcGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1BvbHlnb25TaGFwZS5oCkBAIC05Nyw2
ICs5NywxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldEluY2x1ZGVkSW50ZXJ2YWxz
KExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBTZWdtZW50
TGlzdCYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBmaXJzdEluY2x1ZGVkSW50
ZXJ2YWxMb2dpY2FsVG9wKExheW91dFVuaXQgbWluTG9naWNhbEludGVydmFsVG9wLCBjb25zdCBM
YXlvdXRTaXplJiBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLCBMYXlvdXRVbml0JikgY29uc3QgT1ZF
UlJJREU7CiAKKyAgICB2aXJ0dWFsIFNoYXBlVHlwZSB0eXBlKCkgY29uc3QgT1ZFUlJJREUgeyBy
ZXR1cm4gU2hhcGU6OlBvbHlnb25UeXBlOyB9CisKKyAgICBjb25zdCBGbG9hdFBvbHlnb24mIHBv
bHlnb24oKSBjb25zdCB7IHJldHVybiBtX3BvbHlnb247IH0KKwogcHJpdmF0ZToKICAgICBjb25z
dCBGbG9hdFBvbHlnb24mIHNoYXBlTWFyZ2luQm91bmRzKCkgY29uc3Q7CiAgICAgY29uc3QgRmxv
YXRQb2x5Z29uJiBzaGFwZVBhZGRpbmdCb3VuZHMoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUmFzdGVyU2hhcGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zaGFwZXMvUmFzdGVyU2hhcGUuaAppbmRleCBkYjJiZmM3MTlkY2ZlOTM4ODYw
ZmUxNjg2ODlmMzFhYWU5M2VhY2VmLi5mMGY4Y2IzYjY5NzEwNjJjM2VjNWQ4NDM3MjBmZmYzYWU3
NGEzNTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1Jhc3Rl
clNoYXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9SYXN0ZXJTaGFw
ZS5oCkBAIC0xMDEsNiArMTAxLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRJbmNs
dWRlZEludGVydmFscyhMYXlvdXRVbml0IGxvZ2ljYWxUb3AsIExheW91dFVuaXQgbG9naWNhbEhl
aWdodCwgU2VnbWVudExpc3QmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgZmly
c3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRvcChMYXlvdXRVbml0IG1pbkxvZ2ljYWxJbnRlcnZh
bFRvcCwgY29uc3QgTGF5b3V0U2l6ZSYgbWluTG9naWNhbEludGVydmFsU2l6ZSwgTGF5b3V0VW5p
dCYpIGNvbnN0IE9WRVJSSURFOwogCisgICAgdmlydHVhbCBTaGFwZVR5cGUgdHlwZSgpIGNvbnN0
IE9WRVJSSURFIHsgcmV0dXJuIFNoYXBlOjpSYXN0ZXJUeXBlOyB9CisKIHByaXZhdGU6CiAgICAg
Y29uc3QgUmFzdGVyU2hhcGVJbnRlcnZhbHMmIG1hcmdpbkludGVydmFscygpIGNvbnN0OwogICAg
IGNvbnN0IFJhc3RlclNoYXBlSW50ZXJ2YWxzJiBwYWRkaW5nSW50ZXJ2YWxzKCkgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1JlY3RhbmdsZVNoYXBl
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1JlY3RhbmdsZVNoYXBlLmgKaW5k
ZXggZTllY2YwNTA0YmI5OTNjOTExMDM5MDYzNDkzNDVlZTQyOTQ0NmQ1OS4uMDAwNzhiODdmY2Jk
ZmEzZmE0YjZkZTU4MzUzMjU3N2VlY2I4Y2RiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3NoYXBlcy9SZWN0YW5nbGVTaGFwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zaGFwZXMvUmVjdGFuZ2xlU2hhcGUuaApAQCAtNzUsNiArNzUsMTEgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBnZXRJbmNsdWRlZEludGVydmFscyhMYXlvdXRVbml0IGxvZ2lj
YWxUb3AsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCwgU2VnbWVudExpc3QmKSBjb25zdCBPVkVS
UklERTsKICAgICB2aXJ0dWFsIGJvb2wgZmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRvcChM
YXlvdXRVbml0IG1pbkxvZ2ljYWxJbnRlcnZhbFRvcCwgY29uc3QgTGF5b3V0U2l6ZSYgbWluTG9n
aWNhbEludGVydmFsU2l6ZSwgTGF5b3V0VW5pdCYpIGNvbnN0IE9WRVJSSURFOwogCisgICAgTGF5
b3V0VW5pdCBsb2dpY2FsUngoKSBjb25zdCB7IHJldHVybiBtX2JvdW5kcy5yeCgpOyB9CisgICAg
TGF5b3V0VW5pdCBsb2dpY2FsUnkoKSBjb25zdCB7IHJldHVybiBtX2JvdW5kcy5yeSgpOyB9CisK
KyAgICB2aXJ0dWFsIFNoYXBlVHlwZSB0eXBlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gU2hh
cGU6OlJvdW5kZWRSZWN0YW5nbGVUeXBlOyB9CisKIHByaXZhdGU6CiAgICAgRmxvYXRSb3VuZGVk
UmVjdCBzaGFwZU1hcmdpbkJvdW5kcygpIGNvbnN0OwogICAgIEZsb2F0Um91bmRlZFJlY3Qgc2hh
cGVQYWRkaW5nQm91bmRzKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc2hhcGVzL1NoYXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1No
YXBlLmgKaW5kZXggZjc3NWU1ZWVmNDM0ZmFhNzgzMzc4OWFlODZlMDkxN2RjNWNiZTA3MS4uYmQy
ZDI5NmU0MzU0MjNiMmNkNThhYzcyMGQ0MjAyODAyNTg3ZDVkZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zaGFwZXMvU2hhcGUuaApAQCAtNjAsNiArNjAsMTIgQEAgdHlwZWRlZiBWZWN0b3I8
TGluZVNlZ21lbnQ+IFNlZ21lbnRMaXN0OwogCiBjbGFzcyBTaGFwZSB7CiBwdWJsaWM6CisgICAg
ZW51bSBTaGFwZVR5cGUgeworICAgICAgICBSb3VuZGVkUmVjdGFuZ2xlVHlwZSwKKyAgICAgICAg
UG9seWdvblR5cGUsCisgICAgICAgIFJhc3RlclR5cGUKKyAgICB9OworCiAgICAgc3RhdGljIFBh
c3NPd25QdHI8U2hhcGU+IGNyZWF0ZVNoYXBlKGNvbnN0IEJhc2ljU2hhcGUqLCBjb25zdCBMYXlv
dXRTaXplJiBsb2dpY2FsQm94U2l6ZSwgV3JpdGluZ01vZGUsIExlbmd0aCBtYXJnaW4sIExlbmd0
aCBwYWRkaW5nKTsKICAgICBzdGF0aWMgUGFzc093blB0cjxTaGFwZT4gY3JlYXRlU2hhcGUoY29u
c3QgU3R5bGVJbWFnZSosIGZsb2F0IHRocmVzaG9sZCwgY29uc3QgTGF5b3V0U2l6ZSYgbG9naWNh
bEJveFNpemUsIFdyaXRpbmdNb2RlLCBMZW5ndGggbWFyZ2luLCBMZW5ndGggcGFkZGluZyk7CiAK
QEAgLTcyLDYgKzc4LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRFeGNsdWRlZElu
dGVydmFscyhMYXlvdXRVbml0IGxvZ2ljYWxUb3AsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCwg
U2VnbWVudExpc3QmKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGZpcnN0SW5jbHVkZWRJ
bnRlcnZhbExvZ2ljYWxUb3AoTGF5b3V0VW5pdCBtaW5Mb2dpY2FsSW50ZXJ2YWxUb3AsIGNvbnN0
IExheW91dFNpemUmIG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUsIExheW91dFVuaXQmIHJlc3VsdCkg
Y29uc3QgPSAwOwogCisgICAgdmlydHVhbCBTaGFwZVR5cGUgdHlwZSgpIGNvbnN0ID0gMDsKKwog
cHJvdGVjdGVkOgogICAgIGZsb2F0IHNoYXBlTWFyZ2luKCkgY29uc3QgeyByZXR1cm4gbV9tYXJn
aW47IH0KICAgICBmbG9hdCBzaGFwZVBhZGRpbmcoKSBjb25zdCB7IHJldHVybiBtX3BhZGRpbmc7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZv
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5mby5oCmluZGV4IDk3
OWRhZjQyOWZiZmE0MjM4M2QwZGM3ZWE5ZjQ0YWVhMzgzYmMxMzEuLjZiMzRjOWM4ZmJlZGE2N2Mz
ZTNmY2Y4ZWMxNGU5Y2Q5MmI2ODhkODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zaGFwZXMvU2hhcGVJbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3No
YXBlcy9TaGFwZUluZm8uaApAQCAtMTA1LDExICsxMDUsNDAgQEAgcHVibGljOgogICAgIGNvbnN0
IFJlbmRlclR5cGUqIG93bmVyKCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJlcjsgfQogICAgIExh
eW91dFNpemUgc2hhcGVTaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaGFwZUxvZ2ljYWxTaXplOyB9
CiAKLXByb3RlY3RlZDoKLSAgICBTaGFwZUluZm8oY29uc3QgUmVuZGVyVHlwZSogcmVuZGVyZXIp
OiBtX3JlbmRlcmVyKHJlbmRlcmVyKSB7IH0KKyAgICBMYXlvdXRSZWN0IGNvbXB1dGVkU2hhcGVQ
aHlzaWNhbEJvdW5kaW5nQm94KCkgY29uc3QKKyAgICB7CisgICAgICAgIExheW91dFJlY3QgcGh5
c2ljYWxCb3VuZGluZ0JveCA9IGNvbXB1dGVkU2hhcGVMb2dpY2FsQm91bmRpbmdCb3goKTsKKyAg
ICAgICAgcGh5c2ljYWxCb3VuZGluZ0JveC5zZXRYKHBoeXNpY2FsQm91bmRpbmdCb3gueCgpICsg
bG9naWNhbExlZnRPZmZzZXQoKSk7CisgICAgICAgIHBoeXNpY2FsQm91bmRpbmdCb3guc2V0WShw
aHlzaWNhbEJvdW5kaW5nQm94LnkoKSArIGxvZ2ljYWxUb3BPZmZzZXQoKSk7CisgICAgICAgIGlm
IChtX3JlbmRlcmVyLT5zdHlsZSgpLmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCkpCisgICAg
ICAgICAgICBwaHlzaWNhbEJvdW5kaW5nQm94LnNldFkobV9yZW5kZXJlci0+bG9naWNhbEhlaWdo
dCgpIC0gcGh5c2ljYWxCb3VuZGluZ0JveC5tYXhZKCkpOworICAgICAgICBpZiAoIW1fcmVuZGVy
ZXItPnN0eWxlKCkuaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKKyAgICAgICAgICAgIHBoeXNp
Y2FsQm91bmRpbmdCb3ggPSBwaHlzaWNhbEJvdW5kaW5nQm94LnRyYW5zcG9zZWRSZWN0KCk7Cisg
ICAgICAgIHJldHVybiBwaHlzaWNhbEJvdW5kaW5nQm94OworICAgIH0KKworICAgIEZsb2F0UG9p
bnQgc2hhcGVUb1JlbmRlcmVyUG9pbnQoRmxvYXRQb2ludCBwb2ludCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIEZsb2F0UG9pbnQgcmVzdWx0ID0gRmxvYXRQb2ludChwb2ludC54KCkgKyBsb2dpY2Fs
TGVmdE9mZnNldCgpLCBwb2ludC55KCkgKyBsb2dpY2FsVG9wT2Zmc2V0KCkpOworICAgICAgICBp
ZiAobV9yZW5kZXJlci0+c3R5bGUoKS5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpKQorICAg
ICAgICAgICAgcmVzdWx0LnNldFkobV9yZW5kZXJlci0+bG9naWNhbEhlaWdodCgpIC0gcmVzdWx0
LnkoKSk7CisgICAgICAgIGlmICghbV9yZW5kZXJlci0+c3R5bGUoKS5pc0hvcml6b250YWxXcml0
aW5nTW9kZSgpKQorICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnRyYW5zcG9zZWRQb2ludCgp
OworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIEZsb2F0U2l6ZSBzaGFwZVRv
UmVuZGVyZXJTaXplKEZsb2F0U2l6ZSBzaXplKSBjb25zdAorICAgIHsKKyAgICAgICAgaWYgKCFt
X3JlbmRlcmVyLT5zdHlsZSgpLmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCisgICAgICAgICAg
ICByZXR1cm4gc2l6ZS50cmFuc3Bvc2VkU2l6ZSgpOworICAgICAgICByZXR1cm4gc2l6ZTsKKyAg
ICB9CiAKICAgICBjb25zdCBTaGFwZSogY29tcHV0ZWRTaGFwZSgpIGNvbnN0OwogCitwcm90ZWN0
ZWQ6CisgICAgZXhwbGljaXQgU2hhcGVJbmZvKGNvbnN0IFJlbmRlclR5cGUqIHJlbmRlcmVyKTog
bV9yZW5kZXJlcihyZW5kZXJlcikgeyB9CisKICAgICB2aXJ0dWFsIExheW91dFJlY3QgY29tcHV0
ZWRTaGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFNoYXBl
VmFsdWUqIHNoYXBlVmFsdWUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGdldEludGVy
dmFscyhMYXlvdXRVbml0LCBMYXlvdXRVbml0LCBTZWdtZW50TGlzdCYpIGNvbnN0ID0gMDsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA0MGIwYTYwZDc0NWUyNzMxNjgyZGUyMzYyYWIwMTRkYzRhN2M2MjYxLi40NGMyZjMyODlk
NmU2YzExZjE0NDE2ODI5OTY3YTIzMjljY2NmMmNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIw
MTMtMTEtMTEgIEJlYXIgVHJhdmlzICA8YmV0cmF2aXNAYWRvYmUuY29tPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IFtDU1MgU2hhcGVzXSBIaWdobGlnaHQgc2hhcGUtb3V0c2lkZSB3aGVuIGl0
cyBlbGVtZW50IGlzIHNlbGVjdGVkIGluIHRoZSBXZWIgSW5zcGVjdG9yCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQwNzEKKworICAgICAgICBSZXZp
ZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCisKKyAgICAgICAgVGVzdCB0aGF0IHRoZSBpbmZvcm1h
dGlvbiBwYXNzZWQgdG8gdGhlIEluc3BlY3RvciBvdmVybGF5IHByb3Blcmx5IGNvcnJlc3BvbmRz
IHRvIHRoZQorICAgICAgICB1bmRlcmx5aW5nIHNoYXBlLiBSZXRyaWV2aW5nIHRoZSBzaGFwZSBo
aWdobGlnaHQgaW5mb3JtYXRpb24gaW52b2x2ZXMgYSBzZXJpZXMgb2YKKyAgICAgICAgc3RlcHMg
YW5kIGhhcyBiZWVuIGFic3RyYWN0ZWQgaW50byBzaGFwZS1pbmZvLWhlbHBlci5qcywgd2hpY2gg
c3VwcGxpZXMKKyAgICAgICAgSW5zcGVjdG9yLnNoYXBlT3V0c2lkZUluZm8gaW5zaWRlIGFuIElu
c3BlY3RvciB0ZXN0LCBhbmQgdGhlIFNoYXBlSW5mb0hlbHBlci5ydW5TaGFwZXNUZXN0CisgICAg
ICAgIG1ldGhvZCB0byBiZWdpbiBhIHRlc3QuCisKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9j
b2wvbW9kZWwvaGlnaGxpZ2h0LXNoYXBlLW91dHNpZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvbW9kZWwvaGlnaGxpZ2h0LXNoYXBlLW91dHNpZGUu
aHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL3Jlc291cmNlcy9zaGFw
ZS1pbmZvLWhlbHBlci5qczogQWRkZWQuCisgICAgICAgICh3aW5kb3cuU2hhcGVJbmZvSGVscGVy
KTogRXhwb3NlcyBTaGFwZUluZm9IZWxwZXIucnVuU2hhcGVzVGVzdC4KKwogMjAxMy0xMS0xMSAg
U2FtdWVsIFdoaXRlICA8c2FtdWVsX3doaXRlQGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogc3Vw
cG9ydCBoZWxwVGV4dCgpIGluIER1bXBSZW5kZXJUcmVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvbW9kZWwvaGlnaGxpZ2h0LXNoYXBlLW91dHNpZGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL21vZGVsL2hpZ2hsaWdodC1z
aGFwZS1vdXRzaWRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YTgxZDg5ODE1ZDBhNGY4OGM5
NzViZjMyYTM2ZDUwNGEyOTUyMmUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL21vZGVsL2hpZ2hsaWdodC1zaGFwZS1vdXRzaWRlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDkgQEAKK1BBU1M6IEFjdHVhbCBbTSA1MCA1MCBMIDE1MCA1MCBMIDE1MCAx
MDAgTCA1MCAxMDAgTCA1MCA1MCBaXSBFeHBlY3RlZCBbTSA1MCA1MCBMIDE1MCA1MCBMIDE1MCAx
MDAgTCA1MCAxMDAgTCA1MCA1MCBaXQorUEFTUzogQWN0dWFsIFtNIDUwIDUwIEwgMTAwIDUwIEwg
MTAwIDEwMCBMIDUwIDEwMCBaXSBFeHBlY3RlZCBbTSA1MCA1MCBMIDEwMCA1MCBMIDEwMCAxMDAg
TCA1MCAxMDAgWl0KK1BBU1M6IEFjdHVhbCBbTSA3NSA3NSBMIDE3NSA3NSBMIDE3NSAxMjUgTCA3
NSAxMjUgTCA3NSA3NSBaXSBFeHBlY3RlZCBbTSA3NSA3NSBMIDE3NSA3NSBMIDE3NSAxMjUgTCA3
NSAxMjUgTCA3NSA3NSBaXQorUEFTUzogQWN0dWFsIFtNIDUwIDUwIEwgMTUwIDUwIEwgMTUwIDEw
MCBMIDUwIDEwMCBMIDUwIDUwIFpdIEV4cGVjdGVkIFtNIDUwIDUwIEwgMTUwIDUwIEwgMTUwIDEw
MCBMIDUwIDEwMCBMIDUwIDUwIFpdCitQQVNTOiBBY3R1YWwgW00gNTAgNTAgTCAxNTAgNTAgTCAx
NTAgMTAwIEwgNTAgMTAwIEwgNTAgNTAgWl0gRXhwZWN0ZWQgW00gNTAgNTAgTCAxNTAgNTAgTCAx
NTAgMTAwIEwgNTAgMTAwIEwgNTAgNTAgWl0KK1BBU1M6IEFjdHVhbCBbTSA1MCA1MCBMIDE1MCA1
MCBMIDE1MCAxMDAgTCA1MCAxMDAgTCA1MCA1MCBaXSBFeHBlY3RlZCBbTSA1MCA1MCBMIDE1MCA1
MCBMIDE1MCAxMDAgTCA1MCAxMDAgTCA1MCA1MCBaXQorUEFTUzogQWN0dWFsIFtNIDc1IDc1IEwg
MTc1IDc1IEwgMTc1IDEyNSBMIDc1IDEyNSBMIDc1IDc1IFpdIEV4cGVjdGVkIFtNIDc1IDc1IEwg
MTc1IDc1IEwgMTc1IDEyNSBMIDc1IDEyNSBMIDc1IDc1IFpdCitQQVNTOiBBY3R1YWwgW00gNTAg
NTAgTCAxNTAgNTAgTCAxNTAgMTAwIEwgNTAgMTAwIEwgNTAgNTAgWl0gRXhwZWN0ZWQgW00gNTAg
NTAgTCAxNTAgNTAgTCAxNTAgMTAwIEwgNTAgMTAwIEwgNTAgNTAgWl0KKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL21vZGVsL2hpZ2hsaWdodC1zaGFwZS1vdXRz
aWRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbW9kZWwvaGlnaGxpZ2h0
LXNoYXBlLW91dHNpZGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMTUzNTYyYzIwN2Q3ZTEzNDg1ODgyYzk2
YzNmNThiZjM0ZjJhM2JhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
LXByb3RvY29sL21vZGVsL2hpZ2hsaWdodC1zaGFwZS1vdXRzaWRlLmh0bWwKQEAgLTAsMCArMSwx
MDMgQEAKKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Citib2R5IHsKKyAgICBtYXJnaW46IDA7Cit9
Cisuc2hhcGUgeworICAgIGZsb2F0OiBsZWZ0OworICAgIHdpZHRoOiAyMDBweDsKKyAgICBoZWln
aHQ6IDIwMHB4OworICAgIG1hcmdpbi1yaWdodDogLTIwMHB4OworfQorLnBhZGRlZCB7CisgICAg
d2lkdGg6IDEwMHB4OworICAgIGhlaWdodDogMTAwcHg7CisgICAgcGFkZGluZzogMjVweCA3NXB4
IDc1cHggMjVweDsKK30KKy5ib3JkZXItYm94IHsKKyAgICBib3gtc2l6aW5nOiBib3JkZXItYm94
OworfQorLnZlcnRpY2FsLWxyIHsKKyAgICAtd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwt
bHI7Cit9CisudmVydGljYWwtcmwgeworICAgIC13ZWJraXQtd3JpdGluZy1tb2RlOiB2ZXJ0aWNh
bC1ybDsKK30KKy5yZWN0YW5nbGUgeworICAgIC13ZWJraXQtc2hhcGUtb3V0c2lkZTogcmVjdGFu
Z2xlKDUwcHgsIDUwcHgsIDEwMHB4LCA1MHB4KTsKK30KKy5wb2x5Z29uIHsKKyAgICAtd2Via2l0
LXNoYXBlLW91dHNpZGU6IHBvbHlnb24oNTBweCA1MHB4LCAxMDBweCA1MHB4LCAxMDBweCAxMDBw
eCwgNTBweCAxMDBweCk7Cit9Cis8L3N0eWxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcmVzb3VyY2VzL3By
b3RvY29sLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0iLi4vcmVzb3VyY2VzL3NoYXBlLWluZm8taGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQ+CitmdW5jdGlvbiBzaGFwZVRlc3RzKCkgeworICAgIHZhciB0ZXN0cyA9IFsKKyAgICB7Cisg
ICAgICAgICdzZWxlY3RvcicgOiAnLnJlY3RhbmdsZScsCisgICAgICAgICdwYXRoJyA6IFsnTScs
IDUwLCA1MCwgJ0wnLCAxNTAsIDUwLCAnTCcsIDE1MCwgMTAwLCAnTCcsIDUwLCAxMDAsICdMJywg
NTAsIDUwLCAnWiddCisgICAgfSwKKyAgICB7CisgICAgICAgICdzZWxlY3RvcicgOiAnLnBvbHln
b24nLAorICAgICAgICAncGF0aCcgOiBbJ00nLCA1MCwgNTAsICdMJywgMTAwLCA1MCwgJ0wnLCAx
MDAsIDEwMCwgJ0wnLCA1MCwgMTAwLCAnWiddCisgICAgfSwKKyAgICB7CisgICAgICAgICdzZWxl
Y3RvcicgOiAnLnJlY3RhbmdsZS5wYWRkZWQnLAorICAgICAgICAncGF0aCcgOiBbJ00nLCA3NSwg
NzUsICdMJywgMTc1LCA3NSwgJ0wnLCAxNzUsIDEyNSwgJ0wnLCA3NSwgMTI1LCAnTCcsIDc1LCA3
NSwgJ1onXQorICAgIH0sCisgICAgeworICAgICAgICAnc2VsZWN0b3InIDogJy5yZWN0YW5nbGUu
cGFkZGVkLmJvcmRlci1ib3gnLAorICAgICAgICAncGF0aCcgOiBbJ00nLCA1MCwgNTAsICdMJywg
MTUwLCA1MCwgJ0wnLCAxNTAsIDEwMCwgJ0wnLCA1MCwgMTAwLCAnTCcsIDUwLCA1MCwgJ1onXQor
ICAgIH0sCisgICAgeworICAgICAgICAnc2VsZWN0b3InIDogJy5yZWN0YW5nbGUudmVydGljYWwt
bHInLAorICAgICAgICAncGF0aCcgOiBbJ00nLCA1MCwgNTAsICdMJywgMTUwLCA1MCwgJ0wnLCAx
NTAsIDEwMCwgJ0wnLCA1MCwgMTAwLCAnTCcsIDUwLCA1MCwgJ1onXQorICAgIH0sCisgICAgewor
ICAgICAgICAnc2VsZWN0b3InIDogJy5yZWN0YW5nbGUudmVydGljYWwtcmwnLAorICAgICAgICAn
cGF0aCcgOiBbJ00nLCA1MCwgNTAsICdMJywgMTUwLCA1MCwgJ0wnLCAxNTAsIDEwMCwgJ0wnLCA1
MCwgMTAwLCAnTCcsIDUwLCA1MCwgJ1onXQorICAgIH0sCisgICAgeworICAgICAgICAnc2VsZWN0
b3InIDogJy5yZWN0YW5nbGUucGFkZGVkLnZlcnRpY2FsLXJsJywKKyAgICAgICAgJ3BhdGgnIDog
WydNJywgNzUsIDc1LCAnTCcsIDE3NSwgNzUsICdMJywgMTc1LCAxMjUsICdMJywgNzUsIDEyNSwg
J0wnLCA3NSwgNzUsICdaJ10KKyAgICB9LAorICAgIHsKKyAgICAgICAgJ3NlbGVjdG9yJyA6ICcu
cmVjdGFuZ2xlLnBhZGRlZC52ZXJ0aWNhbC1ybC5ib3JkZXItYm94JywKKyAgICAgICAgJ3BhdGgn
IDogWydNJywgNTAsIDUwLCAnTCcsIDE1MCwgNTAsICdMJywgMTUwLCAxMDAsICdMJywgNTAsIDEw
MCwgJ0wnLCA1MCwgNTAsICdaJ10KKyAgICB9CisgICAgXTsKKworICAgIGZ1bmN0aW9uIGRvVGVz
dHModGVzdHMpIHsKKyAgICAgICAgaWYgKCF0ZXN0cy5sZW5ndGgpIHsKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKyAgICAgICAgdmFyIHRlc3QgPSB0ZXN0c1swXTsKKyAgICAgICAgdGVzdHMgPSB0ZXN0cy5z
cGxpY2UoMSk7CisgICAgICAgIEluc3BlY3RvclRlc3Quc2hhcGVPdXRzaWRlSW5mbyh0ZXN0LnNl
bGVjdG9yLCBmdW5jdGlvbihzaGFwZU91dHNpZGUpIHsKKyAgICAgICAgICAgIHZhciBhY3R1YWwg
PSBzaGFwZU91dHNpZGUucGF0aC5qb2luKCcgJyk7CisgICAgICAgICAgICB2YXIgZXhwZWN0ZWQg
PSB0ZXN0LnBhdGguam9pbignICcpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQo
YWN0dWFsID09PSBleHBlY3RlZCwgIkFjdHVhbCBbIiArIGFjdHVhbCArICJdIEV4cGVjdGVkIFsi
ICsgZXhwZWN0ZWQgKyAiXSIpOworICAgICAgICAgICAgZG9UZXN0cyh0ZXN0cyk7CisgICAgICAg
IH0pOworICAgIH0KKworICAgIGRvVGVzdHModGVzdHMpOworfQord2luZG93Lm9ubG9hZCA9IGZ1
bmN0aW9uKCkgeyBTaGFwZUluZm9IZWxwZXIucnVuU2hhcGVUZXN0KHNoYXBlVGVzdHMpOyB9Cis8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgY2xhc3M9J3NoYXBlIHJlY3Rhbmds
ZSc+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0nc2hhcGUgcG9seWdvbic+PC9kaXY+CisgICAgPGRp
diBjbGFzcz0nc2hhcGUgcGFkZGVkIHJlY3RhbmdsZSc+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0n
c2hhcGUgcGFkZGVkIHJlY3RhbmdsZSBib3JkZXItYm94Jz48L2Rpdj4KKyAgICA8ZGl2IGNsYXNz
PSdzaGFwZSByZWN0YW5nbGUgdmVydGljYWwtbHInPjwvZGl2PgorICAgIDxkaXYgY2xhc3M9J3No
YXBlIHJlY3RhbmdsZSB2ZXJ0aWNhbC1ybCc+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0nc2hhcGUg
cGFkZGVkIHJlY3RhbmdsZSB2ZXJ0aWNhbC1ybCc+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0nc2hh
cGUgcGFkZGVkIHJlY3RhbmdsZSB2ZXJ0aWNhbC1ybCBib3JkZXItYm94Jz48L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9y
ZXNvdXJjZXMvc2hhcGUtaW5mby1oZWxwZXIuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvcmVzb3VyY2VzL3NoYXBlLWluZm8taGVscGVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiZTFkNDg2
MzczODk1YTFiYjlkM2NiZGM1OGIwNGE4YmYzMGJjODgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcmVzb3VyY2VzL3NoYXBlLWluZm8taGVscGVyLmpz
CkBAIC0wLDAgKzEsNjQgQEAKK3dpbmRvdy5TaGFwZUluZm9IZWxwZXIgPSAoZnVuY3Rpb24oKSB7
CisgICAgZnVuY3Rpb24gc2hhcGVPdXRzaWRlSW5mbyhzZWxlY3RvciwgY2FsbGJhY2spIHsKKyAg
ICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRE9NLmdldERvY3VtZW50Iiwge30sIG9u
R290RG9jdW1lbnQpOworCisgICAgICAgIGZ1bmN0aW9uIG9uR290RG9jdW1lbnQobXNnKSB7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IobXNnKTsKKyAgICAgICAgICAg
IHZhciBub2RlID0gbXNnLnJlc3VsdC5yb290OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5z
ZW5kQ29tbWFuZCgiRE9NLnF1ZXJ5U2VsZWN0b3IiLAorICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICJub2RlSWQiOiBub2RlLm5vZGVJZCwKKyAgICAgICAgICAgICAgICAic2VsZWN0b3Ii
OiBzZWxlY3RvcgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIG9uUXVlcnlTZWxlY3Rvcik7
CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBvblF1ZXJ5U2VsZWN0b3IobXNnKSB7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IobXNnKTsKKyAgICAgICAgICAg
IHZhciBub2RlID0gbXNnLnJlc3VsdDsKKyAgICAgICAgICAgIHZhciBoaWdobGlnaHRDb25maWcg
PSB7CisgICAgICAgICAgICAgICAgc2hvd0luZm86IHRydWUsCisgICAgICAgICAgICAgICAgY29u
dGVudENvbG9yOiB7cjogMjU1LCBnOiAyNTUsIGI6IDI1NX0sCisgICAgICAgICAgICAgICAgcGFk
ZGluZ0NvbG9yOiB7cjogMjU1LCBnOiAyNTUsIGI6IDI1NX0sCisgICAgICAgICAgICAgICAgYm9y
ZGVyQ29sb3I6IHtyOiAyNTUsIGc6IDI1NSwgYjogMjU1fSwKKyAgICAgICAgICAgICAgICBtYXJn
aW5Db2xvcjoge3I6IDI1NSwgZzogMjU1LCBiOiAyNTV9LAorICAgICAgICAgICAgfTsKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRPTS5oaWdobGlnaHROb2RlIiwKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibm9kZUlkIjogbm9kZS5ub2RlSWQsCisgICAg
ICAgICAgICAgICAgImhpZ2hsaWdodENvbmZpZyI6IGhpZ2hsaWdodENvbmZpZworICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgIG9uSGlnaGxpZ2h0Tm9kZSk7CisgICAgICAgIH0KKworICAgICAg
ICBmdW5jdGlvbiBvbkhpZ2hsaWdodE5vZGUobXNnKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmNoZWNrRm9yRXJyb3IobXNnKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENv
bW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICJleHByZXNzaW9uIjogIndpbmRvdy5pbnRlcm5hbHMuaW5zcGVjdG9ySGlnaGxpZ2h0T2JqZWN0
KCkiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgb25SdW50aW1lRXZhbHVhdGUpOworICAg
ICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gb25SdW50aW1lRXZhbHVhdGUobXNnKSB7CisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IobXNnKTsKKyAgICAgICAgICAgIHZh
ciB2YWx1ZSA9IEpTT04ucGFyc2UobXNnLnJlc3VsdC5yZXN1bHQudmFsdWUpOworICAgICAgICAg
ICAgY2FsbGJhY2sodmFsdWUuZWxlbWVudEluZm8uc2hhcGVPdXRzaWRlSW5mbyk7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5TaGFwZVRlc3QodGVzdGZuKSB7CisgICAgICAg
IHZhciBib2R5ID0gWworICAgICAgICAgICAgIkluc3BlY3RvclRlc3Quc2hhcGVPdXRzaWRlSW5m
byA9ICIgKyBzaGFwZU91dHNpZGVJbmZvLnRvU3RyaW5nKCksCisgICAgICAgICAgICAiKCIgKyB0
ZXN0Zm4udG9TdHJpbmcoKSArICIpKCkiCisgICAgICAgIF07CisgICAgICAgIHdpbmRvdy50ZXN0
ID0gbmV3IEZ1bmN0aW9uKAorICAgICAgICAgICAgYm9keS5qb2luKCc7XG4nKQorICAgICAgICAp
OworICAgICAgICBydW5UZXN0KCk7CisgICAgfQorCisgICAgcmV0dXJuIHsKKyAgICAgICAgJ3J1
blNoYXBlVGVzdCcgOiBydW5TaGFwZVRlc3QKKyAgICB9Cit9KSgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>