<?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>117573</bug_id>
          
          <creation_ts>2013-06-12 17:53:53 -0700</creation_ts>
          <short_desc>[CSS Shapes] Shape&apos;s content gets extra left offset when left-border is positive on the content box</short_desc>
          <delta_ts>2013-09-03 15:13:54 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>89256</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zoltan Horvath">zoltan</reporter>
          <assigned_to name="Bear Travis">betravis</assigned_to>
          <cc>betravis</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>WebkitBugTracker</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>899887</commentid>
    <comment_count>0</comment_count>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2013-06-12 17:53:53 -0700</bug_when>
    <thetext>I will attach a test file later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>901143</commentid>
    <comment_count>1</comment_count>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-06-17 12:39:16 -0700</bug_when>
    <thetext>I think this may be related to bug 110475</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907736</commentid>
    <comment_count>2</comment_count>
      <attachid>206482</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-07-11 12:03:24 -0700</bug_when>
    <thetext>Created attachment 206482
Initial patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908000</commentid>
    <comment_count>3</comment_count>
      <attachid>206482</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-07-12 10:46:24 -0700</bug_when>
    <thetext>Comment on attachment 206482
Initial patch

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

r-

&gt; Source/WebCore/rendering/RenderBlock.cpp:1439
&gt; +LayoutSize RenderBlock::offsetFromShapeAncestorContainer(const RenderBlock* container) const

Please rename this to logicalOffsetFromShapeAncestorContainer to reflect that you&apos;re putting the y into the width() variable in vertical writing modes.

&gt; Source/WebCore/rendering/RenderBlock.cpp:1442
&gt; +    LayoutRect blockRect(0, 0, currentBlock-&gt;width(), currentBlock-&gt;height());

This is borderBoxRect(), so you can initialize to that, e.g., LayoutRect blockRect(currentBlock-&gt;borderBoxRect());

&gt; Source/WebCore/rendering/RenderBlock.cpp:1450
&gt; +        LayoutPoint currentBlockLocation = currentBlock-&gt;location();
&gt; +
&gt; +        blockRect.moveBy(currentBlockLocation);

This doesn&apos;t work when you cross writing mode boundaries. Remember that block coordinates can be flipped. When you cross into writing modes with different flips, you have to adjust accordingly. You&apos;ll want to test with mixed vertical-rl and vertical-lr and/or horizontal-tb/horizontal-bt to see what I mean.

&gt; Source/WebCore/rendering/RenderBlock.cpp:2741
&gt; +    LayoutSize childOffset = child-&gt;location() - oldRect.location();
&gt; +    if (childOffset.width() &amp;&amp; childRenderBlock &amp;&amp; layoutShapeInsideInfo() &amp;&amp; !childRenderBlock-&gt;shapeInsideInfo()) {
&gt; +        childRenderBlock-&gt;setNormalChildNeedsLayout(true);
&gt; +        childRenderBlock-&gt;markShapeInsideDescendantsForLayout();
&gt; +        childRenderBlock-&gt;layoutIfNeeded();
&gt; +    }

Put this in a helper function. Also, why are you only checking width? Is the intent to look for a change in logical left position? If so, you need to check height() if vertical.

&gt; Source/WebCore/rendering/RenderBlock.h:591
&gt; +    LayoutSize offsetFromShapeAncestorContainer(const RenderBlock* container) const;

logicalOffset...

&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:1688
&gt; +    shapeInsideInfo-&gt;computeSegmentsForLine(lineLeft, lineTop, lineHeight);

Use a LayoutSize rather than two arguments here.

&gt; Source/WebCore/rendering/shapes/ShapeInsideInfo.h:71
&gt; +    bool computeSegmentsForLine(LayoutUnit lineLeft, LayoutUnit lineTop, LayoutUnit lineHeight)

Why not combine lineLeft/lineTop into a LayoutSize offset?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>911108</commentid>
    <comment_count>4</comment_count>
      <attachid>207341</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-07-23 11:50:34 -0700</bug_when>
    <thetext>Created attachment 207341
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>911126</commentid>
    <comment_count>5</comment_count>
      <attachid>207344</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-07-23 13:24:09 -0700</bug_when>
    <thetext>Created attachment 207344
Updating changelogs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>917595</commentid>
    <comment_count>6</comment_count>
      <attachid>208828</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-08-15 11:45:57 -0700</bug_when>
    <thetext>Created attachment 208828
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>920226</commentid>
    <comment_count>7</comment_count>
      <attachid>208828</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-08-23 08:08:32 -0700</bug_when>
    <thetext>Comment on attachment 208828
Updated patch

Attachment 208828 did not pass win-ews (win):
Output: http://webkit-queues.appspot.com/results/1544282</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923105</commentid>
    <comment_count>8</comment_count>
      <attachid>210139</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-08-30 11:31:41 -0700</bug_when>
    <thetext>Created attachment 210139
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>924186</commentid>
    <comment_count>9</comment_count>
      <attachid>210139</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-09-03 14:47:06 -0700</bug_when>
    <thetext>Comment on attachment 210139
Updated patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>924195</commentid>
    <comment_count>10</comment_count>
      <attachid>210139</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-03 15:13:51 -0700</bug_when>
    <thetext>Comment on attachment 210139
Updated patch

Clearing flags on attachment: 210139

Committed r155002: &lt;http://trac.webkit.org/changeset/155002&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>924196</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-03 15:13:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206482</attachid>
            <date>2013-07-11 12:03:24 -0700</date>
            <delta_ts>2013-07-23 11:50:32 -0700</delta_ts>
            <desc>Initial patch</desc>
            <filename>bug-117573-20130711120108.patch</filename>
            <type>text/plain</type>
            <size>17013</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyNTcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjllYTg5NjdhNDQ0Zjll
Yzk1MzY2MmViOWM3ZDVlOWI2ZDdmYjIzZi4uOWNkMzQxYjM2NzA3NDBlZDFjMTk2NTA3ODFkNGYy
Y2MyMzczMzdkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEzLTA3LTExICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIFNoYXBlc10gU2hh
cGUncyBjb250ZW50IGdldHMgZXh0cmEgbGVmdCBvZmZzZXQgd2hlbiBsZWZ0LWJvcmRlciBpcyBw
b3NpdGl2ZSBvbiB0aGUgY29udGVudCBib3gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExNzU3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE5lc3RlZCBibG9ja3MgbmVlZCB0byB0YWtlIGludG8gYWNjb3Vu
dCB0aGVpciBvZmZzZXQgZnJvbSB0aGUgc2hhcGUtaW5zaWRlIGNvbnRhaW5lci4KKyAgICAgICAg
VGhlIG5ldyBjb2RlIGNhbGN1bGF0ZXMgdGhlIG9mZnNldCBmcm9tIHRoZSBzaGFwZS1pbnNpZGUg
Y29udGFpbmVyLCB0aGVuIGFwcGxpZXMgdGhlCisgICAgICAgIG9mZnNldCB0byB0aGUgY29tcHV0
ZWQgc2VnbWVudHMuIFRoZSBsaW5lIG11c3QgYmUgbW92ZWQgZG93biBieSB0aGUgb2Zmc2V0J3Mg
aGVpZ2h0LAorICAgICAgICBhbmQgZWFjaCBzZWdtZW50IG11c3QgYmUgbW92ZWQgbGVmdCBieSB0
aGUgb2Zmc2V0J3Mgd2lkdGguCisKKyAgICAgICAgVGVzdDogZmFzdC9leGNsdXNpb25zL3NoYXBl
LWluc2lkZS9zaGFwZS1pbnNpZGUtb2Zmc2V0LWJsb2NrLWNoaWxkcmVuLmh0bWwKKworICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
bG9jazo6b2Zmc2V0RnJvbVNoYXBlQW5jZXN0b3JDb250YWluZXIpOiBDYWxjdWxhdGUgdGhlIGxv
Z2ljYWwgb2Zmc2V0CisgICAgICAgIGZyb20gYSBzaGFwZSBpbnNpZGUgYW5jZXN0b3IgY29udGFp
bmVyLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dEJsb2NrQ2hpbGQpOiBJ
ZiB0aGUgY2hpbGQgYmxvY2sgbW92ZWQgaG9yaXpvbnRhbGx5CisgICAgICAgIGR1cmluZyBsYXlv
dXQgYW5kIGEgc2hhcGUgaW5zaWRlIGlzIGFwcGxpZWQgZnJvbSBhbiBhbmNlc3RvciwgdGhlIGlu
bGluZSBjb250ZW50CisgICAgICAgIG11c3QgYmUgbGFpZCBvdXQgYWdhaW4uCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmg6IEFkZGluZyBvZmZzZXRGcm9tU2hhcGVBbmNlc3RvckNv
bnRhaW5lciBtZXRob2QuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6dXBkYXRlU2hhcGVBbmRTZWdt
ZW50c0ZvckN1cnJlbnRMaW5lKTogVXNlIGxheW91dCBvZmZzZXQsCisgICAgICAgIHJhdGhlciB0
aGFuIGp1c3QgdmVydGljYWwgb2Zmc2V0LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6
OnVwZGF0ZVNoYXBlQW5kU2VnbWVudHNGb3JDdXJyZW50TGluZUluRmxvd1RocmVhZCk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dFJ1bnNBbmRGbG9hdHNJblJh
bmdlKTogRGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8u
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXBlSW5zaWRlSW5mbzo6Y29tcHV0ZVNlZ21lbnRzRm9y
TGluZSk6IFNoaWZ0IHNlZ21lbnRzIGxvZ2ljYWxseSBsZWZ0CisgICAgICAgIHdoZW4gdGhlcmUg
aXMgYSBob3Jpem9udGFsIGxpbmUgb2Zmc2V0LgorCiAyMDEzLTA3LTExICBBbmRyZWkgQnVjdXIg
IDxhYnVjdXJAYWRvYmUuY29tPgogCiAgICAgICAgIFtDU1MgUmVnaW9uc10gSW4gYSByZWdpb24g
Y2hhaW4gd2l0aCBhdXRvLWhlaWdodCByZWdpb25zLCBsaW5lcyBnZXQgdGhlaXIgbGVuZ3RoIGJh
c2VkIG9ubHkgb24gdGhlIGZpcnN0IHJlZ2lvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5jcHAKaW5kZXggNzQ1NmM1ZjViZTg0OGE0MjY3ZTVhOWFiM2M0NGFlYzVjZmVjM2Nh
Mi4uMDRiOWUxYWJkZjllZjAwYTFkMWEwZjY0ZGY4MmNiNDc5MWYzOWQ3NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0xNDM2LDYgKzE0MzYsMjYgQEAgdm9p
ZCBSZW5kZXJCbG9jazo6bGF5b3V0KCkKIH0KIAogI2lmIEVOQUJMRShDU1NfU0hBUEVTKQorTGF5
b3V0U2l6ZSBSZW5kZXJCbG9jazo6b2Zmc2V0RnJvbVNoYXBlQW5jZXN0b3JDb250YWluZXIoY29u
c3QgUmVuZGVyQmxvY2sqIGNvbnRhaW5lcikgY29uc3QKK3sKKyAgICBjb25zdCBSZW5kZXJCbG9j
ayogY3VycmVudEJsb2NrID0gdGhpczsKKyAgICBMYXlvdXRSZWN0IGJsb2NrUmVjdCgwLCAwLCBj
dXJyZW50QmxvY2stPndpZHRoKCksIGN1cnJlbnRCbG9jay0+aGVpZ2h0KCkpOworICAgIHdoaWxl
IChjdXJyZW50QmxvY2sgJiYgIWN1cnJlbnRCbG9jay0+aXNSZW5kZXJGbG93VGhyZWFkKCkgJiYg
Y3VycmVudEJsb2NrICE9IGNvbnRhaW5lcikgeworICAgICAgICBSZW5kZXJCbG9jayogY29udGFp
bmVyQmxvY2sgPSBjdXJyZW50QmxvY2stPmNvbnRhaW5pbmdCbG9jaygpOworICAgICAgICBBU1NF
UlQoY29udGFpbmVyQmxvY2spOworICAgICAgICBpZiAoIWNvbnRhaW5lckJsb2NrKQorICAgICAg
ICAgICAgcmV0dXJuIExheW91dFNpemUoKTsKKyAgICAgICAgTGF5b3V0UG9pbnQgY3VycmVudEJs
b2NrTG9jYXRpb24gPSBjdXJyZW50QmxvY2stPmxvY2F0aW9uKCk7CisKKyAgICAgICAgYmxvY2tS
ZWN0Lm1vdmVCeShjdXJyZW50QmxvY2tMb2NhdGlvbik7CisgICAgICAgIGN1cnJlbnRCbG9jayA9
IGNvbnRhaW5lckJsb2NrOworICAgIH0KKworICAgIGlmIChpc0hvcml6b250YWxXcml0aW5nTW9k
ZSgpKQorICAgICAgICByZXR1cm4gTGF5b3V0U2l6ZShibG9ja1JlY3QueCgpLCBibG9ja1JlY3Qu
eSgpKTsKKyAgICByZXR1cm4gTGF5b3V0U2l6ZShibG9ja1JlY3QueSgpLCBibG9ja1JlY3QueCgp
KTsKK30KKwogdm9pZCBSZW5kZXJCbG9jazo6dXBkYXRlU2hhcGVJbnNpZGVJbmZvQWZ0ZXJTdHls
ZUNoYW5nZShjb25zdCBTaGFwZVZhbHVlKiBzaGFwZUluc2lkZSwgY29uc3QgU2hhcGVWYWx1ZSog
b2xkU2hhcGVJbnNpZGUpCiB7CiAgICAgLy8gRklYTUU6IEEgZnV0dXJlIG9wdGltaXphdGlvbiB3
b3VsZCBkbyBhIGRlZXAgY29tcGFyaXNvbiBmb3IgZXF1YWxpdHkuCkBAIC0yNzEzLDYgKzI3MzMs
MTIgQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0QmxvY2tDaGlsZChSZW5kZXJCb3gqIGNoaWxk
LCBNYXJnaW5JbmZvJiBtYXJnaW5JbmZvLCBMYXkKICAgICAvLyBOb3cgcGxhY2UgdGhlIGNoaWxk
IGluIHRoZSBjb3JyZWN0IGxlZnQgcG9zaXRpb24KICAgICBkZXRlcm1pbmVMb2dpY2FsTGVmdFBv
c2l0aW9uRm9yQ2hpbGQoY2hpbGQsIEFwcGx5TGF5b3V0RGVsdGEpOwogCisgICAgTGF5b3V0U2l6
ZSBjaGlsZE9mZnNldCA9IGNoaWxkLT5sb2NhdGlvbigpIC0gb2xkUmVjdC5sb2NhdGlvbigpOwor
ICAgIGlmIChjaGlsZE9mZnNldC53aWR0aCgpICYmIGNoaWxkUmVuZGVyQmxvY2sgJiYgbGF5b3V0
U2hhcGVJbnNpZGVJbmZvKCkgJiYgIWNoaWxkUmVuZGVyQmxvY2stPnNoYXBlSW5zaWRlSW5mbygp
KSB7CisgICAgICAgIGNoaWxkUmVuZGVyQmxvY2stPnNldE5vcm1hbENoaWxkTmVlZHNMYXlvdXQo
dHJ1ZSk7CisgICAgICAgIGNoaWxkUmVuZGVyQmxvY2stPm1hcmtTaGFwZUluc2lkZURlc2NlbmRh
bnRzRm9yTGF5b3V0KCk7CisgICAgICAgIGNoaWxkUmVuZGVyQmxvY2stPmxheW91dElmTmVlZGVk
KCk7CisgICAgfQogICAgIC8vIFVwZGF0ZSBvdXIgaGVpZ2h0IG5vdyB0aGF0IHRoZSBjaGlsZCBo
YXMgYmVlbiBwbGFjZWQgaW4gdGhlIGNvcnJlY3QgcG9zaXRpb24uCiAgICAgc2V0TG9naWNhbEhl
aWdodChsb2dpY2FsSGVpZ2h0KCkgKyBsb2dpY2FsSGVpZ2h0Rm9yQ2hpbGQoY2hpbGQpKTsKICAg
ICBpZiAobXVzdFNlcGFyYXRlTWFyZ2luQWZ0ZXJGb3JDaGlsZChjaGlsZCkpIHsKQEAgLTI3MjQs
NyArMjc1MCw2IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dEJsb2NrQ2hpbGQoUmVuZGVyQm94
KiBjaGlsZCwgTWFyZ2luSW5mbyYgbWFyZ2luSW5mbywgTGF5CiAgICAgaWYgKGNoaWxkUmVuZGVy
QmxvY2sgJiYgY2hpbGRSZW5kZXJCbG9jay0+Y29udGFpbnNGbG9hdHMoKSkKICAgICAgICAgbWF4
RmxvYXRMb2dpY2FsQm90dG9tID0gbWF4KG1heEZsb2F0TG9naWNhbEJvdHRvbSwgYWRkT3Zlcmhh
bmdpbmdGbG9hdHModG9SZW5kZXJCbG9jayhjaGlsZCksICFjaGlsZE5lZWRlZExheW91dCkpOwog
Ci0gICAgTGF5b3V0U2l6ZSBjaGlsZE9mZnNldCA9IGNoaWxkLT5sb2NhdGlvbigpIC0gb2xkUmVj
dC5sb2NhdGlvbigpOwogICAgIGlmIChjaGlsZE9mZnNldC53aWR0aCgpIHx8IGNoaWxkT2Zmc2V0
LmhlaWdodCgpKSB7CiAgICAgICAgIHZpZXcoKS0+YWRkTGF5b3V0RGVsdGEoY2hpbGRPZmZzZXQp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCmluZGV4IDEyNTg4NzE3NWM5
OTJjN2RjZTNkZTAyYzkyNGE1ZWNjYWQ1YTU1Y2IuLmFhZDYwMGRmNDUxYzExN2JiMDk0MGRhOWYw
NWVmOGMzZWVlNGIxNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCkBA
IC01ODgsNiArNTg4LDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoQ1NTX1NIQVBFUykKICAgICB2
b2lkIGNvbXB1dGVTaGFwZVNpemUoKTsKICAgICB2b2lkIHVwZGF0ZVNoYXBlSW5zaWRlSW5mb0Fm
dGVyU3R5bGVDaGFuZ2UoY29uc3QgU2hhcGVWYWx1ZSosIGNvbnN0IFNoYXBlVmFsdWUqIG9sZFNo
YXBlKTsKKyAgICBMYXlvdXRTaXplIG9mZnNldEZyb21TaGFwZUFuY2VzdG9yQ29udGFpbmVyKGNv
bnN0IFJlbmRlckJsb2NrKiBjb250YWluZXIpIGNvbnN0OwogI2VuZGlmCiAgICAgdmlydHVhbCBS
ZW5kZXJPYmplY3RDaGlsZExpc3QqIHZpcnR1YWxDaGlsZHJlbigpIHsgcmV0dXJuIGNoaWxkcmVu
KCk7IH0KICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdENoaWxkTGlzdCogdmlydHVhbENo
aWxkcmVuKCkgY29uc3QgeyByZXR1cm4gY2hpbGRyZW4oKTsgfQpAQCAtMTA3Myw3ICsxMDc0LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGxheW91dFJ1bnNBbmRGbG9hdHMoTGluZUxheW91dFN0YXRl
JiwgYm9vbCBoYXNJbmxpbmVDaGlsZCk7CiAgICAgdm9pZCBsYXlvdXRSdW5zQW5kRmxvYXRzSW5S
YW5nZShMaW5lTGF5b3V0U3RhdGUmLCBJbmxpbmVCaWRpUmVzb2x2ZXImLCBjb25zdCBJbmxpbmVJ
dGVyYXRvciYgY2xlYW5MaW5lU3RhcnQsIGNvbnN0IEJpZGlTdGF0dXMmIGNsZWFuTGluZUJpZGlT
dGF0dXMsIHVuc2lnbmVkIGNvbnNlY3V0aXZlSHlwaGVuYXRlZExpbmVzKTsKICNpZiBFTkFCTEUo
Q1NTX1NIQVBFUykKLSAgICB2b2lkIHVwZGF0ZVNoYXBlQW5kU2VnbWVudHNGb3JDdXJyZW50TGlu
ZShTaGFwZUluc2lkZUluZm8qJiwgTGF5b3V0VW5pdCYsIExpbmVMYXlvdXRTdGF0ZSYpOworICAg
IHZvaWQgdXBkYXRlU2hhcGVBbmRTZWdtZW50c0ZvckN1cnJlbnRMaW5lKFNoYXBlSW5zaWRlSW5m
byomLCBjb25zdCBMYXlvdXRTaXplJiwgTGluZUxheW91dFN0YXRlJik7CiAgICAgdm9pZCB1cGRh
dGVTaGFwZUFuZFNlZ21lbnRzRm9yQ3VycmVudExpbmVJbkZsb3dUaHJlYWQoU2hhcGVJbnNpZGVJ
bmZvKiYsIExpbmVMYXlvdXRTdGF0ZSYpOwogICAgIGJvb2wgYWRqdXN0TG9naWNhbExpbmVUb3BB
bmRMb2dpY2FsSGVpZ2h0SWZOZWVkZWQoU2hhcGVJbnNpZGVJbmZvKiwgTGF5b3V0VW5pdCwgTGlu
ZUxheW91dFN0YXRlJiwgSW5saW5lQmlkaVJlc29sdmVyJiwgRmxvYXRpbmdPYmplY3QqLCBJbmxp
bmVJdGVyYXRvciYsIFdvcmRNZWFzdXJlbWVudHMmKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAppbmRleCBlZGY4NzEy
NjkzY2ZjN2Q0ZDFiOWI0NGRjYTBmMTViOGM0YzUxY2QzLi5hMTUyNjliZmVhNmEyNGY2OGZhMWIy
ODkxMDI3MzBjNDM0YzMzMWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcApAQCAtMTY3Miw3ICsxNjcyLDcgQEAgc3RhdGljIGlu
bGluZSB2b2lkIHB1c2hTaGFwZUNvbnRlbnRPdmVyZmxvd0JlbG93VGhlQ29udGVudEJveChSZW5k
ZXJCbG9jayogYmxvY2sKICAgICBibG9jay0+c2V0TG9naWNhbEhlaWdodChuZXdMb2dpY2FsSGVp
Z2h0KTsKIH0KIAotdm9pZCBSZW5kZXJCbG9jazo6dXBkYXRlU2hhcGVBbmRTZWdtZW50c0ZvckN1
cnJlbnRMaW5lKFNoYXBlSW5zaWRlSW5mbyomIHNoYXBlSW5zaWRlSW5mbywgTGF5b3V0VW5pdCYg
YWJzb2x1dGVMb2dpY2FsVG9wLCBMaW5lTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKQordm9pZCBS
ZW5kZXJCbG9jazo6dXBkYXRlU2hhcGVBbmRTZWdtZW50c0ZvckN1cnJlbnRMaW5lKFNoYXBlSW5z
aWRlSW5mbyomIHNoYXBlSW5zaWRlSW5mbywgY29uc3QgTGF5b3V0U2l6ZSYgb2Zmc2V0RnJvbVNo
YXBlQ29udGFpbmVyLCBMaW5lTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKQogewogICAgIGlmIChs
YXlvdXRTdGF0ZS5mbG93VGhyZWFkKCkpCiAgICAgICAgIHJldHVybiB1cGRhdGVTaGFwZUFuZFNl
Z21lbnRzRm9yQ3VycmVudExpbmVJbkZsb3dUaHJlYWQoc2hhcGVJbnNpZGVJbmZvLCBsYXlvdXRT
dGF0ZSk7CkBAIC0xNjgwLDExICsxNjgwLDEyIEBAIHZvaWQgUmVuZGVyQmxvY2s6OnVwZGF0ZVNo
YXBlQW5kU2VnbWVudHNGb3JDdXJyZW50TGluZShTaGFwZUluc2lkZUluZm8qJiBzaGFwZUluCiAg
ICAgaWYgKCFzaGFwZUluc2lkZUluZm8pCiAgICAgICAgIHJldHVybjsKIAotICAgIExheW91dFVu
aXQgbGluZVRvcCA9IGxvZ2ljYWxIZWlnaHQoKSArIGFic29sdXRlTG9naWNhbFRvcDsKKyAgICBM
YXlvdXRVbml0IGxpbmVUb3AgPSBsb2dpY2FsSGVpZ2h0KCkgKyBvZmZzZXRGcm9tU2hhcGVDb250
YWluZXIuaGVpZ2h0KCk7CisgICAgTGF5b3V0VW5pdCBsaW5lTGVmdCA9IG9mZnNldEZyb21TaGFw
ZUNvbnRhaW5lci53aWR0aCgpOwogICAgIExheW91dFVuaXQgbGluZUhlaWdodCA9IHRoaXMtPmxp
bmVIZWlnaHQobGF5b3V0U3RhdGUubGluZUluZm8oKS5pc0ZpcnN0TGluZSgpLCBpc0hvcml6b250
YWxXcml0aW5nTW9kZSgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUsIFBvc2l0aW9u
T2ZJbnRlcmlvckxpbmVCb3hlcyk7CiAKICAgICAvLyBGSVhNRTogQnVnIDk1MzYxOiBJdCBpcyBw
b3NzaWJsZSBmb3IgYSBsaW5lIHRvIGdyb3cgYmV5b25kIGxpbmVIZWlnaHQsIGluIHdoaWNoIGNh
c2UgdGhlc2Ugc2VnbWVudHMgbWF5IGJlIGluY29ycmVjdC4KLSAgICBzaGFwZUluc2lkZUluZm8t
PmNvbXB1dGVTZWdtZW50c0ZvckxpbmUobGluZVRvcCwgbGluZUhlaWdodCk7CisgICAgc2hhcGVJ
bnNpZGVJbmZvLT5jb21wdXRlU2VnbWVudHNGb3JMaW5lKGxpbmVMZWZ0LCBsaW5lVG9wLCBsaW5l
SGVpZ2h0KTsKIAogICAgIHB1c2hTaGFwZUNvbnRlbnRPdmVyZmxvd0JlbG93VGhlQ29udGVudEJv
eCh0aGlzLCBzaGFwZUluc2lkZUluZm8sIGxpbmVUb3AsIGxpbmVIZWlnaHQpOwogfQpAQCAtMTc1
NSw3ICsxNzU2LDkgQEAgdm9pZCBSZW5kZXJCbG9jazo6dXBkYXRlU2hhcGVBbmRTZWdtZW50c0Zv
ckN1cnJlbnRMaW5lSW5GbG93VGhyZWFkKFNoYXBlSW5zaWRlSW4KICAgICB9CiAKICAgICBMYXlv
dXRVbml0IGxpbmVUb3AgPSBsb2dpY2FsTGluZVRvcEluRmxvd1RocmVhZCAtIGN1cnJlbnRSZWdp
b24tPmxvZ2ljYWxUb3BGb3JGbG93VGhyZWFkQ29udGVudCgpICsgY3VycmVudFJlZ2lvbi0+Ym9y
ZGVyQW5kUGFkZGluZ0JlZm9yZSgpOwotICAgIHNoYXBlSW5zaWRlSW5mby0+Y29tcHV0ZVNlZ21l
bnRzRm9yTGluZShsaW5lVG9wLCBsaW5lSGVpZ2h0KTsKKworICAgIC8vIEZJWE1FOiAxMTg1NzEg
LSBTaGFwZSBpbnNpZGUgb24gYSByZWdpb24gZG9lcyBub3QgeWV0IHRha2UgaW50byBhY2NvdW50
IGl0cyBwYWRkaW5nIGZvciBuZXN0ZWQgZmxvdyBibG9ja3MKKyAgICBzaGFwZUluc2lkZUluZm8t
PmNvbXB1dGVTZWdtZW50c0ZvckxpbmUoMCwgbGluZVRvcCwgbGluZUhlaWdodCk7CiAKICAgICBp
ZiAoY3VycmVudFJlZ2lvbi0+aXNMYXN0UmVnaW9uKCkpCiAgICAgICAgIHB1c2hTaGFwZUNvbnRl
bnRPdmVyZmxvd0JlbG93VGhlQ29udGVudEJveCh0aGlzLCBzaGFwZUluc2lkZUluZm8sIGxpbmVU
b3AsIGxpbmVIZWlnaHQpOwpAQCAtMTc5MywxOCArMTc5NiwxOCBAQCB2b2lkIFJlbmRlckJsb2Nr
OjpsYXlvdXRSdW5zQW5kRmxvYXRzSW5SYW5nZShMaW5lTGF5b3V0U3RhdGUmIGxheW91dFN0YXRl
LCBJbmxpbgogICAgIExpbmVCcmVha2VyIGxpbmVCcmVha2VyKHRoaXMpOwogCiAjaWYgRU5BQkxF
KENTU19TSEFQRVMpCi0gICAgTGF5b3V0VW5pdCBhYnNvbHV0ZUxvZ2ljYWxUb3A7CisgICAgTGF5
b3V0U2l6ZSBvZmZzZXRGcm9tU2hhcGVDb250YWluZXI7CiAgICAgU2hhcGVJbnNpZGVJbmZvKiBz
aGFwZUluc2lkZUluZm8gPSBsYXlvdXRTaGFwZUluc2lkZUluZm8oKTsKICAgICBpZiAoc2hhcGVJ
bnNpZGVJbmZvKSB7CiAgICAgICAgIEFTU0VSVChzaGFwZUluc2lkZUluZm8tPm93bmVyKCkgPT0g
dGhpcyB8fCBhbGxvd3NTaGFwZUluc2lkZUluZm9TaGFyaW5nKCkpOwogICAgICAgICBpZiAoc2hh
cGVJbnNpZGVJbmZvICE9IHRoaXMtPnNoYXBlSW5zaWRlSW5mbygpKSB7CiAgICAgICAgICAgICAv
LyBGSVhNRSBCdWcgMTAwMjg0OiBJZiBzdWJzZXF1ZW50IExheW91dFN0YXRlcyBhcmUgcHVzaGVk
LCB3ZSB3aWxsIGhhdmUgdG8gYWRkCiAgICAgICAgICAgICAvLyB0aGVpciBvZmZzZXRzIGZyb20g
dGhlIG9yaWdpbmFsIHNoYXBlLWluc2lkZSBjb250YWluZXIuCi0gICAgICAgICAgICBhYnNvbHV0
ZUxvZ2ljYWxUb3AgPSBsb2dpY2FsVG9wKCk7CisgICAgICAgICAgICBvZmZzZXRGcm9tU2hhcGVD
b250YWluZXIgPSBvZmZzZXRGcm9tU2hhcGVBbmNlc3RvckNvbnRhaW5lcihzaGFwZUluc2lkZUlu
Zm8tPm93bmVyKCkpOwogICAgICAgICB9CiAgICAgICAgIC8vIEJlZ2luIGxheW91dCBhdCB0aGUg
bG9naWNhbCB0b3Agb2Ygb3VyIHNoYXBlIGluc2lkZS4KLSAgICAgICAgaWYgKGxvZ2ljYWxIZWln
aHQoKSArIGFic29sdXRlTG9naWNhbFRvcCA8IHNoYXBlSW5zaWRlSW5mby0+c2hhcGVMb2dpY2Fs
VG9wKCkpIHsKLSAgICAgICAgICAgIExheW91dFVuaXQgbG9naWNhbEhlaWdodCA9IHNoYXBlSW5z
aWRlSW5mby0+c2hhcGVMb2dpY2FsVG9wKCkgLSBhYnNvbHV0ZUxvZ2ljYWxUb3A7CisgICAgICAg
IGlmIChsb2dpY2FsSGVpZ2h0KCkgKyBvZmZzZXRGcm9tU2hhcGVDb250YWluZXIuaGVpZ2h0KCkg
PCBzaGFwZUluc2lkZUluZm8tPnNoYXBlTG9naWNhbFRvcCgpKSB7CisgICAgICAgICAgICBMYXlv
dXRVbml0IGxvZ2ljYWxIZWlnaHQgPSBzaGFwZUluc2lkZUluZm8tPnNoYXBlTG9naWNhbFRvcCgp
IC0gb2Zmc2V0RnJvbVNoYXBlQ29udGFpbmVyLmhlaWdodCgpOwogICAgICAgICAgICAgaWYgKGxh
eW91dFN0YXRlLmZsb3dUaHJlYWQoKSkKICAgICAgICAgICAgICAgICBsb2dpY2FsSGVpZ2h0IC09
IHNoYXBlSW5zaWRlSW5mby0+b3duZXIoKS0+Ym9yZGVyQW5kUGFkZGluZ0JlZm9yZSgpOwogICAg
ICAgICAgICAgc2V0TG9naWNhbEhlaWdodChsb2dpY2FsSGVpZ2h0KTsKQEAgLTE4MzIsNyArMTgz
NSw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dFJ1bnNBbmRGbG9hdHNJblJhbmdlKExpbmVM
YXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIElubGluCiAgICAgICAgIEZsb2F0aW5nT2JqZWN0KiBs
YXN0RmxvYXRGcm9tUHJldmlvdXNMaW5lID0gKGNvbnRhaW5zRmxvYXRzKCkpID8gbV9mbG9hdGlu
Z09iamVjdHMtPnNldCgpLmxhc3QoKSA6IDA7CiAKICNpZiBFTkFCTEUoQ1NTX1NIQVBFUykKLSAg
ICAgICAgdXBkYXRlU2hhcGVBbmRTZWdtZW50c0ZvckN1cnJlbnRMaW5lKHNoYXBlSW5zaWRlSW5m
bywgYWJzb2x1dGVMb2dpY2FsVG9wLCBsYXlvdXRTdGF0ZSk7CisgICAgICAgIHVwZGF0ZVNoYXBl
QW5kU2VnbWVudHNGb3JDdXJyZW50TGluZShzaGFwZUluc2lkZUluZm8sIG9mZnNldEZyb21TaGFw
ZUNvbnRhaW5lciwgbGF5b3V0U3RhdGUpOwogI2VuZGlmCiAgICAgICAgIFdvcmRNZWFzdXJlbWVu
dHMgd29yZE1lYXN1cmVtZW50czsKICAgICAgICAgZW5kID0gbGluZUJyZWFrZXIubmV4dExpbmVC
cmVhayhyZXNvbHZlciwgbGF5b3V0U3RhdGUubGluZUluZm8oKSwgcmVuZGVyVGV4dEluZm8sIGxh
c3RGbG9hdEZyb21QcmV2aW91c0xpbmUsIGNvbnNlY3V0aXZlSHlwaGVuYXRlZExpbmVzLCB3b3Jk
TWVhc3VyZW1lbnRzKTsKQEAgLTE4NDgsNyArMTg1MSw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6Omxh
eW91dFJ1bnNBbmRGbG9hdHNJblJhbmdlKExpbmVMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIElu
bGluCiAgICAgICAgIH0KIAogI2lmIEVOQUJMRShDU1NfU0hBUEVTKQotICAgICAgICBpZiAoYWRq
dXN0TG9naWNhbExpbmVUb3BBbmRMb2dpY2FsSGVpZ2h0SWZOZWVkZWQoc2hhcGVJbnNpZGVJbmZv
LCBhYnNvbHV0ZUxvZ2ljYWxUb3AsIGxheW91dFN0YXRlLCByZXNvbHZlciwgbGFzdEZsb2F0RnJv
bVByZXZpb3VzTGluZSwgZW5kLCB3b3JkTWVhc3VyZW1lbnRzKSkKKyAgICAgICAgaWYgKGFkanVz
dExvZ2ljYWxMaW5lVG9wQW5kTG9naWNhbEhlaWdodElmTmVlZGVkKHNoYXBlSW5zaWRlSW5mbywg
b2Zmc2V0RnJvbVNoYXBlQ29udGFpbmVyLmhlaWdodCgpLCBsYXlvdXRTdGF0ZSwgcmVzb2x2ZXIs
IGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUsIGVuZCwgd29yZE1lYXN1cmVtZW50cykpCiAgICAg
ICAgICAgICBjb250aW51ZTsKICNlbmRpZgogICAgICAgICBBU1NFUlQoZW5kICE9IHJlc29sdmVy
LnBvc2l0aW9uKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBl
cy9TaGFwZUluc2lkZUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hh
cGVJbnNpZGVJbmZvLmgKaW5kZXggYzAwNmIzNjQ1NGI5ZGFiMWMyMDI2NTc3MDVlZDQ5NzE4OWJj
N2U3Ni4uM2E2YWU1OWU0YTRkYzA1NTk3NDM5MDRmZDE5ZjY3NmJhZGE3MGFhMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5zaWRlSW5mby5oCkBAIC02
OCw2ICs2OCwxNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgYm9vbCBpc0VuYWJsZWRGb3IoY29u
c3QgUmVuZGVyQmxvY2sqIHJlbmRlcmVyKTsKIAorICAgIGJvb2wgY29tcHV0ZVNlZ21lbnRzRm9y
TGluZShMYXlvdXRVbml0IGxpbmVMZWZ0LCBMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQg
bGluZUhlaWdodCkKKyAgICB7CisgICAgICAgIG1fc2VnbWVudFJhbmdlcy5jbGVhcigpOworICAg
ICAgICBib29sIHJlc3VsdCA9IFNoYXBlSW5mbzxSZW5kZXJCbG9jaywgJlJlbmRlclN0eWxlOjpy
ZXNvbHZlZFNoYXBlSW5zaWRlLCAmU2hhcGU6OmdldEluY2x1ZGVkSW50ZXJ2YWxzPjo6Y29tcHV0
ZVNlZ21lbnRzRm9yTGluZShsaW5lVG9wLCBsaW5lSGVpZ2h0KTsKKyAgICAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBtX3NlZ21lbnRzLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICBtX3Nl
Z21lbnRzW2ldLmxvZ2ljYWxMZWZ0IC09IGxpbmVMZWZ0OworICAgICAgICAgICAgbV9zZWdtZW50
c1tpXS5sb2dpY2FsUmlnaHQgLT0gbGluZUxlZnQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICB9CisKICAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZVNlZ21lbnRzRm9yTGlu
ZShMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGluZUhlaWdodCkgT1ZFUlJJREUKICAg
ICB7CiAgICAgICAgIG1fc2VnbWVudFJhbmdlcy5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGRjZmQ3MWRmYjhh
Mjc3Yjc2NTFiMGQ1ZmM4NzE0NGY4MTdmZWI5MzQuLjllZTczZTE5Yjc1MGQ2NmM0YjJiNzQ2NGVm
ODEzNDkzOTUzZjBlZTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMy0wNy0xMSAgQmVhciBU
cmF2aXMgIDxiZXRyYXZpc0BhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBTaGFwZXNdIFNoYXBl
J3MgY29udGVudCBnZXRzIGV4dHJhIGxlZnQgb2Zmc2V0IHdoZW4gbGVmdC1ib3JkZXIgaXMgcG9z
aXRpdmUgb24gdGhlIGNvbnRlbnQgYm94CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTc1NzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUZXN0IHRoYXQgbmVzdGVkIGNoaWxkcmVuIHdpdGggcGFkZGluZyBj
b3JyZWN0bHkgYXBwbHkgYW4gYW5jZXN0b3IncyBzaGFwZS1pbnNpZGUKKyAgICAgICAgYWNyb3Nz
IGRpZmZlcmVudCB3cml0aW5nIG1vZGVzLgorCisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3No
YXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtb2Zmc2V0LWJsb2NrLWNoaWxkcmVuLWV4cGVjdGVkLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUt
aW5zaWRlLW9mZnNldC1ibG9jay1jaGlsZHJlbi5odG1sOiBBZGRlZC4KKwogMjAxMy0wNy0xMSAg
QW5kcmVpIEJ1Y3VyICA8YWJ1Y3VyQGFkb2JlLmNvbT4KIAogICAgICAgICBbQ1NTIFJlZ2lvbnNd
IEluIGEgcmVnaW9uIGNoYWluIHdpdGggYXV0by1oZWlnaHQgcmVnaW9ucywgbGluZXMgZ2V0IHRo
ZWlyIGxlbmd0aCBiYXNlZCBvbmx5IG9uIHRoZSBmaXJzdCByZWdpb24KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLW9mZnNl
dC1ibG9jay1jaGlsZHJlbi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNp
b25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtb2Zmc2V0LWJsb2NrLWNoaWxkcmVuLWV4cGVj
dGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODA5YzQwNTNhMzg1ZWI3ODkyYzY2ZjMzMGJiMzM1MDA0MTIw
NTY0MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFw
ZS1pbnNpZGUvc2hhcGUtaW5zaWRlLW9mZnNldC1ibG9jay1jaGlsZHJlbi1leHBlY3RlZC5odG1s
CkBAIC0wLDAgKzEsMzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHls
ZSBpZD0nc3R5bGVzaGVldCc+Cisuc2hhcGUtaW5zaWRlIHsKKyAgICBmb250OiA1MHB4LzEgQWhl
bSwgc2Fucy1zZXJpZjsKKyAgICBjb2xvcjogZ3JlZW47CisgICAgZmxvYXQ6IGxlZnQ7Cit9Cisu
dmVydGljYWwucmwgeworICAgIC13ZWJraXQtd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybDsKK30K
Ky52ZXJ0aWNhbC5sciB7CisgICAgLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLWxyOwor
fQorPC9zdHlsZT4KKzxzY3JpcHQgc3JjPScuLi9yZXNvdXJjZXMvc2ltcGxlLXJlY3RhbmdsZS5q
cyc+PC9zY3JpcHQ+Cis8c2NyaXB0Pgord2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAg
IGNyZWF0ZVJlY3RhbmdsZVRlc3RSZXN1bHQoJ3NoYXBlLWluc2lkZScsICdzdHlsZXNoZWV0Jywg
eyB3aWR0aDogMzAwLCBoZWlnaHQ6IDMwMCB9LCB7IHg6IDEwMCwgeTogMTAwLCB3aWR0aDogMTAw
LCBoZWlnaHQ6IDEwMCB9LCAncHgnLCBudWxsKTsKKyAgICBjcmVhdGVSZWN0YW5nbGVUZXN0UmVz
dWx0KCdzaGFwZS1pbnNpZGUtcmwnLCAnc3R5bGVzaGVldCcsIHsgd2lkdGg6IDMwMCwgaGVpZ2h0
OiAzMDAgfSwgeyB4OiAxMDAsIHk6IDEwMCwgd2lkdGg6IDEwMCwgaGVpZ2h0OiAxMDAgfSwgJ3B4
JywgbnVsbCk7CisgICAgY3JlYXRlUmVjdGFuZ2xlVGVzdFJlc3VsdCgnc2hhcGUtaW5zaWRlLWxy
JywgJ3N0eWxlc2hlZXQnLCB7IHdpZHRoOiAzMDAsIGhlaWdodDogMzAwIH0sIHsgeDogMTAwLCB5
OiAxMDAsIHdpZHRoOiAxMDAsIGhlaWdodDogMTAwIH0sICdweCcsIG51bGwpOworfQorPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgc2hhcGUtaW5z
aWRlIHRha2VzIGludG8gYWNjb3VudCBwYWRkaW5nIG9uIG5lc3RlZCBjaGlsZCBibG9ja3MgaW4g
ZGlmZmVyZW50IHdyaXRpbmcgbW9kZXMuIFlvdSBzaG91bGQgc2VlIHNldmVyYWwgZ3JlZW4gc3F1
YXJlcyB3aXRoaW4gYSBibHVlIG91dGxpbmUuIFRoZSB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZv
bnQuPC9wPgorPGRpdiBpZD0nc2hhcGUtaW5zaWRlJyBjbGFzcz0nc2hhcGUtaW5zaWRlJz54eHh4
PC9kaXY+Cis8ZGl2IGlkPSdzaGFwZS1pbnNpZGUtcmwnIGNsYXNzPSdzaGFwZS1pbnNpZGUgdmVy
dGljYWwgbHInPnh4eHg8L2Rpdj4KKzxkaXYgaWQ9J3NoYXBlLWluc2lkZS1scicgY2xhc3M9J3No
YXBlLWluc2lkZSB2ZXJ0aWNhbCBybCc+eHh4eDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1p
bnNpZGUtb2Zmc2V0LWJsb2NrLWNoaWxkcmVuLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1
c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1vZmZzZXQtYmxvY2stY2hpbGRyZW4uaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jMWM1OWU1MTIzOTY5MzEwOGU0NDQzZjY0YzE1OWI4Mzk5OTAxNDQzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lk
ZS9zaGFwZS1pbnNpZGUtb2Zmc2V0LWJsb2NrLWNoaWxkcmVuLmh0bWwKQEAgLTAsMCArMSwzNSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlIGlkPSdzdHlsZXNoZWV0
Jz4KKy5zaGFwZS1pbnNpZGUgeworICAgIGZvbnQ6IDUwcHgvMSBBaGVtLCBzYW5zLXNlcmlmOwor
ICAgIGNvbG9yOiBncmVlbjsKKyAgICBmbG9hdDogbGVmdDsKK30KKy52ZXJ0aWNhbC5ybCB7Cisg
ICAgLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsOworfQorLnZlcnRpY2FsLmxyIHsK
KyAgICAtd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7Cit9Cisuc2hhcGUtaW5zaWRl
ICogeworICAgIHBhZGRpbmc6IDVweCAxMHB4IDE1cHggMjBweDsKK30KKzwvc3R5bGU+Cis8c2Ny
aXB0IHNyYz0nLi4vcmVzb3VyY2VzL3NpbXBsZS1yZWN0YW5nbGUuanMnPjwvc2NyaXB0PgorPHNj
cmlwdD4KK3dpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICBjcmVhdGVSZWN0YW5nbGVU
ZXN0KCdzaGFwZS1pbnNpZGUnLCAnc3R5bGVzaGVldCcsIHsgd2lkdGg6IDMwMCwgaGVpZ2h0OiAz
MDAgfSwgeyB4OiAxMDAsIHk6IDEwMCwgd2lkdGg6IDEwMCwgaGVpZ2h0OiAxMDAgfSwgJ3B4Jywg
bnVsbCk7CisgICAgY3JlYXRlUmVjdGFuZ2xlVGVzdCgnc2hhcGUtaW5zaWRlLXJsJywgJ3N0eWxl
c2hlZXQnLCB7IHdpZHRoOiAzMDAsIGhlaWdodDogMzAwIH0sIHsgeDogMTAwLCB5OiAxMDAsIHdp
ZHRoOiAxMDAsIGhlaWdodDogMTAwIH0sICdweCcsIG51bGwpOworICAgIGNyZWF0ZVJlY3Rhbmds
ZVRlc3QoJ3NoYXBlLWluc2lkZS1scicsICdzdHlsZXNoZWV0JywgeyB3aWR0aDogMzAwLCBoZWln
aHQ6IDMwMCB9LCB7IHg6IDEwMCwgeTogMTAwLCB3aWR0aDogMTAwLCBoZWlnaHQ6IDEwMCB9LCAn
cHgnLCBudWxsKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3Qg
ZW5zdXJlcyB0aGF0IHNoYXBlLWluc2lkZSB0YWtlcyBpbnRvIGFjY291bnQgcGFkZGluZyBvbiBu
ZXN0ZWQgY2hpbGQgYmxvY2tzIGluIGRpZmZlcmVudCB3cml0aW5nIG1vZGVzLiBZb3Ugc2hvdWxk
IHNlZSBzZXZlcmFsIGdyZWVuIHNxdWFyZXMgd2l0aGluIGEgYmx1ZSBvdXRsaW5lLiBUaGUgdGVz
dCByZXF1aXJlcyB0aGUgQWhlbSBmb250LjwvcD4KKzxkaXYgaWQ9J3NoYXBlLWluc2lkZScgY2xh
c3M9J3NoYXBlLWluc2lkZSc+PGRpdj48ZGl2Pnh4eHg8L2Rpdj48L2Rpdj48L2Rpdj4KKzxkaXYg
aWQ9J3NoYXBlLWluc2lkZS1ybCcgY2xhc3M9J3NoYXBlLWluc2lkZSB2ZXJ0aWNhbCBscic+PGRp
dj48ZGl2Pnh4eHg8L2Rpdj48L2Rpdj48L2Rpdj4KKzxkaXYgaWQ9J3NoYXBlLWluc2lkZS1scicg
Y2xhc3M9J3NoYXBlLWluc2lkZSB2ZXJ0aWNhbCBybCc+PGRpdj48ZGl2Pnh4eHg8L2Rpdj48L2Rp
dj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207341</attachid>
            <date>2013-07-23 11:50:34 -0700</date>
            <delta_ts>2013-07-23 13:24:06 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-117573-20130723115033.patch</filename>
            <type>text/plain</type>
            <size>18371</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzMDA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTc0ZTY0Y2RiMmQ3NzFm
