<?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>158616</bug_id>
          
          <creation_ts>2016-06-10 07:47:18 -0700</creation_ts>
          <short_desc>Vary:Cookie validation doesn&apos;t work in private browsing</short_desc>
          <delta_ts>2016-06-15 07:10:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Page Loading</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>158665</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ossy</cc>
    
    <cc>peavo</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1201238</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-06-10 07:47:18 -0700</bug_when>
    <thetext>We currently reload any resource with Vary:Cookie in private browsing even if we have a memory cache entry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201242</commentid>
    <comment_count>1</comment_count>
      <attachid>281010</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-06-10 08:30:27 -0700</bug_when>
    <thetext>Created attachment 281010
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201254</commentid>
    <comment_count>2</comment_count>
      <attachid>281012</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-06-10 09:46:46 -0700</bug_when>
    <thetext>Created attachment 281012
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201255</commentid>
    <comment_count>3</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-06-10 09:49:22 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=281010&amp;action=review

Is this a NetworkStorageSession in the WebProcess?  Are its cookies synchronized with the cookies in the NetworkProcess somehow?  Could we use this map from SessionTracker so we don&apos;t have duplicate code?

&gt; Source/WebCore/ChangeLog:13
&gt; +        around curretnly WebKit2 level SessionTracker.

currently</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201409</commentid>
    <comment_count>4</comment_count>
      <attachid>281012</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-06-10 15:28:35 -0700</bug_when>
    <thetext>Comment on attachment 281012
patch

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

&gt; Source/WebCore/platform/network/NetworkStorageSession.h:77
&gt; +    NetworkStorageSession(SessionID);

Maybe mark this explicit?

&gt; Source/WebCore/platform/network/cf/NetworkStorageSessionCFNet.cpp:44
&gt;  NetworkStorageSession::NetworkStorageSession(SessionID sessionID, RetainPtr&lt;CFURLStorageSessionRef&gt; platformSession)

Argument type should be RetainPtr&amp;&amp;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201550</commentid>
    <comment_count>5</comment_count>
      <attachid>281096</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-06-11 02:56:20 -0700</bug_when>
    <thetext>Created attachment 281096
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201554</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-06-11 03:53:54 -0700</bug_when>
    <thetext>&lt;rdar://problem/26755067&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201555</commentid>
    <comment_count>7</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-06-11 04:08:58 -0700</bug_when>
    <thetext>https://trac.webkit.org/r201967</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201564</commentid>
    <comment_count>8</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-06-11 06:23:10 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; https://trac.webkit.org/r201967

It broke the WinCairo build, see build.webkit.org for details. cc-ing port maintainers too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201590</commentid>
    <comment_count>9</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-06-11 10:57:51 -0700</bug_when>
    <thetext>I tried fixing WinCairo in https://trac.webkit.org/r201972</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201604</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-06-11 12:27:26 -0700</bug_when>
    <thetext>This change caused assertion failures on IndexedDB tests (not always the same test).

For whatever reason, I don&apos;t see this on build.webkit.org bots, only internally. I&apos;m going to roll out, and will I&apos;ll e-mail links to the crashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201608</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-11 12:30:31 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 158665</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201668</commentid>
    <comment_count>12</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-06-11 17:41:53 -0700</bug_when>
    <thetext>The assert was no specific to IndexedDB tests but rather was underneath InjectedBundle::setPrivateBrowsingEnabled

IDB tests are the vast majority of setPrivateBrowsingEnabled users, but not the exclusive ones - Other tests do it too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201806</commentid>
    <comment_count>13</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-06-13 02:39:51 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; The assert was no specific to IndexedDB tests but rather was underneath
&gt; InjectedBundle::setPrivateBrowsingEnabled
&gt; 
&gt; IDB tests are the vast majority of setPrivateBrowsingEnabled users, but not
&gt; the exclusive ones - Other tests do it too.

setPrivateBrowsingEnabled uses non-unique “legacyPrivateSessionID&quot; which causes the assert. Not sure why public bots don&apos;t hit it though. Maybe two setPrivateBrowsingEnabled tests never run in the same process there for some reason.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201831</commentid>
    <comment_count>14</comment_count>
      <attachid>281172</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-06-13 07:03:08 -0700</bug_when>
    <thetext>Created attachment 281172
patch

Different approach, add a SessionId version of the cookie getter function and do the mapping to NetworkStorageSession on WebKit side.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202561</commentid>
    <comment_count>15</comment_count>
      <attachid>281172</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-15 07:10:38 -0700</bug_when>
    <thetext>Comment on attachment 281172
patch

Clearing flags on attachment: 281172

Committed r202089: &lt;http://trac.webkit.org/changeset/202089&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202562</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-15 07:10:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281010</attachid>
            <date>2016-06-10 08:30:27 -0700</date>
            <delta_ts>2016-06-10 09:46:46 -0700</delta_ts>
            <desc>patch</desc>
            <filename>private-browsing-vary-cookie.patch</filename>
            <type>text/plain</type>
            <size>20046</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMTkyNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBACisyMDE2LTA2LTEwICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBWYXJ5OkNvb2tpZSB2YWxpZGF0
