<?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>128194</bug_id>
          
          <creation_ts>2014-02-04 10:50:09 -0800</creation_ts>
          <short_desc>Convert position:sticky and position:fixed properties to position:static and position:absolute upon copy</short_desc>
          <delta_ts>2014-02-12 10:37:35 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>dino</cc>
    
    <cc>enrica</cc>
    
    <cc>jonlee</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>976437</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-02-04 10:50:09 -0800</bug_when>
    <thetext>Convert position:sticky and position:fixed properties to position:static and position:absolute upon copy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976527</commentid>
    <comment_count>1</comment_count>
      <attachid>223168</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-02-04 15:20:26 -0800</bug_when>
    <thetext>Created attachment 223168
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976537</commentid>
    <comment_count>2</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-02-04 15:32:10 -0800</bug_when>
    <thetext>&lt;rdar://problem/15696956&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976570</commentid>
    <comment_count>3</comment_count>
      <attachid>223168</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-02-04 16:08:51 -0800</bug_when>
    <thetext>Comment on attachment 223168
Patch

It&apos;s not clear to me that we want to do this unconditionally on copy; you&apos;ll break lots of HTML editors. Seems like the recipient of the paste needs to do the mungeing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977608</commentid>
    <comment_count>4</comment_count>
      <attachid>223168</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-02-06 16:32:08 -0800</bug_when>
    <thetext>Comment on attachment 223168
Patch

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

&gt; Source/WebCore/editing/EditingStyle.cpp:1232
&gt; +    if (m_mutableStyle-&gt;propertyMatches(CSSPropertyPosition, sticky.get()))
&gt; +        m_mutableStyle-&gt;setProperty(CSSPropertyPosition, cssValuePool().createIdentifierValue(CSSValueStatic), false);

We should probably preserve the importance of the property.

&gt; Source/WebCore/editing/markup.cpp:322
&gt; +            
&gt; +            newInlineStyle-&gt;convertFixedAndStickyPosition();

We need this function to return a boolean and keep that state in StyledMarkupAccumulator
so that we can remember to wrap the whole thing with position:relative block.

Also, Simon is right in that we don&apos;t want to do this unless we&apos;re copying the entire document
so we need the constructor of StylizedMarkupAccumulator to take some enum/boolean for that as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977622</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-02-06 16:44:00 -0800</bug_when>
    <thetext>&gt; Also, Simon is right in that we don&apos;t want to do this unless we&apos;re copying the entire document
Why? I still think this should be a paste-time filter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977623</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-02-06 16:48:04 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; &gt; Also, Simon is right in that we don&apos;t want to do this unless we&apos;re copying the entire document
&gt; Why? I still think this should be a paste-time filter.

No, at the paste time, we don&apos;t know where elements are placed.  Also, copy-time is where we do all these style serializations.

We used to have some code in paste side trying to fix the content and that was an epic fail. We&apos;ve moved most of that stuff into copy site over time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978119</commentid>
    <comment_count>7</comment_count>
      <attachid>223168</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-02-07 16:12:20 -0800</bug_when>
    <thetext>Comment on attachment 223168
Patch

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

&gt;&gt; Source/WebCore/editing/EditingStyle.cpp:1232
&gt;&gt; +        m_mutableStyle-&gt;setProperty(CSSPropertyPosition, cssValuePool().createIdentifierValue(CSSValueStatic), false);
&gt; 
&gt; We should probably preserve the importance of the property.

Done.

&gt;&gt; Source/WebCore/editing/markup.cpp:322
&gt;&gt; +            newInlineStyle-&gt;convertFixedAndStickyPosition();
&gt; 
&gt; We need this function to return a boolean and keep that state in StyledMarkupAccumulator
&gt; so that we can remember to wrap the whole thing with position:relative block.
&gt; 
&gt; Also, Simon is right in that we don&apos;t want to do this unless we&apos;re copying the entire document
&gt; so we need the constructor of StylizedMarkupAccumulator to take some enum/boolean for that as well.

Done. I&apos;m doing that check in createMarkupInternal</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979220</commentid>
    <comment_count>8</comment_count>
      <attachid>223795</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-02-10 19:41:01 -0800</bug_when>
    <thetext>Created attachment 223795
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979222</commentid>
    <comment_count>9</comment_count>
      <attachid>223797</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-02-10 19:51:12 -0800</bug_when>
    <thetext>Created attachment 223797
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979259</commentid>
    <comment_count>10</comment_count>
      <attachid>223795</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-02-10 21:58:22 -0800</bug_when>
    <thetext>Comment on attachment 223795
Patch

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

&gt; Source/WebCore/ChangeLog:13
&gt; +        block (position:relative) is wrapped around the copied text. If there is a position:-webkit-sticky
&gt; +        element, it is replaced with position:static.

You should convert sticky to position:relative, so that positioned descendants stay more or less in the same place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979519</commentid>
    <comment_count>11</comment_count>
      <attachid>223795</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-02-11 11:25:58 -0800</bug_when>
    <thetext>Comment on attachment 223795
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:13
&gt;&gt; +        element, it is replaced with position:static.
&gt; 
&gt; You should convert sticky to position:relative, so that positioned descendants stay more or less in the same place.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979552</commentid>
    <comment_count>12</comment_count>
      <attachid>223889</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-02-11 12:36:25 -0800</bug_when>
    <thetext>Created attachment 223889
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979553</commentid>
    <comment_count>13</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-02-11 12:37:12 -0800</bug_when>
    <thetext>Related: https://bugs.webkit.org/show_bug.cgi?id=128616</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979644</commentid>
    <comment_count>14</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-02-11 16:02:37 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/163916</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979703</commentid>
    <comment_count>15</comment_count>
      <attachid>223889</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-02-11 18:13:21 -0800</bug_when>
    <thetext>Comment on attachment 223889
Patch

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

&gt; Source/WebCore/editing/markup.cpp:330
&gt; +            if (element.document().settings() &amp;&amp; element.document().settings()-&gt;convertPositionStyleOnCopy())
&gt; +                m_needRelativeStyleWrapper |= newInlineStyle-&gt;convertFixedAndStickyPosition();