ZTFkMDM5N2M4NDE2ODcxYTg1OTlhMzIxYS4uMDZhMDc3YjcxM2Q5YWFiMWI4NTM3MmFjYzAzODFk
MjQwM2ZiYWY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEzLTA3LTIyICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIFNoYXBlc10gU2hh
cGUncyBjb250ZW50IGdldHMgZXh0cmEgbGVmdCBvZmZzZXQgd2hlbiBsZWZ0LWJvcmRlciBpcyBw
b3NpdGl2ZSBvbiB0aGUgY29udGVudCBib3gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExNzU3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE5lc3RlZCBibG9ja3MgbmVlZCB0byB0YWtlIGludG8gYWNjb3Vu
dCB0aGVpciBvZmZzZXQgZnJvbSB0aGUgc2hhcGUtaW5zaWRlIGNvbnRhaW5lci4KKyAgICAgICAg
VGhlIG5ldyBjb2RlIGNhbGN1bGF0ZXMgdGhlIG9mZnNldCBmcm9tIHRoZSBzaGFwZS1pbnNpZGUg
Y29udGFpbmVyLCB0aGVuIGFwcGxpZXMgdGhlCisgICAgICAgIG9mZnNldCB0byB0aGUgY29tcHV0
ZWQgc2VnbWVudHMuIFRoZSBsaW5lIG11c3QgYmUgbW92ZWQgZG93biBieSB0aGUgb2Zmc2V0J3Mg
aGVpZ2h0LAorICAgICAgICBhbmQgZWFjaCBzZWdtZW50IG11c3QgYmUgbW92ZWQgbGVmdCBieSB0
aGUgb2Zmc2V0J3Mgd2lkdGguCisKKyAgICAgICAgVGVzdDogZmFzdC9leGNsdXNpb25zL3NoYXBl
LWluc2lkZS9zaGFwZS1pbnNpZGUtb2Zmc2V0LWJsb2NrLWNoaWxkcmVuLmh0bWwKKworICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
bG9jazo6b2Zmc2V0RnJvbVNoYXBlQW5jZXN0b3JDb250YWluZXIpOiBDYWxjdWxhdGUgdGhlIGxv
Z2ljYWwgb2Zmc2V0CisgICAgICAgIGZyb20gYSBzaGFwZSBpbnNpZGUgYW5jZXN0b3IgY29udGFp
bmVyLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dEJsb2NrQ2hpbGQpOiBJ
ZiB0aGUgY2hpbGQgYmxvY2sgbW92ZWQgaG9yaXpvbnRhbGx5CisgICAgICAgIGR1cmluZyBsYXlv
dXQgYW5kIGEgc2hhcGUgaW5zaWRlIGlzIGFwcGxpZWQgZnJvbSBhbiBhbmNlc3RvciwgdGhlIGlu
bGluZSBjb250ZW50CisgICAgICAgIG11c3QgYmUgbGFpZCBvdXQgYWdhaW4uCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmg6IEFkZGluZyBvZmZzZXRGcm9tU2hhcGVBbmNlc3RvckNv
bnRhaW5lciBtZXRob2QuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6dXBkYXRlU2hhcGVBbmRTZWdt
ZW50c0ZvckN1cnJlbnRMaW5lKTogVXNlIGxheW91dCBvZmZzZXQsCisgICAgICAgIHJhdGhlciB0
aGFuIGp1c3QgdmVydGljYWwgb2Zmc2V0LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6
OnVwZGF0ZVNoYXBlQW5kU2VnbWVudHNGb3JDdXJyZW50TGluZUluRmxvd1RocmVhZCk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dFJ1bnNBbmRGbG9hdHNJblJh
bmdlKTogRGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8u
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXBlSW5zaWRlSW5mbzo6Y29tcHV0ZVNlZ21lbnRzRm9y
TGluZSk6IFNoaWZ0IHNlZ21lbnRzIGxvZ2ljYWxseSBsZWZ0CisgICAgICAgIHdoZW4gdGhlcmUg
aXMgYSBob3Jpem9udGFsIGxpbmUgb2Zmc2V0LgorCiAyMDEzLTA3LTIyICBCZW5qYW1pbiBQb3Vs
YWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBEbyBub3QgYWxsb2NhdGUgMiBB
dG9taWNTdHJpbmcganVzdCB0byBkbyBhIGNvbXBhcmlzb24gaW4gSFRNTEFuY2hvckVsZW1lbnQ6
OnNldFJlbCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCBl
Njk2ZjMxZDI3NTZjOGM0ZGQ2NmRhMjk3N2I2MzA5ZDg4ZWVhNWY4Li5hYmM5NjNjZWQ0MjZhNDkz
ZWY0NzAyZjk3ZDJkNjkwYzNjZGFjYjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5jcHAKQEAgLTE0MzYsNiArMTQzNiw1MCBAQCB2b2lkIFJlbmRlckJsb2NrOjpsYXlv
dXQoKQogfQogCiAjaWYgRU5BQkxFKENTU19TSEFQRVMpCit2b2lkIFJlbmRlckJsb2NrOjpyZWxh
eW91dFNoYXBlRGVzY2VuZGFudElmTW92ZWQoUmVuZGVyQmxvY2sqIGNoaWxkLCBMYXlvdXRTaXpl
IG9mZnNldCkKK3sKKyAgICBMYXlvdXRVbml0IGxlZnQgPSBpc0hvcml6b250YWxXcml0aW5nTW9k
ZSgpID8gb2Zmc2V0LndpZHRoKCkgOiBvZmZzZXQuaGVpZ2h0KCk7CisgICAgaWYgKCFsZWZ0IHx8
ICFjaGlsZCB8fCBjaGlsZC0+c2hhcGVJbnNpZGVJbmZvKCkgfHwgIWxheW91dFNoYXBlSW5zaWRl
SW5mbygpKQorICAgICAgICByZXR1cm47CisgICAgLy8gUHJvcGFnYXRlIGxheW91dCBtYXJrZXJz
IG9ubHkgdXAgdG8gdGhlIGNoaWxkLCBhcyB3ZSBhcmUgc3RpbGwgaW4gdGhlIG1pZGRsZQorICAg
IC8vIG9mIGEgbGF5b3V0IHBhc3MKKyAgICBjaGlsZC0+c2V0Tm9ybWFsQ2hpbGROZWVkc0xheW91
dCh0cnVlKTsKKyAgICBjaGlsZC0+bWFya1NoYXBlSW5zaWRlRGVzY2VuZGFudHNGb3JMYXlvdXQo
KTsKKyAgICBjaGlsZC0+bGF5b3V0SWZOZWVkZWQoKTsKK30KKworTGF5b3V0U2l6ZSBSZW5kZXJC
bG9jazo6bG9naWNhbE9mZnNldEZyb21TaGFwZUFuY2VzdG9yQ29udGFpbmVyKGNvbnN0IFJlbmRl
ckJsb2NrKiBjb250YWluZXIpIGNvbnN0Cit7CisgICAgY29uc3QgUmVuZGVyQmxvY2sqIGN1cnJl
bnRCbG9jayA9IHRoaXM7CisgICAgTGF5b3V0UmVjdCBibG9ja1JlY3QoY3VycmVudEJsb2NrLT5i
b3JkZXJCb3hSZWN0KCkpOworICAgIHdoaWxlIChjdXJyZW50QmxvY2sgJiYgIWN1cnJlbnRCbG9j
ay0+aXNSZW5kZXJGbG93VGhyZWFkKCkgJiYgY3VycmVudEJsb2NrICE9IGNvbnRhaW5lcikgewor
ICAgICAgICBSZW5kZXJCbG9jayogY29udGFpbmVyQmxvY2sgPSBjdXJyZW50QmxvY2stPmNvbnRh
aW5pbmdCbG9jaygpOworICAgICAgICBBU1NFUlQoY29udGFpbmVyQmxvY2spOworICAgICAgICBp
ZiAoIWNvbnRhaW5lckJsb2NrKQorICAgICAgICAgICAgcmV0dXJuIExheW91dFNpemUoKTsKKwor
ICAgICAgICBpZiAoY29udGFpbmVyQmxvY2stPnN0eWxlKCktPndyaXRpbmdNb2RlKCkgIT0gY3Vy
cmVudEJsb2NrLT5zdHlsZSgpLT53cml0aW5nTW9kZSgpKSB7CisgICAgICAgICAgICAvLyBXZSBo
YXZlIHRvIHB1dCB0aGUgYmxvY2sgcmVjdCBpbiBjb250YWluZXIgY29vcmRpbmF0ZXMKKyAgICAg
ICAgICAgIC8vIGFuZCB3ZSBoYXZlIHRvIHRha2UgaW50byBhY2NvdW50IGJvdGggdGhlIGNvbnRh
aW5lciBhbmQgY3VycmVudCBibG9jayBmbGlwcGluZyBtb2RlcworICAgICAgICAgICAgLy8gQnVn
IDExODA3MzogRmxpcHBpbmcgaW5saW5lIGFuZCBibG9jayBkaXJlY3Rpb25zIGF0IHRoZSBzYW1l
IHRpbWUgd2lsbCBub3Qgd29yaywKKyAgICAgICAgICAgIC8vIGFzIG9uZSBvZiB0aGUgZmxpcHBl
ZCBkaW1lbnNpb25zIHdpbGwgbm90IHlldCBoYXZlIGJlZW4gc2V0IHRvIGl0cyBmaW5hbCBzaXpl
CisgICAgICAgICAgICBpZiAoY29udGFpbmVyQmxvY2stPnN0eWxlKCktPmlzRmxpcHBlZEJsb2Nr
c1dyaXRpbmdNb2RlKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoY29udGFpbmVyQmxvY2stPmlz
SG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCisgICAgICAgICAgICAgICAgICAgIGJsb2NrUmVjdC5z
ZXRZKGN1cnJlbnRCbG9jay0+aGVpZ2h0KCkgLSBibG9ja1JlY3QubWF4WSgpKTsKKyAgICAgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGJsb2NrUmVjdC5zZXRYKGN1cnJlbnRC
bG9jay0+d2lkdGgoKSAtIGJsb2NrUmVjdC5tYXhYKCkpOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgY3VycmVudEJsb2NrLT5mbGlwRm9yV3JpdGluZ01vZGUoYmxvY2tSZWN0KTsKKyAgICAg
ICAgfQorCisgICAgICAgIGJsb2NrUmVjdC5tb3ZlQnkoY3VycmVudEJsb2NrLT5sb2NhdGlvbigp
KTsKKyAgICAgICAgY3VycmVudEJsb2NrID0gY29udGFpbmVyQmxvY2s7CisgICAgfQorCisgICAg
TGF5b3V0U2l6ZSByZXN1bHQgPSBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gTGF5b3V0U2l6
ZShibG9ja1JlY3QueCgpLCBibG9ja1JlY3QueSgpKSA6IExheW91dFNpemUoYmxvY2tSZWN0Lnko
KSwgYmxvY2tSZWN0LngoKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogdm9pZCBSZW5kZXJC
bG9jazo6dXBkYXRlU2hhcGVJbnNpZGVJbmZvQWZ0ZXJTdHlsZUNoYW5nZShjb25zdCBTaGFwZVZh
bHVlKiBzaGFwZUluc2lkZSwgY29uc3QgU2hhcGVWYWx1ZSogb2xkU2hhcGVJbnNpZGUpCiB7CiAg
ICAgLy8gRklYTUU6IEEgZnV0dXJlIG9wdGltaXphdGlvbiB3b3VsZCBkbyBhIGRlZXAgY29tcGFy
aXNvbiBmb3IgZXF1YWxpdHkuCkBAIC0yNzEzLDYgKzI3NTcsMTEgQEAgdm9pZCBSZW5kZXJCbG9j
azo6bGF5b3V0QmxvY2tDaGlsZChSZW5kZXJCb3gqIGNoaWxkLCBNYXJnaW5JbmZvJiBtYXJnaW5J
bmZvLCBMYXkKICAgICAvLyBOb3cgcGxhY2UgdGhlIGNoaWxkIGluIHRoZSBjb3JyZWN0IGxlZnQg
cG9zaXRpb24KICAgICBkZXRlcm1pbmVMb2dpY2FsTGVmdFBvc2l0aW9uRm9yQ2hpbGQoY2hpbGQs
IEFwcGx5TGF5b3V0RGVsdGEpOwogCisgICAgTGF5b3V0U2l6ZSBjaGlsZE9mZnNldCA9IGNoaWxk
LT5sb2NhdGlvbigpIC0gb2xkUmVjdC5sb2NhdGlvbigpOworI2lmIEVOQUJMRShDU1NfU0hBUEVT
KQorICAgIHJlbGF5b3V0U2hhcGVEZXNjZW5kYW50SWZNb3ZlZChjaGlsZFJlbmRlckJsb2NrLCBj
aGlsZE9mZnNldCk7CisjZW5kaWYKKwogICAgIC8vIFVwZGF0ZSBvdXIgaGVpZ2h0IG5vdyB0aGF0
IHRoZSBjaGlsZCBoYXMgYmVlbiBwbGFjZWQgaW4gdGhlIGNvcnJlY3QgcG9zaXRpb24uCiAgICAg
c2V0TG9naWNhbEhlaWdodChsb2dpY2FsSGVpZ2h0KCkgKyBsb2dpY2FsSGVpZ2h0Rm9yQ2hpbGQo
Y2hpbGQpKTsKICAgICBpZiAobXVzdFNlcGFyYXRlTWFyZ2luQWZ0ZXJGb3JDaGlsZChjaGlsZCkp
IHsKQEAgLTI3MjQsNyArMjc3Myw2IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dEJsb2NrQ2hp
bGQoUmVuZGVyQm94KiBjaGlsZCwgTWFyZ2luSW5mbyYgbWFyZ2luSW5mbywgTGF5CiAgICAgaWYg
KGNoaWxkUmVuZGVyQmxvY2sgJiYgY2hpbGRSZW5kZXJCbG9jay0+Y29udGFpbnNGbG9hdHMoKSkK
ICAgICAgICAgbWF4RmxvYXRMb2dpY2FsQm90dG9tID0gbWF4KG1heEZsb2F0TG9naWNhbEJvdHRv
bSwgYWRkT3ZlcmhhbmdpbmdGbG9hdHModG9SZW5kZXJCbG9jayhjaGlsZCksICFjaGlsZE5lZWRl
ZExheW91dCkpOwogCi0gICAgTGF5b3V0U2l6ZSBjaGlsZE9mZnNldCA9IGNoaWxkLT5sb2NhdGlv
bigpIC0gb2xkUmVjdC5sb2NhdGlvbigpOwogICAgIGlmIChjaGlsZE9mZnNldC53aWR0aCgpIHx8
IGNoaWxkT2Zmc2V0LmhlaWdodCgpKSB7CiAgICAgICAgIHZpZXcoKS0+YWRkTGF5b3V0RGVsdGEo
Y2hpbGRPZmZzZXQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCmluZGV4
IGRlOWU5ZWM2ZWM0ZjZhNmIzYTcyNWY3ZmU0NDQzODhkNzdlMDE3ZjYuLjE2ODViNTQxZTRkY2Jh
ODkyOTZmMmYxZGRkNTMzMmExMDdlYWU3ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5oCkBAIC02MTEsNiArNjExLDggQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoQ1NTX1NI
QVBFUykKICAgICB2b2lkIGNvbXB1dGVTaGFwZVNpemUoKTsKICAgICB2b2lkIHVwZGF0ZVNoYXBl
SW5zaWRlSW5mb0FmdGVyU3R5bGVDaGFuZ2UoY29uc3QgU2hhcGVWYWx1ZSosIGNvbnN0IFNoYXBl
VmFsdWUqIG9sZFNoYXBlKTsKKyAgICB2b2lkIHJlbGF5b3V0U2hhcGVEZXNjZW5kYW50SWZNb3Zl
ZChSZW5kZXJCbG9jayogY2hpbGQsIExheW91dFNpemUgb2Zmc2V0KTsKKyAgICBMYXlvdXRTaXpl
IGxvZ2ljYWxPZmZzZXRGcm9tU2hhcGVBbmNlc3RvckNvbnRhaW5lcihjb25zdCBSZW5kZXJCbG9j
ayogY29udGFpbmVyKSBjb25zdDsKICNlbmRpZgogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0Q2hp
bGRMaXN0KiB2aXJ0dWFsQ2hpbGRyZW4oKSB7IHJldHVybiBjaGlsZHJlbigpOyB9CiAgICAgdmly
dHVhbCBjb25zdCBSZW5kZXJPYmplY3RDaGlsZExpc3QqIHZpcnR1YWxDaGlsZHJlbigpIGNvbnN0
IHsgcmV0dXJuIGNoaWxkcmVuKCk7IH0KQEAgLTEwOTYsNyArMTA5OCw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBsYXlvdXRSdW5zQW5kRmxvYXRzKExpbmVMYXlvdXRTdGF0ZSYsIGJvb2wgaGFzSW5s
aW5lQ2hpbGQpOwogICAgIHZvaWQgbGF5b3V0UnVuc0FuZEZsb2F0c0luUmFuZ2UoTGluZUxheW91
dFN0YXRlJiwgSW5saW5lQmlkaVJlc29sdmVyJiwgY29uc3QgSW5saW5lSXRlcmF0b3ImIGNsZWFu
TGluZVN0YXJ0LCBjb25zdCBCaWRpU3RhdHVzJiBjbGVhbkxpbmVCaWRpU3RhdHVzLCB1bnNpZ25l
ZCBjb25zZWN1dGl2ZUh5cGhlbmF0ZWRMaW5lcyk7CiAjaWYgRU5BQkxFKENTU19TSEFQRVMpCi0g
ICAgdm9pZCB1cGRhdGVTaGFwZUFuZFNlZ21lbnRzRm9yQ3VycmVudExpbmUoU2hhcGVJbnNpZGVJ
bmZvKiYsIExheW91dFVuaXQmLCBMaW5lTGF5b3V0U3RhdGUmKTsKKyAgICB2b2lkIHVwZGF0ZVNo
YXBlQW5kU2VnbWVudHNGb3JDdXJyZW50TGluZShTaGFwZUluc2lkZUluZm8qJiwgY29uc3QgTGF5
b3V0U2l6ZSYsIExpbmVMYXlvdXRTdGF0ZSYpOwogICAgIHZvaWQgdXBkYXRlU2hhcGVBbmRTZWdt
ZW50c0ZvckN1cnJlbnRMaW5lSW5GbG93VGhyZWFkKFNoYXBlSW5zaWRlSW5mbyomLCBMaW5lTGF5
b3V0U3RhdGUmKTsKICAgICBib29sIGFkanVzdExvZ2ljYWxMaW5lVG9wQW5kTG9naWNhbEhlaWdo
dElmTmVlZGVkKFNoYXBlSW5zaWRlSW5mbyosIExheW91dFVuaXQsIExpbmVMYXlvdXRTdGF0ZSYs
IElubGluZUJpZGlSZXNvbHZlciYsIEZsb2F0aW5nT2JqZWN0KiwgSW5saW5lSXRlcmF0b3ImLCBX
b3JkTWVhc3VyZW1lbnRzJik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKaW5kZXggOWNhZDJiOTA4NjM5YWY3YTA5ZDk0
ODUzZDA2Yzg5ZmRjZjBjZDY3My4uODE2Nzg1NjYzZjQ4OGRhZDJhYmM2ZmJlZjg4YTMwYTczYzI0
ZTVjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGlu
ZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGlu
ZUxheW91dC5jcHAKQEAgLTE2ODEsNyArMTY4MSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBwdXNo
U2hhcGVDb250ZW50T3ZlcmZsb3dCZWxvd1RoZUNvbnRlbnRCb3goUmVuZGVyQmxvY2sqIGJsb2Nr
CiAgICAgYmxvY2stPnNldExvZ2ljYWxIZWlnaHQobmV3TG9naWNhbEhlaWdodCk7CiB9CiAKLXZv
aWQgUmVuZGVyQmxvY2s6OnVwZGF0ZVNoYXBlQW5kU2VnbWVudHNGb3JDdXJyZW50TGluZShTaGFw
ZUluc2lkZUluZm8qJiBzaGFwZUluc2lkZUluZm8sIExheW91dFVuaXQmIGFic29sdXRlTG9naWNh
bFRvcCwgTGluZUxheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSkKK3ZvaWQgUmVuZGVyQmxvY2s6OnVw
ZGF0ZVNoYXBlQW5kU2VnbWVudHNGb3JDdXJyZW50TGluZShTaGFwZUluc2lkZUluZm8qJiBzaGFw
ZUluc2lkZUluZm8sIGNvbnN0IExheW91dFNpemUmIGxvZ2ljYWxPZmZzZXRGcm9tU2hhcGVDb250
YWluZXIsIExpbmVMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUpCiB7CiAgICAgaWYgKGxheW91dFN0
YXRlLmZsb3dUaHJlYWQoKSkKICAgICAgICAgcmV0dXJuIHVwZGF0ZVNoYXBlQW5kU2VnbWVudHNG
b3JDdXJyZW50TGluZUluRmxvd1RocmVhZChzaGFwZUluc2lkZUluZm8sIGxheW91dFN0YXRlKTsK
QEAgLTE2ODksMTEgKzE2ODksMTIgQEAgdm9pZCBSZW5kZXJCbG9jazo6dXBkYXRlU2hhcGVBbmRT
ZWdtZW50c0ZvckN1cnJlbnRMaW5lKFNoYXBlSW5zaWRlSW5mbyomIHNoYXBlSW4KICAgICBpZiAo
IXNoYXBlSW5zaWRlSW5mbykKICAgICAgICAgcmV0dXJuOwogCi0gICAgTGF5b3V0VW5pdCBsaW5l
VG9wID0gbG9naWNhbEhlaWdodCgpICsgYWJzb2x1dGVMb2dpY2FsVG9wOworICAgIExheW91dFVu
aXQgbGluZVRvcCA9IGxvZ2ljYWxIZWlnaHQoKSArIGxvZ2ljYWxPZmZzZXRGcm9tU2hhcGVDb250
YWluZXIuaGVpZ2h0KCk7CisgICAgTGF5b3V0VW5pdCBsaW5lTGVmdCA9IGxvZ2ljYWxPZmZzZXRG
cm9tU2hhcGVDb250YWluZXIud2lkdGgoKTsKICAgICBMYXlvdXRVbml0IGxpbmVIZWlnaHQgPSB0
aGlzLT5saW5lSGVpZ2h0KGxheW91dFN0YXRlLmxpbmVJbmZvKCkuaXNGaXJzdExpbmUoKSwgaXNI
b3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lLCBQ
b3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMpOwogCiAgICAgLy8gRklYTUU6IEJ1ZyA5NTM2MTog
SXQgaXMgcG9zc2libGUgZm9yIGEgbGluZSB0byBncm93IGJleW9uZCBsaW5lSGVpZ2h0LCBpbiB3
aGljaCBjYXNlIHRoZXNlIHNlZ21lbnRzIG1heSBiZSBpbmNvcnJlY3QuCi0gICAgc2hhcGVJbnNp
ZGVJbmZvLT5jb21wdXRlU2VnbWVudHNGb3JMaW5lKGxpbmVUb3AsIGxpbmVIZWlnaHQpOworICAg
IHNoYXBlSW5zaWRlSW5mby0+Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRTaXplKGxpbmVM
ZWZ0LCBsaW5lVG9wKSwgbGluZUhlaWdodCk7CiAKICAgICBwdXNoU2hhcGVDb250ZW50T3ZlcmZs
b3dCZWxvd1RoZUNvbnRlbnRCb3godGhpcywgc2hhcGVJbnNpZGVJbmZvLCBsaW5lVG9wLCBsaW5l
SGVpZ2h0KTsKIH0KQEAgLTE3NjQsNyArMTc2NSw5IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnVwZGF0
ZVNoYXBlQW5kU2VnbWVudHNGb3JDdXJyZW50TGluZUluRmxvd1RocmVhZChTaGFwZUluc2lkZUlu
CiAgICAgfQogCiAgICAgTGF5b3V0VW5pdCBsaW5lVG9wID0gbG9naWNhbExpbmVUb3BJbkZsb3dU
aHJlYWQgLSBjdXJyZW50UmVnaW9uLT5sb2dpY2FsVG9wRm9yRmxvd1RocmVhZENvbnRlbnQoKSAr
IGN1cnJlbnRSZWdpb24tPmJvcmRlckFuZFBhZGRpbmdCZWZvcmUoKTsKLSAgICBzaGFwZUluc2lk
ZUluZm8tPmNvbXB1dGVTZWdtZW50c0ZvckxpbmUobGluZVRvcCwgbGluZUhlaWdodCk7CisKKyAg
ICAvLyBGSVhNRTogMTE4NTcxIC0gU2hhcGUgaW5zaWRlIG9uIGEgcmVnaW9uIGRvZXMgbm90IHll
dCB0YWtlIGludG8gYWNjb3VudCBpdHMgcGFkZGluZyBmb3IgbmVzdGVkIGZsb3cgYmxvY2tzCisg
ICAgc2hhcGVJbnNpZGVJbmZvLT5jb21wdXRlU2VnbWVudHNGb3JMaW5lKExheW91dFNpemUoMCwg
bGluZVRvcCksIGxpbmVIZWlnaHQpOwogCiAgICAgaWYgKGN1cnJlbnRSZWdpb24tPmlzTGFzdFJl
Z2lvbigpKQogICAgICAgICBwdXNoU2hhcGVDb250ZW50T3ZlcmZsb3dCZWxvd1RoZUNvbnRlbnRC
b3godGhpcywgc2hhcGVJbnNpZGVJbmZvLCBsaW5lVG9wLCBsaW5lSGVpZ2h0KTsKQEAgLTE4MDIs
MTggKzE4MDUsMTggQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0UnVuc0FuZEZsb2F0c0luUmFu
Z2UoTGluZUxheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSwgSW5saW4KICAgICBMaW5lQnJlYWtlciBs
aW5lQnJlYWtlcih0aGlzKTsKIAogI2lmIEVOQUJMRShDU1NfU0hBUEVTKQotICAgIExheW91dFVu
aXQgYWJzb2x1dGVMb2dpY2FsVG9wOworICAgIExheW91dFNpemUgbG9naWNhbE9mZnNldEZyb21T
aGFwZUNvbnRhaW5lcjsKICAgICBTaGFwZUluc2lkZUluZm8qIHNoYXBlSW5zaWRlSW5mbyA9IGxh
eW91dFNoYXBlSW5zaWRlSW5mbygpOwogICAgIGlmIChzaGFwZUluc2lkZUluZm8pIHsKICAgICAg
ICAgQVNTRVJUKHNoYXBlSW5zaWRlSW5mby0+b3duZXIoKSA9PSB0aGlzIHx8IGFsbG93c1NoYXBl
SW5zaWRlSW5mb1NoYXJpbmcoKSk7CiAgICAgICAgIGlmIChzaGFwZUluc2lkZUluZm8gIT0gdGhp
cy0+c2hhcGVJbnNpZGVJbmZvKCkpIHsKICAgICAgICAgICAgIC8vIEZJWE1FIEJ1ZyAxMDAyODQ6
IElmIHN1YnNlcXVlbnQgTGF5b3V0U3RhdGVzIGFyZSBwdXNoZWQsIHdlIHdpbGwgaGF2ZSB0byBh
ZGQKICAgICAgICAgICAgIC8vIHRoZWlyIG9mZnNldHMgZnJvbSB0aGUgb3JpZ2luYWwgc2hhcGUt
aW5zaWRlIGNvbnRhaW5lci4KLSAgICAgICAgICAgIGFic29sdXRlTG9naWNhbFRvcCA9IGxvZ2lj
YWxUb3AoKTsKKyAgICAgICAgICAgIGxvZ2ljYWxPZmZzZXRGcm9tU2hhcGVDb250YWluZXIgPSBs
b2dpY2FsT2Zmc2V0RnJvbVNoYXBlQW5jZXN0b3JDb250YWluZXIoc2hhcGVJbnNpZGVJbmZvLT5v
d25lcigpKTsKICAgICAgICAgfQogICAgICAgICAvLyBCZWdpbiBsYXlvdXQgYXQgdGhlIGxvZ2lj
YWwgdG9wIG9mIG91ciBzaGFwZSBpbnNpZGUuCi0gICAgICAgIGlmIChsb2dpY2FsSGVpZ2h0KCkg
KyBhYnNvbHV0ZUxvZ2ljYWxUb3AgPCBzaGFwZUluc2lkZUluZm8tPnNoYXBlTG9naWNhbFRvcCgp
KSB7Ci0gICAgICAgICAgICBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQgPSBzaGFwZUluc2lkZUlu
Zm8tPnNoYXBlTG9naWNhbFRvcCgpIC0gYWJzb2x1dGVMb2dpY2FsVG9wOworICAgICAgICBpZiAo
bG9naWNhbEhlaWdodCgpICsgbG9naWNhbE9mZnNldEZyb21TaGFwZUNvbnRhaW5lci5oZWlnaHQo
KSA8IHNoYXBlSW5zaWRlSW5mby0+c2hhcGVMb2dpY2FsVG9wKCkpIHsKKyAgICAgICAgICAgIExh
eW91dFVuaXQgbG9naWNhbEhlaWdodCA9IHNoYXBlSW5zaWRlSW5mby0+c2hhcGVMb2dpY2FsVG9w
KCkgLSBsb2dpY2FsT2Zmc2V0RnJvbVNoYXBlQ29udGFpbmVyLmhlaWdodCgpOwogICAgICAgICAg
ICAgaWYgKGxheW91dFN0YXRlLmZsb3dUaHJlYWQoKSkKICAgICAgICAgICAgICAgICBsb2dpY2Fs
SGVpZ2h0IC09IHNoYXBlSW5zaWRlSW5mby0+b3duZXIoKS0+Ym9yZGVyQW5kUGFkZGluZ0JlZm9y
ZSgpOwogICAgICAgICAgICAgc2V0TG9naWNhbEhlaWdodChsb2dpY2FsSGVpZ2h0KTsKQEAgLTE4
NDEsNyArMTg0NCw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dFJ1bnNBbmRGbG9hdHNJblJh
bmdlKExpbmVMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIElubGluCiAgICAgICAgIEZsb2F0aW5n
T2JqZWN0KiBsYXN0RmxvYXRGcm9tUHJldmlvdXNMaW5lID0gKGNvbnRhaW5zRmxvYXRzKCkpID8g
bV9mbG9hdGluZ09iamVjdHMtPnNldCgpLmxhc3QoKSA6IDA7CiAKICNpZiBFTkFCTEUoQ1NTX1NI
QVBFUykKLSAgICAgICAgdXBkYXRlU2hhcGVBbmRTZWdtZW50c0ZvckN1cnJlbnRMaW5lKHNoYXBl
SW5zaWRlSW5mbywgYWJzb2x1dGVMb2dpY2FsVG9wLCBsYXlvdXRTdGF0ZSk7CisgICAgICAgIHVw
ZGF0ZVNoYXBlQW5kU2VnbWVudHNGb3JDdXJyZW50TGluZShzaGFwZUluc2lkZUluZm8sIGxvZ2lj
YWxPZmZzZXRGcm9tU2hhcGVDb250YWluZXIsIGxheW91dFN0YXRlKTsKICNlbmRpZgogICAgICAg
ICBXb3JkTWVhc3VyZW1lbnRzIHdvcmRNZWFzdXJlbWVudHM7CiAgICAgICAgIGVuZCA9IGxpbmVC
cmVha2VyLm5leHRMaW5lQnJlYWsocmVzb2x2ZXIsIGxheW91dFN0YXRlLmxpbmVJbmZvKCksIHJl
bmRlclRleHRJbmZvLCBsYXN0RmxvYXRGcm9tUHJldmlvdXNMaW5lLCBjb25zZWN1dGl2ZUh5cGhl
bmF0ZWRMaW5lcywgd29yZE1lYXN1cmVtZW50cyk7CkBAIC0xODU3LDcgKzE4NjAsNyBAQCB2b2lk
IFJlbmRlckJsb2NrOjpsYXlvdXRSdW5zQW5kRmxvYXRzSW5SYW5nZShMaW5lTGF5b3V0U3RhdGUm
IGxheW91dFN0YXRlLCBJbmxpbgogICAgICAgICB9CiAKICNpZiBFTkFCTEUoQ1NTX1NIQVBFUykK
LSAgICAgICAgaWYgKGFkanVzdExvZ2ljYWxMaW5lVG9wQW5kTG9naWNhbEhlaWdodElmTmVlZGVk
KHNoYXBlSW5zaWRlSW5mbywgYWJzb2x1dGVMb2dpY2FsVG9wLCBsYXlvdXRTdGF0ZSwgcmVzb2x2
ZXIsIGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUsIGVuZCwgd29yZE1lYXN1cmVtZW50cykpCisg
ICAgICAgIGlmIChhZGp1c3RMb2dpY2FsTGluZVRvcEFuZExvZ2ljYWxIZWlnaHRJZk5lZWRlZChz
aGFwZUluc2lkZUluZm8sIGxvZ2ljYWxPZmZzZXRGcm9tU2hhcGVDb250YWluZXIuaGVpZ2h0KCks
IGxheW91dFN0YXRlLCByZXNvbHZlciwgbGFzdEZsb2F0RnJvbVByZXZpb3VzTGluZSwgZW5kLCB3
b3JkTWVhc3VyZW1lbnRzKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogI2VuZGlmCiAgICAgICAg
IEFTU0VSVChlbmQgIT0gcmVzb2x2ZXIucG9zaXRpb24oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5zaWRlSW5mby5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8uaAppbmRleCBjMDA2YjM2NDU0Yjlk
YWIxYzIwMjY1NzcwNWVkNDk3MTg5YmM3ZTc2Li40NGE3NGNjMDYyZDVjNDUyZTg0MjJhYjYwMjFh
Y2Y4NjgyZjAxNzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVz
L1NoYXBlSW5zaWRlSW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMv
U2hhcGVJbnNpZGVJbmZvLmgKQEAgLTY4LDYgKzY4LDE3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRp
YyBib29sIGlzRW5hYmxlZEZvcihjb25zdCBSZW5kZXJCbG9jayogcmVuZGVyZXIpOwogCisgICAg
Ym9vbCBjb21wdXRlU2VnbWVudHNGb3JMaW5lKExheW91dFNpemUgbGluZU9mZnNldCwgTGF5b3V0
VW5pdCBsaW5lSGVpZ2h0KQorICAgIHsKKyAgICAgICAgbV9zZWdtZW50UmFuZ2VzLmNsZWFyKCk7
CisgICAgICAgIGJvb2wgcmVzdWx0ID0gU2hhcGVJbmZvPFJlbmRlckJsb2NrLCAmUmVuZGVyU3R5
bGU6OnJlc29sdmVkU2hhcGVJbnNpZGUsICZTaGFwZTo6Z2V0SW5jbHVkZWRJbnRlcnZhbHM+Ojpj
b21wdXRlU2VnbWVudHNGb3JMaW5lKGxpbmVPZmZzZXQuaGVpZ2h0KCksIGxpbmVIZWlnaHQpOwor
ICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fc2VnbWVudHMuc2l6ZSgpOyBpKyspIHsK
KyAgICAgICAgICAgIG1fc2VnbWVudHNbaV0ubG9naWNhbExlZnQgLT0gbGluZU9mZnNldC53aWR0
aCgpOworICAgICAgICAgICAgbV9zZWdtZW50c1tpXS5sb2dpY2FsUmlnaHQgLT0gbGluZU9mZnNl
dC53aWR0aCgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCiAg
ICAgdmlydHVhbCBib29sIGNvbXB1dGVTZWdtZW50c0ZvckxpbmUoTGF5b3V0VW5pdCBsaW5lVG9w
LCBMYXlvdXRVbml0IGxpbmVIZWlnaHQpIE9WRVJSSURFCiAgICAgewogICAgICAgICBtX3NlZ21l
bnRSYW5nZXMuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4MDlhYzY3ODhjZGViYjAyN2NhODVjYmFmMjVlMDMz
OGFhZGQ4ZTViLi5kMTEzNDEzZmE2NjE0NmI4NDYyZDA1OWFlOTU3ODA1YzFjOGVhNjU0IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMTMtMDctMjIgIEJlYXIgVHJhdmlzICA8YmV0cmF2aXNAYWRv
YmUuY29tPgorCisgICAgICAgIFtDU1MgU2hhcGVzXSBTaGFwZSdzIGNvbnRlbnQgZ2V0cyBleHRy
YSBsZWZ0IG9mZnNldCB3aGVuIGxlZnQtYm9yZGVyIGlzIHBvc2l0aXZlIG9uIHRoZSBjb250ZW50
IGJveAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE3
NTczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVz
dCB0aGF0IG5lc3RlZCBjaGlsZHJlbiB3aXRoIHBhZGRpbmcgY29ycmVjdGx5IGFwcGx5IGFuIGFu
Y2VzdG9yJ3Mgc2hhcGUtaW5zaWRlCisgICAgICAgIGFjcm9zcyBkaWZmZXJlbnQgd3JpdGluZyBt
b2Rlcy4KKworICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5z
aWRlLW9mZnNldC1ibG9jay1jaGlsZHJlbi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1vZmZzZXQtYmxvY2st
Y2hpbGRyZW4uaHRtbDogQWRkZWQuCisKIDIwMTMtMDctMjIgIFphbGFuIEJ1anRhcyAgPHphbGFu
QGFwcGxlLmNvbT4KIAogICAgICAgICBzZWdmYXVsdCBpbiBSZW5kZXJMYXllckNvbXBvc2l0b3Ig
d2hlbiB0aGUgaWZyYW1lJ3MgcG9zaXRpb24gYXR0cmlidXRlIGlzIGNoYW5nZWQgYW5kIGl0IGVt
YmVkcyA8b2JqZWN0Pi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2hhcGVzL3NoYXBl
LWluc2lkZS9zaGFwZS1pbnNpZGUtb2Zmc2V0LWJsb2NrLWNoaWxkcmVuLWV4cGVjdGVkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3NoYXBlcy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLW9mZnNl
dC1ibG9jay1jaGlsZHJlbi1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3OWEwODM5M2YyZDVk
NDJmZTU2MGMxMzM3MTQzNjg2YWIzZDQyNTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3NoYXBlcy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLW9mZnNldC1ibG9jay1jaGls
ZHJlbi1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzdHlsZSBpZD0nc3R5bGVzaGVldCc+Cisuc2hhcGUtaW5zaWRlIHsKKyAg
ICBmb250OiA1MHB4LzEgQWhlbSwgc2Fucy1zZXJpZjsKKyAgICBjb2xvcjogZ3JlZW47CisgICAg
ZmxvYXQ6IGxlZnQ7Cit9Cis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Jy4uL3Jlc291cmNlcy9zaW1w
bGUtcmVjdGFuZ2xlLmpzJz48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgaWRzID0gWworICAgICAg
ICAnc2hhcGUtaW5zaWRlJywKKyAgICAgICAgJ3NoYXBlLWluc2lkZS1ybCcsCisgICAgICAgICdz
aGFwZS1pbnNpZGUtbHInLAorICAgICAgICAnc2hhcGUtaW5zaWRlLXRiLWxyLXRiJywKKyAgICAg
ICAgJ3NoYXBlLWluc2lkZS1sci1ybC1scicKKyAgICBdOworICAgIGlkcy5mb3JFYWNoKGZ1bmN0
aW9uKGlkKSB7CisgICAgICAgIGNyZWF0ZVJlY3RhbmdsZVRlc3RSZXN1bHQoaWQsICdzdHlsZXNo
ZWV0JywgeyB3aWR0aDogMzAwLCBoZWlnaHQ6IDMwMCB9LCB7IHg6IDEwMCwgeTogMTAwLCB3aWR0
aDogMTAwLCBoZWlnaHQ6IDEwMCB9LCAncHgnLCBudWxsKTsKKyAgICB9KTsKKzwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgZW5zdXJlcyB0aGF0IHNoYXBlLWluc2lkZSB0
YWtlcyBpbnRvIGFjY291bnQgcGFkZGluZyBvbiBuZXN0ZWQgY2hpbGQgYmxvY2tzIGluIGRpZmZl
cmVudCB3cml0aW5nIG1vZGVzLiBZb3Ugc2hvdWxkIHNlZSBzZXZlcmFsIGdyZWVuIHNxdWFyZXMg
d2l0aGluIGEgYmx1ZSBvdXRsaW5lLiBUaGUgdGVzdCByZXF1aXJlcyB0aGUgQWhlbSBmb250Ljwv
cD4KKzxkaXYgaWQ9J3NoYXBlLWluc2lkZScgY2xhc3M9J3NoYXBlLWluc2lkZSc+eHh4eDwvZGl2
PgorPGRpdiBpZD0nc2hhcGUtaW5zaWRlLXJsJyBjbGFzcz0nc2hhcGUtaW5zaWRlJz54eHh4PC9k
aXY+Cis8ZGl2IGlkPSdzaGFwZS1pbnNpZGUtbHInIGNsYXNzPSdzaGFwZS1pbnNpZGUnPnh4eHg8
L2Rpdj4KKzxkaXYgaWQ9J3NoYXBlLWluc2lkZS10Yi1sci10YicgY2xhc3M9J3NoYXBlLWluc2lk
ZSc+eHh4eDwvZGl2PgorPGRpdiBpZD0nc2hhcGUtaW5zaWRlLWxyLXJsLWxyJyBjbGFzcz0nc2hh
cGUtaW5zaWRlJz54eHh4PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3NoYXBlcy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLW9mZnNldC1ibG9j
ay1jaGlsZHJlbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3No
YXBlLWluc2lkZS1vZmZzZXQtYmxvY2stY2hpbGRyZW4uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYWVhMzI5
ZmI0YzViYmUwYjBkMmU1YWVhZWMzZDczMmNmNmUzNzhiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1vZmZzZXQtYmxv
Y2stY2hpbGRyZW4uaHRtbApAQCAtMCwwICsxLDQ3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c3R5bGUgaWQ9J3N0eWxlc2hlZXQnPgorLnNoYXBlLWluc2lkZSB7CisgICAg
Zm9udDogNTBweC8xIEFoZW0sIHNhbnMtc2VyaWY7CisgICAgY29sb3I6IGdyZWVuOworICAgIGZs
b2F0OiBsZWZ0OworfQorLmhvcml6b250YWwudGIgeworICAgIC13ZWJraXQtd3JpdGluZy1tb2Rl
OiBob3Jpem9udGFsLXRiOworfQorLnZlcnRpY2FsLnJsIHsKKyAgICAtd2Via2l0LXdyaXRpbmct
bW9kZTogdmVydGljYWwtcmw7Cit9CisudmVydGljYWwubHIgeworICAgIC13ZWJraXQtd3JpdGlu
Zy1tb2RlOiB2ZXJ0aWNhbC1scjsKK30KKy5zaGFwZS1pbnNpZGUgKiB7CisgICAgcGFkZGluZzog
NXB4IDEwcHggMTVweCAyMHB4OworfQorPC9zdHlsZT4KKzxzY3JpcHQgc3JjPScuLi9yZXNvdXJj
ZXMvc2ltcGxlLXJlY3RhbmdsZS5qcyc+PC9zY3JpcHQ+Cis8c2NyaXB0Pgord2luZG93Lm9ubG9h
ZCA9IGZ1bmN0aW9uKCkgeworICAgIGlkcyA9IFsKKyAgICAgICAgJ3NoYXBlLWluc2lkZScsCisg
ICAgICAgICdzaGFwZS1pbnNpZGUtcmwnLAorICAgICAgICAnc2hhcGUtaW5zaWRlLWxyJywKKyAg
ICAgICAgJ3NoYXBlLWluc2lkZS10Yi1sci10YicsCisgICAgICAgICdzaGFwZS1pbnNpZGUtbHIt
cmwtbHInCisgICAgXTsKKyAgICBpZHMuZm9yRWFjaChmdW5jdGlvbihpZCkgeworICAgICAgICBj
cmVhdGVSZWN0YW5nbGVUZXN0KGlkLCAnc3R5bGVzaGVldCcsIHsgd2lkdGg6IDMwMCwgaGVpZ2h0
OiAzMDAgfSwgeyB4OiAxMDAsIHk6IDEwMCwgd2lkdGg6IDEwMCwgaGVpZ2h0OiAxMDAgfSwgJ3B4
JywgbnVsbCk7CisgICAgfSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhp
cyB0ZXN0IGVuc3VyZXMgdGhhdCBzaGFwZS1pbnNpZGUgdGFrZXMgaW50byBhY2NvdW50IHBhZGRp
bmcgb24gbmVzdGVkIGNoaWxkIGJsb2NrcyBpbiBkaWZmZXJlbnQgd3JpdGluZyBtb2Rlcy4gWW91
IHNob3VsZCBzZWUgc2V2ZXJhbCBncmVlbiBzcXVhcmVzIHdpdGhpbiBhIGJsdWUgb3V0bGluZS4g
VGhlIHRlc3QgcmVxdWlyZXMgdGhlIEFoZW0gZm9udC48L3A+Cis8ZGl2IGlkPSdzaGFwZS1pbnNp
ZGUnIGNsYXNzPSdzaGFwZS1pbnNpZGUnPjxkaXY+PGRpdj54eHh4PC9kaXY+PC9kaXY+PC9kaXY+
Cis8ZGl2IGlkPSdzaGFwZS1pbnNpZGUtcmwnIGNsYXNzPSdzaGFwZS1pbnNpZGUgdmVydGljYWwg
bHInPjxkaXY+PGRpdj54eHh4PC9kaXY+PC9kaXY+PC9kaXY+Cis8ZGl2IGlkPSdzaGFwZS1pbnNp
ZGUtbHInIGNsYXNzPSdzaGFwZS1pbnNpZGUgdmVydGljYWwgcmwnPjxkaXY+PGRpdj54eHh4PC9k
aXY+PC9kaXY+PC9kaXY+Cis8ZGl2IGlkPSdzaGFwZS1pbnNpZGUtdGItbHItdGInIGNsYXNzPSdz
aGFwZS1pbnNpZGUnPjxkaXYgY2xhc3M9J3ZlcnRpY2FsIGxyJz48ZGl2IGNsYXNzPSdob3Jpem9u
dGFsIHRiJz54eHh4PC9kaXY+PC9kaXY+PC9kaXY+Cis8ZGl2IGlkPSdzaGFwZS1pbnNpZGUtbHIt
cmwtbHInIGNsYXNzPSdzaGFwZS1pbnNpZGUgdmVydGljYWwgcmwnPjxkaXYgY2xhc3M9J3ZlcnRp
Y2FsIGxyJz48ZGl2IGNsYXNzPSd2ZXJ0aWNhbCBybCc+eHh4eDwvZGl2PjwvZGl2PjwvZGl2Pgor
PC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207344</attachid>
            <date>2013-07-23 13:24:09 -0700</date>
            <delta_ts>2013-08-15 11:45:55 -0700</delta_ts>
            <desc>Updating changelogs</desc>
            <filename>bug-117573-20130723132408.patch</filename>
            <type>text/plain</type>
            <size>18412</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzMDA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTc0ZTY0Y2RiMmQ3NzFm