aW9uIGRvZXNuJ3Qgd29yayBpbiBwcml2YXRlIGJyb3dzaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg2MTYKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHdhc24ndCBpbXBsZW1lbnRlZCBiZWNh
dXNlIHRoZXJlIHdhcyBubyB3YXkgdG8gZ2V0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiBmcm9tCisg
ICAgICAgIGEgU2Vzc2lvbklEIG9uIFdlYkNvcmUgc2lkZS4KKworICAgICAgICBUaGUgcGF0Y2gg
YWRkcyBhIHNpbXBsZSBXZWJDb3JlIGxldmVsIHdlYWsgbWFwIHRoYXQgYWxsb3dzIGdldHRpbmcg
TmV0d29ya1N0b3JhZ2VTZXNzaW9ucworICAgICAgICBmcm9tIFNlc3Npb25JRC4gVGhpcyBzZWVt
ZWQgbGlrZSB0aGUgY2xlYW5lc3Qgd2F5IHRvIGRvIHRoaXMgd2l0aG91dCBiaWcgcmVmYWN0b3Jp
bmcKKyAgICAgICAgYXJvdW5kIGN1cnJldG5seSBXZWJLaXQyIGxldmVsIFNlc3Npb25UcmFja2Vy
LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQ2FjaGVWYWxp
ZGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmhlYWRlclZhbHVlRm9yVmFyeSk6CisKKyAg
ICAgICAgICAgIEdldCBOZXR3b3JrU3RvcmFnZVNlc3Npb24gZnJvbSBTZXNzaW9uSUQgZm9yIGNv
b2tpZXMKKworICAgICAgICAoV2ViQ29yZTo6dmVyaWZ5VmFyeWluZ1JlcXVlc3RIZWFkZXJzKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHA6IEFk
ZGVkLgorCisgICAgICAgICAgICBBZGQgcGxhdGZvcm0gaW5kZXBlbmRlbnQgLmNwcCBmb3IgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uLgorICAgICAgICAgICAgSW1wbGVtZW50IGEgd2VhayBtYXAgZm9y
IFNlc3Npb25JRCAtPiBOZXR3b3JrU3RvcmFnZVNlc3Npb24uCisKKyAgICAgICAgKFdlYkNvcmU6
OnNlc3Npb25zTWFwKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
TmV0d29ya1N0b3JhZ2VTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6fk5ldHdvcmtTdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpOZXR3
b3JrU3RvcmFnZVNlc3Npb246OmZvclNlc3Npb25JRCk6CisKKyAgICAgICAgICAgIEdldCBOZXR3
b3JrU3RvcmFnZVNlc3Npb24gZm9yIHNlc3Npb25JRC4KKworICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OnNlc3Npb25JRCk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OmNyZWRlbnRpYWxTdG9yYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKToKKworICAgICAg
ICAgICAgQ2FsbCB0byBjb21tb24gY29uc3RydWN0b3IuCisKKyAgICAgICAgKFdlYkNvcmU6OmRl
ZmF1bHROZXR3b3JrU3RvcmFnZVNlc3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
c291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKToKKworICAgICAgICAg
ICAgQ2FsbCB0byBjb21tb24gY29uc3RydWN0b3IuCisKKyAgICAgICAgKFdlYkNvcmU6OmRlZmF1
bHRTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6fk5l
dHdvcmtTdG9yYWdlU2Vzc2lvbik6IERlbGV0ZWQuCisKIDIwMTYtMDYtMTAgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNZXNzYWdlUG9ydCBzaG91bGQgYmUgZXhw
b3NlZCB0byB3b3JrZXJzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMjAxODA0
KQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIz
MzgsNiArMjMzOCw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9uZXR3b3Jr
L0hUVFBQYXJzZXJzLmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsvTUlNRUhlYWRlci5jcHAKICAg
ICBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcAorICAgIHBsYXRmb3Jt
L25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsv
UGFyc2VkQ29udGVudFJhbmdlLmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsvUGFyc2VkQ29udGVu
dFR5cGUuY3BwCiAgICAgcGxhdGZvcm0vbmV0d29yay9Qcm90ZWN0aW9uU3BhY2VCYXNlLmNwcApJ
bmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkocmV2aXNpb24gMjAxODA0KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC02NzI1LDYgKzY3MjUsNyBAQAog
CQlFNEU5QjExRDE4MTQ1NjlDMDAzQUNDREYgLyogU2ltcGxlTGluZUxheW91dEZ1bmN0aW9ucy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRFOUIxMUMx
ODE0NTY5QzAwM0FDQ0RGIC8qIFNpbXBsZUxpbmVMYXlvdXRGdW5jdGlvbnMuaCAqLzsgfTsKIAkJ
RTRGOUVFRjIxNTZEOUZGQTAwRDIzRTdFIC8qIFN0eWxlU2hlZXRDb250ZW50cy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEY5RUVGMDE1NkQ4NEM0
MDBEMjNFN0UgLyogU3R5bGVTaGVldENvbnRlbnRzLmNwcCAqLzsgfTsKIAkJRTRGOUVFRjMxNTZE
QTAwNzAwRDIzRTdFIC8qIFN0eWxlU2hlZXRDb250ZW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRGOUVFRjExNTZEODRDNDAwRDIzRTdFIC8qIFN0
eWxlU2hlZXRDb250ZW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCUU0RkQwMjA0MUQwQUYyQzEwMEQ4RTU3RSAvKiBOZXR3b3JrU3RvcmFnZVNl
c3Npb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTRGRDAyMDMxRDBBRjJDMTAwRDhFNTdFIC8qIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAgKi87
IH07CiAJCUU1MUE4MURGMTcyOThENzcwMEJGQ0E2MSAvKiBKU1BlcmZvcm1hbmNlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1MUE4MURFMTcyOThE
NzcwMEJGQ0E2MSAvKiBKU1BlcmZvcm1hbmNlLmNwcCAqLzsgfTsKIAkJRTUyNkFGM0YxNzI3RjhG
MjAwRTQxNzgxIC8qIFBlcmZvcm1hbmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEU1MjZBRjNFMTcyN0Y4RjIwMEU0MTc4MSAvKiBQZXJmb3JtYW5j
ZS5jcHAgKi87IH07CiAJCUU1NUY0OTdBMTUxQjg4ODAwMEJCNjdEQiAvKiBMZW5ndGhGdW5jdGlv
bnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTU1
RjQ5NzkxNTFCODg4MDAwQkI2N0RCIC8qIExlbmd0aEZ1bmN0aW9ucy5jcHAgKi87IH07CkBAIC0x
NDgwMSw2ICsxNDgwMiw3IEBACiAJCUU0RTlCMTFDMTgxNDU2OUMwMDNBQ0NERiAvKiBTaW1wbGVM
aW5lTGF5b3V0RnVuY3Rpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNp
bXBsZUxpbmVMYXlvdXRGdW5jdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTRGOUVFRjAxNTZEODRDNDAwRDIzRTdFIC8qIFN0eWxlU2hlZXRDb250ZW50cy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHlsZVNoZWV0Q29udGVudHMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNEY5RUVGMTE1NkQ4NEM0MDBEMjNFN0UgLyog
U3R5bGVTaGVldENvbnRlbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0
eWxlU2hlZXRDb250ZW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNEZEMDIw
MzFEMEFGMkMxMDBEOEU1N0UgLyogTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1MUE4MURFMTcyOThENzcwMEJGQ0E2MSAvKiBK
U1BlcmZvcm1hbmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
UGVyZm9ybWFuY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTI2QUYzRTE3
MjdGOEYyMDBFNDE3ODEgLyogUGVyZm9ybWFuY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUGVyZm9ybWFuY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFNTVGNDk3OTE1MUI4ODgwMDBCQjY3REIgLyogTGVuZ3RoRnVuY3Rpb25zLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExlbmd0aEZ1bmN0aW9ucy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzc4Nyw2ICsxNzc4OSw3IEBACiAJCQkJNjI4
RDIxNEIxMjEzMUVEMTAwNTVEQ0ZDIC8qIE5ldHdvcmtpbmdDb250ZXh0LmggKi8sCiAJCQkJMUE3
RkE2MUEwRERBM0JCRTAwMjhGOEE1IC8qIE5ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcCAqLywKIAkJ
CQkxQTdGQTYxODBEREEzQjNBMDAyOEY4QTUgLyogTmV0d29ya1N0YXRlTm90aWZpZXIuaCAqLywK
KwkJCQlFNEZEMDIwMzFEMEFGMkMxMDBEOEU1N0UgLyogTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNw
cCAqLywKIAkJCQlFMTNFRjM0MjE2ODRFQ0Y0MDAzNEM4M0YgLyogTmV0d29ya1N0b3JhZ2VTZXNz
aW9uLmggKi8sCiAJCQkJQ0RDRDQxRTUxQzNEREIwOTAwOTY1RDk5IC8qIFBhcnNlZENvbnRlbnRS
YW5nZS5jcHAgKi8sCiAJCQkJQ0RDRDQxRTYxQzNEREIwOTAwOTY1RDk5IC8qIFBhcnNlZENvbnRl
bnRSYW5nZS5oICovLApAQCAtMzIxNTYsNiArMzIxNTksNyBAQAogCQkJCUE1NTYzOUQyMUM2RjA5
RTcwMDgwNkQ4RSAvKiBXb3JrZXJDb25zb2xlQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUEzRTI2NDMwMTQ3NDg5OTEwMDVBODU4OCAvKiBXb3JrZXJFdmVudFF1ZXVlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTJFNDM0NjQ4MEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJHbG9iYWxTY29w
ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFNEZEMDIwNDFEMEFGMkMxMDBEOEU1N0UgLyogTmV0
d29ya1N0b3JhZ2VTZXNzaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxOEMzOTVBMUM4REQ2
OTkwMDUxQzhBMyAvKiBXb3JrZXJHbG9iYWxTY29wZUZldGNoLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTUxODVGQ0IzMUJCNEM0RTgwMDEyODk4RiAvKiBXb3JrZXJHbG9iYWxTY29wZUluZGV4ZWRE
YXRhYmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5N0Y4RTY2NTE1MUQ0QTRCMDBEMkQxODEg
LyogV29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zLmNwcCBpbiBTb3VyY2VzICovLApJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9DYWNoZVZhbGlkYXRpb24uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ2FjaGVWYWxpZGF0
aW9uLmNwcAkocmV2aXNpb24gMjAxODA1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9DYWNoZVZhbGlkYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMzgsMTEgKzMzOCw3
IEBAIHN0YXRpYyBTdHJpbmcgaGVhZGVyVmFsdWVGb3JWYXJ5KGNvbnN0IFIKICAgICAvLyBXZSBj
b3VsZCBmZXRjaCB0aGUgY29va2llIHdoZW4gbWFraW5nIHRoZSByZXF1ZXN0IGJ1dCB0aGF0IHNl
ZW1zIG92ZXJraWxsIGFzIHRoZSBjYXNlIGlzIHZlcnkgcmFyZSBhbmQgaXQKICAgICAvLyBpcyBh
IGJsb2NraW5nIG9wZXJhdGlvbi4gVGhpcyBzaG91bGQgYmUgc3VmZmljaWVudCB0byBjb3ZlciBy
ZWFzb25hYmxlIGNhc2VzLgogICAgIGlmIChoZWFkZXJOYW1lID09IGh0dHBIZWFkZXJOYW1lU3Ry
aW5nKEhUVFBIZWFkZXJOYW1lOjpDb29raWUpKSB7Ci0gICAgICAgIGlmIChzZXNzaW9uSUQgIT0g
U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpIHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBE
b24ndCBrbm93IGhvdyB0byBnZXQgdGhlIGNvb2tpZS4gVGhlcmUgc2hvdWxkIGJlIGEgZ2xvYmFs
IHdheSB0byBnZXQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uIGZyb20gc2Vzc2lvbklELgotICAgICAg
ICAgICAgcmV0dXJuICIiOwotICAgICAgICB9Ci0gICAgICAgIGF1dG8mIHNlc3Npb24gPSBOZXR3
b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpOworICAgICAgICBhdXRv
JiBzZXNzaW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpmb3JTZXNzaW9uSUQoc2Vzc2lvbklE
KTsKICAgICAgICAgYXV0byogY29va2llU3RyYXRlZ3kgPSBwbGF0Zm9ybVN0cmF0ZWdpZXMoKSA/
IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5jb29raWVzU3RyYXRlZ3koKSA6IG51bGxwdHI7CiAgICAg
ICAgIGlmICghY29va2llU3RyYXRlZ3kpCiAgICAgICAgICAgICByZXR1cm4gY29va2llUmVxdWVz
dEhlYWRlckZpZWxkVmFsdWUoc2Vzc2lvbiwgcmVxdWVzdC5maXJzdFBhcnR5Rm9yQ29va2llcygp
LCByZXF1ZXN0LnVybCgpKTsKQEAgLTM3NCwxMCArMzcwLDYgQEAgYm9vbCB2ZXJpZnlWYXJ5aW5n
UmVxdWVzdEhlYWRlcnMoY29uc3QgVgogICAgICAgICAvLyBGSVhNRTogVmFyeTogKiBpbiByZXNw
b25zZSB3b3VsZCBpZGVhbGx5IHRyaWdnZXIgYSBjYWNoZSBkZWxldGUgaW5zdGVhZCBvZiBhIHN0
b3JlLgogICAgICAgICBpZiAodmFyeWluZ1JlcXVlc3RIZWFkZXIuZmlyc3QgPT0gIioiKQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAoc2Vzc2lvbklEICE9IFNlc3Npb25J
RDo6ZGVmYXVsdFNlc3Npb25JRCgpICYmIHZhcnlpbmdSZXF1ZXN0SGVhZGVyLmZpcnN0ID09IGh0
dHBIZWFkZXJOYW1lU3RyaW5nKEhUVFBIZWFkZXJOYW1lOjpDb29raWUpKSB7Ci0gICAgICAgICAg
ICAvLyBGSVhNRTogU2VlIHRoZSBjb21tZW50IGluIGhlYWRlclZhbHVlRm9yVmFyeS4KLSAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQogICAgICAgICBTdHJpbmcgaGVhZGVyVmFs
dWUgPSBoZWFkZXJWYWx1ZUZvclZhcnkocmVxdWVzdCwgdmFyeWluZ1JlcXVlc3RIZWFkZXIuZmly
c3QsIHNlc3Npb25JRCk7CiAgICAgICAgIGlmIChoZWFkZXJWYWx1ZSAhPSB2YXJ5aW5nUmVxdWVz
dEhlYWRlci5zZWNvbmQpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNl
c3Npb24uY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTmV0d29ya1N0
b3JhZ2VTZXNzaW9uLmgiCisKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBIYXNo
TWFwPFNlc3Npb25JRCwgTmV0d29ya1N0b3JhZ2VTZXNzaW9uKj4mIHNlc3Npb25zTWFwKCkKK3sK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxTZXNzaW9uSUQsIE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbio+PiBtYXA7CisgICAgcmV0dXJuIG1hcDsKK30KKworTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICA6
IG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKK3sKKyAgICBpZiAoc2Vzc2lvbklEID09IFNlc3Npb25J
RDo6ZGVmYXVsdFNlc3Npb25JRCgpKQorICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKCFzZXNz
aW9uc01hcCgpLmNvbnRhaW5zKHNlc3Npb25JRCkpOworICAgIHNlc3Npb25zTWFwKCkuYWRkKHNl
c3Npb25JRCwgdGhpcyk7Cit9CisKK05ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6fk5ldHdvcmtTdG9y
YWdlU2Vzc2lvbigpCit7CisgICAgaWYgKG1fc2Vzc2lvbklEID09IFNlc3Npb25JRDo6ZGVmYXVs
dFNlc3Npb25JRCgpKQorICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKHNlc3Npb25zTWFwKCku
Y29udGFpbnMobV9zZXNzaW9uSUQpKTsKKyAgICBzZXNzaW9uc01hcCgpLnJlbW92ZShtX3Nlc3Np
b25JRCk7Cit9CisKK05ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
Ojpmb3JTZXNzaW9uSUQoU2Vzc2lvbklEIHNlc3Npb25JRCkKK3sKKyAgICBpZiAoc2Vzc2lvbklE
ID09IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKQorICAgICAgICByZXR1cm4gZGVmYXVs
dFN0b3JhZ2VTZXNzaW9uKCk7CisKKyAgICBBU1NFUlQoc2Vzc2lvbnNNYXAoKS5jb250YWlucyhz
ZXNzaW9uSUQpKTsKKyAgICByZXR1cm4gKnNlc3Npb25zTWFwKCkuZ2V0KHNlc3Npb25JRCk7Cit9
CisKK307CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9y
YWdlU2Vzc2lvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgJKHJldmlzaW9uIDIwMTgwNCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQ5LDYgKzQ5LDEwIEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyB2b2lkIHN3aXRjaFRvTmV3VGVzdGluZ1Nlc3Npb24oKTsKIAorICAgIHN0YXRpYyBOZXR3
b3JrU3RvcmFnZVNlc3Npb24mIGZvclNlc3Npb25JRChTZXNzaW9uSUQpOworCisgICAgV0VCQ09S
RV9FWFBPUlQgfk5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpOworCiAgICAgU2Vzc2lvbklEIHNlc3Np
b25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CiAgICAgQ3JlZGVudGlhbFN0b3Jh
Z2UmIGNyZWRlbnRpYWxTdG9yYWdlKCkgeyByZXR1cm4gbV9jcmVkZW50aWFsU3RvcmFnZTsgfQog
CkBAIC02MCwxOCArNjQsMTggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIFJldGFpblB0
cjxDRkhUVFBDb29raWVTdG9yYWdlUmVmPiBjb29raWVTdG9yYWdlKCkgY29uc3Q7CiAjZWxpZiBV
U0UoU09VUCkKICAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb24oU2Vzc2lvbklELCBzdGQ6OnVuaXF1
ZV9wdHI8U291cE5ldHdvcmtTZXNzaW9uPik7Ci0gICAgfk5ldHdvcmtTdG9yYWdlU2Vzc2lvbigp
OwogCiAgICAgU291cE5ldHdvcmtTZXNzaW9uJiBzb3VwTmV0d29ya1Nlc3Npb24oKSBjb25zdDsK
ICAgICB2b2lkIHNldFNvdXBOZXR3b3JrU2Vzc2lvbihzdGQ6OnVuaXF1ZV9wdHI8U291cE5ldHdv
cmtTZXNzaW9uPik7CiAjZWxzZQogICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbihTZXNzaW9uSUQs
IE5ldHdvcmtpbmdDb250ZXh0Kik7Ci0gICAgfk5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpOwogCiAg
ICAgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQoKSBjb25zdDsKICNlbmRpZgogCiBwcml2YXRl
OgorICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbihTZXNzaW9uSUQpOworCiAgICAgU2Vzc2lvbklE
IG1fc2Vzc2lvbklEOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFVTRShDRk5FVFdPUkspCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vz
c2lvbkNGTmV0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcAkocmV2aXNpb24gMjAxODA0KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Np
b25DRk5ldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyLDkgKzQyLDkgQEAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24o
U2Vzc2lvbklEIHNlc3Npb25JRCwgUmV0YWluUHRyPENGVVJMU3RvcmFnZVNlc3Npb25SZWY+IHBs
YXRmb3JtU2Vzc2lvbikKLSAgICA6IG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKLSAgICAsIG1fcGxh
dGZvcm1TZXNzaW9uKHBsYXRmb3JtU2Vzc2lvbikKKyAgICA6IE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bihzZXNzaW9uSUQpCiB7CisgICAgbV9wbGF0Zm9ybVNlc3Npb24gPSBXVEZNb3ZlKHBsYXRmb3Jt
U2Vzc2lvbik7CiB9CiAKIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNz
aW9uPiYgZGVmYXVsdE5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtT
dG9yYWdlU2Vzc2lvblNvdXAuY3BwCShyZXZpc2lvbiAyMDE4MDQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM3LDEzICszNyw5IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKFNlc3Npb25JRCBzZXNz
aW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxTb3VwTmV0d29ya1Nlc3Npb24+IHNlc3Npb24pCi0gICAg
OiBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCi0gICAgLCBtX3Nlc3Npb24oV1RGTW92ZShzZXNzaW9u
KSkKLXsKLX0KLQotTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjp+TmV0d29ya1N0b3JhZ2VTZXNzaW9u
KCkKKyAgICA6IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpCiB7CisgICAgbV9zZXNz
aW9uID0gV1RGTW92ZShzZXNzaW9uKTsKIH0KIAogc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxOZXR3
b3JrU3RvcmFnZVNlc3Npb24+JiBkZWZhdWx0U2Vzc2lvbigpCkluZGV4OiBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAy
MDE4MDUpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxNSBAQAorMjAxNi0wNi0xMCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisK
KyAgICAgICAgVmFyeTpDb29raWUgdmFsaWRhdGlvbiBkb2Vzbid0IHdvcmsgaW4gcHJpdmF0ZSBi
cm93c2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTU4NjE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBodHRwL3Rlc3RzL2NhY2hlL2Rpc2stY2FjaGUvZGlzay1jYWNoZS12YXJ5LWNvb2tpZS1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9jYWNoZS9kaXNrLWNhY2hlL2Rpc2stY2Fj
aGUtdmFyeS1jb29raWUuaHRtbDoKKworICAgICAgICBFeGFwYW5kIHRoZSBleGlzdGluZyB0ZXN0
IHRvIGNvdmVyIG1lbW9yeSBjYWNoZSBhbmQgcHJpdmF0ZSBicm93c2luZy4KKwogMjAxNi0wNi0w
NiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViS2l0IG1l
bW9yeSBjYWNoZSBkb2Vzbid0IHJlc3BlY3QgVmFyeSBoZWFkZXIKSW5kZXg6IExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9kaXNrLWNhY2hlLXZhcnktY29va2llLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hlL2Rpc2st
Y2FjaGUvZGlzay1jYWNoZS12YXJ5LWNvb2tpZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIwMTgw
NCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9kaXNrLWNhY2hl
LXZhcnktY29va2llLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw4ICsxLDkgQEAK
LVRlc3QgdGhhdCBWYXJ5OiBDb29raWUgaW4gcmVzcG9uc2UgaXMgaGFuZGxlZCBieSB0aGUgZGlz
ayBjYWNoZS4KK1Rlc3QgdGhhdCBWYXJ5OiBDb29raWUgaW4gcmVzcG9uc2UgaXMgaGFuZGxlZCBi
eSBjYWNoZXMuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCitUZXN0aW5nIGRpc2sg
Y2FjaGUKIFNldHRpbmcgY29va2llIGFuZCBsb2FkaW5nCiByZXNwb25zZSBoZWFkZXJzOiB7IkNh
Y2hlLWNvbnRyb2wiOiJtYXgtYWdlPTEwMCJ9CiByZXNwb25zZSBzb3VyY2U6IE5ldHdvcmsKQEAg
LTMxLDYgKzMyLDY0IEBAIHJlc3BvbnNlIHNvdXJjZTogRGlzayBjYWNoZQogcmVzcG9uc2UgaGVh
ZGVyczogeyJWYXJ5IjoiQ29va2llIiwiQ2FjaGUtY29udHJvbCI6Im1heC1hZ2U9MTAwIn0KIHJl
c3BvbnNlIHNvdXJjZTogRGlzayBjYWNoZQogCitUZXN0aW5nIG1lbW9yeSBjYWNoZQorU2V0dGlu
ZyBjb29raWUgYW5kIGxvYWRpbmcKK3Jlc3BvbnNlIGhlYWRlcnM6IHsiQ2FjaGUtY29udHJvbCI6
Im1heC1hZ2U9MTAwIn0KK3Jlc3BvbnNlIHNvdXJjZTogTmV0d29yaworCityZXNwb25zZSBoZWFk
ZXJzOiB7IlZhcnkiOiJDb29raWUiLCJDYWNoZS1jb250cm9sIjoibWF4LWFnZT0xMDAifQorcmVz
cG9uc2Ugc291cmNlOiBOZXR3b3JrCisKK0xvYWRpbmcgYWdhaW4KK3Jlc3BvbnNlIGhlYWRlcnM6
IHsiQ2FjaGUtY29udHJvbCI6Im1heC1hZ2U9MTAwIn0KK3Jlc3BvbnNlIHNvdXJjZTogTWVtb3J5
IGNhY2hlCisKK3Jlc3BvbnNlIGhlYWRlcnM6IHsiVmFyeSI6IkNvb2tpZSIsIkNhY2hlLWNvbnRy
b2wiOiJtYXgtYWdlPTEwMCJ9CityZXNwb25zZSBzb3VyY2U6IE1lbW9yeSBjYWNoZQorCitDaGFu
Z2luZyBjb29raWUgYW5kIGxvYWRpbmcKK3Jlc3BvbnNlIGhlYWRlcnM6IHsiQ2FjaGUtY29udHJv
bCI6Im1heC1hZ2U9MTAwIn0KK3Jlc3BvbnNlIHNvdXJjZTogTWVtb3J5IGNhY2hlCisKK3Jlc3Bv
bnNlIGhlYWRlcnM6IHsiVmFyeSI6IkNvb2tpZSIsIkNhY2hlLWNvbnRyb2wiOiJtYXgtYWdlPTEw
MCJ9CityZXNwb25zZSBzb3VyY2U6IE5ldHdvcmsKKworTG9hZGluZyBhZ2FpbgorcmVzcG9uc2Ug
aGVhZGVyczogeyJDYWNoZS1jb250cm9sIjoibWF4LWFnZT0xMDAifQorcmVzcG9uc2Ugc291cmNl
OiBNZW1vcnkgY2FjaGUKKworcmVzcG9uc2UgaGVhZGVyczogeyJWYXJ5IjoiQ29va2llIiwiQ2Fj
aGUtY29udHJvbCI6Im1heC1hZ2U9MTAwIn0KK3Jlc3BvbnNlIHNvdXJjZTogTWVtb3J5IGNhY2hl
CisKK1Rlc3RpbmcgbWVtb3J5IGNhY2hlIGluIHByaXZhdGUgYnJvd3NpbmcKK1NldHRpbmcgY29v
a2llIGFuZCBsb2FkaW5nCityZXNwb25zZSBoZWFkZXJzOiB7IkNhY2hlLWNvbnRyb2wiOiJtYXgt
YWdlPTEwMCJ9CityZXNwb25zZSBzb3VyY2U6IE5ldHdvcmsKKworcmVzcG9uc2UgaGVhZGVyczog
eyJWYXJ5IjoiQ29va2llIiwiQ2FjaGUtY29udHJvbCI6Im1heC1hZ2U9MTAwIn0KK3Jlc3BvbnNl
IHNvdXJjZTogTmV0d29yaworCitMb2FkaW5nIGFnYWluCityZXNwb25zZSBoZWFkZXJzOiB7IkNh
Y2hlLWNvbnRyb2wiOiJtYXgtYWdlPTEwMCJ9CityZXNwb25zZSBzb3VyY2U6IE1lbW9yeSBjYWNo
ZQorCityZXNwb25zZSBoZWFkZXJzOiB7IlZhcnkiOiJDb29raWUiLCJDYWNoZS1jb250cm9sIjoi
bWF4LWFnZT0xMDAifQorcmVzcG9uc2Ugc291cmNlOiBNZW1vcnkgY2FjaGUKKworQ2hhbmdpbmcg
Y29va2llIGFuZCBsb2FkaW5nCityZXNwb25zZSBoZWFkZXJzOiB7IkNhY2hlLWNvbnRyb2wiOiJt
YXgtYWdlPTEwMCJ9CityZXNwb25zZSBzb3VyY2U6IE1lbW9yeSBjYWNoZQorCityZXNwb25zZSBo
ZWFkZXJzOiB7IlZhcnkiOiJDb29raWUiLCJDYWNoZS1jb250cm9sIjoibWF4LWFnZT0xMDAifQor
cmVzcG9uc2Ugc291cmNlOiBOZXR3b3JrCisKK0xvYWRpbmcgYWdhaW4KK3Jlc3BvbnNlIGhlYWRl
cnM6IHsiQ2FjaGUtY29udHJvbCI6Im1heC1hZ2U9MTAwIn0KK3Jlc3BvbnNlIHNvdXJjZTogTWVt
b3J5IGNhY2hlCisKK3Jlc3BvbnNlIGhlYWRlcnM6IHsiVmFyeSI6IkNvb2tpZSIsIkNhY2hlLWNv
bnRyb2wiOiJtYXgtYWdlPTEwMCJ9CityZXNwb25zZSBzb3VyY2U6IE1lbW9yeSBjYWNoZQorCiBQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9kaXNrLWNhY2hlLXZhcnktY29v
a2llLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS9kaXNr
LWNhY2hlL2Rpc2stY2FjaGUtdmFyeS1jb29raWUuaHRtbAkocmV2aXNpb24gMjAxODA0KQorKysg
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS9kaXNrLWNhY2hlL2Rpc2stY2FjaGUtdmFyeS1j
b29raWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMywzMiArMyw0OCBAQAogPGJvZHk+CiA8c2Ny
aXB0PgogCi12YXIgdGVzdHMgPQotWwotICB7IHJlc3BvbnNlSGVhZGVyczogeydDYWNoZS1jb250
cm9sJzogJ21heC1hZ2U9MTAwJ30gfSwKLSAgeyByZXNwb25zZUhlYWRlcnM6IHsnVmFyeSc6ICdD
b29raWUnLCAnQ2FjaGUtY29udHJvbCc6ICdtYXgtYWdlPTEwMCd9IH0sCi1dOwotCi1kZXNjcmlw
dGlvbigiVGVzdCB0aGF0IFZhcnk6IENvb2tpZSBpbiByZXNwb25zZSBpcyBoYW5kbGVkIGJ5IHRo
ZSBkaXNrIGNhY2hlLiIpOwotCi1kZWJ1ZygiU2V0dGluZyBjb29raWUgYW5kIGxvYWRpbmciKTsK
LWRvY3VtZW50LmNvb2tpZSA9ICJjb29raWU9dmFsdWUiOwotbG9hZFJlc291cmNlcyh0ZXN0cywg
ZnVuY3Rpb24gKCkgewotICAgIHByaW50UmVzdWx0cyh0ZXN0cyk7Ci0gICAgZGVidWcoIkxvYWRp
bmcgYWdhaW4iKTsKLSAgICBsb2FkUmVzb3VyY2VzKHRlc3RzLCBmdW5jdGlvbiAoKSB7CisKK2Rl
c2NyaXB0aW9uKCJUZXN0IHRoYXQgVmFyeTogQ29va2llIGluIHJlc3BvbnNlIGlzIGhhbmRsZWQg
YnkgY2FjaGVzLiIpOworCitmdW5jdGlvbiB0ZXN0Q29va2llcyh0ZXN0RGlza0NhY2hlLCBjb21w
bGV0aW9uSGFuZGxlcikKK3sKKyAgICB2YXIgdGVzdHMgPSBbCisgICAgICB7IHJlc3BvbnNlSGVh
ZGVyczogeydDYWNoZS1jb250cm9sJzogJ21heC1hZ2U9MTAwJ30gfSwKKyAgICAgIHsgcmVzcG9u
c2VIZWFkZXJzOiB7J1ZhcnknOiAnQ29va2llJywgJ0NhY2hlLWNvbnRyb2wnOiAnbWF4LWFnZT0x
MDAnfSB9LAorICAgIF07CisKKyAgICB2YXIgb3B0aW9ucyA9IHsgIkNsZWFyTWVtb3J5Q2FjaGUi
IDogdGVzdERpc2tDYWNoZSB9OworICAgIGRlYnVnKCJTZXR0aW5nIGNvb2tpZSBhbmQgbG9hZGlu
ZyIpOworICAgIGRvY3VtZW50LmNvb2tpZSA9ICJjb29raWU9IiArIE1hdGguZmxvb3IoKE1hdGgu
cmFuZG9tKCkgKiAxMDAwMDAwMDAwMDAwKSk7CisgICAgbG9hZFJlc291cmNlc1dpdGhPcHRpb25z
KHRlc3RzLCBvcHRpb25zLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHByaW50UmVzdWx0cyh0ZXN0
cyk7Ci0gICAgICAgIGRlYnVnKCJDaGFuZ2luZyBjb29raWUgYW5kIGxvYWRpbmciKTsKLSAgICAg
ICAgZG9jdW1lbnQuY29va2llID0gImNvb2tpZT1vdGhlcnZhbHVlIjsKLSAgICAgICAgbG9hZFJl
c291cmNlcyh0ZXN0cywgZnVuY3Rpb24gKCkgeworICAgICAgICBkZWJ1ZygiTG9hZGluZyBhZ2Fp
biIpOworICAgICAgICBsb2FkUmVzb3VyY2VzV2l0aE9wdGlvbnModGVzdHMsIG9wdGlvbnMsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgIHByaW50UmVzdWx0cyh0ZXN0cyk7Ci0gICAgICAgICAg
ICBkZWJ1ZygiTG9hZGluZyBhZ2FpbiIpOwotICAgICAgICAgICAgbG9hZFJlc291cmNlcyh0ZXN0
cywgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgcHJpbnRSZXN1bHRzKHRlc3RzKTsKLSAg
ICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgZGVidWcoIkNoYW5naW5n
IGNvb2tpZSBhbmQgbG9hZGluZyIpOworICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gImNv
b2tpZSIgKyBNYXRoLmZsb29yKChNYXRoLnJhbmRvbSgpICogMTAwMDAwMDAwMDAwMCkpOworICAg
ICAgICAgICAgbG9hZFJlc291cmNlc1dpdGhPcHRpb25zKHRlc3RzLCBvcHRpb25zLCBmdW5jdGlv
biAoKSB7CisgICAgICAgICAgICAgICAgcHJpbnRSZXN1bHRzKHRlc3RzKTsKKyAgICAgICAgICAg
ICAgICBkZWJ1ZygiTG9hZGluZyBhZ2FpbiIpOworICAgICAgICAgICAgICAgIGxvYWRSZXNvdXJj
ZXNXaXRoT3B0aW9ucyh0ZXN0cywgb3B0aW9ucywgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAg
ICAgICAgIHByaW50UmVzdWx0cyh0ZXN0cyk7CisgICAgICAgICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoKTsKKyAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0pOwogICAgICAg
ICB9KTsKICAgICB9KTsKK30KKworZGVidWcoIlRlc3RpbmcgZGlzayBjYWNoZSIpOwordGVzdENv
b2tpZXModHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgIGRlYnVnKCJUZXN0aW5nIG1lbW9yeSBjYWNo
ZSIpOworICAgIHRlc3RDb29raWVzKGZhbHNlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGRlYnVn
KCJUZXN0aW5nIG1lbW9yeSBjYWNoZSBpbiBwcml2YXRlIGJyb3dzaW5nIik7CisgICAgICAgIHRl
c3RSdW5uZXIuc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgdGVzdENv
b2tpZXMoZmFsc2UsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwor
ICAgICAgICB9KTsKKyAgICB9KTsKIH0pOwogCiA8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281012</attachid>
            <date>2016-06-10 09:46:46 -0700</date>
            <delta_ts>2016-06-11 02:56:20 -0700</delta_ts>
            <desc>patch</desc>
            <filename>private-browsing-vary-cookie-2.patch</filename>
            <type>text/plain</type>
            <size>20104</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMTkyNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBACisyMDE2LTA2LTEwICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBWYXJ5OkNvb2tpZSB2YWxpZGF0
