<?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>109730</bug_id>
          
          <creation_ts>2013-02-13 12:15:05 -0800</creation_ts>
          <short_desc>[Mac] Caption menu should have only one item selected</short_desc>
          <delta_ts>2013-02-14 15:39:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dino</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>peter+ews</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>832175</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-02-13 12:15:05 -0800</bug_when>
    <thetext>The caption menu can end up with more than one item selected when the selected track changes because of a change in user preferences.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832221</commentid>
    <comment_count>1</comment_count>
      <attachid>188154</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-02-13 12:46:59 -0800</bug_when>
    <thetext>Created attachment 188154
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832244</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-13 13:13:03 -0800</bug_when>
    <thetext>Attachment 188154 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/media/track/track-user-preferences-expected.txt&apos;, u&apos;LayoutTests/media/track/track-user-preferences.html&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/GNUmakefile.list.am&apos;, u&apos;Source/WebCore/Target.pri&apos;, u&apos;Source/WebCore/WebCore.gypi&apos;, u&apos;Source/WebCore/WebCore.vcproj/WebCore.vcproj&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/html/HTMLMediaElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLMediaElement.h&apos;, u&apos;Source/WebCore/page/CaptionUserPreferences.cpp&apos;, u&apos;Source/WebCore/page/CaptionUserPreferences.h&apos;, u&apos;Source/WebCore/page/CaptionUserPreferencesMac.h&apos;, u&apos;Source/WebCore/page/CaptionUserPreferencesMac.mm&apos;]&quot; exit_code: 1
Source/WebCore/page/CaptionUserPreferences.h:64:  The parameter name &quot;language&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/page/CaptionUserPreferences.h:67:  The parameter name &quot;track&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832255</commentid>
    <comment_count>3</comment_count>
      <attachid>188154</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-02-13 13:21:41 -0800</bug_when>
    <thetext>Comment on attachment 188154
Proposed patch

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

&gt; Source/WebCore/ChangeLog:14
&gt; +        * WebCore.vcproj/WebCore.vcproj: Ditto.

Don&apos;t we also edit the VS2010 file now as well? WebCore.vcxproj/ This will make Roger happier :)

&gt; Source/WebCore/page/CaptionUserPreferences.h:70
&gt; +    virtual String displayNameForTrack(TextTrack* track) const;
&gt;      virtual bool testingMode() const { return m_testingMode; }
&gt; +
&gt;      virtual void setTestingMode(bool override) { m_testingMode = override; }

Nit: extra line got added here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832275</commentid>
    <comment_count>4</comment_count>
      <attachid>188168</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-02-13 13:29:51 -0800</bug_when>
    <thetext>Created attachment 188168
Update patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832302</commentid>
    <comment_count>5</comment_count>
      <attachid>188168</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2013-02-13 13:48:30 -0800</bug_when>
    <thetext>Comment on attachment 188168
Update patch.

Attachment 188168 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/16559076</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832306</commentid>
    <comment_count>6</comment_count>
      <attachid>188168</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-13 13:50:41 -0800</bug_when>
    <thetext>Comment on attachment 188168
Update patch.

Attachment 188168 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/16525025</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832315</commentid>
    <comment_count>7</comment_count>
      <attachid>188168</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-13 13:57:49 -0800</bug_when>
    <thetext>Comment on attachment 188168
Update patch.

Attachment 188168 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/16560018</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832316</commentid>
    <comment_count>8</comment_count>
      <attachid>188175</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-02-13 13:59:40 -0800</bug_when>
    <thetext>Created attachment 188175
#import -&gt; #include</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832370</commentid>
    <comment_count>9</comment_count>
      <attachid>188175</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-02-13 14:42:27 -0800</bug_when>
    <thetext>Comment on attachment 188175
#import -&gt; #include

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

&gt; Source/WebCore/WebCore.vcxproj/WebCore.vcxproj:2003
&gt; -    &lt;ClCompile Include=&quot;..\page\ContentSecurityPolicy.cpp&quot; /&gt;
&gt; +    &lt;ClCompile Include=&quot;..\page\Console.cpp&quot; /&gt;

What&apos;s this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832391</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-02-13 15:04:23 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 188175 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=188175&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/WebCore.vcxproj/WebCore.vcxproj:2003
&gt; &gt; -    &lt;ClCompile Include=&quot;..\page\ContentSecurityPolicy.cpp&quot; /&gt;
&gt; &gt; +    &lt;ClCompile Include=&quot;..\page\Console.cpp&quot; /&gt;
&gt; 
&gt; What&apos;s this?

Oops, thanks for spotting that!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832392</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-02-13 15:04:41 -0800</bug_when>
    <thetext>Committed in http://trac.webkit.org/r142809.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833486</commentid>
    <comment_count>12</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-14 15:39:19 -0800</bug_when>
    <thetext>This patch appears to have caused media/media-captions.html to crash on Mac:
http://test-results.appspot.com/dashboards/flakiness_dashboard.html#group=%40ToT%20-%20webkit.org&amp;tests=media%2Fmedia-captions.html

Blame list:
http://trac.webkit.org/log/?verbose=on&amp;rev=142810&amp;stop_rev=142807</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188154</attachid>
            <date>2013-02-13 12:46:59 -0800</date>
            <delta_ts>2013-02-13 13:29:51 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>patch_5.txt</filename>
            <type>text/plain</type>
            <size>33035</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0Mjc3MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBACisyMDEzLTAyLTEzICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdIENhcHRpb24g