ZTFkMDM5N2M4NDE2ODcxYTg1OTlhMzIxYS4uNjJlNmMyMGMzNWIxMzdlYjlhZTYzYWQ5YTRlNjEy
ZDljYzc2NDgwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTA3LTIzICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIFNoYXBlc10gU2hh
cGUncyBjb250ZW50IGdldHMgZXh0cmEgbGVmdCBvZmZzZXQgd2hlbiBsZWZ0LWJvcmRlciBpcyBw
b3NpdGl2ZSBvbiB0aGUgY29udGVudCBib3gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExNzU3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE5lc3RlZCBibG9ja3MgbmVlZCB0byB0YWtlIGludG8gYWNjb3Vu
dCB0aGVpciBvZmZzZXQgZnJvbSB0aGUgc2hhcGUtaW5zaWRlIGNvbnRhaW5lci4KKyAgICAgICAg
VGhlIG5ldyBjb2RlIGNhbGN1bGF0ZXMgdGhlIG9mZnNldCBmcm9tIHRoZSBzaGFwZS1pbnNpZGUg
Y29udGFpbmVyLCB0aGVuIGFwcGxpZXMgdGhlCisgICAgICAgIG9mZnNldCB0byB0aGUgY29tcHV0
ZWQgc2VnbWVudHMuIFRoZSBsaW5lIG11c3QgYmUgbW92ZWQgZG93biBieSB0aGUgb2Zmc2V0J3Mg
aGVpZ2h0LAorICAgICAgICBhbmQgZWFjaCBzZWdtZW50IG11c3QgYmUgbW92ZWQgbGVmdCBieSB0
aGUgb2Zmc2V0J3Mgd2lkdGguCisKKyAgICAgICAgVGVzdDogZmFzdC9zaGFwZXMvc2hhcGUtaW5z
aWRlL3NoYXBlLWluc2lkZS1vZmZzZXQtYmxvY2stY2hpbGRyZW4uaHRtbAorCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2Nr
OjpyZWxheW91dFNoYXBlRGVzY2VuZGFudElmTW92ZWQpOiBSZWxheW91dCBhIGJsb2NrIGNoaWxk
IGlmIGl0cworICAgICAgICBuZXcgbG9naWNhbCBsZWZ0IHdvdWxkIGNhdXNlIGl0IHRvIHJlc3Qg
YXQgYSBuZXcgcG9zaXRpb24gd2l0aGluIGEgc2hhcGUgY29udGFpbmVyLgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQmxvY2s6OmxvZ2ljYWxPZmZzZXRGcm9tU2hhcGVBbmNlc3RvckNvbnRhaW5l
cik6IENhbGN1bGF0ZSB0aGUgbG9naWNhbAorICAgICAgICBvZmZzZXQgZm9ybSBhIHNoYXBlIGlu
c2lkZSBhbmNlc3RvciBjb250YWluZXIuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
bGF5b3V0QmxvY2tDaGlsZCk6IENhbGwgcmVsYXlvdXRTaGFwZURlc2NlbmRhbnRJZk1vdmVkIHdp
dGggdGhlCisgICAgICAgIG5ldyBwb3NpdGlvbiBvZmZzZXQuCisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6dXBkYXRlU2hhcGVBbmRTZWdt
ZW50c0ZvckN1cnJlbnRMaW5lKTogVXNlIGxheW91dCBvZmZzZXQsIHJhdGhlcgorICAgICAgICB0
aGFuIGp1c3QgdmVydGljYWwgb2Zmc2V0LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6
OnVwZGF0ZVNoYXBlQW5kU2VnbWVudHNGb3JDdXJyZW50TGluZUluRmxvd1RocmVhZCk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dFJ1bnNBbmRGbG9hdHNJblJh
bmdlKTogRGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8u
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXBlSW5zaWRlSW5mbzo6Y29tcHV0ZVNlZ21lbnRzRm9y
TGluZSk6IFNoaWZ0IHNlZ21lbnRzIGxvZ2ljYWxseSBsZWZ0IHdoZW4KKyAgICAgICAgdGhlcmUg
aXMgYW4gaW5saW5lIG9mZnNldC4KKwogMjAxMy0wNy0yMiAgQmVuamFtaW4gUG91bGFpbiAgPGJl
bmphbWluQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRG8gbm90IGFsbG9jYXRlIDIgQXRvbWljU3Ry
aW5nIGp1c3QgdG8gZG8gYSBjb21wYXJpc29uIGluIEhUTUxBbmNob3JFbGVtZW50OjpzZXRSZWwo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggZTY5NmYzMWQy
NzU2YzhjNGRkNjZkYTI5NzdiNjMwOWQ4OGVlYTVmOC4uYWJjOTYzY2VkNDI2YTQ5M2VmNDcwMmY5
N2QyZDY5MGMzY2RhY2I0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
Y3BwCkBAIC0xNDM2LDYgKzE0MzYsNTAgQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0KCkKIH0K
IAogI2lmIEVOQUJMRShDU1NfU0hBUEVTKQordm9pZCBSZW5kZXJCbG9jazo6cmVsYXlvdXRTaGFw
ZURlc2NlbmRhbnRJZk1vdmVkKFJlbmRlckJsb2NrKiBjaGlsZCwgTGF5b3V0U2l6ZSBvZmZzZXQp
Cit7CisgICAgTGF5b3V0VW5pdCBsZWZ0ID0gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IG9m
ZnNldC53aWR0aCgpIDogb2Zmc2V0LmhlaWdodCgpOworICAgIGlmICghbGVmdCB8fCAhY2hpbGQg
fHwgY2hpbGQtPnNoYXBlSW5zaWRlSW5mbygpIHx8ICFsYXlvdXRTaGFwZUluc2lkZUluZm8oKSkK
KyAgICAgICAgcmV0dXJuOworICAgIC8vIFByb3BhZ2F0ZSBsYXlvdXQgbWFya2VycyBvbmx5IHVw
IHRvIHRoZSBjaGlsZCwgYXMgd2UgYXJlIHN0aWxsIGluIHRoZSBtaWRkbGUKKyAgICAvLyBvZiBh
IGxheW91dCBwYXNzCisgICAgY2hpbGQtPnNldE5vcm1hbENoaWxkTmVlZHNMYXlvdXQodHJ1ZSk7
CisgICAgY2hpbGQtPm1hcmtTaGFwZUluc2lkZURlc2NlbmRhbnRzRm9yTGF5b3V0KCk7CisgICAg
Y2hpbGQtPmxheW91dElmTmVlZGVkKCk7Cit9CisKK0xheW91dFNpemUgUmVuZGVyQmxvY2s6Omxv
Z2ljYWxPZmZzZXRGcm9tU2hhcGVBbmNlc3RvckNvbnRhaW5lcihjb25zdCBSZW5kZXJCbG9jayog
Y29udGFpbmVyKSBjb25zdAoreworICAgIGNvbnN0IFJlbmRlckJsb2NrKiBjdXJyZW50QmxvY2sg
PSB0aGlzOworICAgIExheW91dFJlY3QgYmxvY2tSZWN0KGN1cnJlbnRCbG9jay0+Ym9yZGVyQm94
UmVjdCgpKTsKKyAgICB3aGlsZSAoY3VycmVudEJsb2NrICYmICFjdXJyZW50QmxvY2stPmlzUmVu
ZGVyRmxvd1RocmVhZCgpICYmIGN1cnJlbnRCbG9jayAhPSBjb250YWluZXIpIHsKKyAgICAgICAg
UmVuZGVyQmxvY2sqIGNvbnRhaW5lckJsb2NrID0gY3VycmVudEJsb2NrLT5jb250YWluaW5nQmxv
Y2soKTsKKyAgICAgICAgQVNTRVJUKGNvbnRhaW5lckJsb2NrKTsKKyAgICAgICAgaWYgKCFjb250
YWluZXJCbG9jaykKKyAgICAgICAgICAgIHJldHVybiBMYXlvdXRTaXplKCk7CisKKyAgICAgICAg
aWYgKGNvbnRhaW5lckJsb2NrLT5zdHlsZSgpLT53cml0aW5nTW9kZSgpICE9IGN1cnJlbnRCbG9j
ay0+c3R5bGUoKS0+d3JpdGluZ01vZGUoKSkgeworICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byBw
dXQgdGhlIGJsb2NrIHJlY3QgaW4gY29udGFpbmVyIGNvb3JkaW5hdGVzCisgICAgICAgICAgICAv
LyBhbmQgd2UgaGF2ZSB0byB0YWtlIGludG8gYWNjb3VudCBib3RoIHRoZSBjb250YWluZXIgYW5k
IGN1cnJlbnQgYmxvY2sgZmxpcHBpbmcgbW9kZXMKKyAgICAgICAgICAgIC8vIEJ1ZyAxMTgwNzM6
IEZsaXBwaW5nIGlubGluZSBhbmQgYmxvY2sgZGlyZWN0aW9ucyBhdCB0aGUgc2FtZSB0aW1lIHdp
bGwgbm90IHdvcmssCisgICAgICAgICAgICAvLyBhcyBvbmUgb2YgdGhlIGZsaXBwZWQgZGltZW5z
aW9ucyB3aWxsIG5vdCB5ZXQgaGF2ZSBiZWVuIHNldCB0byBpdHMgZmluYWwgc2l6ZQorICAgICAg
ICAgICAgaWYgKGNvbnRhaW5lckJsb2NrLT5zdHlsZSgpLT5pc0ZsaXBwZWRCbG9ja3NXcml0aW5n
TW9kZSgpKSB7CisgICAgICAgICAgICAgICAgaWYgKGNvbnRhaW5lckJsb2NrLT5pc0hvcml6b250
YWxXcml0aW5nTW9kZSgpKQorICAgICAgICAgICAgICAgICAgICBibG9ja1JlY3Quc2V0WShjdXJy
ZW50QmxvY2stPmhlaWdodCgpIC0gYmxvY2tSZWN0Lm1heFkoKSk7CisgICAgICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgICAgICBibG9ja1JlY3Quc2V0WChjdXJyZW50QmxvY2stPndp
ZHRoKCkgLSBibG9ja1JlY3QubWF4WCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGN1
cnJlbnRCbG9jay0+ZmxpcEZvcldyaXRpbmdNb2RlKGJsb2NrUmVjdCk7CisgICAgICAgIH0KKwor
ICAgICAgICBibG9ja1JlY3QubW92ZUJ5KGN1cnJlbnRCbG9jay0+bG9jYXRpb24oKSk7CisgICAg
ICAgIGN1cnJlbnRCbG9jayA9IGNvbnRhaW5lckJsb2NrOworICAgIH0KKworICAgIExheW91dFNp
emUgcmVzdWx0ID0gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IExheW91dFNpemUoYmxvY2tS
ZWN0LngoKSwgYmxvY2tSZWN0LnkoKSkgOiBMYXlvdXRTaXplKGJsb2NrUmVjdC55KCksIGJsb2Nr
UmVjdC54KCkpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIHZvaWQgUmVuZGVyQmxvY2s6OnVw
ZGF0ZVNoYXBlSW5zaWRlSW5mb0FmdGVyU3R5bGVDaGFuZ2UoY29uc3QgU2hhcGVWYWx1ZSogc2hh
cGVJbnNpZGUsIGNvbnN0IFNoYXBlVmFsdWUqIG9sZFNoYXBlSW5zaWRlKQogewogICAgIC8vIEZJ
WE1FOiBBIGZ1dHVyZSBvcHRpbWl6YXRpb24gd291bGQgZG8gYSBkZWVwIGNvbXBhcmlzb24gZm9y
IGVxdWFsaXR5LgpAQCAtMjcxMyw2ICsyNzU3LDExIEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91
dEJsb2NrQ2hpbGQoUmVuZGVyQm94KiBjaGlsZCwgTWFyZ2luSW5mbyYgbWFyZ2luSW5mbywgTGF5
CiAgICAgLy8gTm93IHBsYWNlIHRoZSBjaGlsZCBpbiB0aGUgY29ycmVjdCBsZWZ0IHBvc2l0aW9u
CiAgICAgZGV0ZXJtaW5lTG9naWNhbExlZnRQb3NpdGlvbkZvckNoaWxkKGNoaWxkLCBBcHBseUxh
eW91dERlbHRhKTsKIAorICAgIExheW91dFNpemUgY2hpbGRPZmZzZXQgPSBjaGlsZC0+bG9jYXRp
b24oKSAtIG9sZFJlY3QubG9jYXRpb24oKTsKKyNpZiBFTkFCTEUoQ1NTX1NIQVBFUykKKyAgICBy
ZWxheW91dFNoYXBlRGVzY2VuZGFudElmTW92ZWQoY2hpbGRSZW5kZXJCbG9jaywgY2hpbGRPZmZz
ZXQpOworI2VuZGlmCisKICAgICAvLyBVcGRhdGUgb3VyIGhlaWdodCBub3cgdGhhdCB0aGUgY2hp
bGQgaGFzIGJlZW4gcGxhY2VkIGluIHRoZSBjb3JyZWN0IHBvc2l0aW9uLgogICAgIHNldExvZ2lj
YWxIZWlnaHQobG9naWNhbEhlaWdodCgpICsgbG9naWNhbEhlaWdodEZvckNoaWxkKGNoaWxkKSk7
CiAgICAgaWYgKG11c3RTZXBhcmF0ZU1hcmdpbkFmdGVyRm9yQ2hpbGQoY2hpbGQpKSB7CkBAIC0y
NzI0LDcgKzI3NzMsNiBAQCB2b2lkIFJlbmRlckJsb2NrOjpsYXlvdXRCbG9ja0NoaWxkKFJlbmRl
ckJveCogY2hpbGQsIE1hcmdpbkluZm8mIG1hcmdpbkluZm8sIExheQogICAgIGlmIChjaGlsZFJl
bmRlckJsb2NrICYmIGNoaWxkUmVuZGVyQmxvY2stPmNvbnRhaW5zRmxvYXRzKCkpCiAgICAgICAg
IG1heEZsb2F0TG9naWNhbEJvdHRvbSA9IG1heChtYXhGbG9hdExvZ2ljYWxCb3R0b20sIGFkZE92
ZXJoYW5naW5nRmxvYXRzKHRvUmVuZGVyQmxvY2soY2hpbGQpLCAhY2hpbGROZWVkZWRMYXlvdXQp
KTsKIAotICAgIExheW91dFNpemUgY2hpbGRPZmZzZXQgPSBjaGlsZC0+bG9jYXRpb24oKSAtIG9s
ZFJlY3QubG9jYXRpb24oKTsKICAgICBpZiAoY2hpbGRPZmZzZXQud2lkdGgoKSB8fCBjaGlsZE9m
ZnNldC5oZWlnaHQoKSkgewogICAgICAgICB2aWV3KCktPmFkZExheW91dERlbHRhKGNoaWxkT2Zm
c2V0KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAppbmRleCBkZTllOWVj
NmVjNGY2YTZiM2E3MjVmN2ZlNDQ0Mzg4ZDc3ZTAxN2Y2Li4xNjg1YjU0MWU0ZGNiYTg5Mjk2ZjJm
MWRkZDUzMzJhMTA3ZWFlNzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
aApAQCAtNjExLDYgKzYxMSw4IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKENTU19TSEFQRVMpCiAg
ICAgdm9pZCBjb21wdXRlU2hhcGVTaXplKCk7CiAgICAgdm9pZCB1cGRhdGVTaGFwZUluc2lkZUlu
Zm9BZnRlclN0eWxlQ2hhbmdlKGNvbnN0IFNoYXBlVmFsdWUqLCBjb25zdCBTaGFwZVZhbHVlKiBv
bGRTaGFwZSk7CisgICAgdm9pZCByZWxheW91dFNoYXBlRGVzY2VuZGFudElmTW92ZWQoUmVuZGVy
QmxvY2sqIGNoaWxkLCBMYXlvdXRTaXplIG9mZnNldCk7CisgICAgTGF5b3V0U2l6ZSBsb2dpY2Fs
T2Zmc2V0RnJvbVNoYXBlQW5jZXN0b3JDb250YWluZXIoY29uc3QgUmVuZGVyQmxvY2sqIGNvbnRh
aW5lcikgY29uc3Q7CiAjZW5kaWYKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdENoaWxkTGlzdCog
dmlydHVhbENoaWxkcmVuKCkgeyByZXR1cm4gY2hpbGRyZW4oKTsgfQogICAgIHZpcnR1YWwgY29u
c3QgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0KiB2aXJ0dWFsQ2hpbGRyZW4oKSBjb25zdCB7IHJldHVy
biBjaGlsZHJlbigpOyB9CkBAIC0xMDk2LDcgKzEwOTgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
bGF5b3V0UnVuc0FuZEZsb2F0cyhMaW5lTGF5b3V0U3RhdGUmLCBib29sIGhhc0lubGluZUNoaWxk
KTsKICAgICB2b2lkIGxheW91dFJ1bnNBbmRGbG9hdHNJblJhbmdlKExpbmVMYXlvdXRTdGF0ZSYs
IElubGluZUJpZGlSZXNvbHZlciYsIGNvbnN0IElubGluZUl0ZXJhdG9yJiBjbGVhbkxpbmVTdGFy
dCwgY29uc3QgQmlkaVN0YXR1cyYgY2xlYW5MaW5lQmlkaVN0YXR1cywgdW5zaWduZWQgY29uc2Vj
dXRpdmVIeXBoZW5hdGVkTGluZXMpOwogI2lmIEVOQUJMRShDU1NfU0hBUEVTKQotICAgIHZvaWQg
dXBkYXRlU2hhcGVBbmRTZWdtZW50c0ZvckN1cnJlbnRMaW5lKFNoYXBlSW5zaWRlSW5mbyomLCBM
YXlvdXRVbml0JiwgTGluZUxheW91dFN0YXRlJik7CisgICAgdm9pZCB1cGRhdGVTaGFwZUFuZFNl
Z21lbnRzRm9yQ3VycmVudExpbmUoU2hhcGVJbnNpZGVJbmZvKiYsIGNvbnN0IExheW91dFNpemUm
LCBMaW5lTGF5b3V0U3RhdGUmKTsKICAgICB2b2lkIHVwZGF0ZVNoYXBlQW5kU2VnbWVudHNGb3JD
dXJyZW50TGluZUluRmxvd1RocmVhZChTaGFwZUluc2lkZUluZm8qJiwgTGluZUxheW91dFN0YXRl
Jik7CiAgICAgYm9vbCBhZGp1c3RMb2dpY2FsTGluZVRvcEFuZExvZ2ljYWxIZWlnaHRJZk5lZWRl
ZChTaGFwZUluc2lkZUluZm8qLCBMYXlvdXRVbml0LCBMaW5lTGF5b3V0U3RhdGUmLCBJbmxpbmVC
aWRpUmVzb2x2ZXImLCBGbG9hdGluZ09iamVjdCosIElubGluZUl0ZXJhdG9yJiwgV29yZE1lYXN1
cmVtZW50cyYpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9ja0xpbmVMYXlvdXQuY3BwCmluZGV4IDljYWQyYjkwODYzOWFmN2EwOWQ5NDg1M2QwNmM4
OWZkY2YwY2Q2NzMuLjgxNjc4NTY2M2Y0ODhkYWQyYWJjNmZiZWY4OGEzMGE3M2MyNGU1YzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQu
Y3BwCkBAIC0xNjgxLDcgKzE2ODEsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcHVzaFNoYXBlQ29u
dGVudE92ZXJmbG93QmVsb3dUaGVDb250ZW50Qm94KFJlbmRlckJsb2NrKiBibG9jawogICAgIGJs
b2NrLT5zZXRMb2dpY2FsSGVpZ2h0KG5ld0xvZ2ljYWxIZWlnaHQpOwogfQogCi12b2lkIFJlbmRl
ckJsb2NrOjp1cGRhdGVTaGFwZUFuZFNlZ21lbnRzRm9yQ3VycmVudExpbmUoU2hhcGVJbnNpZGVJ
bmZvKiYgc2hhcGVJbnNpZGVJbmZvLCBMYXlvdXRVbml0JiBhYnNvbHV0ZUxvZ2ljYWxUb3AsIExp
bmVMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUpCit2b2lkIFJlbmRlckJsb2NrOjp1cGRhdGVTaGFw
ZUFuZFNlZ21lbnRzRm9yQ3VycmVudExpbmUoU2hhcGVJbnNpZGVJbmZvKiYgc2hhcGVJbnNpZGVJ
bmZvLCBjb25zdCBMYXlvdXRTaXplJiBsb2dpY2FsT2Zmc2V0RnJvbVNoYXBlQ29udGFpbmVyLCBM
aW5lTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKQogewogICAgIGlmIChsYXlvdXRTdGF0ZS5mbG93
VGhyZWFkKCkpCiAgICAgICAgIHJldHVybiB1cGRhdGVTaGFwZUFuZFNlZ21lbnRzRm9yQ3VycmVu
dExpbmVJbkZsb3dUaHJlYWQoc2hhcGVJbnNpZGVJbmZvLCBsYXlvdXRTdGF0ZSk7CkBAIC0xNjg5
LDExICsxNjg5LDEyIEBAIHZvaWQgUmVuZGVyQmxvY2s6OnVwZGF0ZVNoYXBlQW5kU2VnbWVudHNG
b3JDdXJyZW50TGluZShTaGFwZUluc2lkZUluZm8qJiBzaGFwZUluCiAgICAgaWYgKCFzaGFwZUlu
c2lkZUluZm8pCiAgICAgICAgIHJldHVybjsKIAotICAgIExheW91dFVuaXQgbGluZVRvcCA9IGxv
Z2ljYWxIZWlnaHQoKSArIGFic29sdXRlTG9naWNhbFRvcDsKKyAgICBMYXlvdXRVbml0IGxpbmVU
b3AgPSBsb2dpY2FsSGVpZ2h0KCkgKyBsb2dpY2FsT2Zmc2V0RnJvbVNoYXBlQ29udGFpbmVyLmhl
aWdodCgpOworICAgIExheW91dFVuaXQgbGluZUxlZnQgPSBsb2dpY2FsT2Zmc2V0RnJvbVNoYXBl
Q29udGFpbmVyLndpZHRoKCk7CiAgICAgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0ID0gdGhpcy0+bGlu
ZUhlaWdodChsYXlvdXRTdGF0ZS5saW5lSW5mbygpLmlzRmlyc3RMaW5lKCksIGlzSG9yaXpvbnRh
bFdyaXRpbmdNb2RlKCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZSwgUG9zaXRpb25P
ZkludGVyaW9yTGluZUJveGVzKTsKIAogICAgIC8vIEZJWE1FOiBCdWcgOTUzNjE6IEl0IGlzIHBv
c3NpYmxlIGZvciBhIGxpbmUgdG8gZ3JvdyBiZXlvbmQgbGluZUhlaWdodCwgaW4gd2hpY2ggY2Fz
ZSB0aGVzZSBzZWdtZW50cyBtYXkgYmUgaW5jb3JyZWN0LgotICAgIHNoYXBlSW5zaWRlSW5mby0+
Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShsaW5lVG9wLCBsaW5lSGVpZ2h0KTsKKyAgICBzaGFwZUlu
c2lkZUluZm8tPmNvbXB1dGVTZWdtZW50c0ZvckxpbmUoTGF5b3V0U2l6ZShsaW5lTGVmdCwgbGlu
ZVRvcCksIGxpbmVIZWlnaHQpOwogCiAgICAgcHVzaFNoYXBlQ29udGVudE92ZXJmbG93QmVsb3dU
aGVDb250ZW50Qm94KHRoaXMsIHNoYXBlSW5zaWRlSW5mbywgbGluZVRvcCwgbGluZUhlaWdodCk7
CiB9CkBAIC0xNzY0LDcgKzE3NjUsOSBAQCB2b2lkIFJlbmRlckJsb2NrOjp1cGRhdGVTaGFwZUFu
ZFNlZ21lbnRzRm9yQ3VycmVudExpbmVJbkZsb3dUaHJlYWQoU2hhcGVJbnNpZGVJbgogICAgIH0K
IAogICAgIExheW91dFVuaXQgbGluZVRvcCA9IGxvZ2ljYWxMaW5lVG9wSW5GbG93VGhyZWFkIC0g
Y3VycmVudFJlZ2lvbi0+bG9naWNhbFRvcEZvckZsb3dUaHJlYWRDb250ZW50KCkgKyBjdXJyZW50
UmVnaW9uLT5ib3JkZXJBbmRQYWRkaW5nQmVmb3JlKCk7Ci0gICAgc2hhcGVJbnNpZGVJbmZvLT5j
b21wdXRlU2VnbWVudHNGb3JMaW5lKGxpbmVUb3AsIGxpbmVIZWlnaHQpOworCisgICAgLy8gRklY
TUU6IDExODU3MSAtIFNoYXBlIGluc2lkZSBvbiBhIHJlZ2lvbiBkb2VzIG5vdCB5ZXQgdGFrZSBp
bnRvIGFjY291bnQgaXRzIHBhZGRpbmcgZm9yIG5lc3RlZCBmbG93IGJsb2NrcworICAgIHNoYXBl
SW5zaWRlSW5mby0+Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRTaXplKDAsIGxpbmVUb3Ap
LCBsaW5lSGVpZ2h0KTsKIAogICAgIGlmIChjdXJyZW50UmVnaW9uLT5pc0xhc3RSZWdpb24oKSkK
ICAgICAgICAgcHVzaFNoYXBlQ29udGVudE92ZXJmbG93QmVsb3dUaGVDb250ZW50Qm94KHRoaXMs
IHNoYXBlSW5zaWRlSW5mbywgbGluZVRvcCwgbGluZUhlaWdodCk7CkBAIC0xODAyLDE4ICsxODA1
LDE4IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dFJ1bnNBbmRGbG9hdHNJblJhbmdlKExpbmVM
YXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIElubGluCiAgICAgTGluZUJyZWFrZXIgbGluZUJyZWFr
ZXIodGhpcyk7CiAKICNpZiBFTkFCTEUoQ1NTX1NIQVBFUykKLSAgICBMYXlvdXRVbml0IGFic29s
dXRlTG9naWNhbFRvcDsKKyAgICBMYXlvdXRTaXplIGxvZ2ljYWxPZmZzZXRGcm9tU2hhcGVDb250
YWluZXI7CiAgICAgU2hhcGVJbnNpZGVJbmZvKiBzaGFwZUluc2lkZUluZm8gPSBsYXlvdXRTaGFw
ZUluc2lkZUluZm8oKTsKICAgICBpZiAoc2hhcGVJbnNpZGVJbmZvKSB7CiAgICAgICAgIEFTU0VS
VChzaGFwZUluc2lkZUluZm8tPm93bmVyKCkgPT0gdGhpcyB8fCBhbGxvd3NTaGFwZUluc2lkZUlu
Zm9TaGFyaW5nKCkpOwogICAgICAgICBpZiAoc2hhcGVJbnNpZGVJbmZvICE9IHRoaXMtPnNoYXBl
SW5zaWRlSW5mbygpKSB7CiAgICAgICAgICAgICAvLyBGSVhNRSBCdWcgMTAwMjg0OiBJZiBzdWJz
ZXF1ZW50IExheW91dFN0YXRlcyBhcmUgcHVzaGVkLCB3ZSB3aWxsIGhhdmUgdG8gYWRkCiAgICAg
ICAgICAgICAvLyB0aGVpciBvZmZzZXRzIGZyb20gdGhlIG9yaWdpbmFsIHNoYXBlLWluc2lkZSBj
b250YWluZXIuCi0gICAgICAgICAgICBhYnNvbHV0ZUxvZ2ljYWxUb3AgPSBsb2dpY2FsVG9wKCk7
CisgICAgICAgICAgICBsb2dpY2FsT2Zmc2V0RnJvbVNoYXBlQ29udGFpbmVyID0gbG9naWNhbE9m
ZnNldEZyb21TaGFwZUFuY2VzdG9yQ29udGFpbmVyKHNoYXBlSW5zaWRlSW5mby0+b3duZXIoKSk7
CiAgICAgICAgIH0KICAgICAgICAgLy8gQmVnaW4gbGF5b3V0IGF0IHRoZSBsb2dpY2FsIHRvcCBv
ZiBvdXIgc2hhcGUgaW5zaWRlLgotICAgICAgICBpZiAobG9naWNhbEhlaWdodCgpICsgYWJzb2x1
dGVMb2dpY2FsVG9wIDwgc2hhcGVJbnNpZGVJbmZvLT5zaGFwZUxvZ2ljYWxUb3AoKSkgewotICAg
ICAgICAgICAgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0gc2hhcGVJbnNpZGVJbmZvLT5zaGFw
ZUxvZ2ljYWxUb3AoKSAtIGFic29sdXRlTG9naWNhbFRvcDsKKyAgICAgICAgaWYgKGxvZ2ljYWxI
ZWlnaHQoKSArIGxvZ2ljYWxPZmZzZXRGcm9tU2hhcGVDb250YWluZXIuaGVpZ2h0KCkgPCBzaGFw
ZUluc2lkZUluZm8tPnNoYXBlTG9naWNhbFRvcCgpKSB7CisgICAgICAgICAgICBMYXlvdXRVbml0
IGxvZ2ljYWxIZWlnaHQgPSBzaGFwZUluc2lkZUluZm8tPnNoYXBlTG9naWNhbFRvcCgpIC0gbG9n
aWNhbE9mZnNldEZyb21TaGFwZUNvbnRhaW5lci5oZWlnaHQoKTsKICAgICAgICAgICAgIGlmIChs
YXlvdXRTdGF0ZS5mbG93VGhyZWFkKCkpCiAgICAgICAgICAgICAgICAgbG9naWNhbEhlaWdodCAt
PSBzaGFwZUluc2lkZUluZm8tPm93bmVyKCktPmJvcmRlckFuZFBhZGRpbmdCZWZvcmUoKTsKICAg
ICAgICAgICAgIHNldExvZ2ljYWxIZWlnaHQobG9naWNhbEhlaWdodCk7CkBAIC0xODQxLDcgKzE4
NDQsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpsYXlvdXRSdW5zQW5kRmxvYXRzSW5SYW5nZShMaW5l
TGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLCBJbmxpbgogICAgICAgICBGbG9hdGluZ09iamVjdCog
bGFzdEZsb2F0RnJvbVByZXZpb3VzTGluZSA9IChjb250YWluc0Zsb2F0cygpKSA/IG1fZmxvYXRp
bmdPYmplY3RzLT5zZXQoKS5sYXN0KCkgOiAwOwogCiAjaWYgRU5BQkxFKENTU19TSEFQRVMpCi0g
ICAgICAgIHVwZGF0ZVNoYXBlQW5kU2VnbWVudHNGb3JDdXJyZW50TGluZShzaGFwZUluc2lkZUlu
Zm8sIGFic29sdXRlTG9naWNhbFRvcCwgbGF5b3V0U3RhdGUpOworICAgICAgICB1cGRhdGVTaGFw
ZUFuZFNlZ21lbnRzRm9yQ3VycmVudExpbmUoc2hhcGVJbnNpZGVJbmZvLCBsb2dpY2FsT2Zmc2V0
RnJvbVNoYXBlQ29udGFpbmVyLCBsYXlvdXRTdGF0ZSk7CiAjZW5kaWYKICAgICAgICAgV29yZE1l
YXN1cmVtZW50cyB3b3JkTWVhc3VyZW1lbnRzOwogICAgICAgICBlbmQgPSBsaW5lQnJlYWtlci5u
ZXh0TGluZUJyZWFrKHJlc29sdmVyLCBsYXlvdXRTdGF0ZS5saW5lSW5mbygpLCByZW5kZXJUZXh0
SW5mbywgbGFzdEZsb2F0RnJvbVByZXZpb3VzTGluZSwgY29uc2VjdXRpdmVIeXBoZW5hdGVkTGlu
ZXMsIHdvcmRNZWFzdXJlbWVudHMpOwpAQCAtMTg1Nyw3ICsxODYwLDcgQEAgdm9pZCBSZW5kZXJC
bG9jazo6bGF5b3V0UnVuc0FuZEZsb2F0c0luUmFuZ2UoTGluZUxheW91dFN0YXRlJiBsYXlvdXRT
dGF0ZSwgSW5saW4KICAgICAgICAgfQogCiAjaWYgRU5BQkxFKENTU19TSEFQRVMpCi0gICAgICAg
IGlmIChhZGp1c3RMb2dpY2FsTGluZVRvcEFuZExvZ2ljYWxIZWlnaHRJZk5lZWRlZChzaGFwZUlu
c2lkZUluZm8sIGFic29sdXRlTG9naWNhbFRvcCwgbGF5b3V0U3RhdGUsIHJlc29sdmVyLCBsYXN0
RmxvYXRGcm9tUHJldmlvdXNMaW5lLCBlbmQsIHdvcmRNZWFzdXJlbWVudHMpKQorICAgICAgICBp
ZiAoYWRqdXN0TG9naWNhbExpbmVUb3BBbmRMb2dpY2FsSGVpZ2h0SWZOZWVkZWQoc2hhcGVJbnNp
ZGVJbmZvLCBsb2dpY2FsT2Zmc2V0RnJvbVNoYXBlQ29udGFpbmVyLmhlaWdodCgpLCBsYXlvdXRT
dGF0ZSwgcmVzb2x2ZXIsIGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUsIGVuZCwgd29yZE1lYXN1
cmVtZW50cykpCiAgICAgICAgICAgICBjb250aW51ZTsKICNlbmRpZgogICAgICAgICBBU1NFUlQo
ZW5kICE9IHJlc29sdmVyLnBvc2l0aW9uKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zaGFwZXMvU2hhcGVJbnNpZGVJbmZvLmgKaW5kZXggYzAwNmIzNjQ1NGI5ZGFiMWMyMDI2
NTc3MDVlZDQ5NzE4OWJjN2U3Ni4uNDRhNzRjYzA2MmQ1YzQ1MmU4NDIyYWI2MDIxYWNmODY4MmYw
MTc0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUlu
c2lkZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5z
aWRlSW5mby5oCkBAIC02OCw2ICs2OCwxNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgYm9vbCBp
c0VuYWJsZWRGb3IoY29uc3QgUmVuZGVyQmxvY2sqIHJlbmRlcmVyKTsKIAorICAgIGJvb2wgY29t
cHV0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRTaXplIGxpbmVPZmZzZXQsIExheW91dFVuaXQgbGlu
ZUhlaWdodCkKKyAgICB7CisgICAgICAgIG1fc2VnbWVudFJhbmdlcy5jbGVhcigpOworICAgICAg
ICBib29sIHJlc3VsdCA9IFNoYXBlSW5mbzxSZW5kZXJCbG9jaywgJlJlbmRlclN0eWxlOjpyZXNv
bHZlZFNoYXBlSW5zaWRlLCAmU2hhcGU6OmdldEluY2x1ZGVkSW50ZXJ2YWxzPjo6Y29tcHV0ZVNl
Z21lbnRzRm9yTGluZShsaW5lT2Zmc2V0LmhlaWdodCgpLCBsaW5lSGVpZ2h0KTsKKyAgICAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3NlZ21lbnRzLnNpemUoKTsgaSsrKSB7CisgICAgICAg
ICAgICBtX3NlZ21lbnRzW2ldLmxvZ2ljYWxMZWZ0IC09IGxpbmVPZmZzZXQud2lkdGgoKTsKKyAg
ICAgICAgICAgIG1fc2VnbWVudHNbaV0ubG9naWNhbFJpZ2h0IC09IGxpbmVPZmZzZXQud2lkdGgo
KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKwogICAgIHZpcnR1
YWwgYm9vbCBjb21wdXRlU2VnbWVudHNGb3JMaW5lKExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0
VW5pdCBsaW5lSGVpZ2h0KSBPVkVSUklERQogICAgIHsKICAgICAgICAgbV9zZWdtZW50UmFuZ2Vz
LmNsZWFyKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggODA5YWM2Nzg4Y2RlYmIwMjdjYTg1Y2JhZjI1ZTAzMzhhYWRkOGU1
Yi4uYzZjZmE0ZmY5OGFiM2IwMTE2ZmQ5MDc0ZGI1YTM5MzU1NWZhZGI1ZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDEzLTA3LTIzICBCZWFyIFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4K
KworICAgICAgICBbQ1NTIFNoYXBlc10gU2hhcGUncyBjb250ZW50IGdldHMgZXh0cmEgbGVmdCBv
ZmZzZXQgd2hlbiBsZWZ0LWJvcmRlciBpcyBwb3NpdGl2ZSBvbiB0aGUgY29udGVudCBib3gKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzU3MworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3QgdGhhdCBu
ZXN0ZWQgY2hpbGRyZW4gd2l0aCBwYWRkaW5nIGNvcnJlY3RseSBhcHBseSBhbiBhbmNlc3Rvcidz
IHNoYXBlLWluc2lkZQorICAgICAgICBhY3Jvc3MgZGlmZmVyZW50IHdyaXRpbmcgbW9kZXMuCisK
KyAgICAgICAgKiBmYXN0L3NoYXBlcy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLW9mZnNldC1i
bG9jay1jaGlsZHJlbi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3NoYXBl
cy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLW9mZnNldC1ibG9jay1jaGlsZHJlbi5odG1sOiBB
ZGRlZC4KKwogMjAxMy0wNy0yMiAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIHNlZ2ZhdWx0IGluIFJlbmRlckxheWVyQ29tcG9zaXRvciB3aGVuIHRoZSBpZnJhbWUn
cyBwb3NpdGlvbiBhdHRyaWJ1dGUgaXMgY2hhbmdlZCBhbmQgaXQgZW1iZWRzIDxvYmplY3Q+Lgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3NoYXBlLWlu
c2lkZS1vZmZzZXQtYmxvY2stY2hpbGRyZW4tZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3Qvc2hhcGVzL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtb2Zmc2V0LWJsb2NrLWNoaWxkcmVu
LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTc5YTA4MzkzZjJkNWQ0MmZlNTYwYzEzMzcxNDM2
ODZhYjNkNDI1MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhcGVzL3No
YXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtb2Zmc2V0LWJsb2NrLWNoaWxkcmVuLWV4cGVjdGVkLmh0
bWwKQEAgLTAsMCArMSwzMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0
eWxlIGlkPSdzdHlsZXNoZWV0Jz4KKy5zaGFwZS1pbnNpZGUgeworICAgIGZvbnQ6IDUwcHgvMSBB
aGVtLCBzYW5zLXNlcmlmOworICAgIGNvbG9yOiBncmVlbjsKKyAgICBmbG9hdDogbGVmdDsKK30K
Kzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0nLi4vcmVzb3VyY2VzL3NpbXBsZS1yZWN0YW5nbGUuanMn
Pjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgICBpZHMgPSBbCisgICAgICAgICdzaGFwZS1pbnNpZGUn
LAorICAgICAgICAnc2hhcGUtaW5zaWRlLXJsJywKKyAgICAgICAgJ3NoYXBlLWluc2lkZS1scics
CisgICAgICAgICdzaGFwZS1pbnNpZGUtdGItbHItdGInLAorICAgICAgICAnc2hhcGUtaW5zaWRl
LWxyLXJsLWxyJworICAgIF07CisgICAgaWRzLmZvckVhY2goZnVuY3Rpb24oaWQpIHsKKyAgICAg
ICAgY3JlYXRlUmVjdGFuZ2xlVGVzdFJlc3VsdChpZCwgJ3N0eWxlc2hlZXQnLCB7IHdpZHRoOiAz
MDAsIGhlaWdodDogMzAwIH0sIHsgeDogMTAwLCB5OiAxMDAsIHdpZHRoOiAxMDAsIGhlaWdodDog
MTAwIH0sICdweCcsIG51bGwpOworICAgIH0pOworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxwPlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgc2hhcGUtaW5zaWRlIHRha2VzIGludG8gYWNjb3Vu
dCBwYWRkaW5nIG9uIG5lc3RlZCBjaGlsZCBibG9ja3MgaW4gZGlmZmVyZW50IHdyaXRpbmcgbW9k
ZXMuIFlvdSBzaG91bGQgc2VlIHNldmVyYWwgZ3JlZW4gc3F1YXJlcyB3aXRoaW4gYSBibHVlIG91
dGxpbmUuIFRoZSB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuPC9wPgorPGRpdiBpZD0nc2hh
cGUtaW5zaWRlJyBjbGFzcz0nc2hhcGUtaW5zaWRlJz54eHh4PC9kaXY+Cis8ZGl2IGlkPSdzaGFw
ZS1pbnNpZGUtcmwnIGNsYXNzPSdzaGFwZS1pbnNpZGUnPnh4eHg8L2Rpdj4KKzxkaXYgaWQ9J3No
YXBlLWluc2lkZS1scicgY2xhc3M9J3NoYXBlLWluc2lkZSc+eHh4eDwvZGl2PgorPGRpdiBpZD0n
c2hhcGUtaW5zaWRlLXRiLWxyLXRiJyBjbGFzcz0nc2hhcGUtaW5zaWRlJz54eHh4PC9kaXY+Cis8
ZGl2IGlkPSdzaGFwZS1pbnNpZGUtbHItcmwtbHInIGNsYXNzPSdzaGFwZS1pbnNpZGUnPnh4eHg8
L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2hh
cGVzL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtb2Zmc2V0LWJsb2NrLWNoaWxkcmVuLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3NoYXBlcy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLW9mZnNl
dC1ibG9jay1jaGlsZHJlbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhZWEzMjlmYjRjNWJiZTBiMGQyZTVh
ZWFlYzNkNzMyY2Y2ZTM3OGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3No
YXBlcy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLW9mZnNldC1ibG9jay1jaGlsZHJlbi5odG1s
CkBAIC0wLDAgKzEsNDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHls
ZSBpZD0nc3R5bGVzaGVldCc+Cisuc2hhcGUtaW5zaWRlIHsKKyAgICBmb250OiA1MHB4LzEgQWhl
bSwgc2Fucy1zZXJpZjsKKyAgICBjb2xvcjogZ3JlZW47CisgICAgZmxvYXQ6IGxlZnQ7Cit9Cisu
aG9yaXpvbnRhbC50YiB7CisgICAgLXdlYmtpdC13cml0aW5nLW1vZGU6IGhvcml6b250YWwtdGI7
Cit9CisudmVydGljYWwucmwgeworICAgIC13ZWJraXQtd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1y
bDsKK30KKy52ZXJ0aWNhbC5sciB7CisgICAgLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2Fs
LWxyOworfQorLnNoYXBlLWluc2lkZSAqIHsKKyAgICBwYWRkaW5nOiA1cHggMTBweCAxNXB4IDIw
cHg7Cit9Cis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Jy4uL3Jlc291cmNlcy9zaW1wbGUtcmVjdGFu
Z2xlLmpzJz48L3NjcmlwdD4KKzxzY3JpcHQ+Cit3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7
CisgICAgaWRzID0gWworICAgICAgICAnc2hhcGUtaW5zaWRlJywKKyAgICAgICAgJ3NoYXBlLWlu
c2lkZS1ybCcsCisgICAgICAgICdzaGFwZS1pbnNpZGUtbHInLAorICAgICAgICAnc2hhcGUtaW5z
aWRlLXRiLWxyLXRiJywKKyAgICAgICAgJ3NoYXBlLWluc2lkZS1sci1ybC1scicKKyAgICBdOwor
ICAgIGlkcy5mb3JFYWNoKGZ1bmN0aW9uKGlkKSB7CisgICAgICAgIGNyZWF0ZVJlY3RhbmdsZVRl
c3QoaWQsICdzdHlsZXNoZWV0JywgeyB3aWR0aDogMzAwLCBoZWlnaHQ6IDMwMCB9LCB7IHg6IDEw
MCwgeTogMTAwLCB3aWR0aDogMTAwLCBoZWlnaHQ6IDEwMCB9LCAncHgnLCBudWxsKTsKKyAgICB9
KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgZW5zdXJlcyB0
aGF0IHNoYXBlLWluc2lkZSB0YWtlcyBpbnRvIGFjY291bnQgcGFkZGluZyBvbiBuZXN0ZWQgY2hp
bGQgYmxvY2tzIGluIGRpZmZlcmVudCB3cml0aW5nIG1vZGVzLiBZb3Ugc2hvdWxkIHNlZSBzZXZl
cmFsIGdyZWVuIHNxdWFyZXMgd2l0aGluIGEgYmx1ZSBvdXRsaW5lLiBUaGUgdGVzdCByZXF1aXJl
cyB0aGUgQWhlbSBmb250LjwvcD4KKzxkaXYgaWQ9J3NoYXBlLWluc2lkZScgY2xhc3M9J3NoYXBl
LWluc2lkZSc+PGRpdj48ZGl2Pnh4eHg8L2Rpdj48L2Rpdj48L2Rpdj4KKzxkaXYgaWQ9J3NoYXBl
LWluc2lkZS1ybCcgY2xhc3M9J3NoYXBlLWluc2lkZSB2ZXJ0aWNhbCBscic+PGRpdj48ZGl2Pnh4
eHg8L2Rpdj48L2Rpdj48L2Rpdj4KKzxkaXYgaWQ9J3NoYXBlLWluc2lkZS1scicgY2xhc3M9J3No
YXBlLWluc2lkZSB2ZXJ0aWNhbCBybCc+PGRpdj48ZGl2Pnh4eHg8L2Rpdj48L2Rpdj48L2Rpdj4K
KzxkaXYgaWQ9J3NoYXBlLWluc2lkZS10Yi1sci10YicgY2xhc3M9J3NoYXBlLWluc2lkZSc+PGRp
diBjbGFzcz0ndmVydGljYWwgbHInPjxkaXYgY2xhc3M9J2hvcml6b250YWwgdGInPnh4eHg8L2Rp
dj48L2Rpdj48L2Rpdj4KKzxkaXYgaWQ9J3NoYXBlLWluc2lkZS1sci1ybC1scicgY2xhc3M9J3No
YXBlLWluc2lkZSB2ZXJ0aWNhbCBybCc+PGRpdiBjbGFzcz0ndmVydGljYWwgbHInPjxkaXYgY2xh
c3M9J3ZlcnRpY2FsIHJsJz54eHh4PC9kaXY+PC9kaXY+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208828</attachid>
            <date>2013-08-15 11:45:57 -0700</date>
            <delta_ts>2013-08-30 11:31:36 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-117573-20130815114557.patch</filename>
            <type>text/plain</type>
            <size>18250</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU0MTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWE4YjEwY2FhYzc1YTAw