aW9uIGRvZXNuJ3Qgd29yayBpbiBwcml2YXRlIGJyb3dzaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg2MTYKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHdhc24ndCBpbXBsZW1lbnRlZCBiZWNh
dXNlIHRoZXJlIHdhcyBubyB3YXkgdG8gZ2V0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiBmcm9tCisg
ICAgICAgIGEgU2Vzc2lvbklEIG9uIFdlYkNvcmUgc2lkZS4KKworICAgICAgICBUaGUgcGF0Y2gg
YWRkcyBhIHNpbXBsZSBXZWJDb3JlIGxldmVsIHdlYWsgbWFwIHRoYXQgYWxsb3dzIGdldHRpbmcg
TmV0d29ya1N0b3JhZ2VTZXNzaW9ucworICAgICAgICBmcm9tIFNlc3Npb25JRC4gVGhpcyBzZWVt
ZWQgbGlrZSB0aGUgY2xlYW5lc3Qgd2F5IHRvIGRvIHRoaXMgd2l0aG91dCBiaWcgcmVmYWN0b3Jp
bmcKKyAgICAgICAgYXJvdW5kIGN1cnJldG5seSBXZWJLaXQyIGxldmVsIFNlc3Npb25UcmFja2Vy
LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQ2FjaGVWYWxp
ZGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmhlYWRlclZhbHVlRm9yVmFyeSk6CisKKyAg
ICAgICAgICAgIEdldCBOZXR3b3JrU3RvcmFnZVNlc3Npb24gZnJvbSBTZXNzaW9uSUQgZm9yIGNv
b2tpZXMKKworICAgICAgICAoV2ViQ29yZTo6dmVyaWZ5VmFyeWluZ1JlcXVlc3RIZWFkZXJzKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHA6IEFk
ZGVkLgorCisgICAgICAgICAgICBBZGQgcGxhdGZvcm0gaW5kZXBlbmRlbnQgLmNwcCBmb3IgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uLgorICAgICAgICAgICAgSW1wbGVtZW50IGEgd2VhayBtYXAgZm9y
IFNlc3Npb25JRCAtPiBOZXR3b3JrU3RvcmFnZVNlc3Npb24uCisKKyAgICAgICAgKFdlYkNvcmU6
OnNlc3Npb25zTWFwKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
TmV0d29ya1N0b3JhZ2VTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6fk5ldHdvcmtTdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpOZXR3
b3JrU3RvcmFnZVNlc3Npb246OmZvclNlc3Npb25JRCk6CisKKyAgICAgICAgICAgIEdldCBOZXR3
b3JrU3RvcmFnZVNlc3Npb24gZm9yIHNlc3Npb25JRC4KKworICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OnNlc3Npb25JRCk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OmNyZWRlbnRpYWxTdG9yYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKToKKworICAgICAg
ICAgICAgQ2FsbCB0byBjb21tb24gY29uc3RydWN0b3IuCisKKyAgICAgICAgKFdlYkNvcmU6OmRl
ZmF1bHROZXR3b3JrU3RvcmFnZVNlc3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
c291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKToKKworICAgICAgICAg
ICAgQ2FsbCB0byBjb21tb24gY29uc3RydWN0b3IuCisKKyAgICAgICAgKFdlYkNvcmU6OmRlZmF1
bHRTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6fk5l
dHdvcmtTdG9yYWdlU2Vzc2lvbik6IERlbGV0ZWQuCisKIDIwMTYtMDYtMTAgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNZXNzYWdlUG9ydCBzaG91bGQgYmUgZXhw
b3NlZCB0byB3b3JrZXJzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMjAxODA0
KQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIz
MzgsNiArMjMzOCw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9uZXR3b3Jr
L0hUVFBQYXJzZXJzLmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsvTUlNRUhlYWRlci5jcHAKICAg
ICBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcAorICAgIHBsYXRmb3Jt
L25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsv
UGFyc2VkQ29udGVudFJhbmdlLmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsvUGFyc2VkQ29udGVu
dFR5cGUuY3BwCiAgICAgcGxhdGZvcm0vbmV0d29yay9Qcm90ZWN0aW9uU3BhY2VCYXNlLmNwcApJ
bmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkocmV2aXNpb24gMjAxODA0KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC02NzI1LDYgKzY3MjUsNyBAQAog
CQlFNEU5QjExRDE4MTQ1NjlDMDAzQUNDREYgLyogU2ltcGxlTGluZUxheW91dEZ1bmN0aW9ucy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRFOUIxMUMx
ODE0NTY5QzAwM0FDQ0RGIC8qIFNpbXBsZUxpbmVMYXlvdXRGdW5jdGlvbnMuaCAqLzsgfTsKIAkJ
RTRGOUVFRjIxNTZEOUZGQTAwRDIzRTdFIC8qIFN0eWxlU2hlZXRDb250ZW50cy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEY5RUVGMDE1NkQ4NEM0
MDBEMjNFN0UgLyogU3R5bGVTaGVldENvbnRlbnRzLmNwcCAqLzsgfTsKIAkJRTRGOUVFRjMxNTZE
QTAwNzAwRDIzRTdFIC8qIFN0eWxlU2hlZXRDb250ZW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRGOUVFRjExNTZEODRDNDAwRDIzRTdFIC8qIFN0
eWxlU2hlZXRDb250ZW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCUU0RkQwMjA0MUQwQUYyQzEwMEQ4RTU3RSAvKiBOZXR3b3JrU3RvcmFnZVNl
c3Npb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTRGRDAyMDMxRDBBRjJDMTAwRDhFNTdFIC8qIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAgKi87
IH07CiAJCUU1MUE4MURGMTcyOThENzcwMEJGQ0E2MSAvKiBKU1BlcmZvcm1hbmNlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1MUE4MURFMTcyOThE
NzcwMEJGQ0E2MSAvKiBKU1BlcmZvcm1hbmNlLmNwcCAqLzsgfTsKIAkJRTUyNkFGM0YxNzI3RjhG
MjAwRTQxNzgxIC8qIFBlcmZvcm1hbmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEU1MjZBRjNFMTcyN0Y4RjIwMEU0MTc4MSAvKiBQZXJmb3JtYW5j
ZS5jcHAgKi87IH07CiAJCUU1NUY0OTdBMTUxQjg4ODAwMEJCNjdEQiAvKiBMZW5ndGhGdW5jdGlv
bnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTU1
RjQ5NzkxNTFCODg4MDAwQkI2N0RCIC8qIExlbmd0aEZ1bmN0aW9ucy5jcHAgKi87IH07CkBAIC0x
NDgwMSw2ICsxNDgwMiw3IEBACiAJCUU0RTlCMTFDMTgxNDU2OUMwMDNBQ0NERiAvKiBTaW1wbGVM
aW5lTGF5b3V0RnVuY3Rpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNp
bXBsZUxpbmVMYXlvdXRGdW5jdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTRGOUVFRjAxNTZEODRDNDAwRDIzRTdFIC8qIFN0eWxlU2hlZXRDb250ZW50cy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHlsZVNoZWV0Q29udGVudHMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNEY5RUVGMTE1NkQ4NEM0MDBEMjNFN0UgLyog
U3R5bGVTaGVldENvbnRlbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0
eWxlU2hlZXRDb250ZW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNEZEMDIw
MzFEMEFGMkMxMDBEOEU1N0UgLyogTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1MUE4MURFMTcyOThENzcwMEJGQ0E2MSAvKiBK
U1BlcmZvcm1hbmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
UGVyZm9ybWFuY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTI2QUYzRTE3
MjdGOEYyMDBFNDE3ODEgLyogUGVyZm9ybWFuY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUGVyZm9ybWFuY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFNTVGNDk3OTE1MUI4ODgwMDBCQjY3REIgLyogTGVuZ3RoRnVuY3Rpb25zLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExlbmd0aEZ1bmN0aW9ucy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzc4Nyw2ICsxNzc4OSw3IEBACiAJCQkJNjI4
RDIxNEIxMjEzMUVEMTAwNTVEQ0ZDIC8qIE5ldHdvcmtpbmdDb250ZXh0LmggKi8sCiAJCQkJMUE3
RkE2MUEwRERBM0JCRTAwMjhGOEE1IC8qIE5ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcCAqLywKIAkJ
CQkxQTdGQTYxODBEREEzQjNBMDAyOEY4QTUgLyogTmV0d29ya1N0YXRlTm90aWZpZXIuaCAqLywK
KwkJCQlFNEZEMDIwMzFEMEFGMkMxMDBEOEU1N0UgLyogTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNw
cCAqLywKIAkJCQlFMTNFRjM0MjE2ODRFQ0Y0MDAzNEM4M0YgLyogTmV0d29ya1N0b3JhZ2VTZXNz
aW9uLmggKi8sCiAJCQkJQ0RDRDQxRTUxQzNEREIwOTAwOTY1RDk5IC8qIFBhcnNlZENvbnRlbnRS
YW5nZS5jcHAgKi8sCiAJCQkJQ0RDRDQxRTYxQzNEREIwOTAwOTY1RDk5IC8qIFBhcnNlZENvbnRl
bnRSYW5nZS5oICovLApAQCAtMzIxNTYsNiArMzIxNTksNyBAQAogCQkJCUE1NTYzOUQyMUM2RjA5
RTcwMDgwNkQ4RSAvKiBXb3JrZXJDb25zb2xlQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUEzRTI2NDMwMTQ3NDg5OTEwMDVBODU4OCAvKiBXb3JrZXJFdmVudFF1ZXVlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTJFNDM0NjQ4MEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJHbG9iYWxTY29w
ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFNEZEMDIwNDFEMEFGMkMxMDBEOEU1N0UgLyogTmV0
d29ya1N0b3JhZ2VTZXNzaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxOEMzOTVBMUM4REQ2
OTkwMDUxQzhBMyAvKiBXb3JrZXJHbG9iYWxTY29wZUZldGNoLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTUxODVGQ0IzMUJCNEM0RTgwMDEyODk4RiAvKiBXb3JrZXJHbG9iYWxTY29wZUluZGV4ZWRE
YXRhYmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5N0Y4RTY2NTE1MUQ0QTRCMDBEMkQxODEg
LyogV29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zLmNwcCBpbiBTb3VyY2VzICovLApJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9DYWNoZVZhbGlkYXRpb24uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ2FjaGVWYWxpZGF0
aW9uLmNwcAkocmV2aXNpb24gMjAxODA1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9DYWNoZVZhbGlkYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMzgsMTEgKzMzOCw3
IEBAIHN0YXRpYyBTdHJpbmcgaGVhZGVyVmFsdWVGb3JWYXJ5KGNvbnN0IFIKICAgICAvLyBXZSBj
b3VsZCBmZXRjaCB0aGUgY29va2llIHdoZW4gbWFraW5nIHRoZSByZXF1ZXN0IGJ1dCB0aGF0IHNl
ZW1zIG92ZXJraWxsIGFzIHRoZSBjYXNlIGlzIHZlcnkgcmFyZSBhbmQgaXQKICAgICAvLyBpcyBh
IGJsb2NraW5nIG9wZXJhdGlvbi4gVGhpcyBzaG91bGQgYmUgc3VmZmljaWVudCB0byBjb3ZlciBy
ZWFzb25hYmxlIGNhc2VzLgogICAgIGlmIChoZWFkZXJOYW1lID09IGh0dHBIZWFkZXJOYW1lU3Ry
aW5nKEhUVFBIZWFkZXJOYW1lOjpDb29raWUpKSB7Ci0gICAgICAgIGlmIChzZXNzaW9uSUQgIT0g
U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpIHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBE
b24ndCBrbm93IGhvdyB0byBnZXQgdGhlIGNvb2tpZS4gVGhlcmUgc2hvdWxkIGJlIGEgZ2xvYmFs
IHdheSB0byBnZXQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uIGZyb20gc2Vzc2lvbklELgotICAgICAg
ICAgICAgcmV0dXJuICIiOwotICAgICAgICB9Ci0gICAgICAgIGF1dG8mIHNlc3Npb24gPSBOZXR3
b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpOworICAgICAgICBhdXRv
JiBzZXNzaW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpmb3JTZXNzaW9uSUQoc2Vzc2lvbklE
KTsKICAgICAgICAgYXV0byogY29va2llU3RyYXRlZ3kgPSBwbGF0Zm9ybVN0cmF0ZWdpZXMoKSA/
IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5jb29raWVzU3RyYXRlZ3koKSA6IG51bGxwdHI7CiAgICAg
ICAgIGlmICghY29va2llU3RyYXRlZ3kpCiAgICAgICAgICAgICByZXR1cm4gY29va2llUmVxdWVz
dEhlYWRlckZpZWxkVmFsdWUoc2Vzc2lvbiwgcmVxdWVzdC5maXJzdFBhcnR5Rm9yQ29va2llcygp
LCByZXF1ZXN0LnVybCgpKTsKQEAgLTM3NCwxMCArMzcwLDYgQEAgYm9vbCB2ZXJpZnlWYXJ5aW5n
UmVxdWVzdEhlYWRlcnMoY29uc3QgVgogICAgICAgICAvLyBGSVhNRTogVmFyeTogKiBpbiByZXNw
b25zZSB3b3VsZCBpZGVhbGx5IHRyaWdnZXIgYSBjYWNoZSBkZWxldGUgaW5zdGVhZCBvZiBhIHN0
b3JlLgogICAgICAgICBpZiAodmFyeWluZ1JlcXVlc3RIZWFkZXIuZmlyc3QgPT0gIioiKQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAoc2Vzc2lvbklEICE9IFNlc3Npb25J
RDo6ZGVmYXVsdFNlc3Npb25JRCgpICYmIHZhcnlpbmdSZXF1ZXN0SGVhZGVyLmZpcnN0ID09IGh0
dHBIZWFkZXJOYW1lU3RyaW5nKEhUVFBIZWFkZXJOYW1lOjpDb29raWUpKSB7Ci0gICAgICAgICAg
ICAvLyBGSVhNRTogU2VlIHRoZSBjb21tZW50IGluIGhlYWRlclZhbHVlRm9yVmFyeS4KLSAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQogICAgICAgICBTdHJpbmcgaGVhZGVyVmFs
dWUgPSBoZWFkZXJWYWx1ZUZvclZhcnkocmVxdWVzdCwgdmFyeWluZ1JlcXVlc3RIZWFkZXIuZmly
c3QsIHNlc3Npb25JRCk7CiAgICAgICAgIGlmIChoZWFkZXJWYWx1ZSAhPSB2YXJ5aW5nUmVxdWVz
dEhlYWRlci5zZWNvbmQpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNl
c3Npb24uY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTmV0d29ya1N0
b3JhZ2VTZXNzaW9uLmgiCisKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgorCisjaWYgVVNFKFNPVVApCisjaW5jbHVkZSAiU291cE5ldHdv
cmtTZXNzaW9uLmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgSGFz
aE1hcDxTZXNzaW9uSUQsIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbio+JiBzZXNzaW9uc01hcCgpCit7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8U2Vzc2lvbklELCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb24qPj4gbWFwOworICAgIHJldHVybiBtYXA7Cit9CisKK05ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCisgICAg
OiBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCit7CisgICAgaWYgKHNlc3Npb25JRCA9PSBTZXNzaW9u
SUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVCghc2Vz
c2lvbnNNYXAoKS5jb250YWlucyhzZXNzaW9uSUQpKTsKKyAgICBzZXNzaW9uc01hcCgpLmFkZChz
ZXNzaW9uSUQsIHRoaXMpOworfQorCitOZXR3b3JrU3RvcmFnZVNlc3Npb246On5OZXR3b3JrU3Rv
cmFnZVNlc3Npb24oKQoreworICAgIGlmIChtX3Nlc3Npb25JRCA9PSBTZXNzaW9uSUQ6OmRlZmF1
bHRTZXNzaW9uSUQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVChzZXNzaW9uc01hcCgp
LmNvbnRhaW5zKG1fc2Vzc2lvbklEKSk7CisgICAgc2Vzc2lvbnNNYXAoKS5yZW1vdmUobV9zZXNz
aW9uSUQpOworfQorCitOZXR3b3JrU3RvcmFnZVNlc3Npb24mIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6Zm9yU2Vzc2lvbklEKFNlc3Npb25JRCBzZXNzaW9uSUQpCit7CisgICAgaWYgKHNlc3Npb25J
RCA9PSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkKKyAgICAgICAgcmV0dXJuIGRlZmF1
bHRTdG9yYWdlU2Vzc2lvbigpOworCisgICAgQVNTRVJUKHNlc3Npb25zTWFwKCkuY29udGFpbnMo
c2Vzc2lvbklEKSk7CisgICAgcmV0dXJuICpzZXNzaW9uc01hcCgpLmdldChzZXNzaW9uSUQpOwor
fQorCit9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3Rv
cmFnZVNlc3Npb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCShyZXZpc2lvbiAyMDE4MDQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCSh3b3JraW5n
IGNvcHkpCkBAIC00OSw2ICs0OSwxMCBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgdm9pZCBzd2l0Y2hUb05ld1Rlc3RpbmdTZXNzaW9uKCk7CiAKKyAgICBzdGF0aWMgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uJiBmb3JTZXNzaW9uSUQoU2Vzc2lvbklEKTsKKworICAgIFdFQkNP
UkVfRVhQT1JUIH5OZXR3b3JrU3RvcmFnZVNlc3Npb24oKTsKKwogICAgIFNlc3Npb25JRCBzZXNz
aW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQogICAgIENyZWRlbnRpYWxTdG9y
YWdlJiBjcmVkZW50aWFsU3RvcmFnZSgpIHsgcmV0dXJuIG1fY3JlZGVudGlhbFN0b3JhZ2U7IH0K
IApAQCAtNjAsMTggKzY0LDE4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBSZXRhaW5Q
dHI8Q0ZIVFRQQ29va2llU3RvcmFnZVJlZj4gY29va2llU3RvcmFnZSgpIGNvbnN0OwogI2VsaWYg
VVNFKFNPVVApCiAgICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uKFNlc3Npb25JRCwgc3RkOjp1bmlx
dWVfcHRyPFNvdXBOZXR3b3JrU2Vzc2lvbj4pOwotICAgIH5OZXR3b3JrU3RvcmFnZVNlc3Npb24o
KTsKIAogICAgIFNvdXBOZXR3b3JrU2Vzc2lvbiYgc291cE5ldHdvcmtTZXNzaW9uKCkgY29uc3Q7
CiAgICAgdm9pZCBzZXRTb3VwTmV0d29ya1Nlc3Npb24oc3RkOjp1bmlxdWVfcHRyPFNvdXBOZXR3
b3JrU2Vzc2lvbj4pOwogI2Vsc2UKICAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb24oU2Vzc2lvbklE
LCBOZXR3b3JraW5nQ29udGV4dCopOwotICAgIH5OZXR3b3JrU3RvcmFnZVNlc3Npb24oKTsKIAog
ICAgIE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KCkgY29uc3Q7CiAjZW5kaWYKIAogcHJpdmF0
ZToKKyAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb24oU2Vzc2lvbklEKTsKKwogICAgIFNlc3Npb25J
RCBtX3Nlc3Npb25JRDsKIAogI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBVU0UoQ0ZORVRXT1JLKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNl
c3Npb25DRk5ldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHAJKHJldmlzaW9uIDIwMTgwNCkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uQ0ZOZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Miw5ICs0Miw5IEBACiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6TmV0d29ya1N0b3JhZ2VTZXNzaW9u
KFNlc3Npb25JRCBzZXNzaW9uSUQsIFJldGFpblB0cjxDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmPiBw
bGF0Zm9ybVNlc3Npb24pCi0gICAgOiBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCi0gICAgLCBtX3Bs
YXRmb3JtU2Vzc2lvbihwbGF0Zm9ybVNlc3Npb24pCisgICAgOiBOZXR3b3JrU3RvcmFnZVNlc3Np
b24oc2Vzc2lvbklEKQogeworICAgIG1fcGxhdGZvcm1TZXNzaW9uID0gV1RGTW92ZShwbGF0Zm9y
bVNlc3Npb24pOwogfQogCiBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbj4mIGRlZmF1bHROZXR3b3JrU3RvcmFnZVNlc3Npb24oKQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3Jr
U3RvcmFnZVNlc3Npb25Tb3VwLmNwcAkocmV2aXNpb24gMjAxODA0KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zNywxMyArMzcsOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBO
ZXR3b3JrU3RvcmFnZVNlc3Npb246Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbihTZXNzaW9uSUQgc2Vz
c2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8U291cE5ldHdvcmtTZXNzaW9uPiBzZXNzaW9uKQotICAg
IDogbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQotICAgICwgbV9zZXNzaW9uKFdURk1vdmUoc2Vzc2lv
bikpCi17Ci19Ci0KLU5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6fk5ldHdvcmtTdG9yYWdlU2Vzc2lv
bigpCisgICAgOiBOZXR3b3JrU3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKQogeworICAgIG1fc2Vz
c2lvbiA9IFdURk1vdmUoc2Vzc2lvbik7CiB9CiAKIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TmV0
d29ya1N0b3JhZ2VTZXNzaW9uPiYgZGVmYXVsdFNlc3Npb24oKQpJbmRleDogTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24g
MjAxODA1KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMTYtMDYtMTAgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgor
CisgICAgICAgIFZhcnk6Q29va2llIHZhbGlkYXRpb24gZG9lc24ndCB3b3JrIGluIHByaXZhdGUg
YnJvd3NpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1ODYxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogaHR0cC90ZXN0cy9jYWNoZS9kaXNrLWNhY2hlL2Rpc2stY2FjaGUtdmFyeS1jb29raWUtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9kaXNrLWNh
Y2hlLXZhcnktY29va2llLmh0bWw6CisKKyAgICAgICAgRXhhcGFuZCB0aGUgZXhpc3RpbmcgdGVz
dCB0byBjb3ZlciBtZW1vcnkgY2FjaGUgYW5kIHByaXZhdGUgYnJvd3NpbmcuCisKIDIwMTYtMDYt
MDYgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYktpdCBt
ZW1vcnkgY2FjaGUgZG9lc24ndCByZXNwZWN0IFZhcnkgaGVhZGVyCkluZGV4OiBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2NhY2hlL2Rpc2stY2FjaGUvZGlzay1jYWNoZS12YXJ5LWNvb2tpZS1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS9kaXNr
LWNhY2hlL2Rpc2stY2FjaGUtdmFyeS1jb29raWUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMDE4
MDQpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hlL2Rpc2stY2FjaGUvZGlzay1jYWNo
ZS12YXJ5LWNvb2tpZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsOCArMSw5IEBA
Ci1UZXN0IHRoYXQgVmFyeTogQ29va2llIGluIHJlc3BvbnNlIGlzIGhhbmRsZWQgYnkgdGhlIGRp
c2sgY2FjaGUuCitUZXN0IHRoYXQgVmFyeTogQ29va2llIGluIHJlc3BvbnNlIGlzIGhhbmRsZWQg
YnkgY2FjaGVzLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAorVGVzdGluZyBkaXNr
IGNhY2hlCiBTZXR0aW5nIGNvb2tpZSBhbmQgbG9hZGluZwogcmVzcG9uc2UgaGVhZGVyczogeyJD
YWNoZS1jb250cm9sIjoibWF4LWFnZT0xMDAifQogcmVzcG9uc2Ugc291cmNlOiBOZXR3b3JrCkBA
IC0zMSw2ICszMiw2NCBAQCByZXNwb25zZSBzb3VyY2U6IERpc2sgY2FjaGUKIHJlc3BvbnNlIGhl
YWRlcnM6IHsiVmFyeSI6IkNvb2tpZSIsIkNhY2hlLWNvbnRyb2wiOiJtYXgtYWdlPTEwMCJ9CiBy
ZXNwb25zZSBzb3VyY2U6IERpc2sgY2FjaGUKIAorVGVzdGluZyBtZW1vcnkgY2FjaGUKK1NldHRp
bmcgY29va2llIGFuZCBsb2FkaW5nCityZXNwb25zZSBoZWFkZXJzOiB7IkNhY2hlLWNvbnRyb2wi
OiJtYXgtYWdlPTEwMCJ9CityZXNwb25zZSBzb3VyY2U6IE5ldHdvcmsKKworcmVzcG9uc2UgaGVh
ZGVyczogeyJWYXJ5IjoiQ29va2llIiwiQ2FjaGUtY29udHJvbCI6Im1heC1hZ2U9MTAwIn0KK3Jl
c3BvbnNlIHNvdXJjZTogTmV0d29yaworCitMb2FkaW5nIGFnYWluCityZXNwb25zZSBoZWFkZXJz
OiB7IkNhY2hlLWNvbnRyb2wiOiJtYXgtYWdlPTEwMCJ9CityZXNwb25zZSBzb3VyY2U6IE1lbW9y
eSBjYWNoZQorCityZXNwb25zZSBoZWFkZXJzOiB7IlZhcnkiOiJDb29raWUiLCJDYWNoZS1jb250
cm9sIjoibWF4LWFnZT0xMDAifQorcmVzcG9uc2Ugc291cmNlOiBNZW1vcnkgY2FjaGUKKworQ2hh
bmdpbmcgY29va2llIGFuZCBsb2FkaW5nCityZXNwb25zZSBoZWFkZXJzOiB7IkNhY2hlLWNvbnRy
b2wiOiJtYXgtYWdlPTEwMCJ9CityZXNwb25zZSBzb3VyY2U6IE1lbW9yeSBjYWNoZQorCityZXNw
b25zZSBoZWFkZXJzOiB7IlZhcnkiOiJDb29raWUiLCJDYWNoZS1jb250cm9sIjoibWF4LWFnZT0x
MDAifQorcmVzcG9uc2Ugc291cmNlOiBOZXR3b3JrCisKK0xvYWRpbmcgYWdhaW4KK3Jlc3BvbnNl
IGhlYWRlcnM6IHsiQ2FjaGUtY29udHJvbCI6Im1heC1hZ2U9MTAwIn0KK3Jlc3BvbnNlIHNvdXJj
ZTogTWVtb3J5IGNhY2hlCisKK3Jlc3BvbnNlIGhlYWRlcnM6IHsiVmFyeSI6IkNvb2tpZSIsIkNh
Y2hlLWNvbnRyb2wiOiJtYXgtYWdlPTEwMCJ9CityZXNwb25zZSBzb3VyY2U6IE1lbW9yeSBjYWNo
ZQorCitUZXN0aW5nIG1lbW9yeSBjYWNoZSBpbiBwcml2YXRlIGJyb3dzaW5nCitTZXR0aW5nIGNv
b2tpZSBhbmQgbG9hZGluZworcmVzcG9uc2UgaGVhZGVyczogeyJDYWNoZS1jb250cm9sIjoibWF4
LWFnZT0xMDAifQorcmVzcG9uc2Ugc291cmNlOiBOZXR3b3JrCisKK3Jlc3BvbnNlIGhlYWRlcnM6
IHsiVmFyeSI6IkNvb2tpZSIsIkNhY2hlLWNvbnRyb2wiOiJtYXgtYWdlPTEwMCJ9CityZXNwb25z
ZSBzb3VyY2U6IE5ldHdvcmsKKworTG9hZGluZyBhZ2FpbgorcmVzcG9uc2UgaGVhZGVyczogeyJD
YWNoZS1jb250cm9sIjoibWF4LWFnZT0xMDAifQorcmVzcG9uc2Ugc291cmNlOiBNZW1vcnkgY2Fj
aGUKKworcmVzcG9uc2UgaGVhZGVyczogeyJWYXJ5IjoiQ29va2llIiwiQ2FjaGUtY29udHJvbCI6
Im1heC1hZ2U9MTAwIn0KK3Jlc3BvbnNlIHNvdXJjZTogTWVtb3J5IGNhY2hlCisKK0NoYW5naW5n
IGNvb2tpZSBhbmQgbG9hZGluZworcmVzcG9uc2UgaGVhZGVyczogeyJDYWNoZS1jb250cm9sIjoi
bWF4LWFnZT0xMDAifQorcmVzcG9uc2Ugc291cmNlOiBNZW1vcnkgY2FjaGUKKworcmVzcG9uc2Ug
aGVhZGVyczogeyJWYXJ5IjoiQ29va2llIiwiQ2FjaGUtY29udHJvbCI6Im1heC1hZ2U9MTAwIn0K
K3Jlc3BvbnNlIHNvdXJjZTogTmV0d29yaworCitMb2FkaW5nIGFnYWluCityZXNwb25zZSBoZWFk
ZXJzOiB7IkNhY2hlLWNvbnRyb2wiOiJtYXgtYWdlPTEwMCJ9CityZXNwb25zZSBzb3VyY2U6IE1l
bW9yeSBjYWNoZQorCityZXNwb25zZSBoZWFkZXJzOiB7IlZhcnkiOiJDb29raWUiLCJDYWNoZS1j
b250cm9sIjoibWF4LWFnZT0xMDAifQorcmVzcG9uc2Ugc291cmNlOiBNZW1vcnkgY2FjaGUKKwog
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hlL2Rpc2stY2FjaGUvZGlzay1jYWNoZS12YXJ5LWNv
b2tpZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUvZGlz
ay1jYWNoZS9kaXNrLWNhY2hlLXZhcnktY29va2llLmh0bWwJKHJldmlzaW9uIDIwMTgwNCkKKysr
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9kaXNrLWNhY2hlLXZhcnkt
Y29va2llLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMsMzIgKzMsNDggQEAKIDxib2R5PgogPHNj
cmlwdD4KIAotdmFyIHRlc3RzID0KLVsKLSAgeyByZXNwb25zZUhlYWRlcnM6IHsnQ2FjaGUtY29u
dHJvbCc6ICdtYXgtYWdlPTEwMCd9IH0sCi0gIHsgcmVzcG9uc2VIZWFkZXJzOiB7J1ZhcnknOiAn
Q29va2llJywgJ0NhY2hlLWNvbnRyb2wnOiAnbWF4LWFnZT0xMDAnfSB9LAotXTsKLQotZGVzY3Jp
cHRpb24oIlRlc3QgdGhhdCBWYXJ5OiBDb29raWUgaW4gcmVzcG9uc2UgaXMgaGFuZGxlZCBieSB0
aGUgZGlzayBjYWNoZS4iKTsKLQotZGVidWcoIlNldHRpbmcgY29va2llIGFuZCBsb2FkaW5nIik7
Ci1kb2N1bWVudC5jb29raWUgPSAiY29va2llPXZhbHVlIjsKLWxvYWRSZXNvdXJjZXModGVzdHMs
IGZ1bmN0aW9uICgpIHsKLSAgICBwcmludFJlc3VsdHModGVzdHMpOwotICAgIGRlYnVnKCJMb2Fk
aW5nIGFnYWluIik7Ci0gICAgbG9hZFJlc291cmNlcyh0ZXN0cywgZnVuY3Rpb24gKCkgeworCitk
ZXNjcmlwdGlvbigiVGVzdCB0aGF0IFZhcnk6IENvb2tpZSBpbiByZXNwb25zZSBpcyBoYW5kbGVk
IGJ5IGNhY2hlcy4iKTsKKworZnVuY3Rpb24gdGVzdENvb2tpZXModGVzdERpc2tDYWNoZSwgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgdmFyIHRlc3RzID0gWworICAgICAgeyByZXNwb25zZUhl
YWRlcnM6IHsnQ2FjaGUtY29udHJvbCc6ICdtYXgtYWdlPTEwMCd9IH0sCisgICAgICB7IHJlc3Bv
bnNlSGVhZGVyczogeydWYXJ5JzogJ0Nvb2tpZScsICdDYWNoZS1jb250cm9sJzogJ21heC1hZ2U9
MTAwJ30gfSwKKyAgICBdOworCisgICAgdmFyIG9wdGlvbnMgPSB7ICJDbGVhck1lbW9yeUNhY2hl
IiA6IHRlc3REaXNrQ2FjaGUgfTsKKyAgICBkZWJ1ZygiU2V0dGluZyBjb29raWUgYW5kIGxvYWRp
bmciKTsKKyAgICBkb2N1bWVudC5jb29raWUgPSAiY29va2llPSIgKyBNYXRoLmZsb29yKChNYXRo
LnJhbmRvbSgpICogMTAwMDAwMDAwMDAwMCkpOworICAgIGxvYWRSZXNvdXJjZXNXaXRoT3B0aW9u
cyh0ZXN0cywgb3B0aW9ucywgZnVuY3Rpb24gKCkgewogICAgICAgICBwcmludFJlc3VsdHModGVz
dHMpOwotICAgICAgICBkZWJ1ZygiQ2hhbmdpbmcgY29va2llIGFuZCBsb2FkaW5nIik7Ci0gICAg
ICAgIGRvY3VtZW50LmNvb2tpZSA9ICJjb29raWU9b3RoZXJ2YWx1ZSI7Ci0gICAgICAgIGxvYWRS
ZXNvdXJjZXModGVzdHMsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgZGVidWcoIkxvYWRpbmcgYWdh
aW4iKTsKKyAgICAgICAgbG9hZFJlc291cmNlc1dpdGhPcHRpb25zKHRlc3RzLCBvcHRpb25zLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBwcmludFJlc3VsdHModGVzdHMpOwotICAgICAgICAg
ICAgZGVidWcoIkxvYWRpbmcgYWdhaW4iKTsKLSAgICAgICAgICAgIGxvYWRSZXNvdXJjZXModGVz
dHMsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgIHByaW50UmVzdWx0cyh0ZXN0cyk7Ci0g
ICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIGRlYnVnKCJDaGFuZ2lu
ZyBjb29raWUgYW5kIGxvYWRpbmciKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJj
b29raWUiICsgTWF0aC5mbG9vcigoTWF0aC5yYW5kb20oKSAqIDEwMDAwMDAwMDAwMDApKTsKKyAg
ICAgICAgICAgIGxvYWRSZXNvdXJjZXNXaXRoT3B0aW9ucyh0ZXN0cywgb3B0aW9ucywgZnVuY3Rp
b24gKCkgeworICAgICAgICAgICAgICAgIHByaW50UmVzdWx0cyh0ZXN0cyk7CisgICAgICAgICAg
ICAgICAgZGVidWcoIkxvYWRpbmcgYWdhaW4iKTsKKyAgICAgICAgICAgICAgICBsb2FkUmVzb3Vy
Y2VzV2l0aE9wdGlvbnModGVzdHMsIG9wdGlvbnMsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAg
ICAgICAgICBwcmludFJlc3VsdHModGVzdHMpOworICAgICAgICAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7CisgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9KTsKICAgICAg
ICAgfSk7CiAgICAgfSk7Cit9CisKK2RlYnVnKCJUZXN0aW5nIGRpc2sgY2FjaGUiKTsKK3Rlc3RD
b29raWVzKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICBkZWJ1ZygiVGVzdGluZyBtZW1vcnkgY2Fj
aGUiKTsKKyAgICB0ZXN0Q29va2llcyhmYWxzZSwgZnVuY3Rpb24gKCkgeworICAgICAgICBkZWJ1
ZygiVGVzdGluZyBtZW1vcnkgY2FjaGUgaW4gcHJpdmF0ZSBicm93c2luZyIpOworICAgICAgICB0
ZXN0UnVubmVyLnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIHRlc3RD
b29raWVzKGZhbHNlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
KyAgICAgICAgfSk7CisgICAgfSk7CiB9KTsKIAogPC9zY3JpcHQ+Cg==
</data>
<flag name="review"
          id="304880"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281096</attachid>
            <date>2016-06-11 02:56:20 -0700</date>
            <delta_ts>2016-06-13 07:03:08 -0700</delta_ts>
            <desc>patch</desc>
            <filename>private-browsing-vary-cookie-3.patch</filename>
            <type>text/plain</type>
            <size>25230</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMTk2NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBACisyMDE2LTA2LTEwICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBWYXJ5OkNvb2tpZSB2YWxpZGF0