bWVudSBzaG91bGQgaGF2ZSBvbmx5IG9uZSBpdGVtIHNlbGVjdGVkCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk3MzAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG1lZGlhL3RyYWNr
L3RyYWNrLXVzZXItcHJlZmVyZW5jZXMuaHRtbCB3YXMgbW9kaWZpZWQgdG8gdGVzdCB0aGUgY2hh
bmdlcy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBBZGQgQ2FwdGlvblVzZXJQcmVmZXJl
bmNlcy5jcHAuCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbTogRGl0dG8uCisgICAgICAg
ICogVGFyZ2V0LnByaTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS5neXBpOiBEaXR0by4KKyAg
ICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogRGl0dG8uCisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBEaXR0by4KKworICAgICAgICAqIGh0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50OjpIVE1MTWVkaWFFbGVtZW50KTogSW5pdGlhbGl6ZSBtX3Byb2Nlc3NpbmdQcmVmZXJlbmNl
Q2hhbmdlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6Y29uZmlndXJlVGV4
dFRyYWNrR3JvdXApOiBPbmx5IGVuZCB1cCB3aXRoIG9uZSBzZWxlY3RlZCB0cmFjayB3aGVuCisg
ICAgICAgICAgICBjYWxsZWQgYmVjYXVzZSBvZiBhIHByZWZlcmVuY2VzIGNoYW5nZS4KKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQp
OiBDYWxsIHNldENsb3NlZENhcHRpb25zVmlzaWJsZSBpbnN0ZWFkCisgICAgICAgICAgICBvZiBj
YWxsaW5nIG1hcmtDYXB0aW9uQW5kU3VidGl0bGVUcmFja3NBc1VuY29uZmlndXJlZCBkaXJlY3Rs
eS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1hcmtDYXB0aW9uQW5kU3Vi
dGl0bGVUcmFja3NBc1VuY29uZmlndXJlZCk6IFByb2Nlc3MgYWxsIHRyYWNrcywgCisgICAgICAg
ICAgICBub3QganVzdCB0cmFjayBlbGVtZW50cy4KKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVs
ZW1lbnQuaDoKKworICAgICAgICAqIHBhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHA6IEFk
ZGVkIHNvIHRoZSBmdW5jdGlvbmFsaXR5IGNhbiBiZSB0ZXN0ZWQgaW4gRFJULgorICAgICAgICAo
V2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlczo6cmVnaXN0ZXJGb3JQcmVmZXJlbmNlc0No
YW5nZWRDYWxsYmFja3MpOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNl
czo6dW5yZWdpc3RlckZvclByZWZlcmVuY2VzQ2hhbmdlZENhbGxiYWNrcyk6CisgICAgICAgIChX
ZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzOjpzZXRVc2VyUHJlZmVyc0NhcHRpb25zKToK
KyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OmNhcHRpb25QcmVmZXJl
bmNlc0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlczo6
cHJlZmVycmVkTGFuZ3VhZ2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVy
ZW5jZXM6OnNldFByZWZlcnJlZExhbmd1YWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25V
c2VyUHJlZmVyZW5jZXM6OmRpc3BsYXlOYW1lRm9yVHJhY2spOgorICAgICAgICAqIHBhZ2UvQ2Fw
dGlvblVzZXJQcmVmZXJlbmNlcy5oOgorCisgICAgICAgICogcGFnZS9DYXB0aW9uVXNlclByZWZl
cmVuY2VzTWFjLmg6CisgICAgICAgICogcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjLm1t
OgorICAgICAgICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYzo6cmVnaXN0ZXJG
b3JQcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFja3MpOiBNb3ZlZCBzb21lIGxvZ2ljCisgICAgICAg
ICAgICB0byBiYXNlIGNsYXNzLgorICAgICAgICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJl
bmNlc01hYzo6Y2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCk6IERpdHRvLgorCiAyMDEzLTAyLTEz
ICBNb3J0ZW4gU3RlbnNob3JuZSAgPG1zdGVuc2hvQG9wZXJhLmNvbT4KIAogICAgICAgICBXZWJL
aXQgaWdub3JlcyBjb2x1bW4tcnVsZXMgd2lkZXIgdGhhbiBjb2x1bW4tZ2FwCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTQyNjM3KQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE3NDYsNiArMTc0Niw3IEBAIHNldChXZWJDb3Jl
X1NPVVJDRVMKIAogICAgIHBhZ2UvQXV0b3Njcm9sbENvbnRyb2xsZXIuY3BwCiAgICAgcGFnZS9C
YXJJbmZvLmNwcAorICAgIHBhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAKICAgICBwYWdl
L0Nocm9tZS5jcHAKICAgICBwYWdlL0NvbnNvbGUuY3BwCiAgICAgcGFnZS9Db250ZW50U2VjdXJp
dHlQb2xpY3kuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9u
IDE0MjYzNykKKysrIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcg
Y29weSkKQEAgLTQwOTksNiArNDA5OSw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNl
L1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9w
YWdlL0JhckluZm8uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0JhckluZm8uaCBcCisJU291
cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmggXAogCVNvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBcCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkJKHJldmlzaW9uIDE0MjYzNykKKysrIFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkJ
KHdvcmtpbmcgY29weSkKQEAgLTkwNyw2ICs5MDcsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwYWdl
L2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAgXAogICAgIHBhZ2UvQXV0b3Njcm9sbENv
bnRyb2xsZXIuY3BwIFwKICAgICBwYWdlL0JhckluZm8uY3BwIFwKKyAgICBwYWdlL0NhcHRpb25V
c2VyUHJlZmVyZW5jZXMuY3BwIFwKICAgICBwYWdlL0Nocm9tZS5jcHAgXAogICAgIHBhZ2UvQ29u
c29sZS5jcHAgXAogICAgIHBhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcCBcCkBAIC0yMDkx
LDYgKzIwOTIsNyBAQCBIRUFERVJTICs9IFwKICAgICBwYWdlL0FkanVzdFZpZXdTaXplT3JOb3Qu
aCBcCiAgICAgcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5oIFwKICAgICBwYWdlL0JhckluZm8u
aCBcCisgICAgcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmggXAogICAgIHBhZ2UvQ2hyb21l
LmggXAogICAgIHBhZ2UvQ29uc29sZS5oIFwKICAgICBwYWdlL0NvbnNvbGVUeXBlcy5oIFwKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDE0MjYzNykKKysrIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMjA3MSw2ICsyMDcxLDcgQEAKICAgICAgICAg
ICAgICdwYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmgnLAogICAgICAgICAgICAgJ3BhZ2UvQmFy
SW5mby5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvQmFySW5mby5oJywKKyAgICAgICAgICAgICdw
YWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwJywKICAgICAgICAgICAgICdwYWdlL0Nocm9t
ZS5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvQ29uc29sZS5jcHAnLAogICAgICAgICAgICAgJ3Bh
Z2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcCcsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24gMTQyNjM3KQorKysgU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAg
LTI3MDc1LDYgKzI3MDc1LDE0IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAiCisJCQkJPgor
CQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcQ2FwdGlvblVz
ZXJQcmVmZXJlbmNlcy5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRp
dmVQYXRoPSIuLlxwYWdlXENvbnNvbGUuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJl
dmlzaW9uIDE0MjYzNykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTAzLDYgKzEwMyw3IEBACiAJCTA3MjBCMEEx
MTREMzMyMzUwMDY0Mjk1NSAvKiBHZW5lcmljRXZlbnRRdWV1ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyMEIwOUYxNEQzMzIzNTAwNjQyOTU1IC8q
IEdlbmVyaWNFdmVudFF1ZXVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMDcyMEIwQTExNEQzMzIzNTAwNjQyOTU3IC8qIEdlc3R1cmVFdmVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyMEIwOUYx
NEQzMzIzNTAwNjQyOTU3IC8qIEdlc3R1cmVFdmVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3MkM4QjExMTMxQzUxODYwMEE0RkNFOSAvKiBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2RjBEMDkxMkI4MTkyNzAwQzI2QUE0IC8qIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAgKi87IH07CisJCTA3MkNBODYxMTZDQjREQzMw
MDhBRTEzMSAvKiBDYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MkNBODYwMTZDQjREQzMwMDhBRTEzMSAvKiBD
YXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcCAqLzsgfTsKIAkJMDczNUVFNkEwRjQwQzVFNDAwNEEy
NjA0IC8qIE1lZGlhUGxheWVyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3MzVFRTY5MEY0MEM1RTQwMDRBMjYwNCAvKiBNZWRpYVBsYXllclBy
b3h5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
MDc1Mzg2MDIxNDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzUzODYwMDE0NDg5RTk4MDBC
Nzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmNwcCAqLzsgfTsKIAkJMDc1Mzg2MDMxNDQ4OUU5ODAw
Qjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDc1Mzg2MDExNDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRU
cmFjay5oICovOyB9OwpAQCAtNzM1Myw2ICs3MzU0LDcgQEAKIAkJMDcyMEIwOUYxNEQzMzIzNTAw
NjQyOTU1IC8qIEdlbmVyaWNFdmVudFF1ZXVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEdlbmVyaWNFdmVudFF1ZXVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA3MjBCMDlGMTREMzMyMzUwMDY0Mjk1NiAvKiBHZXN0dXJlRXZlbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR2VzdHVyZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMDcyMEIwOUYxNEQzMzIzNTAwNjQyOTU3IC8qIEdlc3R1cmVFdmVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZXN0dXJlRXZlbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDcyQ0E4NjAxNkNCNERDMzAwOEFFMTMxIC8qIENh
cHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA3MzVFRTY5MEY0MEM1RTQwMDRBMjYwNCAvKiBNZWRpYVBsYXllclByb3h5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUGxheWVyUHJveHkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc1Mzg2MDAxNDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hl
ZFRleHRUcmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWNo
ZWRUZXh0VHJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzUzODYwMTE0
NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IENhY2hlZFRleHRUcmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTYyOTIsNiArMTYyOTQsNyBAQAogCQkJCUJDMTI0RUU0MEMyNjQxQ0QwMDlFMjM0OSAv
KiBCYXJJbmZvLmNwcCAqLywKIAkJCQlCQzEyNEVFNTBDMjY0MUNEMDA5RTIzNDkgLyogQmFySW5m
by5oICovLAogCQkJCUJDMTI0RUU2MEMyNjQxQ0QwMDlFMjM0OSAvKiBCYXJJbmZvLmlkbCAqLywK
KwkJCQkwNzJDQTg2MDE2Q0I0REMzMDA4QUUxMzEgLyogQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5j
cHAgKi8sCiAJCQkJMDc5RDA4NjcxNjJGMjBFODAwREI4NjU4IC8qIENhcHRpb25Vc2VyUHJlZmVy
ZW5jZXMuaCAqLywKIAkJCQkwNzlEMDg2OTE2MkYyMUY5MDBEQjg2NTggLyogQ2FwdGlvblVzZXJQ
cmVmZXJlbmNlc01hYy5oICovLAogCQkJCTA3OUQwODZBMTYyRjIxRjkwMERCODY1OCAvKiBDYXB0
aW9uVXNlclByZWZlcmVuY2VzTWFjLm1tICovLApAQCAtMjkzNjYsNiArMjkzNjksNyBAQAogCQkJ
CUIyNTU5OUEzMEQwMEQ4QkEwMEJCODI1QyAvKiBTVkdJbWFnZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwOEY4NTlENDE0NjNGOUNEMDA2N0Q5MzMgLyogU1ZHSW1hZ2VDYWNoZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCMjIyN0EyQzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHSW1hZ2VFbGVtZW50
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTA3MkNBODYxMTZDQjREQzMwMDhBRTEzMSAvKiBDYXB0
aW9uVXNlclByZWZlcmVuY2VzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyOEM2QTI5MEQwMEM0
NDgwMDMzNEFBNCAvKiBTVkdJbWFnZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjIy
N0EyRjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTGFuZ1NwYWNlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUIyMjI3QTMyMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdMZW5ndGguY3BwIGluIFNvdXJjZXMg
Ki8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJKHJldmlz
aW9uIDE0MjYzNykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI4OSw2ICsyODksNyBAQCBIVE1MTWVkaWFFbGVtZW50OjpIVE1M
TWVkaWFFbGVtZW50KGNvbnN0CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgICwgbV90cmFj
a3NBcmVSZWFkeSh0cnVlKQogICAgICwgbV9oYXZlVmlzaWJsZVRleHRUcmFjayhmYWxzZSkKKyAg
ICAsIG1fcHJvY2Vzc2luZ1ByZWZlcmVuY2VDaGFuZ2UoZmFsc2UpCiAgICAgLCBtX2xhc3RUZXh0
VHJhY2tVcGRhdGVUaW1lKC0xKQogICAgICwgbV90ZXh0VHJhY2tzKDApCiAgICAgLCBtX2lnbm9y
ZVRyYWNrRGlzcGxheVVwZGF0ZSgwKQpAQCAtMzAxNCw3ICszMDE1LDcgQEAgYm9vbCBIVE1MTWVk
aWFFbGVtZW50Ojp1c2VySXNJbnRlcmVzdGVkSQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9p
ZCBIVE1MTWVkaWFFbGVtZW50Ojpjb25maWd1cmVUZXh0VHJhY2tHcm91cChjb25zdCBUcmFja0dy
b3VwJiBncm91cCkgY29uc3QKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6Y29uZmlndXJlVGV4dFRy
YWNrR3JvdXAoY29uc3QgVHJhY2tHcm91cCYgZ3JvdXApCiB7CiAgICAgQVNTRVJUKGdyb3VwLnRy
YWNrcy5zaXplKCkpOwogCkBAIC0zMDMxLDEyICszMDMyLDE5IEBAIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6Y29uZmlndXJlVGV4dFRyYWMKICAgICB9CiAKICAgICAvLyBGaXJzdCwgZmluZCB0aGUg
dHJhY2sgaW4gdGhlIGdyb3VwIHRoYXQgc2hvdWxkIGJlIGVuYWJsZWQgKGlmIGFueSkuCisgICAg
VmVjdG9yPFJlZlB0cjxUZXh0VHJhY2s+ID4gY3VycmVudGx5RW5hYmxlZFRyYWNrczsKICAgICBS
ZWZQdHI8VGV4dFRyYWNrPiB0cmFja1RvRW5hYmxlOwogICAgIFJlZlB0cjxUZXh0VHJhY2s+IGRl
ZmF1bHRUcmFjazsKICAgICBSZWZQdHI8VGV4dFRyYWNrPiBmYWxsYmFja1RyYWNrOwotICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyAhdHJhY2tUb0VuYWJsZSAmJiBpIDwgZ3JvdXAudHJhY2tzLnNpemUo
KTsgKytpKSB7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBncm91cC50cmFja3Muc2l6ZSgp
OyArK2kpIHsKICAgICAgICAgUmVmUHRyPFRleHRUcmFjaz4gdGV4dFRyYWNrID0gZ3JvdXAudHJh
Y2tzW2ldOwogCisgICAgICAgIGlmIChtX3Byb2Nlc3NpbmdQcmVmZXJlbmNlQ2hhbmdlICYmIHRl
eHRUcmFjay0+bW9kZSgpID09IFRleHRUcmFjazo6c2hvd2luZ0tleXdvcmQoKSkKKyAgICAgICAg
ICAgIGN1cnJlbnRseUVuYWJsZWRUcmFja3MuYXBwZW5kKHRleHRUcmFjayk7CisKKyAgICAgICAg
aWYgKHRyYWNrVG9FbmFibGUpCisgICAgICAgICAgICBjb250aW51ZTsKKwogICAgICAgICBpZiAo
dXNlcklzSW50ZXJlc3RlZEluVGhpc1RyYWNrS2luZCh0ZXh0VHJhY2stPmtpbmQoKSkpIHsKICAg
ICAgICAgICAgIC8vICogSWYgdGhlIHRleHQgdHJhY2sga2luZCBpcyB7IFtzdWJ0aXRsZXMgb3Ig
Y2FwdGlvbnNdIFtkZXNjcmlwdGlvbnNdIH0gYW5kIHRoZSB1c2VyIGhhcyBpbmRpY2F0ZWQgYW4g
aW50ZXJlc3QgaW4gaGF2aW5nIGEKICAgICAgICAgICAgIC8vIHRyYWNrIHdpdGggdGhpcyB0ZXh0
IHRyYWNrIGtpbmQsIHRleHQgdHJhY2sgbGFuZ3VhZ2UsIGFuZCB0ZXh0IHRyYWNrIGxhYmVsIGVu
YWJsZWQsIGFuZCB0aGVyZSBpcyBubwpAQCAtMzA3NSw2ICszMDgzLDE1IEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6Y29uZmlndXJlVGV4dFRyYWMKICAgICBpZiAoIXRyYWNrVG9FbmFibGUgJiYg
ZmFsbGJhY2tUcmFjaykKICAgICAgICAgdHJhY2tUb0VuYWJsZSA9IGZhbGxiYWNrVHJhY2s7CiAK
KyAgICBpZiAoY3VycmVudGx5RW5hYmxlZFRyYWNrcy5zaXplKCkpIHsKKyAgICAgICAgbV9wcm9j
ZXNzaW5nUHJlZmVyZW5jZUNoYW5nZSA9IGZhbHNlOworICAgICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGN1cnJlbnRseUVuYWJsZWRUcmFja3Muc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAg
IFJlZlB0cjxUZXh0VHJhY2s+IHRleHRUcmFjayA9IGN1cnJlbnRseUVuYWJsZWRUcmFja3NbaV07
CisgICAgICAgICAgICBpZiAodGV4dFRyYWNrICE9IHRyYWNrVG9FbmFibGUpCisgICAgICAgICAg
ICAgICAgdGV4dFRyYWNrLT5zZXRNb2RlKFRleHRUcmFjazo6ZGlzYWJsZWRLZXl3b3JkKCkpOwor
ICAgICAgICB9CisgICAgfQorCiAgICAgaWYgKHRyYWNrVG9FbmFibGUpCiAgICAgICAgIHRyYWNr
VG9FbmFibGUtPnNldE1vZGUoVGV4dFRyYWNrOjpzaG93aW5nS2V5d29yZCgpKTsKIH0KQEAgLTQ0
MTMsMjggKzQ0MzAsMjMgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpjYXB0aW9uUHJlZmVyZW5j
ZQogICAgIGlmICghaXNWaWRlbygpKQogICAgICAgICByZXR1cm47CiAKKyAgICBtX3Byb2Nlc3Np
bmdQcmVmZXJlbmNlQ2hhbmdlID0gdHJ1ZTsKKyAgICBzZXRDbG9zZWRDYXB0aW9uc1Zpc2libGUo
dXNlclByZWZlcnNDYXB0aW9ucygpKTsKKwogICAgIGlmIChoYXNNZWRpYUNvbnRyb2xzKCkpCiAg
ICAgICAgIG1lZGlhQ29udHJvbHMoKS0+dGV4dFRyYWNrUHJlZmVyZW5jZXNDaGFuZ2VkKCk7Ci0g
ICAgCi0gICAgbWFya0NhcHRpb25BbmRTdWJ0aXRsZVRyYWNrc0FzVW5jb25maWd1cmVkKCk7CiB9
CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWFya0NhcHRpb25BbmRTdWJ0aXRsZVRyYWNrc0Fz
VW5jb25maWd1cmVkKCkKIHsKLSAgICAvLyBNYXJrIGFsbCB0cmFjayBlbGVtZW50cyBhcyBub3Qg
ImNvbmZpZ3VyZWQiIHNvIHRoYXQgY29uZmlndXJlVGV4dFRyYWNrcygpCisgICAgLy8gTWFyayBh
bGwgdHJhY2tzIGFzIG5vdCAiY29uZmlndXJlZCIgc28gdGhhdCBjb25maWd1cmVUZXh0VHJhY2tz
KCkKICAgICAvLyB3aWxsIHJlY29uc2lkZXIgd2hpY2ggdHJhY2tzIHRvIGRpc3BsYXkgaW4gbGln
aHQgb2YgbmV3IHVzZXIgcHJlZmVyZW5jZXMKICAgICAvLyAoZS5nLiBkZWZhdWx0IHRyYWNrcyBz
aG91bGQgbm90IGJlIGRpc3BsYXllZCBpZiB0aGUgdXNlciBoYXMgdHVybmVkIG9mZgogICAgIC8v
IGNhcHRpb25zIGFuZCBub24tZGVmYXVsdCB0cmFja3Mgc2hvdWxkIGJlIGRpc3BsYXllZCBiYXNl
ZCBvbiBsYW5ndWFnZQogICAgIC8vIHByZWZlcmVuY2VzIGlmIHRoZSB1c2VyIGhhcyB0dXJuZWQg
Y2FwdGlvbnMgb24pLgotICAgIGZvciAoUmVmUHRyPE5vZGU+IG5vZGUgPSBmaXJzdENoaWxkKCk7
IG5vZGU7IG5vZGUgPSBub2RlLT5uZXh0U2libGluZygpKSB7Ci0gICAgICAgIGlmICghbm9kZS0+
aGFzVGFnTmFtZSh0cmFja1RhZykpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgCi0g
ICAgICAgIEhUTUxUcmFja0VsZW1lbnQqIHRyYWNrRWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxU
cmFja0VsZW1lbnQqPihub2RlLmdldCgpKTsKLSAgICAgICAgUmVmUHRyPFRleHRUcmFjaz4gdGV4
dFRyYWNrID0gdHJhY2tFbGVtZW50LT50cmFjaygpOwotICAgICAgICBpZiAoIXRleHRUcmFjaykK
LSAgICAgICAgICAgIGNvbnRpbnVlOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX3Rl
eHRUcmFja3MtPmxlbmd0aCgpOyArK2kpIHsKICAgICAgICAgCisgICAgICAgIFJlZlB0cjxUZXh0
VHJhY2s+IHRleHRUcmFjayA9IG1fdGV4dFRyYWNrcy0+aXRlbShpKTsKICAgICAgICAgU3RyaW5n
IGtpbmQgPSB0ZXh0VHJhY2stPmtpbmQoKTsKIAogICAgICAgICBpZiAoa2luZCA9PSBUZXh0VHJh
Y2s6OnN1YnRpdGxlc0tleXdvcmQoKSB8fCBraW5kID09IFRleHRUcmFjazo6Y2FwdGlvbnNLZXl3
b3JkKCkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAkocmV2aXNp
b24gMTQyNjM3KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTI1Myw3ICsyNTMsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNvbmZp
Z3VyZVRleHRUcmFja0dyb3VwRm9yTGFuZ3VhZ2UoY29uc3QgVHJhY2tHcm91cCYpIGNvbnN0Owog
ICAgIHZvaWQgY29uZmlndXJlVGV4dFRyYWNrcygpOwotICAgIHZvaWQgY29uZmlndXJlVGV4dFRy
YWNrR3JvdXAoY29uc3QgVHJhY2tHcm91cCYpIGNvbnN0OworICAgIHZvaWQgY29uZmlndXJlVGV4
dFRyYWNrR3JvdXAoY29uc3QgVHJhY2tHcm91cCYpOwogCiAgICAgdm9pZCB0b2dnbGVUcmFja0F0
SW5kZXgoaW50IGluZGV4LCBib29sIGV4Y2x1c2l2ZSA9IHRydWUpOwogICAgIHN0YXRpYyBpbnQg
dGV4dFRyYWNrc09mZkluZGV4KCkgeyByZXR1cm4gLTE7IH0KQEAgLTY5MSw2ICs2OTEsNyBAQCBw
cml2YXRlOgogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBib29sIG1fdHJhY2tzQXJlUmVh
ZHkgOiAxOwogICAgIGJvb2wgbV9oYXZlVmlzaWJsZVRleHRUcmFjayA6IDE7CisgICAgYm9vbCBt
X3Byb2Nlc3NpbmdQcmVmZXJlbmNlQ2hhbmdlIDogMTsKICAgICBmbG9hdCBtX2xhc3RUZXh0VHJh
Y2tVcGRhdGVUaW1lOwogCiAgICAgUmVmUHRyPFRleHRUcmFja0xpc3Q+IG1fdGV4dFRyYWNrczsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNw
cAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJl
bmNlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5NCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lm
IEVOQUJMRShWSURFT19UUkFDSykKKworI2ltcG9ydCAiQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6
cmVnaXN0ZXJGb3JQcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFja3MoQ2FwdGlvblByZWZlcmVuY2Vz
Q2hhbmdlZExpc3RlbmVyKiBsaXN0ZW5lcikKK3sKKyAgICBtX2NhcHRpb25QcmVmZXJlbmNlQ2hh
bmdlTGlzdGVuZXJzLmFkZChsaXN0ZW5lcik7Cit9CisKK3ZvaWQgQ2FwdGlvblVzZXJQcmVmZXJl
bmNlczo6dW5yZWdpc3RlckZvclByZWZlcmVuY2VzQ2hhbmdlZENhbGxiYWNrcyhDYXB0aW9uUHJl
ZmVyZW5jZXNDaGFuZ2VkTGlzdGVuZXIqIGxpc3RlbmVyKQoreworICAgIGlmIChtX2NhcHRpb25Q
cmVmZXJlbmNlQ2hhbmdlTGlzdGVuZXJzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV9jYXB0aW9uUHJlZmVyZW5jZUNoYW5nZUxpc3RlbmVycy5yZW1vdmUobGlzdGVuZXIpOwor
fQorCit2b2lkIENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnNldFVzZXJQcmVmZXJzQ2FwdGlvbnMo
Ym9vbCBwcmVmZXJlbmNlKQoreworICAgIG1fdXNlclByZWZlcnNDYXB0aW9ucyA9IHByZWZlcmVu
Y2U7CisgICAgaWYgKG1fdGVzdGluZ01vZGUpIHsKKyAgICAgICAgbV9oYXZlUHJlZmVyZW5jZXMg
PSB0cnVlOworICAgICAgICBjYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCk7CisgICAgfQorfQor
Cit2b2lkIENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OmNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQo
KQoreworICAgIGlmIChtX2NhcHRpb25QcmVmZXJlbmNlQ2hhbmdlTGlzdGVuZXJzLmlzRW1wdHko
KSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIGZvciAoSGFzaFNldDxDYXB0aW9uUHJlZmVy
ZW5jZXNDaGFuZ2VkTGlzdGVuZXIqPjo6aXRlcmF0b3IgaSA9IG1fY2FwdGlvblByZWZlcmVuY2VD
aGFuZ2VMaXN0ZW5lcnMuYmVnaW4oKTsgaSAhPSBtX2NhcHRpb25QcmVmZXJlbmNlQ2hhbmdlTGlz
dGVuZXJzLmVuZCgpOyArK2kpCisgICAgICAgICgqaSktPmNhcHRpb25QcmVmZXJlbmNlc0NoYW5n
ZWQoKTsKK30KKworVmVjdG9yPFN0cmluZz4gQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6cHJlZmVy
cmVkTGFuZ3VhZ2VzKCkgY29uc3QKK3sKKyAgICBWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZXMgPSB1
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7CisgICAgaWYgKG1fdGVzdGluZ01vZGUgJiYgIW1fdXNl
clByZWZlcnJlZExhbmd1YWdlLmlzRW1wdHkoKSkKKyAgICAgICAgbGFuZ3VhZ2VzLmluc2VydCgw
LCBtX3VzZXJQcmVmZXJyZWRMYW5ndWFnZSk7CisKKyAgICByZXR1cm4gbGFuZ3VhZ2VzOworfQor
Cit2b2lkIENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnNldFByZWZlcnJlZExhbmd1YWdlKFN0cmlu
ZyBsYW5ndWFnZSkKK3sKKyAgICBtX3VzZXJQcmVmZXJyZWRMYW5ndWFnZSA9IGxhbmd1YWdlOwor
ICAgIGlmIChtX3Rlc3RpbmdNb2RlKSB7CisgICAgICAgIG1faGF2ZVByZWZlcmVuY2VzID0gdHJ1
ZTsKKyAgICAgICAgY2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpOworICAgIH0KK30KKworU3Ry
aW5nIENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OmRpc3BsYXlOYW1lRm9yVHJhY2soVGV4dFRyYWNr
KiB0cmFjaykgY29uc3QKK3sKKyAgICBpZiAodHJhY2stPmxhYmVsKCkuaXNFbXB0eSgpICYmIHRy
YWNrLT5sYW5ndWFnZSgpLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHRleHRUcmFja05vTGFi
ZWxUZXh0KCk7CisgICAgaWYgKCF0cmFjay0+bGFiZWwoKS5pc0VtcHR5KCkpCisgICAgICAgIHJl
dHVybiB0cmFjay0+bGFiZWwoKTsKKyAgICByZXR1cm4gdHJhY2stPmxhbmd1YWdlKCk7Cit9CisK
K30KKworI2VuZGlmIC8vIEVOQUJMRShWSURFT19UUkFDSykKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5oCShyZXZpc2lvbiAxNDI2MzcpCisrKyBT
b3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuaAkod29ya2luZyBjb3B5
KQpAQCAtNTAsMzMgKzUwLDIzIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0cjxDYXB0
aW9uVXNlclByZWZlcmVuY2VzPiBjcmVhdGUoUGFnZUdyb3VwKiBncm91cCkgeyByZXR1cm4gYWRv
cHRQdHIobmV3IENhcHRpb25Vc2VyUHJlZmVyZW5jZXMoZ3JvdXApKTsgfQogICAgIHZpcnR1YWwg
fkNhcHRpb25Vc2VyUHJlZmVyZW5jZXMoKSB7IH0KIAotICAgIHZpcnR1YWwgYm9vbCB1c2VySGFz
Q2FwdGlvblByZWZlcmVuY2VzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFs
IGJvb2wgdXNlckhhc0NhcHRpb25QcmVmZXJlbmNlcygpIGNvbnN0IHsgcmV0dXJuIG1fdGVzdGlu
Z01vZGUgJiYgbV9oYXZlUHJlZmVyZW5jZXM7IH0KICAgICB2aXJ0dWFsIGJvb2wgdXNlclByZWZl
cnNDYXB0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fdGVzdGluZ01vZGUgPyBtX3VzZXJQcmVmZXJz
Q2FwdGlvbnMgOiBmYWxzZTsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRVc2VyUHJlZmVyc0NhcHRp
b25zKGJvb2wgcHJlZmVyZW5jZSkgeyBtX3VzZXJQcmVmZXJzQ2FwdGlvbnMgPSBwcmVmZXJlbmNl
OyB9CisgICAgdmlydHVhbCB2b2lkIHNldFVzZXJQcmVmZXJzQ2FwdGlvbnMoYm9vbCBwcmVmZXJl
bmNlKTsKICAgICB2aXJ0dWFsIGZsb2F0IGNhcHRpb25Gb250U2l6ZVNjYWxlKGJvb2wmIGltcG9y
dGFudCkgY29uc3QgeyBpbXBvcnRhbnQgPSBmYWxzZTsgcmV0dXJuIDAuMDVmOyB9CiAgICAgdmly
dHVhbCBTdHJpbmcgY2FwdGlvbnNTdHlsZVNoZWV0T3ZlcnJpZGUoKSBjb25zdCB7IHJldHVybiBl
bXB0eVN0cmluZygpOyB9Ci0gICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyRm9yUHJlZmVyZW5jZXND
aGFuZ2VkQ2FsbGJhY2tzKENhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWRMaXN0ZW5lciopIHsgfQot
ICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyRm9yUHJlZmVyZW5jZXNDaGFuZ2VkQ2FsbGJhY2tz
KENhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWRMaXN0ZW5lciopIHsgfQogCi0gICAgdmlydHVhbCB2
b2lkIHNldFByZWZlcnJlZExhbmd1YWdlKFN0cmluZyBsYW5ndWFnZSkgeyBtX3VzZXJQcmVmZXJy
ZWRMYW5ndWFnZSA9IGxhbmd1YWdlOyB9Ci0gICAgdmlydHVhbCBWZWN0b3I8U3RyaW5nPiBwcmVm
ZXJyZWRMYW5ndWFnZXMoKSBjb25zdAotICAgIHsKLSAgICAgICAgVmVjdG9yPFN0cmluZz4gbGFu
Z3VhZ2VzID0gdXNlclByZWZlcnJlZExhbmd1YWdlcygpOwotICAgICAgICBpZiAobV90ZXN0aW5n
TW9kZSAmJiAhbV91c2VyUHJlZmVycmVkTGFuZ3VhZ2UuaXNFbXB0eSgpKQotICAgICAgICAgICAg
bGFuZ3VhZ2VzLmluc2VydCgwLCBtX3VzZXJQcmVmZXJyZWRMYW5ndWFnZSk7Ci0gICAgICAgIHJl
dHVybiBsYW5ndWFnZXM7Ci0gICAgfQorICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckZvclByZWZl
cmVuY2VzQ2hhbmdlZENhbGxiYWNrcyhDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkTGlzdGVuZXIq
KTsKKyAgICB2aXJ0dWFsIHZvaWQgdW5yZWdpc3RlckZvclByZWZlcmVuY2VzQ2hhbmdlZENhbGxi
YWNrcyhDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkTGlzdGVuZXIqKTsKKyAgICB2aXJ0dWFsIHZv
aWQgY2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpOworICAgIGJvb2wgaGF2ZVByZWZlcmVuY2VD
aGFuZ2VMaXN0ZW5lcnMoKSBjb25zdCB7IHJldHVybiAhbV9jYXB0aW9uUHJlZmVyZW5jZUNoYW5n
ZUxpc3RlbmVycy5pc0VtcHR5KCk7IH0KIAotICAgIHZpcnR1YWwgU3RyaW5nIGRpc3BsYXlOYW1l
Rm9yVHJhY2soVGV4dFRyYWNrKiB0cmFjaykgY29uc3QKLSAgICB7Ci0gICAgICAgIGlmICh0cmFj
ay0+bGFiZWwoKS5pc0VtcHR5KCkgJiYgdHJhY2stPmxhbmd1YWdlKCkuaXNFbXB0eSgpKQotICAg
ICAgICAgICAgcmV0dXJuIHRleHRUcmFja05vTGFiZWxUZXh0KCk7Ci0gICAgICAgIGlmICghdHJh
Y2stPmxhYmVsKCkuaXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0dXJuIHRyYWNrLT5sYWJlbCgp
OwotICAgICAgICByZXR1cm4gdHJhY2stPmxhbmd1YWdlKCk7Ci0gICAgfQorICAgIHZpcnR1YWwg
dm9pZCBzZXRQcmVmZXJyZWRMYW5ndWFnZShTdHJpbmcgbGFuZ3VhZ2UpOworICAgIHZpcnR1YWwg
VmVjdG9yPFN0cmluZz4gcHJlZmVycmVkTGFuZ3VhZ2VzKCkgY29uc3Q7CiAKKyAgICB2aXJ0dWFs
IFN0cmluZyBkaXNwbGF5TmFtZUZvclRyYWNrKFRleHRUcmFjayogdHJhY2spIGNvbnN0OwogICAg
IHZpcnR1YWwgYm9vbCB0ZXN0aW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGVzdGluZ01vZGU7
IH0KKwogICAgIHZpcnR1YWwgdm9pZCBzZXRUZXN0aW5nTW9kZShib29sIG92ZXJyaWRlKSB7IG1f
dGVzdGluZ01vZGUgPSBvdmVycmlkZTsgfQogCiAgICAgUGFnZUdyb3VwKiBwYWdlR3JvdXAoKSB7
IHJldHVybiBtX3BhZ2VHcm91cDsgfQpAQCAtODUsMTQgKzc1LDE3IEBAIHByb3RlY3RlZDoKICAg
ICBDYXB0aW9uVXNlclByZWZlcmVuY2VzKFBhZ2VHcm91cCogZ3JvdXApCiAgICAgICAgIDogbV9w
YWdlR3JvdXAoZ3JvdXApCiAgICAgICAgICwgbV90ZXN0aW5nTW9kZShmYWxzZSkKKyAgICAgICAg
LCBtX2hhdmVQcmVmZXJlbmNlcyhmYWxzZSkKICAgICAgICAgLCBtX3VzZXJQcmVmZXJzQ2FwdGlv
bnMoZmFsc2UpCiAgICAgewogICAgIH0KIAogcHJpdmF0ZToKKyAgICBIYXNoU2V0PENhcHRpb25Q
cmVmZXJlbmNlc0NoYW5nZWRMaXN0ZW5lcio+IG1fY2FwdGlvblByZWZlcmVuY2VDaGFuZ2VMaXN0
ZW5lcnM7CiAgICAgUGFnZUdyb3VwKiBtX3BhZ2VHcm91cDsKICAgICBTdHJpbmcgbV91c2VyUHJl
ZmVycmVkTGFuZ3VhZ2U7CiAgICAgYm9vbCBtX3Rlc3RpbmdNb2RlOworICAgIGJvb2wgbV9oYXZl
UHJlZmVyZW5jZXM7CiAgICAgYm9vbCBtX3VzZXJQcmVmZXJzQ2FwdGlvbnM7CiB9OwogICAgIApJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWFj
LmgJKHJldmlzaW9uIDE0MjYzNykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQ
cmVmZXJlbmNlc01hYy5oCSh3b3JraW5nIGNvcHkpCkBAIC00NiwxMyArNDYsMTMgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBzZXRVc2VyUHJlZmVyc0NhcHRpb25zKGJvb2wpIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgZmxvYXQgY2FwdGlvbkZvbnRTaXplU2NhbGUoYm9vbCYpIGNvbnN0IE9W
RVJSSURFOwogICAgIHZpcnR1YWwgU3RyaW5nIGNhcHRpb25zU3R5bGVTaGVldE92ZXJyaWRlKCkg
Y29uc3QgT1ZFUlJJREU7CisKICAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJGb3JQcmVmZXJlbmNl
c0NoYW5nZWRDYWxsYmFja3MoQ2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZExpc3RlbmVyKikgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHVucmVnaXN0ZXJGb3JQcmVmZXJlbmNlc0NoYW5nZWRD
YWxsYmFja3MoQ2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZExpc3RlbmVyKikgT1ZFUlJJREU7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0UHJlZmVycmVkTGFuZ3VhZ2UoU3RyaW5nKSBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIFZlY3RvcjxTdHJpbmc+IHByZWZlcnJlZExhbmd1YWdlcygpIGNvbnN0IE9W
RVJSSURFOwogCi0gICAgdm9pZCBjYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCk7CisgICAgdmly
dHVhbCB2b2lkIGNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQoKSBPVkVSUklERTsKICNlbmRpZgog
CiAgICAgdmlydHVhbCBTdHJpbmcgZGlzcGxheU5hbWVGb3JUcmFjayhUZXh0VHJhY2sqKSBjb25z
dCBPVkVSUklERTsKQEAgLTc0LDcgKzc0LDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgdXBkYXRl
Q2FwdGlvblN0eWxlU2hlZXRPdmVyaWRlKCk7CiAKLSAgICBIYXNoU2V0PENhcHRpb25QcmVmZXJl
bmNlc0NoYW5nZWRMaXN0ZW5lcio+IG1fY2FwdGlvblByZWZlcmVuY2VDaGFuZ2VMaXN0ZW5lcnM7
CiAgICAgYm9vbCBtX2xpc3RlbmluZ0ZvclByZWZlcmVuY2VDaGFuZ2VzOwogI2VuZGlmCiB9OwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01h
Yy5tbQkocmV2aXNpb24gMTQyNjM5KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNl
clByZWZlcmVuY2VzTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMjgsMzQgKzEyOCwyOCBAQCBi
b29sIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWM6OnVzZXJIYXNDCiAKIHZvaWQgQ2FwdGlvblVz
ZXJQcmVmZXJlbmNlc01hYzo6cmVnaXN0ZXJGb3JQcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFja3Mo
Q2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZExpc3RlbmVyKiBsaXN0ZW5lcikKIHsKLSAgICBpZiAo
IU1lZGlhQWNjZXNzaWJpbGl0eUxpYnJhcnkoKSkgewotICAgICAgICBDYXB0aW9uVXNlclByZWZl
cmVuY2VzOjpyZWdpc3RlckZvclByZWZlcmVuY2VzQ2hhbmdlZENhbGxiYWNrcyhsaXN0ZW5lcik7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6cmVn
aXN0ZXJGb3JQcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFja3MobGlzdGVuZXIpOwogCi0gICAgQVNT
RVJUKCFtX2NhcHRpb25QcmVmZXJlbmNlQ2hhbmdlTGlzdGVuZXJzLmNvbnRhaW5zKGxpc3RlbmVy
KSk7CisgICAgaWYgKCFNZWRpYUFjY2Vzc2liaWxpdHlMaWJyYXJ5KCkpCisgICAgICAgIHJldHVy
bjsKIAogICAgIGlmICgha01BWENhcHRpb25BcHBlYXJhbmNlU2V0dGluZ3NDaGFuZ2VkTm90aWZp
Y2F0aW9uKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIW1fbGlzdGVuaW5nRm9yUHJlZmVy
ZW5jZUNoYW5nZXMpIHsKICAgICAgICAgbV9saXN0ZW5pbmdGb3JQcmVmZXJlbmNlQ2hhbmdlcyA9
IHRydWU7Ci0gICAgICAgIENGTm90aWZpY2F0aW9uQ2VudGVyQWRkT2JzZXJ2ZXIgKENGTm90aWZp
Y2F0aW9uQ2VudGVyR2V0TG9jYWxDZW50ZXIoKSwgdGhpcywgdXNlckNhcHRpb25QcmVmZXJlbmNl
c0NoYW5nZWROb3RpZmljYXRpb25DYWxsYmFjaywga01BWENhcHRpb25BcHBlYXJhbmNlU2V0dGlu
Z3NDaGFuZ2VkTm90aWZpY2F0aW9uLCBOVUxMLCBDRk5vdGlmaWNhdGlvblN1c3BlbnNpb25CZWhh
dmlvckNvYWxlc2NlKTsKKyAgICAgICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJBZGRPYnNlcnZlcihD
Rk5vdGlmaWNhdGlvbkNlbnRlckdldExvY2FsQ2VudGVyKCksIHRoaXMsIHVzZXJDYXB0aW9uUHJl
ZmVyZW5jZXNDaGFuZ2VkTm90aWZpY2F0aW9uQ2FsbGJhY2ssIGtNQVhDYXB0aW9uQXBwZWFyYW5j
ZVNldHRpbmdzQ2hhbmdlZE5vdGlmaWNhdGlvbiwgTlVMTCwgQ0ZOb3RpZmljYXRpb25TdXNwZW5z
aW9uQmVoYXZpb3JDb2FsZXNjZSk7CiAgICAgfQogICAgIAogICAgIHVwZGF0ZUNhcHRpb25TdHls
ZVNoZWV0T3ZlcmlkZSgpOwotICAgIG1fY2FwdGlvblByZWZlcmVuY2VDaGFuZ2VMaXN0ZW5lcnMu
YWRkKGxpc3RlbmVyKTsKIH0KIAotdm9pZCBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjOjp1bnJl
Z2lzdGVyRm9yUHJlZmVyZW5jZXNDaGFuZ2VkQ2FsbGJhY2tzKENhcHRpb25QcmVmZXJlbmNlc0No
YW5nZWRMaXN0ZW5lciogbGlzdGVuZXIpCit2b2lkIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWM6
OmNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQoKQogewotICAgIGlmICghTWVkaWFBY2Nlc3NpYmls
aXR5TGlicmFyeSgpKSB7Ci0gICAgICAgIENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnVucmVnaXN0
ZXJGb3JQcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFja3MobGlzdGVuZXIpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQorICAgIGlmIChoYXZlUHJlZmVyZW5jZUNoYW5nZUxpc3RlbmVycygpKQorICAg
ICAgICB1cGRhdGVDYXB0aW9uU3R5bGVTaGVldE92ZXJpZGUoKTsKIAotICAgIGlmIChrTUFYQ2Fw
dGlvbkFwcGVhcmFuY2VTZXR0aW5nc0NoYW5nZWROb3RpZmljYXRpb24pCi0gICAgICAgIG1fY2Fw
dGlvblByZWZlcmVuY2VDaGFuZ2VMaXN0ZW5lcnMucmVtb3ZlKGxpc3RlbmVyKTsKKyAgICBDYXB0
aW9uVXNlclByZWZlcmVuY2VzOjpjYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCk7CiB9CiAKIFN0
cmluZyBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjOjpjYXB0aW9uc1dpbmRvd0NTUygpIGNvbnN0
CkBAIC00MjEsMTcgKzQxNSw2IEBAIGZsb2F0IENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWM6OmNh
cHRpb24KICNlbmRpZgogfQogCi12b2lkIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWM6OmNhcHRp
b25QcmVmZXJlbmNlc0NoYW5nZWQoKQotewotICAgIGlmIChtX2NhcHRpb25QcmVmZXJlbmNlQ2hh
bmdlTGlzdGVuZXJzLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgdXBkYXRlQ2Fw
dGlvblN0eWxlU2hlZXRPdmVyaWRlKCk7Ci0KLSAgICBmb3IgKEhhc2hTZXQ8Q2FwdGlvblByZWZl
cmVuY2VzQ2hhbmdlZExpc3RlbmVyKj46Oml0ZXJhdG9yIGkgPSBtX2NhcHRpb25QcmVmZXJlbmNl
Q2hhbmdlTGlzdGVuZXJzLmJlZ2luKCk7IGkgIT0gbV9jYXB0aW9uUHJlZmVyZW5jZUNoYW5nZUxp
c3RlbmVycy5lbmQoKTsgKytpKQotICAgICAgICAoKmkpLT5jYXB0aW9uUHJlZmVyZW5jZXNDaGFu
Z2VkKCk7Ci19Ci0KIHZvaWQgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYzo6dXBkYXRlQ2FwdGlv
blN0eWxlU2hlZXRPdmVyaWRlKCkKIHsKICAgICAvLyBJZGVudGlmeSBvdXIgb3ZlcnJpZGUgc3R5
bGUgc2hlZXQgd2l0aCBhIHVuaXF1ZSBVUkwgLSBhIG5ldyBzY2hlbWUgYW5kIGEgVVVJRC4KSW5k
ZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDE0Mjc3MCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEzLTAyLTEzICBFcmljIENhcmxzb24gIDxlcmlj
LmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdIENhcHRpb24gbWVudSBzaG91bGQg
aGF2ZSBvbmx5IG9uZSBpdGVtIHNlbGVjdGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk3MzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIG1lZGlhL3RyYWNrL3RyYWNrLXVzZXItcHJlZmVyZW5jZXMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIG1lZGlhL3RyYWNrL3RyYWNrLXVzZXItcHJlZmVyZW5j
ZXMuaHRtbDogVXBkYXRlIHRlc3QgdG8gY2hlY2sgZm9yIHJlYWN0aW9ucyB0byBwcmVmZXJlbmNl
cy4KKwogMjAxMy0wMi0xMyAgTW9ydGVuIFN0ZW5zaG9ybmUgIDxtc3RlbnNob0BvcGVyYS5jb20+
CiAKICAgICAgICAgV2ViS2l0IGlnbm9yZXMgY29sdW1uLXJ1bGVzIHdpZGVyIHRoYW4gY29sdW1u
LWdhcApJbmRleDogTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stdXNlci1wcmVmZXJlbmNl
cy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJh
Y2stdXNlci1wcmVmZXJlbmNlcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE0MjYzNykKKysrIExh
eW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLXVzZXItcHJlZmVyZW5jZXMtZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0zLDI5ICszLDQwIEBAIFRlc3QgdHJhY2sgdXNlciBwcmVmZXJl
bmNlcy4KIAogU2V0IHVzZXIgbGFuZ3VhZ2VzIHRvOiBbJ25vJywgJ2VzLUVTJywgJ2VuJywgJ2Zy
J10uCiAKLVRlc3QgMTogdHJhY2sgc2VsZWN0ZWQgYmVjYXVzZSBvZiAnZGVmYXVsdCcgYXR0cmli
dXRlCitUZXN0IDE6ICdubycgdHJhY2sgc2VsZWN0ZWQgYmVjYXVzZSBvZiB1c2VyIHByZWZlcnJl
ZCBsYW5ndWFnZQogLSBjcmVhdGluZyB0cmFja3MgZm9yOiBbZW4sZnIsbm9dLgogRVZFTlQobG9h
ZCkKLUVYUEVDVEVEIChldmVudC50YXJnZXQuc3JjbGFuZyA9PSAnZnInKSBPSworRVhQRUNURUQg
KGV2ZW50LnRhcmdldC5zcmNsYW5nID09ICdubycpIE9LCiBFWFBFQ1RFRCAoZXZlbnQudGFyZ2V0
LnJlYWR5U3RhdGUgPT0gJzInKSBPSwogCi1UZXN0IDI6IHRyYWNrIHNlbGVjdGVkIGJlY2F1c2Ug
b2Ygb3JpZ2luYWwgdXNlciBwcmVmZXJyZWQgbGFuZ3VhZ2UKK1Rlc3QgMjogJ25vJyB0cmFjayBz
dGlsbCBzZWxlY3RlZCBiZWNhdXNlIG9mIGxhbmd1YWdlLCBvdmVycmlkaW5nICdkZWZhdWx0JyBh
dHRyaWJ1dGUKIC0gY3JlYXRpbmcgdHJhY2tzIGZvcjogW2ZyLGVuLG5vXS4KKy0tICdlbicgdHJh
Y2sgbWFya2VkIGFzIGRlZmF1bHQuCiBFVkVOVChsb2FkKQogRVhQRUNURUQgKGV2ZW50LnRhcmdl
dC5zcmNsYW5nID09ICdubycpIE9LCiBFWFBFQ1RFRCAoZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUg
PT0gJzInKSBPSwogCi1UZXN0IDM6IHByZWZlcnJlZCBsYW5ndWFnZSBjaGFuZ2VkIGJ5IHNlbGVj
dGluZyB0cmFjayBmcm9tIG1lbnUKK1Rlc3QgMzogc2VsZWN0ICdmcicgdHJhY2sgZnJvbSBtZW51
CiAtIHNob3cgY2FwdGlvbnMgbWVudS4KK0VYUEVDVEVEICh0cmFja01lbnVJdGVtc1sxXS5jbGFz
c05hbWUgPT0gJycpIE9LCitFWFBFQ1RFRCAodHJhY2tNZW51SXRlbXNbMl0uY2xhc3NOYW1lID09
ICcnKSBPSworRVhQRUNURUQgKHRyYWNrTWVudUl0ZW1zWzNdLmNsYXNzTmFtZSA9PSAnc2VsZWN0
ZWQnKSBPSwogLSBjbGljayBvbiBtZW51IGl0ZW0gMi4KK0VWRU5UKGxvYWQpCitFWFBFQ1RFRCAo
ZXZlbnQudGFyZ2V0LnNyY2xhbmcgPT0gJ2ZyJykgT0sKK0VYUEVDVEVEIChldmVudC50YXJnZXQu
cmVhZHlTdGF0ZSA9PSAnMicpIE9LCiBFWFBFQ1RFRCAodmlkZW8udGV4dFRyYWNrc1swXS5tb2Rl
ID09ICdzaG93aW5nJykgT0sKIEVYUEVDVEVEICh2aWRlby50ZXh0VHJhY2tzWzBdLmxhbmd1YWdl
ID09ICdmcicpIE9LCi0tIGNyZWF0aW5nIHRyYWNrcyBmb3I6IFtubyxmcixlbl0uCisKK1Rlc3Qg
NDogcHJlZmVycmVkIGxhbmd1YWdlIHdhcyBjaGFuZ2VkIHRvICdmcicgYnkgc2VsZWN0aW5nIHRy
YWNrIGZyb20gbWVudQorLSBjcmVhdGluZyB0cmFja3MgZm9yOiBbcnUsZW4sZnJdLgogRVZFTlQo
bG9hZCkKIEVYUEVDVEVEIChldmVudC50YXJnZXQuc3JjbGFuZyA9PSAnZnInKSBPSwogRVhQRUNU
RUQgKGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlID09ICcyJykgT0sKK0VYUEVDVEVEICh2aWRlby50
ZXh0VHJhY2tzWzJdLm1vZGUgPT0gJ3Nob3dpbmcnKSBPSworRVhQRUNURUQgKHZpZGVvLnRleHRU
cmFja3NbMl0ubGFuZ3VhZ2UgPT0gJ2ZyJykgT0sKIAotVGVzdCA0OiB0dXJuaW5nIGNhcHRpb25z
IG9mZiBmcm9tIG1lbnUgZGlzYWJsZXMgY2FwdGlvbnMKK1Rlc3QgNTogdHVybmluZyBjYXB0aW9u
cyBvZmYgZnJvbSBtZW51IGRpc2FibGVzIGNhcHRpb24gc2VsZWN0aW9uCiAtIHNob3cgY2FwdGlv
bnMgbWVudS4KIC0gY2xpY2sgb24gbWVudSBpdGVtIDAuCiAtIGNyZWF0aW5nIHRyYWNrcyBmb3I6
IFtydSxqcCxlbl0uCkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay11c2VyLXBy
ZWZlcmVuY2VzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJh
Y2stdXNlci1wcmVmZXJlbmNlcy5odG1sCShyZXZpc2lvbiAxNDI2MzcpCisrKyBMYXlvdXRUZXN0
cy9tZWRpYS90cmFjay90cmFjay11c2VyLXByZWZlcmVuY2VzLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTExLDYgKzExLDcgQEAKICAgICAgICAgICAgIHZhciBleHBlY3RlZExhbmd1YWdlOwogICAg
ICAgICAgICAgdmFyIHRlc3RTdGFnZSA9IDA7CiAgICAgICAgICAgICB2YXIgY2FwdGlvbnNCdXR0
b25Db29yZGluYXRlczsKKyAgICAgICAgICAgIHZhciB0cmFja01lbnVJdGVtczsKIAogICAgICAg
ICAgICAgZnVuY3Rpb24gc2hvd0NhcHRpb25NZW51KCkKICAgICAgICAgICAgIHsKQEAgLTI0LDcg
KzI1LDcgQEAKIAogICAgICAgICAgICAgZnVuY3Rpb24gdHJhY2tNZW51TGlzdCgpCiAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgdmFyIHRyYWNrTGlzdEVsZW1lbnQgPSBnZXRUcmFja0xp
c3RFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgdHJhY2tMaXN0RWxlbWVudCA9IGdldFRyYWNr
TGlzdEVsZW1lbnQoKTsKICAgICAgICAgICAgICAgICBpZiAoIXRyYWNrTGlzdEVsZW1lbnQpCiAg
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKIApAQCAtNDYsOCArNDcsOCBAQAogICAgICAgICAg
ICAgZnVuY3Rpb24gc2VsZWN0Q2FwdGlvbk1lbnVJdGVtKGluZGV4KQogICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiLSBjbGljayBvbiBtZW51IGl0ZW0gIiArIGlu
ZGV4ICsgIi4iKTsKLSAgICAgICAgICAgICAgICB2YXIgdHJhY2tMaXN0SXRlbXMgPSB0cmFja01l
bnVMaXN0KCk7Ci0gICAgICAgICAgICAgICAgdmFyIHNlbGVjdGVkVHJhY2tJdGVtID0gdHJhY2tM
aXN0SXRlbXNbaW5kZXhdOworICAgICAgICAgICAgICAgIHZhciB0cmFja01lbnVJdGVtcyA9IHRy
YWNrTWVudUxpc3QoKTsKKyAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ZWRUcmFja0l0ZW0gPSB0
cmFja01lbnVJdGVtc1tpbmRleF07CiAgICAgICAgICAgICAgICAgdmFyIGJvdW5kaW5nUmVjdCA9
IHNlbGVjdGVkVHJhY2tJdGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgICAgICAgICAg
ICAgIHZhciB4ID0gYm91bmRpbmdSZWN0LmxlZnQgKyBib3VuZGluZ1JlY3Qud2lkdGggLyAyOwog
ICAgICAgICAgICAgICAgIHZhciB5ID0gYm91bmRpbmdSZWN0LnRvcCArIGJvdW5kaW5nUmVjdC5o
ZWlnaHQgLyAyOwpAQCAtNzIsOCArNzMsMTAgQEAKICAgICAgICAgICAgICAgICB0cmFjay5zcmMg
PSAnZGF0YTp0ZXh0L3Z0dCwnK2VuY29kZVVSSUNvbXBvbmVudCgiV0VCVlRUXG5cbjAwOjAwOjAw
LjAwMCAtLT4gMDA6MDA6MDEuMDAwXG5DYXB0aW9uIDFcbiIpOwogICAgICAgICAgICAgICAgIHRy
YWNrLnNldEF0dHJpYnV0ZSgnc3JjbGFuZycsIGxhbmd1YWdlKTsKICAgICAgICAgICAgICAgICB0
cmFjay5zZXRBdHRyaWJ1dGUoJ29ubG9hZCcsICd0cmFja0xvYWRlZCgpJyk7Ci0gICAgICAgICAg
ICAgICAgaWYgKGlzRGVmYXVsdCkKKyAgICAgICAgICAgICAgICBpZiAoaXNEZWZhdWx0KSB7Cisg
ICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiLS0gJyIgKyBsYW5ndWFnZSArICInIHRy
YWNrIG1hcmtlZCBhcyBkZWZhdWx0LiIpOwogICAgICAgICAgICAgICAgICAgICB0cmFjay5zZXRB
dHRyaWJ1dGUoJ2RlZmF1bHQnLCAnZGVmYXVsdCcpOworICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICB2aWRlby5hcHBlbmRDaGlsZCh0cmFjayk7CiAgICAgICAgICAgICB9CiAKQEAg
LTkzLDQyICs5Niw1OSBAQAogICAgICAgICAgICAgICAgICsrdGVzdFN0YWdlOwogICAgICAgICAg
ICAgICAgIHN3aXRjaCAodGVzdFN0YWdlKSB7CiAgICAgICAgICAgICAgICAgY2FzZSAxOgotICAg
ICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIjxicj5UZXN0IDE6IHRyYWNrIHNlbGVjdGVk
IGJlY2F1c2Ugb2YgJ2RlZmF1bHQnIGF0dHJpYnV0ZSIpOwotICAgICAgICAgICAgICAgICAgICBj
cmVhdGVUcmFja0VsZW1lbnRzKFsnZW4nLCAnZnInLCAnbm8nXSwgMSk7Ci0gICAgICAgICAgICAg
ICAgICAgIGV4cGVjdGVkTGFuZ3VhZ2UgPSAnZnInOworICAgICAgICAgICAgICAgICAgICBjb25z
b2xlV3JpdGUoIjxicj5UZXN0IDE6ICdubycgdHJhY2sgc2VsZWN0ZWQgYmVjYXVzZSBvZiB1c2Vy
IHByZWZlcnJlZCBsYW5ndWFnZSIpOworICAgICAgICAgICAgICAgICAgICBjcmVhdGVUcmFja0Vs
ZW1lbnRzKFsnZW4nLCAnZnInLCAnbm8nXSk7CisgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVk
TGFuZ3VhZ2UgPSAnbm8nOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICAg
ICAgICAgIGNhc2UgMjoKLSAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+VGVz
dCAyOiB0cmFjayBzZWxlY3RlZCBiZWNhdXNlIG9mIG9yaWdpbmFsIHVzZXIgcHJlZmVycmVkIGxh
bmd1YWdlIik7Ci0gICAgICAgICAgICAgICAgICAgIGNyZWF0ZVRyYWNrRWxlbWVudHMoWydmcics
ICdlbicsICdubyddKTsKKyAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+VGVz
dCAyOiAnbm8nIHRyYWNrIHN0aWxsIHNlbGVjdGVkIGJlY2F1c2Ugb2YgbGFuZ3VhZ2UsIG92ZXJy
aWRpbmcgJ2RlZmF1bHQnIGF0dHJpYnV0ZSIpOworICAgICAgICAgICAgICAgICAgICBjcmVhdGVU
cmFja0VsZW1lbnRzKFsnZnInLCAnZW4nLCAnbm8nXSwgMSk7CiAgICAgICAgICAgICAgICAgICAg
IGV4cGVjdGVkTGFuZ3VhZ2UgPSAnbm8nOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKIAog
ICAgICAgICAgICAgICAgIGNhc2UgMzoKLSAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRl
KCI8YnI+VGVzdCAzOiBwcmVmZXJyZWQgbGFuZ3VhZ2UgY2hhbmdlZCBieSBzZWxlY3RpbmcgdHJh
Y2sgZnJvbSBtZW51Iik7CisgICAgICAgICAgICAgICAgICAgIC8vIENsZWFyIHRoZSBkZWJ1ZyBz
ZXR0aW5nIHNvIGl0IGlzbid0IGNvbnNpZGVyZWQgaW4gdGhlIHRyYWNrIHNlbGVjdGlvbiBsb2dp
YworICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2hvdWxkRGlzcGxh
eVRyYWNrS2luZCgnQ2FwdGlvbnMnLCBmYWxzZSk7CisKKyAgICAgICAgICAgICAgICAgICAgY29u
c29sZVdyaXRlKCI8YnI+VGVzdCAzOiBzZWxlY3QgJ2ZyJyB0cmFjayBmcm9tIG1lbnUiKTsKICAg
ICAgICAgICAgICAgICAgICAgc2hvd0NhcHRpb25NZW51KCk7CiAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOwogCiAgICAgICAgICAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAgICAgICAgICB0
cmFja01lbnVJdGVtcyA9IHRyYWNrTWVudUxpc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVz
dEV4cGVjdGVkKCJ0cmFja01lbnVJdGVtc1sxXS5jbGFzc05hbWUiLCAiIik7CisgICAgICAgICAg
ICAgICAgICAgIHRlc3RFeHBlY3RlZCgidHJhY2tNZW51SXRlbXNbMl0uY2xhc3NOYW1lIiwgIiIp
OworICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInRyYWNrTWVudUl0ZW1zWzNdLmNs
YXNzTmFtZSIsICJzZWxlY3RlZCIpOworCiAgICAgICAgICAgICAgICAgICAgIHNlbGVjdENhcHRp
b25NZW51SXRlbSgyKTsKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRMYW5ndWFnZSA9ICdm
cic7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgY2FzZSA1
OgogICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnRleHRUcmFja3NbMF0u
bW9kZSIsICJzaG93aW5nIik7CiAgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlk
ZW8udGV4dFRyYWNrc1swXS5sYW5ndWFnZSIsICJmciIpOworCisgICAgICAgICAgICAgICAgICAg
IGNvbnNvbGVXcml0ZSgiPGJyPlRlc3QgNDogcHJlZmVycmVkIGxhbmd1YWdlIHdhcyBjaGFuZ2Vk
IHRvICdmcicgYnkgc2VsZWN0aW5nIHRyYWNrIGZyb20gbWVudSIpOworICAgICAgICAgICAgICAg
ICAgICBjcmVhdGVUcmFja0VsZW1lbnRzKFsncnUnLCAnZW4nLCAnZnInXSk7CiAgICAgICAgICAg
ICAgICAgICAgIGV4cGVjdGVkTGFuZ3VhZ2UgPSAnZnInOwotICAgICAgICAgICAgICAgICAgICBj
cmVhdGVUcmFja0VsZW1lbnRzKFsgJ25vJywgJ2ZyJywgJ2VuJ10pOwogICAgICAgICAgICAgICAg
ICAgICBicmVhazsKIAotICAgICAgICAgICAgICAgIGNhc2UgNToKLSAgICAgICAgICAgICAgICAg
ICAgY29uc29sZVdyaXRlKCI8YnI+VGVzdCA0OiB0dXJuaW5nIGNhcHRpb25zIG9mZiBmcm9tIG1l
bnUgZGlzYWJsZXMgY2FwdGlvbnMiKTsKKyAgICAgICAgICAgICAgICBjYXNlIDY6CisgICAgICAg
ICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8udGV4dFRyYWNrc1syXS5tb2RlIiwgInNo
b3dpbmciKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby50ZXh0VHJh
Y2tzWzJdLmxhbmd1YWdlIiwgImZyIik7CisKKyAgICAgICAgICAgICAgICAgICAgY29uc29sZVdy
aXRlKCI8YnI+VGVzdCA1OiB0dXJuaW5nIGNhcHRpb25zIG9mZiBmcm9tIG1lbnUgZGlzYWJsZXMg
Y2FwdGlvbiBzZWxlY3Rpb24iKTsKICAgICAgICAgICAgICAgICAgICAgc2hvd0NhcHRpb25NZW51
KCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgICAgICAgICAgY2FzZSA2
OgorICAgICAgICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgICAgICAgICAgc2VsZWN0Q2Fw
dGlvbk1lbnVJdGVtKDApOwogICAgICAgICAgICAgICAgICAgICBjcmVhdGVUcmFja0VsZW1lbnRz
KFsgJ3J1JywgJ2pwJywgJ2VuJ10pOwotICAgICAgICAgICAgICAgICAgICB0aW1lciA9IHNldFRp
bWVvdXQobmV4dFN0ZXAsIDI1MCk7CisgICAgICAgICAgICAgICAgICAgIHRpbWVyID0gc2V0VGlt
ZW91dChuZXh0U3RlcCwgMTAwKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAg
ICAgICAgICAgICBjYXNlIDc6CisgICAgICAgICAgICAgICAgY2FzZSA4OgogICAgICAgICAgICAg
ICAgICAgICBmb3IgKHZhciBuZHggPSAwOyBuZHggPCB2aWRlby50ZXh0VHJhY2tzLmxlbmd0aDsg
KytuZHgpCiAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnRleHRU
cmFja3NbIiArIG5keCArICJdLm1vZGUiLCAiZGlzYWJsZWQiKTsKIApAQCAtMTQ1LDYgKzE2NSw3
IEBACiAgICAgICAgICAgICAgICAgdmlkZW8uYWRkRXZlbnRMaXN0ZW5lcignY2FucGxheXRocm91
Z2gnLCBuZXh0U3RlcCk7CiAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+U2V0IHVz
ZXIgbGFuZ3VhZ2VzIHRvOiBbJ25vJywgJ2VzLUVTJywgJ2VuJywgJ2ZyJ10uIik7CiAgICAgICAg
ICAgICAgICAgaW50ZXJuYWxzLnNldFVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoWydubycsICdlcy1F
UycsICdlbicsICdmciddKTsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
U2hvdWxkRGlzcGxheVRyYWNrS2luZCgnQ2FwdGlvbnMnLCB0cnVlKTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgPC9zY3JpcHQ+CiAgICAgPC9oZWFkPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188168</attachid>
            <date>2013-02-13 13:29:51 -0800</date>
            <delta_ts>2013-02-13 13:59:40 -0800</delta_ts>
            <desc>Update patch.</desc>
            <filename>patch_6.txt</filename>
            <type>text/plain</type>
            <size>34005</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0Mjc3MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ2IEBACisyMDEzLTAyLTEzICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdIENhcHRpb24g