There&apos;s a bug here. This is isn&apos;t checking thatfullySelectedRoot == body was true in createMarkupInternal :(
As such, this code runs even if the entire body wasn&apos;t selected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979908</commentid>
    <comment_count>16</comment_count>
      <attachid>223889</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-02-12 10:37:35 -0800</bug_when>
    <thetext>Comment on attachment 223889
Patch

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

&gt;&gt; Source/WebCore/editing/markup.cpp:330
&gt;&gt; +                m_needRelativeStyleWrapper |= newInlineStyle-&gt;convertFixedAndStickyPosition();
&gt; 
&gt; There&apos;s a bug here. This is isn&apos;t checking thatfullySelectedRoot == body was true in createMarkupInternal :(
&gt; As such, this code runs even if the entire body wasn&apos;t selected.

Oh man. This was fixed in an earlier version of the patch, but must have gotten lost in refactoring. :-(</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223168</attachid>
            <date>2014-02-04 15:20:26 -0800</date>
            <delta_ts>2014-02-10 19:41:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128194-20140204152025.patch</filename>
            <type>text/plain</type>
            <size>6885</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzMzI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWE5N2Y1OTI0ZGY5NjQw
ZTlmMWE3OTYyYzE4ZWRlN2VmNGZlYzk5NS4uNTYxOGIwZWU3ZTk1MWY1NmI1ODlkN2RkOTBmNDc0
MTY3NDE2NjhhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE0LTAyLTA0ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQ29udmVydCBw
b3NpdGlvbjpzdGlja3kgYW5kIHBvc2l0aW9uOmZpeGVkIHByb3BlcnRpZXMgdG8gcG9zaXRpb246
c3RhdGljIGFuZCBwb3NpdGlvbjphYnNvbHV0ZSB1cG9uIGNvcHkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODE5NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gY29weWluZyBhbmQgcGFzdGluZywg
d2Ugc2hvdWxkIGNvbnZlcnQgcG9zaXRpb246LXdlYmtpdC1zdGlja3kgdG8gcG9zaXRpb246c3Rh
dGljCisgICAgICAgIGFuZCBwb3NpdGlvbjpmaXhlZCB0byBwb3NpdGlvbjphYnNvbHV0ZQorCisg
ICAgICAgIFRlc3Q6IGVkaXRpbmcvcGFzdGVib2FyZC9jb3B5LXBhc3RlLWNvbnZlcnRzLXN0aWNr
eS1hbmQtZml4ZWQuaHRtbAorCisgICAgICAgICogZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ1N0eWxlOjpjb252ZXJ0Rml4ZWRBbmRTdGlja3lQb3Np
dGlvbik6CisgICAgICAgICogZWRpdGluZy9FZGl0aW5nU3R5bGUuaDoKKyAgICAgICAgKiBlZGl0
aW5nL21hcmt1cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRNYXJrdXBBY2N1bXVsYXRv
cjo6YXBwZW5kRWxlbWVudCk6CisKIDIwMTQtMDItMDMgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6
YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogV2ViS2l0IHNob3VsZCBzdXBwb3J0IEBoZWFk
ZXJzL0BpZCBmb3IgY29tcGxleCBhY2Nlc3NpYmxlIHdlYiB0YWJsZXMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdGluZ1N0eWxlLmNwcAppbmRleCAzNjRmZjgwNTRjY2ZlNDFkOGNiMDJiZDYzYzY0
ZmY1NDNhNTA3OTg3Li5lMzQxYzAzYWJjYmZkZDQwZjUxZTJkNWM3M2Q4ZmM0N2NlOTYxN2Q5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCkBAIC0xMjIxLDYgKzEyMjEs
MjIgQEAgdm9pZCBFZGl0aW5nU3R5bGU6OmZvcmNlSW5saW5lKCkKICAgICBtX211dGFibGVTdHls
ZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlEaXNwbGF5LCBDU1NWYWx1ZUlubGluZSwgcHJvcGVy
dHlJc0ltcG9ydGFudCk7CiB9CiAKK2Jvb2wgRWRpdGluZ1N0eWxlOjpjb252ZXJ0Rml4ZWRBbmRT
dGlja3lQb3NpdGlvbigpCit7CisgICAgaWYgKCFtX211dGFibGVTdHlsZSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBzdGlja3kgPSBjc3NW
YWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVXZWJraXRTdGlja3kpOwor
ICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gZml4ZWQgPSBjc3NWYWx1ZVBvb2woKS5jcmVh
dGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVGaXhlZCk7CisgICAgaWYgKG1fbXV0YWJsZVN0eWxl
LT5wcm9wZXJ0eU1hdGNoZXMoQ1NTUHJvcGVydHlQb3NpdGlvbiwgc3RpY2t5LmdldCgpKSkKKyAg
ICAgICAgbV9tdXRhYmxlU3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5UG9zaXRpb24sIGNz
c1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZVN0YXRpYyksIGZhbHNl
KTsKKyAgICBpZiAobV9tdXRhYmxlU3R5bGUtPnByb3BlcnR5TWF0Y2hlcyhDU1NQcm9wZXJ0eVBv
c2l0aW9uLCBmaXhlZC5nZXQoKSkpIHsKKyAgICAgICAgbV9tdXRhYmxlU3R5bGUtPnNldFByb3Bl
cnR5KENTU1Byb3BlcnR5UG9zaXRpb24sIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJW
YWx1ZShDU1NWYWx1ZUFic29sdXRlKSwgZmFsc2UpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBpbnQgRWRpdGluZ1N0eWxlOjpsZWdhY3lGb250
U2l6ZShEb2N1bWVudCogZG9jdW1lbnQpIGNvbnN0CiB7CiAgICAgUmVmUHRyPENTU1ZhbHVlPiBj
c3NWYWx1ZSA9IG1fbXV0YWJsZVN0eWxlLT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnR5
Rm9udFNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5
bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmgKaW5kZXggMWZhMWNk
ZTZhMzI2YjcwNTA4YmY5NTg0MTZlOTFkYjRiNTg2Njg2YS4uZTIxMTYxMTUyZjc1M2E2ODM3YzIw
MjE4YzQ0OWE4M2I5OGNlYzk4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0aW5nU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5o
CkBAIC0xMzUsNiArMTM1LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlU3R5bGVGcm9tUnVs
ZXNBbmRDb250ZXh0KFN0eWxlZEVsZW1lbnQqLCBOb2RlKiBjb250ZXh0KTsKICAgICB2b2lkIHJl
bW92ZVByb3BlcnRpZXNJbkVsZW1lbnREZWZhdWx0U3R5bGUoRWxlbWVudCopOwogICAgIHZvaWQg
Zm9yY2VJbmxpbmUoKTsKKyAgICBib29sIGNvbnZlcnRGaXhlZEFuZFN0aWNreVBvc2l0aW9uKCk7
CiAgICAgaW50IGxlZ2FjeUZvbnRTaXplKERvY3VtZW50KikgY29uc3Q7CiAKICAgICBmbG9hdCBm
b250U2l6ZURlbHRhKCkgY29uc3QgeyByZXR1cm4gbV9mb250U2l6ZURlbHRhOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL21hcmt1cC5jcHAKaW5kZXggNWI2MTczYjE1NGY3YTcwOThkMGM5MjViYTFmMTVjMGQy
ZWNlOTIyNS4uMjM1YzlhMDRiODk5OTg2N2EwNjFmNDNjNDRhOWMzNGU5ODliY2E2ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvbWFya3VwLmNwcApAQCAtMzE4LDYgKzMxOCw4IEBAIHZvaWQgU3R5bGVkTWFy
a3VwQWNjdW11bGF0b3I6OmFwcGVuZEVsZW1lbnQoU3RyaW5nQnVpbGRlciYgb3V0LCBjb25zdCBF
bGVtZW50JiBlCiAKICAgICAgICAgICAgIGlmIChhZGREaXNwbGF5SW5saW5lKQogICAgICAgICAg
ICAgICAgIG5ld0lubGluZVN0eWxlLT5mb3JjZUlubGluZSgpOworICAgICAgICAgICAgCisgICAg
ICAgICAgICBuZXdJbmxpbmVTdHlsZS0+Y29udmVydEZpeGVkQW5kU3RpY2t5UG9zaXRpb24oKTsK
IAogICAgICAgICAgICAgLy8gSWYgdGhlIG5vZGUgaXMgbm90IGZ1bGx5IHNlbGVjdGVkIGJ5IHRo
ZSByYW5nZSwgdGhlbiB3ZSBkb24ndCB3YW50IHRvIGtlZXAgc3R5bGVzIHRoYXQgYWZmZWN0IGl0
cyByZWxhdGlvbnNoaXAgdG8gdGhlIG5vZGVzIGFyb3VuZCBpdAogICAgICAgICAgICAgLy8gb25s
eSB0aGUgb25lcyB0aGF0IGFmZmVjdCBpdCBhbmQgdGhlIG5vZGVzIHdpdGhpbiBpdC4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA1MWMwYzUyOTkyYWU3NWM0YjgwZjc1NWNjMWNkOWY3MzcwNjY2YmVjLi43ZTNjZjczNzI1OTMw
NmY3YTRhNDlmMjcwYjc4OWE4ODdhYjMxYjRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTQt
MDItMDQgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAg
ICBDb252ZXJ0IHBvc2l0aW9uOnN0aWNreSBhbmQgcG9zaXRpb246Zml4ZWQgcHJvcGVydGllcyB0
byBwb3NpdGlvbjpzdGF0aWMgYW5kIHBvc2l0aW9uOmFic29sdXRlIHVwb24gY29weQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MTk0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBjb3B5aW5nIGFu
ZCBwYXN0aW5nLCB3ZSBzaG91bGQgY29udmVydCBwb3NpdGlvbjotd2Via2l0LXN0aWNreSB0byBw
b3NpdGlvbjpzdGF0aWMKKyAgICAgICAgYW5kIHBvc2l0aW9uOmZpeGVkIHRvIHBvc2l0aW9uOmFi
c29sdXRlCisKKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvY29weS1wYXN0ZS1jb252ZXJ0
cy1zdGlja3ktYW5kLWZpeGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGlu
Zy9wYXN0ZWJvYXJkL2NvcHktcGFzdGUtY29udmVydHMtc3RpY2t5LWFuZC1maXhlZC5odG1sOiBB
ZGRlZC4KKwogMjAxNC0wMS0zMSAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFNpbXBsaWZpZWQgbmFtZSBzY29wZSBjcmVhdGlvbiBmb3IgZnVuY3Rpb24gZXhw
cmVzc2lvbnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9jb3B5
LXBhc3RlLWNvbnZlcnRzLXN0aWNreS1hbmQtZml4ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktcGFzdGUtY29udmVydHMtc3RpY2t5LWFuZC1maXhl
ZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjVlZDk4NWQ2OGFkZmFhYjhhMzI0YTY2MjcwNTNj
NzI5OWUxNWIxMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVi
b2FyZC9jb3B5LXBhc3RlLWNvbnZlcnRzLXN0aWNreS1hbmQtZml4ZWQtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMzEgQEAKK1RoZXNlIHRlc3RzIHRvIHNlZSBpZiBwb3NpdGlvbjpzdGlja3kgYW5k
IHBvc2l0aW9uOmZpeGVkIGdldCBjb252ZXJ0ZWQgdG8gcG9zaXRpb246c3RhdGljIGFuZCBwb3Np
dGlvbjphYnNvbHV0ZSB1cG9uIGNvcHkvcGFzdGUKKworZmlyc3QgdGVzdCAtIGJlZm9yZToKK3wg
IgorYWJjIgorfCA8ZGl2PgorfCAgIHN0eWxlPSJwb3NpdGlvbjogZml4ZWQ7IGxlZnQ6IDBweDsg
dG9wOiAwcHg7IgorfCAgICJkZWYiCit8ICJnaGkKKyIKK3wgPGJyPgorfCAiCitqa2wiCit8IDxk
aXY+Cit8ICAgc3R5bGU9InBvc2l0aW9uOiBzdGlja3k7IgorfCAgICJtbm8iCit8ICJxcHIKKyIK
KworZmlyc3QgdGVzdCAtIGFmdGVyOgorfCAiYWJjIgorfCA8ZGl2PgorfCAgIHN0eWxlPSJwb3Np
dGlvbjogYWJzb2x1dGU7IGxlZnQ6IDBweDsgdG9wOiAwcHg7IgorfCAgICJkZWYiCit8ICJnaGki
Cit8ICLCoCIKK3wgPGJyPgorfCAiamtsIgorfCA8ZGl2PgorfCAgICJtbm8iCit8ICJxcHI8I3Nl
bGVjdGlvbi1jYXJldD4iCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9h
cmQvY29weS1wYXN0ZS1jb252ZXJ0cy1zdGlja3ktYW5kLWZpeGVkLmh0bWwgYi9MYXlvdXRUZXN0
cy9lZGl0aW5nL3Bhc3RlYm9hcmQvY29weS1wYXN0ZS1jb252ZXJ0cy1zdGlja3ktYW5kLWZpeGVk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYmJlZmFkY2ExNTYwMDU1NjJhMjA5MDY5ZTRmYTQ1ZjdmOTUwOGZh
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9jb3B5
LXBhc3RlLWNvbnZlcnRzLXN0aWNreS1hbmQtZml4ZWQuaHRtbApAQCAtMCwwICsxLDI5IEBACis8
aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIiBjb250ZW50PSJ0
ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8ZGl2IGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIgaWQ9InRlc3QxIj4KK2Fi
YzxkaXYgc3R5bGU9InBvc2l0aW9uOiBmaXhlZDsgbGVmdDogMHB4OyB0b3A6IDBweDsiPmRlZjwv
ZGl2PmdoaQorPGJyLz4KK2prbDxkaXYgc3R5bGU9InBvc2l0aW9uOiBzdGlja3k7Ij5tbm88L2Rp
dj5xcHIKKzwvZGl2PgorCis8c2NyaXB0PgorCitNYXJrdXAuZGVzY3JpcHRpb24oJ1RoZXNlIHRl
c3RzIHRvIHNlZSBpZiBwb3NpdGlvbjpzdGlja3kgYW5kIHBvc2l0aW9uOmZpeGVkIGdldCBjb252
ZXJ0ZWQgdG8gcG9zaXRpb246c3RhdGljIGFuZCBwb3NpdGlvbjphYnNvbHV0ZSB1cG9uIGNvcHkv
cGFzdGUnKTsKKwordmFyIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdDEiKTsKK3Zh
ciBzID0gd2luZG93LmdldFNlbGVjdGlvbigpOworCitNYXJrdXAuZHVtcCgndGVzdDEnLCAnZmly
c3QgdGVzdCAtIGJlZm9yZScpOworcy5zZXRQb3NpdGlvbihlLCAwKTsKK2RvY3VtZW50LmV4ZWND
b21tYW5kKCJTZWxlY3RBbGwiKTsKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCJDdXQiKTsKK2RvY3Vt
ZW50LmV4ZWNDb21tYW5kKCJQYXN0ZSIpOworTWFya3VwLmR1bXAoJ3Rlc3QxJywgJ2ZpcnN0IHRl
c3QgLSBhZnRlcicpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223795</attachid>
            <date>2014-02-10 19:41:01 -0800</date>
            <delta_ts>2014-02-11 11:25:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128194-20140210194059.patch</filename>
            <type>text/plain</type>
            <size>26559</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzNjM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWE0M2NhZGE4YWViNTFm
MjQ3NDcyNDhjNmFhMGJlOTkzMTVjMzAyMS4uMjU3NTNmMGU3NDJhNzFhYTNhMGMzZWU2MmNkZDIy
YmMwNDk3YmQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE0LTAyLTEwICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQ29udmVydCBw
b3NpdGlvbjpzdGlja3kgYW5kIHBvc2l0aW9uOmZpeGVkIHByb3BlcnRpZXMgdG8gcG9zaXRpb246
c3RhdGljIGFuZCBwb3NpdGlvbjphYnNvbHV0ZSB1cG9uIGNvcHkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODE5NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgYWRkcyBhIFNldHRpbmcgYW5kIFBy
ZWZlcmVuY2UgdGhhdCBhbGxvd3MgY2xpZW50cyB0byBvcHQtaW4gdG8gdGhpcyBiZWhhdmlvci4K
KworICAgICAgICBUaGlzIG5ldyBiZWhhdmlvciBpcyBvbmx5IGFjdGl2YXRlZCBpZiB0aGUgZW50
aXJlIGJvZHkgaXMgY29waWVkLiBJZiB0aGVyZSBpcyBhIHBvc2l0aW9uOmZpeGVkCisgICAgICAg
IGVsZW1lbnQgaW4gdGhlIGNvcGllZCBzZWxlY3Rpb24sIGl0IGlzIHJlcGxhY2VkIHdpdGggcG9z
aXRpb246YWJzb2x1dGUsIGFuZCBhIGNvbnRhaW5pbmcKKyAgICAgICAgYmxvY2sgKHBvc2l0aW9u
OnJlbGF0aXZlKSBpcyB3cmFwcGVkIGFyb3VuZCB0aGUgY29waWVkIHRleHQuIElmIHRoZXJlIGlz
IGEgcG9zaXRpb246LXdlYmtpdC1zdGlja3kKKyAgICAgICAgZWxlbWVudCwgaXQgaXMgcmVwbGFj
ZWQgd2l0aCBwb3NpdGlvbjpzdGF0aWMuCisKKyAgICAgICAgVGVzdDogZWRpdGluZy9wYXN0ZWJv
YXJkL2NvcHktcGFzdGUtY29udmVydHMtc3RpY2t5LWFuZC1maXhlZC5odG1sCisKKyAgICAgICAg
KiBXZWJDb3JlLmV4cC5pbjogRXhwb3J0IHRoZSBTZXR0aW5nIHNldHRlcgorICAgICAgICAqIGVk
aXRpbmcvRWRpdGluZ1N0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRpbmdTdHlsZTo6
Y29udmVydEZpeGVkQW5kU3RpY2t5UG9zaXRpb24pOiBDb252ZXJ0cyBhIHNpbmdsZSBzdHlsZQor
ICAgICAgICAqIGVkaXRpbmcvRWRpdGluZ1N0eWxlLmg6CisgICAgICAgICogZWRpdGluZy9tYXJr
dXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVkTWFya3VwQWNjdW11bGF0b3I6OlN0eWxl
ZE1hcmt1cEFjY3VtdWxhdG9yKTogUmVtZW1iZXIgaWYgd2UgZm91bmQKKyAgICAgICAgYW4gZWxl
bWVudCB3aGljaCBuZWVkcyB0aGUgcG9zaXRpb246cmVsYXRpdmUgY29udGFpbmluZyBibG9jawor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVkTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZEVsZW1lbnQp
OiBTdXJyb3VuZCB3aXRoIHRoZSBwb3NpdGlvbjpyZWxhdGl2ZQorICAgICAgICBjb250YWluaW5n
IGJsb2NrIGlmIG5lY2Vzc2FyeQorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTWFya3VwSW50ZXJu
YWwpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0
dGluZ3M6OlNldHRpbmdzKTogTmV3IHNldHRpbmcgdG8gb3B0LWluIHRvIHRoaXMgbmV3IGJlaGF2
aW9yCisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0Q29udmVydFBvc2l0aW9uU3R5bGVP
bkNvcHkpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
dHRpbmdzOjpjb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weSk6CisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmNwcDogQWxsb3cgc2V0dGluZyB0aGUgc2V0dGluZyBmcm9tIGEgTGF5
b3V0IFRlc3QKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6QmFj
a3VwKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6cmVzdG9y
ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldENvbnZlcnRQb3Np
dGlvblN0eWxlT25Db3B5KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoK
KyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsOgorCiAyMDE0LTAyLTA3ICBB
bmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgQ29udmVydCBQ
cm9ncmVzc1RyYWNrZXIgdG8gc3RkOjpjaHJvbm8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBmODc2YTdh
NWQzN2ZmZWNlMzE2NzM4MGFiZDk1NWY3ODEzNTcyMzc2Li4wNWM1NTg1OTUzOWM2MWU4MzQxY2Ix
YzhkOWVmYTQwMGQ2NGZiOWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIw
MTQtMDItMTAgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAg
ICAgICBDb252ZXJ0IHBvc2l0aW9uOnN0aWNreSBhbmQgcG9zaXRpb246Zml4ZWQgcHJvcGVydGll
cyB0byBwb3NpdGlvbjpzdGF0aWMgYW5kIHBvc2l0aW9uOmFic29sdXRlIHVwb24gY29weQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MTk0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dl
YlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5j
ZXMubW06CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIGNvbnZlcnRQb3NpdGlvblN0eWxlT25D
b3B5XSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIHNldENvbnZlcnRQb3NpdGlvblN0eWxl
T25Db3B5Ol0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmg6IE9w
dC1pbiB0byBuZXcgYmVoYXZpb3IKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAg
ICAgICgtW1dlYlZpZXcgX3ByZWZlcmVuY2VzQ2hhbmdlZDpdKToKKwogMjAxNC0wMi0wNiAgSm9z
ZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IEFkZCBDb25zb2xlIHN1cHBvcnQgdG8gSlNDb250ZXh0IEluc3BlY3Rpb24KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpp
bmRleCBiNjUwZGZmNmVkYmUzNzFjZTE3MTk2ZWU3Yzc4ODU4NTc0MGFkZjYwLi4wNzAzNWVhYjUy
YjAzMzM4ZTE5Zjg3Mjk5MmNkNGRkOThhMDdlMDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMTQtMDItMTAgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4K
KworICAgICAgICBDb252ZXJ0IHBvc2l0aW9uOnN0aWNreSBhbmQgcG9zaXRpb246Zml4ZWQgcHJv
cGVydGllcyB0byBwb3NpdGlvbjpzdGF0aWMgYW5kIHBvc2l0aW9uOmFic29sdXRlIHVwb24gY29w
eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MTk0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFy
ZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1By
ZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNTZXRDb252ZXJ0UG9zaXRpb25T
dHlsZU9uQ29weSk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzR2V0Q29udmVydFBvc2l0aW9uU3R5
bGVPbkNvcHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUHJpdmF0
ZS5oOiBPcHQtaW4gdG8gbmV3IGJlaGF2aW9yCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNl
cyk6CisKIDIwMTQtMDItMDcgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4K
IAogICAgICAgICBDb3B5aW5nIGEgV2ViUHJlZmVyZW5jZXMgb2JqZWN0IHNob3VsZCBiZSBkb25l
IHRocm91Z2ggYSBtZW1iZXIgZnVuY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggZDVhZDRi
ZmFiZGMxYWIzMmE2ZjgyMDM1N2U2ZWIxY2Y2NTU1Yzg3NS4uMmE1YWM3MGYyN2FlNmJiZDYyZjRi
MzU5YzU0YTExZTExZWFjODViNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTEyMzksNiArMTIz
OSw3IEBAIF9fWk43V2ViQ29yZThTZXR0aW5nczI3c2V0SmF2YUVuYWJsZWRGb3JMb2NhbEZpbGVz
RWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczI3c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5RWIK
IF9fWk43V2ViQ29yZThTZXR0aW5nczI4c2V0RE9NVGltZXJBbGlnbm1lbnRJbnRlcnZhbEVkCiBf
X1pON1dlYkNvcmU4U2V0dGluZ3MyOXNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkRWIKK19f
Wk43V2ViQ29yZThTZXR0aW5nczI5c2V0Q29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHlFYgogX19a
TjdXZWJDb3JlOFNldHRpbmdzMjlzZXREZWZhdWx0TWluRE9NVGltZXJJbnRlcnZhbEVkCiBfX1pO
N1dlYkNvcmU4U2V0dGluZ3MzMHNldFNob3dUaWxlZFNjcm9sbGluZ0luZGljYXRvckViCiBfX1pO
N1dlYkNvcmU4U2V0dGluZ3MzMmRlZmF1bHRET01UaW1lckFsaWdubWVudEludGVydmFsRXYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAppbmRleCAzNjRmZjgwNTRjY2ZlNDFk
OGNiMDJiZDYzYzY0ZmY1NDNhNTA3OTg3Li42NWZkMTUzMjE1MmU4YTIyNDQwZGRkMWJkNTc4Yzgw
MjQ0Njg0MGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHls
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCkBAIC0x
MjIxLDYgKzEyMjEsMjIgQEAgdm9pZCBFZGl0aW5nU3R5bGU6OmZvcmNlSW5saW5lKCkKICAgICBt
X211dGFibGVTdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlEaXNwbGF5LCBDU1NWYWx1ZUlu
bGluZSwgcHJvcGVydHlJc0ltcG9ydGFudCk7CiB9CiAKK2Jvb2wgRWRpdGluZ1N0eWxlOjpjb252
ZXJ0Rml4ZWRBbmRTdGlja3lQb3NpdGlvbigpCit7CisgICAgaWYgKCFtX211dGFibGVTdHlsZSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBz
dGlja3kgPSBjc3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVXZWJr
aXRTdGlja3kpOworICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gZml4ZWQgPSBjc3NWYWx1
ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVGaXhlZCk7CisgICAgaWYgKG1f
bXV0YWJsZVN0eWxlLT5wcm9wZXJ0eU1hdGNoZXMoQ1NTUHJvcGVydHlQb3NpdGlvbiwgc3RpY2t5
LmdldCgpKSkKKyAgICAgICAgbV9tdXRhYmxlU3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5
UG9zaXRpb24sIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZVN0
YXRpYyksIG1fbXV0YWJsZVN0eWxlLT5wcm9wZXJ0eUlzSW1wb3J0YW50KENTU1Byb3BlcnR5UG9z
aXRpb24pKTsKKyAgICBpZiAobV9tdXRhYmxlU3R5bGUtPnByb3BlcnR5TWF0Y2hlcyhDU1NQcm9w
ZXJ0eVBvc2l0aW9uLCBmaXhlZC5nZXQoKSkpIHsKKyAgICAgICAgbV9tdXRhYmxlU3R5bGUtPnNl
dFByb3BlcnR5KENTU1Byb3BlcnR5UG9zaXRpb24sIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50
aWZpZXJWYWx1ZShDU1NWYWx1ZUFic29sdXRlKSwgbV9tdXRhYmxlU3R5bGUtPnByb3BlcnR5SXNJ
bXBvcnRhbnQoQ1NTUHJvcGVydHlQb3NpdGlvbikpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBpbnQgRWRpdGluZ1N0eWxlOjpsZWdhY3lGb250
U2l6ZShEb2N1bWVudCogZG9jdW1lbnQpIGNvbnN0CiB7CiAgICAgUmVmUHRyPENTU1ZhbHVlPiBj
c3NWYWx1ZSA9IG1fbXV0YWJsZVN0eWxlLT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnR5
Rm9udFNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5
bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmgKaW5kZXggMWZhMWNk
ZTZhMzI2YjcwNTA4YmY5NTg0MTZlOTFkYjRiNTg2Njg2YS4uZTIxMTYxMTUyZjc1M2E2ODM3YzIw
MjE4YzQ0OWE4M2I5OGNlYzk4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0aW5nU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5o
CkBAIC0xMzUsNiArMTM1LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlU3R5bGVGcm9tUnVs
ZXNBbmRDb250ZXh0KFN0eWxlZEVsZW1lbnQqLCBOb2RlKiBjb250ZXh0KTsKICAgICB2b2lkIHJl
bW92ZVByb3BlcnRpZXNJbkVsZW1lbnREZWZhdWx0U3R5bGUoRWxlbWVudCopOwogICAgIHZvaWQg
Zm9yY2VJbmxpbmUoKTsKKyAgICBib29sIGNvbnZlcnRGaXhlZEFuZFN0aWNreVBvc2l0aW9uKCk7
CiAgICAgaW50IGxlZ2FjeUZvbnRTaXplKERvY3VtZW50KikgY29uc3Q7CiAKICAgICBmbG9hdCBm
b250U2l6ZURlbHRhKCkgY29uc3QgeyByZXR1cm4gbV9mb250U2l6ZURlbHRhOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL21hcmt1cC5jcHAKaW5kZXggNWI2MTczYjE1NGY3YTcwOThkMGM5MjViYTFmMTVjMGQy
ZWNlOTIyNS4uNDliZmU3N2M4YjE0NTk2MjI2ZTlhZmU4ODJlNmM3Njg4OWNkZDNhNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvbWFya3VwLmNwcApAQCAtNTIsNiArNTIsNyBAQAogI2luY2x1ZGUgIk1hcmt1
cEFjY3VtdWxhdG9yLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJCbG9j
ay5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgi
CiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVNlbGVjdGlvbi5o
IgpAQCAtMTIzLDYgKzEyNCwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCB3cmFwV2l0aE5vZGUoTm9k
ZSYsIGJvb2wgY29udmVydEJsb2Nrc1RvSW5saW5lcyA9IGZhbHNlLCBSYW5nZUZ1bGx5U2VsZWN0
c05vZGUgPSBEb2VzRnVsbHlTZWxlY3ROb2RlKTsKICAgICB2b2lkIHdyYXBXaXRoU3R5bGVOb2Rl
KFN0eWxlUHJvcGVydGllcyosIERvY3VtZW50JiwgYm9vbCBpc0Jsb2NrID0gZmFsc2UpOwogICAg
IFN0cmluZyB0YWtlUmVzdWx0cygpOworICAgIAorICAgIGJvb2wgbmVlZFJlbGF0aXZlU3R5bGVX
cmFwcGVyKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX25lZWRSZWxhdGl2ZVN0eWxl
V3JhcHBlcjsKKyAgICB9CiAKICAgICB1c2luZyBNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kU3Ry
aW5nOwogCkBAIC0xNTgsMTMgKzE2NCwxNCBAQCBwcml2YXRlOgogICAgIGNvbnN0IEVBbm5vdGF0
ZUZvckludGVyY2hhbmdlIG1fc2hvdWxkQW5ub3RhdGU7CiAgICAgTm9kZSogbV9oaWdoZXN0Tm9k
ZVRvQmVTZXJpYWxpemVkOwogICAgIFJlZlB0cjxFZGl0aW5nU3R5bGU+IG1fd3JhcHBpbmdTdHls
ZTsKKyAgICBib29sIG1fbmVlZFJlbGF0aXZlU3R5bGVXcmFwcGVyOwogfTsKIAotaW5saW5lIFN0
eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjpTdHlsZWRNYXJrdXBBY2N1bXVsYXRvcihWZWN0b3I8Tm9k
ZSo+KiBub2RlcywgRUFic29sdXRlVVJMcyBzaG91bGRSZXNvbHZlVVJMcywgRUFubm90YXRlRm9y
SW50ZXJjaGFuZ2Ugc2hvdWxkQW5ub3RhdGUsCi0gICAgY29uc3QgUmFuZ2UqIHJhbmdlLCBOb2Rl
KiBoaWdoZXN0Tm9kZVRvQmVTZXJpYWxpemVkKQoraW5saW5lIFN0eWxlZE1hcmt1cEFjY3VtdWxh
dG9yOjpTdHlsZWRNYXJrdXBBY2N1bXVsYXRvcihWZWN0b3I8Tm9kZSo+KiBub2RlcywgRUFic29s
dXRlVVJMcyBzaG91bGRSZXNvbHZlVVJMcywgRUFubm90YXRlRm9ySW50ZXJjaGFuZ2Ugc2hvdWxk
QW5ub3RhdGUsIGNvbnN0IFJhbmdlKiByYW5nZSwgTm9kZSogaGlnaGVzdE5vZGVUb0JlU2VyaWFs
aXplZCkKICAgICA6IE1hcmt1cEFjY3VtdWxhdG9yKG5vZGVzLCBzaG91bGRSZXNvbHZlVVJMcywg
cmFuZ2UpCiAgICAgLCBtX3Nob3VsZEFubm90YXRlKHNob3VsZEFubm90YXRlKQogICAgICwgbV9o
aWdoZXN0Tm9kZVRvQmVTZXJpYWxpemVkKGhpZ2hlc3ROb2RlVG9CZVNlcmlhbGl6ZWQpCisgICAg
LCBtX25lZWRSZWxhdGl2ZVN0eWxlV3JhcHBlcihmYWxzZSkKIHsKIH0KIApAQCAtMzE4LDYgKzMy
NSw5IEBAIHZvaWQgU3R5bGVkTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZEVsZW1lbnQoU3RyaW5n
QnVpbGRlciYgb3V0LCBjb25zdCBFbGVtZW50JiBlCiAKICAgICAgICAgICAgIGlmIChhZGREaXNw
bGF5SW5saW5lKQogICAgICAgICAgICAgICAgIG5ld0lubGluZVN0eWxlLT5mb3JjZUlubGluZSgp
OworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoZWxlbWVudC5kb2N1bWVudCgpLnNldHRp
bmdzKCkgJiYgZWxlbWVudC5kb2N1bWVudCgpLnNldHRpbmdzKCktPmNvbnZlcnRQb3NpdGlvblN0
eWxlT25Db3B5KCkpCisgICAgICAgICAgICAgICAgbV9uZWVkUmVsYXRpdmVTdHlsZVdyYXBwZXIg
fD0gbmV3SW5saW5lU3R5bGUtPmNvbnZlcnRGaXhlZEFuZFN0aWNreVBvc2l0aW9uKCk7CiAKICAg
ICAgICAgICAgIC8vIElmIHRoZSBub2RlIGlzIG5vdCBmdWxseSBzZWxlY3RlZCBieSB0aGUgcmFu
Z2UsIHRoZW4gd2UgZG9uJ3Qgd2FudCB0byBrZWVwIHN0eWxlcyB0aGF0IGFmZmVjdCBpdHMgcmVs
YXRpb25zaGlwIHRvIHRoZSBub2RlcyBhcm91bmQgaXQKICAgICAgICAgICAgIC8vIG9ubHkgdGhl
IG9uZXMgdGhhdCBhZmZlY3QgaXQgYW5kIHRoZSBub2RlcyB3aXRoaW4gaXQuCkBAIC02MTQsNiAr
NjI0LDEyIEBAIHN0YXRpYyBTdHJpbmcgY3JlYXRlTWFya3VwSW50ZXJuYWwoRG9jdW1lbnQmIGRv
Y3VtZW50LCBjb25zdCBSYW5nZSYgcmFuZ2UsIGNvbnN0CiAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KICAgICB9CisgICAgCisgICAgaWYgKGFjY3VtdWxhdG9yLm5lZWRSZWxhdGl2
ZVN0eWxlV3JhcHBlcigpICYmIGJvZHkgJiYgZnVsbHlTZWxlY3RlZFJvb3QgPT0gYm9keSkgewor
ICAgICAgICBSZWZQdHI8RWRpdGluZ1N0eWxlPiBwb3NpdGlvblJlbGF0aXZlU3R5bGUgPSBzdHls
ZUZyb21NYXRjaGVkUnVsZXNBbmRJbmxpbmVEZWNsKGJvZHkpOworICAgICAgICBwb3NpdGlvblJl
bGF0aXZlU3R5bGUtPnN0eWxlKCktPnNldFByb3BlcnR5KENTU1Byb3BlcnR5UG9zaXRpb24sIENT
U1ZhbHVlUmVsYXRpdmUpOworICAgICAgICBhY2N1bXVsYXRvci53cmFwV2l0aFN0eWxlTm9kZShw
b3NpdGlvblJlbGF0aXZlU3R5bGUtPnN0eWxlKCksIGRvY3VtZW50LCB0cnVlKTsKKyAgICB9CiAK
ICAgICAvLyBGSVhNRTogVGhlIGludGVyY2hhbmdlIG5ld2xpbmUgc2hvdWxkIGJlIHBsYWNlZCBp
biB0aGUgYmxvY2sgdGhhdCBpdCdzIGluLCBub3QgYWZ0ZXIgYWxsIG9mIHRoZSBjb250ZW50LCB1
bmNvbmRpdGlvbmFsbHkuCiAgICAgaWYgKHNob3VsZEFubm90YXRlID09IEFubm90YXRlRm9ySW50
ZXJjaGFuZ2UgJiYgbmVlZEludGVyY2hhbmdlTmV3bGluZUFmdGVyKHZpc2libGVFbmQucHJldmlv
dXMoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCmluZGV4IDJjNjljNjNjMzJjYmZkM2FiNmM0
NDM3YmU5ZTU0ZTdkMjMzYmYyYTguLmMzOWFiZThjNjg3ZGQ5ODdhZTY5ZWY3OWVmY2M4NWI4MTVi
NDIxZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCkBAIC0yMTAsNiArMjEwLDcgQEAgU2V0
dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBhZ2UpCiAgICAgLCBtX2hpZGRlblBhZ2VDU1NBbmltYXRp
b25TdXNwZW5zaW9uRW5hYmxlZChmYWxzZSkKICNlbmRpZgogICAgICwgbV9mb250RmFsbGJhY2tQ
cmVmZXJzUGljdG9ncmFwaHMoZmFsc2UpCisgICAgLCBtX2NvbnZlcnRQb3NpdGlvblN0eWxlT25D
b3B5KGZhbHNlKQogewogICAgIC8vIEEgRnJhbWUgbWF5IG5vdCBoYXZlIGJlZW4gY3JlYXRlZCB5
ZXQsIHNvIHdlIGluaXRpYWxpemUgdGhlIEF0b21pY1N0cmluZwogICAgIC8vIGhhc2ggYmVmb3Jl
IHRyeWluZyB0byB1c2UgaXQuCkBAIC02MDksNiArNjEwLDE0IEBAIHZvaWQgU2V0dGluZ3M6OnNl
dEJhY2tncm91bmRTaG91bGRFeHRlbmRCZXlvbmRQYWdlKGJvb2wgc2hvdWxkRXh0ZW5kKQogICAg
IG1fcGFnZS0+bWFpbkZyYW1lKCkudmlldygpLT5zZXRCYWNrZ3JvdW5kRXh0ZW5kc0JleW9uZFBh
Z2Uoc2hvdWxkRXh0ZW5kKTsKIH0KIAordm9pZCBTZXR0aW5nczo6c2V0Q29udmVydFBvc2l0aW9u
U3R5bGVPbkNvcHkoYm9vbCBjb252ZXJ0KQoreworICAgIGlmIChtX2NvbnZlcnRQb3NpdGlvblN0
eWxlT25Db3B5ID09IGNvbnZlcnQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY29udmVydFBv
c2l0aW9uU3R5bGVPbkNvcHkgPSBjb252ZXJ0OworfQorCiAjaWYgVVNFKEFWRk9VTkRBVElPTikK
IHZvaWQgU2V0dGluZ3M6OnNldEFWRm91bmRhdGlvbkVuYWJsZWQoYm9vbCBlbmFibGVkKQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy5oCmluZGV4IDI2ODU4NjVmNTQ3OTJiYWFlM2JkODgzOGI5ODM2YmM4
ODg0NzRiNTAuLjE4YTViYjJjYTkzODg3MWZlNWYxM2I4MTg0NTRlNmFhYTI1MjI2MTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmgKQEAgLTI4Nyw2ICsyODcsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRGb250RmFsbGJhY2tQcmVmZXJzUGljdG9ncmFwaHMoYm9vbCk7CiAgICAgYm9vbCBmb250RmFs
bGJhY2tQcmVmZXJzUGljdG9ncmFwaHMoKSBjb25zdCB7IHJldHVybiBtX2ZvbnRGYWxsYmFja1By
ZWZlcnNQaWN0b2dyYXBoczsgfQogCisgICAgdm9pZCBzZXRDb252ZXJ0UG9zaXRpb25TdHlsZU9u
Q29weShib29sKTsKKyAgICBib29sIGNvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5KCkgY29uc3Qg
eyByZXR1cm4gbV9jb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weTsgfQorCiAgICAgc3RhdGljIGJv
b2wgbG93UG93ZXJWaWRlb0F1ZGlvQnVmZmVyU2l6ZUVuYWJsZWQoKSB7IHJldHVybiBnTG93UG93
ZXJWaWRlb0F1ZGlvQnVmZmVyU2l6ZUVuYWJsZWQ7IH0KICAgICBzdGF0aWMgdm9pZCBzZXRMb3dQ
b3dlclZpZGVvQXVkaW9CdWZmZXJTaXplRW5hYmxlZChib29sKTsKIApAQCAtMzgxLDYgKzM4NCw4
IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICBib29sIG1fZm9udEZhbGxiYWNrUHJlZmVyc1BpY3Rv
Z3JhcGhzIDogMTsKIAorICAgIGJvb2wgbV9jb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weSA6IDE7
CisKICAgICBzdGF0aWMgZG91YmxlIGdEZWZhdWx0TWluRE9NVGltZXJJbnRlcnZhbDsKICAgICBz
dGF0aWMgZG91YmxlIGdEZWZhdWx0RE9NVGltZXJBbGlnbm1lbnRJbnRlcnZhbDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKaW5kZXggZGM3ZGExZTkyZmMw
NDAyMTI4YWFkN2YyYWUwNWI3ZjE3M2I5ZjhhMy4uMzYwODRhOTEzNDNhM2Q5MzljZjFmMGUxMDc1
OTZmMmI1ZTVlZjg3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGlu
Z3MuY3BwCkBAIC05NCw2ICs5NCw3IEBAIEludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6QmFja3Vw
KFNldHRpbmdzJiBzZXR0aW5ncykKICAgICAsIG1fdXNlTGVnYWN5QmFja2dyb3VuZFNpemVTaG9y
dGhhbmRCZWhhdmlvcihzZXR0aW5ncy51c2VMZWdhY3lCYWNrZ3JvdW5kU2l6ZVNob3J0aGFuZEJl
aGF2aW9yKCkpCiAgICAgLCBtX2F1dG9zY3JvbGxGb3JEcmFnQW5kRHJvcEVuYWJsZWQoc2V0dGlu
Z3MuYXV0b3Njcm9sbEZvckRyYWdBbmREcm9wRW5hYmxlZCgpKQogICAgICwgbV9wbHVnaW5SZXBs
YWNlbWVudEVuYWJsZWQoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5w
bHVnaW5SZXBsYWNlbWVudEVuYWJsZWQoKSkKKyAgICAsIG1fY29udmVydFBvc2l0aW9uU3R5bGVP
bkNvcHkoc2V0dGluZ3MuY29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHkoKSkKIHsKIH0KIApAQCAt
MTU1LDYgKzE1Niw3IEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpyZXN0b3JlVG8o
U2V0dGluZ3MmIHNldHRpbmdzKQogICAgIHNldHRpbmdzLnNldFRpbWVXaXRob3V0TW91c2VNb3Zl
bWVudEJlZm9yZUhpZGluZ0NvbnRyb2xzKG1fb3JpZ2luYWxUaW1lV2l0aG91dE1vdXNlTW92ZW1l
bnRCZWZvcmVIaWRpbmdDb250cm9scyk7CiAgICAgc2V0dGluZ3Muc2V0VXNlTGVnYWN5QmFja2dy
b3VuZFNpemVTaG9ydGhhbmRCZWhhdmlvcihtX3VzZUxlZ2FjeUJhY2tncm91bmRTaXplU2hvcnRo
YW5kQmVoYXZpb3IpOwogICAgIHNldHRpbmdzLnNldEF1dG9zY3JvbGxGb3JEcmFnQW5kRHJvcEVu
YWJsZWQobV9hdXRvc2Nyb2xsRm9yRHJhZ0FuZERyb3BFbmFibGVkKTsKKyAgICBzZXR0aW5ncy5z
ZXRDb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weShtX2NvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5
KTsKICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFBsdWdp
blJlcGxhY2VtZW50RW5hYmxlZChtX3BsdWdpblJlcGxhY2VtZW50RW5hYmxlZCk7CiB9CiAKQEAg
LTUyNyw0ICs1MjksMTAgQEAgdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRCYWNrZ3JvdW5kU2hv
dWxkRXh0ZW5kQmV5b25kUGFnZShib29sIGhhc0V4dGVuZGVkQmFja2cKICAgICBzZXR0aW5ncygp
LT5zZXRCYWNrZ3JvdW5kU2hvdWxkRXh0ZW5kQmV5b25kUGFnZShoYXNFeHRlbmRlZEJhY2tncm91
bmQpOwogfQogCit2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldENvbnZlcnRQb3NpdGlvblN0eWxl
T25Db3B5KGJvb2wgY29udmVydCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgSW50ZXJuYWxT
ZXR0aW5nc0d1YXJkRm9yU2V0dGluZ3MoKTsKKyAgICBzZXR0aW5ncygpLT5zZXRDb252ZXJ0UG9z
aXRpb25TdHlsZU9uQ29weShjb252ZXJ0KTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuaAppbmRleCA3NjhkNTc1MmIyMDdlOGNhNTUzMTRiZTcwNWQwOWQ1
NjdiMjI4ZDkyLi5hYzgzNGJlMGU0ZjQxOTExNDM5ZGRiZGU0NzJlNDZmY2Y5MGQ4NGJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaApAQCAtOTEsNiArOTEsNyBA
QCBwdWJsaWM6CiAgICAgICAgIGJvb2wgbV91c2VMZWdhY3lCYWNrZ3JvdW5kU2l6ZVNob3J0aGFu
ZEJlaGF2aW9yOwogICAgICAgICBib29sIG1fYXV0b3Njcm9sbEZvckRyYWdBbmREcm9wRW5hYmxl
ZDsKICAgICAgICAgYm9vbCBtX3BsdWdpblJlcGxhY2VtZW50RW5hYmxlZDsKKyAgICAgICAgYm9v
bCBtX2NvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5OwogICAgIH07CiAKICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxJbnRlcm5hbFNldHRpbmdzPiBjcmVhdGUoUGFnZSogcGFnZSkKQEAgLTEzNiw2ICsx
MzcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRGb250RmFsbGJhY2tQcmVmZXJzUGljdG9ncmFw
aHMoYm9vbCBwcmVmZXJQaWN0b2dyYXBocywgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0
UGx1Z2luUmVwbGFjZW1lbnRFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0QmFja2dyb3VuZFNo
b3VsZEV4dGVuZEJleW9uZFBhZ2UoYm9vbCBoYXNFeHRlbmRlZEJhY2tncm91bmQsIEV4Y2VwdGlv
bkNvZGUmKTsKKyAgICB2b2lkIHNldENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5KGJvb2wgY29u
dmVydCwgRXhjZXB0aW9uQ29kZSYpOwogCiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAppbmRleCBmOWZiZmIxMDdiY2U3MmJlYTQwZjAyZTIy
Yjk4Nzk0NDQxZWIwZjY1Li44NTRiOWRiOGE4NGVkOTA2NjFiOTc5ZDY2ZDVkZTgwMmM5ZDc3NzZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKQEAgLTYw
LDQgKzYwLDUgQEAKICAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIHNldEZvbnRGYWxsYmFja1By
ZWZlcnNQaWN0b2dyYXBocyhib29sZWFuIHByZWZlclBpY3RvZ3JhcGhzKTsKICAgICB2b2lkIHNl
dFBsdWdpblJlcGxhY2VtZW50RW5hYmxlZChib29sZWFuIGVuYWJsZWQpOwogICAgIFtSYWlzZXNF
eGNlcHRpb25dIHZvaWQgc2V0QmFja2dyb3VuZFNob3VsZEV4dGVuZEJleW9uZFBhZ2UoYm9vbGVh
biBoYXNFeHRlbmRlZEJhY2tncm91bmQpOworICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc2V0
Q29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHkoYm9vbGVhbiBjb252ZXJ0KTsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5o
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApp
bmRleCA2OGRkNWRkZDRjYzdiZmUyYjUxOTQzODBhNWFkNWY0NWQxMWY3NzFmLi40NTI1NDZhOTNm
YWE2YjVjMTA0OWM2MjRhYzQ3YWE2NjNjZDYxZDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTE0Niw2ICsxNDYs
NyBAQAogI2RlZmluZSBXZWJLaXRMb3dQb3dlclZpZGVvQXVkaW9CdWZmZXJTaXplRW5hYmxlZFBy
ZWZlcmVuY2VLZXkgQCJXZWJLaXRMb3dQb3dlclZpZGVvQXVkaW9CdWZmZXJTaXplRW5hYmxlZCIK
ICNkZWZpbmUgV2ViS2l0VXNlTGVnYWN5VGV4dEFsaWduUG9zaXRpb25lZEVsZW1lbnRCZWhhdmlv
clByZWZlcmVuY2VLZXkgQCJXZWJLaXRVc2VMZWdhY3lUZXh0QWxpZ25Qb3NpdGlvbmVkRWxlbWVu
dEJlaGF2aW9yIgogI2RlZmluZSBXZWJLaXRNZWRpYVNvdXJjZUVuYWJsZWRQcmVmZXJlbmNlS2V5
IEAiV2ViS2l0TWVkaWFTb3VyY2VFbmFibGVkIgorI2RlZmluZSBXZWJLaXRDb252ZXJ0UG9zaXRp
b25TdHlsZU9uQ29weVByZWZlcmVuY2VLZXkgQCJXZWJLaXRDb252ZXJ0UG9zaXRpb25TdHlsZU9u
Q29weSIKIAogI2lmICFUQVJHRVRfT1NfSVBIT05FCiAvLyBUaGVzZSBhcmUgcHJpdmF0ZSBib3Ro
IGJlY2F1c2UgY2FsbGVycyBzaG91bGQgYmUgdXNpbmcgdGhlIGNvdmVyIG1ldGhvZHMgYW5kIGJl
Y2F1c2UgdGhlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZl
cmVuY2VzLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQpp
bmRleCA0ZWRlOWYzMDhiN2Q1YTIxNGY5MmQ1NjMwZmRiNDE2Njc1MjhjYzI4Li4wZDM1M2I4NWRi
YjEzZTk5MTQ3M2E5YmE1YjlkYTcyNzc1ODhjYTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAgLTI1MzUsNiArMjUzNSwxNiBAQCAtICh2b2lkKXNl
dE1lZGlhU291cmNlRW5hYmxlZDooQk9PTCllbmFibGVkCiAgICAgW3NlbGYgX3NldEJvb2xWYWx1
ZTplbmFibGVkIGZvcktleTpXZWJLaXRNZWRpYVNvdXJjZUVuYWJsZWRQcmVmZXJlbmNlS2V5XTsK
IH0KIAorLSAoQk9PTCljb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weQoreworICAgIHJldHVybiBb
c2VsZiBfYm9vbFZhbHVlRm9yS2V5OldlYktpdENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5UHJl
ZmVyZW5jZUtleV07Cit9CisKKy0gKHZvaWQpc2V0Q29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHk6
KEJPT0wpZW5hYmxlZAoreworICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZW5hYmxlZCBmb3JLZXk6
V2ViS2l0Q29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHlQcmVmZXJlbmNlS2V5XTsKK30KKwogQGVu
ZAogCiBAaW1wbGVtZW50YXRpb24gV2ViUHJlZmVyZW5jZXMgKFdlYkludGVybmFsKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXgg
ZTFiOGJhOTc0MzA4OTFiOWUwODU4ZGM3ODFkYTg0OTNiNzE5MjBhZS4uMjIyNmNmNzQxMWY4MDE1
OGI0ODhjMzIyOGFiZmYwOTc2MDAwYmI2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCkBAIC00MzIsNCArNDMyLDcgQEAgZXh0ZXJu
IE5TU3RyaW5nICpXZWJQcmVmZXJlbmNlc0NhY2hlTW9kZWxDaGFuZ2VkSW50ZXJuYWxOb3RpZmlj
YXRpb247CiAtICh2b2lkKXNldE1lZGlhU291cmNlRW5hYmxlZDooQk9PTClmbGFnOwogLSAoQk9P
TCltZWRpYVNvdXJjZUVuYWJsZWQ7CiAKKy0gKHZvaWQpc2V0Q29udmVydFBvc2l0aW9uU3R5bGVP
bkNvcHk6KEJPT0wpZmxhZzsKKy0gKEJPT0wpY29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHk7CisK
IEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA2ZjYwMDBlNjY0MTYx
ZGViMWMwNDQ3N2NkZDRkYjA3OWYxYjBiZTkzLi4zYjc0NDljOTY2OWRiYzFiOWI0N2Q4OGMxMzJm
ZTU4M2FjZGU5OGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0yMzc4
LDYgKzIzNzgsOCBAQCAtICh2b2lkKV9wcmVmZXJlbmNlc0NoYW5nZWQ6KFdlYlByZWZlcmVuY2Vz
ICopcHJlZmVyZW5jZXMKICAgICBzZXR0aW5ncy5zZXRNZWRpYVNvdXJjZUVuYWJsZWQoW3ByZWZl
cmVuY2VzIG1lZGlhU291cmNlRW5hYmxlZF0pOwogI2VuZGlmCiAKKyAgICBzZXR0aW5ncy5zZXRD
b252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weShbcHJlZmVyZW5jZXMgY29udmVydFBvc2l0aW9uU3R5
bGVPbkNvcHldKTsKKwogICAgIHN3aXRjaCAoW3ByZWZlcmVuY2VzIHN0b3JhZ2VCbG9ja2luZ1Bv
bGljeV0pIHsKICAgICBjYXNlIFdlYkFsbG93QWxsU3RvcmFnZToKICAgICAgICAgc2V0dGluZ3Mu
c2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KFNlY3VyaXR5T3JpZ2luOjpBbGxvd0FsbFN0b3JhZ2Up
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUu
aCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgKaW5kZXggMTQ0
NTA4NGRhMDBiZWE2OTQ4MWRlYTI2YzM4NDEzZTRmNzAyNDRlYy4uZmE0ODI1YzQ4ZWUyNDQ5Y2Ni
OWZmNzNhMGFiYjM3NjA5YThiZjg5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYlByZWZlcmVuY2VzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJl
ZmVyZW5jZXNTdG9yZS5oCkBAIC0xOTAsNiArMTkwLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAg
ICAgbWFjcm8oU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkLCBzcGF0aWFsTmF2aWdhdGlvbkVuYWJs
ZWQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCiAgICAgbWFjcm8oTWVkaWFTb3VyY2VFbmFibGVkLCBt
ZWRpYVNvdXJjZUVuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCiAgICAgbWFjcm8oVmlld0dl
c3R1cmVEZWJ1Z2dpbmdFbmFibGVkLCB2aWV3R2VzdHVyZURlYnVnZ2luZ0VuYWJsZWQsIEJvb2ws
IGJvb2wsIGZhbHNlKSBcCisgICAgbWFjcm8oQ29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHksIGNv
bnZlcnRQb3NpdGlvblN0eWxlT25Db3B5LCBCb29sLCBib29sLCBmYWxzZSkgXAogICAgIFwKIAog
I2RlZmluZSBGT1JfRUFDSF9XRUJLSVRfRE9VQkxFX1BSRUZFUkVOQ0UobWFjcm8pIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAppbmRleCBi
MjQ1NDAyYzNkYjgwMTc3OWY3NWM4NGJiYTVkODNlM2JmZmM4NzkxLi41ODcwZTM1YTM2NTFhMjFh
ODc4YWY3YmM1NDgxYzY2NTViMjRmZjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCkBAIC0xMjM1LDMgKzEyMzUsMTMgQEAgYm9vbCBX
S1ByZWZlcmVuY2VzR2V0Vmlld0dlc3R1cmVEZWJ1Z2dpbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNS
ZWYgcHJlZmVyZW5jZXNSZWYKIHsKICAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+
dmlld0dlc3R1cmVEZWJ1Z2dpbmdFbmFibGVkKCk7CiB9CisKK3ZvaWQgV0tQcmVmZXJlbmNlc1Nl
dENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNS
ZWYsIGJvb2wgY29udmVydCkKK3sKKyAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRDb252
ZXJ0UG9zaXRpb25TdHlsZU9uQ29weShjb252ZXJ0KTsKK30KKworYm9vbCBXS1ByZWZlcmVuY2Vz
R2V0Q29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHkoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNl
c1JlZikKK3sKKyAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+Y29udmVydFBvc2l0
aW9uU3R5bGVPbkNvcHkoKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXggMGQ4MGYwNDk5NjRlZTMxNWZmODAy
YmJhYzBhMjk5ZDY1MGE0ZWRjZC4uYmE1ZGFiYzM1MTZlYjE0ZmQ1MjNjNTMyY2Q5MDJmMzY2YTYx
NGNkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVy
ZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJl
ZmVyZW5jZXNQcml2YXRlLmgKQEAgLTMxNCw2ICszMTQsMTAgQEAgV0tfRVhQT1JUIGJvb2wgV0tQ
cmVmZXJlbmNlc0dldE1lZGlhU291cmNlRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVu
Y2VzUmUKIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRWaWV3R2VzdHVyZURlYnVnZ2lu
Z0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBlbmFibGVkKTsK
IFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRWaWV3R2VzdHVyZURlYnVnZ2luZ0VuYWJs
ZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZik7CiAKKy8vIERlZmF1bHQgdG8gZmFs
c2UuCitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0Q29udmVydFBvc2l0aW9uU3R5bGVP
bkNvcHkoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBjb252ZXJ0KTsKK1dL
X0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRDb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weShX
S1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAppbmRleCBhYmMxYzE1ODBkYTU3YWU1YzQ3MjBkNDMzZDY4ZGMxYWY1OWFmZjViLi5hODA2YTBj
ODFkYTk5ZDJlNjFkYjAwODkzNmJmNWM4ZDg5YTRkYTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0yNTY0LDYgKzI1NjQsOCBAQCB2b2lk
IFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0
b3JlKQogICAgIHNldHRpbmdzLnNldE1lZGlhU291cmNlRW5hYmxlZChzdG9yZS5nZXRCb29sVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6Om1lZGlhU291cmNlRW5hYmxlZEtleSgpKSk7CiAj
ZW5kaWYKIAorICAgIHNldHRpbmdzLnNldENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5KHN0b3Jl
LmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6Y29udmVydFBvc2l0aW9uU3R5
bGVPbkNvcHlLZXkoKSkpOworCiAgICAgaWYgKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQ
cmVmZXJlbmNlc0tleTo6cGFnZVZpc2liaWxpdHlCYXNlZFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJs
ZWRLZXkoKSkpIHsKICAgICAgICAgaWYgKG1fcHJvY2Vzc1N1cHByZXNzaW9uRGlzYWJsZWRCeVdl
YlByZWZlcmVuY2UuaXNBY3RpdmUoKSkKICAgICAgICAgICAgIG1fcHJvY2Vzc1N1cHByZXNzaW9u
RGlzYWJsZWRCeVdlYlByZWZlcmVuY2UuZW5kQWN0aXZpdHkoKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhN2EzZDQ0NDc5
ZTNmNWQyY2MxN2EzY2EyNmY0YzkzYTBiZDA1M2JjLi5kNmYzNmQ4NjNlMjc3NmFjYzhhZjk4ZmM5
MGRmYTNhMTM3MzY2OTNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTQtMDItMTAgIE15bGVz
IEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBDb252ZXJ0IHBv
c2l0aW9uOnN0aWNreSBhbmQgcG9zaXRpb246Zml4ZWQgcHJvcGVydGllcyB0byBwb3NpdGlvbjpz
dGF0aWMgYW5kIHBvc2l0aW9uOmFic29sdXRlIHVwb24gY29weQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MTk0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hlY2tzIHRoYXQgdGhlIHN0eWxlIHByb3Bl
cnRpZXMgZ2V0IGNvbnZlcnRlZC4KKworICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9jb3B5
LXBhc3RlLWNvbnZlcnRzLXN0aWNreS1hbmQtZml4ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvY29weS1wYXN0ZS1jb252ZXJ0cy1zdGlja3ktYW5k
LWZpeGVkLmh0bWw6IEFkZGVkLgorCiAyMDE0LTAyLTA3ICBNaWhhaSBUaWNhICA8bWl0aWNhQGFk
b2JlLmNvbT4KIAogICAgICAgICBbQ1NTIEJhY2tncm91bmQgQmxlbmRpbmddIFVucHJlZml4IHRo
ZSAtd2Via2l0LWJhY2tncm91bmQtYmxlbmQtbW9kZSBwcm9wZXJ0eQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktcGFzdGUtY29udmVydHMtc3RpY2t5LWFu
ZC1maXhlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvY29w
eS1wYXN0ZS1jb252ZXJ0cy1zdGlja3ktYW5kLWZpeGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zNjhiNTgxMTk5YzcyYTFmZTMxZjc5ZjQ2NzNkM2ZmZDUxYmU0YmUzCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktcGFzdGUtY29udmVydHMt
c3RpY2t5LWFuZC1maXhlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMDggQEAKK1RoZXNlIHRl
c3RzIHRvIHNlZSBpZiBwb3NpdGlvbjpzdGlja3kgYW5kIHBvc2l0aW9uOmZpeGVkIGdldCBjb252
ZXJ0ZWQgdG8gcG9zaXRpb246c3RhdGljIGFuZCBwb3NpdGlvbjphYnNvbHV0ZSB1cG9uIGNvcHkv
cGFzdGUKKworZmlyc3QgdGVzdCAtIGJlZm9yZToKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAg
ICAiCisiCit8ICAgICA8bWV0YT4KK3wgICAgICAgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0
PXV0Zi04IgorfCAgICAgICBodHRwLWVxdWl2PSJDb250ZW50LXR5cGUiCit8ICAgICAiCisiCit8
ICAgICA8c2NyaXB0PgorfCAgICAgICBzcmM9Ii4uLy4uL3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1
cC5qcyIKK3wgICAgICAgdHlwZT0idGV4dC9qYXZhc2NyaXB0IgorfCAgICAgIgorIgorfCAgICIK
KyIKK3wgICA8Ym9keT4KK3wgICAgICIKK2FiYyIKK3wgICAgIDxkaXY+Cit8ICAgICAgIHN0eWxl
PSJwb3NpdGlvbjogZml4ZWQ7IGxlZnQ6IDBweDsgdG9wOiAwcHg7IgorfCAgICAgICAiZGVmIgor
fCAgICAgImdoaQorIgorfCAgICAgPGJyPgorfCAgICAgIgoramtsIgorfCAgICAgPGRpdj4KK3wg
ICAgICAgc3R5bGU9InBvc2l0aW9uOiAtd2Via2l0LXN0aWNreTsgdG9wOiAwcHg7IgorfCAgICAg
ICAibW5vIgorfCAgICAgInFwcgorCisKKyIKK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICIKKwor
TWFya3VwLmRlc2NyaXB0aW9uKCdUaGVzZSB0ZXN0cyB0byBzZWUgaWYgcG9zaXRpb246c3RpY2t5
IGFuZCBwb3NpdGlvbjpmaXhlZCBnZXQgY29udmVydGVkIHRvIHBvc2l0aW9uOnN0YXRpYyBhbmQg
cG9zaXRpb246YWJzb2x1dGUgdXBvbiBjb3B5L3Bhc3RlJyk7CisKK2RvY3VtZW50LmRlc2lnbk1v
ZGUgPSAnb24nOworCitpZiAod2luZG93LmludGVybmFscykKKyAgICB3aW5kb3cuaW50ZXJuYWxz
LnNldHRpbmdzLnNldENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5KHRydWUpOworCit2YXIgcyA9
IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKKworTWFya3VwLmR1bXAoJ3Rlc3QxJywgJ2ZpcnN0IHRl
c3QgLSBiZWZvcmUnKTsKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCJTZWxlY3RBbGwiKTsKK2RvY3Vt
ZW50LmV4ZWNDb21tYW5kKCJDdXQiKTsKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCJQYXN0ZSIpOwor
TWFya3VwLmR1bXAoJ3Rlc3QxJywgJ2ZpcnN0IHRlc3QgLSBhZnRlcicpOworCisiCisKK2ZpcnN0
IHRlc3QgLSBhZnRlcjoKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICAiCisiCit8ICAgICA8
bWV0YT4KK3wgICAgICAgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IgorfCAgICAg
ICBodHRwLWVxdWl2PSJDb250ZW50LXR5cGUiCit8ICAgICAiCisiCit8ICAgICA8c2NyaXB0Pgor
fCAgICAgICBzcmM9Ii4uLy4uL3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5qcyIKK3wgICAgICAg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IgorfCAgICAgIgorIgorfCAgICIKKyIKK3wgICA8Ym9keT4K
K3wgICAgIDxkaXY+Cit8ICAgICAgIHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7IgorfCAgICAg
ICAiYWJjIgorfCAgICAgICA8ZGl2PgorfCAgICAgICAgIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1
dGU7IGxlZnQ6IDBweDsgdG9wOiAwcHg7IgorfCAgICAgICAgICJkZWYiCit8ICAgICAgICJnaGki
Cit8ICAgICAgICLCoCIKK3wgICAgICAgPGJyPgorfCAgICAgICAiamtsIgorfCAgICAgICA8ZGl2
PgorfCAgICAgICAgIHN0eWxlPSJ0b3A6IDBweDsiCit8ICAgICAgICAgIm1ubyIKK3wgICAgICAg
InFwcjwjc2VsZWN0aW9uLWNhcmV0PiIKK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICIKKworTWFy
a3VwLmRlc2NyaXB0aW9uKCdUaGVzZSB0ZXN0cyB0byBzZWUgaWYgcG9zaXRpb246c3RpY2t5IGFu
ZCBwb3NpdGlvbjpmaXhlZCBnZXQgY29udmVydGVkIHRvIHBvc2l0aW9uOnN0YXRpYyBhbmQgcG9z
aXRpb246YWJzb2x1dGUgdXBvbiBjb3B5L3Bhc3RlJyk7CisKK2RvY3VtZW50LmRlc2lnbk1vZGUg
PSAnb24nOworCitpZiAod2luZG93LmludGVybmFscykKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNl
dHRpbmdzLnNldENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5KHRydWUpOworCit2YXIgcyA9IHdp
bmRvdy5nZXRTZWxlY3Rpb24oKTsKKworTWFya3VwLmR1bXAoJ3Rlc3QxJywgJ2ZpcnN0IHRlc3Qg
LSBiZWZvcmUnKTsKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCJTZWxlY3RBbGwiKTsKK2RvY3VtZW50
LmV4ZWNDb21tYW5kKCJDdXQiKTsKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCJQYXN0ZSIpOworTWFy
a3VwLmR1bXAoJ3Rlc3QxJywgJ2ZpcnN0IHRlc3QgLSBhZnRlcicpOworCisiCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvY29weS1wYXN0ZS1jb252ZXJ0cy1zdGlj
a3ktYW5kLWZpeGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvY29weS1w
YXN0ZS1jb252ZXJ0cy1zdGlja3ktYW5kLWZpeGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODA5ZDU0OWI2
YzJmNjAyMWMyY2RlNGQzNjk5ZjFkOWU4NzU5MmJjZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9jb3B5LXBhc3RlLWNvbnZlcnRzLXN0aWNreS1hbmQt
Zml4ZWQuaHRtbApAQCAtMCwwICsxLDMxIEBACis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1l
cXVpdj0iQ29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+
Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZHVt
cC1hcy1tYXJrdXAuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CithYmM8ZGl2IHN0eWxl
PSJwb3NpdGlvbjogZml4ZWQ7IGxlZnQ6IDBweDsgdG9wOiAwcHg7Ij5kZWY8L2Rpdj5naGkKKzxi
ci8+Citqa2w8ZGl2IHN0eWxlPSJwb3NpdGlvbjogLXdlYmtpdC1zdGlja3k7IHRvcDogMHB4OyI+
bW5vPC9kaXY+cXByCis8L25hdj4KKworPHNjcmlwdD4KKworTWFya3VwLmRlc2NyaXB0aW9uKCdU
aGVzZSB0ZXN0cyB0byBzZWUgaWYgcG9zaXRpb246c3RpY2t5IGFuZCBwb3NpdGlvbjpmaXhlZCBn
ZXQgY29udmVydGVkIHRvIHBvc2l0aW9uOnN0YXRpYyBhbmQgcG9zaXRpb246YWJzb2x1dGUgdXBv
biBjb3B5L3Bhc3RlJyk7CisKK2RvY3VtZW50LmRlc2lnbk1vZGUgPSAnb24nOworCitpZiAod2lu
ZG93LmludGVybmFscykKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldENvbnZlcnRQ
b3NpdGlvblN0eWxlT25Db3B5KHRydWUpOworCit2YXIgcyA9IHdpbmRvdy5nZXRTZWxlY3Rpb24o
KTsKKworTWFya3VwLmR1bXAoJ3Rlc3QxJywgJ2ZpcnN0IHRlc3QgLSBiZWZvcmUnKTsKK2RvY3Vt
ZW50LmV4ZWNDb21tYW5kKCJTZWxlY3RBbGwiKTsKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCJDdXQi
KTsKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCJQYXN0ZSIpOworTWFya3VwLmR1bXAoJ3Rlc3QxJywg
J2ZpcnN0IHRlc3QgLSBhZnRlcicpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223797</attachid>
            <date>2014-02-10 19:51:12 -0800</date>
            <delta_ts>2014-02-11 12:36:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128194-20140210195110.patch</filename>
            <type>text/plain</type>
            <size>24334</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzNjM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWE0M2NhZGE4YWViNTFm
MjQ3NDcyNDhjNmFhMGJlOTkzMTVjMzAyMS4uMjU3NTNmMGU3NDJhNzFhYTNhMGMzZWU2MmNkZDIy
YmMwNDk3YmQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE0LTAyLTEwICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQ29udmVydCBw
b3NpdGlvbjpzdGlja3kgYW5kIHBvc2l0aW9uOmZpeGVkIHByb3BlcnRpZXMgdG8gcG9zaXRpb246
c3RhdGljIGFuZCBwb3NpdGlvbjphYnNvbHV0ZSB1cG9uIGNvcHkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODE5NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgYWRkcyBhIFNldHRpbmcgYW5kIFBy
ZWZlcmVuY2UgdGhhdCBhbGxvd3MgY2xpZW50cyB0byBvcHQtaW4gdG8gdGhpcyBiZWhhdmlvci4K
KworICAgICAgICBUaGlzIG5ldyBiZWhhdmlvciBpcyBvbmx5IGFjdGl2YXRlZCBpZiB0aGUgZW50
aXJlIGJvZHkgaXMgY29waWVkLiBJZiB0aGVyZSBpcyBhIHBvc2l0aW9uOmZpeGVkCisgICAgICAg
IGVsZW1lbnQgaW4gdGhlIGNvcGllZCBzZWxlY3Rpb24sIGl0IGlzIHJlcGxhY2VkIHdpdGggcG9z
aXRpb246YWJzb2x1dGUsIGFuZCBhIGNvbnRhaW5pbmcKKyAgICAgICAgYmxvY2sgKHBvc2l0aW9u
OnJlbGF0aXZlKSBpcyB3cmFwcGVkIGFyb3VuZCB0aGUgY29waWVkIHRleHQuIElmIHRoZXJlIGlz
IGEgcG9zaXRpb246LXdlYmtpdC1zdGlja3kKKyAgICAgICAgZWxlbWVudCwgaXQgaXMgcmVwbGFj
ZWQgd2l0aCBwb3NpdGlvbjpzdGF0aWMuCisKKyAgICAgICAgVGVzdDogZWRpdGluZy9wYXN0ZWJv
YXJkL2NvcHktcGFzdGUtY29udmVydHMtc3RpY2t5LWFuZC1maXhlZC5odG1sCisKKyAgICAgICAg
KiBXZWJDb3JlLmV4cC5pbjogRXhwb3J0IHRoZSBTZXR0aW5nIHNldHRlcgorICAgICAgICAqIGVk
aXRpbmcvRWRpdGluZ1N0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRpbmdTdHlsZTo6
Y29udmVydEZpeGVkQW5kU3RpY2t5UG9zaXRpb24pOiBDb252ZXJ0cyBhIHNpbmdsZSBzdHlsZQor
ICAgICAgICAqIGVkaXRpbmcvRWRpdGluZ1N0eWxlLmg6CisgICAgICAgICogZWRpdGluZy9tYXJr
dXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVkTWFya3VwQWNjdW11bGF0b3I6OlN0eWxl
ZE1hcmt1cEFjY3VtdWxhdG9yKTogUmVtZW1iZXIgaWYgd2UgZm91bmQKKyAgICAgICAgYW4gZWxl
bWVudCB3aGljaCBuZWVkcyB0aGUgcG9zaXRpb246cmVsYXRpdmUgY29udGFpbmluZyBibG9jawor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVkTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZEVsZW1lbnQp
OiBTdXJyb3VuZCB3aXRoIHRoZSBwb3NpdGlvbjpyZWxhdGl2ZQorICAgICAgICBjb250YWluaW5n
IGJsb2NrIGlmIG5lY2Vzc2FyeQorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTWFya3VwSW50ZXJu
YWwpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0
dGluZ3M6OlNldHRpbmdzKTogTmV3IHNldHRpbmcgdG8gb3B0LWluIHRvIHRoaXMgbmV3IGJlaGF2
aW9yCisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0Q29udmVydFBvc2l0aW9uU3R5bGVP
bkNvcHkpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
dHRpbmdzOjpjb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weSk6CisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmNwcDogQWxsb3cgc2V0dGluZyB0aGUgc2V0dGluZyBmcm9tIGEgTGF5
b3V0IFRlc3QKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6QmFj
a3VwKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6cmVzdG9y
ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldENvbnZlcnRQb3Np
dGlvblN0eWxlT25Db3B5KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoK
KyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsOgorCiAyMDE0LTAyLTA3ICBB
bmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgQ29udmVydCBQ
cm9ncmVzc1RyYWNrZXIgdG8gc3RkOjpjaHJvbm8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBmODc2YTdh
NWQzN2ZmZWNlMzE2NzM4MGFiZDk1NWY3ODEzNTcyMzc2Li4wNWM1NTg1OTUzOWM2MWU4MzQxY2Ix
YzhkOWVmYTQwMGQ2NGZiOWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIw
MTQtMDItMTAgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAg
ICAgICBDb252ZXJ0IHBvc2l0aW9uOnN0aWNreSBhbmQgcG9zaXRpb246Zml4ZWQgcHJvcGVydGll
cyB0byBwb3NpdGlvbjpzdGF0aWMgYW5kIHBvc2l0aW9uOmFic29sdXRlIHVwb24gY29weQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MTk0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dl
YlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5j
ZXMubW06CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIGNvbnZlcnRQb3NpdGlvblN0eWxlT25D
b3B5XSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIHNldENvbnZlcnRQb3NpdGlvblN0eWxl
T25Db3B5Ol0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmg6IE9w
dC1pbiB0byBuZXcgYmVoYXZpb3IKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAg
ICAgICgtW1dlYlZpZXcgX3ByZWZlcmVuY2VzQ2hhbmdlZDpdKToKKwogMjAxNC0wMi0wNiAgSm9z
ZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IEFkZCBDb25zb2xlIHN1cHBvcnQgdG8gSlNDb250ZXh0IEluc3BlY3Rpb24KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpp
bmRleCBiNjUwZGZmNmVkYmUzNzFjZTE3MTk2ZWU3Yzc4ODU4NTc0MGFkZjYwLi4wNzAzNWVhYjUy
YjAzMzM4ZTE5Zjg3Mjk5MmNkNGRkOThhMDdlMDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMTQtMDItMTAgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4K
KworICAgICAgICBDb252ZXJ0IHBvc2l0aW9uOnN0aWNreSBhbmQgcG9zaXRpb246Zml4ZWQgcHJv
cGVydGllcyB0byBwb3NpdGlvbjpzdGF0aWMgYW5kIHBvc2l0aW9uOmFic29sdXRlIHVwb24gY29w
eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MTk0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFy
ZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1By
ZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNTZXRDb252ZXJ0UG9zaXRpb25T
dHlsZU9uQ29weSk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzR2V0Q29udmVydFBvc2l0aW9uU3R5
bGVPbkNvcHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUHJpdmF0
ZS5oOiBPcHQtaW4gdG8gbmV3IGJlaGF2aW9yCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNl
cyk6CisKIDIwMTQtMDItMDcgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4K
IAogICAgICAgICBDb3B5aW5nIGEgV2ViUHJlZmVyZW5jZXMgb2JqZWN0IHNob3VsZCBiZSBkb25l
IHRocm91Z2ggYSBtZW1iZXIgZnVuY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdGluZ1N0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0
eWxlLmNwcAppbmRleCAzNjRmZjgwNTRjY2ZlNDFkOGNiMDJiZDYzYzY0ZmY1NDNhNTA3OTg3Li42
NWZkMTUzMjE1MmU4YTIyNDQwZGRkMWJkNTc4YzgwMjQ0Njg0MGU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCkBAIC0xMjIxLDYgKzEyMjEsMjIgQEAgdm9pZCBFZGl0
aW5nU3R5bGU6OmZvcmNlSW5saW5lKCkKICAgICBtX211dGFibGVTdHlsZS0+c2V0UHJvcGVydHko
Q1NTUHJvcGVydHlEaXNwbGF5LCBDU1NWYWx1ZUlubGluZSwgcHJvcGVydHlJc0ltcG9ydGFudCk7
CiB9CiAKK2Jvb2wgRWRpdGluZ1N0eWxlOjpjb252ZXJ0Rml4ZWRBbmRTdGlja3lQb3NpdGlvbigp
Cit7CisgICAgaWYgKCFtX211dGFibGVTdHlsZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBzdGlja3kgPSBjc3NWYWx1ZVBvb2woKS5jcmVh
dGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVXZWJraXRTdGlja3kpOworICAgIFJlZlB0cjxDU1NQ
cmltaXRpdmVWYWx1ZT4gZml4ZWQgPSBjc3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFs
dWUoQ1NTVmFsdWVGaXhlZCk7CisgICAgaWYgKG1fbXV0YWJsZVN0eWxlLT5wcm9wZXJ0eU1hdGNo
ZXMoQ1NTUHJvcGVydHlQb3NpdGlvbiwgc3RpY2t5LmdldCgpKSkKKyAgICAgICAgbV9tdXRhYmxl
U3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5UG9zaXRpb24sIGNzc1ZhbHVlUG9vbCgpLmNy
ZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZVN0YXRpYyksIG1fbXV0YWJsZVN0eWxlLT5wcm9w
ZXJ0eUlzSW1wb3J0YW50KENTU1Byb3BlcnR5UG9zaXRpb24pKTsKKyAgICBpZiAobV9tdXRhYmxl
U3R5bGUtPnByb3BlcnR5TWF0Y2hlcyhDU1NQcm9wZXJ0eVBvc2l0aW9uLCBmaXhlZC5nZXQoKSkp
IHsKKyAgICAgICAgbV9tdXRhYmxlU3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5UG9zaXRp
b24sIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUFic29sdXRl
KSwgbV9tdXRhYmxlU3R5bGUtPnByb3BlcnR5SXNJbXBvcnRhbnQoQ1NTUHJvcGVydHlQb3NpdGlv
bikpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQor
CiBpbnQgRWRpdGluZ1N0eWxlOjpsZWdhY3lGb250U2l6ZShEb2N1bWVudCogZG9jdW1lbnQpIGNv
bnN0CiB7CiAgICAgUmVmUHRyPENTU1ZhbHVlPiBjc3NWYWx1ZSA9IG1fbXV0YWJsZVN0eWxlLT5n
ZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnR5Rm9udFNpemUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdGluZ1N0eWxlLmgKaW5kZXggMWZhMWNkZTZhMzI2YjcwNTA4YmY5NTg0MTZlOTFkYjRi
NTg2Njg2YS4uZTIxMTYxMTUyZjc1M2E2ODM3YzIwMjE4YzQ0OWE4M2I5OGNlYzk4MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5oCkBAIC0xMzUsNiArMTM1LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgcmVtb3ZlU3R5bGVGcm9tUnVsZXNBbmRDb250ZXh0KFN0eWxlZEVsZW1lbnQq
LCBOb2RlKiBjb250ZXh0KTsKICAgICB2b2lkIHJlbW92ZVByb3BlcnRpZXNJbkVsZW1lbnREZWZh
dWx0U3R5bGUoRWxlbWVudCopOwogICAgIHZvaWQgZm9yY2VJbmxpbmUoKTsKKyAgICBib29sIGNv
bnZlcnRGaXhlZEFuZFN0aWNreVBvc2l0aW9uKCk7CiAgICAgaW50IGxlZ2FjeUZvbnRTaXplKERv
Y3VtZW50KikgY29uc3Q7CiAKICAgICBmbG9hdCBmb250U2l6ZURlbHRhKCkgY29uc3QgeyByZXR1
cm4gbV9mb250U2l6ZURlbHRhOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L21hcmt1cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKaW5kZXggNWI2
MTczYjE1NGY3YTcwOThkMGM5MjViYTFmMTVjMGQyZWNlOTIyNS4uNDliZmU3N2M4YjE0NTk2MjI2
ZTlhZmU4ODJlNmM3Njg4OWNkZDNhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9tYXJrdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcApAQCAt
NTIsNiArNTIsNyBAQAogI2luY2x1ZGUgIk1hcmt1cEFjY3VtdWxhdG9yLmgiCiAjaW5jbHVkZSAi
UmFuZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgi
CiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgi
CiAjaW5jbHVkZSAiVmlzaWJsZVNlbGVjdGlvbi5oIgpAQCAtMTIzLDYgKzEyNCwxMSBAQCBwdWJs
aWM6CiAgICAgdm9pZCB3cmFwV2l0aE5vZGUoTm9kZSYsIGJvb2wgY29udmVydEJsb2Nrc1RvSW5s
aW5lcyA9IGZhbHNlLCBSYW5nZUZ1bGx5U2VsZWN0c05vZGUgPSBEb2VzRnVsbHlTZWxlY3ROb2Rl
KTsKICAgICB2b2lkIHdyYXBXaXRoU3R5bGVOb2RlKFN0eWxlUHJvcGVydGllcyosIERvY3VtZW50
JiwgYm9vbCBpc0Jsb2NrID0gZmFsc2UpOwogICAgIFN0cmluZyB0YWtlUmVzdWx0cygpOworICAg
IAorICAgIGJvb2wgbmVlZFJlbGF0aXZlU3R5bGVXcmFwcGVyKCkgY29uc3QKKyAgICB7CisgICAg
ICAgIHJldHVybiBtX25lZWRSZWxhdGl2ZVN0eWxlV3JhcHBlcjsKKyAgICB9CiAKICAgICB1c2lu
ZyBNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kU3RyaW5nOwogCkBAIC0xNTgsMTMgKzE2NCwxNCBA
QCBwcml2YXRlOgogICAgIGNvbnN0IEVBbm5vdGF0ZUZvckludGVyY2hhbmdlIG1fc2hvdWxkQW5u
b3RhdGU7CiAgICAgTm9kZSogbV9oaWdoZXN0Tm9kZVRvQmVTZXJpYWxpemVkOwogICAgIFJlZlB0
cjxFZGl0aW5nU3R5bGU+IG1fd3JhcHBpbmdTdHlsZTsKKyAgICBib29sIG1fbmVlZFJlbGF0aXZl
U3R5bGVXcmFwcGVyOwogfTsKIAotaW5saW5lIFN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjpTdHls
ZWRNYXJrdXBBY2N1bXVsYXRvcihWZWN0b3I8Tm9kZSo+KiBub2RlcywgRUFic29sdXRlVVJMcyBz
aG91bGRSZXNvbHZlVVJMcywgRUFubm90YXRlRm9ySW50ZXJjaGFuZ2Ugc2hvdWxkQW5ub3RhdGUs
Ci0gICAgY29uc3QgUmFuZ2UqIHJhbmdlLCBOb2RlKiBoaWdoZXN0Tm9kZVRvQmVTZXJpYWxpemVk
KQoraW5saW5lIFN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjpTdHlsZWRNYXJrdXBBY2N1bXVsYXRv
cihWZWN0b3I8Tm9kZSo+KiBub2RlcywgRUFic29sdXRlVVJMcyBzaG91bGRSZXNvbHZlVVJMcywg
RUFubm90YXRlRm9ySW50ZXJjaGFuZ2Ugc2hvdWxkQW5ub3RhdGUsIGNvbnN0IFJhbmdlKiByYW5n
ZSwgTm9kZSogaGlnaGVzdE5vZGVUb0JlU2VyaWFsaXplZCkKICAgICA6IE1hcmt1cEFjY3VtdWxh
dG9yKG5vZGVzLCBzaG91bGRSZXNvbHZlVVJMcywgcmFuZ2UpCiAgICAgLCBtX3Nob3VsZEFubm90
YXRlKHNob3VsZEFubm90YXRlKQogICAgICwgbV9oaWdoZXN0Tm9kZVRvQmVTZXJpYWxpemVkKGhp
Z2hlc3ROb2RlVG9CZVNlcmlhbGl6ZWQpCisgICAgLCBtX25lZWRSZWxhdGl2ZVN0eWxlV3JhcHBl
cihmYWxzZSkKIHsKIH0KIApAQCAtMzE4LDYgKzMyNSw5IEBAIHZvaWQgU3R5bGVkTWFya3VwQWNj
dW11bGF0b3I6OmFwcGVuZEVsZW1lbnQoU3RyaW5nQnVpbGRlciYgb3V0LCBjb25zdCBFbGVtZW50
JiBlCiAKICAgICAgICAgICAgIGlmIChhZGREaXNwbGF5SW5saW5lKQogICAgICAgICAgICAgICAg
IG5ld0lubGluZVN0eWxlLT5mb3JjZUlubGluZSgpOworICAgICAgICAgICAgCisgICAgICAgICAg
ICBpZiAoZWxlbWVudC5kb2N1bWVudCgpLnNldHRpbmdzKCkgJiYgZWxlbWVudC5kb2N1bWVudCgp
LnNldHRpbmdzKCktPmNvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5KCkpCisgICAgICAgICAgICAg
ICAgbV9uZWVkUmVsYXRpdmVTdHlsZVdyYXBwZXIgfD0gbmV3SW5saW5lU3R5bGUtPmNvbnZlcnRG
aXhlZEFuZFN0aWNreVBvc2l0aW9uKCk7CiAKICAgICAgICAgICAgIC8vIElmIHRoZSBub2RlIGlz
IG5vdCBmdWxseSBzZWxlY3RlZCBieSB0aGUgcmFuZ2UsIHRoZW4gd2UgZG9uJ3Qgd2FudCB0byBr
ZWVwIHN0eWxlcyB0aGF0IGFmZmVjdCBpdHMgcmVsYXRpb25zaGlwIHRvIHRoZSBub2RlcyBhcm91
bmQgaXQKICAgICAgICAgICAgIC8vIG9ubHkgdGhlIG9uZXMgdGhhdCBhZmZlY3QgaXQgYW5kIHRo
ZSBub2RlcyB3aXRoaW4gaXQuCkBAIC02MTQsNiArNjI0LDEyIEBAIHN0YXRpYyBTdHJpbmcgY3Jl
YXRlTWFya3VwSW50ZXJuYWwoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBSYW5nZSYgcmFuZ2Us
IGNvbnN0CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CisgICAgCisg
ICAgaWYgKGFjY3VtdWxhdG9yLm5lZWRSZWxhdGl2ZVN0eWxlV3JhcHBlcigpICYmIGJvZHkgJiYg
ZnVsbHlTZWxlY3RlZFJvb3QgPT0gYm9keSkgeworICAgICAgICBSZWZQdHI8RWRpdGluZ1N0eWxl
PiBwb3NpdGlvblJlbGF0aXZlU3R5bGUgPSBzdHlsZUZyb21NYXRjaGVkUnVsZXNBbmRJbmxpbmVE
ZWNsKGJvZHkpOworICAgICAgICBwb3NpdGlvblJlbGF0aXZlU3R5bGUtPnN0eWxlKCktPnNldFBy
b3BlcnR5KENTU1Byb3BlcnR5UG9zaXRpb24sIENTU1ZhbHVlUmVsYXRpdmUpOworICAgICAgICBh
Y2N1bXVsYXRvci53cmFwV2l0aFN0eWxlTm9kZShwb3NpdGlvblJlbGF0aXZlU3R5bGUtPnN0eWxl
KCksIGRvY3VtZW50LCB0cnVlKTsKKyAgICB9CiAKICAgICAvLyBGSVhNRTogVGhlIGludGVyY2hh
bmdlIG5ld2xpbmUgc2hvdWxkIGJlIHBsYWNlZCBpbiB0aGUgYmxvY2sgdGhhdCBpdCdzIGluLCBu
b3QgYWZ0ZXIgYWxsIG9mIHRoZSBjb250ZW50LCB1bmNvbmRpdGlvbmFsbHkuCiAgICAgaWYgKHNo
b3VsZEFubm90YXRlID09IEFubm90YXRlRm9ySW50ZXJjaGFuZ2UgJiYgbmVlZEludGVyY2hhbmdl
TmV3bGluZUFmdGVyKHZpc2libGVFbmQucHJldmlvdXMoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLmluIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5p
bgppbmRleCBhODY0YWUyMmFmNGQ1ZDE0ZjQwNmE4MjBhMDZmNTM0ZWEyNTkzYmU3Li5iMjQ1MmE2
ODU4MTFjOTYxZGVlYTFkZGZhMzA1NzI3YzU2NzM4MDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
aW4KQEAgLTIwNCwzICsyMDQsNSBAQCBtZWRpYVNvdXJjZUVuYWJsZWQgaW5pdGlhbD1mYWxzZQog
YWxsb3dNdWx0aUVsZW1lbnRJbXBsaWNpdFN1Ym1pc3Npb24gaW5pdGlhbD1mYWxzZQogCiBtZWRp
YVBsYXliYWNrQWxsb3dzQWlyUGxheSBpbml0aWFsPXRydWUsIGNvbmRpdGlvbmFsPUlPU19BSVJQ
TEFZCisKK2NvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5IGluaXRpYWw9ZmFsc2UKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCmluZGV4IGRjN2RhMWU5MmZjMDQw
MjEyOGFhZDdmMmFlMDViN2YxNzNiOWY4YTMuLjM2MDg0YTkxMzQzYTNkOTM5Y2YxZjBlMTA3NTk2
ZjJiNWU1ZWY4NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxT
ZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmNwcApAQCAtOTQsNiArOTQsNyBAQCBJbnRlcm5hbFNldHRpbmdzOjpCYWNrdXA6OkJhY2t1cChT
ZXR0aW5ncyYgc2V0dGluZ3MpCiAgICAgLCBtX3VzZUxlZ2FjeUJhY2tncm91bmRTaXplU2hvcnRo
YW5kQmVoYXZpb3Ioc2V0dGluZ3MudXNlTGVnYWN5QmFja2dyb3VuZFNpemVTaG9ydGhhbmRCZWhh
dmlvcigpKQogICAgICwgbV9hdXRvc2Nyb2xsRm9yRHJhZ0FuZERyb3BFbmFibGVkKHNldHRpbmdz
LmF1dG9zY3JvbGxGb3JEcmFnQW5kRHJvcEVuYWJsZWQoKSkKICAgICAsIG1fcGx1Z2luUmVwbGFj
ZW1lbnRFbmFibGVkKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkucGx1
Z2luUmVwbGFjZW1lbnRFbmFibGVkKCkpCisgICAgLCBtX2NvbnZlcnRQb3NpdGlvblN0eWxlT25D
b3B5KHNldHRpbmdzLmNvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5KCkpCiB7CiB9CiAKQEAgLTE1
NSw2ICsxNTYsNyBAQCB2b2lkIEludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6cmVzdG9yZVRvKFNl
dHRpbmdzJiBzZXR0aW5ncykKICAgICBzZXR0aW5ncy5zZXRUaW1lV2l0aG91dE1vdXNlTW92ZW1l
bnRCZWZvcmVIaWRpbmdDb250cm9scyhtX29yaWdpbmFsVGltZVdpdGhvdXRNb3VzZU1vdmVtZW50
QmVmb3JlSGlkaW5nQ29udHJvbHMpOwogICAgIHNldHRpbmdzLnNldFVzZUxlZ2FjeUJhY2tncm91
bmRTaXplU2hvcnRoYW5kQmVoYXZpb3IobV91c2VMZWdhY3lCYWNrZ3JvdW5kU2l6ZVNob3J0aGFu
ZEJlaGF2aW9yKTsKICAgICBzZXR0aW5ncy5zZXRBdXRvc2Nyb2xsRm9yRHJhZ0FuZERyb3BFbmFi
bGVkKG1fYXV0b3Njcm9sbEZvckRyYWdBbmREcm9wRW5hYmxlZCk7CisgICAgc2V0dGluZ3Muc2V0
Q29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHkobV9jb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weSk7
CiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRQbHVnaW5S
ZXBsYWNlbWVudEVuYWJsZWQobV9wbHVnaW5SZXBsYWNlbWVudEVuYWJsZWQpOwogfQogCkBAIC01
MjcsNCArNTI5LDEwIEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0QmFja2dyb3VuZFNob3Vs
ZEV4dGVuZEJleW9uZFBhZ2UoYm9vbCBoYXNFeHRlbmRlZEJhY2tnCiAgICAgc2V0dGluZ3MoKS0+
c2V0QmFja2dyb3VuZFNob3VsZEV4dGVuZEJleW9uZFBhZ2UoaGFzRXh0ZW5kZWRCYWNrZ3JvdW5k
KTsKIH0KIAordm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRDb252ZXJ0UG9zaXRpb25TdHlsZU9u
Q29weShib29sIGNvbnZlcnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIEludGVybmFsU2V0
dGluZ3NHdWFyZEZvclNldHRpbmdzKCk7CisgICAgc2V0dGluZ3MoKS0+c2V0Q29udmVydFBvc2l0
aW9uU3R5bGVPbkNvcHkoY29udmVydCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmgKaW5kZXggNzY4ZDU3NTJiMjA3ZThjYTU1MzE0YmU3MDVkMDlkNTY3
YjIyOGQ5Mi4uYWM4MzRiZTBlNGY0MTkxMTQzOWRkYmRlNDcyZTQ2ZmNmOTBkODRiZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKQEAgLTkxLDYgKzkxLDcgQEAg
cHVibGljOgogICAgICAgICBib29sIG1fdXNlTGVnYWN5QmFja2dyb3VuZFNpemVTaG9ydGhhbmRC
ZWhhdmlvcjsKICAgICAgICAgYm9vbCBtX2F1dG9zY3JvbGxGb3JEcmFnQW5kRHJvcEVuYWJsZWQ7
CiAgICAgICAgIGJvb2wgbV9wbHVnaW5SZXBsYWNlbWVudEVuYWJsZWQ7CisgICAgICAgIGJvb2wg
bV9jb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weTsKICAgICB9OwogCiAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8SW50ZXJuYWxTZXR0aW5ncz4gY3JlYXRlKFBhZ2UqIHBhZ2UpCkBAIC0xMzYsNiArMTM3
LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Rm9udEZhbGxiYWNrUHJlZmVyc1BpY3RvZ3JhcGhz
KGJvb2wgcHJlZmVyUGljdG9ncmFwaHMsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldFBs
dWdpblJlcGxhY2VtZW50RW5hYmxlZChib29sKTsKICAgICB2b2lkIHNldEJhY2tncm91bmRTaG91
bGRFeHRlbmRCZXlvbmRQYWdlKGJvb2wgaGFzRXh0ZW5kZWRCYWNrZ3JvdW5kLCBFeGNlcHRpb25D
b2RlJik7CisgICAgdm9pZCBzZXRDb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weShib29sIGNvbnZl
cnQsIEV4Y2VwdGlvbkNvZGUmKTsKIAogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKaW5kZXggZjlmYmZiMTA3YmNlNzJiZWE0MGYwMmUyMmI5
ODc5NDQ0MWViMGY2NS4uODU0YjlkYjhhODRlZDkwNjYxYjk3OWQ2NmQ1ZGU4MDJjOWQ3Nzc2ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCkBAIC02MCw0
ICs2MCw1IEBACiAgICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzZXRGb250RmFsbGJhY2tQcmVm
ZXJzUGljdG9ncmFwaHMoYm9vbGVhbiBwcmVmZXJQaWN0b2dyYXBocyk7CiAgICAgdm9pZCBzZXRQ
bHVnaW5SZXBsYWNlbWVudEVuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKICAgICBbUmFpc2VzRXhj
ZXB0aW9uXSB2b2lkIHNldEJhY2tncm91bmRTaG91bGRFeHRlbmRCZXlvbmRQYWdlKGJvb2xlYW4g
aGFzRXh0ZW5kZWRCYWNrZ3JvdW5kKTsKKyAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIHNldENv
bnZlcnRQb3NpdGlvblN0eWxlT25Db3B5KGJvb2xlYW4gY29udmVydCk7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5k
ZXggNjhkZDVkZGQ0Y2M3YmZlMmI1MTk0MzgwYTVhZDVmNDVkMTFmNzcxZi4uNDUyNTQ2YTkzZmFh
NmI1YzEwNDljNjI0YWM0N2FhNjYzY2Q2MWQwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC0xNDYsNiArMTQ2LDcg
QEAKICNkZWZpbmUgV2ViS2l0TG93UG93ZXJWaWRlb0F1ZGlvQnVmZmVyU2l6ZUVuYWJsZWRQcmVm
ZXJlbmNlS2V5IEAiV2ViS2l0TG93UG93ZXJWaWRlb0F1ZGlvQnVmZmVyU2l6ZUVuYWJsZWQiCiAj
ZGVmaW5lIFdlYktpdFVzZUxlZ2FjeVRleHRBbGlnblBvc2l0aW9uZWRFbGVtZW50QmVoYXZpb3JQ
cmVmZXJlbmNlS2V5IEAiV2ViS2l0VXNlTGVnYWN5VGV4dEFsaWduUG9zaXRpb25lZEVsZW1lbnRC
ZWhhdmlvciIKICNkZWZpbmUgV2ViS2l0TWVkaWFTb3VyY2VFbmFibGVkUHJlZmVyZW5jZUtleSBA
IldlYktpdE1lZGlhU291cmNlRW5hYmxlZCIKKyNkZWZpbmUgV2ViS2l0Q29udmVydFBvc2l0aW9u
U3R5bGVPbkNvcHlQcmVmZXJlbmNlS2V5IEAiV2ViS2l0Q29udmVydFBvc2l0aW9uU3R5bGVPbkNv
cHkiCiAKICNpZiAhVEFSR0VUX09TX0lQSE9ORQogLy8gVGhlc2UgYXJlIHByaXZhdGUgYm90aCBi
ZWNhdXNlIGNhbGxlcnMgc2hvdWxkIGJlIHVzaW5nIHRoZSBjb3ZlciBtZXRob2RzIGFuZCBiZWNh
dXNlIHRoZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlcy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KaW5k
ZXggNGVkZTlmMzA4YjdkNWEyMTRmOTJkNTYzMGZkYjQxNjY3NTI4Y2MyOC4uMGQzNTNiODVkYmIx
M2U5OTE0NzNhOWJhNWI5ZGE3Mjc3NTg4Y2EwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlByZWZlcmVuY2VzLm1tCkBAIC0yNTM1LDYgKzI1MzUsMTYgQEAgLSAodm9pZClzZXRN
ZWRpYVNvdXJjZUVuYWJsZWQ6KEJPT0wpZW5hYmxlZAogICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6
ZW5hYmxlZCBmb3JLZXk6V2ViS2l0TWVkaWFTb3VyY2VFbmFibGVkUHJlZmVyZW5jZUtleV07CiB9
CiAKKy0gKEJPT0wpY29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHkKK3sKKyAgICByZXR1cm4gW3Nl
bGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRDb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weVByZWZl
cmVuY2VLZXldOworfQorCistICh2b2lkKXNldENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5OihC
T09MKWVuYWJsZWQKK3sKKyAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmVuYWJsZWQgZm9yS2V5Oldl
YktpdENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5UHJlZmVyZW5jZUtleV07Cit9CisKIEBlbmQK
IAogQGltcGxlbWVudGF0aW9uIFdlYlByZWZlcmVuY2VzIChXZWJJbnRlcm5hbCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmggYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IGUx
YjhiYTk3NDMwODkxYjllMDg1OGRjNzgxZGE4NDkzYjcxOTIwYWUuLjIyMjZjZjc0MTFmODAxNThi
NDg4YzMyMjhhYmZmMDk3NjAwMGJiNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtNDMyLDQgKzQzMiw3IEBAIGV4dGVybiBO
U1N0cmluZyAqV2ViUHJlZmVyZW5jZXNDYWNoZU1vZGVsQ2hhbmdlZEludGVybmFsTm90aWZpY2F0
aW9uOwogLSAodm9pZClzZXRNZWRpYVNvdXJjZUVuYWJsZWQ6KEJPT0wpZmxhZzsKIC0gKEJPT0wp
bWVkaWFTb3VyY2VFbmFibGVkOwogCistICh2b2lkKXNldENvbnZlcnRQb3NpdGlvblN0eWxlT25D
b3B5OihCT09MKWZsYWc7CistIChCT09MKWNvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5OworCiBA
ZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggNmY2MDAwZTY2NDE2MWRl
YjFjMDQ0NzdjZGQ0ZGIwNzlmMWIwYmU5My4uM2I3NDQ5Yzk2NjlkYmMxYjliNDdkODhjMTMyZmU1
ODNhY2RlOThkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjM3OCw2
ICsyMzc4LDggQEAgLSAodm9pZClfcHJlZmVyZW5jZXNDaGFuZ2VkOihXZWJQcmVmZXJlbmNlcyAq
KXByZWZlcmVuY2VzCiAgICAgc2V0dGluZ3Muc2V0TWVkaWFTb3VyY2VFbmFibGVkKFtwcmVmZXJl
bmNlcyBtZWRpYVNvdXJjZUVuYWJsZWRdKTsKICNlbmRpZgogCisgICAgc2V0dGluZ3Muc2V0Q29u
dmVydFBvc2l0aW9uU3R5bGVPbkNvcHkoW3ByZWZlcmVuY2VzIGNvbnZlcnRQb3NpdGlvblN0eWxl
T25Db3B5XSk7CisKICAgICBzd2l0Y2ggKFtwcmVmZXJlbmNlcyBzdG9yYWdlQmxvY2tpbmdQb2xp
Y3ldKSB7CiAgICAgY2FzZSBXZWJBbGxvd0FsbFN0b3JhZ2U6CiAgICAgICAgIHNldHRpbmdzLnNl
dFN0b3JhZ2VCbG9ja2luZ1BvbGljeShTZWN1cml0eU9yaWdpbjo6QWxsb3dBbGxTdG9yYWdlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oCmluZGV4IDE0NDUw
ODRkYTAwYmVhNjk0ODFkZWEyNmMzODQxM2U0ZjcwMjQ0ZWMuLmZhNDgyNWM0OGVlMjQ0OWNjYjlm
ZjczYTBhYmIzNzYwOWE4YmY4OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJQcmVmZXJlbmNlc1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZl
cmVuY2VzU3RvcmUuaApAQCAtMTkwLDYgKzE5MCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAg
IG1hY3JvKFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCwgc3BhdGlhbE5hdmlnYXRpb25FbmFibGVk
LCBCb29sLCBib29sLCBmYWxzZSkgXAogICAgIG1hY3JvKE1lZGlhU291cmNlRW5hYmxlZCwgbWVk
aWFTb3VyY2VFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAogICAgIG1hY3JvKFZpZXdHZXN0
dXJlRGVidWdnaW5nRW5hYmxlZCwgdmlld0dlc3R1cmVEZWJ1Z2dpbmdFbmFibGVkLCBCb29sLCBi
b29sLCBmYWxzZSkgXAorICAgIG1hY3JvKENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5LCBjb252
ZXJ0UG9zaXRpb25TdHlsZU9uQ29weSwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKICAgICBcCiAKICNk
ZWZpbmUgRk9SX0VBQ0hfV0VCS0lUX0RPVUJMRV9QUkVGRVJFTkNFKG1hY3JvKSBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKaW5kZXggYjI0
NTQwMmMzZGI4MDE3NzlmNzVjODRiYmE1ZDgzZTNiZmZjODc5MS4uNTg3MGUzNWEzNjUxYTIxYTg3
OGFmN2JjNTQ4MWM2NjU1YjI0ZmY1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcApAQCAtMTIzNSwzICsxMjM1LDEzIEBAIGJvb2wgV0tQ
cmVmZXJlbmNlc0dldFZpZXdHZXN0dXJlRGVidWdnaW5nRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVm
IHByZWZlcmVuY2VzUmVmCiB7CiAgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnZp
ZXdHZXN0dXJlRGVidWdnaW5nRW5hYmxlZCgpOwogfQorCit2b2lkIFdLUHJlZmVyZW5jZXNTZXRD
b252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVm
LCBib29sIGNvbnZlcnQpCit7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0Q29udmVy
dFBvc2l0aW9uU3R5bGVPbkNvcHkoY29udmVydCk7Cit9CisKK2Jvb2wgV0tQcmVmZXJlbmNlc0dl
dENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNS
ZWYpCit7CisgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPmNvbnZlcnRQb3NpdGlv
blN0eWxlT25Db3B5KCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IDBkODBmMDQ5OTY0ZWUzMTVmZjgwMmJi
YWMwYTI5OWQ2NTBhNGVkY2QuLmJhNWRhYmMzNTE2ZWIxNGZkNTIzYzUzMmNkOTAyZjM2NmE2MTRj
ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVu
Y2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZl
cmVuY2VzUHJpdmF0ZS5oCkBAIC0zMTQsNiArMzE0LDEwIEBAIFdLX0VYUE9SVCBib29sIFdLUHJl
ZmVyZW5jZXNHZXRNZWRpYVNvdXJjZUVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNl
c1JlCiBXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0Vmlld0dlc3R1cmVEZWJ1Z2dpbmdF
bmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgZW5hYmxlZCk7CiBX
S19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0Vmlld0dlc3R1cmVEZWJ1Z2dpbmdFbmFibGVk
KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpOwogCisvLyBEZWZhdWx0IHRvIGZhbHNl
LgorV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldENvbnZlcnRQb3NpdGlvblN0eWxlT25D
b3B5KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgY29udmVydCk7CitXS19F
WFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0Q29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHkoV0tQ
cmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZik7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
aW5kZXggYWJjMWMxNTgwZGE1N2FlNWM0NzIwZDQzM2Q2OGRjMWFmNTlhZmY1Yi4uYTgwNmEwYzgx
ZGE5OWQyZTYxZGIwMDg5MzZiZjVjOGQ4OWE0ZGEzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMjU2NCw2ICsyNTY0LDggQEAgdm9pZCBX
ZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9y
ZSkKICAgICBzZXR0aW5ncy5zZXRNZWRpYVNvdXJjZUVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVl
Rm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjptZWRpYVNvdXJjZUVuYWJsZWRLZXkoKSkpOwogI2Vu
ZGlmCiAKKyAgICBzZXR0aW5ncy5zZXRDb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weShzdG9yZS5n
ZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmNvbnZlcnRQb3NpdGlvblN0eWxl
T25Db3B5S2V5KCkpKTsKKwogICAgIGlmIChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJl
ZmVyZW5jZXNLZXk6OnBhZ2VWaXNpYmlsaXR5QmFzZWRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVk
S2V5KCkpKSB7CiAgICAgICAgIGlmIChtX3Byb2Nlc3NTdXBwcmVzc2lvbkRpc2FibGVkQnlXZWJQ
cmVmZXJlbmNlLmlzQWN0aXZlKCkpCiAgICAgICAgICAgICBtX3Byb2Nlc3NTdXBwcmVzc2lvbkRp
c2FibGVkQnlXZWJQcmVmZXJlbmNlLmVuZEFjdGl2aXR5KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTdhM2Q0NDQ3OWUz
ZjVkMmNjMTdhM2NhMjZmNGM5M2EwYmQwNTNiYy4uZDZmMzZkODYzZTI3NzZhY2M4YWY5OGZjOTBk
ZmEzYTEzNzM2NjkzZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE0LTAyLTEwICBNeWxlcyBD
LiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQ29udmVydCBwb3Np
dGlvbjpzdGlja3kgYW5kIHBvc2l0aW9uOmZpeGVkIHByb3BlcnRpZXMgdG8gcG9zaXRpb246c3Rh
dGljIGFuZCBwb3NpdGlvbjphYnNvbHV0ZSB1cG9uIGNvcHkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODE5NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoZWNrcyB0aGF0IHRoZSBzdHlsZSBwcm9wZXJ0
aWVzIGdldCBjb252ZXJ0ZWQuCisKKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvY29weS1w
YXN0ZS1jb252ZXJ0cy1zdGlja3ktYW5kLWZpeGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktcGFzdGUtY29udmVydHMtc3RpY2t5LWFuZC1m
aXhlZC5odG1sOiBBZGRlZC4KKwogMjAxNC0wMi0wNyAgTWloYWkgVGljYSAgPG1pdGljYUBhZG9i
ZS5jb20+CiAKICAgICAgICAgW0NTUyBCYWNrZ3JvdW5kIEJsZW5kaW5nXSBVbnByZWZpeCB0aGUg
LXdlYmtpdC1iYWNrZ3JvdW5kLWJsZW5kLW1vZGUgcHJvcGVydHkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9jb3B5LXBhc3RlLWNvbnZlcnRzLXN0aWNreS1hbmQt
Zml4ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHkt
cGFzdGUtY29udmVydHMtc3RpY2t5LWFuZC1maXhlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzY4YjU4MTE5OWM3MmExZmUzMWY3OWY0NjczZDNmZmQ1MWJlNGJlMwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9jb3B5LXBhc3RlLWNvbnZlcnRzLXN0
aWNreS1hbmQtZml4ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTA4IEBACitUaGVzZSB0ZXN0
cyB0byBzZWUgaWYgcG9zaXRpb246c3RpY2t5IGFuZCBwb3NpdGlvbjpmaXhlZCBnZXQgY29udmVy
dGVkIHRvIHBvc2l0aW9uOnN0YXRpYyBhbmQgcG9zaXRpb246YWJzb2x1dGUgdXBvbiBjb3B5L3Bh
c3RlCisKK2ZpcnN0IHRlc3QgLSBiZWZvcmU6Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAg
IgorIgorfCAgICAgPG1ldGE+Cit8ICAgICAgIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11
dGYtOCIKK3wgICAgICAgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIgorfCAgICAgIgorIgorfCAg
ICAgPHNjcmlwdD4KK3wgICAgICAgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAu
anMiCit8ICAgICAgIHR5cGU9InRleHQvamF2YXNjcmlwdCIKK3wgICAgICIKKyIKK3wgICAiCisi
Cit8ICAgPGJvZHk+Cit8ICAgICAiCithYmMiCit8ICAgICA8ZGl2PgorfCAgICAgICBzdHlsZT0i
cG9zaXRpb246IGZpeGVkOyBsZWZ0OiAwcHg7IHRvcDogMHB4OyIKK3wgICAgICAgImRlZiIKK3wg
ICAgICJnaGkKKyIKK3wgICAgIDxicj4KK3wgICAgICIKK2prbCIKK3wgICAgIDxkaXY+Cit8ICAg
ICAgIHN0eWxlPSJwb3NpdGlvbjogLXdlYmtpdC1zdGlja3k7IHRvcDogMHB4OyIKK3wgICAgICAg
Im1ubyIKK3wgICAgICJxcHIKKworCisiCit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiCisKK01h
cmt1cC5kZXNjcmlwdGlvbignVGhlc2UgdGVzdHMgdG8gc2VlIGlmIHBvc2l0aW9uOnN0aWNreSBh
bmQgcG9zaXRpb246Zml4ZWQgZ2V0IGNvbnZlcnRlZCB0byBwb3NpdGlvbjpzdGF0aWMgYW5kIHBv
c2l0aW9uOmFic29sdXRlIHVwb24gY29weS9wYXN0ZScpOworCitkb2N1bWVudC5kZXNpZ25Nb2Rl
ID0gJ29uJzsKKworaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgd2luZG93LmludGVybmFscy5z
ZXR0aW5ncy5zZXRDb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weSh0cnVlKTsKKwordmFyIHMgPSB3
aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CisKK01hcmt1cC5kdW1wKCd0ZXN0MScsICdmaXJzdCB0ZXN0
IC0gYmVmb3JlJyk7Citkb2N1bWVudC5leGVjQ29tbWFuZCgiU2VsZWN0QWxsIik7Citkb2N1bWVu
dC5leGVjQ29tbWFuZCgiQ3V0Iik7Citkb2N1bWVudC5leGVjQ29tbWFuZCgiUGFzdGUiKTsKK01h
cmt1cC5kdW1wKCd0ZXN0MScsICdmaXJzdCB0ZXN0IC0gYWZ0ZXInKTsKKworIgorCitmaXJzdCB0
ZXN0IC0gYWZ0ZXI6Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgIgorIgorfCAgICAgPG1l
dGE+Cit8ICAgICAgIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIKK3wgICAgICAg
aHR0cC1lcXVpdj0iQ29udGVudC10eXBlIgorfCAgICAgIgorIgorfCAgICAgPHNjcmlwdD4KK3wg
ICAgICAgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMiCit8ICAgICAgIHR5
cGU9InRleHQvamF2YXNjcmlwdCIKK3wgICAgICIKKyIKK3wgICAiCisiCit8ICAgPGJvZHk+Cit8
ICAgICA8ZGl2PgorfCAgICAgICBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyIKK3wgICAgICAg
ImFiYyIKK3wgICAgICAgPGRpdj4KK3wgICAgICAgICBzdHlsZT0icG9zaXRpb246IGFic29sdXRl
OyBsZWZ0OiAwcHg7IHRvcDogMHB4OyIKK3wgICAgICAgICAiZGVmIgorfCAgICAgICAiZ2hpIgor
fCAgICAgICAiwqAiCit8ICAgICAgIDxicj4KK3wgICAgICAgImprbCIKK3wgICAgICAgPGRpdj4K
K3wgICAgICAgICBzdHlsZT0idG9wOiAwcHg7IgorfCAgICAgICAgICJtbm8iCit8ICAgICAgICJx
cHI8I3NlbGVjdGlvbi1jYXJldD4iCit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiCisKK01hcmt1
cC5kZXNjcmlwdGlvbignVGhlc2UgdGVzdHMgdG8gc2VlIGlmIHBvc2l0aW9uOnN0aWNreSBhbmQg
cG9zaXRpb246Zml4ZWQgZ2V0IGNvbnZlcnRlZCB0byBwb3NpdGlvbjpzdGF0aWMgYW5kIHBvc2l0
aW9uOmFic29sdXRlIHVwb24gY29weS9wYXN0ZScpOworCitkb2N1bWVudC5kZXNpZ25Nb2RlID0g
J29uJzsKKworaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgd2luZG93LmludGVybmFscy5zZXR0
aW5ncy5zZXRDb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weSh0cnVlKTsKKwordmFyIHMgPSB3aW5k
b3cuZ2V0U2VsZWN0aW9uKCk7CisKK01hcmt1cC5kdW1wKCd0ZXN0MScsICdmaXJzdCB0ZXN0IC0g
YmVmb3JlJyk7Citkb2N1bWVudC5leGVjQ29tbWFuZCgiU2VsZWN0QWxsIik7Citkb2N1bWVudC5l
eGVjQ29tbWFuZCgiQ3V0Iik7Citkb2N1bWVudC5leGVjQ29tbWFuZCgiUGFzdGUiKTsKK01hcmt1
cC5kdW1wKCd0ZXN0MScsICdmaXJzdCB0ZXN0IC0gYWZ0ZXInKTsKKworIgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktcGFzdGUtY29udmVydHMtc3RpY2t5
LWFuZC1maXhlZC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktcGFz
dGUtY29udmVydHMtc3RpY2t5LWFuZC1maXhlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgwOWQ1NDliNmMy
ZjYwMjFjMmNkZTRkMzY5OWYxZDllODc1OTJiY2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvY29weS1wYXN0ZS1jb252ZXJ0cy1zdGlja3ktYW5kLWZp
eGVkLmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1
aXY9IkNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgor
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2R1bXAt
YXMtbWFya3VwLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorYWJjPGRpdiBzdHlsZT0i
cG9zaXRpb246IGZpeGVkOyBsZWZ0OiAwcHg7IHRvcDogMHB4OyI+ZGVmPC9kaXY+Z2hpCis8YnIv
PgoramtsPGRpdiBzdHlsZT0icG9zaXRpb246IC13ZWJraXQtc3RpY2t5OyB0b3A6IDBweDsiPm1u
bzwvZGl2PnFwcgorPC9uYXY+CisKKzxzY3JpcHQ+CisKK01hcmt1cC5kZXNjcmlwdGlvbignVGhl
c2UgdGVzdHMgdG8gc2VlIGlmIHBvc2l0aW9uOnN0aWNreSBhbmQgcG9zaXRpb246Zml4ZWQgZ2V0
IGNvbnZlcnRlZCB0byBwb3NpdGlvbjpzdGF0aWMgYW5kIHBvc2l0aW9uOmFic29sdXRlIHVwb24g
Y29weS9wYXN0ZScpOworCitkb2N1bWVudC5kZXNpZ25Nb2RlID0gJ29uJzsKKworaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRDb252ZXJ0UG9z
aXRpb25TdHlsZU9uQ29weSh0cnVlKTsKKwordmFyIHMgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7
CisKK01hcmt1cC5kdW1wKCd0ZXN0MScsICdmaXJzdCB0ZXN0IC0gYmVmb3JlJyk7Citkb2N1bWVu
dC5leGVjQ29tbWFuZCgiU2VsZWN0QWxsIik7Citkb2N1bWVudC5leGVjQ29tbWFuZCgiQ3V0Iik7
Citkb2N1bWVudC5leGVjQ29tbWFuZCgiUGFzdGUiKTsKK01hcmt1cC5kdW1wKCd0ZXN0MScsICdm
aXJzdCB0ZXN0IC0gYWZ0ZXInKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223889</attachid>
            <date>2014-02-11 12:36:25 -0800</date>
            <delta_ts>2014-02-12 10:37:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128194-20140211123624.patch</filename>
            <type>text/plain</type>
            <size>24595</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzNjM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWE0M2NhZGE4YWViNTFm
MjQ3NDcyNDhjNmFhMGJlOTkzMTVjMzAyMS4uNzg5Zjc0YWUxN2VjMmQxMWRhNmVjN2FmZWI5OWEw
MTg2MTJhNWVmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE0LTAyLTEwICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQ29udmVydCBw
b3NpdGlvbjpmaXhlZCBwcm9wZXJ0eSB0byBwb3NpdGlvbjphYnNvbHV0ZSB1cG9uIGNvcHkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODE5NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgYWRkcyBh
IFNldHRpbmcgYW5kIFByZWZlcmVuY2UgdGhhdCBhbGxvd3MgY2xpZW50cyB0byBvcHQtaW4gdG8g
dGhpcyBiZWhhdmlvci4KKworICAgICAgICBUaGlzIG5ldyBiZWhhdmlvciBpcyBvbmx5IGFjdGl2
YXRlZCBpZiB0aGUgZW50aXJlIGJvZHkgaXMgY29waWVkLiBJZiB0aGVyZSBpcyBhIHBvc2l0aW9u
OmZpeGVkCisgICAgICAgIGVsZW1lbnQgaW4gdGhlIGNvcGllZCBzZWxlY3Rpb24sIGl0IGlzIHJl
cGxhY2VkIHdpdGggcG9zaXRpb246YWJzb2x1dGUsIGFuZCBhIGNvbnRhaW5pbmcKKyAgICAgICAg
YmxvY2sgKHBvc2l0aW9uOnJlbGF0aXZlKSBpcyB3cmFwcGVkIGFyb3VuZCB0aGUgY29waWVkIHRl
eHQuCisKKyAgICAgICAgVGhpcyBwYXRjaCBvcmlnaW5hbGx5IGNvbnZlcnRlZCBwb3NpdGlvbjot
d2Via2l0LXN0aWNreSB0byBwb3NpdGlvbjpyZWxhdGl2ZS4gSG93ZXZlciwgd2UKKyAgICAgICAg
Y3VycmVudGx5IGRvbid0IHN1cHBvcnQgY29weWluZyBhbmQgcGFzdGluZyBvZiBwb3NpdGlvbjot
d2Via2l0LXN0aWNreSBjb250ZW50IChTZWUgYmVsb3cpLgorICAgICAgICBUaGVyZWZvcmUsIHRo
aXMgcGF0Y2ggb25seSBkZWFscyB3aXRoIHBvc2l0aW9uOmZpeGVkLgorCisgICAgICAgIFJpZ2h0
IG5vdyB3ZSBkb24ndCBjb3B5IHBvc2l0aW9uOi13ZWJraXQtc3RpY2t5LiBUaGlzIGlzIGJlY2F1
c2U6CisgICAgICAgIDEuIFdoZW4gY29weWluZyBzdHlsZWQgZWxlbWVudHMsIHdlIHBhcnNlIHRo
ZSBzdHlsZSBwcm9wZXJ0aWVzIGFnYWluCisgICAgICAgIDIuIENTU1BhcnNlckNvbnRleHQgaGFz
IGEgZmxhZyB3aGljaCBjYW4gZGlzYWJsZSBwYXJzaW5nIC13ZWJraXQtc3RpY2t5CisgICAgICAg
IDMuIFRoZXJlIGFyZSB0d28gY29uc3RydWN0b3JzIHRvIENTU1BhcnNlckNvbnRleHQ6IG9uZSB0
aGF0IHRha2VzIGEgZG9jdW1lbnQgYW5kIHNldHMgdXAgdGhlCisgICAgICAgIGFmb3JlbWVudGlv
bmVkIGZsYWcsIGFuZCBhIHNpbXBsZSBvbmUgdGhhdCBkb2Vzbid0IHRha2UgYSBkb2N1bWVudCBh
bmQgc2V0cyBhbGwgdGhlIGVuYWJsZUZvbworICAgICAgICBmbGFncyB0byBmYWxzZQorICAgICAg
ICA0LiBBdCB0aGUgcmVsZXZhbnQgcGxhY2Ugd2l0aGluIGNvcHkgY29kZSwgd2UgYXJlIGZhciBy
ZW1vdmVkIGZyb20gdGhlIERvY3VtZW50IG9iamVjdCwgc28gd2UKKyAgICAgICAgaW5zdGVhZCBj
YWxsIHRoZSBzZWNvbmQgY29uc3RydWN0b3IsIHRoZXJlYnkgZGlzYWJsaW5nIHBhcnNpbmcgb2Yg
LXdlYmtpdC1zdGlja3kKKworICAgICAgICBUZXN0OiBlZGl0aW5nL3Bhc3RlYm9hcmQvY29weS1w
YXN0ZS1jb252ZXJ0cy1zdGlja3ktYW5kLWZpeGVkLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUu
ZXhwLmluOiBFeHBvcnQgdGhlIFNldHRpbmcgc2V0dGVyCisgICAgICAgICogZWRpdGluZy9FZGl0
aW5nU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ1N0eWxlOjpjb252ZXJ0Rml4
ZWRBbmRTdGlja3lQb3NpdGlvbik6IENvbnZlcnRzIGEgc2luZ2xlIHN0eWxlCisgICAgICAgICog
ZWRpdGluZy9FZGl0aW5nU3R5bGUuaDoKKyAgICAgICAgKiBlZGl0aW5nL21hcmt1cC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZWRNYXJrdXBBY2N1bXVsYXRvcjo6U3R5bGVkTWFya3VwQWNj
dW11bGF0b3IpOiBSZW1lbWJlciBpZiB3ZSBmb3VuZAorICAgICAgICBhbiBlbGVtZW50IHdoaWNo
IG5lZWRzIHRoZSBwb3NpdGlvbjpyZWxhdGl2ZSBjb250YWluaW5nIGJsb2NrCisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZWRNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kRWxlbWVudCk6IFN1cnJvdW5k
IHdpdGggdGhlIHBvc2l0aW9uOnJlbGF0aXZlCisgICAgICAgIGNvbnRhaW5pbmcgYmxvY2sgaWYg
bmVjZXNzYXJ5CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVNYXJrdXBJbnRlcm5hbCk6CisgICAg
ICAgICogcGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6U2V0
dGluZ3MpOiBOZXcgc2V0dGluZyB0byBvcHQtaW4gdG8gdGhpcyBuZXcgYmVoYXZpb3IKKyAgICAg
ICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRDb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weSk6Cisg
ICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OmNv
bnZlcnRQb3NpdGlvblN0eWxlT25Db3B5KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuY3BwOiBBbGxvdyBzZXR0aW5nIHRoZSBzZXR0aW5nIGZyb20gYSBMYXlvdXQgVGVzdAor
ICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpCYWNrdXApOgorICAg
ICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpyZXN0b3JlVG8pOgorICAg
ICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6c2V0Q29udmVydFBvc2l0aW9uU3R5bGVP
bkNvcHkpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGw6CisKIDIwMTQtMDItMDcgIEFuZGVycyBDYXJs
c3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBDb252ZXJ0IFByb2dyZXNzVHJh
Y2tlciB0byBzdGQ6OmNocm9ubwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGY4NzZhN2E1ZDM3ZmZlY2Uz
MTY3MzgwYWJkOTU1Zjc4MTM1NzIzNzYuLjA1YzU1ODU5NTM5YzYxZTgzNDFjYjFjOGQ5ZWZhNDAw
ZDY0ZmI5Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxNC0wMi0xMCAg
TXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIENvbnZl
cnQgcG9zaXRpb246c3RpY2t5IGFuZCBwb3NpdGlvbjpmaXhlZCBwcm9wZXJ0aWVzIHRvIHBvc2l0
aW9uOnN0YXRpYyBhbmQgcG9zaXRpb246YWJzb2x1dGUgdXBvbiBjb3B5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjgxOTQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5j
ZUtleXNQcml2YXRlLmg6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKyAg
ICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgY29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHldKToKKyAg
ICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgc2V0Q29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHk6XSk6
CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaDogT3B0LWluIHRvIG5l
dyBiZWhhdmlvcgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2Vi
VmlldyBfcHJlZmVyZW5jZXNDaGFuZ2VkOl0pOgorCiAyMDE0LTAyLTA2ICBKb3NlcGggUGVjb3Jh
cm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQWRkIENv
bnNvbGUgc3VwcG9ydCB0byBKU0NvbnRleHQgSW5zcGVjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGI2NTBk
ZmY2ZWRiZTM3MWNlMTcxOTZlZTdjNzg4NTg1NzQwYWRmNjAuLjA3MDM1ZWFiNTJiMDMzMzhlMTlm
ODcyOTkyY2Q0ZGQ5OGEwN2UwOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxNC0w
Mi0xMCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAg
IENvbnZlcnQgcG9zaXRpb246c3RpY2t5IGFuZCBwb3NpdGlvbjpmaXhlZCBwcm9wZXJ0aWVzIHRv
IHBvc2l0aW9uOnN0YXRpYyBhbmQgcG9zaXRpb246YWJzb2x1dGUgdXBvbiBjb3B5CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjgxOTQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcmVm
ZXJlbmNlc1N0b3JlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMu
Y3BwOgorICAgICAgICAoV0tQcmVmZXJlbmNlc1NldENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5
KToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNHZXRDb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weSk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNQcml2YXRlLmg6IE9wdC1p
biB0byBuZXcgYmVoYXZpb3IKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKToKKwogMjAx
NC0wMi0wNyAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAg
IENvcHlpbmcgYSBXZWJQcmVmZXJlbmNlcyBvYmplY3Qgc2hvdWxkIGJlIGRvbmUgdGhyb3VnaCBh
IG1lbWJlciBmdW5jdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
aW5nU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCmlu
ZGV4IDM2NGZmODA1NGNjZmU0MWQ4Y2IwMmJkNjNjNjRmZjU0M2E1MDc5ODcuLjdiNmZhZDE5OTYx
Y2UwOTFhOTkyZWIzNzRjZDk2M2I5MmJjNjhmZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRpbmdTdHlsZS5jcHAKQEAgLTEyMjEsNiArMTIyMSwyMCBAQCB2b2lkIEVkaXRpbmdTdHlsZTo6
Zm9yY2VJbmxpbmUoKQogICAgIG1fbXV0YWJsZVN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0
eURpc3BsYXksIENTU1ZhbHVlSW5saW5lLCBwcm9wZXJ0eUlzSW1wb3J0YW50KTsKIH0KIAorYm9v
bCBFZGl0aW5nU3R5bGU6OmNvbnZlcnRGaXhlZEFuZFN0aWNreVBvc2l0aW9uKCkKK3sKKyAgICBp
ZiAoIW1fbXV0YWJsZVN0eWxlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBSZWZQdHI8
Q1NTUHJpbWl0aXZlVmFsdWU+IHN0aWNreSA9IGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZp
ZXJWYWx1ZShDU1NWYWx1ZVdlYmtpdFN0aWNreSk7CisgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZh
bHVlPiBmaXhlZCA9IGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1
ZUZpeGVkKTsKKyAgICBpZiAobV9tdXRhYmxlU3R5bGUtPnByb3BlcnR5TWF0Y2hlcyhDU1NQcm9w
ZXJ0eVBvc2l0aW9uLCBmaXhlZC5nZXQoKSkpIHsKKyAgICAgICAgbV9tdXRhYmxlU3R5bGUtPnNl
dFByb3BlcnR5KENTU1Byb3BlcnR5UG9zaXRpb24sIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50
aWZpZXJWYWx1ZShDU1NWYWx1ZUFic29sdXRlKSwgbV9tdXRhYmxlU3R5bGUtPnByb3BlcnR5SXNJ
bXBvcnRhbnQoQ1NTUHJvcGVydHlQb3NpdGlvbikpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBpbnQgRWRpdGluZ1N0eWxlOjpsZWdhY3lGb250
U2l6ZShEb2N1bWVudCogZG9jdW1lbnQpIGNvbnN0CiB7CiAgICAgUmVmUHRyPENTU1ZhbHVlPiBj
c3NWYWx1ZSA9IG1fbXV0YWJsZVN0eWxlLT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnR5
Rm9udFNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5
bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmgKaW5kZXggMWZhMWNk
ZTZhMzI2YjcwNTA4YmY5NTg0MTZlOTFkYjRiNTg2Njg2YS4uZTIxMTYxMTUyZjc1M2E2ODM3YzIw
MjE4YzQ0OWE4M2I5OGNlYzk4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0aW5nU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5o
CkBAIC0xMzUsNiArMTM1LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlU3R5bGVGcm9tUnVs
ZXNBbmRDb250ZXh0KFN0eWxlZEVsZW1lbnQqLCBOb2RlKiBjb250ZXh0KTsKICAgICB2b2lkIHJl
bW92ZVByb3BlcnRpZXNJbkVsZW1lbnREZWZhdWx0U3R5bGUoRWxlbWVudCopOwogICAgIHZvaWQg
Zm9yY2VJbmxpbmUoKTsKKyAgICBib29sIGNvbnZlcnRGaXhlZEFuZFN0aWNreVBvc2l0aW9uKCk7
CiAgICAgaW50IGxlZ2FjeUZvbnRTaXplKERvY3VtZW50KikgY29uc3Q7CiAKICAgICBmbG9hdCBm
b250U2l6ZURlbHRhKCkgY29uc3QgeyByZXR1cm4gbV9mb250U2l6ZURlbHRhOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL21hcmt1cC5jcHAKaW5kZXggNWI2MTczYjE1NGY3YTcwOThkMGM5MjViYTFmMTVjMGQy
ZWNlOTIyNS4uNDliZmU3N2M4YjE0NTk2MjI2ZTlhZmU4ODJlNmM3Njg4OWNkZDNhNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvbWFya3VwLmNwcApAQCAtNTIsNiArNTIsNyBAQAogI2luY2x1ZGUgIk1hcmt1
cEFjY3VtdWxhdG9yLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJCbG9j
ay5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgi
CiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVNlbGVjdGlvbi5o
IgpAQCAtMTIzLDYgKzEyNCwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCB3cmFwV2l0aE5vZGUoTm9k
ZSYsIGJvb2wgY29udmVydEJsb2Nrc1RvSW5saW5lcyA9IGZhbHNlLCBSYW5nZUZ1bGx5U2VsZWN0
c05vZGUgPSBEb2VzRnVsbHlTZWxlY3ROb2RlKTsKICAgICB2b2lkIHdyYXBXaXRoU3R5bGVOb2Rl
KFN0eWxlUHJvcGVydGllcyosIERvY3VtZW50JiwgYm9vbCBpc0Jsb2NrID0gZmFsc2UpOwogICAg
IFN0cmluZyB0YWtlUmVzdWx0cygpOworICAgIAorICAgIGJvb2wgbmVlZFJlbGF0aXZlU3R5bGVX
cmFwcGVyKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX25lZWRSZWxhdGl2ZVN0eWxl
V3JhcHBlcjsKKyAgICB9CiAKICAgICB1c2luZyBNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kU3Ry
aW5nOwogCkBAIC0xNTgsMTMgKzE2NCwxNCBAQCBwcml2YXRlOgogICAgIGNvbnN0IEVBbm5vdGF0
ZUZvckludGVyY2hhbmdlIG1fc2hvdWxkQW5ub3RhdGU7CiAgICAgTm9kZSogbV9oaWdoZXN0Tm9k
ZVRvQmVTZXJpYWxpemVkOwogICAgIFJlZlB0cjxFZGl0aW5nU3R5bGU+IG1fd3JhcHBpbmdTdHls
ZTsKKyAgICBib29sIG1fbmVlZFJlbGF0aXZlU3R5bGVXcmFwcGVyOwogfTsKIAotaW5saW5lIFN0
eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjpTdHlsZWRNYXJrdXBBY2N1bXVsYXRvcihWZWN0b3I8Tm9k
ZSo+KiBub2RlcywgRUFic29sdXRlVVJMcyBzaG91bGRSZXNvbHZlVVJMcywgRUFubm90YXRlRm9y
SW50ZXJjaGFuZ2Ugc2hvdWxkQW5ub3RhdGUsCi0gICAgY29uc3QgUmFuZ2UqIHJhbmdlLCBOb2Rl
KiBoaWdoZXN0Tm9kZVRvQmVTZXJpYWxpemVkKQoraW5saW5lIFN0eWxlZE1hcmt1cEFjY3VtdWxh
dG9yOjpTdHlsZWRNYXJrdXBBY2N1bXVsYXRvcihWZWN0b3I8Tm9kZSo+KiBub2RlcywgRUFic29s
dXRlVVJMcyBzaG91bGRSZXNvbHZlVVJMcywgRUFubm90YXRlRm9ySW50ZXJjaGFuZ2Ugc2hvdWxk
QW5ub3RhdGUsIGNvbnN0IFJhbmdlKiByYW5nZSwgTm9kZSogaGlnaGVzdE5vZGVUb0JlU2VyaWFs
aXplZCkKICAgICA6IE1hcmt1cEFjY3VtdWxhdG9yKG5vZGVzLCBzaG91bGRSZXNvbHZlVVJMcywg
cmFuZ2UpCiAgICAgLCBtX3Nob3VsZEFubm90YXRlKHNob3VsZEFubm90YXRlKQogICAgICwgbV9o
aWdoZXN0Tm9kZVRvQmVTZXJpYWxpemVkKGhpZ2hlc3ROb2RlVG9CZVNlcmlhbGl6ZWQpCisgICAg
LCBtX25lZWRSZWxhdGl2ZVN0eWxlV3JhcHBlcihmYWxzZSkKIHsKIH0KIApAQCAtMzE4LDYgKzMy
NSw5IEBAIHZvaWQgU3R5bGVkTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZEVsZW1lbnQoU3RyaW5n
QnVpbGRlciYgb3V0LCBjb25zdCBFbGVtZW50JiBlCiAKICAgICAgICAgICAgIGlmIChhZGREaXNw
bGF5SW5saW5lKQogICAgICAgICAgICAgICAgIG5ld0lubGluZVN0eWxlLT5mb3JjZUlubGluZSgp
OworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoZWxlbWVudC5kb2N1bWVudCgpLnNldHRp
bmdzKCkgJiYgZWxlbWVudC5kb2N1bWVudCgpLnNldHRpbmdzKCktPmNvbnZlcnRQb3NpdGlvblN0
eWxlT25Db3B5KCkpCisgICAgICAgICAgICAgICAgbV9uZWVkUmVsYXRpdmVTdHlsZVdyYXBwZXIg
fD0gbmV3SW5saW5lU3R5bGUtPmNvbnZlcnRGaXhlZEFuZFN0aWNreVBvc2l0aW9uKCk7CiAKICAg
ICAgICAgICAgIC8vIElmIHRoZSBub2RlIGlzIG5vdCBmdWxseSBzZWxlY3RlZCBieSB0aGUgcmFu
Z2UsIHRoZW4gd2UgZG9uJ3Qgd2FudCB0byBrZWVwIHN0eWxlcyB0aGF0IGFmZmVjdCBpdHMgcmVs
YXRpb25zaGlwIHRvIHRoZSBub2RlcyBhcm91bmQgaXQKICAgICAgICAgICAgIC8vIG9ubHkgdGhl
IG9uZXMgdGhhdCBhZmZlY3QgaXQgYW5kIHRoZSBub2RlcyB3aXRoaW4gaXQuCkBAIC02MTQsNiAr
NjI0LDEyIEBAIHN0YXRpYyBTdHJpbmcgY3JlYXRlTWFya3VwSW50ZXJuYWwoRG9jdW1lbnQmIGRv
Y3VtZW50LCBjb25zdCBSYW5nZSYgcmFuZ2UsIGNvbnN0CiAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KICAgICB9CisgICAgCisgICAgaWYgKGFjY3VtdWxhdG9yLm5lZWRSZWxhdGl2
ZVN0eWxlV3JhcHBlcigpICYmIGJvZHkgJiYgZnVsbHlTZWxlY3RlZFJvb3QgPT0gYm9keSkgewor
ICAgICAgICBSZWZQdHI8RWRpdGluZ1N0eWxlPiBwb3NpdGlvblJlbGF0aXZlU3R5bGUgPSBzdHls
ZUZyb21NYXRjaGVkUnVsZXNBbmRJbmxpbmVEZWNsKGJvZHkpOworICAgICAgICBwb3NpdGlvblJl
bGF0aXZlU3R5bGUtPnN0eWxlKCktPnNldFByb3BlcnR5KENTU1Byb3BlcnR5UG9zaXRpb24sIENT
U1ZhbHVlUmVsYXRpdmUpOworICAgICAgICBhY2N1bXVsYXRvci53cmFwV2l0aFN0eWxlTm9kZShw
b3NpdGlvblJlbGF0aXZlU3R5bGUtPnN0eWxlKCksIGRvY3VtZW50LCB0cnVlKTsKKyAgICB9CiAK
ICAgICAvLyBGSVhNRTogVGhlIGludGVyY2hhbmdlIG5ld2xpbmUgc2hvdWxkIGJlIHBsYWNlZCBp
biB0aGUgYmxvY2sgdGhhdCBpdCdzIGluLCBub3QgYWZ0ZXIgYWxsIG9mIHRoZSBjb250ZW50LCB1
bmNvbmRpdGlvbmFsbHkuCiAgICAgaWYgKHNob3VsZEFubm90YXRlID09IEFubm90YXRlRm9ySW50
ZXJjaGFuZ2UgJiYgbmVlZEludGVyY2hhbmdlTmV3bGluZUFmdGVyKHZpc2libGVFbmQucHJldmlv
dXMoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgppbmRleCBhODY0YWUyMmFmNGQ1ZDE0ZjQwNmE4
MjBhMDZmNTM0ZWEyNTkzYmU3Li5iMjQ1MmE2ODU4MTFjOTYxZGVlYTFkZGZhMzA1NzI3YzU2NzM4
MDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KQEAgLTIwNCwzICsyMDQsNSBAQCBtZWRpYVNv
dXJjZUVuYWJsZWQgaW5pdGlhbD1mYWxzZQogYWxsb3dNdWx0aUVsZW1lbnRJbXBsaWNpdFN1Ym1p
c3Npb24gaW5pdGlhbD1mYWxzZQogCiBtZWRpYVBsYXliYWNrQWxsb3dzQWlyUGxheSBpbml0aWFs
PXRydWUsIGNvbmRpdGlvbmFsPUlPU19BSVJQTEFZCisKK2NvbnZlcnRQb3NpdGlvblN0eWxlT25D
b3B5IGluaXRpYWw9ZmFsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGlu
Z3MuY3BwCmluZGV4IGRjN2RhMWU5MmZjMDQwMjEyOGFhZDdmMmFlMDViN2YxNzNiOWY4YTMuLjM2
MDg0YTkxMzQzYTNkOTM5Y2YxZjBlMTA3NTk2ZjJiNWU1ZWY4NzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcApAQCAtOTQsNiArOTQsNyBAQCBJbnRlcm5h
bFNldHRpbmdzOjpCYWNrdXA6OkJhY2t1cChTZXR0aW5ncyYgc2V0dGluZ3MpCiAgICAgLCBtX3Vz
ZUxlZ2FjeUJhY2tncm91bmRTaXplU2hvcnRoYW5kQmVoYXZpb3Ioc2V0dGluZ3MudXNlTGVnYWN5
QmFja2dyb3VuZFNpemVTaG9ydGhhbmRCZWhhdmlvcigpKQogICAgICwgbV9hdXRvc2Nyb2xsRm9y
RHJhZ0FuZERyb3BFbmFibGVkKHNldHRpbmdzLmF1dG9zY3JvbGxGb3JEcmFnQW5kRHJvcEVuYWJs
ZWQoKSkKICAgICAsIG1fcGx1Z2luUmVwbGFjZW1lbnRFbmFibGVkKFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkucGx1Z2luUmVwbGFjZW1lbnRFbmFibGVkKCkpCisgICAg
LCBtX2NvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5KHNldHRpbmdzLmNvbnZlcnRQb3NpdGlvblN0
eWxlT25Db3B5KCkpCiB7CiB9CiAKQEAgLTE1NSw2ICsxNTYsNyBAQCB2b2lkIEludGVybmFsU2V0
dGluZ3M6OkJhY2t1cDo6cmVzdG9yZVRvKFNldHRpbmdzJiBzZXR0aW5ncykKICAgICBzZXR0aW5n
cy5zZXRUaW1lV2l0aG91dE1vdXNlTW92ZW1lbnRCZWZvcmVIaWRpbmdDb250cm9scyhtX29yaWdp
bmFsVGltZVdpdGhvdXRNb3VzZU1vdmVtZW50QmVmb3JlSGlkaW5nQ29udHJvbHMpOwogICAgIHNl
dHRpbmdzLnNldFVzZUxlZ2FjeUJhY2tncm91bmRTaXplU2hvcnRoYW5kQmVoYXZpb3IobV91c2VM
ZWdhY3lCYWNrZ3JvdW5kU2l6ZVNob3J0aGFuZEJlaGF2aW9yKTsKICAgICBzZXR0aW5ncy5zZXRB
dXRvc2Nyb2xsRm9yRHJhZ0FuZERyb3BFbmFibGVkKG1fYXV0b3Njcm9sbEZvckRyYWdBbmREcm9w
RW5hYmxlZCk7CisgICAgc2V0dGluZ3Muc2V0Q29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHkobV9j
b252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weSk7CiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
c2hhcmVkRmVhdHVyZXMoKS5zZXRQbHVnaW5SZXBsYWNlbWVudEVuYWJsZWQobV9wbHVnaW5SZXBs
YWNlbWVudEVuYWJsZWQpOwogfQogCkBAIC01MjcsNCArNTI5LDEwIEBAIHZvaWQgSW50ZXJuYWxT
ZXR0aW5nczo6c2V0QmFja2dyb3VuZFNob3VsZEV4dGVuZEJleW9uZFBhZ2UoYm9vbCBoYXNFeHRl
bmRlZEJhY2tnCiAgICAgc2V0dGluZ3MoKS0+c2V0QmFja2dyb3VuZFNob3VsZEV4dGVuZEJleW9u
ZFBhZ2UoaGFzRXh0ZW5kZWRCYWNrZ3JvdW5kKTsKIH0KIAordm9pZCBJbnRlcm5hbFNldHRpbmdz
OjpzZXRDb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weShib29sIGNvbnZlcnQsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQoreworICAgIEludGVybmFsU2V0dGluZ3NHdWFyZEZvclNldHRpbmdzKCk7CisgICAg
c2V0dGluZ3MoKS0+c2V0Q29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHkoY29udmVydCk7Cit9CisK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5o
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKaW5kZXggNzY4ZDU3
NTJiMjA3ZThjYTU1MzE0YmU3MDVkMDlkNTY3YjIyOGQ5Mi4uYWM4MzRiZTBlNGY0MTkxMTQzOWRk
YmRlNDcyZTQ2ZmNmOTBkODRiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNl
dHRpbmdzLmgKQEAgLTkxLDYgKzkxLDcgQEAgcHVibGljOgogICAgICAgICBib29sIG1fdXNlTGVn
YWN5QmFja2dyb3VuZFNpemVTaG9ydGhhbmRCZWhhdmlvcjsKICAgICAgICAgYm9vbCBtX2F1dG9z
Y3JvbGxGb3JEcmFnQW5kRHJvcEVuYWJsZWQ7CiAgICAgICAgIGJvb2wgbV9wbHVnaW5SZXBsYWNl
bWVudEVuYWJsZWQ7CisgICAgICAgIGJvb2wgbV9jb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weTsK
ICAgICB9OwogCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SW50ZXJuYWxTZXR0aW5ncz4gY3JlYXRl
KFBhZ2UqIHBhZ2UpCkBAIC0xMzYsNiArMTM3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Rm9u
dEZhbGxiYWNrUHJlZmVyc1BpY3RvZ3JhcGhzKGJvb2wgcHJlZmVyUGljdG9ncmFwaHMsIEV4Y2Vw
dGlvbkNvZGUmKTsKICAgICB2b2lkIHNldFBsdWdpblJlcGxhY2VtZW50RW5hYmxlZChib29sKTsK
ICAgICB2b2lkIHNldEJhY2tncm91bmRTaG91bGRFeHRlbmRCZXlvbmRQYWdlKGJvb2wgaGFzRXh0
ZW5kZWRCYWNrZ3JvdW5kLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRDb252ZXJ0UG9z
aXRpb25TdHlsZU9uQ29weShib29sIGNvbnZlcnQsIEV4Y2VwdGlvbkNvZGUmKTsKIAogCiBwcml2
YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKaW5kZXgg
ZjlmYmZiMTA3YmNlNzJiZWE0MGYwMmUyMmI5ODc5NDQ0MWViMGY2NS4uODU0YjlkYjhhODRlZDkw
NjYxYjk3OWQ2NmQ1ZGU4MDJjOWQ3Nzc2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuaWRsCkBAIC02MCw0ICs2MCw1IEBACiAgICAgW1JhaXNlc0V4Y2VwdGlv
bl0gdm9pZCBzZXRGb250RmFsbGJhY2tQcmVmZXJzUGljdG9ncmFwaHMoYm9vbGVhbiBwcmVmZXJQ
aWN0b2dyYXBocyk7CiAgICAgdm9pZCBzZXRQbHVnaW5SZXBsYWNlbWVudEVuYWJsZWQoYm9vbGVh
biBlbmFibGVkKTsKICAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIHNldEJhY2tncm91bmRTaG91
bGRFeHRlbmRCZXlvbmRQYWdlKGJvb2xlYW4gaGFzRXh0ZW5kZWRCYWNrZ3JvdW5kKTsKKyAgICBb
UmFpc2VzRXhjZXB0aW9uXSB2b2lkIHNldENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5KGJvb2xl
YW4gY29udmVydCk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggNjhkZDVkZGQ0Y2M3YmZlMmI1MTk0MzgwYTVh
ZDVmNDVkMTFmNzcxZi4uNDUyNTQ2YTkzZmFhNmI1YzEwNDljNjI0YWM0N2FhNjYzY2Q2MWQwNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1By
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlz
UHJpdmF0ZS5oCkBAIC0xNDYsNiArMTQ2LDcgQEAKICNkZWZpbmUgV2ViS2l0TG93UG93ZXJWaWRl
b0F1ZGlvQnVmZmVyU2l6ZUVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0TG93UG93ZXJWaWRl
b0F1ZGlvQnVmZmVyU2l6ZUVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFVzZUxlZ2FjeVRleHRBbGln
blBvc2l0aW9uZWRFbGVtZW50QmVoYXZpb3JQcmVmZXJlbmNlS2V5IEAiV2ViS2l0VXNlTGVnYWN5
VGV4dEFsaWduUG9zaXRpb25lZEVsZW1lbnRCZWhhdmlvciIKICNkZWZpbmUgV2ViS2l0TWVkaWFT
b3VyY2VFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdE1lZGlhU291cmNlRW5hYmxlZCIKKyNk
ZWZpbmUgV2ViS2l0Q29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHlQcmVmZXJlbmNlS2V5IEAiV2Vi
S2l0Q29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHkiCiAKICNpZiAhVEFSR0VUX09TX0lQSE9ORQog
Ly8gVGhlc2UgYXJlIHByaXZhdGUgYm90aCBiZWNhdXNlIGNhbGxlcnMgc2hvdWxkIGJlIHVzaW5n
IHRoZSBjb3ZlciBtZXRob2RzIGFuZCBiZWNhdXNlIHRoZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KaW5kZXggNGVkZTlmMzA4YjdkNWEyMTRmOTJkNTYzMGZk
YjQxNjY3NTI4Y2MyOC4uMGQzNTNiODVkYmIxM2U5OTE0NzNhOWJhNWI5ZGE3Mjc3NTg4Y2EwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCkBAIC0yNTM1
LDYgKzI1MzUsMTYgQEAgLSAodm9pZClzZXRNZWRpYVNvdXJjZUVuYWJsZWQ6KEJPT0wpZW5hYmxl
ZAogICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZW5hYmxlZCBmb3JLZXk6V2ViS2l0TWVkaWFTb3Vy
Y2VFbmFibGVkUHJlZmVyZW5jZUtleV07CiB9CiAKKy0gKEJPT0wpY29udmVydFBvc2l0aW9uU3R5
bGVPbkNvcHkKK3sKKyAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRDb252
ZXJ0UG9zaXRpb25TdHlsZU9uQ29weVByZWZlcmVuY2VLZXldOworfQorCistICh2b2lkKXNldENv
bnZlcnRQb3NpdGlvblN0eWxlT25Db3B5OihCT09MKWVuYWJsZWQKK3sKKyAgICBbc2VsZiBfc2V0
Qm9vbFZhbHVlOmVuYWJsZWQgZm9yS2V5OldlYktpdENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5
UHJlZmVyZW5jZUtleV07Cit9CisKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdlYlByZWZlcmVu
Y2VzIChXZWJJbnRlcm5hbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViUHJlZmVyZW5jZXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBy
ZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IGUxYjhiYTk3NDMwODkxYjllMDg1OGRjNzgxZGE4NDkz
YjcxOTIwYWUuLjIyMjZjZjc0MTFmODAxNThiNDg4YzMyMjhhYmZmMDk3NjAwMGJiNmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaApA
QCAtNDMyLDQgKzQzMiw3IEBAIGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXNDYWNoZU1v
ZGVsQ2hhbmdlZEludGVybmFsTm90aWZpY2F0aW9uOwogLSAodm9pZClzZXRNZWRpYVNvdXJjZUVu
YWJsZWQ6KEJPT0wpZmxhZzsKIC0gKEJPT0wpbWVkaWFTb3VyY2VFbmFibGVkOwogCistICh2b2lk
KXNldENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5OihCT09MKWZsYWc7CistIChCT09MKWNvbnZl
cnRQb3NpdGlvblN0eWxlT25Db3B5OworCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0KaW5kZXggNmY2MDAwZTY2NDE2MWRlYjFjMDQ0NzdjZGQ0ZGIwNzlmMWIwYmU5My4uM2I3
NDQ5Yzk2NjlkYmMxYjliNDdkODhjMTMyZmU1ODNhY2RlOThkNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViVmlldy5tbQpAQCAtMjM3OCw2ICsyMzc4LDggQEAgLSAodm9pZClfcHJlZmVyZW5j
ZXNDaGFuZ2VkOihXZWJQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzCiAgICAgc2V0dGluZ3Muc2V0
TWVkaWFTb3VyY2VFbmFibGVkKFtwcmVmZXJlbmNlcyBtZWRpYVNvdXJjZUVuYWJsZWRdKTsKICNl
bmRpZgogCisgICAgc2V0dGluZ3Muc2V0Q29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHkoW3ByZWZl
cmVuY2VzIGNvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5XSk7CisKICAgICBzd2l0Y2ggKFtwcmVm
ZXJlbmNlcyBzdG9yYWdlQmxvY2tpbmdQb2xpY3ldKSB7CiAgICAgY2FzZSBXZWJBbGxvd0FsbFN0
b3JhZ2U6CiAgICAgICAgIHNldHRpbmdzLnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShTZWN1cml0
eU9yaWdpbjo6QWxsb3dBbGxTdG9yYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJl
ZmVyZW5jZXNTdG9yZS5oCmluZGV4IDE0NDUwODRkYTAwYmVhNjk0ODFkZWEyNmMzODQxM2U0Zjcw
MjQ0ZWMuLmZhNDgyNWM0OGVlMjQ0OWNjYjlmZjczYTBhYmIzNzYwOWE4YmY4OTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaApAQCAtMTkwLDYgKzE5MCw3
IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAgIG1hY3JvKFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxl
ZCwgc3BhdGlhbE5hdmlnYXRpb25FbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAogICAgIG1h
Y3JvKE1lZGlhU291cmNlRW5hYmxlZCwgbWVkaWFTb3VyY2VFbmFibGVkLCBCb29sLCBib29sLCBm
YWxzZSkgXAogICAgIG1hY3JvKFZpZXdHZXN0dXJlRGVidWdnaW5nRW5hYmxlZCwgdmlld0dlc3R1
cmVEZWJ1Z2dpbmdFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAorICAgIG1hY3JvKENvbnZl
cnRQb3NpdGlvblN0eWxlT25Db3B5LCBjb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weSwgQm9vbCwg
Ym9vbCwgZmFsc2UpIFwKICAgICBcCiAKICNkZWZpbmUgRk9SX0VBQ0hfV0VCS0lUX0RPVUJMRV9Q
UkVGRVJFTkNFKG1hY3JvKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tQcmVmZXJlbmNlcy5jcHAKaW5kZXggYjI0NTQwMmMzZGI4MDE3NzlmNzVjODRiYmE1ZDgzZTNi
ZmZjODc5MS4uNTg3MGUzNWEzNjUxYTIxYTg3OGFmN2JjNTQ4MWM2NjU1YjI0ZmY1MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcApAQCAt
MTIzNSwzICsxMjM1LDEzIEBAIGJvb2wgV0tQcmVmZXJlbmNlc0dldFZpZXdHZXN0dXJlRGVidWdn
aW5nRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmCiB7CiAgICAgcmV0dXJu
IHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnZpZXdHZXN0dXJlRGVidWdnaW5nRW5hYmxlZCgpOwog
fQorCit2b2lkIFdLUHJlZmVyZW5jZXNTZXRDb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weShXS1By
ZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGNvbnZlcnQpCit7CisgICAgdG9JbXBs
KHByZWZlcmVuY2VzUmVmKS0+c2V0Q29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHkoY29udmVydCk7
Cit9CisKK2Jvb2wgV0tQcmVmZXJlbmNlc0dldENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5KFdL
UHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpCit7CisgICAgcmV0dXJuIHRvSW1wbChwcmVm
ZXJlbmNlc1JlZiktPmNvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5KCk7Cit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCmlu
ZGV4IDBkODBmMDQ5OTY0ZWUzMTVmZjgwMmJiYWMwYTI5OWQ2NTBhNGVkY2QuLmJhNWRhYmMzNTE2
ZWIxNGZkNTIzYzUzMmNkOTAyZjM2NmE2MTRjZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCkBAIC0zMTQsNiArMzE0
LDEwIEBAIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRNZWRpYVNvdXJjZUVuYWJsZWQo
V0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlCiBXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVu
Y2VzU2V0Vmlld0dlc3R1cmVEZWJ1Z2dpbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVy
ZW5jZXNSZWYsIGJvb2wgZW5hYmxlZCk7CiBXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0
Vmlld0dlc3R1cmVEZWJ1Z2dpbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNS
ZWYpOwogCisvLyBEZWZhdWx0IHRvIGZhbHNlLgorV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNl
c1NldENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5j
ZXNSZWYsIGJvb2wgY29udmVydCk7CitXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0Q29u
dmVydFBvc2l0aW9uU3R5bGVPbkNvcHkoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZik7
CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYWJjMWMxNTgwZGE1N2FlNWM0NzIwZDQz
M2Q2OGRjMWFmNTlhZmY1Yi4uYTgwNmEwYzgxZGE5OWQyZTYxZGIwMDg5MzZiZjVjOGQ4OWE0ZGEz
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApA
QCAtMjU2NCw2ICsyNTY0LDggQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25z
dCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKICAgICBzZXR0aW5ncy5zZXRNZWRpYVNvdXJj
ZUVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjptZWRp
YVNvdXJjZUVuYWJsZWRLZXkoKSkpOwogI2VuZGlmCiAKKyAgICBzZXR0aW5ncy5zZXRDb252ZXJ0
UG9zaXRpb25TdHlsZU9uQ29weShzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5j
ZXNLZXk6OmNvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5S2V5KCkpKTsKKwogICAgIGlmIChzdG9y
ZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnBhZ2VWaXNpYmlsaXR5QmFz
ZWRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkS2V5KCkpKSB7CiAgICAgICAgIGlmIChtX3Byb2Nl
c3NTdXBwcmVzc2lvbkRpc2FibGVkQnlXZWJQcmVmZXJlbmNlLmlzQWN0aXZlKCkpCiAgICAgICAg
ICAgICBtX3Byb2Nlc3NTdXBwcmVzc2lvbkRpc2FibGVkQnlXZWJQcmVmZXJlbmNlLmVuZEFjdGl2
aXR5KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggYTdhM2Q0NDQ3OWUzZjVkMmNjMTdhM2NhMjZmNGM5M2EwYmQwNTNiYy4u
ZDZmMzZkODYzZTI3NzZhY2M4YWY5OGZjOTBkZmEzYTEzNzM2NjkzZSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDE0LTAyLTEwICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5j
b20+CisKKyAgICAgICAgQ29udmVydCBwb3NpdGlvbjpzdGlja3kgYW5kIHBvc2l0aW9uOmZpeGVk
IHByb3BlcnRpZXMgdG8gcG9zaXRpb246c3RhdGljIGFuZCBwb3NpdGlvbjphYnNvbHV0ZSB1cG9u
IGNvcHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEy
ODE5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENo
ZWNrcyB0aGF0IHRoZSBzdHlsZSBwcm9wZXJ0aWVzIGdldCBjb252ZXJ0ZWQuCisKKyAgICAgICAg
KiBlZGl0aW5nL3Bhc3RlYm9hcmQvY29weS1wYXN0ZS1jb252ZXJ0cy1zdGlja3ktYW5kLWZpeGVk
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHkt
cGFzdGUtY29udmVydHMtc3RpY2t5LWFuZC1maXhlZC5odG1sOiBBZGRlZC4KKwogMjAxNC0wMi0w
NyAgTWloYWkgVGljYSAgPG1pdGljYUBhZG9iZS5jb20+CiAKICAgICAgICAgW0NTUyBCYWNrZ3Jv
dW5kIEJsZW5kaW5nXSBVbnByZWZpeCB0aGUgLXdlYmtpdC1iYWNrZ3JvdW5kLWJsZW5kLW1vZGUg
cHJvcGVydHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9jb3B5
LXBhc3RlLWNvbnZlcnRzLXN0aWNreS1hbmQtZml4ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktcGFzdGUtY29udmVydHMtc3RpY2t5LWFuZC1maXhl
ZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWExODVkYmY3NmI2YThkODQ3YmI2OTdhYjUzMzlk
ZjM3MzY0YTQ3OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVi
b2FyZC9jb3B5LXBhc3RlLWNvbnZlcnRzLXN0aWNreS1hbmQtZml4ZWQtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsOTggQEAKK1RoZXNlIHRlc3RzIHRvIHNlZSBpZiBwb3NpdGlvbjpzdGlja3kgYW5k
IHBvc2l0aW9uOmZpeGVkIGdldCBjb252ZXJ0ZWQgdG8gcG9zaXRpb246c3RhdGljIGFuZCBwb3Np
dGlvbjphYnNvbHV0ZSB1cG9uIGNvcHkvcGFzdGUKKworZmlyc3QgdGVzdCAtIGJlZm9yZToKK3wg
PGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICAiCisiCit8ICAgICA8bWV0YT4KK3wgICAgICAgY29u
dGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IgorfCAgICAgICBodHRwLWVxdWl2PSJDb250
ZW50LXR5cGUiCit8ICAgICAiCisiCit8ICAgICA8c2NyaXB0PgorfCAgICAgICBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5qcyIKK3wgICAgICAgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IgorfCAgICAgIgorIgorfCAgICIKKyIKK3wgICA8Ym9keT4KK3wgICAgICIKK2FiYyIKK3wg
ICAgIDxkaXY+Cit8ICAgICAgIHN0eWxlPSJwb3NpdGlvbjogZml4ZWQ7IGxlZnQ6IDBweDsgdG9w
OiAwcHg7IgorfCAgICAgICAiZGVmIgorfCAgICAgImdoaQorIgorfCAgICAgPGJyPgorfCAgICAg
IgorCisiCit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiCisKK01hcmt1cC5kZXNjcmlwdGlvbign
VGhlc2UgdGVzdHMgdG8gc2VlIGlmIHBvc2l0aW9uOnN0aWNreSBhbmQgcG9zaXRpb246Zml4ZWQg
Z2V0IGNvbnZlcnRlZCB0byBwb3NpdGlvbjpzdGF0aWMgYW5kIHBvc2l0aW9uOmFic29sdXRlIHVw
b24gY29weS9wYXN0ZScpOworCitkb2N1bWVudC5kZXNpZ25Nb2RlID0gJ29uJzsKKworaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRDb252ZXJ0
UG9zaXRpb25TdHlsZU9uQ29weSh0cnVlKTsKKwordmFyIHMgPSB3aW5kb3cuZ2V0U2VsZWN0aW9u
KCk7CisKK01hcmt1cC5kdW1wKCd0ZXN0MScsICdmaXJzdCB0ZXN0IC0gYmVmb3JlJyk7Citkb2N1
bWVudC5leGVjQ29tbWFuZCgiU2VsZWN0QWxsIik7Citkb2N1bWVudC5leGVjQ29tbWFuZCgiQ3V0
Iik7Citkb2N1bWVudC5leGVjQ29tbWFuZCgiUGFzdGUiKTsKK01hcmt1cC5kdW1wKCd0ZXN0MScs
ICdmaXJzdCB0ZXN0IC0gYWZ0ZXInKTsKKworIgorCitmaXJzdCB0ZXN0IC0gYWZ0ZXI6Cit8IDxo
dG1sPgorfCAgIDxoZWFkPgorfCAgICAgIgorIgorfCAgICAgPG1ldGE+Cit8ICAgICAgIGNvbnRl
bnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIKK3wgICAgICAgaHR0cC1lcXVpdj0iQ29udGVu
dC10eXBlIgorfCAgICAgIgorIgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMiCit8ICAgICAgIHR5cGU9InRleHQvamF2YXNjcmlw
dCIKK3wgICAgICIKKyIKK3wgICAiCisiCit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAg
ICBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyIKK3wgICAgICAgImFiYyIKK3wgICAgICAgPGRp
dj4KK3wgICAgICAgICBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwcHg7IHRvcDog
MHB4OyIKK3wgICAgICAgICAiZGVmIgorfCAgICAgICAiZ2hpwqA8I3NlbGVjdGlvbi1jYXJldD4i
Cit8ICAgICAiCisKKyIKK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICIKKworTWFya3VwLmRlc2Ny
aXB0aW9uKCdUaGVzZSB0ZXN0cyB0byBzZWUgaWYgcG9zaXRpb246c3RpY2t5IGFuZCBwb3NpdGlv
bjpmaXhlZCBnZXQgY29udmVydGVkIHRvIHBvc2l0aW9uOnN0YXRpYyBhbmQgcG9zaXRpb246YWJz
b2x1dGUgdXBvbiBjb3B5L3Bhc3RlJyk7CisKK2RvY3VtZW50LmRlc2lnbk1vZGUgPSAnb24nOwor
CitpZiAod2luZG93LmludGVybmFscykKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNl
dENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5KHRydWUpOworCit2YXIgcyA9IHdpbmRvdy5nZXRT
ZWxlY3Rpb24oKTsKKworTWFya3VwLmR1bXAoJ3Rlc3QxJywgJ2ZpcnN0IHRlc3QgLSBiZWZvcmUn
KTsKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCJTZWxlY3RBbGwiKTsKK2RvY3VtZW50LmV4ZWNDb21t
YW5kKCJDdXQiKTsKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCJQYXN0ZSIpOworTWFya3VwLmR1bXAo
J3Rlc3QxJywgJ2ZpcnN0IHRlc3QgLSBhZnRlcicpOworCisiCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvY29weS1wYXN0ZS1jb252ZXJ0cy1zdGlja3ktYW5kLWZp
eGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvY29weS1wYXN0ZS1jb252
ZXJ0cy1zdGlja3ktYW5kLWZpeGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzgwZjhhOTQ0OTRiYTVkYWQw
NGY5MDI0NmJlMTA0NzVhNGViYzRlOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvcGFzdGVib2FyZC9jb3B5LXBhc3RlLWNvbnZlcnRzLXN0aWNreS1hbmQtZml4ZWQuaHRt
bApAQCAtMCwwICsxLDI5IEBACis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29u
dGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZHVtcC1hcy1tYXJr
dXAuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CithYmM8ZGl2IHN0eWxlPSJwb3NpdGlv
bjogZml4ZWQ7IGxlZnQ6IDBweDsgdG9wOiAwcHg7Ij5kZWY8L2Rpdj5naGkKKzxici8+CisKKzxz
Y3JpcHQ+CisKK01hcmt1cC5kZXNjcmlwdGlvbignVGhlc2UgdGVzdHMgdG8gc2VlIGlmIHBvc2l0
aW9uOnN0aWNreSBhbmQgcG9zaXRpb246Zml4ZWQgZ2V0IGNvbnZlcnRlZCB0byBwb3NpdGlvbjpz
dGF0aWMgYW5kIHBvc2l0aW9uOmFic29sdXRlIHVwb24gY29weS9wYXN0ZScpOworCitkb2N1bWVu
dC5kZXNpZ25Nb2RlID0gJ29uJzsKKworaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgd2luZG93
LmludGVybmFscy5zZXR0aW5ncy5zZXRDb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weSh0cnVlKTsK
KwordmFyIHMgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CisKK01hcmt1cC5kdW1wKCd0ZXN0MScs
ICdmaXJzdCB0ZXN0IC0gYmVmb3JlJyk7Citkb2N1bWVudC5leGVjQ29tbWFuZCgiU2VsZWN0QWxs
Iik7Citkb2N1bWVudC5leGVjQ29tbWFuZCgiQ3V0Iik7Citkb2N1bWVudC5leGVjQ29tbWFuZCgi
UGFzdGUiKTsKK01hcmt1cC5kdW1wKCd0ZXN0MScsICdmaXJzdCB0ZXN0IC0gYWZ0ZXInKTsKKwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="247955"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>