aW9uIGRvZXNuJ3Qgd29yayBpbiBwcml2YXRlIGJyb3dzaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg2MTYKKworICAgICAgICBSZXZpZXdlZCBi
eSBEYXJpbiBBZGxlci4KKworICAgICAgICBUaGlzIHdhc24ndCBpbXBsZW1lbnRlZCBiZWNhdXNl
IHRoZXJlIHdhcyBubyB3YXkgdG8gZ2V0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiBmcm9tCisgICAg
ICAgIGEgU2Vzc2lvbklEIG9uIFdlYkNvcmUgc2lkZS4KKworICAgICAgICBUaGUgcGF0Y2ggYWRk
cyBhIHNpbXBsZSBXZWJDb3JlIGxldmVsIHdlYWsgbWFwIHRoYXQgYWxsb3dzIGdldHRpbmcgTmV0
d29ya1N0b3JhZ2VTZXNzaW9ucworICAgICAgICBmcm9tIFNlc3Npb25JRC4gVGhpcyBzZWVtZWQg
bGlrZSB0aGUgY2xlYW5lc3Qgd2F5IHRvIGRvIHRoaXMgd2l0aG91dCBhIGJpZyByZWZhY3Rvcmlu
ZworICAgICAgICBhcm91bmQgdGhlIGN1cnJlbnRseSBXZWJLaXQyIGxldmVsIFNlc3Npb25UcmFj
a2VyLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQ2FjaGVW
YWxpZGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmhlYWRlclZhbHVlRm9yVmFyeSk6CisK
KyAgICAgICAgICAgIEdldCBOZXR3b3JrU3RvcmFnZVNlc3Npb24gZnJvbSBTZXNzaW9uSUQgZm9y
IGNvb2tpZXMKKworICAgICAgICAoV2ViQ29yZTo6dmVyaWZ5VmFyeWluZ1JlcXVlc3RIZWFkZXJz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHA6
IEFkZGVkLgorCisgICAgICAgICAgICBBZGQgcGxhdGZvcm0gaW5kZXBlbmRlbnQgLmNwcCBmb3Ig
TmV0d29ya1N0b3JhZ2VTZXNzaW9uLgorICAgICAgICAgICAgSW1wbGVtZW50IGEgd2VhayBtYXAg
Zm9yIFNlc3Npb25JRCAtPiBOZXR3b3JrU3RvcmFnZVNlc3Npb24uCisKKyAgICAgICAgKFdlYkNv
cmU6OnNlc3Npb25zTWFwKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6fk5ldHdvcmtTdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpO
ZXR3b3JrU3RvcmFnZVNlc3Npb246OmZvclNlc3Npb25JRCk6CisKKyAgICAgICAgICAgIEdldCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb24gZm9yIHNlc3Npb25JRC4KKworICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpOZXR3
b3JrU3RvcmFnZVNlc3Npb246OnNlc3Npb25JRCk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OmNyZWRlbnRpYWxTdG9yYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKToKKworICAg
ICAgICAgICAgQ2FsbCB0byBjb21tb24gY29uc3RydWN0b3IuCisKKyAgICAgICAgKFdlYkNvcmU6
OmRlZmF1bHROZXR3b3JrU3RvcmFnZVNlc3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKToKKworICAgICAg
ICAgICAgQ2FsbCB0byBjb21tb24gY29uc3RydWN0b3IuCisKKyAgICAgICAgKFdlYkNvcmU6OmRl
ZmF1bHRTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
fk5ldHdvcmtTdG9yYWdlU2Vzc2lvbik6IERlbGV0ZWQuCisKIDIwMTYtMDYtMTAgIEFkYSBDaGFu
ICA8YWRhY2hhbkBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIHRoZSB2aWRlbyBlbGVtZW50J3Mg
dmlkZW8gYm94IHdoZW4gZ2V0dGluZyB0aGUgaW5saW5lIHZpZGVvIHJlY3QgaW4gV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlcgpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDIwMTgw
NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0y
MzM4LDYgKzIzMzgsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vbmV0d29y
ay9IVFRQUGFyc2Vycy5jcHAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL01JTUVIZWFkZXIuY3BwCiAg
ICAgcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RhdGVOb3RpZmllci5jcHAKKyAgICBwbGF0Zm9y
bS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAKICAgICBwbGF0Zm9ybS9uZXR3b3Jr
L1BhcnNlZENvbnRlbnRSYW5nZS5jcHAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL1BhcnNlZENvbnRl
bnRUeXBlLmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsvUHJvdGVjdGlvblNwYWNlQmFzZS5jcHAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHJldmlzaW9uIDIwMTgwNCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNjcyNSw2ICs2NzI1LDcgQEAK
IAkJRTRFOUIxMUQxODE0NTY5QzAwM0FDQ0RGIC8qIFNpbXBsZUxpbmVMYXlvdXRGdW5jdGlvbnMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0RTlCMTFD
MTgxNDU2OUMwMDNBQ0NERiAvKiBTaW1wbGVMaW5lTGF5b3V0RnVuY3Rpb25zLmggKi87IH07CiAJ
CUU0RjlFRUYyMTU2RDlGRkEwMEQyM0U3RSAvKiBTdHlsZVNoZWV0Q29udGVudHMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRGOUVFRjAxNTZEODRD
NDAwRDIzRTdFIC8qIFN0eWxlU2hlZXRDb250ZW50cy5jcHAgKi87IH07CiAJCUU0RjlFRUYzMTU2
REEwMDcwMEQyM0U3RSAvKiBTdHlsZVNoZWV0Q29udGVudHMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0RjlFRUYxMTU2RDg0QzQwMEQyM0U3RSAvKiBT
dHlsZVNoZWV0Q29udGVudHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQlFNEZEMDIwNDFEMEFGMkMxMDBEOEU1N0UgLyogTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEU0RkQwMjAzMUQwQUYyQzEwMEQ4RTU3RSAvKiBOZXR3b3JrU3RvcmFnZVNlc3Npb24uY3BwICov
OyB9OwogCQlFNTFBODFERjE3Mjk4RDc3MDBCRkNBNjEgLyogSlNQZXJmb3JtYW5jZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTFBODFERTE3Mjk4
RDc3MDBCRkNBNjEgLyogSlNQZXJmb3JtYW5jZS5jcHAgKi87IH07CiAJCUU1MjZBRjNGMTcyN0Y4
RjIwMEU0MTc4MSAvKiBQZXJmb3JtYW5jZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFNTI2QUYzRTE3MjdGOEYyMDBFNDE3ODEgLyogUGVyZm9ybWFu
Y2UuY3BwICovOyB9OwogCQlFNTVGNDk3QTE1MUI4ODgwMDBCQjY3REIgLyogTGVuZ3RoRnVuY3Rp
b25zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1
NUY0OTc5MTUxQjg4ODAwMEJCNjdEQiAvKiBMZW5ndGhGdW5jdGlvbnMuY3BwICovOyB9OwpAQCAt
MTQ4MDEsNiArMTQ4MDIsNyBAQAogCQlFNEU5QjExQzE4MTQ1NjlDMDAzQUNDREYgLyogU2ltcGxl
TGluZUxheW91dEZ1bmN0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
aW1wbGVMaW5lTGF5b3V0RnVuY3Rpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUU0RjlFRUYwMTU2RDg0QzQwMEQyM0U3RSAvKiBTdHlsZVNoZWV0Q29udGVudHMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3R5bGVTaGVldENvbnRlbnRzLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTRGOUVFRjExNTZEODRDNDAwRDIzRTdFIC8q
IFN0eWxlU2hlZXRDb250ZW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
dHlsZVNoZWV0Q29udGVudHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTRGRDAy
MDMxRDBBRjJDMTAwRDhFNTdFIC8qIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrU3RvcmFnZVNlc3Npb24uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTFBODFERTE3Mjk4RDc3MDBCRkNBNjEgLyog
SlNQZXJmb3JtYW5jZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U1BlcmZvcm1hbmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTUyNkFGM0Ux
NzI3RjhGMjAwRTQxNzgxIC8qIFBlcmZvcm1hbmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFBlcmZvcm1hbmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTU1RjQ5NzkxNTFCODg4MDAwQkI2N0RCIC8qIExlbmd0aEZ1bmN0aW9ucy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMZW5ndGhGdW5jdGlvbnMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc3ODcsNiArMTc3ODksNyBAQAogCQkJCTYy
OEQyMTRCMTIxMzFFRDEwMDU1RENGQyAvKiBOZXR3b3JraW5nQ29udGV4dC5oICovLAogCQkJCTFB
N0ZBNjFBMEREQTNCQkUwMDI4RjhBNSAvKiBOZXR3b3JrU3RhdGVOb3RpZmllci5jcHAgKi8sCiAJ
CQkJMUE3RkE2MTgwRERBM0IzQTAwMjhGOEE1IC8qIE5ldHdvcmtTdGF0ZU5vdGlmaWVyLmggKi8s
CisJCQkJRTRGRDAyMDMxRDBBRjJDMTAwRDhFNTdFIC8qIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5j
cHAgKi8sCiAJCQkJRTEzRUYzNDIxNjg0RUNGNDAwMzRDODNGIC8qIE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbi5oICovLAogCQkJCUNEQ0Q0MUU1MUMzRERCMDkwMDk2NUQ5OSAvKiBQYXJzZWRDb250ZW50
UmFuZ2UuY3BwICovLAogCQkJCUNEQ0Q0MUU2MUMzRERCMDkwMDk2NUQ5OSAvKiBQYXJzZWRDb250
ZW50UmFuZ2UuaCAqLywKQEAgLTMyMTU2LDYgKzMyMTU5LDcgQEAKIAkJCQlBNTU2MzlEMjFDNkYw
OUU3MDA4MDZEOEUgLyogV29ya2VyQ29uc29sZUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBM0UyNjQzMDE0NzQ4OTkxMDA1QTg1ODggLyogV29ya2VyRXZlbnRRdWV1ZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkyRTQzNDY0ODBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyR2xvYmFsU2Nv
cGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTRGRDAyMDQxRDBBRjJDMTAwRDhFNTdFIC8qIE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MThDMzk1QTFDOERE
Njk5MDA1MUM4QTMgLyogV29ya2VyR2xvYmFsU2NvcGVGZXRjaC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk1MTg1RkNCMzFCQjRDNEU4MDAxMjg5OEYgLyogV29ya2VyR2xvYmFsU2NvcGVJbmRleGVk
RGF0YWJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTdGOEU2NjUxNTFENEE0QjAwRDJEMTgx
IC8qIFdvcmtlckdsb2JhbFNjb3BlTm90aWZpY2F0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ2FjaGVWYWxpZGF0aW9uLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NhY2hlVmFsaWRh
dGlvbi5jcHAJKHJldmlzaW9uIDIwMTgwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvQ2FjaGVWYWxpZGF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzM4LDExICszMzgs
NyBAQCBzdGF0aWMgU3RyaW5nIGhlYWRlclZhbHVlRm9yVmFyeShjb25zdCBSCiAgICAgLy8gV2Ug
Y291bGQgZmV0Y2ggdGhlIGNvb2tpZSB3aGVuIG1ha2luZyB0aGUgcmVxdWVzdCBidXQgdGhhdCBz
ZWVtcyBvdmVya2lsbCBhcyB0aGUgY2FzZSBpcyB2ZXJ5IHJhcmUgYW5kIGl0CiAgICAgLy8gaXMg
YSBibG9ja2luZyBvcGVyYXRpb24uIFRoaXMgc2hvdWxkIGJlIHN1ZmZpY2llbnQgdG8gY292ZXIg
cmVhc29uYWJsZSBjYXNlcy4KICAgICBpZiAoaGVhZGVyTmFtZSA9PSBodHRwSGVhZGVyTmFtZVN0
cmluZyhIVFRQSGVhZGVyTmFtZTo6Q29va2llKSkgewotICAgICAgICBpZiAoc2Vzc2lvbklEICE9
IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKSB7Ci0gICAgICAgICAgICAvLyBGSVhNRTog
RG9uJ3Qga25vdyBob3cgdG8gZ2V0IHRoZSBjb29raWUuIFRoZXJlIHNob3VsZCBiZSBhIGdsb2Jh
bCB3YXkgdG8gZ2V0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiBmcm9tIHNlc3Npb25JRC4KLSAgICAg
ICAgICAgIHJldHVybiAiIjsKLSAgICAgICAgfQotICAgICAgICBhdXRvJiBzZXNzaW9uID0gTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24oKTsKKyAgICAgICAgYXV0
byYgc2Vzc2lvbiA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Zm9yU2Vzc2lvbklEKHNlc3Npb25J
RCk7CiAgICAgICAgIGF1dG8qIGNvb2tpZVN0cmF0ZWd5ID0gcGxhdGZvcm1TdHJhdGVnaWVzKCkg
PyBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+Y29va2llc1N0cmF0ZWd5KCkgOiBudWxscHRyOwogICAg
ICAgICBpZiAoIWNvb2tpZVN0cmF0ZWd5KQogICAgICAgICAgICAgcmV0dXJuIGNvb2tpZVJlcXVl
c3RIZWFkZXJGaWVsZFZhbHVlKHNlc3Npb24sIHJlcXVlc3QuZmlyc3RQYXJ0eUZvckNvb2tpZXMo
KSwgcmVxdWVzdC51cmwoKSk7CkBAIC0zNzQsMTAgKzM3MCw2IEBAIGJvb2wgdmVyaWZ5VmFyeWlu
Z1JlcXVlc3RIZWFkZXJzKGNvbnN0IFYKICAgICAgICAgLy8gRklYTUU6IFZhcnk6ICogaW4gcmVz
cG9uc2Ugd291bGQgaWRlYWxseSB0cmlnZ2VyIGEgY2FjaGUgZGVsZXRlIGluc3RlYWQgb2YgYSBz
dG9yZS4KICAgICAgICAgaWYgKHZhcnlpbmdSZXF1ZXN0SGVhZGVyLmZpcnN0ID09ICIqIikKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYgKHNlc3Npb25JRCAhPSBTZXNzaW9u
SUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSAmJiB2YXJ5aW5nUmVxdWVzdEhlYWRlci5maXJzdCA9PSBo
dHRwSGVhZGVyTmFtZVN0cmluZyhIVFRQSGVhZGVyTmFtZTo6Q29va2llKSkgewotICAgICAgICAg
ICAgLy8gRklYTUU6IFNlZSB0aGUgY29tbWVudCBpbiBoZWFkZXJWYWx1ZUZvclZhcnkuCi0gICAg
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KICAgICAgICAgU3RyaW5nIGhlYWRlclZh
bHVlID0gaGVhZGVyVmFsdWVGb3JWYXJ5KHJlcXVlc3QsIHZhcnlpbmdSZXF1ZXN0SGVhZGVyLmZp
cnN0LCBzZXNzaW9uSUQpOwogICAgICAgICBpZiAoaGVhZGVyVmFsdWUgIT0gdmFyeWluZ1JlcXVl
c3RIZWFkZXIuc2Vjb25kKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDkw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOZXR3b3Jr
U3RvcmFnZVNlc3Npb24uaCIKKworI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8
d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKworI2lm
IFVTRShTT1VQKQorI2luY2x1ZGUgIlNvdXBOZXR3b3JrU2Vzc2lvbi5oIgorI2VuZGlmCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFn
ZVNlc3Npb24+JiBkZWZhdWx0U2Vzc2lvbigpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8c3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbj4+IHNlc3Npb247CisgICAgcmV0dXJuIHNlc3Npb247Cit9CisKK3N0YXRpYyBI
YXNoTWFwPFNlc3Npb25JRCwgTmV0d29ya1N0b3JhZ2VTZXNzaW9uKj4mIHNlc3Npb25zTWFwKCkK
K3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxTZXNzaW9uSUQsIE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbio+PiBtYXA7CisgICAgcmV0dXJuIG1hcDsKK30KKworTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkKKyAg
ICA6IG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKK3sKKyAgICBpZiAoc2Vzc2lvbklEID09IFNlc3Np
b25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKQorICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKCFz
ZXNzaW9uc01hcCgpLmNvbnRhaW5zKHNlc3Npb25JRCkpOworICAgIHNlc3Npb25zTWFwKCkuYWRk
KHNlc3Npb25JRCwgdGhpcyk7Cit9CisKK05ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24oKQoreworICAgIGlmICghZGVmYXVs
dFNlc3Npb24oKSkKKyAgICAgICAgZGVmYXVsdFNlc3Npb24oKSA9IHN0ZDo6bWFrZV91bmlxdWU8
TmV0d29ya1N0b3JhZ2VTZXNzaW9uPihTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgbnVs
bHB0cik7CisgICAgcmV0dXJuICpkZWZhdWx0U2Vzc2lvbigpOworfQorCitOZXR3b3JrU3RvcmFn
ZVNlc3Npb246On5OZXR3b3JrU3RvcmFnZVNlc3Npb24oKQoreworICAgIGlmIChtX3Nlc3Npb25J
RCA9PSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkKKyAgICAgICAgcmV0dXJuOworICAg
IEFTU0VSVChzZXNzaW9uc01hcCgpLmNvbnRhaW5zKG1fc2Vzc2lvbklEKSk7CisgICAgc2Vzc2lv
bnNNYXAoKS5yZW1vdmUobV9zZXNzaW9uSUQpOworfQorCitOZXR3b3JrU3RvcmFnZVNlc3Npb24m
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Zm9yU2Vzc2lvbklEKFNlc3Npb25JRCBzZXNzaW9uSUQp
Cit7CisgICAgaWYgKHNlc3Npb25JRCA9PSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkK
KyAgICAgICAgcmV0dXJuIGRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpOworCisgICAgQVNTRVJUKHNl
c3Npb25zTWFwKCkuY29udGFpbnMoc2Vzc2lvbklEKSk7CisgICAgcmV0dXJuICpzZXNzaW9uc01h
cCgpLmdldChzZXNzaW9uSUQpOworfQorCit2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6cmVw
bGFjZURlZmF1bHRTZXNzaW9uKHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+
IG5ld0RlZmF1bHRTZXNzaW9uKQoreworICAgIGRlZmF1bHRTZXNzaW9uKCkgPSBXVEZNb3ZlKG5l
d0RlZmF1bHRTZXNzaW9uKTsKK30KKworfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAkocmV2aXNpb24g
MjAxODA0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFn
ZVNlc3Npb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNiBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLWNsYXNzIE5ldHdvcmtpbmdDb250ZXh0OwogY2xhc3MgUmVzb3VyY2VSZXF1
ZXN0OwogY2xhc3MgU291cE5ldHdvcmtTZXNzaW9uOwogCkBAIC00OSwzNyArNDgsMzcgQEAgcHVi
bGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc3dpdGNoVG9OZXdUZXN0aW5n
U2Vzc2lvbigpOwogCisgICAgc3RhdGljIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgZm9yU2Vzc2lv
bklEKFNlc3Npb25JRCk7CisKKyAgICBXRUJDT1JFX0VYUE9SVCB+TmV0d29ya1N0b3JhZ2VTZXNz
aW9uKCk7CisKICAgICBTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNz
aW9uSUQ7IH0KICAgICBDcmVkZW50aWFsU3RvcmFnZSYgY3JlZGVudGlhbFN0b3JhZ2UoKSB7IHJl
dHVybiBtX2NyZWRlbnRpYWxTdG9yYWdlOyB9CiAKICNpZiBQTEFURk9STShDT0NPQSkgfHwgVVNF
KENGTkVUV09SSykKLSAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb24oU2Vzc2lvbklELCBSZXRhaW5Q
dHI8Q0ZVUkxTdG9yYWdlU2Vzc2lvblJlZj4pOworICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbihT
ZXNzaW9uSUQsIFJldGFpblB0cjxDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmPiYmKTsKIAogICAgIC8v
IE1heSBiZSBudWxsLCBpbiB3aGljaCBjYXNlIGEgRm91bmRhdGlvbiBkZWZhdWx0IHNob3VsZCBi
ZSB1c2VkLgogICAgIENGVVJMU3RvcmFnZVNlc3Npb25SZWYgcGxhdGZvcm1TZXNzaW9uKCkgeyBy
ZXR1cm4gbV9wbGF0Zm9ybVNlc3Npb24uZ2V0KCk7IH0KICAgICBXRUJDT1JFX0VYUE9SVCBSZXRh
aW5QdHI8Q0ZIVFRQQ29va2llU3RvcmFnZVJlZj4gY29va2llU3RvcmFnZSgpIGNvbnN0OwogI2Vs
aWYgVVNFKFNPVVApCiAgICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uKFNlc3Npb25JRCwgc3RkOjp1
bmlxdWVfcHRyPFNvdXBOZXR3b3JrU2Vzc2lvbj4pOwotICAgIH5OZXR3b3JrU3RvcmFnZVNlc3Np
b24oKTsKIAogICAgIFNvdXBOZXR3b3JrU2Vzc2lvbiYgc291cE5ldHdvcmtTZXNzaW9uKCkgY29u
c3Q7CiAgICAgdm9pZCBzZXRTb3VwTmV0d29ya1Nlc3Npb24oc3RkOjp1bmlxdWVfcHRyPFNvdXBO
ZXR3b3JrU2Vzc2lvbj4pOwotI2Vsc2UKLSAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb24oU2Vzc2lv
bklELCBOZXR3b3JraW5nQ29udGV4dCopOwotICAgIH5OZXR3b3JrU3RvcmFnZVNlc3Npb24oKTsK
LQotICAgIE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KCkgY29uc3Q7CiAjZW5kaWYKIAogcHJp
dmF0ZToKKyAgICBleHBsaWNpdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24oU2Vzc2lvbklEKTsKKwor
ICAgIHN0YXRpYyB2b2lkIHJlcGxhY2VEZWZhdWx0U2Vzc2lvbihzdGQ6OnVuaXF1ZV9wdHI8TmV0
d29ya1N0b3JhZ2VTZXNzaW9uPik7CisKICAgICBTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAKICNp
ZiBQTEFURk9STShDT0NPQSkgfHwgVVNFKENGTkVUV09SSykKICAgICBSZXRhaW5QdHI8Q0ZVUkxT
dG9yYWdlU2Vzc2lvblJlZj4gbV9wbGF0Zm9ybVNlc3Npb247CiAjZWxpZiBVU0UoU09VUCkKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8U291cE5ldHdvcmtTZXNzaW9uPiBtX3Nlc3Npb247Ci0jZWxzZQot
ICAgIFJlZlB0cjxOZXR3b3JraW5nQ29udGV4dD4gbV9jb250ZXh0OwogI2VuZGlmCiAKICAgICBD
cmVkZW50aWFsU3RvcmFnZSBtX2NyZWRlbnRpYWxTdG9yYWdlOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3Rv
cmFnZVNlc3Npb25DRk5ldC5jcHAJKHJldmlzaW9uIDIwMTgwNCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MSwxNyArNDEsMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1O
ZXR3b3JrU3RvcmFnZVNlc3Npb246Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbihTZXNzaW9uSUQgc2Vz
c2lvbklELCBSZXRhaW5QdHI8Q0ZVUkxTdG9yYWdlU2Vzc2lvblJlZj4gcGxhdGZvcm1TZXNzaW9u
KQotICAgIDogbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQotICAgICwgbV9wbGF0Zm9ybVNlc3Npb24o
cGxhdGZvcm1TZXNzaW9uKQorTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpOZXR3b3JrU3RvcmFnZVNl
c3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCwgUmV0YWluUHRyPENGVVJMU3RvcmFnZVNlc3Npb25S
ZWY+JiYgcGxhdGZvcm1TZXNzaW9uKQorICAgIDogTmV0d29ya1N0b3JhZ2VTZXNzaW9uKHNlc3Np
b25JRCkKIHsKLX0KLQotc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFnZVNlc3Np
b24+JiBkZWZhdWx0TmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkKLXsKLSAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6OnVuaXF1ZV9wdHI8TmV0
d29ya1N0b3JhZ2VTZXNzaW9uPj4gc2Vzc2lvbjsKLSAgICByZXR1cm4gc2Vzc2lvbjsKKyAgICBt
X3BsYXRmb3JtU2Vzc2lvbiA9IFdURk1vdmUocGxhdGZvcm1TZXNzaW9uKTsKIH0KIAogdm9pZCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb246OnN3aXRjaFRvTmV3VGVzdGluZ1Nlc3Npb24oKQpAQCAtNTks
MTkgKzUyLDEyIEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzd2l0Y2hUb05ld1QKICAg
ICAvLyBTZXNzaW9uIG5hbWUgc2hvdWxkIGJlIHNob3J0IGVub3VnaCBmb3Igc2hhcmVkIG1lbW9y
eSByZWdpb24gbmFtZSB0byBiZSB1bmRlciB0aGUgbGltaXQsIG90ZWhyd2lzZSBzYW5kYm94IHJ1
bGVzIHdvbid0IHdvcmsgKHNlZSA8cmRhcjovL3Byb2JsZW0vMTM2NDI4NTI+KS4KICAgICBTdHJp
bmcgc2Vzc2lvbk5hbWUgPSBTdHJpbmc6OmZvcm1hdCgiV2ViS2l0IFRlc3QtJXUiLCBzdGF0aWNf
Y2FzdDx1aW50MzJfdD4oZ2V0Q3VycmVudFByb2Nlc3NJRCgpKSk7CiAjaWYgUExBVEZPUk0oQ09D
T0EpCi0gICAgZGVmYXVsdE5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpID0gc3RkOjptYWtlX3VuaXF1
ZTxOZXR3b3JrU3RvcmFnZVNlc3Npb24+KFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBh
ZG9wdENGKHdrQ3JlYXRlUHJpdmF0ZVN0b3JhZ2VTZXNzaW9uKHNlc3Npb25OYW1lLmNyZWF0ZUNG
U3RyaW5nKCkuZ2V0KCkpKSk7CisgICAgcmVwbGFjZURlZmF1bHRTZXNzaW9uKHN0ZDo6bWFrZV91
bmlxdWU8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPihTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQo
KSwgYWRvcHRDRih3a0NyZWF0ZVByaXZhdGVTdG9yYWdlU2Vzc2lvbihzZXNzaW9uTmFtZS5jcmVh
dGVDRlN0cmluZygpLmdldCgpKSkpKTsKICNlbHNlCi0gICAgZGVmYXVsdE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbigpID0gc3RkOjptYWtlX3VuaXF1ZTxOZXR3b3JrU3RvcmFnZVNlc3Npb24+KFNlc3Np
b25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBhZG9wdENGKHdrQ3JlYXRlUHJpdmF0ZVN0b3JhZ2VT
ZXNzaW9uKHNlc3Npb25OYW1lLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIGRlZmF1bHROZXR3b3Jr
U3RvcmFnZVNlc3Npb24oKS0+cGxhdGZvcm1TZXNzaW9uKCkpKSk7CisgICAgcmVwbGFjZURlZmF1
bHRTZXNzaW9uKHN0ZDo6bWFrZV91bmlxdWU8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPihTZXNzaW9u
SUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgYWRvcHRDRih3a0NyZWF0ZVByaXZhdGVTdG9yYWdlU2Vz
c2lvbihzZXNzaW9uTmFtZS5jcmVhdGVDRlN0cmluZygpLmdldCgpLCBkZWZhdWx0TmV0d29ya1N0
b3JhZ2VTZXNzaW9uKCktPnBsYXRmb3JtU2Vzc2lvbigpKSkpKTsKICNlbmRpZgogfQogCi1OZXR3
b3JrU3RvcmFnZVNlc3Npb24mIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VT
ZXNzaW9uKCkKLXsKLSAgICBpZiAoIWRlZmF1bHROZXR3b3JrU3RvcmFnZVNlc3Npb24oKSkKLSAg
ICAgICAgZGVmYXVsdE5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpID0gc3RkOjptYWtlX3VuaXF1ZTxO
ZXR3b3JrU3RvcmFnZVNlc3Npb24+KFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBudWxs
cHRyKTsKLSAgICByZXR1cm4gKmRlZmF1bHROZXR3b3JrU3RvcmFnZVNlc3Npb24oKTsKLX0KLQog
c3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4gTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjpjcmVhdGVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0IFN0cmluZyYgaWRlbnRpZmllckJhc2UpCiB7CiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVm
PiBjZklkZW50aWZpZXIgPSBTdHJpbmcoaWRlbnRpZmllckJhc2UgKyAiLlByaXZhdGVCcm93c2lu
ZyIpLmNyZWF0ZUNGU3RyaW5nKCk7CkBAIC03OSw3ICs2NSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxO
ZXR3b3JrU3RvcmFnZVNlc3Npb24+IE4KICNpZiBQTEFURk9STShDT0NPQSkKICAgICBhdXRvIHNl
c3Npb24gPSBzdGQ6Om1ha2VfdW5pcXVlPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4oc2Vzc2lvbklE
LCBhZG9wdENGKHdrQ3JlYXRlUHJpdmF0ZVN0b3JhZ2VTZXNzaW9uKGNmSWRlbnRpZmllci5nZXQo
KSkpKTsKICNlbHNlCi0gICAgYXV0byBzZXNzaW9uID0gc3RkOjptYWtlX3VuaXF1ZTxOZXR3b3Jr
U3RvcmFnZVNlc3Npb24+KHNlc3Npb25JRCwgYWRvcHRDRih3a0NyZWF0ZVByaXZhdGVTdG9yYWdl
U2Vzc2lvbihjZklkZW50aWZpZXIuZ2V0KCksIGRlZmF1bHROZXR3b3JrU3RvcmFnZVNlc3Npb24o
KS0+cGxhdGZvcm1TZXNzaW9uKCkpKSk7CisgICAgYXV0byBzZXNzaW9uID0gc3RkOjptYWtlX3Vu
aXF1ZTxOZXR3b3JrU3RvcmFnZVNlc3Npb24+KHNlc3Npb25JRCwgYWRvcHRDRih3a0NyZWF0ZVBy
aXZhdGVTdG9yYWdlU2Vzc2lvbihjZklkZW50aWZpZXIuZ2V0KCksIGRlZmF1bHRTdG9yYWdlU2Vz
c2lvbigpLnBsYXRmb3JtU2Vzc2lvbigpKSkpOwogI2VuZGlmCiAKICAgICByZXR1cm4gc2Vzc2lv
bjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3Rv
cmFnZVNlc3Npb25Tb3VwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAJKHJldmlzaW9uIDIw
MTgwNCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3Rv
cmFnZVNlc3Npb25Tb3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsMjcgKzM3LDkgQEAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpOZXR3b3JrU3RvcmFn
ZVNlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRyPFNvdXBOZXR3b3Jr
U2Vzc2lvbj4gc2Vzc2lvbikKLSAgICA6IG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKLSAgICAsIG1f
c2Vzc2lvbihXVEZNb3ZlKHNlc3Npb24pKQorICAgIDogTmV0d29ya1N0b3JhZ2VTZXNzaW9uKHNl
c3Npb25JRCkKIHsKLX0KLQotTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjp+TmV0d29ya1N0b3JhZ2VT
ZXNzaW9uKCkKLXsKLX0KLQotc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFnZVNl
c3Npb24+JiBkZWZhdWx0U2Vzc2lvbigpCi17Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8c3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbj4+IHNlc3Npb247Ci0gICAgcmV0dXJuIHNlc3Npb247Ci19Ci0KLU5ldHdvcmtTdG9y
YWdlU2Vzc2lvbiYgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24o
KQotewotICAgIGlmICghZGVmYXVsdFNlc3Npb24oKSkKLSAgICAgICAgZGVmYXVsdFNlc3Npb24o
KSA9IHN0ZDo6bWFrZV91bmlxdWU8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPihTZXNzaW9uSUQ6OmRl
ZmF1bHRTZXNzaW9uSUQoKSwgbnVsbHB0cik7Ci0gICAgcmV0dXJuICpkZWZhdWx0U2Vzc2lvbigp
OworICAgIG1fc2Vzc2lvbiA9IFdURk1vdmUoc2Vzc2lvbik7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0
cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y3JlYXRlUHJp
dmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmKQpA
QCAtNjgsNyArNTAsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPiBO
CiAKIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzd2l0Y2hUb05ld1Rlc3RpbmdTZXNzaW9u
KCkKIHsKLSAgICBkZWZhdWx0U2Vzc2lvbigpID0gc3RkOjptYWtlX3VuaXF1ZTxOZXR3b3JrU3Rv
cmFnZVNlc3Npb24+KFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBTb3VwTmV0d29ya1Nl
c3Npb246OmNyZWF0ZVRlc3RpbmdTZXNzaW9uKCkpOworICAgIHJlcGxhY2VEZWZhdWx0U2Vzc2lv
bihzdGQ6Om1ha2VfdW5pcXVlPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4oU2Vzc2lvbklEOjpkZWZh
dWx0U2Vzc2lvbklEKCksIFNvdXBOZXR3b3JrU2Vzc2lvbjo6Y3JlYXRlVGVzdGluZ1Nlc3Npb24o
KSkpOwogfQogCiBTb3VwTmV0d29ya1Nlc3Npb24mIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c291
cE5ldHdvcmtTZXNzaW9uKCkgY29uc3QKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMTk2NikKKysrIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE2
LTA2LTEwICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBWYXJ5
OkNvb2tpZSB2YWxpZGF0aW9uIGRvZXNuJ3Qgd29yayBpbiBwcml2YXRlIGJyb3dzaW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg2MTYKKworICAg
ICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIGh0dHAvdGVzdHMvY2Fj
aGUvZGlzay1jYWNoZS9kaXNrLWNhY2hlLXZhcnktY29va2llLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL2NhY2hlL2Rpc2stY2FjaGUvZGlzay1jYWNoZS12YXJ5LWNvb2tpZS5o
dG1sOgorCisgICAgICAgIEV4YXBhbmQgdGhlIGV4aXN0aW5nIHRlc3QgdG8gY292ZXIgbWVtb3J5
IGNhY2hlIGFuZCBwcml2YXRlIGJyb3dzaW5nLgorCiAyMDE2LTA2LTEwICBCZW5qYW1pbiBQb3Vs
YWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBwYXNz
aXZlIGV2ZW50IGxpc3RlbmVycyBvbiB0b3VjaCBldmVudHMKSW5kZXg6IExheW91dFRlc3RzL2h0
dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9kaXNrLWNhY2hlLXZhcnktY29va2llLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hlL2Rpc2stY2Fj
aGUvZGlzay1jYWNoZS12YXJ5LWNvb2tpZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIwMTgwNCkK
KysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9kaXNrLWNhY2hlLXZh
cnktY29va2llLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw4ICsxLDkgQEAKLVRl
c3QgdGhhdCBWYXJ5OiBDb29raWUgaW4gcmVzcG9uc2UgaXMgaGFuZGxlZCBieSB0aGUgZGlzayBj
YWNoZS4KK1Rlc3QgdGhhdCBWYXJ5OiBDb29raWUgaW4gcmVzcG9uc2UgaXMgaGFuZGxlZCBieSBj
YWNoZXMuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCitUZXN0aW5nIGRpc2sgY2Fj
aGUKIFNldHRpbmcgY29va2llIGFuZCBsb2FkaW5nCiByZXNwb25zZSBoZWFkZXJzOiB7IkNhY2hl
LWNvbnRyb2wiOiJtYXgtYWdlPTEwMCJ9CiByZXNwb25zZSBzb3VyY2U6IE5ldHdvcmsKQEAgLTMx
LDYgKzMyLDY0IEBAIHJlc3BvbnNlIHNvdXJjZTogRGlzayBjYWNoZQogcmVzcG9uc2UgaGVhZGVy
czogeyJWYXJ5IjoiQ29va2llIiwiQ2FjaGUtY29udHJvbCI6Im1heC1hZ2U9MTAwIn0KIHJlc3Bv
bnNlIHNvdXJjZTogRGlzayBjYWNoZQogCitUZXN0aW5nIG1lbW9yeSBjYWNoZQorU2V0dGluZyBj
b29raWUgYW5kIGxvYWRpbmcKK3Jlc3BvbnNlIGhlYWRlcnM6IHsiQ2FjaGUtY29udHJvbCI6Im1h
eC1hZ2U9MTAwIn0KK3Jlc3BvbnNlIHNvdXJjZTogTmV0d29yaworCityZXNwb25zZSBoZWFkZXJz
OiB7IlZhcnkiOiJDb29raWUiLCJDYWNoZS1jb250cm9sIjoibWF4LWFnZT0xMDAifQorcmVzcG9u
c2Ugc291cmNlOiBOZXR3b3JrCisKK0xvYWRpbmcgYWdhaW4KK3Jlc3BvbnNlIGhlYWRlcnM6IHsi
Q2FjaGUtY29udHJvbCI6Im1heC1hZ2U9MTAwIn0KK3Jlc3BvbnNlIHNvdXJjZTogTWVtb3J5IGNh
Y2hlCisKK3Jlc3BvbnNlIGhlYWRlcnM6IHsiVmFyeSI6IkNvb2tpZSIsIkNhY2hlLWNvbnRyb2wi
OiJtYXgtYWdlPTEwMCJ9CityZXNwb25zZSBzb3VyY2U6IE1lbW9yeSBjYWNoZQorCitDaGFuZ2lu
ZyBjb29raWUgYW5kIGxvYWRpbmcKK3Jlc3BvbnNlIGhlYWRlcnM6IHsiQ2FjaGUtY29udHJvbCI6
Im1heC1hZ2U9MTAwIn0KK3Jlc3BvbnNlIHNvdXJjZTogTWVtb3J5IGNhY2hlCisKK3Jlc3BvbnNl
IGhlYWRlcnM6IHsiVmFyeSI6IkNvb2tpZSIsIkNhY2hlLWNvbnRyb2wiOiJtYXgtYWdlPTEwMCJ9
CityZXNwb25zZSBzb3VyY2U6IE5ldHdvcmsKKworTG9hZGluZyBhZ2FpbgorcmVzcG9uc2UgaGVh
ZGVyczogeyJDYWNoZS1jb250cm9sIjoibWF4LWFnZT0xMDAifQorcmVzcG9uc2Ugc291cmNlOiBN
ZW1vcnkgY2FjaGUKKworcmVzcG9uc2UgaGVhZGVyczogeyJWYXJ5IjoiQ29va2llIiwiQ2FjaGUt
Y29udHJvbCI6Im1heC1hZ2U9MTAwIn0KK3Jlc3BvbnNlIHNvdXJjZTogTWVtb3J5IGNhY2hlCisK
K1Rlc3RpbmcgbWVtb3J5IGNhY2hlIGluIHByaXZhdGUgYnJvd3NpbmcKK1NldHRpbmcgY29va2ll
IGFuZCBsb2FkaW5nCityZXNwb25zZSBoZWFkZXJzOiB7IkNhY2hlLWNvbnRyb2wiOiJtYXgtYWdl
PTEwMCJ9CityZXNwb25zZSBzb3VyY2U6IE5ldHdvcmsKKworcmVzcG9uc2UgaGVhZGVyczogeyJW
YXJ5IjoiQ29va2llIiwiQ2FjaGUtY29udHJvbCI6Im1heC1hZ2U9MTAwIn0KK3Jlc3BvbnNlIHNv
dXJjZTogTmV0d29yaworCitMb2FkaW5nIGFnYWluCityZXNwb25zZSBoZWFkZXJzOiB7IkNhY2hl
LWNvbnRyb2wiOiJtYXgtYWdlPTEwMCJ9CityZXNwb25zZSBzb3VyY2U6IE1lbW9yeSBjYWNoZQor
CityZXNwb25zZSBoZWFkZXJzOiB7IlZhcnkiOiJDb29raWUiLCJDYWNoZS1jb250cm9sIjoibWF4
LWFnZT0xMDAifQorcmVzcG9uc2Ugc291cmNlOiBNZW1vcnkgY2FjaGUKKworQ2hhbmdpbmcgY29v
a2llIGFuZCBsb2FkaW5nCityZXNwb25zZSBoZWFkZXJzOiB7IkNhY2hlLWNvbnRyb2wiOiJtYXgt
YWdlPTEwMCJ9CityZXNwb25zZSBzb3VyY2U6IE1lbW9yeSBjYWNoZQorCityZXNwb25zZSBoZWFk
ZXJzOiB7IlZhcnkiOiJDb29raWUiLCJDYWNoZS1jb250cm9sIjoibWF4LWFnZT0xMDAifQorcmVz
cG9uc2Ugc291cmNlOiBOZXR3b3JrCisKK0xvYWRpbmcgYWdhaW4KK3Jlc3BvbnNlIGhlYWRlcnM6
IHsiQ2FjaGUtY29udHJvbCI6Im1heC1hZ2U9MTAwIn0KK3Jlc3BvbnNlIHNvdXJjZTogTWVtb3J5
IGNhY2hlCisKK3Jlc3BvbnNlIGhlYWRlcnM6IHsiVmFyeSI6IkNvb2tpZSIsIkNhY2hlLWNvbnRy
b2wiOiJtYXgtYWdlPTEwMCJ9CityZXNwb25zZSBzb3VyY2U6IE1lbW9yeSBjYWNoZQorCiBQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExheW91
dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9kaXNrLWNhY2hlLXZhcnktY29va2ll
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS9kaXNrLWNh
Y2hlL2Rpc2stY2FjaGUtdmFyeS1jb29raWUuaHRtbAkocmV2aXNpb24gMjAxODA0KQorKysgTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS9kaXNrLWNhY2hlL2Rpc2stY2FjaGUtdmFyeS1jb29r
aWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMywzMiArMyw0OCBAQAogPGJvZHk+CiA8c2NyaXB0
PgogCi12YXIgdGVzdHMgPQotWwotICB7IHJlc3BvbnNlSGVhZGVyczogeydDYWNoZS1jb250cm9s
JzogJ21heC1hZ2U9MTAwJ30gfSwKLSAgeyByZXNwb25zZUhlYWRlcnM6IHsnVmFyeSc6ICdDb29r
aWUnLCAnQ2FjaGUtY29udHJvbCc6ICdtYXgtYWdlPTEwMCd9IH0sCi1dOwotCi1kZXNjcmlwdGlv
bigiVGVzdCB0aGF0IFZhcnk6IENvb2tpZSBpbiByZXNwb25zZSBpcyBoYW5kbGVkIGJ5IHRoZSBk
aXNrIGNhY2hlLiIpOwotCi1kZWJ1ZygiU2V0dGluZyBjb29raWUgYW5kIGxvYWRpbmciKTsKLWRv
Y3VtZW50LmNvb2tpZSA9ICJjb29raWU9dmFsdWUiOwotbG9hZFJlc291cmNlcyh0ZXN0cywgZnVu
Y3Rpb24gKCkgewotICAgIHByaW50UmVzdWx0cyh0ZXN0cyk7Ci0gICAgZGVidWcoIkxvYWRpbmcg
YWdhaW4iKTsKLSAgICBsb2FkUmVzb3VyY2VzKHRlc3RzLCBmdW5jdGlvbiAoKSB7CisKK2Rlc2Ny
aXB0aW9uKCJUZXN0IHRoYXQgVmFyeTogQ29va2llIGluIHJlc3BvbnNlIGlzIGhhbmRsZWQgYnkg
Y2FjaGVzLiIpOworCitmdW5jdGlvbiB0ZXN0Q29va2llcyh0ZXN0RGlza0NhY2hlLCBjb21wbGV0
aW9uSGFuZGxlcikKK3sKKyAgICB2YXIgdGVzdHMgPSBbCisgICAgICB7IHJlc3BvbnNlSGVhZGVy
czogeydDYWNoZS1jb250cm9sJzogJ21heC1hZ2U9MTAwJ30gfSwKKyAgICAgIHsgcmVzcG9uc2VI
ZWFkZXJzOiB7J1ZhcnknOiAnQ29va2llJywgJ0NhY2hlLWNvbnRyb2wnOiAnbWF4LWFnZT0xMDAn
fSB9LAorICAgIF07CisKKyAgICB2YXIgb3B0aW9ucyA9IHsgIkNsZWFyTWVtb3J5Q2FjaGUiIDog
dGVzdERpc2tDYWNoZSB9OworICAgIGRlYnVnKCJTZXR0aW5nIGNvb2tpZSBhbmQgbG9hZGluZyIp
OworICAgIGRvY3VtZW50LmNvb2tpZSA9ICJjb29raWU9IiArIE1hdGguZmxvb3IoKE1hdGgucmFu
ZG9tKCkgKiAxMDAwMDAwMDAwMDAwKSk7CisgICAgbG9hZFJlc291cmNlc1dpdGhPcHRpb25zKHRl
c3RzLCBvcHRpb25zLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHByaW50UmVzdWx0cyh0ZXN0cyk7
Ci0gICAgICAgIGRlYnVnKCJDaGFuZ2luZyBjb29raWUgYW5kIGxvYWRpbmciKTsKLSAgICAgICAg
ZG9jdW1lbnQuY29va2llID0gImNvb2tpZT1vdGhlcnZhbHVlIjsKLSAgICAgICAgbG9hZFJlc291
cmNlcyh0ZXN0cywgZnVuY3Rpb24gKCkgeworICAgICAgICBkZWJ1ZygiTG9hZGluZyBhZ2FpbiIp
OworICAgICAgICBsb2FkUmVzb3VyY2VzV2l0aE9wdGlvbnModGVzdHMsIG9wdGlvbnMsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIHByaW50UmVzdWx0cyh0ZXN0cyk7Ci0gICAgICAgICAgICBk
ZWJ1ZygiTG9hZGluZyBhZ2FpbiIpOwotICAgICAgICAgICAgbG9hZFJlc291cmNlcyh0ZXN0cywg
ZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgcHJpbnRSZXN1bHRzKHRlc3RzKTsKLSAgICAg
ICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgZGVidWcoIkNoYW5naW5nIGNv
b2tpZSBhbmQgbG9hZGluZyIpOworICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gImNvb2tp
ZSIgKyBNYXRoLmZsb29yKChNYXRoLnJhbmRvbSgpICogMTAwMDAwMDAwMDAwMCkpOworICAgICAg
ICAgICAgbG9hZFJlc291cmNlc1dpdGhPcHRpb25zKHRlc3RzLCBvcHRpb25zLCBmdW5jdGlvbiAo
KSB7CisgICAgICAgICAgICAgICAgcHJpbnRSZXN1bHRzKHRlc3RzKTsKKyAgICAgICAgICAgICAg
ICBkZWJ1ZygiTG9hZGluZyBhZ2FpbiIpOworICAgICAgICAgICAgICAgIGxvYWRSZXNvdXJjZXNX
aXRoT3B0aW9ucyh0ZXN0cywgb3B0aW9ucywgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAg
ICAgIHByaW50UmVzdWx0cyh0ZXN0cyk7CisgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoKTsKKyAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9
KTsKICAgICB9KTsKK30KKworZGVidWcoIlRlc3RpbmcgZGlzayBjYWNoZSIpOwordGVzdENvb2tp
ZXModHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgIGRlYnVnKCJUZXN0aW5nIG1lbW9yeSBjYWNoZSIp
OworICAgIHRlc3RDb29raWVzKGZhbHNlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGRlYnVnKCJU
ZXN0aW5nIG1lbW9yeSBjYWNoZSBpbiBwcml2YXRlIGJyb3dzaW5nIik7CisgICAgICAgIHRlc3RS
dW5uZXIuc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgdGVzdENvb2tp
ZXMoZmFsc2UsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAg
ICAgICB9KTsKKyAgICB9KTsKIH0pOwogCiA8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281172</attachid>
            <date>2016-06-13 07:03:08 -0700</date>
            <delta_ts>2016-06-15 07:10:38 -0700</delta_ts>
            <desc>patch</desc>
            <filename>private-browsing-vary-cookie-5.patch</filename>
            <type>text/plain</type>
            <size>22936</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMTk4NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDE2LTA2LTEzICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBWYXJ5OkNvb2tpZSB2YWxpZGF0