bWVudSBzaG91bGQgaGF2ZSBvbmx5IG9uZSBpdGVtIHNlbGVjdGVkCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk3MzAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG1lZGlhL3RyYWNr
L3RyYWNrLXVzZXItcHJlZmVyZW5jZXMuaHRtbCB3YXMgbW9kaWZpZWQgdG8gdGVzdCB0aGUgY2hh
bmdlcy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBBZGQgQ2FwdGlvblVzZXJQcmVmZXJl
bmNlcy5jcHAuCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbTogRGl0dG8uCisgICAgICAg
ICogVGFyZ2V0LnByaTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS5neXBpOiBEaXR0by4KKyAg
ICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogRGl0dG8uCisgICAgICAgICog
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajogRGl0dG8uCisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBEaXR0by4KKworICAgICAgICAqIGh0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpI
VE1MTWVkaWFFbGVtZW50KTogSW5pdGlhbGl6ZSBtX3Byb2Nlc3NpbmdQcmVmZXJlbmNlQ2hhbmdl
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6Y29uZmlndXJlVGV4dFRyYWNr
R3JvdXApOiBPbmx5IGVuZCB1cCB3aXRoIG9uZSBzZWxlY3RlZCB0cmFjayB3aGVuCisgICAgICAg
ICAgICBjYWxsZWQgYmVjYXVzZSBvZiBhIHByZWZlcmVuY2VzIGNoYW5nZS4KKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQpOiBDYWxs
IHNldENsb3NlZENhcHRpb25zVmlzaWJsZSBpbnN0ZWFkCisgICAgICAgICAgICBvZiBjYWxsaW5n
IG1hcmtDYXB0aW9uQW5kU3VidGl0bGVUcmFja3NBc1VuY29uZmlndXJlZCBkaXJlY3RseS4KKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1hcmtDYXB0aW9uQW5kU3VidGl0bGVU
cmFja3NBc1VuY29uZmlndXJlZCk6IFByb2Nlc3MgYWxsIHRyYWNrcywgCisgICAgICAgICAgICBu
b3QganVzdCB0cmFjayBlbGVtZW50cy4KKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQu
aDoKKworICAgICAgICAqIHBhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHA6IEFkZGVkIHNv
IHRoZSBmdW5jdGlvbmFsaXR5IGNhbiBiZSB0ZXN0ZWQgaW4gRFJULgorICAgICAgICAoV2ViQ29y
ZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlczo6cmVnaXN0ZXJGb3JQcmVmZXJlbmNlc0NoYW5nZWRD
YWxsYmFja3MpOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlczo6dW5y
ZWdpc3RlckZvclByZWZlcmVuY2VzQ2hhbmdlZENhbGxiYWNrcyk6CisgICAgICAgIChXZWJDb3Jl
OjpDYXB0aW9uVXNlclByZWZlcmVuY2VzOjpzZXRVc2VyUHJlZmVyc0NhcHRpb25zKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OmNhcHRpb25QcmVmZXJlbmNlc0No
YW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlczo6cHJlZmVy
cmVkTGFuZ3VhZ2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXM6
OnNldFByZWZlcnJlZExhbmd1YWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJl
ZmVyZW5jZXM6OmRpc3BsYXlOYW1lRm9yVHJhY2spOgorICAgICAgICAqIHBhZ2UvQ2FwdGlvblVz
ZXJQcmVmZXJlbmNlcy5oOgorCisgICAgICAgICogcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2Vz
TWFjLmg6CisgICAgICAgICogcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYzo6cmVnaXN0ZXJGb3JQcmVm
ZXJlbmNlc0NoYW5nZWRDYWxsYmFja3MpOiBNb3ZlZCBzb21lIGxvZ2ljCisgICAgICAgICAgICB0
byBiYXNlIGNsYXNzLgorICAgICAgICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01h
Yzo6Y2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCk6IERpdHRvLgorCiAyMDEzLTAyLTEzICBNb3J0
ZW4gU3RlbnNob3JuZSAgPG1zdGVuc2hvQG9wZXJhLmNvbT4KIAogICAgICAgICBXZWJLaXQgaWdu
b3JlcyBjb2x1bW4tcnVsZXMgd2lkZXIgdGhhbiBjb2x1bW4tZ2FwCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAkocmV2aXNpb24gMTQyNjM3KQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTE3NDYsNiArMTc0Niw3IEBAIHNldChXZWJDb3JlX1NPVVJD
RVMKIAogICAgIHBhZ2UvQXV0b3Njcm9sbENvbnRyb2xsZXIuY3BwCiAgICAgcGFnZS9CYXJJbmZv
LmNwcAorICAgIHBhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAKICAgICBwYWdlL0Nocm9t
ZS5jcHAKICAgICBwYWdlL0NvbnNvbGUuY3BwCiAgICAgcGFnZS9Db250ZW50U2VjdXJpdHlQb2xp
Y3kuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDE0MjYz
NykKKysrIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcgY29weSkK
QEAgLTQwOTksNiArNDA5OSw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNv
cmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0Jh
ckluZm8uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0JhckluZm8uaCBcCisJU291cmNlL1dl
YkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
cGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBcCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkJKHJldmlzaW9uIDE0MjYzNykKKysrIFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkJKHdvcmtp
bmcgY29weSkKQEAgLTkwNyw2ICs5MDcsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwYWdlL2FuaW1h
dGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAgXAogICAgIHBhZ2UvQXV0b3Njcm9sbENvbnRyb2xs
ZXIuY3BwIFwKICAgICBwYWdlL0JhckluZm8uY3BwIFwKKyAgICBwYWdlL0NhcHRpb25Vc2VyUHJl
ZmVyZW5jZXMuY3BwIFwKICAgICBwYWdlL0Nocm9tZS5jcHAgXAogICAgIHBhZ2UvQ29uc29sZS5j
cHAgXAogICAgIHBhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcCBcCkBAIC0yMDkxLDYgKzIw
OTIsNyBAQCBIRUFERVJTICs9IFwKICAgICBwYWdlL0FkanVzdFZpZXdTaXplT3JOb3QuaCBcCiAg
ICAgcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5oIFwKICAgICBwYWdlL0JhckluZm8uaCBcCisg
ICAgcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmggXAogICAgIHBhZ2UvQ2hyb21lLmggXAog
ICAgIHBhZ2UvQ29uc29sZS5oIFwKICAgICBwYWdlL0NvbnNvbGVUeXBlcy5oIFwKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkJKHJldmlzaW9uIDE0MjYzNykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQkod29ya2luZyBjb3B5KQpAQCAtMjA3MSw2ICsyMDcxLDcgQEAKICAgICAgICAgICAgICdw
YWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmgnLAogICAgICAgICAgICAgJ3BhZ2UvQmFySW5mby5j
cHAnLAogICAgICAgICAgICAgJ3BhZ2UvQmFySW5mby5oJywKKyAgICAgICAgICAgICdwYWdlL0Nh
cHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwJywKICAgICAgICAgICAgICdwYWdlL0Nocm9tZS5jcHAn
LAogICAgICAgICAgICAgJ3BhZ2UvQ29uc29sZS5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvQ29u
dGVudFNlY3VyaXR5UG9saWN5LmNwcCcsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24gMTQyNjM3KQorKysgU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTI3MDU1
LDYgKzI3MDU1LDE0IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHBhZ2VcQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAiCisJCQkJPgorCQkJPC9G
aWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcQ2FwdGlvblVzZXJQcmVm
ZXJlbmNlcy5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRo
PSIuLlxwYWdlXENocm9tZS5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpJbmRleDogU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCShyZXZpc2lvbiAxNDI2
MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCSh3
b3JraW5nIGNvcHkpCkBAIC0xOTk2LDEwICsxOTk2LDExIEBACiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxwYWdlXGFuaW1hdGlvblxBbmltYXRpb25Db250cm9sbGVyLmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcQXV0b3Njcm9sbENvbnRyb2xsZXIuY3BwIiAvPgog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxCYXJJbmZvLmNwcCIgLz4KKyAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAiIC8+CiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdlXENocm9tZS5jcHAiIC8+CiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxwYWdlXGFuaW1hdGlvblxDb21wb3NpdGVBbmltYXRpb24uY3BwIiAv
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxDb25zb2xlLmNwcCIgLz4KLSAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcCIgLz4K
KyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcQ29uc29sZS5jcHAiIC8+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxwYWdlXENvbnRleHRNZW51Q29udHJvbGxlci5jcHAiIC8+CiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdlXENyeXB0by5jcHAiIC8+CiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxwYWdlXGFuaW1hdGlvblxDU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAi
IC8+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCShyZXZpc2lvbiAxNDI2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw2ICsxMDMsNyBA
QAogCQkwNzIwQjBBMTE0RDMzMjM1MDA2NDI5NTUgLyogR2VuZXJpY0V2ZW50UXVldWUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MjBCMDlGMTREMzMy
MzUwMDY0Mjk1NSAvKiBHZW5lcmljRXZlbnRRdWV1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3MjBCMEExMTREMzMyMzUwMDY0Mjk1NyAvKiBH
ZXN0dXJlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3MjBCMDlGMTREMzMyMzUwMDY0Mjk1NyAvKiBHZXN0dXJlRXZlbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzJDOEIxMTEzMUM1MTg2
MDBBNEZDRTkgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NkYwRDA5MTJCODE5MjcwMEMy
NkFBNCAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwICovOyB9OworCQkwNzJD
QTg2MTE2Q0I0REMzMDA4QUUxMzEgLyogQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzJDQTg2MDE2Q0I0REMz
MDA4QUUxMzEgLyogQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAgKi87IH07CiAJCTA3MzVFRTZB
MEY0MEM1RTQwMDRBMjYwNCAvKiBNZWRpYVBsYXllclByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzM1RUU2OTBGNDBDNUU0MDA0QTI2MDQgLyog
TWVkaWFQbGF5ZXJQcm94eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTA3NTM4NjAyMTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2su
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc1Mzg2
MDAxNDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5jcHAgKi87IH07CiAJCTA3NTM4
NjAzMTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2suaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NTM4NjAxMTQ0ODlFOTgwMEI3ODQ1MiAv
KiBDYWNoZWRUZXh0VHJhY2suaCAqLzsgfTsKQEAgLTczNTMsNiArNzM1NCw3IEBACiAJCTA3MjBC
MDlGMTREMzMyMzUwMDY0Mjk1NSAvKiBHZW5lcmljRXZlbnRRdWV1ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBHZW5lcmljRXZlbnRRdWV1ZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwNzIwQjA5RjE0RDMzMjM1MDA2NDI5NTYgLyogR2VzdHVyZUV2ZW50LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdlc3R1cmVFdmVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MjBCMDlGMTREMzMyMzUwMDY0Mjk1NyAv
KiBHZXN0dXJlRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VzdHVy
ZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MkNBODYwMTZDQjREQzMw
MDhBRTEzMSAvKiBDYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IENhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwNzM1RUU2OTBGNDBDNUU0MDA0QTI2MDQgLyogTWVkaWFQbGF5
ZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVBsYXllclBy
b3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NTM4NjAwMTQ0ODlFOTgwMEI3
ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQ2FjaGVkVGV4dFRyYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMDc1Mzg2MDExNDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRUZXh0VHJhY2suaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MjkyLDYgKzE2Mjk0LDcgQEAKIAkJCQlCQzEyNEVFNDBDMjY0
MUNEMDA5RTIzNDkgLyogQmFySW5mby5jcHAgKi8sCiAJCQkJQkMxMjRFRTUwQzI2NDFDRDAwOUUy
MzQ5IC8qIEJhckluZm8uaCAqLywKIAkJCQlCQzEyNEVFNjBDMjY0MUNEMDA5RTIzNDkgLyogQmFy
SW5mby5pZGwgKi8sCisJCQkJMDcyQ0E4NjAxNkNCNERDMzAwOEFFMTMxIC8qIENhcHRpb25Vc2Vy
UHJlZmVyZW5jZXMuY3BwICovLAogCQkJCTA3OUQwODY3MTYyRjIwRTgwMERCODY1OCAvKiBDYXB0
aW9uVXNlclByZWZlcmVuY2VzLmggKi8sCiAJCQkJMDc5RDA4NjkxNjJGMjFGOTAwREI4NjU4IC8q
IENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWMuaCAqLywKIAkJCQkwNzlEMDg2QTE2MkYyMUY5MDBE
Qjg2NTggLyogQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYy5tbSAqLywKQEAgLTI5MzY2LDYgKzI5
MzY5LDcgQEAKIAkJCQlCMjU1OTlBMzBEMDBEOEJBMDBCQjgyNUMgLyogU1ZHSW1hZ2UuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMDhGODU5RDQxNDYzRjlDRDAwNjdEOTMzIC8qIFNWR0ltYWdlQ2Fj
aGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjIyMjdBMkMwRDAwQkYyMjAwNzFCNzgyIC8qIFNW
R0ltYWdlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwNzJDQTg2MTE2Q0I0REMzMDA4
QUUxMzEgLyogQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
MjhDNkEyOTBEMDBDNDQ4MDAzMzRBQTQgLyogU1ZHSW1hZ2VMb2FkZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQjIyMjdBMkYwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0xhbmdTcGFjZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCMjIyN0EzMjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTGVuZ3RoLmNw
cCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCShyZXZpc2lvbiAxNDI2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODksNiArMjg5LDcgQEAgSFRNTE1lZGlh
RWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudChjb25zdAogI2lmIEVOQUJMRShWSURFT19UUkFDSykK
ICAgICAsIG1fdHJhY2tzQXJlUmVhZHkodHJ1ZSkKICAgICAsIG1faGF2ZVZpc2libGVUZXh0VHJh
Y2soZmFsc2UpCisgICAgLCBtX3Byb2Nlc3NpbmdQcmVmZXJlbmNlQ2hhbmdlKGZhbHNlKQogICAg
ICwgbV9sYXN0VGV4dFRyYWNrVXBkYXRlVGltZSgtMSkKICAgICAsIG1fdGV4dFRyYWNrcygwKQog
ICAgICwgbV9pZ25vcmVUcmFja0Rpc3BsYXlVcGRhdGUoMCkKQEAgLTMwMTQsNyArMzAxNSw3IEBA
IGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6dXNlcklzSW50ZXJlc3RlZEkKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKLXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6Y29uZmlndXJlVGV4dFRyYWNrR3JvdXAo
Y29uc3QgVHJhY2tHcm91cCYgZ3JvdXApIGNvbnN0Cit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNv
bmZpZ3VyZVRleHRUcmFja0dyb3VwKGNvbnN0IFRyYWNrR3JvdXAmIGdyb3VwKQogewogICAgIEFT
U0VSVChncm91cC50cmFja3Muc2l6ZSgpKTsKIApAQCAtMzAzMSwxMiArMzAzMiwxOSBAQCB2b2lk
IEhUTUxNZWRpYUVsZW1lbnQ6OmNvbmZpZ3VyZVRleHRUcmFjCiAgICAgfQogCiAgICAgLy8gRmly
c3QsIGZpbmQgdGhlIHRyYWNrIGluIHRoZSBncm91cCB0aGF0IHNob3VsZCBiZSBlbmFibGVkIChp
ZiBhbnkpLgorICAgIFZlY3RvcjxSZWZQdHI8VGV4dFRyYWNrPiA+IGN1cnJlbnRseUVuYWJsZWRU
cmFja3M7CiAgICAgUmVmUHRyPFRleHRUcmFjaz4gdHJhY2tUb0VuYWJsZTsKICAgICBSZWZQdHI8
VGV4dFRyYWNrPiBkZWZhdWx0VHJhY2s7CiAgICAgUmVmUHRyPFRleHRUcmFjaz4gZmFsbGJhY2tU
cmFjazsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgIXRyYWNrVG9FbmFibGUgJiYgaSA8IGdyb3Vw
LnRyYWNrcy5zaXplKCk7ICsraSkgeworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZ3JvdXAu
dHJhY2tzLnNpemUoKTsgKytpKSB7CiAgICAgICAgIFJlZlB0cjxUZXh0VHJhY2s+IHRleHRUcmFj
ayA9IGdyb3VwLnRyYWNrc1tpXTsKIAorICAgICAgICBpZiAobV9wcm9jZXNzaW5nUHJlZmVyZW5j
ZUNoYW5nZSAmJiB0ZXh0VHJhY2stPm1vZGUoKSA9PSBUZXh0VHJhY2s6OnNob3dpbmdLZXl3b3Jk
KCkpCisgICAgICAgICAgICBjdXJyZW50bHlFbmFibGVkVHJhY2tzLmFwcGVuZCh0ZXh0VHJhY2sp
OworCisgICAgICAgIGlmICh0cmFja1RvRW5hYmxlKQorICAgICAgICAgICAgY29udGludWU7CisK
ICAgICAgICAgaWYgKHVzZXJJc0ludGVyZXN0ZWRJblRoaXNUcmFja0tpbmQodGV4dFRyYWNrLT5r
aW5kKCkpKSB7CiAgICAgICAgICAgICAvLyAqIElmIHRoZSB0ZXh0IHRyYWNrIGtpbmQgaXMgeyBb
c3VidGl0bGVzIG9yIGNhcHRpb25zXSBbZGVzY3JpcHRpb25zXSB9IGFuZCB0aGUgdXNlciBoYXMg
aW5kaWNhdGVkIGFuIGludGVyZXN0IGluIGhhdmluZyBhCiAgICAgICAgICAgICAvLyB0cmFjayB3
aXRoIHRoaXMgdGV4dCB0cmFjayBraW5kLCB0ZXh0IHRyYWNrIGxhbmd1YWdlLCBhbmQgdGV4dCB0
cmFjayBsYWJlbCBlbmFibGVkLCBhbmQgdGhlcmUgaXMgbm8KQEAgLTMwNzUsNiArMzA4MywxNSBA
QCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNvbmZpZ3VyZVRleHRUcmFjCiAgICAgaWYgKCF0cmFj
a1RvRW5hYmxlICYmIGZhbGxiYWNrVHJhY2spCiAgICAgICAgIHRyYWNrVG9FbmFibGUgPSBmYWxs
YmFja1RyYWNrOwogCisgICAgaWYgKGN1cnJlbnRseUVuYWJsZWRUcmFja3Muc2l6ZSgpKSB7Cisg
ICAgICAgIG1fcHJvY2Vzc2luZ1ByZWZlcmVuY2VDaGFuZ2UgPSBmYWxzZTsKKyAgICAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBjdXJyZW50bHlFbmFibGVkVHJhY2tzLnNpemUoKTsgKytpKSB7
CisgICAgICAgICAgICBSZWZQdHI8VGV4dFRyYWNrPiB0ZXh0VHJhY2sgPSBjdXJyZW50bHlFbmFi
bGVkVHJhY2tzW2ldOworICAgICAgICAgICAgaWYgKHRleHRUcmFjayAhPSB0cmFja1RvRW5hYmxl
KQorICAgICAgICAgICAgICAgIHRleHRUcmFjay0+c2V0TW9kZShUZXh0VHJhY2s6OmRpc2FibGVk
S2V5d29yZCgpKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIGlmICh0cmFja1RvRW5hYmxlKQog
ICAgICAgICB0cmFja1RvRW5hYmxlLT5zZXRNb2RlKFRleHRUcmFjazo6c2hvd2luZ0tleXdvcmQo
KSk7CiB9CkBAIC00NDEzLDI4ICs0NDMwLDIzIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6Y2Fw
dGlvblByZWZlcmVuY2UKICAgICBpZiAoIWlzVmlkZW8oKSkKICAgICAgICAgcmV0dXJuOwogCisg
ICAgbV9wcm9jZXNzaW5nUHJlZmVyZW5jZUNoYW5nZSA9IHRydWU7CisgICAgc2V0Q2xvc2VkQ2Fw
dGlvbnNWaXNpYmxlKHVzZXJQcmVmZXJzQ2FwdGlvbnMoKSk7CisKICAgICBpZiAoaGFzTWVkaWFD
b250cm9scygpKQogICAgICAgICBtZWRpYUNvbnRyb2xzKCktPnRleHRUcmFja1ByZWZlcmVuY2Vz
Q2hhbmdlZCgpOwotICAgIAotICAgIG1hcmtDYXB0aW9uQW5kU3VidGl0bGVUcmFja3NBc1VuY29u
ZmlndXJlZCgpOwogfQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1hcmtDYXB0aW9uQW5kU3Vi
dGl0bGVUcmFja3NBc1VuY29uZmlndXJlZCgpCiB7Ci0gICAgLy8gTWFyayBhbGwgdHJhY2sgZWxl
bWVudHMgYXMgbm90ICJjb25maWd1cmVkIiBzbyB0aGF0IGNvbmZpZ3VyZVRleHRUcmFja3MoKQor
ICAgIC8vIE1hcmsgYWxsIHRyYWNrcyBhcyBub3QgImNvbmZpZ3VyZWQiIHNvIHRoYXQgY29uZmln
dXJlVGV4dFRyYWNrcygpCiAgICAgLy8gd2lsbCByZWNvbnNpZGVyIHdoaWNoIHRyYWNrcyB0byBk
aXNwbGF5IGluIGxpZ2h0IG9mIG5ldyB1c2VyIHByZWZlcmVuY2VzCiAgICAgLy8gKGUuZy4gZGVm
YXVsdCB0cmFja3Mgc2hvdWxkIG5vdCBiZSBkaXNwbGF5ZWQgaWYgdGhlIHVzZXIgaGFzIHR1cm5l
ZCBvZmYKICAgICAvLyBjYXB0aW9ucyBhbmQgbm9uLWRlZmF1bHQgdHJhY2tzIHNob3VsZCBiZSBk
aXNwbGF5ZWQgYmFzZWQgb24gbGFuZ3VhZ2UKICAgICAvLyBwcmVmZXJlbmNlcyBpZiB0aGUgdXNl
ciBoYXMgdHVybmVkIGNhcHRpb25zIG9uKS4KLSAgICBmb3IgKFJlZlB0cjxOb2RlPiBub2RlID0g
Zmlyc3RDaGlsZCgpOyBub2RlOyBub2RlID0gbm9kZS0+bmV4dFNpYmxpbmcoKSkgewotICAgICAg
ICBpZiAoIW5vZGUtPmhhc1RhZ05hbWUodHJhY2tUYWcpKQotICAgICAgICAgICAgY29udGludWU7
Ci0gICAgICAgIAotICAgICAgICBIVE1MVHJhY2tFbGVtZW50KiB0cmFja0VsZW1lbnQgPSBzdGF0
aWNfY2FzdDxIVE1MVHJhY2tFbGVtZW50Kj4obm9kZS5nZXQoKSk7Ci0gICAgICAgIFJlZlB0cjxU
ZXh0VHJhY2s+IHRleHRUcmFjayA9IHRyYWNrRWxlbWVudC0+dHJhY2soKTsKLSAgICAgICAgaWYg
KCF0ZXh0VHJhY2spCi0gICAgICAgICAgICBjb250aW51ZTsKKyAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgbV90ZXh0VHJhY2tzLT5sZW5ndGgoKTsgKytpKSB7CiAgICAgICAgIAorICAgICAg
ICBSZWZQdHI8VGV4dFRyYWNrPiB0ZXh0VHJhY2sgPSBtX3RleHRUcmFja3MtPml0ZW0oaSk7CiAg
ICAgICAgIFN0cmluZyBraW5kID0gdGV4dFRyYWNrLT5raW5kKCk7CiAKICAgICAgICAgaWYgKGtp
bmQgPT0gVGV4dFRyYWNrOjpzdWJ0aXRsZXNLZXl3b3JkKCkgfHwga2luZCA9PSBUZXh0VHJhY2s6
OmNhcHRpb25zS2V5d29yZCgpKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmgJKHJldmlzaW9uIDE0MjYzNykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNTMsNyArMjUzLDcgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBjb25maWd1cmVUZXh0VHJhY2tHcm91cEZvckxhbmd1YWdlKGNvbnN0IFRyYWNrR3Jv
dXAmKSBjb25zdDsKICAgICB2b2lkIGNvbmZpZ3VyZVRleHRUcmFja3MoKTsKLSAgICB2b2lkIGNv
bmZpZ3VyZVRleHRUcmFja0dyb3VwKGNvbnN0IFRyYWNrR3JvdXAmKSBjb25zdDsKKyAgICB2b2lk
IGNvbmZpZ3VyZVRleHRUcmFja0dyb3VwKGNvbnN0IFRyYWNrR3JvdXAmKTsKIAogICAgIHZvaWQg
dG9nZ2xlVHJhY2tBdEluZGV4KGludCBpbmRleCwgYm9vbCBleGNsdXNpdmUgPSB0cnVlKTsKICAg
ICBzdGF0aWMgaW50IHRleHRUcmFja3NPZmZJbmRleCgpIHsgcmV0dXJuIC0xOyB9CkBAIC02OTEs
NiArNjkxLDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgYm9vbCBt
X3RyYWNrc0FyZVJlYWR5IDogMTsKICAgICBib29sIG1faGF2ZVZpc2libGVUZXh0VHJhY2sgOiAx
OworICAgIGJvb2wgbV9wcm9jZXNzaW5nUHJlZmVyZW5jZUNoYW5nZSA6IDE7CiAgICAgZmxvYXQg
bV9sYXN0VGV4dFRyYWNrVXBkYXRlVGltZTsKIAogICAgIFJlZlB0cjxUZXh0VHJhY2tMaXN0PiBt
X3RleHRUcmFja3M7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVy
ZW5jZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQ
cmVmZXJlbmNlcy5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRp
b25Vc2VyUHJlZmVyZW5jZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOTQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2ltcG9ydCAiY29u
ZmlnLmgiCisKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCisKKyNpbXBvcnQgIkNhcHRpb25Vc2Vy
UHJlZmVyZW5jZXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIENhcHRpb25Vc2Vy
UHJlZmVyZW5jZXM6OnJlZ2lzdGVyRm9yUHJlZmVyZW5jZXNDaGFuZ2VkQ2FsbGJhY2tzKENhcHRp
b25QcmVmZXJlbmNlc0NoYW5nZWRMaXN0ZW5lciogbGlzdGVuZXIpCit7CisgICAgbV9jYXB0aW9u
UHJlZmVyZW5jZUNoYW5nZUxpc3RlbmVycy5hZGQobGlzdGVuZXIpOworfQorCit2b2lkIENhcHRp
b25Vc2VyUHJlZmVyZW5jZXM6OnVucmVnaXN0ZXJGb3JQcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFj
a3MoQ2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZExpc3RlbmVyKiBsaXN0ZW5lcikKK3sKKyAgICBp
ZiAobV9jYXB0aW9uUHJlZmVyZW5jZUNoYW5nZUxpc3RlbmVycy5pc0VtcHR5KCkpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fY2FwdGlvblByZWZlcmVuY2VDaGFuZ2VMaXN0ZW5lcnMucmVtb3Zl
KGxpc3RlbmVyKTsKK30KKwordm9pZCBDYXB0aW9uVXNlclByZWZlcmVuY2VzOjpzZXRVc2VyUHJl
ZmVyc0NhcHRpb25zKGJvb2wgcHJlZmVyZW5jZSkKK3sKKyAgICBtX3VzZXJQcmVmZXJzQ2FwdGlv
bnMgPSBwcmVmZXJlbmNlOworICAgIGlmIChtX3Rlc3RpbmdNb2RlKSB7CisgICAgICAgIG1faGF2
ZVByZWZlcmVuY2VzID0gdHJ1ZTsKKyAgICAgICAgY2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgp
OworICAgIH0KK30KKwordm9pZCBDYXB0aW9uVXNlclByZWZlcmVuY2VzOjpjYXB0aW9uUHJlZmVy
ZW5jZXNDaGFuZ2VkKCkKK3sKKyAgICBpZiAobV9jYXB0aW9uUHJlZmVyZW5jZUNoYW5nZUxpc3Rl
bmVycy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBmb3IgKEhhc2hTZXQ8
Q2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZExpc3RlbmVyKj46Oml0ZXJhdG9yIGkgPSBtX2NhcHRp
b25QcmVmZXJlbmNlQ2hhbmdlTGlzdGVuZXJzLmJlZ2luKCk7IGkgIT0gbV9jYXB0aW9uUHJlZmVy
ZW5jZUNoYW5nZUxpc3RlbmVycy5lbmQoKTsgKytpKQorICAgICAgICAoKmkpLT5jYXB0aW9uUHJl
ZmVyZW5jZXNDaGFuZ2VkKCk7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IENhcHRpb25Vc2VyUHJlZmVy
ZW5jZXM6OnByZWZlcnJlZExhbmd1YWdlcygpIGNvbnN0Cit7CisgICAgVmVjdG9yPFN0cmluZz4g
bGFuZ3VhZ2VzID0gdXNlclByZWZlcnJlZExhbmd1YWdlcygpOworICAgIGlmIChtX3Rlc3RpbmdN
b2RlICYmICFtX3VzZXJQcmVmZXJyZWRMYW5ndWFnZS5pc0VtcHR5KCkpCisgICAgICAgIGxhbmd1
YWdlcy5pbnNlcnQoMCwgbV91c2VyUHJlZmVycmVkTGFuZ3VhZ2UpOworCisgICAgcmV0dXJuIGxh
bmd1YWdlczsKK30KKwordm9pZCBDYXB0aW9uVXNlclByZWZlcmVuY2VzOjpzZXRQcmVmZXJyZWRM
YW5ndWFnZShTdHJpbmcgbGFuZ3VhZ2UpCit7CisgICAgbV91c2VyUHJlZmVycmVkTGFuZ3VhZ2Ug
PSBsYW5ndWFnZTsKKyAgICBpZiAobV90ZXN0aW5nTW9kZSkgeworICAgICAgICBtX2hhdmVQcmVm
ZXJlbmNlcyA9IHRydWU7CisgICAgICAgIGNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQoKTsKKyAg
ICB9Cit9CisKK1N0cmluZyBDYXB0aW9uVXNlclByZWZlcmVuY2VzOjpkaXNwbGF5TmFtZUZvclRy
YWNrKFRleHRUcmFjayogdHJhY2spIGNvbnN0Cit7CisgICAgaWYgKHRyYWNrLT5sYWJlbCgpLmlz
RW1wdHkoKSAmJiB0cmFjay0+bGFuZ3VhZ2UoKS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiB0
ZXh0VHJhY2tOb0xhYmVsVGV4dCgpOworICAgIGlmICghdHJhY2stPmxhYmVsKCkuaXNFbXB0eSgp
KQorICAgICAgICByZXR1cm4gdHJhY2stPmxhYmVsKCk7CisgICAgcmV0dXJuIHRyYWNrLT5sYW5n
dWFnZSgpOworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoVklERU9fVFJBQ0spCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuaAkocmV2aXNpb24g
MTQyNjM3KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTUwLDMxICs1MCwyMSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBh
c3NPd25QdHI8Q2FwdGlvblVzZXJQcmVmZXJlbmNlcz4gY3JlYXRlKFBhZ2VHcm91cCogZ3JvdXAp
IHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBDYXB0aW9uVXNlclByZWZlcmVuY2VzKGdyb3VwKSk7IH0K
ICAgICB2aXJ0dWFsIH5DYXB0aW9uVXNlclByZWZlcmVuY2VzKCkgeyB9CiAKLSAgICB2aXJ0dWFs
IGJvb2wgdXNlckhhc0NhcHRpb25QcmVmZXJlbmNlcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CisgICAgdmlydHVhbCBib29sIHVzZXJIYXNDYXB0aW9uUHJlZmVyZW5jZXMoKSBjb25zdCB7IHJl
dHVybiBtX3Rlc3RpbmdNb2RlICYmIG1faGF2ZVByZWZlcmVuY2VzOyB9CiAgICAgdmlydHVhbCBi
b29sIHVzZXJQcmVmZXJzQ2FwdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX3Rlc3RpbmdNb2RlID8g
bV91c2VyUHJlZmVyc0NhcHRpb25zIDogZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0VXNl
clByZWZlcnNDYXB0aW9ucyhib29sIHByZWZlcmVuY2UpIHsgbV91c2VyUHJlZmVyc0NhcHRpb25z
ID0gcHJlZmVyZW5jZTsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRVc2VyUHJlZmVyc0NhcHRpb25z
KGJvb2wgcHJlZmVyZW5jZSk7CiAgICAgdmlydHVhbCBmbG9hdCBjYXB0aW9uRm9udFNpemVTY2Fs
ZShib29sJiBpbXBvcnRhbnQpIGNvbnN0IHsgaW1wb3J0YW50ID0gZmFsc2U7IHJldHVybiAwLjA1
ZjsgfQogICAgIHZpcnR1YWwgU3RyaW5nIGNhcHRpb25zU3R5bGVTaGVldE92ZXJyaWRlKCkgY29u
c3QgeyByZXR1cm4gZW1wdHlTdHJpbmcoKTsgfQotICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckZv
clByZWZlcmVuY2VzQ2hhbmdlZENhbGxiYWNrcyhDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkTGlz
dGVuZXIqKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdW5yZWdpc3RlckZvclByZWZlcmVuY2VzQ2hh
bmdlZENhbGxiYWNrcyhDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkTGlzdGVuZXIqKSB7IH0KIAot
ICAgIHZpcnR1YWwgdm9pZCBzZXRQcmVmZXJyZWRMYW5ndWFnZShTdHJpbmcgbGFuZ3VhZ2UpIHsg
bV91c2VyUHJlZmVycmVkTGFuZ3VhZ2UgPSBsYW5ndWFnZTsgfQotICAgIHZpcnR1YWwgVmVjdG9y
PFN0cmluZz4gcHJlZmVycmVkTGFuZ3VhZ2VzKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIFZlY3Rv
cjxTdHJpbmc+IGxhbmd1YWdlcyA9IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKLSAgICAgICAg
aWYgKG1fdGVzdGluZ01vZGUgJiYgIW1fdXNlclByZWZlcnJlZExhbmd1YWdlLmlzRW1wdHkoKSkK
LSAgICAgICAgICAgIGxhbmd1YWdlcy5pbnNlcnQoMCwgbV91c2VyUHJlZmVycmVkTGFuZ3VhZ2Up
OwotICAgICAgICByZXR1cm4gbGFuZ3VhZ2VzOwotICAgIH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVn
aXN0ZXJGb3JQcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFja3MoQ2FwdGlvblByZWZlcmVuY2VzQ2hh
bmdlZExpc3RlbmVyKik7CisgICAgdmlydHVhbCB2b2lkIHVucmVnaXN0ZXJGb3JQcmVmZXJlbmNl
c0NoYW5nZWRDYWxsYmFja3MoQ2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZExpc3RlbmVyKik7Cisg
ICAgdmlydHVhbCB2b2lkIGNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQoKTsKKyAgICBib29sIGhh
dmVQcmVmZXJlbmNlQ2hhbmdlTGlzdGVuZXJzKCkgY29uc3QgeyByZXR1cm4gIW1fY2FwdGlvblBy
ZWZlcmVuY2VDaGFuZ2VMaXN0ZW5lcnMuaXNFbXB0eSgpOyB9CiAKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBkaXNwbGF5TmFtZUZvclRyYWNrKFRleHRUcmFjayogdHJhY2spIGNvbnN0Ci0gICAgewotICAg
ICAgICBpZiAodHJhY2stPmxhYmVsKCkuaXNFbXB0eSgpICYmIHRyYWNrLT5sYW5ndWFnZSgpLmlz
RW1wdHkoKSkKLSAgICAgICAgICAgIHJldHVybiB0ZXh0VHJhY2tOb0xhYmVsVGV4dCgpOwotICAg
ICAgICBpZiAoIXRyYWNrLT5sYWJlbCgpLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHJldHVybiB0
cmFjay0+bGFiZWwoKTsKLSAgICAgICAgcmV0dXJuIHRyYWNrLT5sYW5ndWFnZSgpOwotICAgIH0K
KyAgICB2aXJ0dWFsIHZvaWQgc2V0UHJlZmVycmVkTGFuZ3VhZ2UoU3RyaW5nKTsKKyAgICB2aXJ0
dWFsIFZlY3RvcjxTdHJpbmc+IHByZWZlcnJlZExhbmd1YWdlcygpIGNvbnN0OworCisgICAgdmly
dHVhbCBTdHJpbmcgZGlzcGxheU5hbWVGb3JUcmFjayhUZXh0VHJhY2sqKSBjb25zdDsKIAogICAg
IHZpcnR1YWwgYm9vbCB0ZXN0aW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGVzdGluZ01vZGU7
IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0VGVzdGluZ01vZGUoYm9vbCBvdmVycmlkZSkgeyBtX3Rl
c3RpbmdNb2RlID0gb3ZlcnJpZGU7IH0KQEAgLTg1LDE0ICs3NSwxNyBAQCBwcm90ZWN0ZWQ6CiAg
ICAgQ2FwdGlvblVzZXJQcmVmZXJlbmNlcyhQYWdlR3JvdXAqIGdyb3VwKQogICAgICAgICA6IG1f
cGFnZUdyb3VwKGdyb3VwKQogICAgICAgICAsIG1fdGVzdGluZ01vZGUoZmFsc2UpCisgICAgICAg
ICwgbV9oYXZlUHJlZmVyZW5jZXMoZmFsc2UpCiAgICAgICAgICwgbV91c2VyUHJlZmVyc0NhcHRp
b25zKGZhbHNlKQogICAgIHsKICAgICB9CiAKIHByaXZhdGU6CisgICAgSGFzaFNldDxDYXB0aW9u
UHJlZmVyZW5jZXNDaGFuZ2VkTGlzdGVuZXIqPiBtX2NhcHRpb25QcmVmZXJlbmNlQ2hhbmdlTGlz
dGVuZXJzOwogICAgIFBhZ2VHcm91cCogbV9wYWdlR3JvdXA7CiAgICAgU3RyaW5nIG1fdXNlclBy
ZWZlcnJlZExhbmd1YWdlOwogICAgIGJvb2wgbV90ZXN0aW5nTW9kZTsKKyAgICBib29sIG1faGF2
ZVByZWZlcmVuY2VzOwogICAgIGJvb2wgbV91c2VyUHJlZmVyc0NhcHRpb25zOwogfTsKICAgICAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01h
Yy5oCShyZXZpc2lvbiAxNDI2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2Vy
UHJlZmVyZW5jZXNNYWMuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsMTMgKzQ2LDEzIEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0VXNlclByZWZlcnNDYXB0aW9ucyhib29sKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIGZsb2F0IGNhcHRpb25Gb250U2l6ZVNjYWxlKGJvb2wmKSBjb25zdCBP
VkVSUklERTsKICAgICB2aXJ0dWFsIFN0cmluZyBjYXB0aW9uc1N0eWxlU2hlZXRPdmVycmlkZSgp
IGNvbnN0IE9WRVJSSURFOworCiAgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyRm9yUHJlZmVyZW5j
ZXNDaGFuZ2VkQ2FsbGJhY2tzKENhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWRMaXN0ZW5lciopIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyRm9yUHJlZmVyZW5jZXNDaGFuZ2Vk
Q2FsbGJhY2tzKENhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWRMaXN0ZW5lciopIE9WRVJSSURFOwog
CiAgICAgdmlydHVhbCB2b2lkIHNldFByZWZlcnJlZExhbmd1YWdlKFN0cmluZykgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCBWZWN0b3I8U3RyaW5nPiBwcmVmZXJyZWRMYW5ndWFnZXMoKSBjb25zdCBP
VkVSUklERTsKIAotICAgIHZvaWQgY2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpOworICAgIHZp
cnR1YWwgdm9pZCBjYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCkgT1ZFUlJJREU7CiAjZW5kaWYK
IAogICAgIHZpcnR1YWwgU3RyaW5nIGRpc3BsYXlOYW1lRm9yVHJhY2soVGV4dFRyYWNrKikgY29u
c3QgT1ZFUlJJREU7CkBAIC03NCw3ICs3NCw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHVwZGF0
ZUNhcHRpb25TdHlsZVNoZWV0T3ZlcmlkZSgpOwogCi0gICAgSGFzaFNldDxDYXB0aW9uUHJlZmVy
ZW5jZXNDaGFuZ2VkTGlzdGVuZXIqPiBtX2NhcHRpb25QcmVmZXJlbmNlQ2hhbmdlTGlzdGVuZXJz
OwogICAgIGJvb2wgbV9saXN0ZW5pbmdGb3JQcmVmZXJlbmNlQ2hhbmdlczsKICNlbmRpZgogfTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYy5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNN
YWMubW0JKHJldmlzaW9uIDE0MjYzOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVz
ZXJQcmVmZXJlbmNlc01hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTI4LDM0ICsxMjgsMjggQEAg
Ym9vbCBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjOjp1c2VySGFzQwogCiB2b2lkIENhcHRpb25V
c2VyUHJlZmVyZW5jZXNNYWM6OnJlZ2lzdGVyRm9yUHJlZmVyZW5jZXNDaGFuZ2VkQ2FsbGJhY2tz
KENhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWRMaXN0ZW5lciogbGlzdGVuZXIpCiB7Ci0gICAgaWYg
KCFNZWRpYUFjY2Vzc2liaWxpdHlMaWJyYXJ5KCkpIHsKLSAgICAgICAgQ2FwdGlvblVzZXJQcmVm
ZXJlbmNlczo6cmVnaXN0ZXJGb3JQcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFja3MobGlzdGVuZXIp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnJl
Z2lzdGVyRm9yUHJlZmVyZW5jZXNDaGFuZ2VkQ2FsbGJhY2tzKGxpc3RlbmVyKTsKIAotICAgIEFT
U0VSVCghbV9jYXB0aW9uUHJlZmVyZW5jZUNoYW5nZUxpc3RlbmVycy5jb250YWlucyhsaXN0ZW5l
cikpOworICAgIGlmICghTWVkaWFBY2Nlc3NpYmlsaXR5TGlicmFyeSgpKQorICAgICAgICByZXR1
cm47CiAKICAgICBpZiAoIWtNQVhDYXB0aW9uQXBwZWFyYW5jZVNldHRpbmdzQ2hhbmdlZE5vdGlm
aWNhdGlvbikKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCFtX2xpc3RlbmluZ0ZvclByZWZl
cmVuY2VDaGFuZ2VzKSB7CiAgICAgICAgIG1fbGlzdGVuaW5nRm9yUHJlZmVyZW5jZUNoYW5nZXMg
PSB0cnVlOwotICAgICAgICBDRk5vdGlmaWNhdGlvbkNlbnRlckFkZE9ic2VydmVyIChDRk5vdGlm
aWNhdGlvbkNlbnRlckdldExvY2FsQ2VudGVyKCksIHRoaXMsIHVzZXJDYXB0aW9uUHJlZmVyZW5j
ZXNDaGFuZ2VkTm90aWZpY2F0aW9uQ2FsbGJhY2ssIGtNQVhDYXB0aW9uQXBwZWFyYW5jZVNldHRp
bmdzQ2hhbmdlZE5vdGlmaWNhdGlvbiwgTlVMTCwgQ0ZOb3RpZmljYXRpb25TdXNwZW5zaW9uQmVo
YXZpb3JDb2FsZXNjZSk7CisgICAgICAgIENGTm90aWZpY2F0aW9uQ2VudGVyQWRkT2JzZXJ2ZXIo
Q0ZOb3RpZmljYXRpb25DZW50ZXJHZXRMb2NhbENlbnRlcigpLCB0aGlzLCB1c2VyQ2FwdGlvblBy
ZWZlcmVuY2VzQ2hhbmdlZE5vdGlmaWNhdGlvbkNhbGxiYWNrLCBrTUFYQ2FwdGlvbkFwcGVhcmFu
Y2VTZXR0aW5nc0NoYW5nZWROb3RpZmljYXRpb24sIE5VTEwsIENGTm90aWZpY2F0aW9uU3VzcGVu
c2lvbkJlaGF2aW9yQ29hbGVzY2UpOwogICAgIH0KICAgICAKICAgICB1cGRhdGVDYXB0aW9uU3R5
bGVTaGVldE92ZXJpZGUoKTsKLSAgICBtX2NhcHRpb25QcmVmZXJlbmNlQ2hhbmdlTGlzdGVuZXJz
LmFkZChsaXN0ZW5lcik7CiB9CiAKLXZvaWQgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYzo6dW5y
ZWdpc3RlckZvclByZWZlcmVuY2VzQ2hhbmdlZENhbGxiYWNrcyhDYXB0aW9uUHJlZmVyZW5jZXND
aGFuZ2VkTGlzdGVuZXIqIGxpc3RlbmVyKQordm9pZCBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWFj
OjpjYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCkKIHsKLSAgICBpZiAoIU1lZGlhQWNjZXNzaWJp
bGl0eUxpYnJhcnkoKSkgewotICAgICAgICBDYXB0aW9uVXNlclByZWZlcmVuY2VzOjp1bnJlZ2lz
dGVyRm9yUHJlZmVyZW5jZXNDaGFuZ2VkQ2FsbGJhY2tzKGxpc3RlbmVyKTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KKyAgICBpZiAoaGF2ZVByZWZlcmVuY2VDaGFuZ2VMaXN0ZW5lcnMoKSkKKyAg
ICAgICAgdXBkYXRlQ2FwdGlvblN0eWxlU2hlZXRPdmVyaWRlKCk7CiAKLSAgICBpZiAoa01BWENh
cHRpb25BcHBlYXJhbmNlU2V0dGluZ3NDaGFuZ2VkTm90aWZpY2F0aW9uKQotICAgICAgICBtX2Nh
cHRpb25QcmVmZXJlbmNlQ2hhbmdlTGlzdGVuZXJzLnJlbW92ZShsaXN0ZW5lcik7CisgICAgQ2Fw
dGlvblVzZXJQcmVmZXJlbmNlczo6Y2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpOwogfQogCiBT
dHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYzo6Y2FwdGlvbnNXaW5kb3dDU1MoKSBjb25z
dApAQCAtNDIxLDE3ICs0MTUsNiBAQCBmbG9hdCBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjOjpj
YXB0aW9uCiAjZW5kaWYKIH0KIAotdm9pZCBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjOjpjYXB0
aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCkKLXsKLSAgICBpZiAobV9jYXB0aW9uUHJlZmVyZW5jZUNo
YW5nZUxpc3RlbmVycy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIHVwZGF0ZUNh
cHRpb25TdHlsZVNoZWV0T3ZlcmlkZSgpOwotCi0gICAgZm9yIChIYXNoU2V0PENhcHRpb25QcmVm
ZXJlbmNlc0NoYW5nZWRMaXN0ZW5lcio+OjppdGVyYXRvciBpID0gbV9jYXB0aW9uUHJlZmVyZW5j
ZUNoYW5nZUxpc3RlbmVycy5iZWdpbigpOyBpICE9IG1fY2FwdGlvblByZWZlcmVuY2VDaGFuZ2VM
aXN0ZW5lcnMuZW5kKCk7ICsraSkKLSAgICAgICAgKCppKS0+Y2FwdGlvblByZWZlcmVuY2VzQ2hh
bmdlZCgpOwotfQotCiB2b2lkIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWM6OnVwZGF0ZUNhcHRp
b25TdHlsZVNoZWV0T3ZlcmlkZSgpCiB7CiAgICAgLy8gSWRlbnRpZnkgb3VyIG92ZXJyaWRlIHN0
eWxlIHNoZWV0IHdpdGggYSB1bmlxdWUgVVJMIC0gYSBuZXcgc2NoZW1lIGFuZCBhIFVVSUQuCklu
ZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNDI3NzApCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0wMi0xMyAgRXJpYyBDYXJsc29uICA8ZXJp
Yy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBDYXB0aW9uIG1lbnUgc2hvdWxk
IGhhdmUgb25seSBvbmUgaXRlbSBzZWxlY3RlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NzMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBtZWRpYS90cmFjay90cmFjay11c2VyLXByZWZlcmVuY2Vz
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBtZWRpYS90cmFjay90cmFjay11c2VyLXByZWZlcmVu
Y2VzLmh0bWw6IFVwZGF0ZSB0ZXN0IHRvIGNoZWNrIGZvciByZWFjdGlvbnMgdG8gcHJlZmVyZW5j
ZXMuCisKIDIwMTMtMDItMTMgIE1vcnRlbiBTdGVuc2hvcm5lICA8bXN0ZW5zaG9Ab3BlcmEuY29t
PgogCiAgICAgICAgIFdlYktpdCBpZ25vcmVzIGNvbHVtbi1ydWxlcyB3aWRlciB0aGFuIGNvbHVt
bi1nYXAKSW5kZXg6IExheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLXVzZXItcHJlZmVyZW5j
ZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL21lZGlhL3RyYWNrL3Ry
YWNrLXVzZXItcHJlZmVyZW5jZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNDI2MzcpCisrKyBM
YXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay11c2VyLXByZWZlcmVuY2VzLWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMywyOSArMyw0MCBAQCBUZXN0IHRyYWNrIHVzZXIgcHJlZmVy
ZW5jZXMuCiAKIFNldCB1c2VyIGxhbmd1YWdlcyB0bzogWydubycsICdlcy1FUycsICdlbicsICdm
ciddLgogCi1UZXN0IDE6IHRyYWNrIHNlbGVjdGVkIGJlY2F1c2Ugb2YgJ2RlZmF1bHQnIGF0dHJp
YnV0ZQorVGVzdCAxOiAnbm8nIHRyYWNrIHNlbGVjdGVkIGJlY2F1c2Ugb2YgdXNlciBwcmVmZXJy
ZWQgbGFuZ3VhZ2UKIC0gY3JlYXRpbmcgdHJhY2tzIGZvcjogW2VuLGZyLG5vXS4KIEVWRU5UKGxv
YWQpCi1FWFBFQ1RFRCAoZXZlbnQudGFyZ2V0LnNyY2xhbmcgPT0gJ2ZyJykgT0sKK0VYUEVDVEVE
IChldmVudC50YXJnZXQuc3JjbGFuZyA9PSAnbm8nKSBPSwogRVhQRUNURUQgKGV2ZW50LnRhcmdl
dC5yZWFkeVN0YXRlID09ICcyJykgT0sKIAotVGVzdCAyOiB0cmFjayBzZWxlY3RlZCBiZWNhdXNl
IG9mIG9yaWdpbmFsIHVzZXIgcHJlZmVycmVkIGxhbmd1YWdlCitUZXN0IDI6ICdubycgdHJhY2sg
c3RpbGwgc2VsZWN0ZWQgYmVjYXVzZSBvZiBsYW5ndWFnZSwgb3ZlcnJpZGluZyAnZGVmYXVsdCcg
YXR0cmlidXRlCiAtIGNyZWF0aW5nIHRyYWNrcyBmb3I6IFtmcixlbixub10uCistLSAnZW4nIHRy
YWNrIG1hcmtlZCBhcyBkZWZhdWx0LgogRVZFTlQobG9hZCkKIEVYUEVDVEVEIChldmVudC50YXJn
ZXQuc3JjbGFuZyA9PSAnbm8nKSBPSwogRVhQRUNURUQgKGV2ZW50LnRhcmdldC5yZWFkeVN0YXRl
ID09ICcyJykgT0sKIAotVGVzdCAzOiBwcmVmZXJyZWQgbGFuZ3VhZ2UgY2hhbmdlZCBieSBzZWxl
Y3RpbmcgdHJhY2sgZnJvbSBtZW51CitUZXN0IDM6IHNlbGVjdCAnZnInIHRyYWNrIGZyb20gbWVu
dQogLSBzaG93IGNhcHRpb25zIG1lbnUuCitFWFBFQ1RFRCAodHJhY2tNZW51SXRlbXNbMV0uY2xh
c3NOYW1lID09ICcnKSBPSworRVhQRUNURUQgKHRyYWNrTWVudUl0ZW1zWzJdLmNsYXNzTmFtZSA9
PSAnJykgT0sKK0VYUEVDVEVEICh0cmFja01lbnVJdGVtc1szXS5jbGFzc05hbWUgPT0gJ3NlbGVj
dGVkJykgT0sKIC0gY2xpY2sgb24gbWVudSBpdGVtIDIuCitFVkVOVChsb2FkKQorRVhQRUNURUQg
KGV2ZW50LnRhcmdldC5zcmNsYW5nID09ICdmcicpIE9LCitFWFBFQ1RFRCAoZXZlbnQudGFyZ2V0
LnJlYWR5U3RhdGUgPT0gJzInKSBPSwogRVhQRUNURUQgKHZpZGVvLnRleHRUcmFja3NbMF0ubW9k
ZSA9PSAnc2hvd2luZycpIE9LCiBFWFBFQ1RFRCAodmlkZW8udGV4dFRyYWNrc1swXS5sYW5ndWFn
ZSA9PSAnZnInKSBPSwotLSBjcmVhdGluZyB0cmFja3MgZm9yOiBbbm8sZnIsZW5dLgorCitUZXN0
IDQ6IHByZWZlcnJlZCBsYW5ndWFnZSB3YXMgY2hhbmdlZCB0byAnZnInIGJ5IHNlbGVjdGluZyB0
cmFjayBmcm9tIG1lbnUKKy0gY3JlYXRpbmcgdHJhY2tzIGZvcjogW3J1LGVuLGZyXS4KIEVWRU5U
KGxvYWQpCiBFWFBFQ1RFRCAoZXZlbnQudGFyZ2V0LnNyY2xhbmcgPT0gJ2ZyJykgT0sKIEVYUEVD
VEVEIChldmVudC50YXJnZXQucmVhZHlTdGF0ZSA9PSAnMicpIE9LCitFWFBFQ1RFRCAodmlkZW8u
dGV4dFRyYWNrc1syXS5tb2RlID09ICdzaG93aW5nJykgT0sKK0VYUEVDVEVEICh2aWRlby50ZXh0
VHJhY2tzWzJdLmxhbmd1YWdlID09ICdmcicpIE9LCiAKLVRlc3QgNDogdHVybmluZyBjYXB0aW9u
cyBvZmYgZnJvbSBtZW51IGRpc2FibGVzIGNhcHRpb25zCitUZXN0IDU6IHR1cm5pbmcgY2FwdGlv
bnMgb2ZmIGZyb20gbWVudSBkaXNhYmxlcyBjYXB0aW9uIHNlbGVjdGlvbgogLSBzaG93IGNhcHRp
b25zIG1lbnUuCiAtIGNsaWNrIG9uIG1lbnUgaXRlbSAwLgogLSBjcmVhdGluZyB0cmFja3MgZm9y
OiBbcnUsanAsZW5dLgpJbmRleDogTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stdXNlci1w
cmVmZXJlbmNlcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL21lZGlhL3RyYWNrL3Ry
YWNrLXVzZXItcHJlZmVyZW5jZXMuaHRtbAkocmV2aXNpb24gMTQyNjM3KQorKysgTGF5b3V0VGVz
dHMvbWVkaWEvdHJhY2svdHJhY2stdXNlci1wcmVmZXJlbmNlcy5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xMSw2ICsxMSw3IEBACiAgICAgICAgICAgICB2YXIgZXhwZWN0ZWRMYW5ndWFnZTsKICAg
ICAgICAgICAgIHZhciB0ZXN0U3RhZ2UgPSAwOwogICAgICAgICAgICAgdmFyIGNhcHRpb25zQnV0
dG9uQ29vcmRpbmF0ZXM7CisgICAgICAgICAgICB2YXIgdHJhY2tNZW51SXRlbXM7CiAKICAgICAg
ICAgICAgIGZ1bmN0aW9uIHNob3dDYXB0aW9uTWVudSgpCiAgICAgICAgICAgICB7CkBAIC0yNCw3
ICsyNSw3IEBACiAKICAgICAgICAgICAgIGZ1bmN0aW9uIHRyYWNrTWVudUxpc3QoKQogICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIHZhciB0cmFja0xpc3RFbGVtZW50ID0gZ2V0VHJhY2tM
aXN0RWxlbWVudCgpOworICAgICAgICAgICAgICAgIHRyYWNrTGlzdEVsZW1lbnQgPSBnZXRUcmFj
a0xpc3RFbGVtZW50KCk7CiAgICAgICAgICAgICAgICAgaWYgKCF0cmFja0xpc3RFbGVtZW50KQog
ICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTQ2LDggKzQ3LDggQEAKICAgICAgICAg
ICAgIGZ1bmN0aW9uIHNlbGVjdENhcHRpb25NZW51SXRlbShpbmRleCkKICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIi0gY2xpY2sgb24gbWVudSBpdGVtICIgKyBp
bmRleCArICIuIik7Ci0gICAgICAgICAgICAgICAgdmFyIHRyYWNrTGlzdEl0ZW1zID0gdHJhY2tN
ZW51TGlzdCgpOwotICAgICAgICAgICAgICAgIHZhciBzZWxlY3RlZFRyYWNrSXRlbSA9IHRyYWNr
TGlzdEl0ZW1zW2luZGV4XTsKKyAgICAgICAgICAgICAgICB2YXIgdHJhY2tNZW51SXRlbXMgPSB0
cmFja01lbnVMaXN0KCk7CisgICAgICAgICAgICAgICAgdmFyIHNlbGVjdGVkVHJhY2tJdGVtID0g
dHJhY2tNZW51SXRlbXNbaW5kZXhdOwogICAgICAgICAgICAgICAgIHZhciBib3VuZGluZ1JlY3Qg
PSBzZWxlY3RlZFRyYWNrSXRlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgICAgICAgICAg
ICAgICB2YXIgeCA9IGJvdW5kaW5nUmVjdC5sZWZ0ICsgYm91bmRpbmdSZWN0LndpZHRoIC8gMjsK
ICAgICAgICAgICAgICAgICB2YXIgeSA9IGJvdW5kaW5nUmVjdC50b3AgKyBib3VuZGluZ1JlY3Qu
aGVpZ2h0IC8gMjsKQEAgLTcyLDggKzczLDEwIEBACiAgICAgICAgICAgICAgICAgdHJhY2suc3Jj
ID0gJ2RhdGE6dGV4dC92dHQsJytlbmNvZGVVUklDb21wb25lbnQoIldFQlZUVFxuXG4wMDowMDow
MC4wMDAgLS0+IDAwOjAwOjAxLjAwMFxuQ2FwdGlvbiAxXG4iKTsKICAgICAgICAgICAgICAgICB0
cmFjay5zZXRBdHRyaWJ1dGUoJ3NyY2xhbmcnLCBsYW5ndWFnZSk7CiAgICAgICAgICAgICAgICAg
dHJhY2suc2V0QXR0cmlidXRlKCdvbmxvYWQnLCAndHJhY2tMb2FkZWQoKScpOwotICAgICAgICAg
ICAgICAgIGlmIChpc0RlZmF1bHQpCisgICAgICAgICAgICAgICAgaWYgKGlzRGVmYXVsdCkgewor
ICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIi0tICciICsgbGFuZ3VhZ2UgKyAiJyB0
cmFjayBtYXJrZWQgYXMgZGVmYXVsdC4iKTsKICAgICAgICAgICAgICAgICAgICAgdHJhY2suc2V0
QXR0cmlidXRlKCdkZWZhdWx0JywgJ2RlZmF1bHQnKTsKKyAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgdmlkZW8uYXBwZW5kQ2hpbGQodHJhY2spOwogICAgICAgICAgICAgfQogCkBA
IC05Myw0MiArOTYsNTkgQEAKICAgICAgICAgICAgICAgICArK3Rlc3RTdGFnZTsKICAgICAgICAg
ICAgICAgICBzd2l0Y2ggKHRlc3RTdGFnZSkgewogICAgICAgICAgICAgICAgIGNhc2UgMToKLSAg
ICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+VGVzdCAxOiB0cmFjayBzZWxlY3Rl
ZCBiZWNhdXNlIG9mICdkZWZhdWx0JyBhdHRyaWJ1dGUiKTsKLSAgICAgICAgICAgICAgICAgICAg
Y3JlYXRlVHJhY2tFbGVtZW50cyhbJ2VuJywgJ2ZyJywgJ25vJ10sIDEpOwotICAgICAgICAgICAg
ICAgICAgICBleHBlY3RlZExhbmd1YWdlID0gJ2ZyJzsKKyAgICAgICAgICAgICAgICAgICAgY29u
c29sZVdyaXRlKCI8YnI+VGVzdCAxOiAnbm8nIHRyYWNrIHNlbGVjdGVkIGJlY2F1c2Ugb2YgdXNl
ciBwcmVmZXJyZWQgbGFuZ3VhZ2UiKTsKKyAgICAgICAgICAgICAgICAgICAgY3JlYXRlVHJhY2tF
bGVtZW50cyhbJ2VuJywgJ2ZyJywgJ25vJ10pOworICAgICAgICAgICAgICAgICAgICBleHBlY3Rl
ZExhbmd1YWdlID0gJ25vJzsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAg
ICAgICAgICBjYXNlIDI6Ci0gICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPlRl
c3QgMjogdHJhY2sgc2VsZWN0ZWQgYmVjYXVzZSBvZiBvcmlnaW5hbCB1c2VyIHByZWZlcnJlZCBs
YW5ndWFnZSIpOwotICAgICAgICAgICAgICAgICAgICBjcmVhdGVUcmFja0VsZW1lbnRzKFsnZnIn
LCAnZW4nLCAnbm8nXSk7CisgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPlRl
c3QgMjogJ25vJyB0cmFjayBzdGlsbCBzZWxlY3RlZCBiZWNhdXNlIG9mIGxhbmd1YWdlLCBvdmVy
cmlkaW5nICdkZWZhdWx0JyBhdHRyaWJ1dGUiKTsKKyAgICAgICAgICAgICAgICAgICAgY3JlYXRl
VHJhY2tFbGVtZW50cyhbJ2ZyJywgJ2VuJywgJ25vJ10sIDEpOwogICAgICAgICAgICAgICAgICAg
ICBleHBlY3RlZExhbmd1YWdlID0gJ25vJzsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAK
ICAgICAgICAgICAgICAgICBjYXNlIDM6Ci0gICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0
ZSgiPGJyPlRlc3QgMzogcHJlZmVycmVkIGxhbmd1YWdlIGNoYW5nZWQgYnkgc2VsZWN0aW5nIHRy
YWNrIGZyb20gbWVudSIpOworICAgICAgICAgICAgICAgICAgICAvLyBDbGVhciB0aGUgZGVidWcg
c2V0dGluZyBzbyBpdCBpc24ndCBjb25zaWRlcmVkIGluIHRoZSB0cmFjayBzZWxlY3Rpb24gbG9n
aWMKKyAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNob3VsZERpc3Bs
YXlUcmFja0tpbmQoJ0NhcHRpb25zJywgZmFsc2UpOworCisgICAgICAgICAgICAgICAgICAgIGNv
bnNvbGVXcml0ZSgiPGJyPlRlc3QgMzogc2VsZWN0ICdmcicgdHJhY2sgZnJvbSBtZW51Iik7CiAg
ICAgICAgICAgICAgICAgICAgIHNob3dDYXB0aW9uTWVudSgpOwogICAgICAgICAgICAgICAgICAg
ICBicmVhazsKIAogICAgICAgICAgICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAgICAgICAgICAg
dHJhY2tNZW51SXRlbXMgPSB0cmFja01lbnVMaXN0KCk7CisgICAgICAgICAgICAgICAgICAgIHRl
c3RFeHBlY3RlZCgidHJhY2tNZW51SXRlbXNbMV0uY2xhc3NOYW1lIiwgIiIpOworICAgICAgICAg
ICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInRyYWNrTWVudUl0ZW1zWzJdLmNsYXNzTmFtZSIsICIi
KTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ0cmFja01lbnVJdGVtc1szXS5j
bGFzc05hbWUiLCAic2VsZWN0ZWQiKTsKKwogICAgICAgICAgICAgICAgICAgICBzZWxlY3RDYXB0
aW9uTWVudUl0ZW0oMik7CisgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkTGFuZ3VhZ2UgPSAn
ZnInOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgIGNhc2Ug
NToKICAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby50ZXh0VHJhY2tzWzBd
Lm1vZGUiLCAic2hvd2luZyIpOwogICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZp
ZGVvLnRleHRUcmFja3NbMF0ubGFuZ3VhZ2UiLCAiZnIiKTsKKworICAgICAgICAgICAgICAgICAg
ICBjb25zb2xlV3JpdGUoIjxicj5UZXN0IDQ6IHByZWZlcnJlZCBsYW5ndWFnZSB3YXMgY2hhbmdl
ZCB0byAnZnInIGJ5IHNlbGVjdGluZyB0cmFjayBmcm9tIG1lbnUiKTsKKyAgICAgICAgICAgICAg
ICAgICAgY3JlYXRlVHJhY2tFbGVtZW50cyhbJ3J1JywgJ2VuJywgJ2ZyJ10pOwogICAgICAgICAg
ICAgICAgICAgICBleHBlY3RlZExhbmd1YWdlID0gJ2ZyJzsKLSAgICAgICAgICAgICAgICAgICAg
Y3JlYXRlVHJhY2tFbGVtZW50cyhbICdubycsICdmcicsICdlbiddKTsKICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAKLSAgICAgICAgICAgICAgICBjYXNlIDU6Ci0gICAgICAgICAgICAgICAg
ICAgIGNvbnNvbGVXcml0ZSgiPGJyPlRlc3QgNDogdHVybmluZyBjYXB0aW9ucyBvZmYgZnJvbSBt
ZW51IGRpc2FibGVzIGNhcHRpb25zIik7CisgICAgICAgICAgICAgICAgY2FzZSA2OgorICAgICAg
ICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnRleHRUcmFja3NbMl0ubW9kZSIsICJz
aG93aW5nIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8udGV4dFRy
YWNrc1syXS5sYW5ndWFnZSIsICJmciIpOworCisgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVX
cml0ZSgiPGJyPlRlc3QgNTogdHVybmluZyBjYXB0aW9ucyBvZmYgZnJvbSBtZW51IGRpc2FibGVz
IGNhcHRpb24gc2VsZWN0aW9uIik7CiAgICAgICAgICAgICAgICAgICAgIHNob3dDYXB0aW9uTWVu
dSgpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICAgICAgICAgIGNhc2Ug
NjoKKyAgICAgICAgICAgICAgICBjYXNlIDc6CiAgICAgICAgICAgICAgICAgICAgIHNlbGVjdENh
cHRpb25NZW51SXRlbSgwKTsKICAgICAgICAgICAgICAgICAgICAgY3JlYXRlVHJhY2tFbGVtZW50
cyhbICdydScsICdqcCcsICdlbiddKTsKLSAgICAgICAgICAgICAgICAgICAgdGltZXIgPSBzZXRU
aW1lb3V0KG5leHRTdGVwLCAyNTApOworICAgICAgICAgICAgICAgICAgICB0aW1lciA9IHNldFRp
bWVvdXQobmV4dFN0ZXAsIDEwMCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogCi0gICAg
ICAgICAgICAgICAgY2FzZSA3OgorICAgICAgICAgICAgICAgIGNhc2UgODoKICAgICAgICAgICAg
ICAgICAgICAgZm9yICh2YXIgbmR4ID0gMDsgbmR4IDwgdmlkZW8udGV4dFRyYWNrcy5sZW5ndGg7
ICsrbmR4KQogICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby50ZXh0
VHJhY2tzWyIgKyBuZHggKyAiXS5tb2RlIiwgImRpc2FibGVkIik7CiAKQEAgLTE0NSw2ICsxNjUs
NyBAQAogICAgICAgICAgICAgICAgIHZpZGVvLmFkZEV2ZW50TGlzdGVuZXIoJ2NhbnBsYXl0aHJv
dWdoJywgbmV4dFN0ZXApOwogICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPlNldCB1
c2VyIGxhbmd1YWdlcyB0bzogWydubycsICdlcy1FUycsICdlbicsICdmciddLiIpOwogICAgICAg
ICAgICAgICAgIGludGVybmFscy5zZXRVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFsnbm8nLCAnZXMt
RVMnLCAnZW4nLCAnZnInXSk7CisgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dFNob3VsZERpc3BsYXlUcmFja0tpbmQoJ0NhcHRpb25zJywgdHJ1ZSk7CiAgICAgICAgICAgICB9
CiAgICAgICAgIDwvc2NyaXB0PgogICAgIDwvaGVhZD4K
</data>
<flag name="commit-queue"
          id="208213"
          type_id="3"
          status="-"
          setter="peter+ews"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188175</attachid>
            <date>2013-02-13 13:59:40 -0800</date>
            <delta_ts>2013-02-13 15:05:00 -0800</delta_ts>
            <desc>#import -&gt; #include</desc>
            <filename>patch_7.txt</filename>
            <type>text/plain</type>
            <size>34007</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0Mjc3MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ2IEBACisyMDEzLTAyLTEzICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdIENhcHRpb24g