NWZmYzM3MTQ4ODZhNmM3ZjRlYmIzNDE5Yy4uNTJjM2NjZGM3MjIwZmIxNDBjZDQzMzIzY2MzYjRl
YTIzMWFiYWY2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTA4LTE1ICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIFNoYXBlc10gU2hh
cGUncyBjb250ZW50IGdldHMgZXh0cmEgbGVmdCBvZmZzZXQgd2hlbiBsZWZ0LWJvcmRlciBpcyBw
b3NpdGl2ZSBvbiB0aGUgY29udGVudCBib3gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExNzU3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE5lc3RlZCBibG9ja3MgbmVlZCB0byB0YWtlIGludG8gYWNjb3Vu
dCB0aGVpciBvZmZzZXQgZnJvbSB0aGUgc2hhcGUtaW5zaWRlIGNvbnRhaW5lci4KKyAgICAgICAg
VGhlIG5ldyBjb2RlIGNhbGN1bGF0ZXMgdGhlIG9mZnNldCBmcm9tIHRoZSBzaGFwZS1pbnNpZGUg
Y29udGFpbmVyLCB0aGVuIGFwcGxpZXMgdGhlCisgICAgICAgIG9mZnNldCB0byB0aGUgY29tcHV0
ZWQgc2VnbWVudHMuIFRoZSBsaW5lIG11c3QgYmUgbW92ZWQgZG93biBieSB0aGUgb2Zmc2V0J3Mg
aGVpZ2h0LAorICAgICAgICBhbmQgZWFjaCBzZWdtZW50IG11c3QgYmUgbW92ZWQgbGVmdCBieSB0
aGUgb2Zmc2V0J3Mgd2lkdGguCisKKyAgICAgICAgVGVzdDogZmFzdC9zaGFwZXMvc2hhcGUtaW5z
aWRlL3NoYXBlLWluc2lkZS1vZmZzZXQtYmxvY2stY2hpbGRyZW4uaHRtbAorCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2Nr
OjpyZWxheW91dFNoYXBlRGVzY2VuZGFudElmTW92ZWQpOiBSZWxheW91dCBhIGJsb2NrIGNoaWxk
IGlmIGl0cworICAgICAgICBuZXcgbG9naWNhbCBsZWZ0IHdvdWxkIGNhdXNlIGl0IHRvIHJlc3Qg
YXQgYSBuZXcgcG9zaXRpb24gd2l0aGluIGEgc2hhcGUgY29udGFpbmVyLgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQmxvY2s6OmxvZ2ljYWxPZmZzZXRGcm9tU2hhcGVBbmNlc3RvckNvbnRhaW5l
cik6IENhbGN1bGF0ZSB0aGUgbG9naWNhbAorICAgICAgICBvZmZzZXQgZm9ybSBhIHNoYXBlIGlu
c2lkZSBhbmNlc3RvciBjb250YWluZXIuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
bGF5b3V0QmxvY2tDaGlsZCk6IENhbGwgcmVsYXlvdXRTaGFwZURlc2NlbmRhbnRJZk1vdmVkIHdp
dGggdGhlCisgICAgICAgIG5ldyBwb3NpdGlvbiBvZmZzZXQuCisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6dXBkYXRlU2hhcGVBbmRTZWdt
ZW50c0ZvckN1cnJlbnRMaW5lKTogVXNlIGxheW91dCBvZmZzZXQsIHJhdGhlcgorICAgICAgICB0
aGFuIGp1c3QgdmVydGljYWwgb2Zmc2V0LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6
OnVwZGF0ZVNoYXBlQW5kU2VnbWVudHNGb3JDdXJyZW50TGluZUluRmxvd1RocmVhZCk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dFJ1bnNBbmRGbG9hdHNJblJh
bmdlKTogRGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8u
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXBlSW5zaWRlSW5mbzo6Y29tcHV0ZVNlZ21lbnRzRm9y
TGluZSk6IFNoaWZ0IHNlZ21lbnRzIGxvZ2ljYWxseSBsZWZ0IHdoZW4KKyAgICAgICAgdGhlcmUg
aXMgYW4gaW5saW5lIG9mZnNldC4KKwogMjAxMy0wOC0xNSAgQW50dGkgS29pdmlzdG8gIDxhbnR0
aUBhcHBsZS5jb20+CiAKICAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzExOTgzND4gUmVt
b3ZlIEVsZW1lbnRTaGFkb3cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
CmluZGV4IGExZTkxMmYwZTU0OTEwNmFiYmZjNTlhZjkzNDdlNTZmNjJjMWU5ZTEuLmY0Y2UwN2E0
ZmI2MjZkYWEzZmM1ZmE5YzBjN2M4NTgwN2Q4Y2FhYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMTQzNiw2ICsxNDM2LDUwIEBAIHZvaWQgUmVuZGVyQmxv
Y2s6OmxheW91dCgpCiB9CiAKICNpZiBFTkFCTEUoQ1NTX1NIQVBFUykKK3ZvaWQgUmVuZGVyQmxv
Y2s6OnJlbGF5b3V0U2hhcGVEZXNjZW5kYW50SWZNb3ZlZChSZW5kZXJCbG9jayogY2hpbGQsIExh
eW91dFNpemUgb2Zmc2V0KQoreworICAgIExheW91dFVuaXQgbGVmdCA9IGlzSG9yaXpvbnRhbFdy
aXRpbmdNb2RlKCkgPyBvZmZzZXQud2lkdGgoKSA6IG9mZnNldC5oZWlnaHQoKTsKKyAgICBpZiAo
IWxlZnQgfHwgIWNoaWxkIHx8IGNoaWxkLT5zaGFwZUluc2lkZUluZm8oKSB8fCAhbGF5b3V0U2hh
cGVJbnNpZGVJbmZvKCkpCisgICAgICAgIHJldHVybjsKKyAgICAvLyBQcm9wYWdhdGUgbGF5b3V0
IG1hcmtlcnMgb25seSB1cCB0byB0aGUgY2hpbGQsIGFzIHdlIGFyZSBzdGlsbCBpbiB0aGUgbWlk
ZGxlCisgICAgLy8gb2YgYSBsYXlvdXQgcGFzcworICAgIGNoaWxkLT5zZXROb3JtYWxDaGlsZE5l
ZWRzTGF5b3V0KHRydWUpOworICAgIGNoaWxkLT5tYXJrU2hhcGVJbnNpZGVEZXNjZW5kYW50c0Zv
ckxheW91dCgpOworICAgIGNoaWxkLT5sYXlvdXRJZk5lZWRlZCgpOworfQorCitMYXlvdXRTaXpl
IFJlbmRlckJsb2NrOjpsb2dpY2FsT2Zmc2V0RnJvbVNoYXBlQW5jZXN0b3JDb250YWluZXIoY29u
c3QgUmVuZGVyQmxvY2sqIGNvbnRhaW5lcikgY29uc3QKK3sKKyAgICBjb25zdCBSZW5kZXJCbG9j
ayogY3VycmVudEJsb2NrID0gdGhpczsKKyAgICBMYXlvdXRSZWN0IGJsb2NrUmVjdChjdXJyZW50
QmxvY2stPmJvcmRlckJveFJlY3QoKSk7CisgICAgd2hpbGUgKGN1cnJlbnRCbG9jayAmJiAhY3Vy
cmVudEJsb2NrLT5pc1JlbmRlckZsb3dUaHJlYWQoKSAmJiBjdXJyZW50QmxvY2sgIT0gY29udGFp
bmVyKSB7CisgICAgICAgIFJlbmRlckJsb2NrKiBjb250YWluZXJCbG9jayA9IGN1cnJlbnRCbG9j
ay0+Y29udGFpbmluZ0Jsb2NrKCk7CisgICAgICAgIEFTU0VSVChjb250YWluZXJCbG9jayk7Cisg
ICAgICAgIGlmICghY29udGFpbmVyQmxvY2spCisgICAgICAgICAgICByZXR1cm4gTGF5b3V0U2l6
ZSgpOworCisgICAgICAgIGlmIChjb250YWluZXJCbG9jay0+c3R5bGUoKS0+d3JpdGluZ01vZGUo
KSAhPSBjdXJyZW50QmxvY2stPnN0eWxlKCktPndyaXRpbmdNb2RlKCkpIHsKKyAgICAgICAgICAg
IC8vIFdlIGhhdmUgdG8gcHV0IHRoZSBibG9jayByZWN0IGluIGNvbnRhaW5lciBjb29yZGluYXRl
cworICAgICAgICAgICAgLy8gYW5kIHdlIGhhdmUgdG8gdGFrZSBpbnRvIGFjY291bnQgYm90aCB0
aGUgY29udGFpbmVyIGFuZCBjdXJyZW50IGJsb2NrIGZsaXBwaW5nIG1vZGVzCisgICAgICAgICAg
ICAvLyBCdWcgMTE4MDczOiBGbGlwcGluZyBpbmxpbmUgYW5kIGJsb2NrIGRpcmVjdGlvbnMgYXQg
dGhlIHNhbWUgdGltZSB3aWxsIG5vdCB3b3JrLAorICAgICAgICAgICAgLy8gYXMgb25lIG9mIHRo
ZSBmbGlwcGVkIGRpbWVuc2lvbnMgd2lsbCBub3QgeWV0IGhhdmUgYmVlbiBzZXQgdG8gaXRzIGZp
bmFsIHNpemUKKyAgICAgICAgICAgIGlmIChjb250YWluZXJCbG9jay0+c3R5bGUoKS0+aXNGbGlw
cGVkQmxvY2tzV3JpdGluZ01vZGUoKSkgeworICAgICAgICAgICAgICAgIGlmIChjb250YWluZXJC
bG9jay0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKKyAgICAgICAgICAgICAgICAgICAgYmxv
Y2tSZWN0LnNldFkoY3VycmVudEJsb2NrLT5oZWlnaHQoKSAtIGJsb2NrUmVjdC5tYXhZKCkpOwor
ICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgYmxvY2tSZWN0LnNldFgo
Y3VycmVudEJsb2NrLT53aWR0aCgpIC0gYmxvY2tSZWN0Lm1heFgoKSk7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICBjdXJyZW50QmxvY2stPmZsaXBGb3JXcml0aW5nTW9kZShibG9ja1JlY3Qp
OworICAgICAgICB9CisKKyAgICAgICAgYmxvY2tSZWN0Lm1vdmVCeShjdXJyZW50QmxvY2stPmxv
Y2F0aW9uKCkpOworICAgICAgICBjdXJyZW50QmxvY2sgPSBjb250YWluZXJCbG9jazsKKyAgICB9
CisKKyAgICBMYXlvdXRTaXplIHJlc3VsdCA9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBM
YXlvdXRTaXplKGJsb2NrUmVjdC54KCksIGJsb2NrUmVjdC55KCkpIDogTGF5b3V0U2l6ZShibG9j
a1JlY3QueSgpLCBibG9ja1JlY3QueCgpKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiB2b2lk
IFJlbmRlckJsb2NrOjppbWFnZUNoYW5nZWQoV3JhcHBlZEltYWdlUHRyIGltYWdlLCBjb25zdCBJ
bnRSZWN0KikKIHsKICAgICBSZW5kZXJCb3g6OmltYWdlQ2hhbmdlZChpbWFnZSk7CkBAIC0yNzMw
LDYgKzI3NzQsMTEgQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0QmxvY2tDaGlsZChSZW5kZXJC
b3gqIGNoaWxkLCBNYXJnaW5JbmZvJiBtYXJnaW5JbmZvLCBMYXkKICAgICAvLyBOb3cgcGxhY2Ug
dGhlIGNoaWxkIGluIHRoZSBjb3JyZWN0IGxlZnQgcG9zaXRpb24KICAgICBkZXRlcm1pbmVMb2dp
Y2FsTGVmdFBvc2l0aW9uRm9yQ2hpbGQoY2hpbGQsIEFwcGx5TGF5b3V0RGVsdGEpOwogCisgICAg
TGF5b3V0U2l6ZSBjaGlsZE9mZnNldCA9IGNoaWxkLT5sb2NhdGlvbigpIC0gb2xkUmVjdC5sb2Nh
dGlvbigpOworI2lmIEVOQUJMRShDU1NfU0hBUEVTKQorICAgIHJlbGF5b3V0U2hhcGVEZXNjZW5k
YW50SWZNb3ZlZChjaGlsZFJlbmRlckJsb2NrLCBjaGlsZE9mZnNldCk7CisjZW5kaWYKKwogICAg
IC8vIFVwZGF0ZSBvdXIgaGVpZ2h0IG5vdyB0aGF0IHRoZSBjaGlsZCBoYXMgYmVlbiBwbGFjZWQg
aW4gdGhlIGNvcnJlY3QgcG9zaXRpb24uCiAgICAgc2V0TG9naWNhbEhlaWdodChsb2dpY2FsSGVp
Z2h0KCkgKyBsb2dpY2FsSGVpZ2h0Rm9yQ2hpbGQoY2hpbGQpKTsKICAgICBpZiAobXVzdFNlcGFy
YXRlTWFyZ2luQWZ0ZXJGb3JDaGlsZChjaGlsZCkpIHsKQEAgLTI3NDEsNyArMjc5MCw2IEBAIHZv
aWQgUmVuZGVyQmxvY2s6OmxheW91dEJsb2NrQ2hpbGQoUmVuZGVyQm94KiBjaGlsZCwgTWFyZ2lu
SW5mbyYgbWFyZ2luSW5mbywgTGF5CiAgICAgaWYgKGNoaWxkUmVuZGVyQmxvY2sgJiYgY2hpbGRS
ZW5kZXJCbG9jay0+Y29udGFpbnNGbG9hdHMoKSkKICAgICAgICAgbWF4RmxvYXRMb2dpY2FsQm90
dG9tID0gbWF4KG1heEZsb2F0TG9naWNhbEJvdHRvbSwgYWRkT3ZlcmhhbmdpbmdGbG9hdHModG9S
ZW5kZXJCbG9jayhjaGlsZCksICFjaGlsZE5lZWRlZExheW91dCkpOwogCi0gICAgTGF5b3V0U2l6
ZSBjaGlsZE9mZnNldCA9IGNoaWxkLT5sb2NhdGlvbigpIC0gb2xkUmVjdC5sb2NhdGlvbigpOwog
ICAgIGlmIChjaGlsZE9mZnNldC53aWR0aCgpIHx8IGNoaWxkT2Zmc2V0LmhlaWdodCgpKSB7CiAg
ICAgICAgIHZpZXcoKS0+YWRkTGF5b3V0RGVsdGEoY2hpbGRPZmZzZXQpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCmluZGV4IGNkNDQxYTE5NGVhZWMxNGVjZGNlOWQxZGQ5
N2MzNGE3NmU3ZWUwYjMuLjNiMjAyMWU5NGI0M2E0ZjdkYWFkN2EyOWE4OGI3MDc5ZDJkYTk3OTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCkBAIC02MTcsNiArNjE3LDgg
QEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoQ1NTX1NIQVBFUykKICAgICB2b2lkIGNvbXB1dGVTaGFw
ZVNpemUoKTsKICAgICB2b2lkIHVwZGF0ZVNoYXBlSW5zaWRlSW5mb0FmdGVyU3R5bGVDaGFuZ2Uo
Y29uc3QgU2hhcGVWYWx1ZSosIGNvbnN0IFNoYXBlVmFsdWUqIG9sZFNoYXBlKTsKKyAgICB2b2lk
IHJlbGF5b3V0U2hhcGVEZXNjZW5kYW50SWZNb3ZlZChSZW5kZXJCbG9jayogY2hpbGQsIExheW91
dFNpemUgb2Zmc2V0KTsKKyAgICBMYXlvdXRTaXplIGxvZ2ljYWxPZmZzZXRGcm9tU2hhcGVBbmNl
c3RvckNvbnRhaW5lcihjb25zdCBSZW5kZXJCbG9jayogY29udGFpbmVyKSBjb25zdDsKICNlbmRp
ZgogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0KiB2aXJ0dWFsQ2hpbGRyZW4oKSB7
IHJldHVybiBjaGlsZHJlbigpOyB9CiAgICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3RDaGls
ZExpc3QqIHZpcnR1YWxDaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIGNoaWxkcmVuKCk7IH0KQEAg
LTExMTcsNyArMTExOSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsYXlvdXRSdW5zQW5kRmxvYXRz
KExpbmVMYXlvdXRTdGF0ZSYsIGJvb2wgaGFzSW5saW5lQ2hpbGQpOwogICAgIHZvaWQgbGF5b3V0
UnVuc0FuZEZsb2F0c0luUmFuZ2UoTGluZUxheW91dFN0YXRlJiwgSW5saW5lQmlkaVJlc29sdmVy
JiwgY29uc3QgSW5saW5lSXRlcmF0b3ImIGNsZWFuTGluZVN0YXJ0LCBjb25zdCBCaWRpU3RhdHVz
JiBjbGVhbkxpbmVCaWRpU3RhdHVzLCB1bnNpZ25lZCBjb25zZWN1dGl2ZUh5cGhlbmF0ZWRMaW5l
cyk7CiAjaWYgRU5BQkxFKENTU19TSEFQRVMpCi0gICAgdm9pZCB1cGRhdGVTaGFwZUFuZFNlZ21l
bnRzRm9yQ3VycmVudExpbmUoU2hhcGVJbnNpZGVJbmZvKiYsIExheW91dFVuaXQmLCBMaW5lTGF5
b3V0U3RhdGUmKTsKKyAgICB2b2lkIHVwZGF0ZVNoYXBlQW5kU2VnbWVudHNGb3JDdXJyZW50TGlu
ZShTaGFwZUluc2lkZUluZm8qJiwgY29uc3QgTGF5b3V0U2l6ZSYsIExpbmVMYXlvdXRTdGF0ZSYp
OwogICAgIHZvaWQgdXBkYXRlU2hhcGVBbmRTZWdtZW50c0ZvckN1cnJlbnRMaW5lSW5GbG93VGhy
ZWFkKFNoYXBlSW5zaWRlSW5mbyomLCBMaW5lTGF5b3V0U3RhdGUmKTsKICAgICBib29sIGFkanVz
dExvZ2ljYWxMaW5lVG9wQW5kTG9naWNhbEhlaWdodElmTmVlZGVkKFNoYXBlSW5zaWRlSW5mbyos
IExheW91dFVuaXQsIExpbmVMYXlvdXRTdGF0ZSYsIElubGluZUJpZGlSZXNvbHZlciYsIEZsb2F0
aW5nT2JqZWN0KiwgSW5saW5lSXRlcmF0b3ImLCBXb3JkTWVhc3VyZW1lbnRzJik7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlv
dXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5j
cHAKaW5kZXggZDdlNGJmZDFiMjZmZDI1NTQyMGUyMGM5ZjQ1YzJjOTAxNTkxZTcwOC4uMTNlMjJj
ZWEwOTIwOTMwYWE0YTY0OWE1Y2ZkMjhjODQyODU3YzIzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKQEAgLTE2NzksNyArMTY3
OSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBwdXNoU2hhcGVDb250ZW50T3ZlcmZsb3dCZWxvd1Ro
ZUNvbnRlbnRCb3goUmVuZGVyQmxvY2sqIGJsb2NrCiAgICAgYmxvY2stPnNldExvZ2ljYWxIZWln
aHQobmV3TG9naWNhbEhlaWdodCk7CiB9CiAKLXZvaWQgUmVuZGVyQmxvY2s6OnVwZGF0ZVNoYXBl
QW5kU2VnbWVudHNGb3JDdXJyZW50TGluZShTaGFwZUluc2lkZUluZm8qJiBzaGFwZUluc2lkZUlu
Zm8sIExheW91dFVuaXQmIGFic29sdXRlTG9naWNhbFRvcCwgTGluZUxheW91dFN0YXRlJiBsYXlv
dXRTdGF0ZSkKK3ZvaWQgUmVuZGVyQmxvY2s6OnVwZGF0ZVNoYXBlQW5kU2VnbWVudHNGb3JDdXJy
ZW50TGluZShTaGFwZUluc2lkZUluZm8qJiBzaGFwZUluc2lkZUluZm8sIGNvbnN0IExheW91dFNp
emUmIGxvZ2ljYWxPZmZzZXRGcm9tU2hhcGVDb250YWluZXIsIExpbmVMYXlvdXRTdGF0ZSYgbGF5
b3V0U3RhdGUpCiB7CiAgICAgaWYgKGxheW91dFN0YXRlLmZsb3dUaHJlYWQoKSkKICAgICAgICAg
cmV0dXJuIHVwZGF0ZVNoYXBlQW5kU2VnbWVudHNGb3JDdXJyZW50TGluZUluRmxvd1RocmVhZChz
aGFwZUluc2lkZUluZm8sIGxheW91dFN0YXRlKTsKQEAgLTE2ODcsMTEgKzE2ODcsMTIgQEAgdm9p
ZCBSZW5kZXJCbG9jazo6dXBkYXRlU2hhcGVBbmRTZWdtZW50c0ZvckN1cnJlbnRMaW5lKFNoYXBl
SW5zaWRlSW5mbyomIHNoYXBlSW4KICAgICBpZiAoIXNoYXBlSW5zaWRlSW5mbykKICAgICAgICAg
cmV0dXJuOwogCi0gICAgTGF5b3V0VW5pdCBsaW5lVG9wID0gbG9naWNhbEhlaWdodCgpICsgYWJz
b2x1dGVMb2dpY2FsVG9wOworICAgIExheW91dFVuaXQgbGluZVRvcCA9IGxvZ2ljYWxIZWlnaHQo
KSArIGxvZ2ljYWxPZmZzZXRGcm9tU2hhcGVDb250YWluZXIuaGVpZ2h0KCk7CisgICAgTGF5b3V0
VW5pdCBsaW5lTGVmdCA9IGxvZ2ljYWxPZmZzZXRGcm9tU2hhcGVDb250YWluZXIud2lkdGgoKTsK
ICAgICBMYXlvdXRVbml0IGxpbmVIZWlnaHQgPSB0aGlzLT5saW5lSGVpZ2h0KGxheW91dFN0YXRl
LmxpbmVJbmZvKCkuaXNGaXJzdExpbmUoKSwgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IEhv
cml6b250YWxMaW5lIDogVmVydGljYWxMaW5lLCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMp
OwogCiAgICAgLy8gRklYTUU6IEJ1ZyA5NTM2MTogSXQgaXMgcG9zc2libGUgZm9yIGEgbGluZSB0
byBncm93IGJleW9uZCBsaW5lSGVpZ2h0LCBpbiB3aGljaCBjYXNlIHRoZXNlIHNlZ21lbnRzIG1h
eSBiZSBpbmNvcnJlY3QuCi0gICAgc2hhcGVJbnNpZGVJbmZvLT5jb21wdXRlU2VnbWVudHNGb3JM
aW5lKGxpbmVUb3AsIGxpbmVIZWlnaHQpOworICAgIHNoYXBlSW5zaWRlSW5mby0+Y29tcHV0ZVNl
Z21lbnRzRm9yTGluZShMYXlvdXRTaXplKGxpbmVMZWZ0LCBsaW5lVG9wKSwgbGluZUhlaWdodCk7
CiAKICAgICBwdXNoU2hhcGVDb250ZW50T3ZlcmZsb3dCZWxvd1RoZUNvbnRlbnRCb3godGhpcywg
c2hhcGVJbnNpZGVJbmZvLCBsaW5lVG9wLCBsaW5lSGVpZ2h0KTsKIH0KQEAgLTE3NjIsNyArMTc2
Myw5IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnVwZGF0ZVNoYXBlQW5kU2VnbWVudHNGb3JDdXJyZW50
TGluZUluRmxvd1RocmVhZChTaGFwZUluc2lkZUluCiAgICAgfQogCiAgICAgTGF5b3V0VW5pdCBs
aW5lVG9wID0gbG9naWNhbExpbmVUb3BJbkZsb3dUaHJlYWQgLSBjdXJyZW50UmVnaW9uLT5sb2dp
Y2FsVG9wRm9yRmxvd1RocmVhZENvbnRlbnQoKSArIGN1cnJlbnRSZWdpb24tPmJvcmRlckFuZFBh
ZGRpbmdCZWZvcmUoKTsKLSAgICBzaGFwZUluc2lkZUluZm8tPmNvbXB1dGVTZWdtZW50c0Zvckxp
bmUobGluZVRvcCwgbGluZUhlaWdodCk7CisKKyAgICAvLyBGSVhNRTogMTE4NTcxIC0gU2hhcGUg
aW5zaWRlIG9uIGEgcmVnaW9uIGRvZXMgbm90IHlldCB0YWtlIGludG8gYWNjb3VudCBpdHMgcGFk
ZGluZyBmb3IgbmVzdGVkIGZsb3cgYmxvY2tzCisgICAgc2hhcGVJbnNpZGVJbmZvLT5jb21wdXRl
U2VnbWVudHNGb3JMaW5lKExheW91dFNpemUoMCwgbGluZVRvcCksIGxpbmVIZWlnaHQpOwogCiAg
ICAgaWYgKGN1cnJlbnRSZWdpb24tPmlzTGFzdFJlZ2lvbigpKQogICAgICAgICBwdXNoU2hhcGVD
b250ZW50T3ZlcmZsb3dCZWxvd1RoZUNvbnRlbnRCb3godGhpcywgc2hhcGVJbnNpZGVJbmZvLCBs
aW5lVG9wLCBsaW5lSGVpZ2h0KTsKQEAgLTE4MDAsMTggKzE4MDMsMTggQEAgdm9pZCBSZW5kZXJC
bG9jazo6bGF5b3V0UnVuc0FuZEZsb2F0c0luUmFuZ2UoTGluZUxheW91dFN0YXRlJiBsYXlvdXRT
dGF0ZSwgSW5saW4KICAgICBMaW5lQnJlYWtlciBsaW5lQnJlYWtlcih0aGlzKTsKIAogI2lmIEVO
QUJMRShDU1NfU0hBUEVTKQotICAgIExheW91dFVuaXQgYWJzb2x1dGVMb2dpY2FsVG9wOworICAg
IExheW91dFNpemUgbG9naWNhbE9mZnNldEZyb21TaGFwZUNvbnRhaW5lcjsKICAgICBTaGFwZUlu
c2lkZUluZm8qIHNoYXBlSW5zaWRlSW5mbyA9IGxheW91dFNoYXBlSW5zaWRlSW5mbygpOwogICAg
IGlmIChzaGFwZUluc2lkZUluZm8pIHsKICAgICAgICAgQVNTRVJUKHNoYXBlSW5zaWRlSW5mby0+
b3duZXIoKSA9PSB0aGlzIHx8IGFsbG93c1NoYXBlSW5zaWRlSW5mb1NoYXJpbmcoKSk7CiAgICAg
ICAgIGlmIChzaGFwZUluc2lkZUluZm8gIT0gdGhpcy0+c2hhcGVJbnNpZGVJbmZvKCkpIHsKICAg
ICAgICAgICAgIC8vIEZJWE1FIEJ1ZyAxMDAyODQ6IElmIHN1YnNlcXVlbnQgTGF5b3V0U3RhdGVz
IGFyZSBwdXNoZWQsIHdlIHdpbGwgaGF2ZSB0byBhZGQKICAgICAgICAgICAgIC8vIHRoZWlyIG9m
ZnNldHMgZnJvbSB0aGUgb3JpZ2luYWwgc2hhcGUtaW5zaWRlIGNvbnRhaW5lci4KLSAgICAgICAg
ICAgIGFic29sdXRlTG9naWNhbFRvcCA9IGxvZ2ljYWxUb3AoKTsKKyAgICAgICAgICAgIGxvZ2lj
YWxPZmZzZXRGcm9tU2hhcGVDb250YWluZXIgPSBsb2dpY2FsT2Zmc2V0RnJvbVNoYXBlQW5jZXN0
b3JDb250YWluZXIoc2hhcGVJbnNpZGVJbmZvLT5vd25lcigpKTsKICAgICAgICAgfQogICAgICAg
ICAvLyBCZWdpbiBsYXlvdXQgYXQgdGhlIGxvZ2ljYWwgdG9wIG9mIG91ciBzaGFwZSBpbnNpZGUu
Ci0gICAgICAgIGlmIChsb2dpY2FsSGVpZ2h0KCkgKyBhYnNvbHV0ZUxvZ2ljYWxUb3AgPCBzaGFw
ZUluc2lkZUluZm8tPnNoYXBlTG9naWNhbFRvcCgpKSB7Ci0gICAgICAgICAgICBMYXlvdXRVbml0
IGxvZ2ljYWxIZWlnaHQgPSBzaGFwZUluc2lkZUluZm8tPnNoYXBlTG9naWNhbFRvcCgpIC0gYWJz
b2x1dGVMb2dpY2FsVG9wOworICAgICAgICBpZiAobG9naWNhbEhlaWdodCgpICsgbG9naWNhbE9m
ZnNldEZyb21TaGFwZUNvbnRhaW5lci5oZWlnaHQoKSA8IHNoYXBlSW5zaWRlSW5mby0+c2hhcGVM
b2dpY2FsVG9wKCkpIHsKKyAgICAgICAgICAgIExheW91dFVuaXQgbG9naWNhbEhlaWdodCA9IHNo
YXBlSW5zaWRlSW5mby0+c2hhcGVMb2dpY2FsVG9wKCkgLSBsb2dpY2FsT2Zmc2V0RnJvbVNoYXBl
Q29udGFpbmVyLmhlaWdodCgpOwogICAgICAgICAgICAgaWYgKGxheW91dFN0YXRlLmZsb3dUaHJl
YWQoKSkKICAgICAgICAgICAgICAgICBsb2dpY2FsSGVpZ2h0IC09IHNoYXBlSW5zaWRlSW5mby0+
b3duZXIoKS0+Ym9yZGVyQW5kUGFkZGluZ0JlZm9yZSgpOwogICAgICAgICAgICAgc2V0TG9naWNh
bEhlaWdodChsb2dpY2FsSGVpZ2h0KTsKQEAgLTE4MzksNyArMTg0Miw3IEBAIHZvaWQgUmVuZGVy
QmxvY2s6OmxheW91dFJ1bnNBbmRGbG9hdHNJblJhbmdlKExpbmVMYXlvdXRTdGF0ZSYgbGF5b3V0
U3RhdGUsIElubGluCiAgICAgICAgIEZsb2F0aW5nT2JqZWN0KiBsYXN0RmxvYXRGcm9tUHJldmlv
dXNMaW5lID0gKGNvbnRhaW5zRmxvYXRzKCkpID8gbV9mbG9hdGluZ09iamVjdHMtPnNldCgpLmxh
c3QoKSA6IDA7CiAKICNpZiBFTkFCTEUoQ1NTX1NIQVBFUykKLSAgICAgICAgdXBkYXRlU2hhcGVB
bmRTZWdtZW50c0ZvckN1cnJlbnRMaW5lKHNoYXBlSW5zaWRlSW5mbywgYWJzb2x1dGVMb2dpY2Fs
VG9wLCBsYXlvdXRTdGF0ZSk7CisgICAgICAgIHVwZGF0ZVNoYXBlQW5kU2VnbWVudHNGb3JDdXJy
ZW50TGluZShzaGFwZUluc2lkZUluZm8sIGxvZ2ljYWxPZmZzZXRGcm9tU2hhcGVDb250YWluZXIs
IGxheW91dFN0YXRlKTsKICNlbmRpZgogICAgICAgICBXb3JkTWVhc3VyZW1lbnRzIHdvcmRNZWFz
dXJlbWVudHM7CiAgICAgICAgIGVuZCA9IGxpbmVCcmVha2VyLm5leHRMaW5lQnJlYWsocmVzb2x2
ZXIsIGxheW91dFN0YXRlLmxpbmVJbmZvKCksIHJlbmRlclRleHRJbmZvLCBsYXN0RmxvYXRGcm9t
UHJldmlvdXNMaW5lLCBjb25zZWN1dGl2ZUh5cGhlbmF0ZWRMaW5lcywgd29yZE1lYXN1cmVtZW50
cyk7CkBAIC0xODU1LDcgKzE4NTgsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpsYXlvdXRSdW5zQW5k
RmxvYXRzSW5SYW5nZShMaW5lTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLCBJbmxpbgogICAgICAg
ICB9CiAKICNpZiBFTkFCTEUoQ1NTX1NIQVBFUykKLSAgICAgICAgaWYgKGFkanVzdExvZ2ljYWxM
aW5lVG9wQW5kTG9naWNhbEhlaWdodElmTmVlZGVkKHNoYXBlSW5zaWRlSW5mbywgYWJzb2x1dGVM
b2dpY2FsVG9wLCBsYXlvdXRTdGF0ZSwgcmVzb2x2ZXIsIGxhc3RGbG9hdEZyb21QcmV2aW91c0xp
bmUsIGVuZCwgd29yZE1lYXN1cmVtZW50cykpCisgICAgICAgIGlmIChhZGp1c3RMb2dpY2FsTGlu
ZVRvcEFuZExvZ2ljYWxIZWlnaHRJZk5lZWRlZChzaGFwZUluc2lkZUluZm8sIGxvZ2ljYWxPZmZz
ZXRGcm9tU2hhcGVDb250YWluZXIuaGVpZ2h0KCksIGxheW91dFN0YXRlLCByZXNvbHZlciwgbGFz
dEZsb2F0RnJvbVByZXZpb3VzTGluZSwgZW5kLCB3b3JkTWVhc3VyZW1lbnRzKSkKICAgICAgICAg
ICAgIGNvbnRpbnVlOwogI2VuZGlmCiAgICAgICAgIEFTU0VSVChlbmQgIT0gcmVzb2x2ZXIucG9z
aXRpb24oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1No
YXBlSW5zaWRlSW5mby5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUlu
c2lkZUluZm8uaAppbmRleCBjMDA2YjM2NDU0YjlkYWIxYzIwMjY1NzcwNWVkNDk3MTg5YmM3ZTc2
Li40NGE3NGNjMDYyZDVjNDUyZTg0MjJhYjYwMjFhY2Y4NjgyZjAxNzRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5zaWRlSW5mby5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbnNpZGVJbmZvLmgKQEAgLTY4LDYg
KzY4LDE3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBib29sIGlzRW5hYmxlZEZvcihjb25zdCBS
ZW5kZXJCbG9jayogcmVuZGVyZXIpOwogCisgICAgYm9vbCBjb21wdXRlU2VnbWVudHNGb3JMaW5l
KExheW91dFNpemUgbGluZU9mZnNldCwgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KQorICAgIHsKKyAg
ICAgICAgbV9zZWdtZW50UmFuZ2VzLmNsZWFyKCk7CisgICAgICAgIGJvb2wgcmVzdWx0ID0gU2hh
cGVJbmZvPFJlbmRlckJsb2NrLCAmUmVuZGVyU3R5bGU6OnJlc29sdmVkU2hhcGVJbnNpZGUsICZT
aGFwZTo6Z2V0SW5jbHVkZWRJbnRlcnZhbHM+Ojpjb21wdXRlU2VnbWVudHNGb3JMaW5lKGxpbmVP
ZmZzZXQuaGVpZ2h0KCksIGxpbmVIZWlnaHQpOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IG1fc2VnbWVudHMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgIG1fc2VnbWVudHNbaV0u
bG9naWNhbExlZnQgLT0gbGluZU9mZnNldC53aWR0aCgpOworICAgICAgICAgICAgbV9zZWdtZW50
c1tpXS5sb2dpY2FsUmlnaHQgLT0gbGluZU9mZnNldC53aWR0aCgpOworICAgICAgICB9CisgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCiAgICAgdmlydHVhbCBib29sIGNvbXB1dGVTZWdt
ZW50c0ZvckxpbmUoTGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlvdXRVbml0IGxpbmVIZWlnaHQpIE9W
RVJSSURFCiAgICAgewogICAgICAgICBtX3NlZ21lbnRSYW5nZXMuY2xlYXIoKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1
MzZjNWRjNzAwZTdiOGM1NjBjOGZjMGUwZDMwNDhmZTk3MTFlZjU2Li5jZTU4ZTYzZjE3MTAwYmVh
NTc4MjBiMGU0OTdlMGNiY2RkZTE5MmE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTMtMDgt
MTUgIEJlYXIgVHJhdmlzICA8YmV0cmF2aXNAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgU2hh
cGVzXSBTaGFwZSdzIGNvbnRlbnQgZ2V0cyBleHRyYSBsZWZ0IG9mZnNldCB3aGVuIGxlZnQtYm9y
ZGVyIGlzIHBvc2l0aXZlIG9uIHRoZSBjb250ZW50IGJveAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE3NTczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCB0aGF0IG5lc3RlZCBjaGlsZHJlbiB3aXRo
IHBhZGRpbmcgY29ycmVjdGx5IGFwcGx5IGFuIGFuY2VzdG9yJ3Mgc2hhcGUtaW5zaWRlCisgICAg
ICAgIGFjcm9zcyBkaWZmZXJlbnQgd3JpdGluZyBtb2Rlcy4KKworICAgICAgICAqIGZhc3Qvc2hh
cGVzL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtb2Zmc2V0LWJsb2NrLWNoaWxkcmVuLWV4cGVj
dGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2hhcGVzL3NoYXBlLWluc2lkZS9zaGFw
ZS1pbnNpZGUtb2Zmc2V0LWJsb2NrLWNoaWxkcmVuLmh0bWw6IEFkZGVkLgorCiAyMDEzLTA4LTE1
ICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bWFyaW8ucHJhZGFAc2Ftc3VuZy5jb20+CiAKICAgICAg
ICAgW0dUS10gVW5yZXZpZXdlZCBnYXJkZW5pbmcuIE1vdmUgTWFjIHNwZWNpZmljIGV4cGVjdGF0
aW9uIGZvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRl
L3NoYXBlLWluc2lkZS1vZmZzZXQtYmxvY2stY2hpbGRyZW4tZXhwZWN0ZWQuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3Qvc2hhcGVzL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtb2Zmc2V0LWJsb2Nr
LWNoaWxkcmVuLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTc5YTA4MzkzZjJkNWQ0MmZlNTYw
YzEzMzcxNDM2ODZhYjNkNDI1MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
c2hhcGVzL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtb2Zmc2V0LWJsb2NrLWNoaWxkcmVuLWV4
cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwzMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHN0eWxlIGlkPSdzdHlsZXNoZWV0Jz4KKy5zaGFwZS1pbnNpZGUgeworICAgIGZvbnQ6
IDUwcHgvMSBBaGVtLCBzYW5zLXNlcmlmOworICAgIGNvbG9yOiBncmVlbjsKKyAgICBmbG9hdDog
bGVmdDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0nLi4vcmVzb3VyY2VzL3NpbXBsZS1yZWN0
YW5nbGUuanMnPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgICBpZHMgPSBbCisgICAgICAgICdzaGFw
ZS1pbnNpZGUnLAorICAgICAgICAnc2hhcGUtaW5zaWRlLXJsJywKKyAgICAgICAgJ3NoYXBlLWlu
c2lkZS1scicsCisgICAgICAgICdzaGFwZS1pbnNpZGUtdGItbHItdGInLAorICAgICAgICAnc2hh
cGUtaW5zaWRlLWxyLXJsLWxyJworICAgIF07CisgICAgaWRzLmZvckVhY2goZnVuY3Rpb24oaWQp
IHsKKyAgICAgICAgY3JlYXRlUmVjdGFuZ2xlVGVzdFJlc3VsdChpZCwgJ3N0eWxlc2hlZXQnLCB7
IHdpZHRoOiAzMDAsIGhlaWdodDogMzAwIH0sIHsgeDogMTAwLCB5OiAxMDAsIHdpZHRoOiAxMDAs
IGhlaWdodDogMTAwIH0sICdweCcsIG51bGwpOworICAgIH0pOworPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgc2hhcGUtaW5zaWRlIHRha2VzIGlu
dG8gYWNjb3VudCBwYWRkaW5nIG9uIG5lc3RlZCBjaGlsZCBibG9ja3MgaW4gZGlmZmVyZW50IHdy
aXRpbmcgbW9kZXMuIFlvdSBzaG91bGQgc2VlIHNldmVyYWwgZ3JlZW4gc3F1YXJlcyB3aXRoaW4g
YSBibHVlIG91dGxpbmUuIFRoZSB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuPC9wPgorPGRp
diBpZD0nc2hhcGUtaW5zaWRlJyBjbGFzcz0nc2hhcGUtaW5zaWRlJz54eHh4PC9kaXY+Cis8ZGl2
IGlkPSdzaGFwZS1pbnNpZGUtcmwnIGNsYXNzPSdzaGFwZS1pbnNpZGUnPnh4eHg8L2Rpdj4KKzxk
aXYgaWQ9J3NoYXBlLWluc2lkZS1scicgY2xhc3M9J3NoYXBlLWluc2lkZSc+eHh4eDwvZGl2Pgor
PGRpdiBpZD0nc2hhcGUtaW5zaWRlLXRiLWxyLXRiJyBjbGFzcz0nc2hhcGUtaW5zaWRlJz54eHh4
PC9kaXY+Cis8ZGl2IGlkPSdzaGFwZS1pbnNpZGUtbHItcmwtbHInIGNsYXNzPSdzaGFwZS1pbnNp
ZGUnPnh4eHg8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3Qvc2hhcGVzL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtb2Zmc2V0LWJsb2NrLWNoaWxk
cmVuLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYXBlcy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5z
aWRlLW9mZnNldC1ibG9jay1jaGlsZHJlbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhZWEzMjlmYjRjNWJi
ZTBiMGQyZTVhZWFlYzNkNzMyY2Y2ZTM3OGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3NoYXBlcy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLW9mZnNldC1ibG9jay1jaGls
ZHJlbi5odG1sCkBAIC0wLDAgKzEsNDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzdHlsZSBpZD0nc3R5bGVzaGVldCc+Cisuc2hhcGUtaW5zaWRlIHsKKyAgICBmb250OiA1
MHB4LzEgQWhlbSwgc2Fucy1zZXJpZjsKKyAgICBjb2xvcjogZ3JlZW47CisgICAgZmxvYXQ6IGxl
ZnQ7Cit9CisuaG9yaXpvbnRhbC50YiB7CisgICAgLXdlYmtpdC13cml0aW5nLW1vZGU6IGhvcml6
b250YWwtdGI7Cit9CisudmVydGljYWwucmwgeworICAgIC13ZWJraXQtd3JpdGluZy1tb2RlOiB2
ZXJ0aWNhbC1ybDsKK30KKy52ZXJ0aWNhbC5sciB7CisgICAgLXdlYmtpdC13cml0aW5nLW1vZGU6
IHZlcnRpY2FsLWxyOworfQorLnNoYXBlLWluc2lkZSAqIHsKKyAgICBwYWRkaW5nOiA1cHggMTBw
eCAxNXB4IDIwcHg7Cit9Cis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Jy4uL3Jlc291cmNlcy9zaW1w
bGUtcmVjdGFuZ2xlLmpzJz48L3NjcmlwdD4KKzxzY3JpcHQ+Cit3aW5kb3cub25sb2FkID0gZnVu
Y3Rpb24oKSB7CisgICAgaWRzID0gWworICAgICAgICAnc2hhcGUtaW5zaWRlJywKKyAgICAgICAg
J3NoYXBlLWluc2lkZS1ybCcsCisgICAgICAgICdzaGFwZS1pbnNpZGUtbHInLAorICAgICAgICAn
c2hhcGUtaW5zaWRlLXRiLWxyLXRiJywKKyAgICAgICAgJ3NoYXBlLWluc2lkZS1sci1ybC1scicK
KyAgICBdOworICAgIGlkcy5mb3JFYWNoKGZ1bmN0aW9uKGlkKSB7CisgICAgICAgIGNyZWF0ZVJl
Y3RhbmdsZVRlc3QoaWQsICdzdHlsZXNoZWV0JywgeyB3aWR0aDogMzAwLCBoZWlnaHQ6IDMwMCB9
LCB7IHg6IDEwMCwgeTogMTAwLCB3aWR0aDogMTAwLCBoZWlnaHQ6IDEwMCB9LCAncHgnLCBudWxs
KTsKKyAgICB9KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3Qg
ZW5zdXJlcyB0aGF0IHNoYXBlLWluc2lkZSB0YWtlcyBpbnRvIGFjY291bnQgcGFkZGluZyBvbiBu
ZXN0ZWQgY2hpbGQgYmxvY2tzIGluIGRpZmZlcmVudCB3cml0aW5nIG1vZGVzLiBZb3Ugc2hvdWxk
IHNlZSBzZXZlcmFsIGdyZWVuIHNxdWFyZXMgd2l0aGluIGEgYmx1ZSBvdXRsaW5lLiBUaGUgdGVz
dCByZXF1aXJlcyB0aGUgQWhlbSBmb250LjwvcD4KKzxkaXYgaWQ9J3NoYXBlLWluc2lkZScgY2xh
c3M9J3NoYXBlLWluc2lkZSc+PGRpdj48ZGl2Pnh4eHg8L2Rpdj48L2Rpdj48L2Rpdj4KKzxkaXYg
aWQ9J3NoYXBlLWluc2lkZS1ybCcgY2xhc3M9J3NoYXBlLWluc2lkZSB2ZXJ0aWNhbCBscic+PGRp
dj48ZGl2Pnh4eHg8L2Rpdj48L2Rpdj48L2Rpdj4KKzxkaXYgaWQ9J3NoYXBlLWluc2lkZS1scicg
Y2xhc3M9J3NoYXBlLWluc2lkZSB2ZXJ0aWNhbCBybCc+PGRpdj48ZGl2Pnh4eHg8L2Rpdj48L2Rp
dj48L2Rpdj4KKzxkaXYgaWQ9J3NoYXBlLWluc2lkZS10Yi1sci10YicgY2xhc3M9J3NoYXBlLWlu
c2lkZSc+PGRpdiBjbGFzcz0ndmVydGljYWwgbHInPjxkaXYgY2xhc3M9J2hvcml6b250YWwgdGIn
Pnh4eHg8L2Rpdj48L2Rpdj48L2Rpdj4KKzxkaXYgaWQ9J3NoYXBlLWluc2lkZS1sci1ybC1scicg
Y2xhc3M9J3NoYXBlLWluc2lkZSB2ZXJ0aWNhbCBybCc+PGRpdiBjbGFzcz0ndmVydGljYWwgbHIn
PjxkaXYgY2xhc3M9J3ZlcnRpY2FsIHJsJz54eHh4PC9kaXY+PC9kaXY+PC9kaXY+Cis8L2JvZHk+
Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210139</attachid>
            <date>2013-08-30 11:31:41 -0700</date>
            <delta_ts>2013-09-03 15:13:51 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-117573-20130830113139.patch</filename>
            <type>text/plain</type>
            <size>18169</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU0ODk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzA2MGZmYjZhYWQ0YmEz
