<?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>106375</bug_id>
          
          <creation_ts>2013-01-08 13:58:41 -0800</creation_ts>
          <short_desc>Remove dependency on Document from HTMLConstructionSite::inQuirksMode()</short_desc>
          <delta_ts>2013-01-09 09:57:17 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>106412</dependson>
          <blocked>106127</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tony Gentilcore">tonyg</reporter>
          <assigned_to name="Tony Gentilcore">tonyg</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>802597</commentid>
    <comment_count>0</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-01-08 13:58:41 -0800</bug_when>
    <thetext>Remove dependency on Document from HTMLConstructionSite::inQuirksMode()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802599</commentid>
    <comment_count>1</comment_count>
      <attachid>181753</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-01-08 14:00:04 -0800</bug_when>
    <thetext>Created attachment 181753
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802613</commentid>
    <comment_count>2</comment_count>
      <attachid>181753</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-08 14:08:04 -0800</bug_when>
    <thetext>Comment on attachment 181753
Patch

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

I believe this to be pretty well tested, so I&apos;m confident that if the EWS like it, you&apos;re golden.

&gt; Source/WebCore/html/parser/HTMLConstructionSite.cpp:147
&gt; +    , m_inQuirksMode(document-&gt;inQuirksMode())

This looks right.  i assume this will almost always be NoQuirksMode, since that&apos;s what documents start in.

&gt; Source/WebCore/html/parser/HTMLConstructionSite.cpp:158
&gt; +    , m_inQuirksMode(fragment-&gt;document()-&gt;inQuirksMode())

It&apos;s not immediately clear to me that this is what the old code did.

&gt; Source/WebCore/html/parser/HTMLConstructionSite.cpp:334
&gt; +    return;

Unneeded. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802616</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-08 14:10:43 -0800</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=181753&amp;action=review

&gt; Source/WebCore/html/parser/HTMLConstructionSite.cpp:245
&gt; +void HTMLConstructionSite::setCompatibilityModeFromDoctype(DocumentType* docType)

Previously setCompatibilityModeFromDoctype was a virtual function that did different things for HTMLDocument and Document.  Have we lost that distinction?  I guess if we&apos;re using the HTMLDocumentParser, then the m_document must be an HTMLDocument...  Should we add an ASSERT to that effect somewhere?

&gt; Source/WebCore/html/parser/HTMLConstructionSite.cpp:362
&gt;          // We need to actually add the Doctype node to the DOM.
&gt;          executeQueuedTasks();

Can we remove this executeQueuedTasks call?  Previously we needed it so that m_document-&gt;setCompatibilityModeFromDoctype() would work.  (Please fell free to remove it in a followup patch.)

&gt; Source/WebCore/html/parser/HTMLConstructionSite.h:84
&gt; +    void setCompatibilityMode(Document::CompatibilityMode);
&gt; +    void setCompatibilityModeFromDoctype(DocumentType*);

Can these be private?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802643</commentid>
    <comment_count>4</comment_count>
      <attachid>181767</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-01-08 14:26:08 -0800</bug_when>
    <thetext>Created attachment 181767
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802654</commentid>
    <comment_count>5</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-01-08 14:28:36 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 181753 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=181753&amp;action=review
&gt; 
&gt; I believe this to be pretty well tested, so I&apos;m confident that if the EWS like it, you&apos;re golden.
&gt; 
&gt; &gt; Source/WebCore/html/parser/HTMLConstructionSite.cpp:147
&gt; &gt; +    , m_inQuirksMode(document-&gt;inQuirksMode())
&gt; 
&gt; This looks right.  i assume this will almost always be NoQuirksMode, since that&apos;s what documents start in.

Yep.

&gt; 
&gt; &gt; Source/WebCore/html/parser/HTMLConstructionSite.cpp:158
&gt; &gt; +    , m_inQuirksMode(fragment-&gt;document()-&gt;inQuirksMode())
&gt; 
&gt; It&apos;s not immediately clear to me that this is what the old code did.

fast/parser/fragment-parser-doctype.html fails without this.

&gt; 
&gt; &gt; Source/WebCore/html/parser/HTMLConstructionSite.cpp:334
&gt; &gt; +    return;
&gt; 
&gt; Unneeded. :)

That was a copy/paste. Removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802659</commentid>
    <comment_count>6</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-01-08 14:30:01 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=181753&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/parser/HTMLConstructionSite.cpp:245
&gt; &gt; +void HTMLConstructionSite::setCompatibilityModeFromDoctype(DocumentType* docType)
&gt; 
&gt; Previously setCompatibilityModeFromDoctype was a virtual function that did different things for HTMLDocument and Document.  Have we lost that distinction?  I guess if we&apos;re using the HTMLDocumentParser, then the m_document must be an HTMLDocument...  Should we add an ASSERT to that effect somewhere?

You are right, if we are using an HTMLDocumentParser, we have an HTMLDocument. I&apos;m not quite sure where to ASSERT anything to that end though.

&gt; 
&gt; &gt; Source/WebCore/html/parser/HTMLConstructionSite.cpp:362
&gt; &gt;          // We need to actually add the Doctype node to the DOM.
&gt; &gt;          executeQueuedTasks();
&gt; 
&gt; Can we remove this executeQueuedTasks call?  Previously we needed it so that m_document-&gt;setCompatibilityModeFromDoctype() would work.  (Please fell free to remove it in a followup patch.)

I don&apos;t think we can remove it since we are still calling m_document-&gt;doctype() on the line below. Am I missing something?

&gt; 
&gt; &gt; Source/WebCore/html/parser/HTMLConstructionSite.h:84
&gt; &gt; +    void setCompatibilityMode(Document::CompatibilityMode);
&gt; &gt; +    void setCompatibilityModeFromDoctype(DocumentType*);
&gt; 
&gt; Can these be private?

Oops. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802666</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-08 14:33:46 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #3)
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=181753&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/html/parser/HTMLConstructionSite.cpp:245
&gt; &gt; &gt; +void HTMLConstructionSite::setCompatibilityModeFromDoctype(DocumentType* docType)
&gt; &gt; 
&gt; &gt; Previously setCompatibilityModeFromDoctype was a virtual function that did different things for HTMLDocument and Document.  Have we lost that distinction?  I guess if we&apos;re using the HTMLDocumentParser, then the m_document must be an HTMLDocument...  Should we add an ASSERT to that effect somewhere?
&gt; 
&gt; You are right, if we are using an HTMLDocumentParser, we have an HTMLDocument. I&apos;m not quite sure where to ASSERT anything to that end though.

Maybe in the constructor?

&gt; &gt; &gt; Source/WebCore/html/parser/HTMLConstructionSite.cpp:362
&gt; &gt; &gt;          // We need to actually add the Doctype node to the DOM.
&gt; &gt; &gt;          executeQueuedTasks();
&gt; &gt; 
&gt; &gt; Can we remove this executeQueuedTasks call?  Previously we needed it so that m_document-&gt;setCompatibilityModeFromDoctype() would work.  (Please fell free to remove it in a followup patch.)
&gt; 
&gt; I don&apos;t think we can remove it since we are still calling m_document-&gt;doctype() on the line below. Am I missing something?