bWVudSBzaG91bGQgaGF2ZSBvbmx5IG9uZSBpdGVtIHNlbGVjdGVkCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk3MzAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG1lZGlhL3RyYWNr
L3RyYWNrLXVzZXItcHJlZmVyZW5jZXMuaHRtbCB3YXMgbW9kaWZpZWQgdG8gdGVzdCB0aGUgY2hh
bmdlcy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBBZGQgQ2FwdGlvblVzZXJQcmVmZXJl
bmNlcy5jcHAuCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbTogRGl0dG8uCisgICAgICAg
ICogVGFyZ2V0LnByaTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS5neXBpOiBEaXR0by4KKyAg
ICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogRGl0dG8uCisgICAgICAgICog
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajogRGl0dG8uCisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBEaXR0by4KKworICAgICAgICAqIGh0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpI
VE1MTWVkaWFFbGVtZW50KTogSW5pdGlhbGl6ZSBtX3Byb2Nlc3NpbmdQcmVmZXJlbmNlQ2hhbmdl
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6Y29uZmlndXJlVGV4dFRyYWNr
R3JvdXApOiBPbmx5IGVuZCB1cCB3aXRoIG9uZSBzZWxlY3RlZCB0cmFjayB3aGVuCisgICAgICAg
ICAgICBjYWxsZWQgYmVjYXVzZSBvZiBhIHByZWZlcmVuY2VzIGNoYW5nZS4KKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQpOiBDYWxs
IHNldENsb3NlZENhcHRpb25zVmlzaWJsZSBpbnN0ZWFkCisgICAgICAgICAgICBvZiBjYWxsaW5n
IG1hcmtDYXB0aW9uQW5kU3VidGl0bGVUcmFja3NBc1VuY29uZmlndXJlZCBkaXJlY3RseS4KKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1hcmtDYXB0aW9uQW5kU3VidGl0bGVU
cmFja3NBc1VuY29uZmlndXJlZCk6IFByb2Nlc3MgYWxsIHRyYWNrcywgCisgICAgICAgICAgICBu
b3QganVzdCB0cmFjayBlbGVtZW50cy4KKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQu
aDoKKworICAgICAgICAqIHBhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHA6IEFkZGVkIHNv
IHRoZSBmdW5jdGlvbmFsaXR5IGNhbiBiZSB0ZXN0ZWQgaW4gRFJULgorICAgICAgICAoV2ViQ29y
ZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlczo6cmVnaXN0ZXJGb3JQcmVmZXJlbmNlc0NoYW5nZWRD
YWxsYmFja3MpOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlczo6dW5y
ZWdpc3RlckZvclByZWZlcmVuY2VzQ2hhbmdlZENhbGxiYWNrcyk6CisgICAgICAgIChXZWJDb3Jl
OjpDYXB0aW9uVXNlclByZWZlcmVuY2VzOjpzZXRVc2VyUHJlZmVyc0NhcHRpb25zKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OmNhcHRpb25QcmVmZXJlbmNlc0No
YW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlczo6cHJlZmVy
cmVkTGFuZ3VhZ2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXM6
OnNldFByZWZlcnJlZExhbmd1YWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJl
ZmVyZW5jZXM6OmRpc3BsYXlOYW1lRm9yVHJhY2spOgorICAgICAgICAqIHBhZ2UvQ2FwdGlvblVz
ZXJQcmVmZXJlbmNlcy5oOgorCisgICAgICAgICogcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2Vz
TWFjLmg6CisgICAgICAgICogcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYzo6cmVnaXN0ZXJGb3JQcmVm
ZXJlbmNlc0NoYW5nZWRDYWxsYmFja3MpOiBNb3ZlZCBzb21lIGxvZ2ljCisgICAgICAgICAgICB0
byBiYXNlIGNsYXNzLgorICAgICAgICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01h
Yzo6Y2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCk6IERpdHRvLgorCiAyMDEzLTAyLTEzICBNb3J0
ZW4gU3RlbnNob3JuZSAgPG1zdGVuc2hvQG9wZXJhLmNvbT4KIAogICAgICAgICBXZWJLaXQgaWdu
b3JlcyBjb2x1bW4tcnVsZXMgd2lkZXIgdGhhbiBjb2x1bW4tZ2FwCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAkocmV2aXNpb24gMTQyNjM3KQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTE3NDYsNiArMTc0Niw3IEBAIHNldChXZWJDb3JlX1NPVVJD
RVMKIAogICAgIHBhZ2UvQXV0b3Njcm9sbENvbnRyb2xsZXIuY3BwCiAgICAgcGFnZS9CYXJJbmZv
LmNwcAorICAgIHBhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAKICAgICBwYWdlL0Nocm9t
ZS5jcHAKICAgICBwYWdlL0NvbnNvbGUuY3BwCiAgICAgcGFnZS9Db250ZW50U2VjdXJpdHlQb2xp
Y3kuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDE0MjYz
NykKKysrIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcgY29weSkK
QEAgLTQwOTksNiArNDA5OSw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNv
cmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0Jh
ckluZm8uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0JhckluZm8uaCBcCisJU291cmNlL1dl
YkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
cGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBcCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkJKHJldmlzaW9uIDE0MjYzNykKKysrIFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkJKHdvcmtp
bmcgY29weSkKQEAgLTkwNyw2ICs5MDcsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwYWdlL2FuaW1h
dGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAgXAogICAgIHBhZ2UvQXV0b3Njcm9sbENvbnRyb2xs
ZXIuY3BwIFwKICAgICBwYWdlL0JhckluZm8uY3BwIFwKKyAgICBwYWdlL0NhcHRpb25Vc2VyUHJl
ZmVyZW5jZXMuY3BwIFwKICAgICBwYWdlL0Nocm9tZS5jcHAgXAogICAgIHBhZ2UvQ29uc29sZS5j
cHAgXAogICAgIHBhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcCBcCkBAIC0yMDkxLDYgKzIw
OTIsNyBAQCBIRUFERVJTICs9IFwKICAgICBwYWdlL0FkanVzdFZpZXdTaXplT3JOb3QuaCBcCiAg
ICAgcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5oIFwKICAgICBwYWdlL0JhckluZm8uaCBcCisg
ICAgcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmggXAogICAgIHBhZ2UvQ2hyb21lLmggXAog
ICAgIHBhZ2UvQ29uc29sZS5oIFwKICAgICBwYWdlL0NvbnNvbGVUeXBlcy5oIFwKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkJKHJldmlzaW9uIDE0MjYzNykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQkod29ya2luZyBjb3B5KQpAQCAtMjA3MSw2ICsyMDcxLDcgQEAKICAgICAgICAgICAgICdw
YWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmgnLAogICAgICAgICAgICAgJ3BhZ2UvQmFySW5mby5j
cHAnLAogICAgICAgICAgICAgJ3BhZ2UvQmFySW5mby5oJywKKyAgICAgICAgICAgICdwYWdlL0Nh
cHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwJywKICAgICAgICAgICAgICdwYWdlL0Nocm9tZS5jcHAn
LAogICAgICAgICAgICAgJ3BhZ2UvQ29uc29sZS5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvQ29u
dGVudFNlY3VyaXR5UG9saWN5LmNwcCcsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24gMTQyNjM3KQorKysgU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTI3MDU1
LDYgKzI3MDU1LDE0IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHBhZ2VcQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAiCisJCQkJPgorCQkJPC9G
aWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcQ2FwdGlvblVzZXJQcmVm
ZXJlbmNlcy5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRo
PSIuLlxwYWdlXENocm9tZS5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpJbmRleDogU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCShyZXZpc2lvbiAxNDI2
MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCSh3
b3JraW5nIGNvcHkpCkBAIC0xOTk2LDEwICsxOTk2LDExIEBACiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxwYWdlXGFuaW1hdGlvblxBbmltYXRpb25Db250cm9sbGVyLmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcQXV0b3Njcm9sbENvbnRyb2xsZXIuY3BwIiAvPgog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxCYXJJbmZvLmNwcCIgLz4KKyAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAiIC8+CiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdlXENocm9tZS5jcHAiIC8+CiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxwYWdlXGFuaW1hdGlvblxDb21wb3NpdGVBbmltYXRpb24uY3BwIiAv
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxDb25zb2xlLmNwcCIgLz4KLSAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcCIgLz4K
KyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcQ29uc29sZS5jcHAiIC8+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxwYWdlXENvbnRleHRNZW51Q29udHJvbGxlci5jcHAiIC8+CiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdlXENyeXB0by5jcHAiIC8+CiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxwYWdlXGFuaW1hdGlvblxDU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAi
IC8+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCShyZXZpc2lvbiAxNDI2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw2ICsxMDMsNyBA
QAogCQkwNzIwQjBBMTE0RDMzMjM1MDA2NDI5NTUgLyogR2VuZXJpY0V2ZW50UXVldWUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MjBCMDlGMTREMzMy
MzUwMDY0Mjk1NSAvKiBHZW5lcmljRXZlbnRRdWV1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3MjBCMEExMTREMzMyMzUwMDY0Mjk1NyAvKiBH
ZXN0dXJlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3MjBCMDlGMTREMzMyMzUwMDY0Mjk1NyAvKiBHZXN0dXJlRXZlbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzJDOEIxMTEzMUM1MTg2
MDBBNEZDRTkgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NkYwRDA5MTJCODE5MjcwMEMy
NkFBNCAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwICovOyB9OworCQkwNzJD
QTg2MTE2Q0I0REMzMDA4QUUxMzEgLyogQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzJDQTg2MDE2Q0I0REMz
MDA4QUUxMzEgLyogQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAgKi87IH07CiAJCTA3MzVFRTZB
MEY0MEM1RTQwMDRBMjYwNCAvKiBNZWRpYVBsYXllclByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzM1RUU2OTBGNDBDNUU0MDA0QTI2MDQgLyog
TWVkaWFQbGF5ZXJQcm94eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTA3NTM4NjAyMTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2su
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc1Mzg2
MDAxNDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5jcHAgKi87IH07CiAJCTA3NTM4
NjAzMTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2suaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NTM4NjAxMTQ0ODlFOTgwMEI3ODQ1MiAv
KiBDYWNoZWRUZXh0VHJhY2suaCAqLzsgfTsKQEAgLTczNTMsNiArNzM1NCw3IEBACiAJCTA3MjBC
MDlGMTREMzMyMzUwMDY0Mjk1NSAvKiBHZW5lcmljRXZlbnRRdWV1ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBHZW5lcmljRXZlbnRRdWV1ZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwNzIwQjA5RjE0RDMzMjM1MDA2NDI5NTYgLyogR2VzdHVyZUV2ZW50LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdlc3R1cmVFdmVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MjBCMDlGMTREMzMyMzUwMDY0Mjk1NyAv
KiBHZXN0dXJlRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VzdHVy
ZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MkNBODYwMTZDQjREQzMw
MDhBRTEzMSAvKiBDYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IENhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwNzM1RUU2OTBGNDBDNUU0MDA0QTI2MDQgLyogTWVkaWFQbGF5
ZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVBsYXllclBy
b3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NTM4NjAwMTQ0ODlFOTgwMEI3
ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQ2FjaGVkVGV4dFRyYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMDc1Mzg2MDExNDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRUZXh0VHJhY2suaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MjkyLDYgKzE2Mjk0LDcgQEAKIAkJCQlCQzEyNEVFNDBDMjY0
MUNEMDA5RTIzNDkgLyogQmFySW5mby5jcHAgKi8sCiAJCQkJQkMxMjRFRTUwQzI2NDFDRDAwOUUy
MzQ5IC8qIEJhckluZm8uaCAqLywKIAkJCQlCQzEyNEVFNjBDMjY0MUNEMDA5RTIzNDkgLyogQmFy
SW5mby5pZGwgKi8sCisJCQkJMDcyQ0E4NjAxNkNCNERDMzAwOEFFMTMxIC8qIENhcHRpb25Vc2Vy
UHJlZmVyZW5jZXMuY3BwICovLAogCQkJCTA3OUQwODY3MTYyRjIwRTgwMERCODY1OCAvKiBDYXB0
aW9uVXNlclByZWZlcmVuY2VzLmggKi8sCiAJCQkJMDc5RDA4NjkxNjJGMjFGOTAwREI4NjU4IC8q
IENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWMuaCAqLywKIAkJCQkwNzlEMDg2QTE2MkYyMUY5MDBE
Qjg2NTggLyogQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYy5tbSAqLywKQEAgLTI5MzY2LDYgKzI5
MzY5LDcgQEAKIAkJCQlCMjU1OTlBMzBEMDBEOEJBMDBCQjgyNUMgLyogU1ZHSW1hZ2UuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMDhGODU5RDQxNDYzRjlDRDAwNjdEOTMzIC8qIFNWR0ltYWdlQ2Fj
aGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjIyMjdBMkMwRDAwQkYyMjAwNzFCNzgyIC8qIFNW
R0ltYWdlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwNzJDQTg2MTE2Q0I0REMzMDA4
QUUxMzEgLyogQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
MjhDNkEyOTBEMDBDNDQ4MDAzMzRBQTQgLyogU1ZHSW1hZ2VMb2FkZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQjIyMjdBMkYwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0xhbmdTcGFjZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCMjIyN0EzMjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTGVuZ3RoLmNw
cCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCShyZXZpc2lvbiAxNDI2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODksNiArMjg5LDcgQEAgSFRNTE1lZGlh
RWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudChjb25zdAogI2lmIEVOQUJMRShWSURFT19UUkFDSykK
ICAgICAsIG1fdHJhY2tzQXJlUmVhZHkodHJ1ZSkKICAgICAsIG1faGF2ZVZpc2libGVUZXh0VHJh
Y2soZmFsc2UpCisgICAgLCBtX3Byb2Nlc3NpbmdQcmVmZXJlbmNlQ2hhbmdlKGZhbHNlKQogICAg
ICwgbV9sYXN0VGV4dFRyYWNrVXBkYXRlVGltZSgtMSkKICAgICAsIG1fdGV4dFRyYWNrcygwKQog
ICAgICwgbV9pZ25vcmVUcmFja0Rpc3BsYXlVcGRhdGUoMCkKQEAgLTMwMTQsNyArMzAxNSw3IEBA
IGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6dXNlcklzSW50ZXJlc3RlZEkKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKLXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6Y29uZmlndXJlVGV4dFRyYWNrR3JvdXAo
Y29uc3QgVHJhY2tHcm91cCYgZ3JvdXApIGNvbnN0Cit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNv
bmZpZ3VyZVRleHRUcmFja0dyb3VwKGNvbnN0IFRyYWNrR3JvdXAmIGdyb3VwKQogewogICAgIEFT
U0VSVChncm91cC50cmFja3Muc2l6ZSgpKTsKIApAQCAtMzAzMSwxMiArMzAzMiwxOSBAQCB2b2lk
IEhUTUxNZWRpYUVsZW1lbnQ6OmNvbmZpZ3VyZVRleHRUcmFjCiAgICAgfQogCiAgICAgLy8gRmly
c3QsIGZpbmQgdGhlIHRyYWNrIGluIHRoZSBncm91cCB0aGF0IHNob3VsZCBiZSBlbmFibGVkIChp
ZiBhbnkpLgorICAgIFZlY3RvcjxSZWZQdHI8VGV4dFRyYWNrPiA+IGN1cnJlbnRseUVuYWJsZWRU
cmFja3M7CiAgICAgUmVmUHRyPFRleHRUcmFjaz4gdHJhY2tUb0VuYWJsZTsKICAgICBSZWZQdHI8
VGV4dFRyYWNrPiBkZWZhdWx0VHJhY2s7CiAgICAgUmVmUHRyPFRleHRUcmFjaz4gZmFsbGJhY2tU
cmFjazsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgIXRyYWNrVG9FbmFibGUgJiYgaSA8IGdyb3Vw
LnRyYWNrcy5zaXplKCk7ICsraSkgeworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZ3JvdXAu
dHJhY2tzLnNpemUoKTsgKytpKSB7CiAgICAgICAgIFJlZlB0cjxUZXh0VHJhY2s+IHRleHRUcmFj
ayA9IGdyb3VwLnRyYWNrc1tpXTsKIAorICAgICAgICBpZiAobV9wcm9jZXNzaW5nUHJlZmVyZW5j
ZUNoYW5nZSAmJiB0ZXh0VHJhY2stPm1vZGUoKSA9PSBUZXh0VHJhY2s6OnNob3dpbmdLZXl3b3Jk
KCkpCisgICAgICAgICAgICBjdXJyZW50bHlFbmFibGVkVHJhY2tzLmFwcGVuZCh0ZXh0VHJhY2sp
OworCisgICAgICAgIGlmICh0cmFja1RvRW5hYmxlKQorICAgICAgICAgICAgY29udGludWU7CisK
ICAgICAgICAgaWYgKHVzZXJJc0ludGVyZXN0ZWRJblRoaXNUcmFja0tpbmQodGV4dFRyYWNrLT5r
aW5kKCkpKSB7CiAgICAgICAgICAgICAvLyAqIElmIHRoZSB0ZXh0IHRyYWNrIGtpbmQgaXMgeyBb
c3VidGl0bGVzIG9yIGNhcHRpb25zXSBbZGVzY3JpcHRpb25zXSB9IGFuZCB0aGUgdXNlciBoYXMg
aW5kaWNhdGVkIGFuIGludGVyZXN0IGluIGhhdmluZyBhCiAgICAgICAgICAgICAvLyB0cmFjayB3
aXRoIHRoaXMgdGV4dCB0cmFjayBraW5kLCB0ZXh0IHRyYWNrIGxhbmd1YWdlLCBhbmQgdGV4dCB0
cmFjayBsYWJlbCBlbmFibGVkLCBhbmQgdGhlcmUgaXMgbm8KQEAgLTMwNzUsNiArMzA4MywxNSBA
QCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNvbmZpZ3VyZVRleHRUcmFjCiAgICAgaWYgKCF0cmFj
a1RvRW5hYmxlICYmIGZhbGxiYWNrVHJhY2spCiAgICAgICAgIHRyYWNrVG9FbmFibGUgPSBmYWxs
YmFja1RyYWNrOwogCisgICAgaWYgKGN1cnJlbnRseUVuYWJsZWRUcmFja3Muc2l6ZSgpKSB7Cisg
ICAgICAgIG1fcHJvY2Vzc2luZ1ByZWZlcmVuY2VDaGFuZ2UgPSBmYWxzZTsKKyAgICAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBjdXJyZW50bHlFbmFibGVkVHJhY2tzLnNpemUoKTsgKytpKSB7
CisgICAgICAgICAgICBSZWZQdHI8VGV4dFRyYWNrPiB0ZXh0VHJhY2sgPSBjdXJyZW50bHlFbmFi
bGVkVHJhY2tzW2ldOworICAgICAgICAgICAgaWYgKHRleHRUcmFjayAhPSB0cmFja1RvRW5hYmxl
KQorICAgICAgICAgICAgICAgIHRleHRUcmFjay0+c2V0TW9kZShUZXh0VHJhY2s6OmRpc2FibGVk
S2V5d29yZCgpKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIGlmICh0cmFja1RvRW5hYmxlKQog
ICAgICAgICB0cmFja1RvRW5hYmxlLT5zZXRNb2RlKFRleHRUcmFjazo6c2hvd2luZ0tleXdvcmQo
KSk7CiB9CkBAIC00NDEzLDI4ICs0NDMwLDIzIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6Y2Fw
dGlvblByZWZlcmVuY2UKICAgICBpZiAoIWlzVmlkZW8oKSkKICAgICAgICAgcmV0dXJuOwogCisg
ICAgbV9wcm9jZXNzaW5nUHJlZmVyZW5jZUNoYW5nZSA9IHRydWU7CisgICAgc2V0Q2xvc2VkQ2Fw
dGlvbnNWaXNpYmxlKHVzZXJQcmVmZXJzQ2FwdGlvbnMoKSk7CisKICAgICBpZiAoaGFzTWVkaWFD
b250cm9scygpKQogICAgICAgICBtZWRpYUNvbnRyb2xzKCktPnRleHRUcmFja1ByZWZlcmVuY2Vz
Q2hhbmdlZCgpOwotICAgIAotICAgIG1hcmtDYXB0aW9uQW5kU3VidGl0bGVUcmFja3NBc1VuY29u
ZmlndXJlZCgpOwogfQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1hcmtDYXB0aW9uQW5kU3Vi
dGl0bGVUcmFja3NBc1VuY29uZmlndXJlZCgpCiB7Ci0gICAgLy8gTWFyayBhbGwgdHJhY2sgZWxl
bWVudHMgYXMgbm90ICJjb25maWd1cmVkIiBzbyB0aGF0IGNvbmZpZ3VyZVRleHRUcmFja3MoKQor
ICAgIC8vIE1hcmsgYWxsIHRyYWNrcyBhcyBub3QgImNvbmZpZ3VyZWQiIHNvIHRoYXQgY29uZmln
dXJlVGV4dFRyYWNrcygpCiAgICAgLy8gd2lsbCByZWNvbnNpZGVyIHdoaWNoIHRyYWNrcyB0byBk
aXNwbGF5IGluIGxpZ2h0IG9mIG5ldyB1c2VyIHByZWZlcmVuY2VzCiAgICAgLy8gKGUuZy4gZGVm
YXVsdCB0cmFja3Mgc2hvdWxkIG5vdCBiZSBkaXNwbGF5ZWQgaWYgdGhlIHVzZXIgaGFzIHR1cm5l
ZCBvZmYKICAgICAvLyBjYXB0aW9ucyBhbmQgbm9uLWRlZmF1bHQgdHJhY2tzIHNob3VsZCBiZSBk
aXNwbGF5ZWQgYmFzZWQgb24gbGFuZ3VhZ2UKICAgICAvLyBwcmVmZXJlbmNlcyBpZiB0aGUgdXNl
ciBoYXMgdHVybmVkIGNhcHRpb25zIG9uKS4KLSAgICBmb3IgKFJlZlB0cjxOb2RlPiBub2RlID0g
Zmlyc3RDaGlsZCgpOyBub2RlOyBub2RlID0gbm9kZS0+bmV4dFNpYmxpbmcoKSkgewotICAgICAg
ICBpZiAoIW5vZGUtPmhhc1RhZ05hbWUodHJhY2tUYWcpKQotICAgICAgICAgICAgY29udGludWU7
Ci0gICAgICAgIAotICAgICAgICBIVE1MVHJhY2tFbGVtZW50KiB0cmFja0VsZW1lbnQgPSBzdGF0
aWNfY2FzdDxIVE1MVHJhY2tFbGVtZW50Kj4obm9kZS5nZXQoKSk7Ci0gICAgICAgIFJlZlB0cjxU
ZXh0VHJhY2s+IHRleHRUcmFjayA9IHRyYWNrRWxlbWVudC0+dHJhY2soKTsKLSAgICAgICAgaWYg
KCF0ZXh0VHJhY2spCi0gICAgICAgICAgICBjb250aW51ZTsKKyAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgbV90ZXh0VHJhY2tzLT5sZW5ndGgoKTsgKytpKSB7CiAgICAgICAgIAorICAgICAg
ICBSZWZQdHI8VGV4dFRyYWNrPiB0ZXh0VHJhY2sgPSBtX3RleHRUcmFja3MtPml0ZW0oaSk7CiAg
ICAgICAgIFN0cmluZyBraW5kID0gdGV4dFRyYWNrLT5raW5kKCk7CiAKICAgICAgICAgaWYgKGtp
bmQgPT0gVGV4dFRyYWNrOjpzdWJ0aXRsZXNLZXl3b3JkKCkgfHwga2luZCA9PSBUZXh0VHJhY2s6
OmNhcHRpb25zS2V5d29yZCgpKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmgJKHJldmlzaW9uIDE0MjYzNykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNTMsNyArMjUzLDcgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBjb25maWd1cmVUZXh0VHJhY2tHcm91cEZvckxhbmd1YWdlKGNvbnN0IFRyYWNrR3Jv
dXAmKSBjb25zdDsKICAgICB2b2lkIGNvbmZpZ3VyZVRleHRUcmFja3MoKTsKLSAgICB2b2lkIGNv
bmZpZ3VyZVRleHRUcmFja0dyb3VwKGNvbnN0IFRyYWNrR3JvdXAmKSBjb25zdDsKKyAgICB2b2lk
IGNvbmZpZ3VyZVRleHRUcmFja0dyb3VwKGNvbnN0IFRyYWNrR3JvdXAmKTsKIAogICAgIHZvaWQg
dG9nZ2xlVHJhY2tBdEluZGV4KGludCBpbmRleCwgYm9vbCBleGNsdXNpdmUgPSB0cnVlKTsKICAg
ICBzdGF0aWMgaW50IHRleHRUcmFja3NPZmZJbmRleCgpIHsgcmV0dXJuIC0xOyB9CkBAIC02OTEs
NiArNjkxLDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgYm9vbCBt
X3RyYWNrc0FyZVJlYWR5IDogMTsKICAgICBib29sIG1faGF2ZVZpc2libGVUZXh0VHJhY2sgOiAx
OworICAgIGJvb2wgbV9wcm9jZXNzaW5nUHJlZmVyZW5jZUNoYW5nZSA6IDE7CiAgICAgZmxvYXQg
bV9sYXN0VGV4dFRyYWNrVXBkYXRlVGltZTsKIAogICAgIFJlZlB0cjxUZXh0VHJhY2tMaXN0PiBt
X3RleHRUcmFja3M7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVy
ZW5jZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQ
cmVmZXJlbmNlcy5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRp
b25Vc2VyUHJlZmVyZW5jZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOTQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorCisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQorCisjaW5jbHVkZSAiQ2FwdGlvblVz
ZXJQcmVmZXJlbmNlcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgQ2FwdGlvblVz
ZXJQcmVmZXJlbmNlczo6cmVnaXN0ZXJGb3JQcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFja3MoQ2Fw
dGlvblByZWZlcmVuY2VzQ2hhbmdlZExpc3RlbmVyKiBsaXN0ZW5lcikKK3sKKyAgICBtX2NhcHRp
b25QcmVmZXJlbmNlQ2hhbmdlTGlzdGVuZXJzLmFkZChsaXN0ZW5lcik7Cit9CisKK3ZvaWQgQ2Fw
dGlvblVzZXJQcmVmZXJlbmNlczo6dW5yZWdpc3RlckZvclByZWZlcmVuY2VzQ2hhbmdlZENhbGxi
YWNrcyhDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkTGlzdGVuZXIqIGxpc3RlbmVyKQoreworICAg
IGlmIChtX2NhcHRpb25QcmVmZXJlbmNlQ2hhbmdlTGlzdGVuZXJzLmlzRW1wdHkoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9jYXB0aW9uUHJlZmVyZW5jZUNoYW5nZUxpc3RlbmVycy5yZW1v
dmUobGlzdGVuZXIpOworfQorCit2b2lkIENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnNldFVzZXJQ
cmVmZXJzQ2FwdGlvbnMoYm9vbCBwcmVmZXJlbmNlKQoreworICAgIG1fdXNlclByZWZlcnNDYXB0
aW9ucyA9IHByZWZlcmVuY2U7CisgICAgaWYgKG1fdGVzdGluZ01vZGUpIHsKKyAgICAgICAgbV9o
YXZlUHJlZmVyZW5jZXMgPSB0cnVlOworICAgICAgICBjYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2Vk
KCk7CisgICAgfQorfQorCit2b2lkIENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OmNhcHRpb25QcmVm
ZXJlbmNlc0NoYW5nZWQoKQoreworICAgIGlmIChtX2NhcHRpb25QcmVmZXJlbmNlQ2hhbmdlTGlz
dGVuZXJzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIGZvciAoSGFzaFNl
dDxDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkTGlzdGVuZXIqPjo6aXRlcmF0b3IgaSA9IG1fY2Fw
dGlvblByZWZlcmVuY2VDaGFuZ2VMaXN0ZW5lcnMuYmVnaW4oKTsgaSAhPSBtX2NhcHRpb25QcmVm
ZXJlbmNlQ2hhbmdlTGlzdGVuZXJzLmVuZCgpOyArK2kpCisgICAgICAgICgqaSktPmNhcHRpb25Q
cmVmZXJlbmNlc0NoYW5nZWQoKTsKK30KKworVmVjdG9yPFN0cmluZz4gQ2FwdGlvblVzZXJQcmVm
ZXJlbmNlczo6cHJlZmVycmVkTGFuZ3VhZ2VzKCkgY29uc3QKK3sKKyAgICBWZWN0b3I8U3RyaW5n
PiBsYW5ndWFnZXMgPSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7CisgICAgaWYgKG1fdGVzdGlu
Z01vZGUgJiYgIW1fdXNlclByZWZlcnJlZExhbmd1YWdlLmlzRW1wdHkoKSkKKyAgICAgICAgbGFu
Z3VhZ2VzLmluc2VydCgwLCBtX3VzZXJQcmVmZXJyZWRMYW5ndWFnZSk7CisKKyAgICByZXR1cm4g
bGFuZ3VhZ2VzOworfQorCit2b2lkIENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnNldFByZWZlcnJl
ZExhbmd1YWdlKFN0cmluZyBsYW5ndWFnZSkKK3sKKyAgICBtX3VzZXJQcmVmZXJyZWRMYW5ndWFn
ZSA9IGxhbmd1YWdlOworICAgIGlmIChtX3Rlc3RpbmdNb2RlKSB7CisgICAgICAgIG1faGF2ZVBy
ZWZlcmVuY2VzID0gdHJ1ZTsKKyAgICAgICAgY2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpOwor
ICAgIH0KK30KKworU3RyaW5nIENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OmRpc3BsYXlOYW1lRm9y
VHJhY2soVGV4dFRyYWNrKiB0cmFjaykgY29uc3QKK3sKKyAgICBpZiAodHJhY2stPmxhYmVsKCku
aXNFbXB0eSgpICYmIHRyYWNrLT5sYW5ndWFnZSgpLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJu
IHRleHRUcmFja05vTGFiZWxUZXh0KCk7CisgICAgaWYgKCF0cmFjay0+bGFiZWwoKS5pc0VtcHR5
KCkpCisgICAgICAgIHJldHVybiB0cmFjay0+bGFiZWwoKTsKKyAgICByZXR1cm4gdHJhY2stPmxh
bmd1YWdlKCk7Cit9CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShWSURFT19UUkFDSykKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5oCShyZXZpc2lv
biAxNDI2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMu
aAkod29ya2luZyBjb3B5KQpAQCAtNTAsMzEgKzUwLDIxIEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
UGFzc093blB0cjxDYXB0aW9uVXNlclByZWZlcmVuY2VzPiBjcmVhdGUoUGFnZUdyb3VwKiBncm91
cCkgeyByZXR1cm4gYWRvcHRQdHIobmV3IENhcHRpb25Vc2VyUHJlZmVyZW5jZXMoZ3JvdXApKTsg
fQogICAgIHZpcnR1YWwgfkNhcHRpb25Vc2VyUHJlZmVyZW5jZXMoKSB7IH0KIAotICAgIHZpcnR1
YWwgYm9vbCB1c2VySGFzQ2FwdGlvblByZWZlcmVuY2VzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgdXNlckhhc0NhcHRpb25QcmVmZXJlbmNlcygpIGNvbnN0IHsg
cmV0dXJuIG1fdGVzdGluZ01vZGUgJiYgbV9oYXZlUHJlZmVyZW5jZXM7IH0KICAgICB2aXJ0dWFs
IGJvb2wgdXNlclByZWZlcnNDYXB0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fdGVzdGluZ01vZGUg
PyBtX3VzZXJQcmVmZXJzQ2FwdGlvbnMgOiBmYWxzZTsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRV
c2VyUHJlZmVyc0NhcHRpb25zKGJvb2wgcHJlZmVyZW5jZSkgeyBtX3VzZXJQcmVmZXJzQ2FwdGlv
bnMgPSBwcmVmZXJlbmNlOyB9CisgICAgdmlydHVhbCB2b2lkIHNldFVzZXJQcmVmZXJzQ2FwdGlv
bnMoYm9vbCBwcmVmZXJlbmNlKTsKICAgICB2aXJ0dWFsIGZsb2F0IGNhcHRpb25Gb250U2l6ZVNj
YWxlKGJvb2wmIGltcG9ydGFudCkgY29uc3QgeyBpbXBvcnRhbnQgPSBmYWxzZTsgcmV0dXJuIDAu
MDVmOyB9CiAgICAgdmlydHVhbCBTdHJpbmcgY2FwdGlvbnNTdHlsZVNoZWV0T3ZlcnJpZGUoKSBj
b25zdCB7IHJldHVybiBlbXB0eVN0cmluZygpOyB9Ci0gICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVy
Rm9yUHJlZmVyZW5jZXNDaGFuZ2VkQ2FsbGJhY2tzKENhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWRM
aXN0ZW5lciopIHsgfQotICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyRm9yUHJlZmVyZW5jZXND
aGFuZ2VkQ2FsbGJhY2tzKENhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWRMaXN0ZW5lciopIHsgfQog
Ci0gICAgdmlydHVhbCB2b2lkIHNldFByZWZlcnJlZExhbmd1YWdlKFN0cmluZyBsYW5ndWFnZSkg
eyBtX3VzZXJQcmVmZXJyZWRMYW5ndWFnZSA9IGxhbmd1YWdlOyB9Ci0gICAgdmlydHVhbCBWZWN0
b3I8U3RyaW5nPiBwcmVmZXJyZWRMYW5ndWFnZXMoKSBjb25zdAotICAgIHsKLSAgICAgICAgVmVj
dG9yPFN0cmluZz4gbGFuZ3VhZ2VzID0gdXNlclByZWZlcnJlZExhbmd1YWdlcygpOwotICAgICAg
ICBpZiAobV90ZXN0aW5nTW9kZSAmJiAhbV91c2VyUHJlZmVycmVkTGFuZ3VhZ2UuaXNFbXB0eSgp
KQotICAgICAgICAgICAgbGFuZ3VhZ2VzLmluc2VydCgwLCBtX3VzZXJQcmVmZXJyZWRMYW5ndWFn
ZSk7Ci0gICAgICAgIHJldHVybiBsYW5ndWFnZXM7Ci0gICAgfQorICAgIHZpcnR1YWwgdm9pZCBy
ZWdpc3RlckZvclByZWZlcmVuY2VzQ2hhbmdlZENhbGxiYWNrcyhDYXB0aW9uUHJlZmVyZW5jZXND
aGFuZ2VkTGlzdGVuZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgdW5yZWdpc3RlckZvclByZWZlcmVu
Y2VzQ2hhbmdlZENhbGxiYWNrcyhDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkTGlzdGVuZXIqKTsK
KyAgICB2aXJ0dWFsIHZvaWQgY2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpOworICAgIGJvb2wg
aGF2ZVByZWZlcmVuY2VDaGFuZ2VMaXN0ZW5lcnMoKSBjb25zdCB7IHJldHVybiAhbV9jYXB0aW9u
UHJlZmVyZW5jZUNoYW5nZUxpc3RlbmVycy5pc0VtcHR5KCk7IH0KIAotICAgIHZpcnR1YWwgU3Ry
aW5nIGRpc3BsYXlOYW1lRm9yVHJhY2soVGV4dFRyYWNrKiB0cmFjaykgY29uc3QKLSAgICB7Ci0g
ICAgICAgIGlmICh0cmFjay0+bGFiZWwoKS5pc0VtcHR5KCkgJiYgdHJhY2stPmxhbmd1YWdlKCku
aXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0dXJuIHRleHRUcmFja05vTGFiZWxUZXh0KCk7Ci0g
ICAgICAgIGlmICghdHJhY2stPmxhYmVsKCkuaXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0dXJu
IHRyYWNrLT5sYWJlbCgpOwotICAgICAgICByZXR1cm4gdHJhY2stPmxhbmd1YWdlKCk7Ci0gICAg
fQorICAgIHZpcnR1YWwgdm9pZCBzZXRQcmVmZXJyZWRMYW5ndWFnZShTdHJpbmcpOworICAgIHZp
cnR1YWwgVmVjdG9yPFN0cmluZz4gcHJlZmVycmVkTGFuZ3VhZ2VzKCkgY29uc3Q7CisKKyAgICB2
aXJ0dWFsIFN0cmluZyBkaXNwbGF5TmFtZUZvclRyYWNrKFRleHRUcmFjayopIGNvbnN0OwogCiAg
ICAgdmlydHVhbCBib29sIHRlc3RpbmdNb2RlKCkgY29uc3QgeyByZXR1cm4gbV90ZXN0aW5nTW9k
ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRUZXN0aW5nTW9kZShib29sIG92ZXJyaWRlKSB7IG1f
dGVzdGluZ01vZGUgPSBvdmVycmlkZTsgfQpAQCAtODUsMTQgKzc1LDE3IEBAIHByb3RlY3RlZDoK
ICAgICBDYXB0aW9uVXNlclByZWZlcmVuY2VzKFBhZ2VHcm91cCogZ3JvdXApCiAgICAgICAgIDog
bV9wYWdlR3JvdXAoZ3JvdXApCiAgICAgICAgICwgbV90ZXN0aW5nTW9kZShmYWxzZSkKKyAgICAg
ICAgLCBtX2hhdmVQcmVmZXJlbmNlcyhmYWxzZSkKICAgICAgICAgLCBtX3VzZXJQcmVmZXJzQ2Fw
dGlvbnMoZmFsc2UpCiAgICAgewogICAgIH0KIAogcHJpdmF0ZToKKyAgICBIYXNoU2V0PENhcHRp
b25QcmVmZXJlbmNlc0NoYW5nZWRMaXN0ZW5lcio+IG1fY2FwdGlvblByZWZlcmVuY2VDaGFuZ2VM
aXN0ZW5lcnM7CiAgICAgUGFnZUdyb3VwKiBtX3BhZ2VHcm91cDsKICAgICBTdHJpbmcgbV91c2Vy
UHJlZmVycmVkTGFuZ3VhZ2U7CiAgICAgYm9vbCBtX3Rlc3RpbmdNb2RlOworICAgIGJvb2wgbV9o
YXZlUHJlZmVyZW5jZXM7CiAgICAgYm9vbCBtX3VzZXJQcmVmZXJzQ2FwdGlvbnM7CiB9OwogICAg
IApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2Vz
TWFjLmgJKHJldmlzaW9uIDE0MjYzNykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVz
ZXJQcmVmZXJlbmNlc01hYy5oCSh3b3JraW5nIGNvcHkpCkBAIC00NiwxMyArNDYsMTMgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRVc2VyUHJlZmVyc0NhcHRpb25zKGJvb2wpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgZmxvYXQgY2FwdGlvbkZvbnRTaXplU2NhbGUoYm9vbCYpIGNvbnN0
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgU3RyaW5nIGNhcHRpb25zU3R5bGVTaGVldE92ZXJyaWRl
KCkgY29uc3QgT1ZFUlJJREU7CisKICAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJGb3JQcmVmZXJl
bmNlc0NoYW5nZWRDYWxsYmFja3MoQ2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZExpc3RlbmVyKikg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHVucmVnaXN0ZXJGb3JQcmVmZXJlbmNlc0NoYW5n
ZWRDYWxsYmFja3MoQ2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZExpc3RlbmVyKikgT1ZFUlJJREU7
CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0UHJlZmVycmVkTGFuZ3VhZ2UoU3RyaW5nKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIFZlY3RvcjxTdHJpbmc+IHByZWZlcnJlZExhbmd1YWdlcygpIGNvbnN0
IE9WRVJSSURFOwogCi0gICAgdm9pZCBjYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCk7CisgICAg
dmlydHVhbCB2b2lkIGNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQoKSBPVkVSUklERTsKICNlbmRp
ZgogCiAgICAgdmlydHVhbCBTdHJpbmcgZGlzcGxheU5hbWVGb3JUcmFjayhUZXh0VHJhY2sqKSBj
b25zdCBPVkVSUklERTsKQEAgLTc0LDcgKzc0LDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgdXBk
YXRlQ2FwdGlvblN0eWxlU2hlZXRPdmVyaWRlKCk7CiAKLSAgICBIYXNoU2V0PENhcHRpb25QcmVm
ZXJlbmNlc0NoYW5nZWRMaXN0ZW5lcio+IG1fY2FwdGlvblByZWZlcmVuY2VDaGFuZ2VMaXN0ZW5l
cnM7CiAgICAgYm9vbCBtX2xpc3RlbmluZ0ZvclByZWZlcmVuY2VDaGFuZ2VzOwogI2VuZGlmCiB9
OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNl
c01hYy5tbQkocmV2aXNpb24gMTQyNjM5KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9u
VXNlclByZWZlcmVuY2VzTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMjgsMzQgKzEyOCwyOCBA
QCBib29sIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWM6OnVzZXJIYXNDCiAKIHZvaWQgQ2FwdGlv
blVzZXJQcmVmZXJlbmNlc01hYzo6cmVnaXN0ZXJGb3JQcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFj
a3MoQ2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZExpc3RlbmVyKiBsaXN0ZW5lcikKIHsKLSAgICBp
ZiAoIU1lZGlhQWNjZXNzaWJpbGl0eUxpYnJhcnkoKSkgewotICAgICAgICBDYXB0aW9uVXNlclBy
ZWZlcmVuY2VzOjpyZWdpc3RlckZvclByZWZlcmVuY2VzQ2hhbmdlZENhbGxiYWNrcyhsaXN0ZW5l
cik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6
cmVnaXN0ZXJGb3JQcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFja3MobGlzdGVuZXIpOwogCi0gICAg
QVNTRVJUKCFtX2NhcHRpb25QcmVmZXJlbmNlQ2hhbmdlTGlzdGVuZXJzLmNvbnRhaW5zKGxpc3Rl
bmVyKSk7CisgICAgaWYgKCFNZWRpYUFjY2Vzc2liaWxpdHlMaWJyYXJ5KCkpCisgICAgICAgIHJl
dHVybjsKIAogICAgIGlmICgha01BWENhcHRpb25BcHBlYXJhbmNlU2V0dGluZ3NDaGFuZ2VkTm90
aWZpY2F0aW9uKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIW1fbGlzdGVuaW5nRm9yUHJl
ZmVyZW5jZUNoYW5nZXMpIHsKICAgICAgICAgbV9saXN0ZW5pbmdGb3JQcmVmZXJlbmNlQ2hhbmdl
cyA9IHRydWU7Ci0gICAgICAgIENGTm90aWZpY2F0aW9uQ2VudGVyQWRkT2JzZXJ2ZXIgKENGTm90
aWZpY2F0aW9uQ2VudGVyR2V0TG9jYWxDZW50ZXIoKSwgdGhpcywgdXNlckNhcHRpb25QcmVmZXJl
bmNlc0NoYW5nZWROb3RpZmljYXRpb25DYWxsYmFjaywga01BWENhcHRpb25BcHBlYXJhbmNlU2V0
dGluZ3NDaGFuZ2VkTm90aWZpY2F0aW9uLCBOVUxMLCBDRk5vdGlmaWNhdGlvblN1c3BlbnNpb25C
ZWhhdmlvckNvYWxlc2NlKTsKKyAgICAgICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJBZGRPYnNlcnZl
cihDRk5vdGlmaWNhdGlvbkNlbnRlckdldExvY2FsQ2VudGVyKCksIHRoaXMsIHVzZXJDYXB0aW9u
UHJlZmVyZW5jZXNDaGFuZ2VkTm90aWZpY2F0aW9uQ2FsbGJhY2ssIGtNQVhDYXB0aW9uQXBwZWFy
YW5jZVNldHRpbmdzQ2hhbmdlZE5vdGlmaWNhdGlvbiwgTlVMTCwgQ0ZOb3RpZmljYXRpb25TdXNw
ZW5zaW9uQmVoYXZpb3JDb2FsZXNjZSk7CiAgICAgfQogICAgIAogICAgIHVwZGF0ZUNhcHRpb25T
dHlsZVNoZWV0T3ZlcmlkZSgpOwotICAgIG1fY2FwdGlvblByZWZlcmVuY2VDaGFuZ2VMaXN0ZW5l
cnMuYWRkKGxpc3RlbmVyKTsKIH0KIAotdm9pZCBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjOjp1
bnJlZ2lzdGVyRm9yUHJlZmVyZW5jZXNDaGFuZ2VkQ2FsbGJhY2tzKENhcHRpb25QcmVmZXJlbmNl
c0NoYW5nZWRMaXN0ZW5lciogbGlzdGVuZXIpCit2b2lkIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNN
YWM6OmNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQoKQogewotICAgIGlmICghTWVkaWFBY2Nlc3Np
YmlsaXR5TGlicmFyeSgpKSB7Ci0gICAgICAgIENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnVucmVn
aXN0ZXJGb3JQcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFja3MobGlzdGVuZXIpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQorICAgIGlmIChoYXZlUHJlZmVyZW5jZUNoYW5nZUxpc3RlbmVycygpKQor
ICAgICAgICB1cGRhdGVDYXB0aW9uU3R5bGVTaGVldE92ZXJpZGUoKTsKIAotICAgIGlmIChrTUFY
Q2FwdGlvbkFwcGVhcmFuY2VTZXR0aW5nc0NoYW5nZWROb3RpZmljYXRpb24pCi0gICAgICAgIG1f
Y2FwdGlvblByZWZlcmVuY2VDaGFuZ2VMaXN0ZW5lcnMucmVtb3ZlKGxpc3RlbmVyKTsKKyAgICBD
YXB0aW9uVXNlclByZWZlcmVuY2VzOjpjYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCk7CiB9CiAK
IFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjOjpjYXB0aW9uc1dpbmRvd0NTUygpIGNv
bnN0CkBAIC00MjEsMTcgKzQxNSw2IEBAIGZsb2F0IENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWM6
OmNhcHRpb24KICNlbmRpZgogfQogCi12b2lkIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWM6OmNh
cHRpb25QcmVmZXJlbmNlc0NoYW5nZWQoKQotewotICAgIGlmIChtX2NhcHRpb25QcmVmZXJlbmNl
Q2hhbmdlTGlzdGVuZXJzLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgdXBkYXRl
Q2FwdGlvblN0eWxlU2hlZXRPdmVyaWRlKCk7Ci0KLSAgICBmb3IgKEhhc2hTZXQ8Q2FwdGlvblBy
ZWZlcmVuY2VzQ2hhbmdlZExpc3RlbmVyKj46Oml0ZXJhdG9yIGkgPSBtX2NhcHRpb25QcmVmZXJl
bmNlQ2hhbmdlTGlzdGVuZXJzLmJlZ2luKCk7IGkgIT0gbV9jYXB0aW9uUHJlZmVyZW5jZUNoYW5n
ZUxpc3RlbmVycy5lbmQoKTsgKytpKQotICAgICAgICAoKmkpLT5jYXB0aW9uUHJlZmVyZW5jZXND
aGFuZ2VkKCk7Ci19Ci0KIHZvaWQgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYzo6dXBkYXRlQ2Fw
dGlvblN0eWxlU2hlZXRPdmVyaWRlKCkKIHsKICAgICAvLyBJZGVudGlmeSBvdXIgb3ZlcnJpZGUg
c3R5bGUgc2hlZXQgd2l0aCBhIHVuaXF1ZSBVUkwgLSBhIG5ldyBzY2hlbWUgYW5kIGEgVVVJRC4K
SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE0Mjc3MCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEzLTAyLTEzICBFcmljIENhcmxzb24gIDxl
cmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdIENhcHRpb24gbWVudSBzaG91
bGQgaGF2ZSBvbmx5IG9uZSBpdGVtIHNlbGVjdGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk3MzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIG1lZGlhL3RyYWNrL3RyYWNrLXVzZXItcHJlZmVyZW5j
ZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIG1lZGlhL3RyYWNrL3RyYWNrLXVzZXItcHJlZmVy
ZW5jZXMuaHRtbDogVXBkYXRlIHRlc3QgdG8gY2hlY2sgZm9yIHJlYWN0aW9ucyB0byBwcmVmZXJl
bmNlcy4KKwogMjAxMy0wMi0xMyAgTW9ydGVuIFN0ZW5zaG9ybmUgIDxtc3RlbnNob0BvcGVyYS5j
b20+CiAKICAgICAgICAgV2ViS2l0IGlnbm9yZXMgY29sdW1uLXJ1bGVzIHdpZGVyIHRoYW4gY29s
dW1uLWdhcApJbmRleDogTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stdXNlci1wcmVmZXJl
bmNlcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2sv
dHJhY2stdXNlci1wcmVmZXJlbmNlcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE0MjYzNykKKysr
IExheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLXVzZXItcHJlZmVyZW5jZXMtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zLDI5ICszLDQwIEBAIFRlc3QgdHJhY2sgdXNlciBwcmVm
ZXJlbmNlcy4KIAogU2V0IHVzZXIgbGFuZ3VhZ2VzIHRvOiBbJ25vJywgJ2VzLUVTJywgJ2VuJywg
J2ZyJ10uCiAKLVRlc3QgMTogdHJhY2sgc2VsZWN0ZWQgYmVjYXVzZSBvZiAnZGVmYXVsdCcgYXR0
cmlidXRlCitUZXN0IDE6ICdubycgdHJhY2sgc2VsZWN0ZWQgYmVjYXVzZSBvZiB1c2VyIHByZWZl
cnJlZCBsYW5ndWFnZQogLSBjcmVhdGluZyB0cmFja3MgZm9yOiBbZW4sZnIsbm9dLgogRVZFTlQo
bG9hZCkKLUVYUEVDVEVEIChldmVudC50YXJnZXQuc3JjbGFuZyA9PSAnZnInKSBPSworRVhQRUNU
RUQgKGV2ZW50LnRhcmdldC5zcmNsYW5nID09ICdubycpIE9LCiBFWFBFQ1RFRCAoZXZlbnQudGFy
Z2V0LnJlYWR5U3RhdGUgPT0gJzInKSBPSwogCi1UZXN0IDI6IHRyYWNrIHNlbGVjdGVkIGJlY2F1
c2Ugb2Ygb3JpZ2luYWwgdXNlciBwcmVmZXJyZWQgbGFuZ3VhZ2UKK1Rlc3QgMjogJ25vJyB0cmFj
ayBzdGlsbCBzZWxlY3RlZCBiZWNhdXNlIG9mIGxhbmd1YWdlLCBvdmVycmlkaW5nICdkZWZhdWx0
JyBhdHRyaWJ1dGUKIC0gY3JlYXRpbmcgdHJhY2tzIGZvcjogW2ZyLGVuLG5vXS4KKy0tICdlbicg
dHJhY2sgbWFya2VkIGFzIGRlZmF1bHQuCiBFVkVOVChsb2FkKQogRVhQRUNURUQgKGV2ZW50LnRh
cmdldC5zcmNsYW5nID09ICdubycpIE9LCiBFWFBFQ1RFRCAoZXZlbnQudGFyZ2V0LnJlYWR5U3Rh
dGUgPT0gJzInKSBPSwogCi1UZXN0IDM6IHByZWZlcnJlZCBsYW5ndWFnZSBjaGFuZ2VkIGJ5IHNl
bGVjdGluZyB0cmFjayBmcm9tIG1lbnUKK1Rlc3QgMzogc2VsZWN0ICdmcicgdHJhY2sgZnJvbSBt
ZW51CiAtIHNob3cgY2FwdGlvbnMgbWVudS4KK0VYUEVDVEVEICh0cmFja01lbnVJdGVtc1sxXS5j
bGFzc05hbWUgPT0gJycpIE9LCitFWFBFQ1RFRCAodHJhY2tNZW51SXRlbXNbMl0uY2xhc3NOYW1l
ID09ICcnKSBPSworRVhQRUNURUQgKHRyYWNrTWVudUl0ZW1zWzNdLmNsYXNzTmFtZSA9PSAnc2Vs
ZWN0ZWQnKSBPSwogLSBjbGljayBvbiBtZW51IGl0ZW0gMi4KK0VWRU5UKGxvYWQpCitFWFBFQ1RF
RCAoZXZlbnQudGFyZ2V0LnNyY2xhbmcgPT0gJ2ZyJykgT0sKK0VYUEVDVEVEIChldmVudC50YXJn
ZXQucmVhZHlTdGF0ZSA9PSAnMicpIE9LCiBFWFBFQ1RFRCAodmlkZW8udGV4dFRyYWNrc1swXS5t
b2RlID09ICdzaG93aW5nJykgT0sKIEVYUEVDVEVEICh2aWRlby50ZXh0VHJhY2tzWzBdLmxhbmd1
YWdlID09ICdmcicpIE9LCi0tIGNyZWF0aW5nIHRyYWNrcyBmb3I6IFtubyxmcixlbl0uCisKK1Rl
c3QgNDogcHJlZmVycmVkIGxhbmd1YWdlIHdhcyBjaGFuZ2VkIHRvICdmcicgYnkgc2VsZWN0aW5n
IHRyYWNrIGZyb20gbWVudQorLSBjcmVhdGluZyB0cmFja3MgZm9yOiBbcnUsZW4sZnJdLgogRVZF
TlQobG9hZCkKIEVYUEVDVEVEIChldmVudC50YXJnZXQuc3JjbGFuZyA9PSAnZnInKSBPSwogRVhQ
RUNURUQgKGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlID09ICcyJykgT0sKK0VYUEVDVEVEICh2aWRl
by50ZXh0VHJhY2tzWzJdLm1vZGUgPT0gJ3Nob3dpbmcnKSBPSworRVhQRUNURUQgKHZpZGVvLnRl
eHRUcmFja3NbMl0ubGFuZ3VhZ2UgPT0gJ2ZyJykgT0sKIAotVGVzdCA0OiB0dXJuaW5nIGNhcHRp
b25zIG9mZiBmcm9tIG1lbnUgZGlzYWJsZXMgY2FwdGlvbnMKK1Rlc3QgNTogdHVybmluZyBjYXB0
aW9ucyBvZmYgZnJvbSBtZW51IGRpc2FibGVzIGNhcHRpb24gc2VsZWN0aW9uCiAtIHNob3cgY2Fw
dGlvbnMgbWVudS4KIC0gY2xpY2sgb24gbWVudSBpdGVtIDAuCiAtIGNyZWF0aW5nIHRyYWNrcyBm
b3I6IFtydSxqcCxlbl0uCkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay11c2Vy
LXByZWZlcmVuY2VzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2sv
dHJhY2stdXNlci1wcmVmZXJlbmNlcy5odG1sCShyZXZpc2lvbiAxNDI2MzcpCisrKyBMYXlvdXRU
ZXN0cy9tZWRpYS90cmFjay90cmFjay11c2VyLXByZWZlcmVuY2VzLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTExLDYgKzExLDcgQEAKICAgICAgICAgICAgIHZhciBleHBlY3RlZExhbmd1YWdlOwog
ICAgICAgICAgICAgdmFyIHRlc3RTdGFnZSA9IDA7CiAgICAgICAgICAgICB2YXIgY2FwdGlvbnNC
dXR0b25Db29yZGluYXRlczsKKyAgICAgICAgICAgIHZhciB0cmFja01lbnVJdGVtczsKIAogICAg
ICAgICAgICAgZnVuY3Rpb24gc2hvd0NhcHRpb25NZW51KCkKICAgICAgICAgICAgIHsKQEAgLTI0
LDcgKzI1LDcgQEAKIAogICAgICAgICAgICAgZnVuY3Rpb24gdHJhY2tNZW51TGlzdCgpCiAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdmFyIHRyYWNrTGlzdEVsZW1lbnQgPSBnZXRUcmFj
a0xpc3RFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgdHJhY2tMaXN0RWxlbWVudCA9IGdldFRy
YWNrTGlzdEVsZW1lbnQoKTsKICAgICAgICAgICAgICAgICBpZiAoIXRyYWNrTGlzdEVsZW1lbnQp
CiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKIApAQCAtNDYsOCArNDcsOCBAQAogICAgICAg
ICAgICAgZnVuY3Rpb24gc2VsZWN0Q2FwdGlvbk1lbnVJdGVtKGluZGV4KQogICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiLSBjbGljayBvbiBtZW51IGl0ZW0gIiAr
IGluZGV4ICsgIi4iKTsKLSAgICAgICAgICAgICAgICB2YXIgdHJhY2tMaXN0SXRlbXMgPSB0cmFj
a01lbnVMaXN0KCk7Ci0gICAgICAgICAgICAgICAgdmFyIHNlbGVjdGVkVHJhY2tJdGVtID0gdHJh
Y2tMaXN0SXRlbXNbaW5kZXhdOworICAgICAgICAgICAgICAgIHZhciB0cmFja01lbnVJdGVtcyA9
IHRyYWNrTWVudUxpc3QoKTsKKyAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ZWRUcmFja0l0ZW0g
PSB0cmFja01lbnVJdGVtc1tpbmRleF07CiAgICAgICAgICAgICAgICAgdmFyIGJvdW5kaW5nUmVj
dCA9IHNlbGVjdGVkVHJhY2tJdGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgICAgICAg
ICAgICAgIHZhciB4ID0gYm91bmRpbmdSZWN0LmxlZnQgKyBib3VuZGluZ1JlY3Qud2lkdGggLyAy
OwogICAgICAgICAgICAgICAgIHZhciB5ID0gYm91bmRpbmdSZWN0LnRvcCArIGJvdW5kaW5nUmVj
dC5oZWlnaHQgLyAyOwpAQCAtNzIsOCArNzMsMTAgQEAKICAgICAgICAgICAgICAgICB0cmFjay5z
cmMgPSAnZGF0YTp0ZXh0L3Z0dCwnK2VuY29kZVVSSUNvbXBvbmVudCgiV0VCVlRUXG5cbjAwOjAw
OjAwLjAwMCAtLT4gMDA6MDA6MDEuMDAwXG5DYXB0aW9uIDFcbiIpOwogICAgICAgICAgICAgICAg
IHRyYWNrLnNldEF0dHJpYnV0ZSgnc3JjbGFuZycsIGxhbmd1YWdlKTsKICAgICAgICAgICAgICAg
ICB0cmFjay5zZXRBdHRyaWJ1dGUoJ29ubG9hZCcsICd0cmFja0xvYWRlZCgpJyk7Ci0gICAgICAg
ICAgICAgICAgaWYgKGlzRGVmYXVsdCkKKyAgICAgICAgICAgICAgICBpZiAoaXNEZWZhdWx0KSB7
CisgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiLS0gJyIgKyBsYW5ndWFnZSArICIn
IHRyYWNrIG1hcmtlZCBhcyBkZWZhdWx0LiIpOwogICAgICAgICAgICAgICAgICAgICB0cmFjay5z
ZXRBdHRyaWJ1dGUoJ2RlZmF1bHQnLCAnZGVmYXVsdCcpOworICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICB2aWRlby5hcHBlbmRDaGlsZCh0cmFjayk7CiAgICAgICAgICAgICB9CiAK
QEAgLTkzLDQyICs5Niw1OSBAQAogICAgICAgICAgICAgICAgICsrdGVzdFN0YWdlOwogICAgICAg
ICAgICAgICAgIHN3aXRjaCAodGVzdFN0YWdlKSB7CiAgICAgICAgICAgICAgICAgY2FzZSAxOgot
ICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIjxicj5UZXN0IDE6IHRyYWNrIHNlbGVj
dGVkIGJlY2F1c2Ugb2YgJ2RlZmF1bHQnIGF0dHJpYnV0ZSIpOwotICAgICAgICAgICAgICAgICAg
ICBjcmVhdGVUcmFja0VsZW1lbnRzKFsnZW4nLCAnZnInLCAnbm8nXSwgMSk7Ci0gICAgICAgICAg
ICAgICAgICAgIGV4cGVjdGVkTGFuZ3VhZ2UgPSAnZnInOworICAgICAgICAgICAgICAgICAgICBj
b25zb2xlV3JpdGUoIjxicj5UZXN0IDE6ICdubycgdHJhY2sgc2VsZWN0ZWQgYmVjYXVzZSBvZiB1
c2VyIHByZWZlcnJlZCBsYW5ndWFnZSIpOworICAgICAgICAgICAgICAgICAgICBjcmVhdGVUcmFj
a0VsZW1lbnRzKFsnZW4nLCAnZnInLCAnbm8nXSk7CisgICAgICAgICAgICAgICAgICAgIGV4cGVj
dGVkTGFuZ3VhZ2UgPSAnbm8nOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKIAogICAgICAg
ICAgICAgICAgIGNhc2UgMjoKLSAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+
VGVzdCAyOiB0cmFjayBzZWxlY3RlZCBiZWNhdXNlIG9mIG9yaWdpbmFsIHVzZXIgcHJlZmVycmVk
IGxhbmd1YWdlIik7Ci0gICAgICAgICAgICAgICAgICAgIGNyZWF0ZVRyYWNrRWxlbWVudHMoWydm
cicsICdlbicsICdubyddKTsKKyAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+
VGVzdCAyOiAnbm8nIHRyYWNrIHN0aWxsIHNlbGVjdGVkIGJlY2F1c2Ugb2YgbGFuZ3VhZ2UsIG92
ZXJyaWRpbmcgJ2RlZmF1bHQnIGF0dHJpYnV0ZSIpOworICAgICAgICAgICAgICAgICAgICBjcmVh
dGVUcmFja0VsZW1lbnRzKFsnZnInLCAnZW4nLCAnbm8nXSwgMSk7CiAgICAgICAgICAgICAgICAg
ICAgIGV4cGVjdGVkTGFuZ3VhZ2UgPSAnbm8nOwogICAgICAgICAgICAgICAgICAgICBicmVhazsK
IAogICAgICAgICAgICAgICAgIGNhc2UgMzoKLSAgICAgICAgICAgICAgICAgICAgY29uc29sZVdy
aXRlKCI8YnI+VGVzdCAzOiBwcmVmZXJyZWQgbGFuZ3VhZ2UgY2hhbmdlZCBieSBzZWxlY3Rpbmcg
dHJhY2sgZnJvbSBtZW51Iik7CisgICAgICAgICAgICAgICAgICAgIC8vIENsZWFyIHRoZSBkZWJ1
ZyBzZXR0aW5nIHNvIGl0IGlzbid0IGNvbnNpZGVyZWQgaW4gdGhlIHRyYWNrIHNlbGVjdGlvbiBs
b2dpYworICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2hvdWxkRGlz
cGxheVRyYWNrS2luZCgnQ2FwdGlvbnMnLCBmYWxzZSk7CisKKyAgICAgICAgICAgICAgICAgICAg
Y29uc29sZVdyaXRlKCI8YnI+VGVzdCAzOiBzZWxlY3QgJ2ZyJyB0cmFjayBmcm9tIG1lbnUiKTsK
ICAgICAgICAgICAgICAgICAgICAgc2hvd0NhcHRpb25NZW51KCk7CiAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwogCiAgICAgICAgICAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAgICAgICAg
ICB0cmFja01lbnVJdGVtcyA9IHRyYWNrTWVudUxpc3QoKTsKKyAgICAgICAgICAgICAgICAgICAg
dGVzdEV4cGVjdGVkKCJ0cmFja01lbnVJdGVtc1sxXS5jbGFzc05hbWUiLCAiIik7CisgICAgICAg
ICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidHJhY2tNZW51SXRlbXNbMl0uY2xhc3NOYW1lIiwg
IiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInRyYWNrTWVudUl0ZW1zWzNd
LmNsYXNzTmFtZSIsICJzZWxlY3RlZCIpOworCiAgICAgICAgICAgICAgICAgICAgIHNlbGVjdENh
cHRpb25NZW51SXRlbSgyKTsKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRMYW5ndWFnZSA9
ICdmcic7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgY2Fz
ZSA1OgogICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnRleHRUcmFja3Nb
MF0ubW9kZSIsICJzaG93aW5nIik7CiAgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgi
dmlkZW8udGV4dFRyYWNrc1swXS5sYW5ndWFnZSIsICJmciIpOworCisgICAgICAgICAgICAgICAg
ICAgIGNvbnNvbGVXcml0ZSgiPGJyPlRlc3QgNDogcHJlZmVycmVkIGxhbmd1YWdlIHdhcyBjaGFu
Z2VkIHRvICdmcicgYnkgc2VsZWN0aW5nIHRyYWNrIGZyb20gbWVudSIpOworICAgICAgICAgICAg
ICAgICAgICBjcmVhdGVUcmFja0VsZW1lbnRzKFsncnUnLCAnZW4nLCAnZnInXSk7CiAgICAgICAg
ICAgICAgICAgICAgIGV4cGVjdGVkTGFuZ3VhZ2UgPSAnZnInOwotICAgICAgICAgICAgICAgICAg
ICBjcmVhdGVUcmFja0VsZW1lbnRzKFsgJ25vJywgJ2ZyJywgJ2VuJ10pOwogICAgICAgICAgICAg
ICAgICAgICBicmVhazsKIAotICAgICAgICAgICAgICAgIGNhc2UgNToKLSAgICAgICAgICAgICAg
ICAgICAgY29uc29sZVdyaXRlKCI8YnI+VGVzdCA0OiB0dXJuaW5nIGNhcHRpb25zIG9mZiBmcm9t
IG1lbnUgZGlzYWJsZXMgY2FwdGlvbnMiKTsKKyAgICAgICAgICAgICAgICBjYXNlIDY6CisgICAg
ICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8udGV4dFRyYWNrc1syXS5tb2RlIiwg
InNob3dpbmciKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby50ZXh0
VHJhY2tzWzJdLmxhbmd1YWdlIiwgImZyIik7CisKKyAgICAgICAgICAgICAgICAgICAgY29uc29s
ZVdyaXRlKCI8YnI+VGVzdCA1OiB0dXJuaW5nIGNhcHRpb25zIG9mZiBmcm9tIG1lbnUgZGlzYWJs
ZXMgY2FwdGlvbiBzZWxlY3Rpb24iKTsKICAgICAgICAgICAgICAgICAgICAgc2hvd0NhcHRpb25N
ZW51KCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgICAgICAgICAgY2Fz
ZSA2OgorICAgICAgICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgICAgICAgICAgc2VsZWN0
Q2FwdGlvbk1lbnVJdGVtKDApOwogICAgICAgICAgICAgICAgICAgICBjcmVhdGVUcmFja0VsZW1l
bnRzKFsgJ3J1JywgJ2pwJywgJ2VuJ10pOwotICAgICAgICAgICAgICAgICAgICB0aW1lciA9IHNl
dFRpbWVvdXQobmV4dFN0ZXAsIDI1MCk7CisgICAgICAgICAgICAgICAgICAgIHRpbWVyID0gc2V0
VGltZW91dChuZXh0U3RlcCwgMTAwKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAKLSAg
ICAgICAgICAgICAgICBjYXNlIDc6CisgICAgICAgICAgICAgICAgY2FzZSA4OgogICAgICAgICAg
ICAgICAgICAgICBmb3IgKHZhciBuZHggPSAwOyBuZHggPCB2aWRlby50ZXh0VHJhY2tzLmxlbmd0
aDsgKytuZHgpCiAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnRl
eHRUcmFja3NbIiArIG5keCArICJdLm1vZGUiLCAiZGlzYWJsZWQiKTsKIApAQCAtMTQ1LDYgKzE2
NSw3IEBACiAgICAgICAgICAgICAgICAgdmlkZW8uYWRkRXZlbnRMaXN0ZW5lcignY2FucGxheXRo
cm91Z2gnLCBuZXh0U3RlcCk7CiAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+U2V0
IHVzZXIgbGFuZ3VhZ2VzIHRvOiBbJ25vJywgJ2VzLUVTJywgJ2VuJywgJ2ZyJ10uIik7CiAgICAg
ICAgICAgICAgICAgaW50ZXJuYWxzLnNldFVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoWydubycsICdl
cy1FUycsICdlbicsICdmciddKTsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0U2hvdWxkRGlzcGxheVRyYWNrS2luZCgnQ2FwdGlvbnMnLCB0cnVlKTsKICAgICAgICAgICAg
IH0KICAgICAgICAgPC9zY3JpcHQ+CiAgICAgPC9oZWFkPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>