NThlMTkzMjhlY2FmNWM5MGEwYzhiZjMyMC4uMDAxMWQ0ZDc5YjU0ODIxMjhmYzhhYTJiMDI2ZjNh
YWIzNmEzMjI5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTA4LTMwICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIFNoYXBlc10gU2hh
cGUncyBjb250ZW50IGdldHMgZXh0cmEgbGVmdCBvZmZzZXQgd2hlbiBsZWZ0LWJvcmRlciBpcyBw
b3NpdGl2ZSBvbiB0aGUgY29udGVudCBib3gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExNzU3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE5lc3RlZCBibG9ja3MgbmVlZCB0byB0YWtlIGludG8gYWNjb3Vu
dCB0aGVpciBvZmZzZXQgZnJvbSB0aGUgc2hhcGUtaW5zaWRlIGNvbnRhaW5lci4KKyAgICAgICAg
VGhlIG5ldyBjb2RlIGNhbGN1bGF0ZXMgdGhlIG9mZnNldCBmcm9tIHRoZSBzaGFwZS1pbnNpZGUg
Y29udGFpbmVyLCB0aGVuIGFwcGxpZXMgdGhlCisgICAgICAgIG9mZnNldCB0byB0aGUgY29tcHV0
ZWQgc2VnbWVudHMuIFRoZSBsaW5lIG11c3QgYmUgbW92ZWQgZG93biBieSB0aGUgb2Zmc2V0J3Mg
aGVpZ2h0LAorICAgICAgICBhbmQgZWFjaCBzZWdtZW50IG11c3QgYmUgbW92ZWQgbGVmdCBieSB0
aGUgb2Zmc2V0J3Mgd2lkdGguCisKKyAgICAgICAgVGVzdDogZmFzdC9zaGFwZXMvc2hhcGUtaW5z
aWRlL3NoYXBlLWluc2lkZS1vZmZzZXQtYmxvY2stY2hpbGRyZW4uaHRtbAorCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2Nr
OjpyZWxheW91dFNoYXBlRGVzY2VuZGFudElmTW92ZWQpOiBSZWxheW91dCBhIGJsb2NrIGNoaWxk
IGlmIGl0cworICAgICAgICBuZXcgbG9naWNhbCBsZWZ0IHdvdWxkIGNhdXNlIGl0IHRvIHJlc3Qg
YXQgYSBuZXcgcG9zaXRpb24gd2l0aGluIGEgc2hhcGUgY29udGFpbmVyLgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQmxvY2s6OmxvZ2ljYWxPZmZzZXRGcm9tU2hhcGVBbmNlc3RvckNvbnRhaW5l
cik6IENhbGN1bGF0ZSB0aGUgbG9naWNhbAorICAgICAgICBvZmZzZXQgZm9ybSBhIHNoYXBlIGlu
c2lkZSBhbmNlc3RvciBjb250YWluZXIuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
bGF5b3V0QmxvY2tDaGlsZCk6IENhbGwgcmVsYXlvdXRTaGFwZURlc2NlbmRhbnRJZk1vdmVkIHdp
dGggdGhlCisgICAgICAgIG5ldyBwb3NpdGlvbiBvZmZzZXQuCisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6dXBkYXRlU2hhcGVBbmRTZWdt
ZW50c0ZvckN1cnJlbnRMaW5lKTogVXNlIGxheW91dCBvZmZzZXQsIHJhdGhlcgorICAgICAgICB0
aGFuIGp1c3QgdmVydGljYWwgb2Zmc2V0LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6
OnVwZGF0ZVNoYXBlQW5kU2VnbWVudHNGb3JDdXJyZW50TGluZUluRmxvd1RocmVhZCk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dFJ1bnNBbmRGbG9hdHNJblJh
bmdlKTogRGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8u
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXBlSW5zaWRlSW5mbzo6Y29tcHV0ZVNlZ21lbnRzRm9y
TGluZSk6IFNoaWZ0IHNlZ21lbnRzIGxvZ2ljYWxseSBsZWZ0IHdoZW4KKyAgICAgICAgdGhlcmUg
aXMgYW4gaW5saW5lIG9mZnNldC4KKwogMjAxMy0wOC0zMCAgUm9iIEJ1aXMgIDxyd2xidWlzQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgU1ZHIGVycm9yIHBhcnNpbmcgZW1wdHkgcGF0aApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggZTUzOWYyZWUwMzY0OGQyYWM1
ZmMxYTM5NjM0OWU0NTM1Zjc0MDRlZS4uMzI4NTMyN2YzOTAwNGQ2YTZhMjU5MTNkZmQ2MTBhYmRl
NTA3NmE0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0x
NDM0LDYgKzE0MzQsNTAgQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0KCkKIH0KIAogI2lmIEVO
QUJMRShDU1NfU0hBUEVTKQordm9pZCBSZW5kZXJCbG9jazo6cmVsYXlvdXRTaGFwZURlc2NlbmRh
bnRJZk1vdmVkKFJlbmRlckJsb2NrKiBjaGlsZCwgTGF5b3V0U2l6ZSBvZmZzZXQpCit7CisgICAg
TGF5b3V0VW5pdCBsZWZ0ID0gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IG9mZnNldC53aWR0
aCgpIDogb2Zmc2V0LmhlaWdodCgpOworICAgIGlmICghbGVmdCB8fCAhY2hpbGQgfHwgY2hpbGQt
PnNoYXBlSW5zaWRlSW5mbygpIHx8ICFsYXlvdXRTaGFwZUluc2lkZUluZm8oKSkKKyAgICAgICAg
cmV0dXJuOworICAgIC8vIFByb3BhZ2F0ZSBsYXlvdXQgbWFya2VycyBvbmx5IHVwIHRvIHRoZSBj
aGlsZCwgYXMgd2UgYXJlIHN0aWxsIGluIHRoZSBtaWRkbGUKKyAgICAvLyBvZiBhIGxheW91dCBw
YXNzCisgICAgY2hpbGQtPnNldE5vcm1hbENoaWxkTmVlZHNMYXlvdXQodHJ1ZSk7CisgICAgY2hp
bGQtPm1hcmtTaGFwZUluc2lkZURlc2NlbmRhbnRzRm9yTGF5b3V0KCk7CisgICAgY2hpbGQtPmxh
eW91dElmTmVlZGVkKCk7Cit9CisKK0xheW91dFNpemUgUmVuZGVyQmxvY2s6OmxvZ2ljYWxPZmZz
ZXRGcm9tU2hhcGVBbmNlc3RvckNvbnRhaW5lcihjb25zdCBSZW5kZXJCbG9jayogY29udGFpbmVy
KSBjb25zdAoreworICAgIGNvbnN0IFJlbmRlckJsb2NrKiBjdXJyZW50QmxvY2sgPSB0aGlzOwor
ICAgIExheW91dFJlY3QgYmxvY2tSZWN0KGN1cnJlbnRCbG9jay0+Ym9yZGVyQm94UmVjdCgpKTsK
KyAgICB3aGlsZSAoY3VycmVudEJsb2NrICYmICFjdXJyZW50QmxvY2stPmlzUmVuZGVyRmxvd1Ro
cmVhZCgpICYmIGN1cnJlbnRCbG9jayAhPSBjb250YWluZXIpIHsKKyAgICAgICAgUmVuZGVyQmxv
Y2sqIGNvbnRhaW5lckJsb2NrID0gY3VycmVudEJsb2NrLT5jb250YWluaW5nQmxvY2soKTsKKyAg
ICAgICAgQVNTRVJUKGNvbnRhaW5lckJsb2NrKTsKKyAgICAgICAgaWYgKCFjb250YWluZXJCbG9j
aykKKyAgICAgICAgICAgIHJldHVybiBMYXlvdXRTaXplKCk7CisKKyAgICAgICAgaWYgKGNvbnRh
aW5lckJsb2NrLT5zdHlsZSgpLT53cml0aW5nTW9kZSgpICE9IGN1cnJlbnRCbG9jay0+c3R5bGUo
KS0+d3JpdGluZ01vZGUoKSkgeworICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byBwdXQgdGhlIGJs
b2NrIHJlY3QgaW4gY29udGFpbmVyIGNvb3JkaW5hdGVzCisgICAgICAgICAgICAvLyBhbmQgd2Ug
aGF2ZSB0byB0YWtlIGludG8gYWNjb3VudCBib3RoIHRoZSBjb250YWluZXIgYW5kIGN1cnJlbnQg
YmxvY2sgZmxpcHBpbmcgbW9kZXMKKyAgICAgICAgICAgIC8vIEJ1ZyAxMTgwNzM6IEZsaXBwaW5n
IGlubGluZSBhbmQgYmxvY2sgZGlyZWN0aW9ucyBhdCB0aGUgc2FtZSB0aW1lIHdpbGwgbm90IHdv
cmssCisgICAgICAgICAgICAvLyBhcyBvbmUgb2YgdGhlIGZsaXBwZWQgZGltZW5zaW9ucyB3aWxs
IG5vdCB5ZXQgaGF2ZSBiZWVuIHNldCB0byBpdHMgZmluYWwgc2l6ZQorICAgICAgICAgICAgaWYg
KGNvbnRhaW5lckJsb2NrLT5zdHlsZSgpLT5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpKSB7
CisgICAgICAgICAgICAgICAgaWYgKGNvbnRhaW5lckJsb2NrLT5pc0hvcml6b250YWxXcml0aW5n
TW9kZSgpKQorICAgICAgICAgICAgICAgICAgICBibG9ja1JlY3Quc2V0WShjdXJyZW50QmxvY2st
PmhlaWdodCgpIC0gYmxvY2tSZWN0Lm1heFkoKSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgICAgICBibG9ja1JlY3Quc2V0WChjdXJyZW50QmxvY2stPndpZHRoKCkgLSBi
bG9ja1JlY3QubWF4WCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGN1cnJlbnRCbG9j
ay0+ZmxpcEZvcldyaXRpbmdNb2RlKGJsb2NrUmVjdCk7CisgICAgICAgIH0KKworICAgICAgICBi
bG9ja1JlY3QubW92ZUJ5KGN1cnJlbnRCbG9jay0+bG9jYXRpb24oKSk7CisgICAgICAgIGN1cnJl
bnRCbG9jayA9IGNvbnRhaW5lckJsb2NrOworICAgIH0KKworICAgIExheW91dFNpemUgcmVzdWx0
ID0gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IExheW91dFNpemUoYmxvY2tSZWN0LngoKSwg
YmxvY2tSZWN0LnkoKSkgOiBMYXlvdXRTaXplKGJsb2NrUmVjdC55KCksIGJsb2NrUmVjdC54KCkp
OworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIHZvaWQgUmVuZGVyQmxvY2s6OmltYWdlQ2hhbmdl
ZChXcmFwcGVkSW1hZ2VQdHIgaW1hZ2UsIGNvbnN0IEludFJlY3QqKQogewogICAgIFJlbmRlckJv
eDo6aW1hZ2VDaGFuZ2VkKGltYWdlKTsKQEAgLTI3MjksNiArMjc3MywxMSBAQCB2b2lkIFJlbmRl
ckJsb2NrOjpsYXlvdXRCbG9ja0NoaWxkKFJlbmRlckJveCogY2hpbGQsIE1hcmdpbkluZm8mIG1h
cmdpbkluZm8sIExheQogICAgIC8vIE5vdyBwbGFjZSB0aGUgY2hpbGQgaW4gdGhlIGNvcnJlY3Qg
bGVmdCBwb3NpdGlvbgogICAgIGRldGVybWluZUxvZ2ljYWxMZWZ0UG9zaXRpb25Gb3JDaGlsZChj
aGlsZCwgQXBwbHlMYXlvdXREZWx0YSk7CiAKKyAgICBMYXlvdXRTaXplIGNoaWxkT2Zmc2V0ID0g
Y2hpbGQtPmxvY2F0aW9uKCkgLSBvbGRSZWN0LmxvY2F0aW9uKCk7CisjaWYgRU5BQkxFKENTU19T
SEFQRVMpCisgICAgcmVsYXlvdXRTaGFwZURlc2NlbmRhbnRJZk1vdmVkKGNoaWxkUmVuZGVyQmxv
Y2ssIGNoaWxkT2Zmc2V0KTsKKyNlbmRpZgorCiAgICAgLy8gVXBkYXRlIG91ciBoZWlnaHQgbm93
IHRoYXQgdGhlIGNoaWxkIGhhcyBiZWVuIHBsYWNlZCBpbiB0aGUgY29ycmVjdCBwb3NpdGlvbi4K
ICAgICBzZXRMb2dpY2FsSGVpZ2h0KGxvZ2ljYWxIZWlnaHQoKSArIGxvZ2ljYWxIZWlnaHRGb3JD
aGlsZChjaGlsZCkpOwogICAgIGlmIChtdXN0U2VwYXJhdGVNYXJnaW5BZnRlckZvckNoaWxkKGNo
aWxkKSkgewpAQCAtMjc0MCw3ICsyNzg5LDYgQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0Qmxv
Y2tDaGlsZChSZW5kZXJCb3gqIGNoaWxkLCBNYXJnaW5JbmZvJiBtYXJnaW5JbmZvLCBMYXkKICAg
ICBpZiAoY2hpbGRSZW5kZXJCbG9jayAmJiBjaGlsZFJlbmRlckJsb2NrLT5jb250YWluc0Zsb2F0
cygpKQogICAgICAgICBtYXhGbG9hdExvZ2ljYWxCb3R0b20gPSBtYXgobWF4RmxvYXRMb2dpY2Fs
Qm90dG9tLCBhZGRPdmVyaGFuZ2luZ0Zsb2F0cyh0b1JlbmRlckJsb2NrKGNoaWxkKSwgIWNoaWxk
TmVlZGVkTGF5b3V0KSk7CiAKLSAgICBMYXlvdXRTaXplIGNoaWxkT2Zmc2V0ID0gY2hpbGQtPmxv
Y2F0aW9uKCkgLSBvbGRSZWN0LmxvY2F0aW9uKCk7CiAgICAgaWYgKGNoaWxkT2Zmc2V0LndpZHRo
KCkgfHwgY2hpbGRPZmZzZXQuaGVpZ2h0KCkpIHsKICAgICAgICAgdmlldygpLmFkZExheW91dERl
bHRhKGNoaWxkT2Zmc2V0KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaApp
bmRleCAwM2NmM2I2OTUyNGY3MmI4OTMyMzM5NWZmNDE2YjRiOGFiMjAwYzBiLi4yY2JkYTY0YmJh
YTM3ZWM3MDJiNTQ2YTYyNTFmMDUzNGQ4YWUwOWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suaApAQCAtNjE4LDYgKzYxOCw4IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKENT
U19TSEFQRVMpCiAgICAgdm9pZCBjb21wdXRlU2hhcGVTaXplKCk7CiAgICAgdm9pZCB1cGRhdGVT
aGFwZUluc2lkZUluZm9BZnRlclN0eWxlQ2hhbmdlKGNvbnN0IFNoYXBlVmFsdWUqLCBjb25zdCBT
aGFwZVZhbHVlKiBvbGRTaGFwZSk7CisgICAgdm9pZCByZWxheW91dFNoYXBlRGVzY2VuZGFudElm
TW92ZWQoUmVuZGVyQmxvY2sqIGNoaWxkLCBMYXlvdXRTaXplIG9mZnNldCk7CisgICAgTGF5b3V0
U2l6ZSBsb2dpY2FsT2Zmc2V0RnJvbVNoYXBlQW5jZXN0b3JDb250YWluZXIoY29uc3QgUmVuZGVy
QmxvY2sqIGNvbnRhaW5lcikgY29uc3Q7CiAjZW5kaWYKICAgICB2aXJ0dWFsIFJlbmRlck9iamVj
dENoaWxkTGlzdCogdmlydHVhbENoaWxkcmVuKCkgeyByZXR1cm4gY2hpbGRyZW4oKTsgfQogICAg
IHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0KiB2aXJ0dWFsQ2hpbGRyZW4oKSBj
b25zdCB7IHJldHVybiBjaGlsZHJlbigpOyB9CkBAIC0xMTE4LDcgKzExMjAsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgbGF5b3V0UnVuc0FuZEZsb2F0cyhMaW5lTGF5b3V0U3RhdGUmLCBib29sIGhh
c0lubGluZUNoaWxkKTsKICAgICB2b2lkIGxheW91dFJ1bnNBbmRGbG9hdHNJblJhbmdlKExpbmVM
YXlvdXRTdGF0ZSYsIElubGluZUJpZGlSZXNvbHZlciYsIGNvbnN0IElubGluZUl0ZXJhdG9yJiBj
bGVhbkxpbmVTdGFydCwgY29uc3QgQmlkaVN0YXR1cyYgY2xlYW5MaW5lQmlkaVN0YXR1cywgdW5z
aWduZWQgY29uc2VjdXRpdmVIeXBoZW5hdGVkTGluZXMpOwogI2lmIEVOQUJMRShDU1NfU0hBUEVT
KQotICAgIHZvaWQgdXBkYXRlU2hhcGVBbmRTZWdtZW50c0ZvckN1cnJlbnRMaW5lKFNoYXBlSW5z
aWRlSW5mbyomLCBMYXlvdXRVbml0JiwgTGluZUxheW91dFN0YXRlJik7CisgICAgdm9pZCB1cGRh
dGVTaGFwZUFuZFNlZ21lbnRzRm9yQ3VycmVudExpbmUoU2hhcGVJbnNpZGVJbmZvKiYsIGNvbnN0
IExheW91dFNpemUmLCBMaW5lTGF5b3V0U3RhdGUmKTsKICAgICB2b2lkIHVwZGF0ZVNoYXBlQW5k
U2VnbWVudHNGb3JDdXJyZW50TGluZUluRmxvd1RocmVhZChTaGFwZUluc2lkZUluZm8qJiwgTGlu
ZUxheW91dFN0YXRlJik7CiAgICAgYm9vbCBhZGp1c3RMb2dpY2FsTGluZVRvcEFuZExvZ2ljYWxI
ZWlnaHRJZk5lZWRlZChTaGFwZUluc2lkZUluZm8qLCBMYXlvdXRVbml0LCBMaW5lTGF5b3V0U3Rh
dGUmLCBJbmxpbmVCaWRpUmVzb2x2ZXImLCBGbG9hdGluZ09iamVjdCosIElubGluZUl0ZXJhdG9y
JiwgV29yZE1lYXN1cmVtZW50cyYpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCmluZGV4IGY1NGMxOTZiYTIxOTFlYjc3
Y2E1M2U4MTcyZGI5OWE5MzRlMGY0YWMuLmMzNTQwOWVlMmRmYzE5ODkwOGUwZDBlZWNlMWU2YWIw
NzkzZmRmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
a0xpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
a0xpbmVMYXlvdXQuY3BwCkBAIC0xNjc4LDcgKzE2NzgsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQg
cHVzaFNoYXBlQ29udGVudE92ZXJmbG93QmVsb3dUaGVDb250ZW50Qm94KFJlbmRlckJsb2NrKiBi
bG9jawogICAgIGJsb2NrLT5zZXRMb2dpY2FsSGVpZ2h0KG5ld0xvZ2ljYWxIZWlnaHQpOwogfQog
Ci12b2lkIFJlbmRlckJsb2NrOjp1cGRhdGVTaGFwZUFuZFNlZ21lbnRzRm9yQ3VycmVudExpbmUo
U2hhcGVJbnNpZGVJbmZvKiYgc2hhcGVJbnNpZGVJbmZvLCBMYXlvdXRVbml0JiBhYnNvbHV0ZUxv
Z2ljYWxUb3AsIExpbmVMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUpCit2b2lkIFJlbmRlckJsb2Nr
Ojp1cGRhdGVTaGFwZUFuZFNlZ21lbnRzRm9yQ3VycmVudExpbmUoU2hhcGVJbnNpZGVJbmZvKiYg
c2hhcGVJbnNpZGVJbmZvLCBjb25zdCBMYXlvdXRTaXplJiBsb2dpY2FsT2Zmc2V0RnJvbVNoYXBl
Q29udGFpbmVyLCBMaW5lTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKQogewogICAgIGlmIChsYXlv
dXRTdGF0ZS5mbG93VGhyZWFkKCkpCiAgICAgICAgIHJldHVybiB1cGRhdGVTaGFwZUFuZFNlZ21l
bnRzRm9yQ3VycmVudExpbmVJbkZsb3dUaHJlYWQoc2hhcGVJbnNpZGVJbmZvLCBsYXlvdXRTdGF0
ZSk7CkBAIC0xNjg2LDExICsxNjg2LDEyIEBAIHZvaWQgUmVuZGVyQmxvY2s6OnVwZGF0ZVNoYXBl
QW5kU2VnbWVudHNGb3JDdXJyZW50TGluZShTaGFwZUluc2lkZUluZm8qJiBzaGFwZUluCiAgICAg
aWYgKCFzaGFwZUluc2lkZUluZm8pCiAgICAgICAgIHJldHVybjsKIAotICAgIExheW91dFVuaXQg
bGluZVRvcCA9IGxvZ2ljYWxIZWlnaHQoKSArIGFic29sdXRlTG9naWNhbFRvcDsKKyAgICBMYXlv
dXRVbml0IGxpbmVUb3AgPSBsb2dpY2FsSGVpZ2h0KCkgKyBsb2dpY2FsT2Zmc2V0RnJvbVNoYXBl
Q29udGFpbmVyLmhlaWdodCgpOworICAgIExheW91dFVuaXQgbGluZUxlZnQgPSBsb2dpY2FsT2Zm
c2V0RnJvbVNoYXBlQ29udGFpbmVyLndpZHRoKCk7CiAgICAgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0
ID0gdGhpcy0+bGluZUhlaWdodChsYXlvdXRTdGF0ZS5saW5lSW5mbygpLmlzRmlyc3RMaW5lKCks
IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGlu
ZSwgUG9zaXRpb25PZkludGVyaW9yTGluZUJveGVzKTsKIAogICAgIC8vIEZJWE1FOiBCdWcgOTUz
NjE6IEl0IGlzIHBvc3NpYmxlIGZvciBhIGxpbmUgdG8gZ3JvdyBiZXlvbmQgbGluZUhlaWdodCwg
aW4gd2hpY2ggY2FzZSB0aGVzZSBzZWdtZW50cyBtYXkgYmUgaW5jb3JyZWN0LgotICAgIHNoYXBl
SW5zaWRlSW5mby0+Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShsaW5lVG9wLCBsaW5lSGVpZ2h0KTsK
KyAgICBzaGFwZUluc2lkZUluZm8tPmNvbXB1dGVTZWdtZW50c0ZvckxpbmUoTGF5b3V0U2l6ZShs
aW5lTGVmdCwgbGluZVRvcCksIGxpbmVIZWlnaHQpOwogCiAgICAgcHVzaFNoYXBlQ29udGVudE92
ZXJmbG93QmVsb3dUaGVDb250ZW50Qm94KHRoaXMsIHNoYXBlSW5zaWRlSW5mbywgbGluZVRvcCwg
bGluZUhlaWdodCk7CiB9CkBAIC0xNzYxLDcgKzE3NjIsOSBAQCB2b2lkIFJlbmRlckJsb2NrOjp1
cGRhdGVTaGFwZUFuZFNlZ21lbnRzRm9yQ3VycmVudExpbmVJbkZsb3dUaHJlYWQoU2hhcGVJbnNp
ZGVJbgogICAgIH0KIAogICAgIExheW91dFVuaXQgbGluZVRvcCA9IGxvZ2ljYWxMaW5lVG9wSW5G
bG93VGhyZWFkIC0gY3VycmVudFJlZ2lvbi0+bG9naWNhbFRvcEZvckZsb3dUaHJlYWRDb250ZW50
KCkgKyBjdXJyZW50UmVnaW9uLT5ib3JkZXJBbmRQYWRkaW5nQmVmb3JlKCk7Ci0gICAgc2hhcGVJ
bnNpZGVJbmZvLT5jb21wdXRlU2VnbWVudHNGb3JMaW5lKGxpbmVUb3AsIGxpbmVIZWlnaHQpOwor
CisgICAgLy8gRklYTUU6IDExODU3MSAtIFNoYXBlIGluc2lkZSBvbiBhIHJlZ2lvbiBkb2VzIG5v
dCB5ZXQgdGFrZSBpbnRvIGFjY291bnQgaXRzIHBhZGRpbmcgZm9yIG5lc3RlZCBmbG93IGJsb2Nr
cworICAgIHNoYXBlSW5zaWRlSW5mby0+Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRTaXpl
KDAsIGxpbmVUb3ApLCBsaW5lSGVpZ2h0KTsKIAogICAgIGlmIChjdXJyZW50UmVnaW9uLT5pc0xh
c3RSZWdpb24oKSkKICAgICAgICAgcHVzaFNoYXBlQ29udGVudE92ZXJmbG93QmVsb3dUaGVDb250
ZW50Qm94KHRoaXMsIHNoYXBlSW5zaWRlSW5mbywgbGluZVRvcCwgbGluZUhlaWdodCk7CkBAIC0x
Nzk5LDE4ICsxODAyLDE4IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dFJ1bnNBbmRGbG9hdHNJ
blJhbmdlKExpbmVMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIElubGluCiAgICAgTGluZUJyZWFr
ZXIgbGluZUJyZWFrZXIodGhpcyk7CiAKICNpZiBFTkFCTEUoQ1NTX1NIQVBFUykKLSAgICBMYXlv
dXRVbml0IGFic29sdXRlTG9naWNhbFRvcDsKKyAgICBMYXlvdXRTaXplIGxvZ2ljYWxPZmZzZXRG
cm9tU2hhcGVDb250YWluZXI7CiAgICAgU2hhcGVJbnNpZGVJbmZvKiBzaGFwZUluc2lkZUluZm8g
PSBsYXlvdXRTaGFwZUluc2lkZUluZm8oKTsKICAgICBpZiAoc2hhcGVJbnNpZGVJbmZvKSB7CiAg
ICAgICAgIEFTU0VSVChzaGFwZUluc2lkZUluZm8tPm93bmVyKCkgPT0gdGhpcyB8fCBhbGxvd3NT
aGFwZUluc2lkZUluZm9TaGFyaW5nKCkpOwogICAgICAgICBpZiAoc2hhcGVJbnNpZGVJbmZvICE9
IHRoaXMtPnNoYXBlSW5zaWRlSW5mbygpKSB7CiAgICAgICAgICAgICAvLyBGSVhNRSBCdWcgMTAw
Mjg0OiBJZiBzdWJzZXF1ZW50IExheW91dFN0YXRlcyBhcmUgcHVzaGVkLCB3ZSB3aWxsIGhhdmUg
dG8gYWRkCiAgICAgICAgICAgICAvLyB0aGVpciBvZmZzZXRzIGZyb20gdGhlIG9yaWdpbmFsIHNo
YXBlLWluc2lkZSBjb250YWluZXIuCi0gICAgICAgICAgICBhYnNvbHV0ZUxvZ2ljYWxUb3AgPSBs
b2dpY2FsVG9wKCk7CisgICAgICAgICAgICBsb2dpY2FsT2Zmc2V0RnJvbVNoYXBlQ29udGFpbmVy
ID0gbG9naWNhbE9mZnNldEZyb21TaGFwZUFuY2VzdG9yQ29udGFpbmVyKHNoYXBlSW5zaWRlSW5m
by0+b3duZXIoKSk7CiAgICAgICAgIH0KICAgICAgICAgLy8gQmVnaW4gbGF5b3V0IGF0IHRoZSBs
b2dpY2FsIHRvcCBvZiBvdXIgc2hhcGUgaW5zaWRlLgotICAgICAgICBpZiAobG9naWNhbEhlaWdo
dCgpICsgYWJzb2x1dGVMb2dpY2FsVG9wIDwgc2hhcGVJbnNpZGVJbmZvLT5zaGFwZUxvZ2ljYWxU
b3AoKSkgewotICAgICAgICAgICAgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0gc2hhcGVJbnNp
ZGVJbmZvLT5zaGFwZUxvZ2ljYWxUb3AoKSAtIGFic29sdXRlTG9naWNhbFRvcDsKKyAgICAgICAg
aWYgKGxvZ2ljYWxIZWlnaHQoKSArIGxvZ2ljYWxPZmZzZXRGcm9tU2hhcGVDb250YWluZXIuaGVp
Z2h0KCkgPCBzaGFwZUluc2lkZUluZm8tPnNoYXBlTG9naWNhbFRvcCgpKSB7CisgICAgICAgICAg
ICBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQgPSBzaGFwZUluc2lkZUluZm8tPnNoYXBlTG9naWNh
bFRvcCgpIC0gbG9naWNhbE9mZnNldEZyb21TaGFwZUNvbnRhaW5lci5oZWlnaHQoKTsKICAgICAg
ICAgICAgIGlmIChsYXlvdXRTdGF0ZS5mbG93VGhyZWFkKCkpCiAgICAgICAgICAgICAgICAgbG9n
aWNhbEhlaWdodCAtPSBzaGFwZUluc2lkZUluZm8tPm93bmVyKCktPmJvcmRlckFuZFBhZGRpbmdC
ZWZvcmUoKTsKICAgICAgICAgICAgIHNldExvZ2ljYWxIZWlnaHQobG9naWNhbEhlaWdodCk7CkBA
IC0xODM4LDcgKzE4NDEsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpsYXlvdXRSdW5zQW5kRmxvYXRz
SW5SYW5nZShMaW5lTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLCBJbmxpbgogICAgICAgICBGbG9h
dGluZ09iamVjdCogbGFzdEZsb2F0RnJvbVByZXZpb3VzTGluZSA9IChjb250YWluc0Zsb2F0cygp
KSA/IG1fZmxvYXRpbmdPYmplY3RzLT5zZXQoKS5sYXN0KCkgOiAwOwogCiAjaWYgRU5BQkxFKENT
U19TSEFQRVMpCi0gICAgICAgIHVwZGF0ZVNoYXBlQW5kU2VnbWVudHNGb3JDdXJyZW50TGluZShz
aGFwZUluc2lkZUluZm8sIGFic29sdXRlTG9naWNhbFRvcCwgbGF5b3V0U3RhdGUpOworICAgICAg
ICB1cGRhdGVTaGFwZUFuZFNlZ21lbnRzRm9yQ3VycmVudExpbmUoc2hhcGVJbnNpZGVJbmZvLCBs
b2dpY2FsT2Zmc2V0RnJvbVNoYXBlQ29udGFpbmVyLCBsYXlvdXRTdGF0ZSk7CiAjZW5kaWYKICAg
ICAgICAgV29yZE1lYXN1cmVtZW50cyB3b3JkTWVhc3VyZW1lbnRzOwogICAgICAgICBlbmQgPSBs
aW5lQnJlYWtlci5uZXh0TGluZUJyZWFrKHJlc29sdmVyLCBsYXlvdXRTdGF0ZS5saW5lSW5mbygp
LCByZW5kZXJUZXh0SW5mbywgbGFzdEZsb2F0RnJvbVByZXZpb3VzTGluZSwgY29uc2VjdXRpdmVI
eXBoZW5hdGVkTGluZXMsIHdvcmRNZWFzdXJlbWVudHMpOwpAQCAtMTg1NCw3ICsxODU3LDcgQEAg
dm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0UnVuc0FuZEZsb2F0c0luUmFuZ2UoTGluZUxheW91dFN0
YXRlJiBsYXlvdXRTdGF0ZSwgSW5saW4KICAgICAgICAgfQogCiAjaWYgRU5BQkxFKENTU19TSEFQ
RVMpCi0gICAgICAgIGlmIChhZGp1c3RMb2dpY2FsTGluZVRvcEFuZExvZ2ljYWxIZWlnaHRJZk5l
ZWRlZChzaGFwZUluc2lkZUluZm8sIGFic29sdXRlTG9naWNhbFRvcCwgbGF5b3V0U3RhdGUsIHJl
c29sdmVyLCBsYXN0RmxvYXRGcm9tUHJldmlvdXNMaW5lLCBlbmQsIHdvcmRNZWFzdXJlbWVudHMp
KQorICAgICAgICBpZiAoYWRqdXN0TG9naWNhbExpbmVUb3BBbmRMb2dpY2FsSGVpZ2h0SWZOZWVk
ZWQoc2hhcGVJbnNpZGVJbmZvLCBsb2dpY2FsT2Zmc2V0RnJvbVNoYXBlQ29udGFpbmVyLmhlaWdo
dCgpLCBsYXlvdXRTdGF0ZSwgcmVzb2x2ZXIsIGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUsIGVu
ZCwgd29yZE1lYXN1cmVtZW50cykpCiAgICAgICAgICAgICBjb250aW51ZTsKICNlbmRpZgogICAg
ICAgICBBU1NFUlQoZW5kICE9IHJlc29sdmVyLnBvc2l0aW9uKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8uaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbnNpZGVJbmZvLmgKaW5kZXggYzAwNmIzNjQ1
NGI5ZGFiMWMyMDI2NTc3MDVlZDQ5NzE4OWJjN2U3Ni4uNDRhNzRjYzA2MmQ1YzQ1MmU4NDIyYWI2
MDIxYWNmODY4MmYwMTc0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3No
YXBlcy9TaGFwZUluc2lkZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hh
cGVzL1NoYXBlSW5zaWRlSW5mby5oCkBAIC02OCw2ICs2OCwxNyBAQCBwdWJsaWM6CiAKICAgICBz
dGF0aWMgYm9vbCBpc0VuYWJsZWRGb3IoY29uc3QgUmVuZGVyQmxvY2sqIHJlbmRlcmVyKTsKIAor
ICAgIGJvb2wgY29tcHV0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRTaXplIGxpbmVPZmZzZXQsIExh
eW91dFVuaXQgbGluZUhlaWdodCkKKyAgICB7CisgICAgICAgIG1fc2VnbWVudFJhbmdlcy5jbGVh
cigpOworICAgICAgICBib29sIHJlc3VsdCA9IFNoYXBlSW5mbzxSZW5kZXJCbG9jaywgJlJlbmRl
clN0eWxlOjpyZXNvbHZlZFNoYXBlSW5zaWRlLCAmU2hhcGU6OmdldEluY2x1ZGVkSW50ZXJ2YWxz
Pjo6Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShsaW5lT2Zmc2V0LmhlaWdodCgpLCBsaW5lSGVpZ2h0
KTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3NlZ21lbnRzLnNpemUoKTsgaSsr
KSB7CisgICAgICAgICAgICBtX3NlZ21lbnRzW2ldLmxvZ2ljYWxMZWZ0IC09IGxpbmVPZmZzZXQu
d2lkdGgoKTsKKyAgICAgICAgICAgIG1fc2VnbWVudHNbaV0ubG9naWNhbFJpZ2h0IC09IGxpbmVP
ZmZzZXQud2lkdGgoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0K
KwogICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlU2VnbWVudHNGb3JMaW5lKExheW91dFVuaXQgbGlu
ZVRvcCwgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KSBPVkVSUklERQogICAgIHsKICAgICAgICAgbV9z
ZWdtZW50UmFuZ2VzLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODE5ZmNkZWUzZjZjMmU1YmM5ZTZkYzg0ZjI1
Yjk1YmYwYzUzYzI3Mi4uNzZlMjg1YzY3MGVhOGY4NjcwMzIzOGIxODQxOTY2OTc4NTJiNjMyOCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTA4LTMwICBCZWFyIFRyYXZpcyAgPGJldHJhdmlz
QGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIFNoYXBlc10gU2hhcGUncyBjb250ZW50IGdldHMg
ZXh0cmEgbGVmdCBvZmZzZXQgd2hlbiBsZWZ0LWJvcmRlciBpcyBwb3NpdGl2ZSBvbiB0aGUgY29u
dGVudCBib3gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTExNzU3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRlc3QgdGhhdCBuZXN0ZWQgY2hpbGRyZW4gd2l0aCBwYWRkaW5nIGNvcnJlY3RseSBhcHBseSBh
biBhbmNlc3RvcidzIHNoYXBlLWluc2lkZQorICAgICAgICBhY3Jvc3MgZGlmZmVyZW50IHdyaXRp
bmcgbW9kZXMuCisKKyAgICAgICAgKiBmYXN0L3NoYXBlcy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5z
aWRlLW9mZnNldC1ibG9jay1jaGlsZHJlbi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L3NoYXBlcy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLW9mZnNldC1ibG9jay1jaGls
ZHJlbi5odG1sOiBBZGRlZC4KKwogMjAxMy0wOC0zMCAgUm9iIEJ1aXMgIDxyd2xidWlzQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgU1ZHIGVycm9yIHBhcnNpbmcgZW1wdHkgcGF0aApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1vZmZz
ZXQtYmxvY2stY2hpbGRyZW4tZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhcGVz
L3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtb2Zmc2V0LWJsb2NrLWNoaWxkcmVuLWV4cGVjdGVk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOWUzZTFhNTg5NzkzMzk2NTQ3MzRkZGQ3NmYzZmRlYjJlNmM5MDY3
NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhcGVzL3NoYXBlLWluc2lk
ZS9zaGFwZS1pbnNpZGUtb2Zmc2V0LWJsb2NrLWNoaWxkcmVuLWV4cGVjdGVkLmh0bWwKQEAgLTAs
MCArMSwzMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlIGlkPSdz
dHlsZXNoZWV0Jz4KKy5zaGFwZS1pbnNpZGUgeworICAgIGZvbnQ6IDUwcHgvMSBBaGVtLCBzYW5z
LXNlcmlmOworICAgIGNvbG9yOiBncmVlbjsKKyAgICBmbG9hdDogbGVmdDsKK30KKzwvc3R5bGU+
Cis8c2NyaXB0IHNyYz0nLi4vcmVzb3VyY2VzL3NpbXBsZS1yZWN0YW5nbGUuanMnPjwvc2NyaXB0
PgorPHNjcmlwdD4KKyAgICBpZHMgPSBbCisgICAgICAgICdzaGFwZS1pbnNpZGUnLAorICAgICAg
ICAnc2hhcGUtaW5zaWRlLXJsJywKKyAgICAgICAgJ3NoYXBlLWluc2lkZS1scicsCisgICAgICAg
ICdzaGFwZS1pbnNpZGUtdGItbHItdGInLAorICAgICAgICAnc2hhcGUtaW5zaWRlLWxyLXJsLWxy
JworICAgIF07CisgICAgaWRzLmZvckVhY2goZnVuY3Rpb24oaWQpIHsKKyAgICAgICAgZHJhd0V4
cGVjdGVkUmVjdGFuZ2xlKGlkLCAnc3R5bGVzaGVldCcsIHsgd2lkdGg6IDMwMCwgaGVpZ2h0OiAz
MDAgfSwgeyB4OiAxMDAsIHk6IDEwMCwgd2lkdGg6IDEwMCwgaGVpZ2h0OiAxMDAgfSwgJ3B4Jywg
bnVsbCk7CisgICAgfSk7Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0
IGVuc3VyZXMgdGhhdCBzaGFwZS1pbnNpZGUgdGFrZXMgaW50byBhY2NvdW50IHBhZGRpbmcgb24g
bmVzdGVkIGNoaWxkIGJsb2NrcyBpbiBkaWZmZXJlbnQgd3JpdGluZyBtb2Rlcy4gWW91IHNob3Vs
ZCBzZWUgc2V2ZXJhbCBncmVlbiBzcXVhcmVzIHdpdGhpbiBhIGJsdWUgb3V0bGluZS4gVGhlIHRl
c3QgcmVxdWlyZXMgdGhlIEFoZW0gZm9udC48L3A+Cis8ZGl2IGlkPSdzaGFwZS1pbnNpZGUnIGNs
YXNzPSdzaGFwZS1pbnNpZGUnPnh4eHg8L2Rpdj4KKzxkaXYgaWQ9J3NoYXBlLWluc2lkZS1ybCcg
Y2xhc3M9J3NoYXBlLWluc2lkZSc+eHh4eDwvZGl2PgorPGRpdiBpZD0nc2hhcGUtaW5zaWRlLWxy
JyBjbGFzcz0nc2hhcGUtaW5zaWRlJz54eHh4PC9kaXY+Cis8ZGl2IGlkPSdzaGFwZS1pbnNpZGUt
dGItbHItdGInIGNsYXNzPSdzaGFwZS1pbnNpZGUnPnh4eHg8L2Rpdj4KKzxkaXYgaWQ9J3NoYXBl
LWluc2lkZS1sci1ybC1scicgY2xhc3M9J3NoYXBlLWluc2lkZSc+eHh4eDwvZGl2PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtaW5z
aWRlL3NoYXBlLWluc2lkZS1vZmZzZXQtYmxvY2stY2hpbGRyZW4uaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3Qvc2hhcGVzL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtb2Zmc2V0LWJsb2NrLWNoaWxk
cmVuLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMzViM2ViZWIyZGY3MTdlY2QzZTYyOTY2Y2JiMDQ5ZTFmNGE4
MzkyNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhcGVzL3NoYXBlLWlu
c2lkZS9zaGFwZS1pbnNpZGUtb2Zmc2V0LWJsb2NrLWNoaWxkcmVuLmh0bWwKQEAgLTAsMCArMSw0
NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlIGlkPSdzdHlsZXNo
ZWV0Jz4KKy5zaGFwZS1pbnNpZGUgeworICAgIGZvbnQ6IDUwcHgvMSBBaGVtLCBzYW5zLXNlcmlm
OworICAgIGNvbG9yOiBncmVlbjsKKyAgICBmbG9hdDogbGVmdDsKK30KKy5ob3Jpem9udGFsLnRi
IHsKKyAgICAtd2Via2l0LXdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC10YjsKK30KKy52ZXJ0aWNh
bC5ybCB7CisgICAgLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsOworfQorLnZlcnRp
Y2FsLmxyIHsKKyAgICAtd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7Cit9Cisuc2hh
cGUtaW5zaWRlICogeworICAgIHBhZGRpbmc6IDVweCAxMHB4IDE1cHggMjBweDsKK30KKzwvc3R5
bGU+Cis8c2NyaXB0IHNyYz0nLi4vcmVzb3VyY2VzL3NpbXBsZS1yZWN0YW5nbGUuanMnPjwvc2Ny
aXB0PgorPHNjcmlwdD4KK3dpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICBpZHMgPSBb
CisgICAgICAgICdzaGFwZS1pbnNpZGUnLAorICAgICAgICAnc2hhcGUtaW5zaWRlLXJsJywKKyAg
ICAgICAgJ3NoYXBlLWluc2lkZS1scicsCisgICAgICAgICdzaGFwZS1pbnNpZGUtdGItbHItdGIn
LAorICAgICAgICAnc2hhcGUtaW5zaWRlLWxyLXJsLWxyJworICAgIF07CisgICAgaWRzLmZvckVh
Y2goZnVuY3Rpb24oaWQpIHsKKyAgICAgICAgZHJhd1RleHRSZWN0YW5nbGUoaWQsICdzdHlsZXNo
ZWV0JywgeyB3aWR0aDogMzAwLCBoZWlnaHQ6IDMwMCB9LCB7IHg6IDEwMCwgeTogMTAwLCB3aWR0
aDogMTAwLCBoZWlnaHQ6IDEwMCB9LCAncHgnLCBudWxsKTsKKyAgICB9KTsKK30KKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgZW5zdXJlcyB0aGF0IHNoYXBlLWluc2lk
ZSB0YWtlcyBpbnRvIGFjY291bnQgcGFkZGluZyBvbiBuZXN0ZWQgY2hpbGQgYmxvY2tzIGluIGRp
ZmZlcmVudCB3cml0aW5nIG1vZGVzLiBZb3Ugc2hvdWxkIHNlZSBzZXZlcmFsIGdyZWVuIHNxdWFy
ZXMgd2l0aGluIGEgYmx1ZSBvdXRsaW5lLiBUaGUgdGVzdCByZXF1aXJlcyB0aGUgQWhlbSBmb250
LjwvcD4KKzxkaXYgaWQ9J3NoYXBlLWluc2lkZScgY2xhc3M9J3NoYXBlLWluc2lkZSc+PGRpdj48
ZGl2Pnh4eHg8L2Rpdj48L2Rpdj48L2Rpdj4KKzxkaXYgaWQ9J3NoYXBlLWluc2lkZS1ybCcgY2xh
c3M9J3NoYXBlLWluc2lkZSB2ZXJ0aWNhbCBscic+PGRpdj48ZGl2Pnh4eHg8L2Rpdj48L2Rpdj48
L2Rpdj4KKzxkaXYgaWQ9J3NoYXBlLWluc2lkZS1scicgY2xhc3M9J3NoYXBlLWluc2lkZSB2ZXJ0
aWNhbCBybCc+PGRpdj48ZGl2Pnh4eHg8L2Rpdj48L2Rpdj48L2Rpdj4KKzxkaXYgaWQ9J3NoYXBl
LWluc2lkZS10Yi1sci10YicgY2xhc3M9J3NoYXBlLWluc2lkZSc+PGRpdiBjbGFzcz0ndmVydGlj
YWwgbHInPjxkaXYgY2xhc3M9J2hvcml6b250YWwgdGInPnh4eHg8L2Rpdj48L2Rpdj48L2Rpdj4K
KzxkaXYgaWQ9J3NoYXBlLWluc2lkZS1sci1ybC1scicgY2xhc3M9J3NoYXBlLWluc2lkZSB2ZXJ0
aWNhbCBybCc+PGRpdiBjbGFzcz0ndmVydGljYWwgbHInPjxkaXYgY2xhc3M9J3ZlcnRpY2FsIHJs
Jz54eHh4PC9kaXY+PC9kaXY+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>