aW9uIGRvZXNuJ3Qgd29yayBpbiBwcml2YXRlIGJyb3dzaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg2MTYKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzI2NzU1MDY3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoZXJlIHdhc24ndCBhIHdheSB0byBnZXQgY29va2llIGJhc2VkIG9uIFNlc3Npb25J
RCBmcm9tIFdlYkNvcmUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9Db29raWVzU3RyYXRlZ3kuaDoK
KworICAgICAgICAgICAgQWRkIGEgY29va2llIHJldHJpdmFsIGZ1bmN0aW9uIHRoYXQgdGFrZXMg
U2Vzc2lvbklEIGluc3RlYWQgb2YgTmV0d29ya1N0b3JhZ2VTZXNzaW9uLgorCisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9DYWNoZVZhbGlkYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
aGVhZGVyVmFsdWVGb3JWYXJ5KToKKworICAgICAgICAgICAgVXNlIGl0LgorCisgICAgICAgIChX
ZWJDb3JlOjp2ZXJpZnlWYXJ5aW5nUmVxdWVzdEhlYWRlcnMpOgorCiAyMDE2LTA2LTEyICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYW51cCBSZW5kZXJCbG9j
azo6cmVtb3ZlUG9zaXRpb25lZE9iamVjdHMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0Nvb2tpZXNTdHJhdGVneS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0Nvb2tpZXNTdHJhdGVneS5oCShyZXZpc2lvbiAyMDE5ODcpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9Db29raWVzU3RyYXRlZ3kuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBA
QAogI2lmbmRlZiBDb29raWVzU3RyYXRlZ3lfaAogI2RlZmluZSBDb29raWVzU3RyYXRlZ3lfaAog
CisjaW5jbHVkZSAiU2Vzc2lvbklELmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNs
dWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNDMsNiAr
NDQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJM
JiwgY29uc3QgU3RyaW5nJiBjb29raWVTdHJpbmcpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgY29v
a2llc0VuYWJsZWQoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBVUkwmKSA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgY29va2llUmVxdWVz
dEhlYWRlckZpZWxkVmFsdWUoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJM
JiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmKSA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgY29va2ll
UmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoU2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFVSTCYpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0UmF3Q29va2llcyhjb25zdCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYs
IFZlY3RvcjxDb29raWU+JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVDb29raWUoY29u
c3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBjb29r
aWVOYW1lKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGFkZENvb2tpZShjb25zdCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb24mLCBjb25zdCBVUkwmLCBjb25zdCBDb29raWUmKSA9IDA7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NhY2hlVmFsaWRhdGlvbi5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9DYWNoZVZhbGlkYXRpb24uY3Bw
CShyZXZpc2lvbiAyMDE5ODcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Nh
Y2hlVmFsaWRhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzOCwxNSArMzM4LDEyIEBAIHN0
YXRpYyBTdHJpbmcgaGVhZGVyVmFsdWVGb3JWYXJ5KGNvbnN0IFIKICAgICAvLyBXZSBjb3VsZCBm
ZXRjaCB0aGUgY29va2llIHdoZW4gbWFraW5nIHRoZSByZXF1ZXN0IGJ1dCB0aGF0IHNlZW1zIG92
ZXJraWxsIGFzIHRoZSBjYXNlIGlzIHZlcnkgcmFyZSBhbmQgaXQKICAgICAvLyBpcyBhIGJsb2Nr
aW5nIG9wZXJhdGlvbi4gVGhpcyBzaG91bGQgYmUgc3VmZmljaWVudCB0byBjb3ZlciByZWFzb25h
YmxlIGNhc2VzLgogICAgIGlmIChoZWFkZXJOYW1lID09IGh0dHBIZWFkZXJOYW1lU3RyaW5nKEhU
VFBIZWFkZXJOYW1lOjpDb29raWUpKSB7Ci0gICAgICAgIGlmIChzZXNzaW9uSUQgIT0gU2Vzc2lv
bklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpIHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBEb24ndCBr
bm93IGhvdyB0byBnZXQgdGhlIGNvb2tpZS4gVGhlcmUgc2hvdWxkIGJlIGEgZ2xvYmFsIHdheSB0
byBnZXQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uIGZyb20gc2Vzc2lvbklELgotICAgICAgICAgICAg
cmV0dXJuICIiOwotICAgICAgICB9Ci0gICAgICAgIGF1dG8mIHNlc3Npb24gPSBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpOwogICAgICAgICBhdXRvKiBjb29r
aWVTdHJhdGVneSA9IHBsYXRmb3JtU3RyYXRlZ2llcygpID8gcGxhdGZvcm1TdHJhdGVnaWVzKCkt
PmNvb2tpZXNTdHJhdGVneSgpIDogbnVsbHB0cjsKLSAgICAgICAgaWYgKCFjb29raWVTdHJhdGVn
eSkKLSAgICAgICAgICAgIHJldHVybiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShzZXNz
aW9uLCByZXF1ZXN0LmZpcnN0UGFydHlGb3JDb29raWVzKCksIHJlcXVlc3QudXJsKCkpOwotICAg
ICAgICByZXR1cm4gY29va2llU3RyYXRlZ3ktPmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVl
KHNlc3Npb24sIHJlcXVlc3QuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwgcmVxdWVzdC51cmwoKSk7
CisgICAgICAgIGlmICghY29va2llU3RyYXRlZ3kpIHsKKyAgICAgICAgICAgIEFTU0VSVChzZXNz
aW9uSUQgPT0gU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOworICAgICAgICAgICAgcmV0
dXJuIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCksIHJlcXVlc3QuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwg
cmVxdWVzdC51cmwoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNvb2tpZVN0cmF0ZWd5
LT5jb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShzZXNzaW9uSUQsIHJlcXVlc3QuZmlyc3RQ
YXJ0eUZvckNvb2tpZXMoKSwgcmVxdWVzdC51cmwoKSk7CiAgICAgfQogICAgIHJldHVybiByZXF1
ZXN0Lmh0dHBIZWFkZXJGaWVsZChoZWFkZXJOYW1lKTsKIH0KQEAgLTM3NCwxMCArMzcxLDYgQEAg
Ym9vbCB2ZXJpZnlWYXJ5aW5nUmVxdWVzdEhlYWRlcnMoY29uc3QgVgogICAgICAgICAvLyBGSVhN
RTogVmFyeTogKiBpbiByZXNwb25zZSB3b3VsZCBpZGVhbGx5IHRyaWdnZXIgYSBjYWNoZSBkZWxl
dGUgaW5zdGVhZCBvZiBhIHN0b3JlLgogICAgICAgICBpZiAodmFyeWluZ1JlcXVlc3RIZWFkZXIu
Zmlyc3QgPT0gIioiKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAoc2Vz
c2lvbklEICE9IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpICYmIHZhcnlpbmdSZXF1ZXN0
SGVhZGVyLmZpcnN0ID09IGh0dHBIZWFkZXJOYW1lU3RyaW5nKEhUVFBIZWFkZXJOYW1lOjpDb29r
aWUpKSB7Ci0gICAgICAgICAgICAvLyBGSVhNRTogU2VlIHRoZSBjb21tZW50IGluIGhlYWRlclZh
bHVlRm9yVmFyeS4KLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQogICAgICAg
ICBTdHJpbmcgaGVhZGVyVmFsdWUgPSBoZWFkZXJWYWx1ZUZvclZhcnkocmVxdWVzdCwgdmFyeWlu
Z1JlcXVlc3RIZWFkZXIuZmlyc3QsIHNlc3Npb25JRCk7CiAgICAgICAgIGlmIChoZWFkZXJWYWx1
ZSAhPSB2YXJ5aW5nUmVxdWVzdEhlYWRlci5zZWNvbmQpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMDE5ODcpCisrKyBTb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBAQAorMjAxNi0wNi0xMyAgQW50
dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgVmFyeTpDb29raWUgdmFs
aWRhdGlvbiBkb2Vzbid0IHdvcmsgaW4gcHJpdmF0ZSBicm93c2luZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4NjE2CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS8yNjc1NTA2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVn
aWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSk6CisKKyAgICAgICAgICAgIEltcGxlbWVudCBTZXNzaW9u
SUQgdmVyc2lvbiBvZiB0aGUgZnVuY3Rpb24uCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oOgorCiAyMDE2LTA2LTEwICBBZGEgQ2hh
biAgPGFkYWNoYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSB0aGUgdmlkZW8gZWxlbWVudCdz
IHZpZGVvIGJveCB3aGVuIGdldHRpbmcgdGhlIGlubGluZSB2aWRlbyByZWN0IGluIFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5j
cHAJKHJldmlzaW9uIDIwMTk4NykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM3
LDggKzEzNywxMyBAQCBib29sIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29va2llc0VuYWJsCiAK
IFN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZh
bHVlKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBVUkwmIHVybCkKIHsKKyAgICByZXR1cm4gY29va2llUmVxdWVzdEhlYWRl
ckZpZWxkVmFsdWUoU2Vzc2lvblRyYWNrZXI6OnNlc3Npb25JRChzZXNzaW9uKSwgZmlyc3RQYXJ0
eSwgdXJsKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29va2llUmVxdWVz
dEhlYWRlckZpZWxkVmFsdWUoU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBVUkwmIHVybCkKK3sKICAgICBTdHJpbmcgcmVzdWx0OwotICAgIGlmICghV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkubmV0d29ya0Nvbm5lY3Rpb24oKS0+Y29ubmVjdGlvbigpLT5z
ZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFZhbHVlKFNlc3Npb25UcmFja2VyOjpzZXNzaW9uSUQoc2Vzc2lvbiks
IGZpcnN0UGFydHksIHVybCksIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6Q29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWU6OlJlcGx5KHJlc3VsdCksIDApKQorICAg
IGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubmV0d29ya0Nvbm5lY3Rpb24oKS0+Y29ubmVj
dGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OkNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKHNlc3Npb25JRCwgZmlyc3RQYXJ0eSwgdXJs
KSwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVSZXF1ZXN0
SGVhZGVyRmllbGRWYWx1ZTo6UmVwbHkocmVzdWx0KSwgMCkpCiAgICAgICAgIHJldHVybiBTdHJp
bmcoKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5oCShyZXZpc2lvbiAyMDE5ODcpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCSh3b3JraW5nIGNvcHkpCkBA
IC01Niw2ICs1Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRDb29raWVzRnJvbURPTShjb25z
dCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwog
ICAgIGJvb2wgY29va2llc0VuYWJsZWQoY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNz
aW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwm
KSBvdmVycmlkZTsKICAgICBTdHJpbmcgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29u
c3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBm
aXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmKSBvdmVycmlkZTsKKyAgICBTdHJpbmcgY29v
a2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoV2ViQ29yZTo6U2Vzc2lvbklELCBjb25zdCBXZWJD
b3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYpIG92ZXJyaWRlOwogICAg
IGJvb2wgZ2V0UmF3Q29va2llcyhjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24m
LCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIFZl
Y3RvcjxXZWJDb3JlOjpDb29raWU+Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkZWxldGVDb29raWUo
Y29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJM
JiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBhZGRDb29raWUoY29uc3QgV2Vi
Q29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3Qg
V2ViQ29yZTo6Q29va2llJikgb3ZlcnJpZGU7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lv
biAyMDE5ODcpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwyOCBAQAorMjAxNi0wNi0xMyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBs
ZS5jb20+CisKKyAgICAgICAgVmFyeTpDb29raWUgdmFsaWRhdGlvbiBkb2Vzbid0IHdvcmsgaW4g
cHJpdmF0ZSBicm93c2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTU4NjE2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNjc1NTA2Nz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQ6OmNyZWF0ZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5tbToKKyAgICAgICAgKHByaXZhdGVTZXNzaW9uKToKKyAgICAgICAg
KFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24p
OgorCisgICAgICAgICAgICBFeHBvc2UgdGhlIHByaXZhdGUgYnJvd3Npbmcgc2Vzc2lvbi4KKwor
ICAgICAgICAoV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZGVzdHJveVByaXZhdGVCcm93c2lu
Z1Nlc3Npb24pOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbToK
KyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxk
VmFsdWUpOgorCisgICAgICAgICAgICBJbXBsZW1lbnQgU2Vzc2lvbklEIHZlcnNpb24gb2YgdGhl
IGZ1bmN0aW9uLgorCisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmdldFJhd0Nvb2tp
ZXMpOgorCiAyMDE2LTA2LTEwICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgSW50cm9kdWNlIFdURjo6VW5pcXVlUmVmCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dC5oCShyZXZpc2lvbiAyMDE5ODcpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTM1LDcgKzM1LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQoZnJhbWUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgdm9p
ZCBlbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCk7CisgICAgc3RhdGljIFdlYkNvcmU6Ok5l
dHdvcmtTdG9yYWdlU2Vzc2lvbiYgZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpOwogICAg
IHN0YXRpYyB2b2lkIGRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCk7CiAKIHByaXZhdGU6
CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0JKHJldmlzaW9uIDIwMTk4NykKKysrIFNv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTUwLDE0ICs1MCwxNiBAQCBzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPE5ldHdvcmtTdG9yYWdlU2VzCiAgICAgcmV0dXJuIHNlc3Npb247CiB9CiAKLXZvaWQgV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpCitO
ZXR3b3JrU3RvcmFnZVNlc3Npb24mIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVBy
aXZhdGVCcm93c2luZ1Nlc3Npb24oKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAK
ICAgICBpZiAocHJpdmF0ZVNlc3Npb24oKSkKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1
cm4gKnByaXZhdGVTZXNzaW9uKCk7CiAKICAgICBwcml2YXRlU2Vzc2lvbigpID0gTmV0d29ya1N0
b3JhZ2VTZXNzaW9uOjpjcmVhdGVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRDo6bGVn
YWN5UHJpdmF0ZVNlc3Npb25JRCgpLCBbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50
aWZpZXJdKTsKKworICAgIHJldHVybiAqcHJpdmF0ZVNlc3Npb24oKTsKIH0KIAogdm9pZCBXZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0OjpkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuaAkocmV2aXNpb24gMjAxOTg3KQorKysgU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTU0LDYgKzU0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNv
bnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYg
Zmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7
CiAgICAgYm9vbCBjb29raWVzRW5hYmxlZChjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNl
c3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVS
TCYpIG92ZXJyaWRlOwogICAgIFN0cmluZyBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShj
b25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwm
IGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYpIG92ZXJyaWRlOworICAgIFN0cmluZyBj
b29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0IFdl
YkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJikgb3ZlcnJpZGU7CiAg
ICAgYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lv
biYsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwg
VmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mKSBvdmVycmlkZTsKICAgICB2b2lkIGRlbGV0ZUNvb2tp
ZShjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpV
UkwmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2b2lkIGFkZENvb2tpZShjb25zdCBX
ZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25z
dCBXZWJDb3JlOjpDb29raWUmKSBvdmVycmlkZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0JKHJl
dmlzaW9uIDIwMTk4NykKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTAyLDYgKzEwMiwxMiBAQCBT
dHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb29raWVSZXF1CiAgICAgcmV0dXJuIFdlYkNv
cmU6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKHNlc3Npb24sIGZpcnN0UGFydHksIHVy
bCk7CiB9CiAKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvb2tpZVJlcXVlc3RIZWFk
ZXJGaWVsZFZhbHVlKFNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwg
Y29uc3QgVVJMJiB1cmwpCit7CisgICAgYXV0byYgc2Vzc2lvbiA9IHNlc3Npb25JRC5pc0VwaGVt
ZXJhbCgpID8gV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5n
U2Vzc2lvbigpIDogTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24o
KTsKKyAgICByZXR1cm4gV2ViQ29yZTo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoc2Vz
c2lvbiwgZmlyc3RQYXJ0eSwgdXJsKTsKK30KKwogYm9vbCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6
OmdldFJhd0Nvb2tpZXMoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25z
dCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsLCBWZWN0b3I8Q29va2llPiYgcmF3Q29v
a2llcykKIHsKICAgICByZXR1cm4gV2ViQ29yZTo6Z2V0UmF3Q29va2llcyhzZXNzaW9uLCBmaXJz
dFBhcnR5LCB1cmwsIHJhd0Nvb2tpZXMpOwpJbmRleDogU291cmNlL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5j
cHAJKHJldmlzaW9uIDIwMTk4NykKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MSwxMyAr
NzEsMTMgQEAgdm9pZCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzZXRQcml2YQogICAgIGlk
ZW50aWZpZXJCYXNlKCkgPSBiYXNlOwogfQogCi12b2lkIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKQorTmV0d29ya1N0b3JhZ2VTZXNzaW9u
JiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9u
KCkKIHsKICNpZiBVU0UoQ0ZORVRXT1JLKQogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAK
ICAgICBpZiAocHJpdmF0ZVNlc3Npb24oKSkKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1
cm4gKnByaXZhdGVTZXNzaW9uKCk7CiAKICAgICBTdHJpbmcgYmFzZTsKICAgICBpZiAoaWRlbnRp
ZmllckJhc2UoKS5pc051bGwoKSkgewpAQCAtODgsNyArODgsOSBAQCB2b2lkIFdlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByCiAgICAgICAgIGJhc2UgPSBpZGVudGlmaWVyQmFzZSgp
OwogCiAgICAgcHJpdmF0ZVNlc3Npb24oKSA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y3JlYXRl
UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQo
KSwgYmFzZSk7CisKICNlbmRpZgorICAgIHJldHVybiAqcHJpdmF0ZVNlc3Npb24oKTsKIH0KIAog
dm9pZCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vz
c2lvbigpCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCShyZXZpc2lvbiAyMDE5ODcpCisr
KyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogICAgIHN0YXRp
YyB2b2lkIHNldENvb2tpZUFjY2VwdFBvbGljeUZvckFsbENvbnRleHRzKFdlYktpdENvb2tpZVN0
b3JhZ2VBY2NlcHRQb2xpY3kpOwogI2VuZGlmCiAgICAgc3RhdGljIHZvaWQgc2V0UHJpdmF0ZUJy
b3dzaW5nU3RvcmFnZVNlc3Npb25JZGVudGlmaWVyQmFzZShjb25zdCBTdHJpbmcmKTsKLSAgICBz
dGF0aWMgdm9pZCBlbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCk7CisgICAgc3RhdGljIFdl
YkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lv
bigpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCk7CiAK
IHByaXZhdGU6CkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAJKHJldmlzaW9uIDIwMTk4NykKKysr
IFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTk0LDYgKzk0LDEyIEBAIFN0cmluZyBXZWJQbGF0Zm9ybVN0
cmF0ZWdpZXM6OmNvb2tpZVJlcXUKICAgICByZXR1cm4gV2ViQ29yZTo6Y29va2llUmVxdWVzdEhl
YWRlckZpZWxkVmFsdWUoc2Vzc2lvbiwgZmlyc3RQYXJ0eSwgdXJsKTsKIH0KIAorU3RyaW5nIFdl
YlBsYXRmb3JtU3RyYXRlZ2llczo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoV2ViQ29y
ZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwm
IHVybCkKK3sKKyAgICBhdXRvJiBzZXNzaW9uID0gc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkgPyBX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkg
OiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpOworICAgIHJl
dHVybiBXZWJDb3JlOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShzZXNzaW9uLCBmaXJz
dFBhcnR5LCB1cmwpOworfQorCiBib29sIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Z2V0UmF3Q29v
a2llcyhjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmly
c3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIFZlY3RvcjxDb29raWU+JiByYXdDb29raWVzKQogewog
ICAgIHJldHVybiBXZWJDb3JlOjpnZXRSYXdDb29raWVzKHNlc3Npb24sIGZpcnN0UGFydHksIHVy
bCwgcmF3Q29va2llcyk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAkocmV2aXNpb24gMjAxOTg3KQor
KysgU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTUwLDYgKzUwLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IHZvaWQgc2V0Q29va2llc0Zyb21ET00oY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNz
aW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwm
LCBjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIGJvb2wgY29va2llc0VuYWJsZWQoY29uc3Qg
V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmKTsKICAgICB2aXJ0dWFsIFN0cmluZyBjb29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Np
b24mLCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYp
OworICAgIHZpcnR1YWwgU3RyaW5nIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFdlYkNv
cmU6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJD
b3JlOjpVUkwmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0UmF3Q29va2llcyhjb25zdCBXZWJDb3Jl
OjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFdlYkNvcmU6OlVSTCYsIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+Jik7CiAgICAgdmly
dHVhbCB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Np
b24mLCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZv
aWQgYWRkQ29va2llKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0
IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYpOwpJbmRleDogTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNp
b24gMjAxOTg3KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMTYtMDYtMTMgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29t
PgorCisgICAgICAgIFZhcnk6Q29va2llIHZhbGlkYXRpb24gZG9lc24ndCB3b3JrIGluIHByaXZh
dGUgYnJvd3NpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1ODYxNgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAg
ICogaHR0cC90ZXN0cy9jYWNoZS9kaXNrLWNhY2hlL2Rpc2stY2FjaGUtdmFyeS1jb29raWUtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9kaXNrLWNh
Y2hlLXZhcnktY29va2llLmh0bWw6CisKKyAgICAgICAgRXhhcGFuZCB0aGUgZXhpc3RpbmcgdGVz
dCB0byBjb3ZlciBtZW1vcnkgY2FjaGUgYW5kIHByaXZhdGUgYnJvd3NpbmcuCisKIDIwMTYtMDYt
MTMgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQgdGVzdCBnYXJkZW5pbmcuCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hl
L2Rpc2stY2FjaGUvZGlzay1jYWNoZS12YXJ5LWNvb2tpZS1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS9kaXNrLWNhY2hlL2Rpc2stY2FjaGUt
dmFyeS1jb29raWUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMDE5ODcpCisrKyBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2NhY2hlL2Rpc2stY2FjaGUvZGlzay1jYWNoZS12YXJ5LWNvb2tpZS1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsOCArMSw5IEBACi1UZXN0IHRoYXQgVmFyeTog
Q29va2llIGluIHJlc3BvbnNlIGlzIGhhbmRsZWQgYnkgdGhlIGRpc2sgY2FjaGUuCitUZXN0IHRo
YXQgVmFyeTogQ29va2llIGluIHJlc3BvbnNlIGlzIGhhbmRsZWQgYnkgY2FjaGVzLgogCiBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAorVGVzdGluZyBkaXNrIGNhY2hlCiBTZXR0aW5nIGNv
b2tpZSBhbmQgbG9hZGluZwogcmVzcG9uc2UgaGVhZGVyczogeyJDYWNoZS1jb250cm9sIjoibWF4
LWFnZT0xMDAifQogcmVzcG9uc2Ugc291cmNlOiBOZXR3b3JrCkBAIC0zMSw2ICszMiw2NCBAQCBy
ZXNwb25zZSBzb3VyY2U6IERpc2sgY2FjaGUKIHJlc3BvbnNlIGhlYWRlcnM6IHsiVmFyeSI6IkNv
b2tpZSIsIkNhY2hlLWNvbnRyb2wiOiJtYXgtYWdlPTEwMCJ9CiByZXNwb25zZSBzb3VyY2U6IERp
c2sgY2FjaGUKIAorVGVzdGluZyBtZW1vcnkgY2FjaGUKK1NldHRpbmcgY29va2llIGFuZCBsb2Fk
aW5nCityZXNwb25zZSBoZWFkZXJzOiB7IkNhY2hlLWNvbnRyb2wiOiJtYXgtYWdlPTEwMCJ9City
ZXNwb25zZSBzb3VyY2U6IE5ldHdvcmsKKworcmVzcG9uc2UgaGVhZGVyczogeyJWYXJ5IjoiQ29v
a2llIiwiQ2FjaGUtY29udHJvbCI6Im1heC1hZ2U9MTAwIn0KK3Jlc3BvbnNlIHNvdXJjZTogTmV0
d29yaworCitMb2FkaW5nIGFnYWluCityZXNwb25zZSBoZWFkZXJzOiB7IkNhY2hlLWNvbnRyb2wi
OiJtYXgtYWdlPTEwMCJ9CityZXNwb25zZSBzb3VyY2U6IE1lbW9yeSBjYWNoZQorCityZXNwb25z
ZSBoZWFkZXJzOiB7IlZhcnkiOiJDb29raWUiLCJDYWNoZS1jb250cm9sIjoibWF4LWFnZT0xMDAi
fQorcmVzcG9uc2Ugc291cmNlOiBNZW1vcnkgY2FjaGUKKworQ2hhbmdpbmcgY29va2llIGFuZCBs
b2FkaW5nCityZXNwb25zZSBoZWFkZXJzOiB7IkNhY2hlLWNvbnRyb2wiOiJtYXgtYWdlPTEwMCJ9
CityZXNwb25zZSBzb3VyY2U6IE1lbW9yeSBjYWNoZQorCityZXNwb25zZSBoZWFkZXJzOiB7IlZh
cnkiOiJDb29raWUiLCJDYWNoZS1jb250cm9sIjoibWF4LWFnZT0xMDAifQorcmVzcG9uc2Ugc291
cmNlOiBOZXR3b3JrCisKK0xvYWRpbmcgYWdhaW4KK3Jlc3BvbnNlIGhlYWRlcnM6IHsiQ2FjaGUt
Y29udHJvbCI6Im1heC1hZ2U9MTAwIn0KK3Jlc3BvbnNlIHNvdXJjZTogTWVtb3J5IGNhY2hlCisK
K3Jlc3BvbnNlIGhlYWRlcnM6IHsiVmFyeSI6IkNvb2tpZSIsIkNhY2hlLWNvbnRyb2wiOiJtYXgt
YWdlPTEwMCJ9CityZXNwb25zZSBzb3VyY2U6IE1lbW9yeSBjYWNoZQorCitUZXN0aW5nIG1lbW9y
eSBjYWNoZSBpbiBwcml2YXRlIGJyb3dzaW5nCitTZXR0aW5nIGNvb2tpZSBhbmQgbG9hZGluZwor
cmVzcG9uc2UgaGVhZGVyczogeyJDYWNoZS1jb250cm9sIjoibWF4LWFnZT0xMDAifQorcmVzcG9u
c2Ugc291cmNlOiBOZXR3b3JrCisKK3Jlc3BvbnNlIGhlYWRlcnM6IHsiVmFyeSI6IkNvb2tpZSIs
IkNhY2hlLWNvbnRyb2wiOiJtYXgtYWdlPTEwMCJ9CityZXNwb25zZSBzb3VyY2U6IE5ldHdvcmsK
KworTG9hZGluZyBhZ2FpbgorcmVzcG9uc2UgaGVhZGVyczogeyJDYWNoZS1jb250cm9sIjoibWF4
LWFnZT0xMDAifQorcmVzcG9uc2Ugc291cmNlOiBNZW1vcnkgY2FjaGUKKworcmVzcG9uc2UgaGVh
ZGVyczogeyJWYXJ5IjoiQ29va2llIiwiQ2FjaGUtY29udHJvbCI6Im1heC1hZ2U9MTAwIn0KK3Jl
c3BvbnNlIHNvdXJjZTogTWVtb3J5IGNhY2hlCisKK0NoYW5naW5nIGNvb2tpZSBhbmQgbG9hZGlu
ZworcmVzcG9uc2UgaGVhZGVyczogeyJDYWNoZS1jb250cm9sIjoibWF4LWFnZT0xMDAifQorcmVz
cG9uc2Ugc291cmNlOiBNZW1vcnkgY2FjaGUKKworcmVzcG9uc2UgaGVhZGVyczogeyJWYXJ5Ijoi
Q29va2llIiwiQ2FjaGUtY29udHJvbCI6Im1heC1hZ2U9MTAwIn0KK3Jlc3BvbnNlIHNvdXJjZTog
TmV0d29yaworCitMb2FkaW5nIGFnYWluCityZXNwb25zZSBoZWFkZXJzOiB7IkNhY2hlLWNvbnRy
b2wiOiJtYXgtYWdlPTEwMCJ9CityZXNwb25zZSBzb3VyY2U6IE1lbW9yeSBjYWNoZQorCityZXNw
b25zZSBoZWFkZXJzOiB7IlZhcnkiOiJDb29raWUiLCJDYWNoZS1jb250cm9sIjoibWF4LWFnZT0x
MDAifQorcmVzcG9uc2Ugc291cmNlOiBNZW1vcnkgY2FjaGUKKwogUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2NhY2hlL2Rpc2stY2FjaGUvZGlzay1jYWNoZS12YXJ5LWNvb2tpZS5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9kaXNrLWNhY2hl
LXZhcnktY29va2llLmh0bWwJKHJldmlzaW9uIDIwMTk4NykKKysrIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvY2FjaGUvZGlzay1jYWNoZS9kaXNrLWNhY2hlLXZhcnktY29va2llLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTMsMzIgKzMsNDggQEAKIDxib2R5PgogPHNjcmlwdD4KIAotdmFyIHRlc3Rz
ID0KLVsKLSAgeyByZXNwb25zZUhlYWRlcnM6IHsnQ2FjaGUtY29udHJvbCc6ICdtYXgtYWdlPTEw
MCd9IH0sCi0gIHsgcmVzcG9uc2VIZWFkZXJzOiB7J1ZhcnknOiAnQ29va2llJywgJ0NhY2hlLWNv
bnRyb2wnOiAnbWF4LWFnZT0xMDAnfSB9LAotXTsKLQotZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBW
YXJ5OiBDb29raWUgaW4gcmVzcG9uc2UgaXMgaGFuZGxlZCBieSB0aGUgZGlzayBjYWNoZS4iKTsK
LQotZGVidWcoIlNldHRpbmcgY29va2llIGFuZCBsb2FkaW5nIik7Ci1kb2N1bWVudC5jb29raWUg
PSAiY29va2llPXZhbHVlIjsKLWxvYWRSZXNvdXJjZXModGVzdHMsIGZ1bmN0aW9uICgpIHsKLSAg
ICBwcmludFJlc3VsdHModGVzdHMpOwotICAgIGRlYnVnKCJMb2FkaW5nIGFnYWluIik7Ci0gICAg
bG9hZFJlc291cmNlcyh0ZXN0cywgZnVuY3Rpb24gKCkgeworCitkZXNjcmlwdGlvbigiVGVzdCB0
aGF0IFZhcnk6IENvb2tpZSBpbiByZXNwb25zZSBpcyBoYW5kbGVkIGJ5IGNhY2hlcy4iKTsKKwor
ZnVuY3Rpb24gdGVzdENvb2tpZXModGVzdERpc2tDYWNoZSwgY29tcGxldGlvbkhhbmRsZXIpCit7
CisgICAgdmFyIHRlc3RzID0gWworICAgICAgeyByZXNwb25zZUhlYWRlcnM6IHsnQ2FjaGUtY29u
dHJvbCc6ICdtYXgtYWdlPTEwMCd9IH0sCisgICAgICB7IHJlc3BvbnNlSGVhZGVyczogeydWYXJ5
JzogJ0Nvb2tpZScsICdDYWNoZS1jb250cm9sJzogJ21heC1hZ2U9MTAwJ30gfSwKKyAgICBdOwor
CisgICAgdmFyIG9wdGlvbnMgPSB7ICJDbGVhck1lbW9yeUNhY2hlIiA6IHRlc3REaXNrQ2FjaGUg
fTsKKyAgICBkZWJ1ZygiU2V0dGluZyBjb29raWUgYW5kIGxvYWRpbmciKTsKKyAgICBkb2N1bWVu
dC5jb29raWUgPSAiY29va2llPSIgKyBNYXRoLmZsb29yKChNYXRoLnJhbmRvbSgpICogMTAwMDAw
MDAwMDAwMCkpOworICAgIGxvYWRSZXNvdXJjZXNXaXRoT3B0aW9ucyh0ZXN0cywgb3B0aW9ucywg
ZnVuY3Rpb24gKCkgewogICAgICAgICBwcmludFJlc3VsdHModGVzdHMpOwotICAgICAgICBkZWJ1
ZygiQ2hhbmdpbmcgY29va2llIGFuZCBsb2FkaW5nIik7Ci0gICAgICAgIGRvY3VtZW50LmNvb2tp
ZSA9ICJjb29raWU9b3RoZXJ2YWx1ZSI7Ci0gICAgICAgIGxvYWRSZXNvdXJjZXModGVzdHMsIGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgZGVidWcoIkxvYWRpbmcgYWdhaW4iKTsKKyAgICAgICAgbG9h
ZFJlc291cmNlc1dpdGhPcHRpb25zKHRlc3RzLCBvcHRpb25zLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICBwcmludFJlc3VsdHModGVzdHMpOwotICAgICAgICAgICAgZGVidWcoIkxvYWRpbmcg
YWdhaW4iKTsKLSAgICAgICAgICAgIGxvYWRSZXNvdXJjZXModGVzdHMsIGZ1bmN0aW9uICgpIHsK
LSAgICAgICAgICAgICAgIHByaW50UmVzdWx0cyh0ZXN0cyk7Ci0gICAgICAgICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIGRlYnVnKCJDaGFuZ2luZyBjb29raWUgYW5kIGxvYWRp
bmciKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJjb29raWUiICsgTWF0aC5mbG9v
cigoTWF0aC5yYW5kb20oKSAqIDEwMDAwMDAwMDAwMDApKTsKKyAgICAgICAgICAgIGxvYWRSZXNv
dXJjZXNXaXRoT3B0aW9ucyh0ZXN0cywgb3B0aW9ucywgZnVuY3Rpb24gKCkgeworICAgICAgICAg
ICAgICAgIHByaW50UmVzdWx0cyh0ZXN0cyk7CisgICAgICAgICAgICAgICAgZGVidWcoIkxvYWRp
bmcgYWdhaW4iKTsKKyAgICAgICAgICAgICAgICBsb2FkUmVzb3VyY2VzV2l0aE9wdGlvbnModGVz
dHMsIG9wdGlvbnMsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICBwcmludFJlc3Vs
dHModGVzdHMpOworICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAg
ICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7Cit9
CisKK2RlYnVnKCJUZXN0aW5nIGRpc2sgY2FjaGUiKTsKK3Rlc3RDb29raWVzKHRydWUsIGZ1bmN0
aW9uICgpIHsKKyAgICBkZWJ1ZygiVGVzdGluZyBtZW1vcnkgY2FjaGUiKTsKKyAgICB0ZXN0Q29v
a2llcyhmYWxzZSwgZnVuY3Rpb24gKCkgeworICAgICAgICBkZWJ1ZygiVGVzdGluZyBtZW1vcnkg
Y2FjaGUgaW4gcHJpdmF0ZSBicm93c2luZyIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFByaXZh
dGVCcm93c2luZ0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIHRlc3RDb29raWVzKGZhbHNlLCBmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSk7CisgICAg
fSk7CiB9KTsKIAogPC9zY3JpcHQ+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>