We could make setCompatibilityModeFromDoctype take an AtomicHTMLToken rather than a Doctype*.  We can worry about that in a followup patch, however.  The issue is that we won&apos;t be able to have a Doctype* on the parser thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802733</commentid>
    <comment_count>8</comment_count>
      <attachid>181788</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-01-08 15:32:34 -0800</bug_when>
    <thetext>Created attachment 181788
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802735</commentid>
    <comment_count>9</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-01-08 15:33:30 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; (In reply to comment #3)
&gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=181753&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/html/parser/HTMLConstructionSite.cpp:245
&gt; &gt; &gt; &gt; +void HTMLConstructionSite::setCompatibilityModeFromDoctype(DocumentType* docType)
&gt; &gt; &gt; 
&gt; &gt; &gt; Previously setCompatibilityModeFromDoctype was a virtual function that did different things for HTMLDocument and Document.  Have we lost that distinction?  I guess if we&apos;re using the HTMLDocumentParser, then the m_document must be an HTMLDocument...  Should we add an ASSERT to that effect somewhere?
&gt; &gt; 
&gt; &gt; You are right, if we are using an HTMLDocumentParser, we have an HTMLDocument. I&apos;m not quite sure where to ASSERT anything to that end though.
&gt; 
&gt; Maybe in the constructor?

Done.

&gt; 
&gt; &gt; &gt; &gt; Source/WebCore/html/parser/HTMLConstructionSite.cpp:362
&gt; &gt; &gt; &gt;          // We need to actually add the Doctype node to the DOM.
&gt; &gt; &gt; &gt;          executeQueuedTasks();
&gt; &gt; &gt; 
&gt; &gt; &gt; Can we remove this executeQueuedTasks call?  Previously we needed it so that m_document-&gt;setCompatibilityModeFromDoctype() would work.  (Please fell free to remove it in a followup patch.)
&gt; &gt; 
&gt; &gt; I don&apos;t think we can remove it since we are still calling m_document-&gt;doctype() on the line below. Am I missing something?
&gt; 
&gt; We could make setCompatibilityModeFromDoctype take an AtomicHTMLToken rather than a Doctype*.  We can worry about that in a followup patch, however.  The issue is that we won&apos;t be able to have a Doctype* on the parser thread.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802739</commentid>
    <comment_count>10</comment_count>
      <attachid>181788</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-08 15:37:05 -0800</bug_when>
    <thetext>Comment on attachment 181788
Patch

Looks great.  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802855</commentid>
    <comment_count>11</comment_count>
      <attachid>181788</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-08 17:45:16 -0800</bug_when>
    <thetext>Comment on attachment 181788
Patch

Clearing flags on attachment: 181788

Committed r139141: &lt;http://trac.webkit.org/changeset/139141&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802856</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-08 17:45:20 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803361</commentid>
    <comment_count>13</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2013-01-09 08:43:43 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; All reviewed patches have been landed.  Closing bug.

I think this change made a test assert:


http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=editing%2FexecCommand%2Finsert-list-xml.xhtml</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803420</commentid>
    <comment_count>14</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-01-09 09:57:17 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; All reviewed patches have been landed.  Closing bug.
&gt; 
&gt; I think this change made a test assert:
&gt; 
&gt; 
&gt; http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=editing%2FexecCommand%2Finsert-list-xml.xhtml

This assertion failure is tracked by https://bugs.webkit.org/show_bug.cgi?id=106412 and there&apos;s a patch up there to fix it. So re-closing this bug out.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181753</attachid>
            <date>2013-01-08 14:00:04 -0800</date>
            <delta_ts>2013-01-08 14:26:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106375-20130108135708.patch</filename>
            <type>text/plain</type>
            <size>18685</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5MDgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjJhZTNhM2Q5MmQyYzZj
OWNiYTdiZmU5NjIxMTk1MTc0ZTY1ZDRiZi4uOWE1MDRlYzA1NzVhM2JjMTA5MWFlZjhlMDUxODg3
NjVhYTE0YTIwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEzLTAxLTA4ICBUb255
IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVtb3ZlIGRlcGVu
ZGVuY3kgb24gRG9jdW1lbnQgZnJvbSBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5RdWlya3NNb2Rl
KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjM3
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
aXMgYW5vdGhlciBzdGVwIHRvd2FyZHMgcmVtb3ZpbmcgbWFpbiB0aHJlYWQgb2JqZWN0IGRlcGVu
ZGVuY2llcworICAgICAgICBmcm9tIHRoZSBwYXJzZXIuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
IGJlY2F1c2Ugbm8gbmV3IGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
aDoKKyAgICAgICAgKiBodG1sL0hUTUxEb2N1bWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1M
RG9jdW1lbnQuaDoKKyAgICAgICAgKEhUTUxEb2N1bWVudCk6CisgICAgICAgICogaHRtbC9wYXJz
ZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0
cnVjdGlvblNpdGU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxDb25zdHJ1Y3Rpb25TaXRlOjpzZXREZWZhdWx0Q29tcGF0aWJpbGl0eU1vZGUpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6c2V0
Q29tcGF0aWJpbGl0eU1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlvblNp
dGU6OnNldENvbXBhdGliaWxpdHlNb2RlRnJvbURvY3R5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydERvY3R5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTENvbnN0cnVjdGlvblNpdGU6OmluUXVpcmtzTW9kZSk6CisgICAgICAgICogaHRtbC9wYXJz
ZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuaDoKKyAgICAgICAgKEhUTUxDb25zdHJ1Y3Rpb25TaXRl
KToKKwogMjAxMy0wMS0wOCAgWmFuIERvYmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwuY29tPgog
CiAgICAgICAgIFtHVEtdIEJ1aWxkIGZhaWx1cmVzIHdoZW4gYnVpbGRpbmcgd2l0aCBweXRob24g
My4zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGU5Y2M3MWIxYTQ2MjgwYTY0NjcyZDA4MmQ3NDJi
MzczOWJlZjkzMTguLmEzOGI1YjVlNDdmNjg3YjUzNTE4YzY2ZWRkMGVhNTYwMzMxYTc3ODggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCkBAIC02MzYsNyArNjM2LDYgQEAgcHVibGljOgogCiAgICAgZW51
bSBDb21wYXRpYmlsaXR5TW9kZSB7IFF1aXJrc01vZGUsIExpbWl0ZWRRdWlya3NNb2RlLCBOb1F1
aXJrc01vZGUgfTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRDb21wYXRpYmlsaXR5TW9kZUZyb21E
b2N0eXBlKCkgeyB9CiAgICAgdm9pZCBzZXRDb21wYXRpYmlsaXR5TW9kZShDb21wYXRpYmlsaXR5
TW9kZSBtKTsKICAgICB2b2lkIGxvY2tDb21wYXRpYmlsaXR5TW9kZSgpIHsgbV9jb21wYXRpYmls
aXR5TW9kZUxvY2tlZCA9IHRydWU7IH0KICAgICBDb21wYXRpYmlsaXR5TW9kZSBjb21wYXRpYmls
aXR5TW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29tcGF0aWJpbGl0eU1vZGU7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTERvY3VtZW50LmNwcAppbmRleCBiOWQ3NjdlMzA0YmM5YTVjMGQzYzY0MDc1OTg1
ODczYTdjMzRjMjRkLi40YTc1Mjc4MjA5OTkwZTdkOWQ1MjFlYmE1YmU0OWJhN2NkNWY5ZTA2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuY3BwCkBAIC0zMzIsOTkgKzMzMiw2IEBAIHZv
aWQgSFRNTERvY3VtZW50OjpyZW1vdmVFeHRyYU5hbWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmcm
IG5hbWUpCiAgICAgcmVtb3ZlSXRlbUZyb21NYXAobV9leHRyYU5hbWVkSXRlbUNvdW50cywgbmFt
ZSk7CiB9CiAKLXZvaWQgSFRNTERvY3VtZW50OjpzZXRDb21wYXRpYmlsaXR5TW9kZUZyb21Eb2N0
eXBlKCkKLXsKLSAgICAvLyBUaGVyZSBhcmUgdGhyZWUgcG9zc2libGUgY29tcGF0aWJpbGl0eSBt
b2RlczoKLSAgICAvLyBRdWlya3MgLSBxdWlya3MgbW9kZSBlbXVsYXRlcyBXaW5JRSBhbmQgTlM0
LiAgQ1NTIHBhcnNpbmcgaXMgYWxzbyByZWxheGVkIGluIHRoaXMgbW9kZSwgZS5nLiwgdW5pdCB0
eXBlcyBjYW4KLSAgICAvLyBiZSBvbWl0dGVkIGZyb20gbnVtYmVycy4KLSAgICAvLyBMaW1pdGVk
IFF1aXJrcyAtIFRoaXMgbW9kZSBpcyBpZGVudGljYWwgdG8gbm8tcXVpcmtzIG1vZGUgZXhjZXB0
IGZvciBpdHMgdHJlYXRtZW50IG9mIGxpbmUtaGVpZ2h0IGluIHRoZSBpbmxpbmUgYm94IG1vZGVs
LiAgCi0gICAgLy8gTm8gUXVpcmtzIC0gbm8gcXVpcmtzIGFwcGx5LiAgV2ViIHBhZ2VzIHdpbGwg
b2JleSB0aGUgc3BlY2lmaWNhdGlvbnMgdG8gdGhlIGxldHRlci4KLSAgICBEb2N1bWVudFR5cGUq
IGRvY1R5cGUgPSBkb2N0eXBlKCk7Ci0gICAgaWYgKCFkb2NUeXBlKQotICAgICAgICByZXR1cm47
Ci0KLSAgICAvLyBDaGVjayBmb3IgUXVpcmtzIE1vZGUuCi0gICAgY29uc3QgU3RyaW5nJiBwdWJs
aWNJZCA9IGRvY1R5cGUtPnB1YmxpY0lkKCk7Ci0gICAgaWYgKGRvY1R5cGUtPm5hbWUoKSAhPSAi
aHRtbCIKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiKy8vU2lsbWFyaWwvL2R0ZCBo
dG1sIFBybyB2MHIxMSAxOTk3MDEwMS8vIiwgZmFsc2UpCi0gICAgICAgIHx8IHB1YmxpY0lkLnN0
YXJ0c1dpdGgoIi0vL0FkdmFTb2Z0IEx0ZC8vRFREIEhUTUwgMy4wIGFzV2VkaXQgKyBleHRlbnNp
b25zLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vQVMvL0RU
RCBIVE1MIDMuMCBhc1dlZGl0ICsgZXh0ZW5zaW9ucy8vIiwgZmFsc2UpCi0gICAgICAgIHx8IHB1
YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL0lFVEYvL0RURCBIVE1MIDIuMCBMZXZlbCAxLy8iLCBmYWxz
ZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vSUVURi8vRFREIEhUTUwgMi4w
IExldmVsIDIvLyIsIGZhbHNlKQotICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9J
RVRGLy9EVEQgSFRNTCAyLjAgU3RyaWN0IExldmVsIDEvLyIsIGZhbHNlKQotICAgICAgICB8fCBw
dWJsaWNJZC5zdGFydHNXaXRoKCItLy9JRVRGLy9EVEQgSFRNTCAyLjAgU3RyaWN0IExldmVsIDIv
LyIsIGZhbHNlKQotICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9JRVRGLy9EVEQg
SFRNTCAyLjAgU3RyaWN0Ly8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0
aCgiLS8vSUVURi8vRFREIEhUTUwgMi4wLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQu
c3RhcnRzV2l0aCgiLS8vSUVURi8vRFREIEhUTUwgMi4xRS8vIiwgZmFsc2UpCi0gICAgICAgIHx8
IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL0lFVEYvL0RURCBIVE1MIDMuMC8vIiwgZmFsc2UpCi0g
ICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL0lFVEYvL0RURCBIVE1MIDMuMiBGaW5h
bC8vIiwgZmFsc2UpCi0gICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL0lFVEYvL0RU
RCBIVE1MIDMuMi8vIiwgZmFsc2UpCi0gICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0v
L0lFVEYvL0RURCBIVE1MIDMvLyIsIGZhbHNlKQotICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNX
aXRoKCItLy9JRVRGLy9EVEQgSFRNTCBMZXZlbCAwLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVi
bGljSWQuc3RhcnRzV2l0aCgiLS8vSUVURi8vRFREIEhUTUwgTGV2ZWwgMS8vIiwgZmFsc2UpCi0g
ICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL0lFVEYvL0RURCBIVE1MIExldmVsIDIv
LyIsIGZhbHNlKQotICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9JRVRGLy9EVEQg
SFRNTCBMZXZlbCAzLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgi
LS8vSUVURi8vRFREIEhUTUwgU3RyaWN0IExldmVsIDAvLyIsIGZhbHNlKQotICAgICAgICB8fCBw
dWJsaWNJZC5zdGFydHNXaXRoKCItLy9JRVRGLy9EVEQgSFRNTCBTdHJpY3QgTGV2ZWwgMS8vIiwg
ZmFsc2UpCi0gICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL0lFVEYvL0RURCBIVE1M
IFN0cmljdCBMZXZlbCAyLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0
aCgiLS8vSUVURi8vRFREIEhUTUwgU3RyaWN0IExldmVsIDMvLyIsIGZhbHNlKQotICAgICAgICB8
fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9JRVRGLy9EVEQgSFRNTCBTdHJpY3QvLyIsIGZhbHNl
KQotICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9JRVRGLy9EVEQgSFRNTC8vIiwg
ZmFsc2UpCi0gICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL01ldHJpdXMvL0RURCBN
ZXRyaXVzIFByZXNlbnRhdGlvbmFsLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3Rh
cnRzV2l0aCgiLS8vTWljcm9zb2Z0Ly9EVEQgSW50ZXJuZXQgRXhwbG9yZXIgMi4wIEhUTUwgU3Ry
aWN0Ly8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vTWljcm9z
b2Z0Ly9EVEQgSW50ZXJuZXQgRXhwbG9yZXIgMi4wIEhUTUwvLyIsIGZhbHNlKQotICAgICAgICB8
fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9NaWNyb3NvZnQvL0RURCBJbnRlcm5ldCBFeHBsb3Jl
ciAyLjAgVGFibGVzLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgi
LS8vTWljcm9zb2Z0Ly9EVEQgSW50ZXJuZXQgRXhwbG9yZXIgMy4wIEhUTUwgU3RyaWN0Ly8iLCBm
YWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vTWljcm9zb2Z0Ly9EVEQg
SW50ZXJuZXQgRXhwbG9yZXIgMy4wIEhUTUwvLyIsIGZhbHNlKQotICAgICAgICB8fCBwdWJsaWNJ
ZC5zdGFydHNXaXRoKCItLy9NaWNyb3NvZnQvL0RURCBJbnRlcm5ldCBFeHBsb3JlciAzLjAgVGFi
bGVzLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vTmV0c2Nh
cGUgQ29tbS4gQ29ycC4vL0RURCBIVE1MLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQu
c3RhcnRzV2l0aCgiLS8vTmV0c2NhcGUgQ29tbS4gQ29ycC4vL0RURCBTdHJpY3QgSFRNTC8vIiwg
ZmFsc2UpCi0gICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL08nUmVpbGx5IGFuZCBB
c3NvY2lhdGVzLy9EVEQgSFRNTCAyLjAvLyIsIGZhbHNlKQotICAgICAgICB8fCBwdWJsaWNJZC5z
dGFydHNXaXRoKCItLy9PJ1JlaWxseSBhbmQgQXNzb2NpYXRlcy8vRFREIEhUTUwgRXh0ZW5kZWQg
MS4wLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vTydSZWls
bHkgYW5kIEFzc29jaWF0ZXMvL0RURCBIVE1MIEV4dGVuZGVkIFJlbGF4ZWQgMS4wLy8iLCBmYWxz
ZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vU29mdFF1YWQgU29mdHdhcmUv
L0RURCBIb1RNZXRhTCBQUk8gNi4wOjoxOTk5MDYwMTo6ZXh0ZW5zaW9ucyB0byBIVE1MIDQuMC8v
IiwgZmFsc2UpCi0gICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL1NvZnRRdWFkLy9E
VEQgSG9UTWV0YUwgUFJPIDQuMDo6MTk5NzEwMTA6OmV4dGVuc2lvbnMgdG8gSFRNTCA0LjAvLyIs
IGZhbHNlKQotICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9TcHlnbGFzcy8vRFRE
IEhUTUwgMi4wIEV4dGVuZGVkLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRz
V2l0aCgiLS8vU1EvL0RURCBIVE1MIDIuMCBIb1RNZXRhTCArIGV4dGVuc2lvbnMvLyIsIGZhbHNl
KQotICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9TdW4gTWljcm9zeXN0ZW1zIENv
cnAuLy9EVEQgSG90SmF2YSBIVE1MLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3Rh
cnRzV2l0aCgiLS8vU3VuIE1pY3Jvc3lzdGVtcyBDb3JwLi8vRFREIEhvdEphdmEgU3RyaWN0IEhU
TUwvLyIsIGZhbHNlKQotICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9XM0MvL0RU
RCBIVE1MIDMgMTk5NS0wMy0yNC8vIiwgZmFsc2UpCi0gICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0
c1dpdGgoIi0vL1czQy8vRFREIEhUTUwgMy4yIERyYWZ0Ly8iLCBmYWxzZSkKLSAgICAgICAgfHwg
cHVibGljSWQuc3RhcnRzV2l0aCgiLS8vVzNDLy9EVEQgSFRNTCAzLjIgRmluYWwvLyIsIGZhbHNl
KQotICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9XM0MvL0RURCBIVE1MIDMuMi8v
IiwgZmFsc2UpCi0gICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL1czQy8vRFREIEhU
TUwgMy4yUyBEcmFmdC8vIiwgZmFsc2UpCi0gICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgo
Ii0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVi
bGljSWQuc3RhcnRzV2l0aCgiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy8iLCBm
YWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vVzNDLy9EVEQgSFRNTCBF
eHBlcmltZW50YWwgMTk5NjA3MTIvLyIsIGZhbHNlKQotICAgICAgICB8fCBwdWJsaWNJZC5zdGFy
dHNXaXRoKCItLy9XM0MvL0RURCBIVE1MIEV4cGVyaW1lbnRhbCA5NzA0MjEvLyIsIGZhbHNlKQot
ICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9XM0MvL0RURCBXMyBIVE1MLy8iLCBm
YWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vVzNPLy9EVEQgVzMgSFRN
TCAzLjAvLyIsIGZhbHNlKQotICAgICAgICB8fCBlcXVhbElnbm9yaW5nQ2FzZShwdWJsaWNJZCwg
Ii0vL1czTy8vRFREIFczIEhUTUwgU3RyaWN0IDMuMC8vRU4vLyIpCi0gICAgICAgIHx8IHB1Ymxp
Y0lkLnN0YXJ0c1dpdGgoIi0vL1dlYlRlY2hzLy9EVEQgTW96aWxsYSBIVE1MIDIuMC8vIiwgZmFs
c2UpCi0gICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL1dlYlRlY2hzLy9EVEQgTW96
aWxsYSBIVE1MLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgZXF1YWxJZ25vcmluZ0Nhc2UocHVibGlj
SWQsICItL1czQy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsL0VOIikKLSAgICAgICAgfHwgZXF1
YWxJZ25vcmluZ0Nhc2UocHVibGljSWQsICJIVE1MIikKLSAgICAgICAgfHwgZXF1YWxJZ25vcmlu
Z0Nhc2UoZG9jVHlwZS0+c3lzdGVtSWQoKSwgImh0dHA6Ly93d3cuaWJtLmNvbS9kYXRhL2R0ZC92
MTEvaWJteGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiKQotICAgICAgICB8fCAoZG9jVHlwZS0+c3lz
dGVtSWQoKS5pc0VtcHR5KCkgJiYgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vVzNDLy9EVEQgSFRN
TCA0LjAxIEZyYW1lc2V0Ly8iLCBmYWxzZSkpCi0gICAgICAgIHx8IChkb2NUeXBlLT5zeXN0ZW1J
ZCgpLmlzRW1wdHkoKSAmJiBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9XM0MvL0RURCBIVE1MIDQu
MDEgVHJhbnNpdGlvbmFsLy8iLCBmYWxzZSkpKSB7Ci0gICAgICAgIHNldENvbXBhdGliaWxpdHlN
b2RlKFF1aXJrc01vZGUpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgLy8gQ2hlY2sg
Zm9yIExpbWl0ZWQgUXVpcmtzIE1vZGUuCi0gICAgaWYgKHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0v
L1czQy8vRFREIFhIVE1MIDEuMCBGcmFtZXNldC8vIiwgZmFsc2UpCi0gICAgICAgIHx8IHB1Ymxp
Y0lkLnN0YXJ0c1dpdGgoIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvLyIsIGZh
bHNlKQotICAgICAgICB8fCAoIWRvY1R5cGUtPnN5c3RlbUlkKCkuaXNFbXB0eSgpICYmIHB1Ymxp
Y0lkLnN0YXJ0c1dpdGgoIi0vL1czQy8vRFREIEhUTUwgNC4wMSBGcmFtZXNldC8vIiwgZmFsc2Up
KQotICAgICAgICB8fCAoIWRvY1R5cGUtPnN5c3RlbUlkKCkuaXNFbXB0eSgpICYmIHB1YmxpY0lk
LnN0YXJ0c1dpdGgoIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvLyIsIGZhbHNl
KSkpIHsKLSAgICAgICAgc2V0Q29tcGF0aWJpbGl0eU1vZGUoTGltaXRlZFF1aXJrc01vZGUpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgLy8gT3RoZXJ3aXNlIHdlIGFyZSBObyBRdWly
a3MgTW9kZS4KLSAgICBzZXRDb21wYXRpYmlsaXR5TW9kZShOb1F1aXJrc01vZGUpOwotICAgIHJl
dHVybjsKLX0KLQogdm9pZCBIVE1MRG9jdW1lbnQ6OmNsZWFyKCkKIHsKICAgICAvLyBGSVhNRTog
VGhpcyBkb2VzIG5vdGhpbmcsIGFuZCB0aGF0IHNlZW1zIHVubGlrZWx5IHRvIGJlIGNvcnJlY3Qu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaAppbmRleCBkMzlmMzkyYWFhNDJiODE5Mzc0YTVh
MWFhYWMyMjY1MTNiNDU5NzVmLi5mZjdjZmIzZTE3ZTA0NDI2OGMwZmE5OWQwYzI5OWUzNGEyZWQ2
MDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmgKQEAgLTUwLDggKzUwLDYgQEAgcHVi
bGljOgogICAgIFN0cmluZyBkZXNpZ25Nb2RlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXREZXNpZ25N
b2RlKGNvbnN0IFN0cmluZyYpOwogCi0gICAgdmlydHVhbCB2b2lkIHNldENvbXBhdGliaWxpdHlN
b2RlRnJvbURvY3R5cGUoKTsKLQogICAgIEVsZW1lbnQqIGFjdGl2ZUVsZW1lbnQoKTsKICAgICBi
b29sIGhhc0ZvY3VzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxDb25zdHJ1Y3Rpb25TaXRlLmNwcAppbmRleCBhODkyMWUwMDFmMTk3YWI5Nzc1ZmQxN2VjY2Q4
MGNlM2ExZWQxZGQzLi5mODM0OWEyZjJjNzEwYmQ0NmRjZjM1OGMxMTc0Mjc5NTEzNWJhYTY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNp
dGUuY3BwCkBAIC0xNDQsNiArMTQ0LDcgQEAgSFRNTENvbnN0cnVjdGlvblNpdGU6OkhUTUxDb25z
dHJ1Y3Rpb25TaXRlKERvY3VtZW50KiBkb2N1bWVudCwgdW5zaWduZWQgbWF4aW11bUQKICAgICAs
IG1faXNQYXJzaW5nRnJhZ21lbnQoZmFsc2UpCiAgICAgLCBtX3JlZGlyZWN0QXR0YWNoVG9Gb3N0
ZXJQYXJlbnQoZmFsc2UpCiAgICAgLCBtX21heGltdW1ET01UcmVlRGVwdGgobWF4aW11bURPTVRy
ZWVEZXB0aCkKKyAgICAsIG1faW5RdWlya3NNb2RlKGRvY3VtZW50LT5pblF1aXJrc01vZGUoKSkK
IHsKIH0KIApAQCAtMTU0LDYgKzE1NSw3IEBAIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpIVE1MQ29u
c3RydWN0aW9uU2l0ZShEb2N1bWVudEZyYWdtZW50KiBmcmFnbWVudCwgRnJhZ21lbnRTCiAgICAg
LCBtX2lzUGFyc2luZ0ZyYWdtZW50KHRydWUpCiAgICAgLCBtX3JlZGlyZWN0QXR0YWNoVG9Gb3N0
ZXJQYXJlbnQoZmFsc2UpCiAgICAgLCBtX21heGltdW1ET01UcmVlRGVwdGgobWF4aW11bURPTVRy
ZWVEZXB0aCkKKyAgICAsIG1faW5RdWlya3NNb2RlKGZyYWdtZW50LT5kb2N1bWVudCgpLT5pblF1
aXJrc01vZGUoKSkKIHsKIH0KIApAQCAtMjMxLDcgKzIzMywxMDUgQEAgdm9pZCBIVE1MQ29uc3Ry
dWN0aW9uU2l0ZTo6c2V0RGVmYXVsdENvbXBhdGliaWxpdHlNb2RlKCkKICAgICAgICAgcmV0dXJu
OwogICAgIGlmIChtX2RvY3VtZW50LT5pc1NyY2RvY0RvY3VtZW50KCkpCiAgICAgICAgIHJldHVy
bjsKLSAgICBtX2RvY3VtZW50LT5zZXRDb21wYXRpYmlsaXR5TW9kZShEb2N1bWVudDo6UXVpcmtz
TW9kZSk7CisgICAgc2V0Q29tcGF0aWJpbGl0eU1vZGUoRG9jdW1lbnQ6OlF1aXJrc01vZGUpOwor
fQorCit2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpzZXRDb21wYXRpYmlsaXR5TW9kZShEb2N1
bWVudDo6Q29tcGF0aWJpbGl0eU1vZGUgbW9kZSkKK3sKKyAgICBtX2luUXVpcmtzTW9kZSA9ICht
b2RlID09IERvY3VtZW50OjpRdWlya3NNb2RlKTsKKyAgICBtX2RvY3VtZW50LT5zZXRDb21wYXRp
YmlsaXR5TW9kZShtb2RlKTsKK30KKwordm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6c2V0Q29t
cGF0aWJpbGl0eU1vZGVGcm9tRG9jdHlwZShEb2N1bWVudFR5cGUqIGRvY1R5cGUpCit7CisgICAg
Ly8gVGhlcmUgYXJlIHRocmVlIHBvc3NpYmxlIGNvbXBhdGliaWxpdHkgbW9kZXM6CisgICAgLy8g
UXVpcmtzIC0gcXVpcmtzIG1vZGUgZW11bGF0ZXMgV2luSUUgYW5kIE5TNC4gQ1NTIHBhcnNpbmcg
aXMgYWxzbyByZWxheGVkIGluIHRoaXMgbW9kZSwgZS5nLiwgdW5pdCB0eXBlcyBjYW4KKyAgICAv
LyBiZSBvbWl0dGVkIGZyb20gbnVtYmVycy4KKyAgICAvLyBMaW1pdGVkIFF1aXJrcyAtIFRoaXMg
bW9kZSBpcyBpZGVudGljYWwgdG8gbm8tcXVpcmtzIG1vZGUgZXhjZXB0IGZvciBpdHMgdHJlYXRt
ZW50IG9mIGxpbmUtaGVpZ2h0IGluIHRoZSBpbmxpbmUgYm94IG1vZGVsLiAgCisgICAgLy8gTm8g
UXVpcmtzIC0gbm8gcXVpcmtzIGFwcGx5LiBXZWIgcGFnZXMgd2lsbCBvYmV5IHRoZSBzcGVjaWZp
Y2F0aW9ucyB0byB0aGUgbGV0dGVyLgorICAgIGlmICghZG9jVHlwZSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgLy8gQ2hlY2sgZm9yIFF1aXJrcyBNb2RlLgorICAgIGNvbnN0IFN0cmluZyYgcHVi
bGljSWQgPSBkb2NUeXBlLT5wdWJsaWNJZCgpOworICAgIGlmIChkb2NUeXBlLT5uYW1lKCkgIT0g
Imh0bWwiCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIisvL1NpbG1hcmlsLy9kdGQg
aHRtbCBQcm8gdjByMTEgMTk5NzAxMDEvLyIsIGZhbHNlKQorICAgICAgICB8fCBwdWJsaWNJZC5z
dGFydHNXaXRoKCItLy9BZHZhU29mdCBMdGQvL0RURCBIVE1MIDMuMCBhc1dlZGl0ICsgZXh0ZW5z
aW9ucy8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL0FTLy9E
VEQgSFRNTCAzLjAgYXNXZWRpdCArIGV4dGVuc2lvbnMvLyIsIGZhbHNlKQorICAgICAgICB8fCBw
dWJsaWNJZC5zdGFydHNXaXRoKCItLy9JRVRGLy9EVEQgSFRNTCAyLjAgTGV2ZWwgMS8vIiwgZmFs
c2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL0lFVEYvL0RURCBIVE1MIDIu
MCBMZXZlbCAyLy8iLCBmYWxzZSkKKyAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8v
SUVURi8vRFREIEhUTUwgMi4wIFN0cmljdCBMZXZlbCAxLy8iLCBmYWxzZSkKKyAgICAgICAgfHwg
cHVibGljSWQuc3RhcnRzV2l0aCgiLS8vSUVURi8vRFREIEhUTUwgMi4wIFN0cmljdCBMZXZlbCAy
Ly8iLCBmYWxzZSkKKyAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vSUVURi8vRFRE
IEhUTUwgMi4wIFN0cmljdC8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dp
dGgoIi0vL0lFVEYvL0RURCBIVE1MIDIuMC8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lk
LnN0YXJ0c1dpdGgoIi0vL0lFVEYvL0RURCBIVE1MIDIuMUUvLyIsIGZhbHNlKQorICAgICAgICB8
fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9JRVRGLy9EVEQgSFRNTCAzLjAvLyIsIGZhbHNlKQor
ICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9JRVRGLy9EVEQgSFRNTCAzLjIgRmlu
YWwvLyIsIGZhbHNlKQorICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9JRVRGLy9E
VEQgSFRNTCAzLjIvLyIsIGZhbHNlKQorICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCIt
Ly9JRVRGLy9EVEQgSFRNTCAzLy8iLCBmYWxzZSkKKyAgICAgICAgfHwgcHVibGljSWQuc3RhcnRz
V2l0aCgiLS8vSUVURi8vRFREIEhUTUwgTGV2ZWwgMC8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1
YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL0lFVEYvL0RURCBIVE1MIExldmVsIDEvLyIsIGZhbHNlKQor
ICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9JRVRGLy9EVEQgSFRNTCBMZXZlbCAy
Ly8iLCBmYWxzZSkKKyAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vSUVURi8vRFRE
IEhUTUwgTGV2ZWwgMy8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgo
Ii0vL0lFVEYvL0RURCBIVE1MIFN0cmljdCBMZXZlbCAwLy8iLCBmYWxzZSkKKyAgICAgICAgfHwg
cHVibGljSWQuc3RhcnRzV2l0aCgiLS8vSUVURi8vRFREIEhUTUwgU3RyaWN0IExldmVsIDEvLyIs
IGZhbHNlKQorICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9JRVRGLy9EVEQgSFRN
TCBTdHJpY3QgTGV2ZWwgMi8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dp
dGgoIi0vL0lFVEYvL0RURCBIVE1MIFN0cmljdCBMZXZlbCAzLy8iLCBmYWxzZSkKKyAgICAgICAg
fHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vSUVURi8vRFREIEhUTUwgU3RyaWN0Ly8iLCBmYWxz
ZSkKKyAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vSUVURi8vRFREIEhUTUwvLyIs
IGZhbHNlKQorICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9NZXRyaXVzLy9EVEQg
TWV0cml1cyBQcmVzZW50YXRpb25hbC8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0
YXJ0c1dpdGgoIi0vL01pY3Jvc29mdC8vRFREIEludGVybmV0IEV4cGxvcmVyIDIuMCBIVE1MIFN0
cmljdC8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL01pY3Jv
c29mdC8vRFREIEludGVybmV0IEV4cGxvcmVyIDIuMCBIVE1MLy8iLCBmYWxzZSkKKyAgICAgICAg
fHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vTWljcm9zb2Z0Ly9EVEQgSW50ZXJuZXQgRXhwbG9y
ZXIgMi4wIFRhYmxlcy8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgo
Ii0vL01pY3Jvc29mdC8vRFREIEludGVybmV0IEV4cGxvcmVyIDMuMCBIVE1MIFN0cmljdC8vIiwg
ZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL01pY3Jvc29mdC8vRFRE
IEludGVybmV0IEV4cGxvcmVyIDMuMCBIVE1MLy8iLCBmYWxzZSkKKyAgICAgICAgfHwgcHVibGlj
SWQuc3RhcnRzV2l0aCgiLS8vTWljcm9zb2Z0Ly9EVEQgSW50ZXJuZXQgRXhwbG9yZXIgMy4wIFRh
Ymxlcy8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL05ldHNj
YXBlIENvbW0uIENvcnAuLy9EVEQgSFRNTC8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lk
LnN0YXJ0c1dpdGgoIi0vL05ldHNjYXBlIENvbW0uIENvcnAuLy9EVEQgU3RyaWN0IEhUTUwvLyIs
IGZhbHNlKQorICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9PJ1JlaWxseSBhbmQg
QXNzb2NpYXRlcy8vRFREIEhUTUwgMi4wLy8iLCBmYWxzZSkKKyAgICAgICAgfHwgcHVibGljSWQu
c3RhcnRzV2l0aCgiLS8vTydSZWlsbHkgYW5kIEFzc29jaWF0ZXMvL0RURCBIVE1MIEV4dGVuZGVk
IDEuMC8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL08nUmVp
bGx5IGFuZCBBc3NvY2lhdGVzLy9EVEQgSFRNTCBFeHRlbmRlZCBSZWxheGVkIDEuMC8vIiwgZmFs
c2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL1NvZnRRdWFkIFNvZnR3YXJl
Ly9EVEQgSG9UTWV0YUwgUFJPIDYuMDo6MTk5OTA2MDE6OmV4dGVuc2lvbnMgdG8gSFRNTCA0LjAv
LyIsIGZhbHNlKQorICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9Tb2Z0UXVhZC8v
RFREIEhvVE1ldGFMIFBSTyA0LjA6OjE5OTcxMDEwOjpleHRlbnNpb25zIHRvIEhUTUwgNC4wLy8i
LCBmYWxzZSkKKyAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vU3B5Z2xhc3MvL0RU
RCBIVE1MIDIuMCBFeHRlbmRlZC8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0
c1dpdGgoIi0vL1NRLy9EVEQgSFRNTCAyLjAgSG9UTWV0YUwgKyBleHRlbnNpb25zLy8iLCBmYWxz
ZSkKKyAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vU3VuIE1pY3Jvc3lzdGVtcyBD
b3JwLi8vRFREIEhvdEphdmEgSFRNTC8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0
YXJ0c1dpdGgoIi0vL1N1biBNaWNyb3N5c3RlbXMgQ29ycC4vL0RURCBIb3RKYXZhIFN0cmljdCBI
VE1MLy8iLCBmYWxzZSkKKyAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vVzNDLy9E
VEQgSFRNTCAzIDE5OTUtMDMtMjQvLyIsIGZhbHNlKQorICAgICAgICB8fCBwdWJsaWNJZC5zdGFy
dHNXaXRoKCItLy9XM0MvL0RURCBIVE1MIDMuMiBEcmFmdC8vIiwgZmFsc2UpCisgICAgICAgIHx8
IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy8iLCBmYWxz
ZSkKKyAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vVzNDLy9EVEQgSFRNTCAzLjIv
LyIsIGZhbHNlKQorICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9XM0MvL0RURCBI
VE1MIDMuMlMgRHJhZnQvLyIsIGZhbHNlKQorICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRo
KCItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1
YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vIiwg
ZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL1czQy8vRFREIEhUTUwg
RXhwZXJpbWVudGFsIDE5OTYwNzEyLy8iLCBmYWxzZSkKKyAgICAgICAgfHwgcHVibGljSWQuc3Rh
cnRzV2l0aCgiLS8vVzNDLy9EVEQgSFRNTCBFeHBlcmltZW50YWwgOTcwNDIxLy8iLCBmYWxzZSkK
KyAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vVzNDLy9EVEQgVzMgSFRNTC8vIiwg
ZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL1czTy8vRFREIFczIEhU
TUwgMy4wLy8iLCBmYWxzZSkKKyAgICAgICAgfHwgZXF1YWxJZ25vcmluZ0Nhc2UocHVibGljSWQs
ICItLy9XM08vL0RURCBXMyBIVE1MIFN0cmljdCAzLjAvL0VOLy8iKQorICAgICAgICB8fCBwdWJs
aWNJZC5zdGFydHNXaXRoKCItLy9XZWJUZWNocy8vRFREIE1vemlsbGEgSFRNTCAyLjAvLyIsIGZh
bHNlKQorICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9XZWJUZWNocy8vRFREIE1v
emlsbGEgSFRNTC8vIiwgZmFsc2UpCisgICAgICAgIHx8IGVxdWFsSWdub3JpbmdDYXNlKHB1Ymxp
Y0lkLCAiLS9XM0MvRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC9FTiIpCisgICAgICAgIHx8IGVx
dWFsSWdub3JpbmdDYXNlKHB1YmxpY0lkLCAiSFRNTCIpCisgICAgICAgIHx8IGVxdWFsSWdub3Jp
bmdDYXNlKGRvY1R5cGUtPnN5c3RlbUlkKCksICJodHRwOi8vd3d3LmlibS5jb20vZGF0YS9kdGQv
djExL2libXhodG1sMS10cmFuc2l0aW9uYWwuZHRkIikKKyAgICAgICAgfHwgKGRvY1R5cGUtPnN5
c3RlbUlkKCkuaXNFbXB0eSgpICYmIHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL1czQy8vRFREIEhU
TUwgNC4wMSBGcmFtZXNldC8vIiwgZmFsc2UpKQorICAgICAgICB8fCAoZG9jVHlwZS0+c3lzdGVt
SWQoKS5pc0VtcHR5KCkgJiYgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vVzNDLy9EVEQgSFRNTCA0
LjAxIFRyYW5zaXRpb25hbC8vIiwgZmFsc2UpKSkgeworICAgICAgICBzZXRDb21wYXRpYmlsaXR5
TW9kZShEb2N1bWVudDo6UXVpcmtzTW9kZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICAvLyBDaGVjayBmb3IgTGltaXRlZCBRdWlya3MgTW9kZS4KKyAgICBpZiAocHVibGljSWQuc3Rh
cnRzV2l0aCgiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIEZyYW1lc2V0Ly8iLCBmYWxzZSkKKyAgICAg
ICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRp
b25hbC8vIiwgZmFsc2UpCisgICAgICAgIHx8ICghZG9jVHlwZS0+c3lzdGVtSWQoKS5pc0VtcHR5
KCkgJiYgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIEZyYW1lc2V0
Ly8iLCBmYWxzZSkpCisgICAgICAgIHx8ICghZG9jVHlwZS0+c3lzdGVtSWQoKS5pc0VtcHR5KCkg
JiYgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25h
bC8vIiwgZmFsc2UpKSkgeworICAgICAgICBzZXRDb21wYXRpYmlsaXR5TW9kZShEb2N1bWVudDo6
TGltaXRlZFF1aXJrc01vZGUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gT3Ro
ZXJ3aXNlIHdlIGFyZSBObyBRdWlya3MgTW9kZS4KKyAgICBzZXRDb21wYXRpYmlsaXR5TW9kZShE
b2N1bWVudDo6Tm9RdWlya3NNb2RlKTsKKyAgICByZXR1cm47CiB9CiAKIHZvaWQgSFRNTENvbnN0
cnVjdGlvblNpdGU6OmZpbmlzaGVkUGFyc2luZygpCkBAIC0yNTYsMTEgKzM1NiwxMSBAQCB2b2lk
IEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnREb2N0eXBlKEF0b21pY0hUTUxUb2tlbiogdG9r
ZW4pCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICh0b2tlbi0+Zm9yY2VRdWlya3MoKSkKLSAg
ICAgICAgbV9kb2N1bWVudC0+c2V0Q29tcGF0aWJpbGl0eU1vZGUoRG9jdW1lbnQ6OlF1aXJrc01v
ZGUpOworICAgICAgICBzZXRDb21wYXRpYmlsaXR5TW9kZShEb2N1bWVudDo6UXVpcmtzTW9kZSk7
CiAgICAgZWxzZSB7CiAgICAgICAgIC8vIFdlIG5lZWQgdG8gYWN0dWFsbHkgYWRkIHRoZSBEb2N0
eXBlIG5vZGUgdG8gdGhlIERPTS4KICAgICAgICAgZXhlY3V0ZVF1ZXVlZFRhc2tzKCk7Ci0gICAg
ICAgIG1fZG9jdW1lbnQtPnNldENvbXBhdGliaWxpdHlNb2RlRnJvbURvY3R5cGUoKTsKKyAgICAg
ICAgc2V0Q29tcGF0aWJpbGl0eU1vZGVGcm9tRG9jdHlwZShtX2RvY3VtZW50LT5kb2N0eXBlKCkp
OwogICAgIH0KIH0KIApAQCAtNDk2LDggKzU5Niw3IEBAIHZvaWQgSFRNTENvbnN0cnVjdGlvblNp
dGU6OmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKQogCiBib29sIEhUTUxDb25zdHJ1Y3Rpb25TaXRl
OjppblF1aXJrc01vZGUoKQogewotICAgIC8vIFdoZW4gd2UgbW92ZSB0aGUgcGFyc2VyIG9udG8g
YSBiYWNrZ3JvdW5kIHRocmVhZCwgd2UnbGwgbmVlZCB0byBrZWVwIHRyYWNrIG9mIHRoaXMgYml0
IG9uIHRoZSBwYXJzZXIgdGhyZWFkLgotICAgIHJldHVybiBtX2RvY3VtZW50LT5pblF1aXJrc01v
ZGUoKTsKKyAgICByZXR1cm4gbV9pblF1aXJrc01vZGU7CiB9CiAKIHZvaWQgSFRNTENvbnN0cnVj
dGlvblNpdGU6OmZpbmRGb3N0ZXJTaXRlKEhUTUxDb25zdHJ1Y3Rpb25TaXRlVGFzayYgdGFzaykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25T
aXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5o
CmluZGV4IGI5NmY1MDc3YWVjNWUxZWUzZGZmNzQ0ZWY3NjgwZmFjMzUyZDA2NGIuLjdiOWY5N2Nk
Y2RiNzIyMmMxMTljYzljMTRjMDdlNGEyNTUwYjM3MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuaApAQCAtODAsNiArODAsOSBAQCBw
dWJsaWM6CiAgICAgdm9pZCBleGVjdXRlUXVldWVkVGFza3MoKTsKIAogICAgIHZvaWQgc2V0RGVm
YXVsdENvbXBhdGliaWxpdHlNb2RlKCk7CisgICAgdm9pZCBzZXRDb21wYXRpYmlsaXR5TW9kZShE
b2N1bWVudDo6Q29tcGF0aWJpbGl0eU1vZGUpOworICAgIHZvaWQgc2V0Q29tcGF0aWJpbGl0eU1v
ZGVGcm9tRG9jdHlwZShEb2N1bWVudFR5cGUqKTsKKwogICAgIHZvaWQgZmluaXNoZWRQYXJzaW5n
KCk7CiAKICAgICB2b2lkIGluc2VydERvY3R5cGUoQXRvbWljSFRNTFRva2VuKik7CkBAIC0xOTAs
NiArMTkzLDggQEAgcHJpdmF0ZToKICAgICBib29sIG1fcmVkaXJlY3RBdHRhY2hUb0Zvc3RlclBh
cmVudDsKIAogICAgIHVuc2lnbmVkIG1fbWF4aW11bURPTVRyZWVEZXB0aDsKKworICAgIGJvb2wg
bV9pblF1aXJrc01vZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181767</attachid>
            <date>2013-01-08 14:26:08 -0800</date>
            <delta_ts>2013-01-08 15:32:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106375-20130108142312.patch</filename>
            <type>text/plain</type>
            <size>18791</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5MDgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjJhZTNhM2Q5MmQyYzZj
OWNiYTdiZmU5NjIxMTk1MTc0ZTY1ZDRiZi4uOWE1MDRlYzA1NzVhM2JjMTA5MWFlZjhlMDUxODg3
NjVhYTE0YTIwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEzLTAxLTA4ICBUb255
IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVtb3ZlIGRlcGVu
ZGVuY3kgb24gRG9jdW1lbnQgZnJvbSBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5RdWlya3NNb2Rl
KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjM3
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
aXMgYW5vdGhlciBzdGVwIHRvd2FyZHMgcmVtb3ZpbmcgbWFpbiB0aHJlYWQgb2JqZWN0IGRlcGVu
ZGVuY2llcworICAgICAgICBmcm9tIHRoZSBwYXJzZXIuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
IGJlY2F1c2Ugbm8gbmV3IGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
aDoKKyAgICAgICAgKiBodG1sL0hUTUxEb2N1bWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1M
RG9jdW1lbnQuaDoKKyAgICAgICAgKEhUTUxEb2N1bWVudCk6CisgICAgICAgICogaHRtbC9wYXJz
ZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0
cnVjdGlvblNpdGU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxDb25zdHJ1Y3Rpb25TaXRlOjpzZXREZWZhdWx0Q29tcGF0aWJpbGl0eU1vZGUpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6c2V0
Q29tcGF0aWJpbGl0eU1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlvblNp
dGU6OnNldENvbXBhdGliaWxpdHlNb2RlRnJvbURvY3R5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydERvY3R5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTENvbnN0cnVjdGlvblNpdGU6OmluUXVpcmtzTW9kZSk6CisgICAgICAgICogaHRtbC9wYXJz
ZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuaDoKKyAgICAgICAgKEhUTUxDb25zdHJ1Y3Rpb25TaXRl
KToKKwogMjAxMy0wMS0wOCAgWmFuIERvYmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwuY29tPgog
CiAgICAgICAgIFtHVEtdIEJ1aWxkIGZhaWx1cmVzIHdoZW4gYnVpbGRpbmcgd2l0aCBweXRob24g
My4zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGU5Y2M3MWIxYTQ2MjgwYTY0NjcyZDA4MmQ3NDJi
MzczOWJlZjkzMTguLmEzOGI1YjVlNDdmNjg3YjUzNTE4YzY2ZWRkMGVhNTYwMzMxYTc3ODggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCkBAIC02MzYsNyArNjM2LDYgQEAgcHVibGljOgogCiAgICAgZW51
bSBDb21wYXRpYmlsaXR5TW9kZSB7IFF1aXJrc01vZGUsIExpbWl0ZWRRdWlya3NNb2RlLCBOb1F1
aXJrc01vZGUgfTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRDb21wYXRpYmlsaXR5TW9kZUZyb21E
b2N0eXBlKCkgeyB9CiAgICAgdm9pZCBzZXRDb21wYXRpYmlsaXR5TW9kZShDb21wYXRpYmlsaXR5
TW9kZSBtKTsKICAgICB2b2lkIGxvY2tDb21wYXRpYmlsaXR5TW9kZSgpIHsgbV9jb21wYXRpYmls
aXR5TW9kZUxvY2tlZCA9IHRydWU7IH0KICAgICBDb21wYXRpYmlsaXR5TW9kZSBjb21wYXRpYmls
aXR5TW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29tcGF0aWJpbGl0eU1vZGU7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTERvY3VtZW50LmNwcAppbmRleCBiOWQ3NjdlMzA0YmM5YTVjMGQzYzY0MDc1OTg1
ODczYTdjMzRjMjRkLi40YTc1Mjc4MjA5OTkwZTdkOWQ1MjFlYmE1YmU0OWJhN2NkNWY5ZTA2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuY3BwCkBAIC0zMzIsOTkgKzMzMiw2IEBAIHZv
aWQgSFRNTERvY3VtZW50OjpyZW1vdmVFeHRyYU5hbWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmcm
IG5hbWUpCiAgICAgcmVtb3ZlSXRlbUZyb21NYXAobV9leHRyYU5hbWVkSXRlbUNvdW50cywgbmFt
ZSk7CiB9CiAKLXZvaWQgSFRNTERvY3VtZW50OjpzZXRDb21wYXRpYmlsaXR5TW9kZUZyb21Eb2N0
eXBlKCkKLXsKLSAgICAvLyBUaGVyZSBhcmUgdGhyZWUgcG9zc2libGUgY29tcGF0aWJpbGl0eSBt
b2RlczoKLSAgICAvLyBRdWlya3MgLSBxdWlya3MgbW9kZSBlbXVsYXRlcyBXaW5JRSBhbmQgTlM0
LiAgQ1NTIHBhcnNpbmcgaXMgYWxzbyByZWxheGVkIGluIHRoaXMgbW9kZSwgZS5nLiwgdW5pdCB0
eXBlcyBjYW4KLSAgICAvLyBiZSBvbWl0dGVkIGZyb20gbnVtYmVycy4KLSAgICAvLyBMaW1pdGVk
IFF1aXJrcyAtIFRoaXMgbW9kZSBpcyBpZGVudGljYWwgdG8gbm8tcXVpcmtzIG1vZGUgZXhjZXB0
IGZvciBpdHMgdHJlYXRtZW50IG9mIGxpbmUtaGVpZ2h0IGluIHRoZSBpbmxpbmUgYm94IG1vZGVs
LiAgCi0gICAgLy8gTm8gUXVpcmtzIC0gbm8gcXVpcmtzIGFwcGx5LiAgV2ViIHBhZ2VzIHdpbGwg
b2JleSB0aGUgc3BlY2lmaWNhdGlvbnMgdG8gdGhlIGxldHRlci4KLSAgICBEb2N1bWVudFR5cGUq
IGRvY1R5cGUgPSBkb2N0eXBlKCk7Ci0gICAgaWYgKCFkb2NUeXBlKQotICAgICAgICByZXR1cm47
Ci0KLSAgICAvLyBDaGVjayBmb3IgUXVpcmtzIE1vZGUuCi0gICAgY29uc3QgU3RyaW5nJiBwdWJs
aWNJZCA9IGRvY1R5cGUtPnB1YmxpY0lkKCk7Ci0gICAgaWYgKGRvY1R5cGUtPm5hbWUoKSAhPSAi
aHRtbCIKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiKy8vU2lsbWFyaWwvL2R0ZCBo
dG1sIFBybyB2MHIxMSAxOTk3MDEwMS8vIiwgZmFsc2UpCi0gICAgICAgIHx8IHB1YmxpY0lkLnN0
YXJ0c1dpdGgoIi0vL0FkdmFTb2Z0IEx0ZC8vRFREIEhUTUwgMy4wIGFzV2VkaXQgKyBleHRlbnNp
b25zLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vQVMvL0RU
RCBIVE1MIDMuMCBhc1dlZGl0ICsgZXh0ZW5zaW9ucy8vIiwgZmFsc2UpCi0gICAgICAgIHx8IHB1
YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL0lFVEYvL0RURCBIVE1MIDIuMCBMZXZlbCAxLy8iLCBmYWxz
ZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vSUVURi8vRFREIEhUTUwgMi4w
IExldmVsIDIvLyIsIGZhbHNlKQotICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9J
RVRGLy9EVEQgSFRNTCAyLjAgU3RyaWN0IExldmVsIDEvLyIsIGZhbHNlKQotICAgICAgICB8fCBw
dWJsaWNJZC5zdGFydHNXaXRoKCItLy9JRVRGLy9EVEQgSFRNTCAyLjAgU3RyaWN0IExldmVsIDIv
LyIsIGZhbHNlKQotICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9JRVRGLy9EVEQg
SFRNTCAyLjAgU3RyaWN0Ly8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0
aCgiLS8vSUVURi8vRFREIEhUTUwgMi4wLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQu
c3RhcnRzV2l0aCgiLS8vSUVURi8vRFREIEhUTUwgMi4xRS8vIiwgZmFsc2UpCi0gICAgICAgIHx8
IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL0lFVEYvL0RURCBIVE1MIDMuMC8vIiwgZmFsc2UpCi0g
ICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL0lFVEYvL0RURCBIVE1MIDMuMiBGaW5h
bC8vIiwgZmFsc2UpCi0gICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL0lFVEYvL0RU
RCBIVE1MIDMuMi8vIiwgZmFsc2UpCi0gICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0v
L0lFVEYvL0RURCBIVE1MIDMvLyIsIGZhbHNlKQotICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNX
aXRoKCItLy9JRVRGLy9EVEQgSFRNTCBMZXZlbCAwLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVi
bGljSWQuc3RhcnRzV2l0aCgiLS8vSUVURi8vRFREIEhUTUwgTGV2ZWwgMS8vIiwgZmFsc2UpCi0g
ICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL0lFVEYvL0RURCBIVE1MIExldmVsIDIv
LyIsIGZhbHNlKQotICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9JRVRGLy9EVEQg
SFRNTCBMZXZlbCAzLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgi
LS8vSUVURi8vRFREIEhUTUwgU3RyaWN0IExldmVsIDAvLyIsIGZhbHNlKQotICAgICAgICB8fCBw
dWJsaWNJZC5zdGFydHNXaXRoKCItLy9JRVRGLy9EVEQgSFRNTCBTdHJpY3QgTGV2ZWwgMS8vIiwg
ZmFsc2UpCi0gICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL0lFVEYvL0RURCBIVE1M
IFN0cmljdCBMZXZlbCAyLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0
aCgiLS8vSUVURi8vRFREIEhUTUwgU3RyaWN0IExldmVsIDMvLyIsIGZhbHNlKQotICAgICAgICB8
fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9JRVRGLy9EVEQgSFRNTCBTdHJpY3QvLyIsIGZhbHNl
KQotICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9JRVRGLy9EVEQgSFRNTC8vIiwg
ZmFsc2UpCi0gICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL01ldHJpdXMvL0RURCBN
ZXRyaXVzIFByZXNlbnRhdGlvbmFsLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3Rh
cnRzV2l0aCgiLS8vTWljcm9zb2Z0Ly9EVEQgSW50ZXJuZXQgRXhwbG9yZXIgMi4wIEhUTUwgU3Ry
aWN0Ly8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vTWljcm9z
b2Z0Ly9EVEQgSW50ZXJuZXQgRXhwbG9yZXIgMi4wIEhUTUwvLyIsIGZhbHNlKQotICAgICAgICB8
fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9NaWNyb3NvZnQvL0RURCBJbnRlcm5ldCBFeHBsb3Jl
ciAyLjAgVGFibGVzLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgi
LS8vTWljcm9zb2Z0Ly9EVEQgSW50ZXJuZXQgRXhwbG9yZXIgMy4wIEhUTUwgU3RyaWN0Ly8iLCBm
YWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vTWljcm9zb2Z0Ly9EVEQg
SW50ZXJuZXQgRXhwbG9yZXIgMy4wIEhUTUwvLyIsIGZhbHNlKQotICAgICAgICB8fCBwdWJsaWNJ
ZC5zdGFydHNXaXRoKCItLy9NaWNyb3NvZnQvL0RURCBJbnRlcm5ldCBFeHBsb3JlciAzLjAgVGFi
bGVzLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vTmV0c2Nh
cGUgQ29tbS4gQ29ycC4vL0RURCBIVE1MLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQu
c3RhcnRzV2l0aCgiLS8vTmV0c2NhcGUgQ29tbS4gQ29ycC4vL0RURCBTdHJpY3QgSFRNTC8vIiwg
ZmFsc2UpCi0gICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL08nUmVpbGx5IGFuZCBB
c3NvY2lhdGVzLy9EVEQgSFRNTCAyLjAvLyIsIGZhbHNlKQotICAgICAgICB8fCBwdWJsaWNJZC5z
dGFydHNXaXRoKCItLy9PJ1JlaWxseSBhbmQgQXNzb2NpYXRlcy8vRFREIEhUTUwgRXh0ZW5kZWQg
MS4wLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vTydSZWls
bHkgYW5kIEFzc29jaWF0ZXMvL0RURCBIVE1MIEV4dGVuZGVkIFJlbGF4ZWQgMS4wLy8iLCBmYWxz
ZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vU29mdFF1YWQgU29mdHdhcmUv
L0RURCBIb1RNZXRhTCBQUk8gNi4wOjoxOTk5MDYwMTo6ZXh0ZW5zaW9ucyB0byBIVE1MIDQuMC8v
IiwgZmFsc2UpCi0gICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL1NvZnRRdWFkLy9E
VEQgSG9UTWV0YUwgUFJPIDQuMDo6MTk5NzEwMTA6OmV4dGVuc2lvbnMgdG8gSFRNTCA0LjAvLyIs
IGZhbHNlKQotICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9TcHlnbGFzcy8vRFRE
IEhUTUwgMi4wIEV4dGVuZGVkLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRz
V2l0aCgiLS8vU1EvL0RURCBIVE1MIDIuMCBIb1RNZXRhTCArIGV4dGVuc2lvbnMvLyIsIGZhbHNl
KQotICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9TdW4gTWljcm9zeXN0ZW1zIENv
cnAuLy9EVEQgSG90SmF2YSBIVE1MLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3Rh
cnRzV2l0aCgiLS8vU3VuIE1pY3Jvc3lzdGVtcyBDb3JwLi8vRFREIEhvdEphdmEgU3RyaWN0IEhU
TUwvLyIsIGZhbHNlKQotICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9XM0MvL0RU
RCBIVE1MIDMgMTk5NS0wMy0yNC8vIiwgZmFsc2UpCi0gICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0
c1dpdGgoIi0vL1czQy8vRFREIEhUTUwgMy4yIERyYWZ0Ly8iLCBmYWxzZSkKLSAgICAgICAgfHwg
cHVibGljSWQuc3RhcnRzV2l0aCgiLS8vVzNDLy9EVEQgSFRNTCAzLjIgRmluYWwvLyIsIGZhbHNl
KQotICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9XM0MvL0RURCBIVE1MIDMuMi8v
IiwgZmFsc2UpCi0gICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL1czQy8vRFREIEhU
TUwgMy4yUyBEcmFmdC8vIiwgZmFsc2UpCi0gICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgo
Ii0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVi
bGljSWQuc3RhcnRzV2l0aCgiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy8iLCBm
YWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vVzNDLy9EVEQgSFRNTCBF
eHBlcmltZW50YWwgMTk5NjA3MTIvLyIsIGZhbHNlKQotICAgICAgICB8fCBwdWJsaWNJZC5zdGFy
dHNXaXRoKCItLy9XM0MvL0RURCBIVE1MIEV4cGVyaW1lbnRhbCA5NzA0MjEvLyIsIGZhbHNlKQot
ICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9XM0MvL0RURCBXMyBIVE1MLy8iLCBm
YWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vVzNPLy9EVEQgVzMgSFRN
TCAzLjAvLyIsIGZhbHNlKQotICAgICAgICB8fCBlcXVhbElnbm9yaW5nQ2FzZShwdWJsaWNJZCwg
Ii0vL1czTy8vRFREIFczIEhUTUwgU3RyaWN0IDMuMC8vRU4vLyIpCi0gICAgICAgIHx8IHB1Ymxp
Y0lkLnN0YXJ0c1dpdGgoIi0vL1dlYlRlY2hzLy9EVEQgTW96aWxsYSBIVE1MIDIuMC8vIiwgZmFs
c2UpCi0gICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL1dlYlRlY2hzLy9EVEQgTW96
aWxsYSBIVE1MLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgZXF1YWxJZ25vcmluZ0Nhc2UocHVibGlj
SWQsICItL1czQy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsL0VOIikKLSAgICAgICAgfHwgZXF1
YWxJZ25vcmluZ0Nhc2UocHVibGljSWQsICJIVE1MIikKLSAgICAgICAgfHwgZXF1YWxJZ25vcmlu
Z0Nhc2UoZG9jVHlwZS0+c3lzdGVtSWQoKSwgImh0dHA6Ly93d3cuaWJtLmNvbS9kYXRhL2R0ZC92
MTEvaWJteGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiKQotICAgICAgICB8fCAoZG9jVHlwZS0+c3lz
dGVtSWQoKS5pc0VtcHR5KCkgJiYgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vVzNDLy9EVEQgSFRN
TCA0LjAxIEZyYW1lc2V0Ly8iLCBmYWxzZSkpCi0gICAgICAgIHx8IChkb2NUeXBlLT5zeXN0ZW1J
ZCgpLmlzRW1wdHkoKSAmJiBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9XM0MvL0RURCBIVE1MIDQu
MDEgVHJhbnNpdGlvbmFsLy8iLCBmYWxzZSkpKSB7Ci0gICAgICAgIHNldENvbXBhdGliaWxpdHlN
b2RlKFF1aXJrc01vZGUpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgLy8gQ2hlY2sg
Zm9yIExpbWl0ZWQgUXVpcmtzIE1vZGUuCi0gICAgaWYgKHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0v
L1czQy8vRFREIFhIVE1MIDEuMCBGcmFtZXNldC8vIiwgZmFsc2UpCi0gICAgICAgIHx8IHB1Ymxp
Y0lkLnN0YXJ0c1dpdGgoIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvLyIsIGZh
bHNlKQotICAgICAgICB8fCAoIWRvY1R5cGUtPnN5c3RlbUlkKCkuaXNFbXB0eSgpICYmIHB1Ymxp
Y0lkLnN0YXJ0c1dpdGgoIi0vL1czQy8vRFREIEhUTUwgNC4wMSBGcmFtZXNldC8vIiwgZmFsc2Up
KQotICAgICAgICB8fCAoIWRvY1R5cGUtPnN5c3RlbUlkKCkuaXNFbXB0eSgpICYmIHB1YmxpY0lk
LnN0YXJ0c1dpdGgoIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvLyIsIGZhbHNl
KSkpIHsKLSAgICAgICAgc2V0Q29tcGF0aWJpbGl0eU1vZGUoTGltaXRlZFF1aXJrc01vZGUpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgLy8gT3RoZXJ3aXNlIHdlIGFyZSBObyBRdWly
a3MgTW9kZS4KLSAgICBzZXRDb21wYXRpYmlsaXR5TW9kZShOb1F1aXJrc01vZGUpOwotICAgIHJl
dHVybjsKLX0KLQogdm9pZCBIVE1MRG9jdW1lbnQ6OmNsZWFyKCkKIHsKICAgICAvLyBGSVhNRTog
VGhpcyBkb2VzIG5vdGhpbmcsIGFuZCB0aGF0IHNlZW1zIHVubGlrZWx5IHRvIGJlIGNvcnJlY3Qu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaAppbmRleCBkMzlmMzkyYWFhNDJiODE5Mzc0YTVh
MWFhYWMyMjY1MTNiNDU5NzVmLi5mZjdjZmIzZTE3ZTA0NDI2OGMwZmE5OWQwYzI5OWUzNGEyZWQ2
MDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmgKQEAgLTUwLDggKzUwLDYgQEAgcHVi
bGljOgogICAgIFN0cmluZyBkZXNpZ25Nb2RlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXREZXNpZ25N
b2RlKGNvbnN0IFN0cmluZyYpOwogCi0gICAgdmlydHVhbCB2b2lkIHNldENvbXBhdGliaWxpdHlN
b2RlRnJvbURvY3R5cGUoKTsKLQogICAgIEVsZW1lbnQqIGFjdGl2ZUVsZW1lbnQoKTsKICAgICBi
b29sIGhhc0ZvY3VzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxDb25zdHJ1Y3Rpb25TaXRlLmNwcAppbmRleCBhODkyMWUwMDFmMTk3YWI5Nzc1ZmQxN2VjY2Q4
MGNlM2ExZWQxZGQzLi5jOGNiYWM0NGYyMzE3N2VkMjVjZjI1NjM0OTFiNTlmMjk5NWZkZGZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNp
dGUuY3BwCkBAIC0xNDQsNiArMTQ0LDcgQEAgSFRNTENvbnN0cnVjdGlvblNpdGU6OkhUTUxDb25z
dHJ1Y3Rpb25TaXRlKERvY3VtZW50KiBkb2N1bWVudCwgdW5zaWduZWQgbWF4aW11bUQKICAgICAs
IG1faXNQYXJzaW5nRnJhZ21lbnQoZmFsc2UpCiAgICAgLCBtX3JlZGlyZWN0QXR0YWNoVG9Gb3N0
ZXJQYXJlbnQoZmFsc2UpCiAgICAgLCBtX21heGltdW1ET01UcmVlRGVwdGgobWF4aW11bURPTVRy
ZWVEZXB0aCkKKyAgICAsIG1faW5RdWlya3NNb2RlKGRvY3VtZW50LT5pblF1aXJrc01vZGUoKSkK
IHsKIH0KIApAQCAtMTU0LDYgKzE1NSw3IEBAIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpIVE1MQ29u
c3RydWN0aW9uU2l0ZShEb2N1bWVudEZyYWdtZW50KiBmcmFnbWVudCwgRnJhZ21lbnRTCiAgICAg
LCBtX2lzUGFyc2luZ0ZyYWdtZW50KHRydWUpCiAgICAgLCBtX3JlZGlyZWN0QXR0YWNoVG9Gb3N0
ZXJQYXJlbnQoZmFsc2UpCiAgICAgLCBtX21heGltdW1ET01UcmVlRGVwdGgobWF4aW11bURPTVRy
ZWVEZXB0aCkKKyAgICAsIG1faW5RdWlya3NNb2RlKGZyYWdtZW50LT5kb2N1bWVudCgpLT5pblF1
aXJrc01vZGUoKSkKIHsKIH0KIApAQCAtMjMxLDcgKzIzMywxMDQgQEAgdm9pZCBIVE1MQ29uc3Ry
dWN0aW9uU2l0ZTo6c2V0RGVmYXVsdENvbXBhdGliaWxpdHlNb2RlKCkKICAgICAgICAgcmV0dXJu
OwogICAgIGlmIChtX2RvY3VtZW50LT5pc1NyY2RvY0RvY3VtZW50KCkpCiAgICAgICAgIHJldHVy
bjsKLSAgICBtX2RvY3VtZW50LT5zZXRDb21wYXRpYmlsaXR5TW9kZShEb2N1bWVudDo6UXVpcmtz
TW9kZSk7CisgICAgc2V0Q29tcGF0aWJpbGl0eU1vZGUoRG9jdW1lbnQ6OlF1aXJrc01vZGUpOwor
fQorCit2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpzZXRDb21wYXRpYmlsaXR5TW9kZShEb2N1
bWVudDo6Q29tcGF0aWJpbGl0eU1vZGUgbW9kZSkKK3sKKyAgICBtX2luUXVpcmtzTW9kZSA9ICht
b2RlID09IERvY3VtZW50OjpRdWlya3NNb2RlKTsKKyAgICBtX2RvY3VtZW50LT5zZXRDb21wYXRp
YmlsaXR5TW9kZShtb2RlKTsKK30KKwordm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6c2V0Q29t
cGF0aWJpbGl0eU1vZGVGcm9tRG9jdHlwZShEb2N1bWVudFR5cGUqIGRvY1R5cGUpCit7CisgICAg
Ly8gVGhlcmUgYXJlIHRocmVlIHBvc3NpYmxlIGNvbXBhdGliaWxpdHkgbW9kZXM6CisgICAgLy8g
UXVpcmtzIC0gcXVpcmtzIG1vZGUgZW11bGF0ZXMgV2luSUUgYW5kIE5TNC4gQ1NTIHBhcnNpbmcg
aXMgYWxzbyByZWxheGVkIGluIHRoaXMgbW9kZSwgZS5nLiwgdW5pdCB0eXBlcyBjYW4KKyAgICAv
LyBiZSBvbWl0dGVkIGZyb20gbnVtYmVycy4KKyAgICAvLyBMaW1pdGVkIFF1aXJrcyAtIFRoaXMg
bW9kZSBpcyBpZGVudGljYWwgdG8gbm8tcXVpcmtzIG1vZGUgZXhjZXB0IGZvciBpdHMgdHJlYXRt
ZW50IG9mIGxpbmUtaGVpZ2h0IGluIHRoZSBpbmxpbmUgYm94IG1vZGVsLiAgCisgICAgLy8gTm8g
UXVpcmtzIC0gbm8gcXVpcmtzIGFwcGx5LiBXZWIgcGFnZXMgd2lsbCBvYmV5IHRoZSBzcGVjaWZp
Y2F0aW9ucyB0byB0aGUgbGV0dGVyLgorICAgIGlmICghZG9jVHlwZSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgLy8gQ2hlY2sgZm9yIFF1aXJrcyBNb2RlLgorICAgIGNvbnN0IFN0cmluZyYgcHVi
bGljSWQgPSBkb2NUeXBlLT5wdWJsaWNJZCgpOworICAgIGlmIChkb2NUeXBlLT5uYW1lKCkgIT0g
Imh0bWwiCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIisvL1NpbG1hcmlsLy9kdGQg
aHRtbCBQcm8gdjByMTEgMTk5NzAxMDEvLyIsIGZhbHNlKQorICAgICAgICB8fCBwdWJsaWNJZC5z
dGFydHNXaXRoKCItLy9BZHZhU29mdCBMdGQvL0RURCBIVE1MIDMuMCBhc1dlZGl0ICsgZXh0ZW5z
aW9ucy8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL0FTLy9E
VEQgSFRNTCAzLjAgYXNXZWRpdCArIGV4dGVuc2lvbnMvLyIsIGZhbHNlKQorICAgICAgICB8fCBw
dWJsaWNJZC5zdGFydHNXaXRoKCItLy9JRVRGLy9EVEQgSFRNTCAyLjAgTGV2ZWwgMS8vIiwgZmFs
c2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL0lFVEYvL0RURCBIVE1MIDIu
MCBMZXZlbCAyLy8iLCBmYWxzZSkKKyAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8v
SUVURi8vRFREIEhUTUwgMi4wIFN0cmljdCBMZXZlbCAxLy8iLCBmYWxzZSkKKyAgICAgICAgfHwg
cHVibGljSWQuc3RhcnRzV2l0aCgiLS8vSUVURi8vRFREIEhUTUwgMi4wIFN0cmljdCBMZXZlbCAy
Ly8iLCBmYWxzZSkKKyAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vSUVURi8vRFRE
IEhUTUwgMi4wIFN0cmljdC8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dp
dGgoIi0vL0lFVEYvL0RURCBIVE1MIDIuMC8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lk
LnN0YXJ0c1dpdGgoIi0vL0lFVEYvL0RURCBIVE1MIDIuMUUvLyIsIGZhbHNlKQorICAgICAgICB8
fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9JRVRGLy9EVEQgSFRNTCAzLjAvLyIsIGZhbHNlKQor
ICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9JRVRGLy9EVEQgSFRNTCAzLjIgRmlu
YWwvLyIsIGZhbHNlKQorICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9JRVRGLy9E
VEQgSFRNTCAzLjIvLyIsIGZhbHNlKQorICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCIt
Ly9JRVRGLy9EVEQgSFRNTCAzLy8iLCBmYWxzZSkKKyAgICAgICAgfHwgcHVibGljSWQuc3RhcnRz
V2l0aCgiLS8vSUVURi8vRFREIEhUTUwgTGV2ZWwgMC8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1
YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL0lFVEYvL0RURCBIVE1MIExldmVsIDEvLyIsIGZhbHNlKQor
ICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9JRVRGLy9EVEQgSFRNTCBMZXZlbCAy
Ly8iLCBmYWxzZSkKKyAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vSUVURi8vRFRE
IEhUTUwgTGV2ZWwgMy8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgo
Ii0vL0lFVEYvL0RURCBIVE1MIFN0cmljdCBMZXZlbCAwLy8iLCBmYWxzZSkKKyAgICAgICAgfHwg
cHVibGljSWQuc3RhcnRzV2l0aCgiLS8vSUVURi8vRFREIEhUTUwgU3RyaWN0IExldmVsIDEvLyIs
IGZhbHNlKQorICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9JRVRGLy9EVEQgSFRN
TCBTdHJpY3QgTGV2ZWwgMi8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dp
dGgoIi0vL0lFVEYvL0RURCBIVE1MIFN0cmljdCBMZXZlbCAzLy8iLCBmYWxzZSkKKyAgICAgICAg
fHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vSUVURi8vRFREIEhUTUwgU3RyaWN0Ly8iLCBmYWxz
ZSkKKyAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vSUVURi8vRFREIEhUTUwvLyIs
IGZhbHNlKQorICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9NZXRyaXVzLy9EVEQg
TWV0cml1cyBQcmVzZW50YXRpb25hbC8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0
YXJ0c1dpdGgoIi0vL01pY3Jvc29mdC8vRFREIEludGVybmV0IEV4cGxvcmVyIDIuMCBIVE1MIFN0
cmljdC8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL01pY3Jv
c29mdC8vRFREIEludGVybmV0IEV4cGxvcmVyIDIuMCBIVE1MLy8iLCBmYWxzZSkKKyAgICAgICAg
fHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vTWljcm9zb2Z0Ly9EVEQgSW50ZXJuZXQgRXhwbG9y
ZXIgMi4wIFRhYmxlcy8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgo
Ii0vL01pY3Jvc29mdC8vRFREIEludGVybmV0IEV4cGxvcmVyIDMuMCBIVE1MIFN0cmljdC8vIiwg
ZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL01pY3Jvc29mdC8vRFRE
IEludGVybmV0IEV4cGxvcmVyIDMuMCBIVE1MLy8iLCBmYWxzZSkKKyAgICAgICAgfHwgcHVibGlj
SWQuc3RhcnRzV2l0aCgiLS8vTWljcm9zb2Z0Ly9EVEQgSW50ZXJuZXQgRXhwbG9yZXIgMy4wIFRh
Ymxlcy8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL05ldHNj
YXBlIENvbW0uIENvcnAuLy9EVEQgSFRNTC8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lk
LnN0YXJ0c1dpdGgoIi0vL05ldHNjYXBlIENvbW0uIENvcnAuLy9EVEQgU3RyaWN0IEhUTUwvLyIs
IGZhbHNlKQorICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9PJ1JlaWxseSBhbmQg
QXNzb2NpYXRlcy8vRFREIEhUTUwgMi4wLy8iLCBmYWxzZSkKKyAgICAgICAgfHwgcHVibGljSWQu
c3RhcnRzV2l0aCgiLS8vTydSZWlsbHkgYW5kIEFzc29jaWF0ZXMvL0RURCBIVE1MIEV4dGVuZGVk
IDEuMC8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL08nUmVp
bGx5IGFuZCBBc3NvY2lhdGVzLy9EVEQgSFRNTCBFeHRlbmRlZCBSZWxheGVkIDEuMC8vIiwgZmFs
c2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL1NvZnRRdWFkIFNvZnR3YXJl
Ly9EVEQgSG9UTWV0YUwgUFJPIDYuMDo6MTk5OTA2MDE6OmV4dGVuc2lvbnMgdG8gSFRNTCA0LjAv
LyIsIGZhbHNlKQorICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9Tb2Z0UXVhZC8v
RFREIEhvVE1ldGFMIFBSTyA0LjA6OjE5OTcxMDEwOjpleHRlbnNpb25zIHRvIEhUTUwgNC4wLy8i
LCBmYWxzZSkKKyAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vU3B5Z2xhc3MvL0RU
RCBIVE1MIDIuMCBFeHRlbmRlZC8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0
c1dpdGgoIi0vL1NRLy9EVEQgSFRNTCAyLjAgSG9UTWV0YUwgKyBleHRlbnNpb25zLy8iLCBmYWxz
ZSkKKyAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vU3VuIE1pY3Jvc3lzdGVtcyBD
b3JwLi8vRFREIEhvdEphdmEgSFRNTC8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0
YXJ0c1dpdGgoIi0vL1N1biBNaWNyb3N5c3RlbXMgQ29ycC4vL0RURCBIb3RKYXZhIFN0cmljdCBI
VE1MLy8iLCBmYWxzZSkKKyAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vVzNDLy9E
VEQgSFRNTCAzIDE5OTUtMDMtMjQvLyIsIGZhbHNlKQorICAgICAgICB8fCBwdWJsaWNJZC5zdGFy
dHNXaXRoKCItLy9XM0MvL0RURCBIVE1MIDMuMiBEcmFmdC8vIiwgZmFsc2UpCisgICAgICAgIHx8
IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy8iLCBmYWxz
ZSkKKyAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vVzNDLy9EVEQgSFRNTCAzLjIv
LyIsIGZhbHNlKQorICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9XM0MvL0RURCBI
VE1MIDMuMlMgRHJhZnQvLyIsIGZhbHNlKQorICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRo
KCItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1
YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vIiwg
ZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL1czQy8vRFREIEhUTUwg
RXhwZXJpbWVudGFsIDE5OTYwNzEyLy8iLCBmYWxzZSkKKyAgICAgICAgfHwgcHVibGljSWQuc3Rh
cnRzV2l0aCgiLS8vVzNDLy9EVEQgSFRNTCBFeHBlcmltZW50YWwgOTcwNDIxLy8iLCBmYWxzZSkK
KyAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vVzNDLy9EVEQgVzMgSFRNTC8vIiwg
ZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL1czTy8vRFREIFczIEhU
TUwgMy4wLy8iLCBmYWxzZSkKKyAgICAgICAgfHwgZXF1YWxJZ25vcmluZ0Nhc2UocHVibGljSWQs
ICItLy9XM08vL0RURCBXMyBIVE1MIFN0cmljdCAzLjAvL0VOLy8iKQorICAgICAgICB8fCBwdWJs
aWNJZC5zdGFydHNXaXRoKCItLy9XZWJUZWNocy8vRFREIE1vemlsbGEgSFRNTCAyLjAvLyIsIGZh
bHNlKQorICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9XZWJUZWNocy8vRFREIE1v
emlsbGEgSFRNTC8vIiwgZmFsc2UpCisgICAgICAgIHx8IGVxdWFsSWdub3JpbmdDYXNlKHB1Ymxp
Y0lkLCAiLS9XM0MvRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC9FTiIpCisgICAgICAgIHx8IGVx
dWFsSWdub3JpbmdDYXNlKHB1YmxpY0lkLCAiSFRNTCIpCisgICAgICAgIHx8IGVxdWFsSWdub3Jp
bmdDYXNlKGRvY1R5cGUtPnN5c3RlbUlkKCksICJodHRwOi8vd3d3LmlibS5jb20vZGF0YS9kdGQv
djExL2libXhodG1sMS10cmFuc2l0aW9uYWwuZHRkIikKKyAgICAgICAgfHwgKGRvY1R5cGUtPnN5
c3RlbUlkKCkuaXNFbXB0eSgpICYmIHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL1czQy8vRFREIEhU
TUwgNC4wMSBGcmFtZXNldC8vIiwgZmFsc2UpKQorICAgICAgICB8fCAoZG9jVHlwZS0+c3lzdGVt
SWQoKS5pc0VtcHR5KCkgJiYgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vVzNDLy9EVEQgSFRNTCA0
LjAxIFRyYW5zaXRpb25hbC8vIiwgZmFsc2UpKSkgeworICAgICAgICBzZXRDb21wYXRpYmlsaXR5
TW9kZShEb2N1bWVudDo6UXVpcmtzTW9kZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICAvLyBDaGVjayBmb3IgTGltaXRlZCBRdWlya3MgTW9kZS4KKyAgICBpZiAocHVibGljSWQuc3Rh
cnRzV2l0aCgiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIEZyYW1lc2V0Ly8iLCBmYWxzZSkKKyAgICAg
ICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRp
b25hbC8vIiwgZmFsc2UpCisgICAgICAgIHx8ICghZG9jVHlwZS0+c3lzdGVtSWQoKS5pc0VtcHR5
KCkgJiYgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIEZyYW1lc2V0
Ly8iLCBmYWxzZSkpCisgICAgICAgIHx8ICghZG9jVHlwZS0+c3lzdGVtSWQoKS5pc0VtcHR5KCkg
JiYgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25h
bC8vIiwgZmFsc2UpKSkgeworICAgICAgICBzZXRDb21wYXRpYmlsaXR5TW9kZShEb2N1bWVudDo6
TGltaXRlZFF1aXJrc01vZGUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gT3Ro
ZXJ3aXNlIHdlIGFyZSBObyBRdWlya3MgTW9kZS4KKyAgICBzZXRDb21wYXRpYmlsaXR5TW9kZShE
b2N1bWVudDo6Tm9RdWlya3NNb2RlKTsKIH0KIAogdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6
ZmluaXNoZWRQYXJzaW5nKCkKQEAgLTI1NiwxMSArMzU1LDExIEBAIHZvaWQgSFRNTENvbnN0cnVj
dGlvblNpdGU6Omluc2VydERvY3R5cGUoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAg
cmV0dXJuOwogCiAgICAgaWYgKHRva2VuLT5mb3JjZVF1aXJrcygpKQotICAgICAgICBtX2RvY3Vt
ZW50LT5zZXRDb21wYXRpYmlsaXR5TW9kZShEb2N1bWVudDo6UXVpcmtzTW9kZSk7CisgICAgICAg
IHNldENvbXBhdGliaWxpdHlNb2RlKERvY3VtZW50OjpRdWlya3NNb2RlKTsKICAgICBlbHNlIHsK
ICAgICAgICAgLy8gV2UgbmVlZCB0byBhY3R1YWxseSBhZGQgdGhlIERvY3R5cGUgbm9kZSB0byB0
aGUgRE9NLgogICAgICAgICBleGVjdXRlUXVldWVkVGFza3MoKTsKLSAgICAgICAgbV9kb2N1bWVu
dC0+c2V0Q29tcGF0aWJpbGl0eU1vZGVGcm9tRG9jdHlwZSgpOworICAgICAgICBzZXRDb21wYXRp
YmlsaXR5TW9kZUZyb21Eb2N0eXBlKG1fZG9jdW1lbnQtPmRvY3R5cGUoKSk7CiAgICAgfQogfQog
CkBAIC00OTYsOCArNTk1LDcgQEAgdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6Z2VuZXJhdGVJ
bXBsaWVkRW5kVGFncygpCiAKIGJvb2wgSFRNTENvbnN0cnVjdGlvblNpdGU6OmluUXVpcmtzTW9k
ZSgpCiB7Ci0gICAgLy8gV2hlbiB3ZSBtb3ZlIHRoZSBwYXJzZXIgb250byBhIGJhY2tncm91bmQg
dGhyZWFkLCB3ZSdsbCBuZWVkIHRvIGtlZXAgdHJhY2sgb2YgdGhpcyBiaXQgb24gdGhlIHBhcnNl
ciB0aHJlYWQuCi0gICAgcmV0dXJuIG1fZG9jdW1lbnQtPmluUXVpcmtzTW9kZSgpOworICAgIHJl
dHVybiBtX2luUXVpcmtzTW9kZTsKIH0KIAogdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6Zmlu
ZEZvc3RlclNpdGUoSFRNTENvbnN0cnVjdGlvblNpdGVUYXNrJiB0YXNrKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmgKaW5kZXggYjk2ZjUw
NzdhZWM1ZTFlZTNkZmY3NDRlZjc2ODBmYWMzNTJkMDY0Yi4uNjM5NzNmODcxYzg4NDIwZGEzY2Jh
ZWViNmZmNjNhMTg0ZTQ2ZjFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5oCkBAIC0xNTYsNiArMTU2LDkgQEAgcHJpdmF0ZToKICAg
ICAvLyB0b2tlbnMgcHJvZHVjZSBvbmx5IG9uZSBET00gbXV0YXRpb24uCiAgICAgdHlwZWRlZiBW
ZWN0b3I8SFRNTENvbnN0cnVjdGlvblNpdGVUYXNrLCAxPiBBdHRhY2htZW50UXVldWU7CiAKKyAg
ICB2b2lkIHNldENvbXBhdGliaWxpdHlNb2RlKERvY3VtZW50OjpDb21wYXRpYmlsaXR5TW9kZSk7
CisgICAgdm9pZCBzZXRDb21wYXRpYmlsaXR5TW9kZUZyb21Eb2N0eXBlKERvY3VtZW50VHlwZSop
OworCiAgICAgdm9pZCBhdHRhY2hMYXRlcihDb250YWluZXJOb2RlKiBwYXJlbnQsIFBhc3NSZWZQ
dHI8Tm9kZT4gY2hpbGQsIGJvb2wgc2VsZkNsb3NpbmcgPSBmYWxzZSk7CiAKICAgICB2b2lkIGZp
bmRGb3N0ZXJTaXRlKEhUTUxDb25zdHJ1Y3Rpb25TaXRlVGFzayYpOwpAQCAtMTkwLDYgKzE5Myw4
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3JlZGlyZWN0QXR0YWNoVG9Gb3N0ZXJQYXJlbnQ7CiAK
ICAgICB1bnNpZ25lZCBtX21heGltdW1ET01UcmVlRGVwdGg7CisKKyAgICBib29sIG1faW5RdWly
a3NNb2RlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181788</attachid>
            <date>2013-01-08 15:32:34 -0800</date>
            <delta_ts>2013-01-08 17:45:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106375-20130108152939.patch</filename>
            <type>text/plain</type>
            <size>19742</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5MDgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjJhZTNhM2Q5MmQyYzZj
OWNiYTdiZmU5NjIxMTk1MTc0ZTY1ZDRiZi4uOWE1MDRlYzA1NzVhM2JjMTA5MWFlZjhlMDUxODg3
NjVhYTE0YTIwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEzLTAxLTA4ICBUb255
IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVtb3ZlIGRlcGVu
ZGVuY3kgb24gRG9jdW1lbnQgZnJvbSBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5RdWlya3NNb2Rl
KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjM3
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
aXMgYW5vdGhlciBzdGVwIHRvd2FyZHMgcmVtb3ZpbmcgbWFpbiB0aHJlYWQgb2JqZWN0IGRlcGVu
ZGVuY2llcworICAgICAgICBmcm9tIHRoZSBwYXJzZXIuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
IGJlY2F1c2Ugbm8gbmV3IGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
aDoKKyAgICAgICAgKiBodG1sL0hUTUxEb2N1bWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1M
RG9jdW1lbnQuaDoKKyAgICAgICAgKEhUTUxEb2N1bWVudCk6CisgICAgICAgICogaHRtbC9wYXJz
ZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0
cnVjdGlvblNpdGU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxDb25zdHJ1Y3Rpb25TaXRlOjpzZXREZWZhdWx0Q29tcGF0aWJpbGl0eU1vZGUpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6c2V0
Q29tcGF0aWJpbGl0eU1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlvblNp
dGU6OnNldENvbXBhdGliaWxpdHlNb2RlRnJvbURvY3R5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydERvY3R5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTENvbnN0cnVjdGlvblNpdGU6OmluUXVpcmtzTW9kZSk6CisgICAgICAgICogaHRtbC9wYXJz
ZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuaDoKKyAgICAgICAgKEhUTUxDb25zdHJ1Y3Rpb25TaXRl
KToKKwogMjAxMy0wMS0wOCAgWmFuIERvYmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwuY29tPgog
CiAgICAgICAgIFtHVEtdIEJ1aWxkIGZhaWx1cmVzIHdoZW4gYnVpbGRpbmcgd2l0aCBweXRob24g
My4zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGU5Y2M3MWIxYTQ2MjgwYTY0NjcyZDA4MmQ3NDJi
MzczOWJlZjkzMTguLmEzOGI1YjVlNDdmNjg3YjUzNTE4YzY2ZWRkMGVhNTYwMzMxYTc3ODggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCkBAIC02MzYsNyArNjM2LDYgQEAgcHVibGljOgogCiAgICAgZW51
bSBDb21wYXRpYmlsaXR5TW9kZSB7IFF1aXJrc01vZGUsIExpbWl0ZWRRdWlya3NNb2RlLCBOb1F1
aXJrc01vZGUgfTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRDb21wYXRpYmlsaXR5TW9kZUZyb21E
b2N0eXBlKCkgeyB9CiAgICAgdm9pZCBzZXRDb21wYXRpYmlsaXR5TW9kZShDb21wYXRpYmlsaXR5
TW9kZSBtKTsKICAgICB2b2lkIGxvY2tDb21wYXRpYmlsaXR5TW9kZSgpIHsgbV9jb21wYXRpYmls
aXR5TW9kZUxvY2tlZCA9IHRydWU7IH0KICAgICBDb21wYXRpYmlsaXR5TW9kZSBjb21wYXRpYmls
aXR5TW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29tcGF0aWJpbGl0eU1vZGU7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTERvY3VtZW50LmNwcAppbmRleCBiOWQ3NjdlMzA0YmM5YTVjMGQzYzY0MDc1OTg1
ODczYTdjMzRjMjRkLi40YTc1Mjc4MjA5OTkwZTdkOWQ1MjFlYmE1YmU0OWJhN2NkNWY5ZTA2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuY3BwCkBAIC0zMzIsOTkgKzMzMiw2IEBAIHZv
aWQgSFRNTERvY3VtZW50OjpyZW1vdmVFeHRyYU5hbWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmcm
IG5hbWUpCiAgICAgcmVtb3ZlSXRlbUZyb21NYXAobV9leHRyYU5hbWVkSXRlbUNvdW50cywgbmFt
ZSk7CiB9CiAKLXZvaWQgSFRNTERvY3VtZW50OjpzZXRDb21wYXRpYmlsaXR5TW9kZUZyb21Eb2N0
eXBlKCkKLXsKLSAgICAvLyBUaGVyZSBhcmUgdGhyZWUgcG9zc2libGUgY29tcGF0aWJpbGl0eSBt
b2RlczoKLSAgICAvLyBRdWlya3MgLSBxdWlya3MgbW9kZSBlbXVsYXRlcyBXaW5JRSBhbmQgTlM0
LiAgQ1NTIHBhcnNpbmcgaXMgYWxzbyByZWxheGVkIGluIHRoaXMgbW9kZSwgZS5nLiwgdW5pdCB0
eXBlcyBjYW4KLSAgICAvLyBiZSBvbWl0dGVkIGZyb20gbnVtYmVycy4KLSAgICAvLyBMaW1pdGVk
IFF1aXJrcyAtIFRoaXMgbW9kZSBpcyBpZGVudGljYWwgdG8gbm8tcXVpcmtzIG1vZGUgZXhjZXB0
IGZvciBpdHMgdHJlYXRtZW50IG9mIGxpbmUtaGVpZ2h0IGluIHRoZSBpbmxpbmUgYm94IG1vZGVs
LiAgCi0gICAgLy8gTm8gUXVpcmtzIC0gbm8gcXVpcmtzIGFwcGx5LiAgV2ViIHBhZ2VzIHdpbGwg
b2JleSB0aGUgc3BlY2lmaWNhdGlvbnMgdG8gdGhlIGxldHRlci4KLSAgICBEb2N1bWVudFR5cGUq
IGRvY1R5cGUgPSBkb2N0eXBlKCk7Ci0gICAgaWYgKCFkb2NUeXBlKQotICAgICAgICByZXR1cm47
Ci0KLSAgICAvLyBDaGVjayBmb3IgUXVpcmtzIE1vZGUuCi0gICAgY29uc3QgU3RyaW5nJiBwdWJs
aWNJZCA9IGRvY1R5cGUtPnB1YmxpY0lkKCk7Ci0gICAgaWYgKGRvY1R5cGUtPm5hbWUoKSAhPSAi
aHRtbCIKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiKy8vU2lsbWFyaWwvL2R0ZCBo
dG1sIFBybyB2MHIxMSAxOTk3MDEwMS8vIiwgZmFsc2UpCi0gICAgICAgIHx8IHB1YmxpY0lkLnN0
YXJ0c1dpdGgoIi0vL0FkdmFTb2Z0IEx0ZC8vRFREIEhUTUwgMy4wIGFzV2VkaXQgKyBleHRlbnNp
b25zLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vQVMvL0RU
RCBIVE1MIDMuMCBhc1dlZGl0ICsgZXh0ZW5zaW9ucy8vIiwgZmFsc2UpCi0gICAgICAgIHx8IHB1
YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL0lFVEYvL0RURCBIVE1MIDIuMCBMZXZlbCAxLy8iLCBmYWxz
ZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vSUVURi8vRFREIEhUTUwgMi4w
IExldmVsIDIvLyIsIGZhbHNlKQotICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9J
RVRGLy9EVEQgSFRNTCAyLjAgU3RyaWN0IExldmVsIDEvLyIsIGZhbHNlKQotICAgICAgICB8fCBw
dWJsaWNJZC5zdGFydHNXaXRoKCItLy9JRVRGLy9EVEQgSFRNTCAyLjAgU3RyaWN0IExldmVsIDIv
LyIsIGZhbHNlKQotICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9JRVRGLy9EVEQg
SFRNTCAyLjAgU3RyaWN0Ly8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0
aCgiLS8vSUVURi8vRFREIEhUTUwgMi4wLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQu
c3RhcnRzV2l0aCgiLS8vSUVURi8vRFREIEhUTUwgMi4xRS8vIiwgZmFsc2UpCi0gICAgICAgIHx8
IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL0lFVEYvL0RURCBIVE1MIDMuMC8vIiwgZmFsc2UpCi0g
ICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL0lFVEYvL0RURCBIVE1MIDMuMiBGaW5h
bC8vIiwgZmFsc2UpCi0gICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL0lFVEYvL0RU
RCBIVE1MIDMuMi8vIiwgZmFsc2UpCi0gICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0v
L0lFVEYvL0RURCBIVE1MIDMvLyIsIGZhbHNlKQotICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNX
aXRoKCItLy9JRVRGLy9EVEQgSFRNTCBMZXZlbCAwLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVi
bGljSWQuc3RhcnRzV2l0aCgiLS8vSUVURi8vRFREIEhUTUwgTGV2ZWwgMS8vIiwgZmFsc2UpCi0g
ICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL0lFVEYvL0RURCBIVE1MIExldmVsIDIv
LyIsIGZhbHNlKQotICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9JRVRGLy9EVEQg
SFRNTCBMZXZlbCAzLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgi
LS8vSUVURi8vRFREIEhUTUwgU3RyaWN0IExldmVsIDAvLyIsIGZhbHNlKQotICAgICAgICB8fCBw
dWJsaWNJZC5zdGFydHNXaXRoKCItLy9JRVRGLy9EVEQgSFRNTCBTdHJpY3QgTGV2ZWwgMS8vIiwg
ZmFsc2UpCi0gICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL0lFVEYvL0RURCBIVE1M
IFN0cmljdCBMZXZlbCAyLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0
aCgiLS8vSUVURi8vRFREIEhUTUwgU3RyaWN0IExldmVsIDMvLyIsIGZhbHNlKQotICAgICAgICB8
fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9JRVRGLy9EVEQgSFRNTCBTdHJpY3QvLyIsIGZhbHNl
KQotICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9JRVRGLy9EVEQgSFRNTC8vIiwg
ZmFsc2UpCi0gICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL01ldHJpdXMvL0RURCBN
ZXRyaXVzIFByZXNlbnRhdGlvbmFsLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3Rh
cnRzV2l0aCgiLS8vTWljcm9zb2Z0Ly9EVEQgSW50ZXJuZXQgRXhwbG9yZXIgMi4wIEhUTUwgU3Ry
aWN0Ly8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vTWljcm9z
b2Z0Ly9EVEQgSW50ZXJuZXQgRXhwbG9yZXIgMi4wIEhUTUwvLyIsIGZhbHNlKQotICAgICAgICB8
fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9NaWNyb3NvZnQvL0RURCBJbnRlcm5ldCBFeHBsb3Jl
ciAyLjAgVGFibGVzLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgi
LS8vTWljcm9zb2Z0Ly9EVEQgSW50ZXJuZXQgRXhwbG9yZXIgMy4wIEhUTUwgU3RyaWN0Ly8iLCBm
YWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vTWljcm9zb2Z0Ly9EVEQg
SW50ZXJuZXQgRXhwbG9yZXIgMy4wIEhUTUwvLyIsIGZhbHNlKQotICAgICAgICB8fCBwdWJsaWNJ
ZC5zdGFydHNXaXRoKCItLy9NaWNyb3NvZnQvL0RURCBJbnRlcm5ldCBFeHBsb3JlciAzLjAgVGFi
bGVzLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vTmV0c2Nh
cGUgQ29tbS4gQ29ycC4vL0RURCBIVE1MLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQu
c3RhcnRzV2l0aCgiLS8vTmV0c2NhcGUgQ29tbS4gQ29ycC4vL0RURCBTdHJpY3QgSFRNTC8vIiwg
ZmFsc2UpCi0gICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL08nUmVpbGx5IGFuZCBB
c3NvY2lhdGVzLy9EVEQgSFRNTCAyLjAvLyIsIGZhbHNlKQotICAgICAgICB8fCBwdWJsaWNJZC5z
dGFydHNXaXRoKCItLy9PJ1JlaWxseSBhbmQgQXNzb2NpYXRlcy8vRFREIEhUTUwgRXh0ZW5kZWQg
MS4wLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vTydSZWls
bHkgYW5kIEFzc29jaWF0ZXMvL0RURCBIVE1MIEV4dGVuZGVkIFJlbGF4ZWQgMS4wLy8iLCBmYWxz
ZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vU29mdFF1YWQgU29mdHdhcmUv
L0RURCBIb1RNZXRhTCBQUk8gNi4wOjoxOTk5MDYwMTo6ZXh0ZW5zaW9ucyB0byBIVE1MIDQuMC8v
IiwgZmFsc2UpCi0gICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL1NvZnRRdWFkLy9E
VEQgSG9UTWV0YUwgUFJPIDQuMDo6MTk5NzEwMTA6OmV4dGVuc2lvbnMgdG8gSFRNTCA0LjAvLyIs
IGZhbHNlKQotICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9TcHlnbGFzcy8vRFRE
IEhUTUwgMi4wIEV4dGVuZGVkLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRz
V2l0aCgiLS8vU1EvL0RURCBIVE1MIDIuMCBIb1RNZXRhTCArIGV4dGVuc2lvbnMvLyIsIGZhbHNl
KQotICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9TdW4gTWljcm9zeXN0ZW1zIENv
cnAuLy9EVEQgSG90SmF2YSBIVE1MLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3Rh
cnRzV2l0aCgiLS8vU3VuIE1pY3Jvc3lzdGVtcyBDb3JwLi8vRFREIEhvdEphdmEgU3RyaWN0IEhU
TUwvLyIsIGZhbHNlKQotICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9XM0MvL0RU
RCBIVE1MIDMgMTk5NS0wMy0yNC8vIiwgZmFsc2UpCi0gICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0
c1dpdGgoIi0vL1czQy8vRFREIEhUTUwgMy4yIERyYWZ0Ly8iLCBmYWxzZSkKLSAgICAgICAgfHwg
cHVibGljSWQuc3RhcnRzV2l0aCgiLS8vVzNDLy9EVEQgSFRNTCAzLjIgRmluYWwvLyIsIGZhbHNl
KQotICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9XM0MvL0RURCBIVE1MIDMuMi8v
IiwgZmFsc2UpCi0gICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL1czQy8vRFREIEhU
TUwgMy4yUyBEcmFmdC8vIiwgZmFsc2UpCi0gICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgo
Ii0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly8iLCBmYWxzZSkKLSAgICAgICAgfHwgcHVi
bGljSWQuc3RhcnRzV2l0aCgiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy8iLCBm
YWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vVzNDLy9EVEQgSFRNTCBF
eHBlcmltZW50YWwgMTk5NjA3MTIvLyIsIGZhbHNlKQotICAgICAgICB8fCBwdWJsaWNJZC5zdGFy
dHNXaXRoKCItLy9XM0MvL0RURCBIVE1MIEV4cGVyaW1lbnRhbCA5NzA0MjEvLyIsIGZhbHNlKQot
ICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9XM0MvL0RURCBXMyBIVE1MLy8iLCBm
YWxzZSkKLSAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vVzNPLy9EVEQgVzMgSFRN
TCAzLjAvLyIsIGZhbHNlKQotICAgICAgICB8fCBlcXVhbElnbm9yaW5nQ2FzZShwdWJsaWNJZCwg
Ii0vL1czTy8vRFREIFczIEhUTUwgU3RyaWN0IDMuMC8vRU4vLyIpCi0gICAgICAgIHx8IHB1Ymxp
Y0lkLnN0YXJ0c1dpdGgoIi0vL1dlYlRlY2hzLy9EVEQgTW96aWxsYSBIVE1MIDIuMC8vIiwgZmFs
c2UpCi0gICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL1dlYlRlY2hzLy9EVEQgTW96
aWxsYSBIVE1MLy8iLCBmYWxzZSkKLSAgICAgICAgfHwgZXF1YWxJZ25vcmluZ0Nhc2UocHVibGlj
SWQsICItL1czQy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsL0VOIikKLSAgICAgICAgfHwgZXF1
YWxJZ25vcmluZ0Nhc2UocHVibGljSWQsICJIVE1MIikKLSAgICAgICAgfHwgZXF1YWxJZ25vcmlu
Z0Nhc2UoZG9jVHlwZS0+c3lzdGVtSWQoKSwgImh0dHA6Ly93d3cuaWJtLmNvbS9kYXRhL2R0ZC92
MTEvaWJteGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiKQotICAgICAgICB8fCAoZG9jVHlwZS0+c3lz
dGVtSWQoKS5pc0VtcHR5KCkgJiYgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vVzNDLy9EVEQgSFRN
TCA0LjAxIEZyYW1lc2V0Ly8iLCBmYWxzZSkpCi0gICAgICAgIHx8IChkb2NUeXBlLT5zeXN0ZW1J
ZCgpLmlzRW1wdHkoKSAmJiBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9XM0MvL0RURCBIVE1MIDQu
MDEgVHJhbnNpdGlvbmFsLy8iLCBmYWxzZSkpKSB7Ci0gICAgICAgIHNldENvbXBhdGliaWxpdHlN
b2RlKFF1aXJrc01vZGUpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgLy8gQ2hlY2sg
Zm9yIExpbWl0ZWQgUXVpcmtzIE1vZGUuCi0gICAgaWYgKHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0v
L1czQy8vRFREIFhIVE1MIDEuMCBGcmFtZXNldC8vIiwgZmFsc2UpCi0gICAgICAgIHx8IHB1Ymxp
Y0lkLnN0YXJ0c1dpdGgoIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvLyIsIGZh
bHNlKQotICAgICAgICB8fCAoIWRvY1R5cGUtPnN5c3RlbUlkKCkuaXNFbXB0eSgpICYmIHB1Ymxp
Y0lkLnN0YXJ0c1dpdGgoIi0vL1czQy8vRFREIEhUTUwgNC4wMSBGcmFtZXNldC8vIiwgZmFsc2Up
KQotICAgICAgICB8fCAoIWRvY1R5cGUtPnN5c3RlbUlkKCkuaXNFbXB0eSgpICYmIHB1YmxpY0lk
LnN0YXJ0c1dpdGgoIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvLyIsIGZhbHNl
KSkpIHsKLSAgICAgICAgc2V0Q29tcGF0aWJpbGl0eU1vZGUoTGltaXRlZFF1aXJrc01vZGUpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgLy8gT3RoZXJ3aXNlIHdlIGFyZSBObyBRdWly
a3MgTW9kZS4KLSAgICBzZXRDb21wYXRpYmlsaXR5TW9kZShOb1F1aXJrc01vZGUpOwotICAgIHJl
dHVybjsKLX0KLQogdm9pZCBIVE1MRG9jdW1lbnQ6OmNsZWFyKCkKIHsKICAgICAvLyBGSVhNRTog
VGhpcyBkb2VzIG5vdGhpbmcsIGFuZCB0aGF0IHNlZW1zIHVubGlrZWx5IHRvIGJlIGNvcnJlY3Qu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaAppbmRleCBkMzlmMzkyYWFhNDJiODE5Mzc0YTVh
MWFhYWMyMjY1MTNiNDU5NzVmLi5mZjdjZmIzZTE3ZTA0NDI2OGMwZmE5OWQwYzI5OWUzNGEyZWQ2
MDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmgKQEAgLTUwLDggKzUwLDYgQEAgcHVi
bGljOgogICAgIFN0cmluZyBkZXNpZ25Nb2RlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXREZXNpZ25N
b2RlKGNvbnN0IFN0cmluZyYpOwogCi0gICAgdmlydHVhbCB2b2lkIHNldENvbXBhdGliaWxpdHlN
b2RlRnJvbURvY3R5cGUoKTsKLQogICAgIEVsZW1lbnQqIGFjdGl2ZUVsZW1lbnQoKTsKICAgICBi
b29sIGhhc0ZvY3VzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxDb25zdHJ1Y3Rpb25TaXRlLmNwcAppbmRleCBhODkyMWUwMDFmMTk3YWI5Nzc1ZmQxN2VjY2Q4
MGNlM2ExZWQxZGQzLi41YTdjOTk4NWMwY2YxMDIxMmM4MzJhMzczZDVmZGEwZGQ2OTNkZGI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNp
dGUuY3BwCkBAIC0xNDQsNyArMTQ0LDkgQEAgSFRNTENvbnN0cnVjdGlvblNpdGU6OkhUTUxDb25z
dHJ1Y3Rpb25TaXRlKERvY3VtZW50KiBkb2N1bWVudCwgdW5zaWduZWQgbWF4aW11bUQKICAgICAs
IG1faXNQYXJzaW5nRnJhZ21lbnQoZmFsc2UpCiAgICAgLCBtX3JlZGlyZWN0QXR0YWNoVG9Gb3N0
ZXJQYXJlbnQoZmFsc2UpCiAgICAgLCBtX21heGltdW1ET01UcmVlRGVwdGgobWF4aW11bURPTVRy
ZWVEZXB0aCkKKyAgICAsIG1faW5RdWlya3NNb2RlKGRvY3VtZW50LT5pblF1aXJrc01vZGUoKSkK
IHsKKyAgICBBU1NFUlQobV9kb2N1bWVudC0+aXNIVE1MRG9jdW1lbnQoKSk7CiB9CiAKIEhUTUxD
b25zdHJ1Y3Rpb25TaXRlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZShEb2N1bWVudEZyYWdtZW50KiBm
cmFnbWVudCwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uIHNjcmlwdGluZ1Blcm1pc3Npb24s
IHVuc2lnbmVkIG1heGltdW1ET01UcmVlRGVwdGgpCkBAIC0xNTQsNyArMTU2LDkgQEAgSFRNTENv
bnN0cnVjdGlvblNpdGU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlKERvY3VtZW50RnJhZ21lbnQqIGZy
YWdtZW50LCBGcmFnbWVudFMKICAgICAsIG1faXNQYXJzaW5nRnJhZ21lbnQodHJ1ZSkKICAgICAs
IG1fcmVkaXJlY3RBdHRhY2hUb0Zvc3RlclBhcmVudChmYWxzZSkKICAgICAsIG1fbWF4aW11bURP
TVRyZWVEZXB0aChtYXhpbXVtRE9NVHJlZURlcHRoKQorICAgICwgbV9pblF1aXJrc01vZGUoZnJh
Z21lbnQtPmRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpKQogeworICAgIEFTU0VSVChtX2RvY3Vt
ZW50LT5pc0hUTUxEb2N1bWVudCgpKTsKIH0KIAogSFRNTENvbnN0cnVjdGlvblNpdGU6On5IVE1M
Q29uc3RydWN0aW9uU2l0ZSgpCkBAIC0yMzEsNyArMjM1LDEwMSBAQCB2b2lkIEhUTUxDb25zdHJ1
Y3Rpb25TaXRlOjpzZXREZWZhdWx0Q29tcGF0aWJpbGl0eU1vZGUoKQogICAgICAgICByZXR1cm47
CiAgICAgaWYgKG1fZG9jdW1lbnQtPmlzU3JjZG9jRG9jdW1lbnQoKSkKICAgICAgICAgcmV0dXJu
OwotICAgIG1fZG9jdW1lbnQtPnNldENvbXBhdGliaWxpdHlNb2RlKERvY3VtZW50OjpRdWlya3NN
b2RlKTsKKyAgICBzZXRDb21wYXRpYmlsaXR5TW9kZShEb2N1bWVudDo6UXVpcmtzTW9kZSk7Cit9
CisKK3ZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6OnNldENvbXBhdGliaWxpdHlNb2RlKERvY3Vt
ZW50OjpDb21wYXRpYmlsaXR5TW9kZSBtb2RlKQoreworICAgIG1faW5RdWlya3NNb2RlID0gKG1v
ZGUgPT0gRG9jdW1lbnQ6OlF1aXJrc01vZGUpOworICAgIG1fZG9jdW1lbnQtPnNldENvbXBhdGli
aWxpdHlNb2RlKG1vZGUpOworfQorCit2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpzZXRDb21w
YXRpYmlsaXR5TW9kZUZyb21Eb2N0eXBlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5n
JiBwdWJsaWNJZCwgY29uc3QgU3RyaW5nJiBzeXN0ZW1JZCkKK3sKKyAgICAvLyBUaGVyZSBhcmUg
dGhyZWUgcG9zc2libGUgY29tcGF0aWJpbGl0eSBtb2RlczoKKyAgICAvLyBRdWlya3MgLSBxdWly
a3MgbW9kZSBlbXVsYXRlcyBXaW5JRSBhbmQgTlM0LiBDU1MgcGFyc2luZyBpcyBhbHNvIHJlbGF4
ZWQgaW4gdGhpcyBtb2RlLCBlLmcuLCB1bml0IHR5cGVzIGNhbgorICAgIC8vIGJlIG9taXR0ZWQg
ZnJvbSBudW1iZXJzLgorICAgIC8vIExpbWl0ZWQgUXVpcmtzIC0gVGhpcyBtb2RlIGlzIGlkZW50
aWNhbCB0byBuby1xdWlya3MgbW9kZSBleGNlcHQgZm9yIGl0cyB0cmVhdG1lbnQgb2YgbGluZS1o
ZWlnaHQgaW4gdGhlIGlubGluZSBib3ggbW9kZWwuICAKKyAgICAvLyBObyBRdWlya3MgLSBubyBx
dWlya3MgYXBwbHkuIFdlYiBwYWdlcyB3aWxsIG9iZXkgdGhlIHNwZWNpZmljYXRpb25zIHRvIHRo
ZSBsZXR0ZXIuCisKKyAgICAvLyBDaGVjayBmb3IgUXVpcmtzIE1vZGUuCisgICAgaWYgKG5hbWUg
IT0gImh0bWwiCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIisvL1NpbG1hcmlsLy9k
dGQgaHRtbCBQcm8gdjByMTEgMTk5NzAxMDEvLyIsIGZhbHNlKQorICAgICAgICB8fCBwdWJsaWNJ
ZC5zdGFydHNXaXRoKCItLy9BZHZhU29mdCBMdGQvL0RURCBIVE1MIDMuMCBhc1dlZGl0ICsgZXh0
ZW5zaW9ucy8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL0FT
Ly9EVEQgSFRNTCAzLjAgYXNXZWRpdCArIGV4dGVuc2lvbnMvLyIsIGZhbHNlKQorICAgICAgICB8
fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9JRVRGLy9EVEQgSFRNTCAyLjAgTGV2ZWwgMS8vIiwg
ZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL0lFVEYvL0RURCBIVE1M
IDIuMCBMZXZlbCAyLy8iLCBmYWxzZSkKKyAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgi
LS8vSUVURi8vRFREIEhUTUwgMi4wIFN0cmljdCBMZXZlbCAxLy8iLCBmYWxzZSkKKyAgICAgICAg
fHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vSUVURi8vRFREIEhUTUwgMi4wIFN0cmljdCBMZXZl
bCAyLy8iLCBmYWxzZSkKKyAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vSUVURi8v
RFREIEhUTUwgMi4wIFN0cmljdC8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0
c1dpdGgoIi0vL0lFVEYvL0RURCBIVE1MIDIuMC8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1Ymxp
Y0lkLnN0YXJ0c1dpdGgoIi0vL0lFVEYvL0RURCBIVE1MIDIuMUUvLyIsIGZhbHNlKQorICAgICAg
ICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9JRVRGLy9EVEQgSFRNTCAzLjAvLyIsIGZhbHNl
KQorICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9JRVRGLy9EVEQgSFRNTCAzLjIg
RmluYWwvLyIsIGZhbHNlKQorICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9JRVRG
Ly9EVEQgSFRNTCAzLjIvLyIsIGZhbHNlKQorICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRo
KCItLy9JRVRGLy9EVEQgSFRNTCAzLy8iLCBmYWxzZSkKKyAgICAgICAgfHwgcHVibGljSWQuc3Rh
cnRzV2l0aCgiLS8vSUVURi8vRFREIEhUTUwgTGV2ZWwgMC8vIiwgZmFsc2UpCisgICAgICAgIHx8
IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL0lFVEYvL0RURCBIVE1MIExldmVsIDEvLyIsIGZhbHNl
KQorICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9JRVRGLy9EVEQgSFRNTCBMZXZl
bCAyLy8iLCBmYWxzZSkKKyAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vSUVURi8v
RFREIEhUTUwgTGV2ZWwgMy8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dp
dGgoIi0vL0lFVEYvL0RURCBIVE1MIFN0cmljdCBMZXZlbCAwLy8iLCBmYWxzZSkKKyAgICAgICAg
fHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vSUVURi8vRFREIEhUTUwgU3RyaWN0IExldmVsIDEv
LyIsIGZhbHNlKQorICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9JRVRGLy9EVEQg
SFRNTCBTdHJpY3QgTGV2ZWwgMi8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0
c1dpdGgoIi0vL0lFVEYvL0RURCBIVE1MIFN0cmljdCBMZXZlbCAzLy8iLCBmYWxzZSkKKyAgICAg
ICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vSUVURi8vRFREIEhUTUwgU3RyaWN0Ly8iLCBm
YWxzZSkKKyAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vSUVURi8vRFREIEhUTUwv
LyIsIGZhbHNlKQorICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9NZXRyaXVzLy9E
VEQgTWV0cml1cyBQcmVzZW50YXRpb25hbC8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lk
LnN0YXJ0c1dpdGgoIi0vL01pY3Jvc29mdC8vRFREIEludGVybmV0IEV4cGxvcmVyIDIuMCBIVE1M
IFN0cmljdC8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL01p
Y3Jvc29mdC8vRFREIEludGVybmV0IEV4cGxvcmVyIDIuMCBIVE1MLy8iLCBmYWxzZSkKKyAgICAg
ICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vTWljcm9zb2Z0Ly9EVEQgSW50ZXJuZXQgRXhw
bG9yZXIgMi4wIFRhYmxlcy8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dp
dGgoIi0vL01pY3Jvc29mdC8vRFREIEludGVybmV0IEV4cGxvcmVyIDMuMCBIVE1MIFN0cmljdC8v
IiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL01pY3Jvc29mdC8v
RFREIEludGVybmV0IEV4cGxvcmVyIDMuMCBIVE1MLy8iLCBmYWxzZSkKKyAgICAgICAgfHwgcHVi
bGljSWQuc3RhcnRzV2l0aCgiLS8vTWljcm9zb2Z0Ly9EVEQgSW50ZXJuZXQgRXhwbG9yZXIgMy4w
IFRhYmxlcy8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL05l
dHNjYXBlIENvbW0uIENvcnAuLy9EVEQgSFRNTC8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1Ymxp
Y0lkLnN0YXJ0c1dpdGgoIi0vL05ldHNjYXBlIENvbW0uIENvcnAuLy9EVEQgU3RyaWN0IEhUTUwv
LyIsIGZhbHNlKQorICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9PJ1JlaWxseSBh
bmQgQXNzb2NpYXRlcy8vRFREIEhUTUwgMi4wLy8iLCBmYWxzZSkKKyAgICAgICAgfHwgcHVibGlj
SWQuc3RhcnRzV2l0aCgiLS8vTydSZWlsbHkgYW5kIEFzc29jaWF0ZXMvL0RURCBIVE1MIEV4dGVu
ZGVkIDEuMC8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL08n
UmVpbGx5IGFuZCBBc3NvY2lhdGVzLy9EVEQgSFRNTCBFeHRlbmRlZCBSZWxheGVkIDEuMC8vIiwg
ZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL1NvZnRRdWFkIFNvZnR3
YXJlLy9EVEQgSG9UTWV0YUwgUFJPIDYuMDo6MTk5OTA2MDE6OmV4dGVuc2lvbnMgdG8gSFRNTCA0
LjAvLyIsIGZhbHNlKQorICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9Tb2Z0UXVh
ZC8vRFREIEhvVE1ldGFMIFBSTyA0LjA6OjE5OTcxMDEwOjpleHRlbnNpb25zIHRvIEhUTUwgNC4w
Ly8iLCBmYWxzZSkKKyAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vU3B5Z2xhc3Mv
L0RURCBIVE1MIDIuMCBFeHRlbmRlZC8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0
YXJ0c1dpdGgoIi0vL1NRLy9EVEQgSFRNTCAyLjAgSG9UTWV0YUwgKyBleHRlbnNpb25zLy8iLCBm
YWxzZSkKKyAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vU3VuIE1pY3Jvc3lzdGVt
cyBDb3JwLi8vRFREIEhvdEphdmEgSFRNTC8vIiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lk
LnN0YXJ0c1dpdGgoIi0vL1N1biBNaWNyb3N5c3RlbXMgQ29ycC4vL0RURCBIb3RKYXZhIFN0cmlj
dCBIVE1MLy8iLCBmYWxzZSkKKyAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vVzND
Ly9EVEQgSFRNTCAzIDE5OTUtMDMtMjQvLyIsIGZhbHNlKQorICAgICAgICB8fCBwdWJsaWNJZC5z
dGFydHNXaXRoKCItLy9XM0MvL0RURCBIVE1MIDMuMiBEcmFmdC8vIiwgZmFsc2UpCisgICAgICAg
IHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy8iLCBm
YWxzZSkKKyAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vVzNDLy9EVEQgSFRNTCAz
LjIvLyIsIGZhbHNlKQorICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9XM0MvL0RU
RCBIVE1MIDMuMlMgRHJhZnQvLyIsIGZhbHNlKQorICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNX
aXRoKCItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vIiwgZmFsc2UpCisgICAgICAgIHx8
IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8v
IiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL1czQy8vRFREIEhU
TUwgRXhwZXJpbWVudGFsIDE5OTYwNzEyLy8iLCBmYWxzZSkKKyAgICAgICAgfHwgcHVibGljSWQu
c3RhcnRzV2l0aCgiLS8vVzNDLy9EVEQgSFRNTCBFeHBlcmltZW50YWwgOTcwNDIxLy8iLCBmYWxz
ZSkKKyAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vVzNDLy9EVEQgVzMgSFRNTC8v
IiwgZmFsc2UpCisgICAgICAgIHx8IHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL1czTy8vRFREIFcz
IEhUTUwgMy4wLy8iLCBmYWxzZSkKKyAgICAgICAgfHwgZXF1YWxJZ25vcmluZ0Nhc2UocHVibGlj
SWQsICItLy9XM08vL0RURCBXMyBIVE1MIFN0cmljdCAzLjAvL0VOLy8iKQorICAgICAgICB8fCBw
dWJsaWNJZC5zdGFydHNXaXRoKCItLy9XZWJUZWNocy8vRFREIE1vemlsbGEgSFRNTCAyLjAvLyIs
IGZhbHNlKQorICAgICAgICB8fCBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9XZWJUZWNocy8vRFRE
IE1vemlsbGEgSFRNTC8vIiwgZmFsc2UpCisgICAgICAgIHx8IGVxdWFsSWdub3JpbmdDYXNlKHB1
YmxpY0lkLCAiLS9XM0MvRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC9FTiIpCisgICAgICAgIHx8
IGVxdWFsSWdub3JpbmdDYXNlKHB1YmxpY0lkLCAiSFRNTCIpCisgICAgICAgIHx8IGVxdWFsSWdu
b3JpbmdDYXNlKHN5c3RlbUlkLCAiaHR0cDovL3d3dy5pYm0uY29tL2RhdGEvZHRkL3YxMS9pYm14
aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCIpCisgICAgICAgIHx8IChzeXN0ZW1JZC5pc0VtcHR5KCkg
JiYgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIEZyYW1lc2V0Ly8i
LCBmYWxzZSkpCisgICAgICAgIHx8IChzeXN0ZW1JZC5pc0VtcHR5KCkgJiYgcHVibGljSWQuc3Rh
cnRzV2l0aCgiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vIiwgZmFsc2UpKSkg
eworICAgICAgICBzZXRDb21wYXRpYmlsaXR5TW9kZShEb2N1bWVudDo6UXVpcmtzTW9kZSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBDaGVjayBmb3IgTGltaXRlZCBRdWlya3Mg
TW9kZS4KKyAgICBpZiAocHVibGljSWQuc3RhcnRzV2l0aCgiLS8vVzNDLy9EVEQgWEhUTUwgMS4w
IEZyYW1lc2V0Ly8iLCBmYWxzZSkKKyAgICAgICAgfHwgcHVibGljSWQuc3RhcnRzV2l0aCgiLS8v
VzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vIiwgZmFsc2UpCisgICAgICAgIHx8ICgh
c3lzdGVtSWQuaXNFbXB0eSgpICYmIHB1YmxpY0lkLnN0YXJ0c1dpdGgoIi0vL1czQy8vRFREIEhU
TUwgNC4wMSBGcmFtZXNldC8vIiwgZmFsc2UpKQorICAgICAgICB8fCAoIXN5c3RlbUlkLmlzRW1w
dHkoKSAmJiBwdWJsaWNJZC5zdGFydHNXaXRoKCItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNp
dGlvbmFsLy8iLCBmYWxzZSkpKSB7CisgICAgICAgIHNldENvbXBhdGliaWxpdHlNb2RlKERvY3Vt
ZW50OjpMaW1pdGVkUXVpcmtzTW9kZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAv
LyBPdGhlcndpc2Ugd2UgYXJlIE5vIFF1aXJrcyBNb2RlLgorICAgIHNldENvbXBhdGliaWxpdHlN
b2RlKERvY3VtZW50OjpOb1F1aXJrc01vZGUpOwogfQogCiB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25T
aXRlOjpmaW5pc2hlZFBhcnNpbmcoKQpAQCAtMjQzLDcgKzM0MSw5IEBAIHZvaWQgSFRNTENvbnN0
cnVjdGlvblNpdGU6Omluc2VydERvY3R5cGUoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKIHsKICAg
ICBBU1NFUlQodG9rZW4tPnR5cGUoKSA9PSBIVE1MVG9rZW5UeXBlczo6RE9DVFlQRSk7CiAKLSAg
ICBSZWZQdHI8RG9jdW1lbnRUeXBlPiBkb2N0eXBlID0gRG9jdW1lbnRUeXBlOjpjcmVhdGUobV9k
b2N1bWVudCwgdG9rZW4tPm5hbWUoKSwgU3RyaW5nOjphZG9wdCh0b2tlbi0+cHVibGljSWRlbnRp
ZmllcigpKSwgU3RyaW5nOjphZG9wdCh0b2tlbi0+c3lzdGVtSWRlbnRpZmllcigpKSk7CisgICAg
Y29uc3QgU3RyaW5nJiBwdWJsaWNJZCA9IFN0cmluZzo6YWRvcHQodG9rZW4tPnB1YmxpY0lkZW50
aWZpZXIoKSk7CisgICAgY29uc3QgU3RyaW5nJiBzeXN0ZW1JZCA9IFN0cmluZzo6YWRvcHQodG9r
ZW4tPnN5c3RlbUlkZW50aWZpZXIoKSk7CisgICAgUmVmUHRyPERvY3VtZW50VHlwZT4gZG9jdHlw
ZSA9IERvY3VtZW50VHlwZTo6Y3JlYXRlKG1fZG9jdW1lbnQsIHRva2VuLT5uYW1lKCksIHB1Ymxp
Y0lkLCBzeXN0ZW1JZCk7CiAgICAgYXR0YWNoTGF0ZXIobV9hdHRhY2htZW50Um9vdCwgZG9jdHlw
ZS5yZWxlYXNlKCkpOwogCiAgICAgLy8gRE9DVFlQRSBub2RlcyBhcmUgb25seSBwcm9jZXNzZWQg
d2hlbiBwYXJzaW5nIGZyYWdtZW50cyB3L28gY29udGV4dEVsZW1lbnRzLCB3aGljaApAQCAtMjU2
LDExICszNTYsOSBAQCB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnREb2N0eXBlKEF0
b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICh0b2tlbi0+
Zm9yY2VRdWlya3MoKSkKLSAgICAgICAgbV9kb2N1bWVudC0+c2V0Q29tcGF0aWJpbGl0eU1vZGUo
RG9jdW1lbnQ6OlF1aXJrc01vZGUpOworICAgICAgICBzZXRDb21wYXRpYmlsaXR5TW9kZShEb2N1
bWVudDo6UXVpcmtzTW9kZSk7CiAgICAgZWxzZSB7Ci0gICAgICAgIC8vIFdlIG5lZWQgdG8gYWN0
dWFsbHkgYWRkIHRoZSBEb2N0eXBlIG5vZGUgdG8gdGhlIERPTS4KLSAgICAgICAgZXhlY3V0ZVF1
ZXVlZFRhc2tzKCk7Ci0gICAgICAgIG1fZG9jdW1lbnQtPnNldENvbXBhdGliaWxpdHlNb2RlRnJv
bURvY3R5cGUoKTsKKyAgICAgICAgc2V0Q29tcGF0aWJpbGl0eU1vZGVGcm9tRG9jdHlwZSh0b2tl
bi0+bmFtZSgpLCBwdWJsaWNJZCwgc3lzdGVtSWQpOwogICAgIH0KIH0KIApAQCAtNDk2LDggKzU5
NCw3IEBAIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6OmdlbmVyYXRlSW1wbGllZEVuZFRhZ3Mo
KQogCiBib29sIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppblF1aXJrc01vZGUoKQogewotICAgIC8v
IFdoZW4gd2UgbW92ZSB0aGUgcGFyc2VyIG9udG8gYSBiYWNrZ3JvdW5kIHRocmVhZCwgd2UnbGwg
bmVlZCB0byBrZWVwIHRyYWNrIG9mIHRoaXMgYml0IG9uIHRoZSBwYXJzZXIgdGhyZWFkLgotICAg
IHJldHVybiBtX2RvY3VtZW50LT5pblF1aXJrc01vZGUoKTsKKyAgICByZXR1cm4gbV9pblF1aXJr
c01vZGU7CiB9CiAKIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6OmZpbmRGb3N0ZXJTaXRlKEhU
TUxDb25zdHJ1Y3Rpb25TaXRlVGFzayYgdGFzaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5oCmluZGV4IGI5NmY1MDc3YWVjNWUxZWUzZGZm
NzQ0ZWY3NjgwZmFjMzUyZDA2NGIuLjFjYzljODAwNjIyZTRlYzdmNzFiZDQ0NzYwMDBjNDRiN2Rl
MDRkNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1
Y3Rpb25TaXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVj
dGlvblNpdGUuaApAQCAtMTU2LDYgKzE1Niw5IEBAIHByaXZhdGU6CiAgICAgLy8gdG9rZW5zIHBy
b2R1Y2Ugb25seSBvbmUgRE9NIG11dGF0aW9uLgogICAgIHR5cGVkZWYgVmVjdG9yPEhUTUxDb25z
dHJ1Y3Rpb25TaXRlVGFzaywgMT4gQXR0YWNobWVudFF1ZXVlOwogCisgICAgdm9pZCBzZXRDb21w
YXRpYmlsaXR5TW9kZShEb2N1bWVudDo6Q29tcGF0aWJpbGl0eU1vZGUpOworICAgIHZvaWQgc2V0
Q29tcGF0aWJpbGl0eU1vZGVGcm9tRG9jdHlwZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0
cmluZyYgcHVibGljSWQsIGNvbnN0IFN0cmluZyYgc3lzdGVtSWQpOworCiAgICAgdm9pZCBhdHRh
Y2hMYXRlcihDb250YWluZXJOb2RlKiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGQsIGJv
b2wgc2VsZkNsb3NpbmcgPSBmYWxzZSk7CiAKICAgICB2b2lkIGZpbmRGb3N0ZXJTaXRlKEhUTUxD
b25zdHJ1Y3Rpb25TaXRlVGFzayYpOwpAQCAtMTkwLDYgKzE5Myw4IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX3JlZGlyZWN0QXR0YWNoVG9Gb3N0ZXJQYXJlbnQ7CiAKICAgICB1bnNpZ25lZCBtX21h
eGltdW1ET01UcmVlRGVwdGg7CisKKyAgICBib29sIG1faW5RdWlya3NNb2RlOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>