<?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>150525</bug_id>
          
          <creation_ts>2015-10-23 17:54:43 -0700</creation_ts>
          <short_desc>Expose more information about the exception in WKErrorJavaScriptExceptionOccurred errors</short_desc>
          <delta_ts>2015-10-25 11:07:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=150547</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>mitz</cc>
    
    <cc>mkwst</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1136212</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-23 17:54:43 -0700</bug_when>
    <thetext>Expose more information about the exception in WKErrorJavaScriptExceptionOccurred errors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136213</commentid>
    <comment_count>1</comment_count>
      <attachid>263970</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-23 17:56:03 -0700</bug_when>
    <thetext>Created attachment 263970
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136214</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-10-23 17:56:46 -0700</bug_when>
    <thetext>&lt;rdar://problem/23245452&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136215</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-23 17:58:10 -0700</bug_when>
    <thetext>Attachment 263970 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/WebPageProxy.cpp:2591:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewEvaluateJavaScript.mm:97:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewEvaluateJavaScript.mm:116:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/WebPageProxy.h:766:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 4 in 21 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>1136218</commentid>
    <comment_count>4</comment_count>
      <attachid>263971</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-23 18:10:59 -0700</bug_when>
    <thetext>Created attachment 263971
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136221</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-23 18:13:44 -0700</bug_when>
    <thetext>Attachment 263971 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/WebPageProxy.cpp:2591:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewEvaluateJavaScript.mm:112:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/WebPageProxy.h:766:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 3 in 21 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>1136291</commentid>
    <comment_count>6</comment_count>
      <attachid>263971</attachid>
    <who name="">mitz</who>
    <bug_when>2015-10-24 15:26:05 -0700</bug_when>
    <thetext>Comment on attachment 263971
Patch

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

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKErrorPrivate.h:50
&gt; + the exception source URL (as an NSString) for WKErrorJavaScriptExceptionOccurred errors. */

Why not as an NSURL?

&gt; Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:654
&gt; +		A14FC5831B89739100D107EB /* WKWebViewConfigurationExtras.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = WKWebViewConfigurationExtras.mm; path = ../../WKWebViewConfigurationExtras.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt; +		A14FC5841B89739100D107EB /* WKWebViewConfigurationExtras.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WKWebViewConfigurationExtras.h; path = ../../WKWebViewConfigurationExtras.h; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt;  		A14FC5861B8991B600D107EB /* ContentFiltering.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ContentFiltering.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt;  		A14FC5891B89927100D107EB /* ContentFilteringPlugIn.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ContentFilteringPlugIn.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt; -		A14FC58D1B8AE36500D107EB /* TestProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TestProtocol.h; path = cocoa/TestProtocol.h; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt; -		A14FC58E1B8AE36500D107EB /* TestProtocol.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = TestProtocol.mm; path = cocoa/TestProtocol.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt; +		A14FC58D1B8AE36500D107EB /* TestProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TestProtocol.h; path = ../../cocoa/TestProtocol.h; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt; +		A14FC58E1B8AE36500D107EB /* TestProtocol.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = TestProtocol.mm; path = ../../cocoa/TestProtocol.mm; sourceTree = &quot;&lt;group&gt;&quot;; };

??

&gt; Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:981
&gt; -			path = cocoa/WebProcessPlugIn;
&gt; +			path = ../../cocoa/WebProcessPlugIn;

??</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136296</commentid>
    <comment_count>7</comment_count>
      <attachid>263971</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-10-24 16:00:04 -0700</bug_when>
    <thetext>Comment on attachment 263971
Patch

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

&gt;&gt; Source/WebKit2/UIProcess/API/Cocoa/WKErrorPrivate.h:50
&gt;&gt; + the exception source URL (as an NSString) for WKErrorJavaScriptExceptionOccurred errors. */
&gt; 
&gt; Why not as an NSURL?

Excellent question.

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:2594
&gt; +        callbackFunction(nullptr, false, ExceptionDetails(), CallbackBase::Error::Unknown);

Sometimes I like to use { } instead of ExceptionDetails() at a call site like this one. Or possibly ExceptionDetails{ }.

&gt; Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:649
&gt; +		A14FC5831B89739100D107EB /* WKWebViewConfigurationExtras.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = WKWebViewConfigurationExtras.mm; path = ../../WKWebViewConfigurationExtras.mm; sourceTree = &quot;&lt;group&gt;&quot;; };

As Dan noted below, I see a lot of changes like this and it does not seem good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136324</commentid>
    <comment_count>8</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-24 18:12:50 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Comment on attachment 263971 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=263971&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit2/UIProcess/API/Cocoa/WKErrorPrivate.h:50
&gt; &gt;&gt; + the exception source URL (as an NSString) for WKErrorJavaScriptExceptionOccurred errors. */
&gt; &gt; 
&gt; &gt; Why not as an NSURL?
&gt; 
&gt; Excellent question.

Will fix!

&gt; &gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:2594
&gt; &gt; +        callbackFunction(nullptr, false, ExceptionDetails(), CallbackBase::Error::Unknown);
&gt; 
&gt; Sometimes I like to use { } instead of ExceptionDetails() at a call site
&gt; like this one. Or possibly ExceptionDetails{ }.

I hadn&apos;t picked up that trick yet, but I like it!

&gt; &gt; Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:649
&gt; &gt; +		A14FC5831B89739100D107EB /* WKWebViewConfigurationExtras.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = WKWebViewConfigurationExtras.mm; path = ../../WKWebViewConfigurationExtras.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt; 
&gt; As Dan noted below, I see a lot of changes like this and it does not seem
&gt; good.

This was actually semi-intentional, but I&apos;ll do it in another patch. The XCode project has duplicate groups (cocoa and Cocoa) in one place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136357</commentid>
    <comment_count>9</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-24 22:38:34 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/191543</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136364</commentid>
    <comment_count>10</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-24 23:15:15 -0700</bug_when>
    <thetext>Something bad is happening: https://build.webkit.org/builders/Apple%20El%20Capitan%20Release%20WK2%20%28Tests%29/builds/680/steps/run-api-tests/logs/stdio

Building release to see if I can reproduce.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136365</commentid>
    <comment_count>11</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-24 23:37:12 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Something bad is happening:
&gt; https://build.webkit.org/builders/
&gt; Apple%20El%20Capitan%20Release%20WK2%20%28Tests%29/builds/680/steps/run-api-
&gt; tests/logs/stdio
&gt; 
&gt; Building release to see if I can reproduce.

Weird? In a subsequent build it&apos;s complaining about something *else* I added to the API in another patch (http://trac.webkit.org/changeset/191545).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136366</commentid>
    <comment_count>12</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-24 23:37:46 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; Something bad is happening:
&gt; &gt; https://build.webkit.org/builders/
&gt; &gt; Apple%20El%20Capitan%20Release%20WK2%20%28Tests%29/builds/680/steps/run-api-
&gt; &gt; tests/logs/stdio
&gt; &gt; 
&gt; &gt; Building release to see if I can reproduce.
&gt; 
&gt; Weird? In a subsequent build it&apos;s complaining about something *else* I added
&gt; to the API in another patch (http://trac.webkit.org/changeset/191545).

And neither of these reproduce locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136367</commentid>
    <comment_count>13</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-24 23:40:47 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Something bad is happening:
&gt; https://build.webkit.org/builders/
&gt; Apple%20El%20Capitan%20Release%20WK2%20%28Tests%29/builds/680/steps/run-api-
&gt; tests/logs/stdio
&gt; 
&gt; Building release to see if I can reproduce.

Also not happening on Yosemite bots :( I don&apos;t get it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136369</commentid>
    <comment_count>14</comment_count>
    <who name="">mitz</who>
    <bug_when>2015-10-24 23:42:27 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Something bad is happening:
&gt; https://build.webkit.org/builders/
&gt; Apple%20El%20Capitan%20Release%20WK2%20%28Tests%29/builds/680/steps/run-api-
&gt; tests/logs/stdio
&gt; 
&gt; Building release to see if I can reproduce.

Is there any way to see the full build log?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136370</commentid>
    <comment_count>15</comment_count>
    <who name="">mitz</who>
    <bug_when>2015-10-24 23:48:30 -0700</bug_when>
    <thetext>Looks like System Integrity Protection is making TestWebKitAPI use WebKit from /System/Library/Frameworks instead of from the archive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136375</commentid>
    <comment_count>16</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-25 00:10:01 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; Looks like System Integrity Protection is making TestWebKitAPI use WebKit
&gt; from /System/Library/Frameworks instead of from the archive.

Wow! I&apos;m surprised that hasn&apos;t come up before!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136398</commentid>
    <comment_count>17</comment_count>
    <who name="">mitz</who>
    <bug_when>2015-10-25 09:33:32 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #15)
&gt; &gt; Looks like System Integrity Protection is making TestWebKitAPI use WebKit
&gt; &gt; from /System/Library/Frameworks instead of from the archive.
&gt; 
&gt; Wow! I&apos;m surprised that hasn&apos;t come up before!

It has come up before and &lt;http://trac.webkit.org/r190412&gt; was supposed to take care of it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136404</commentid>
    <comment_count>18</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-10-25 10:57:02 -0700</bug_when>
    <thetext>There must be another location that I missed - it&apos;s failing when generating a list of tests to run, not when running the tests.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263970</attachid>
            <date>2015-10-23 17:56:03 -0700</date>
            <delta_ts>2015-10-23 18:10:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-150525-20151023175517.patch</filename>
            <type>text/plain</type>
            <size>44317</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkxNTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTNmNmI0MDYxNjg1MTdi
MjFhZjNlYWU4NzZmODVmMTIxMTA2MDIzNi4uOGNjZWRkYmY2NzQwZjlkM2Q4OWUwMzlkZjUyYTUw
YWQzYjAzNTNmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE1LTEwLTIzICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEV4cG9zZSBtb3Jl
IGluZm9ybWF0aW9uIGFib3V0IHRoZSBleGNlcHRpb24gaW4gV0tFcnJvckphdmFTY3JpcHRFeGNl
cHRpb25PY2N1cnJlZCBlcnJvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1MDUyNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkanVzdGVkIEFQSSB0ZXN0IHRvIGNvdmVyIHRoaXM6IFdLV2ViVmlldy5F
dmFsdWF0ZUphdmFTY3JpcHRFcnJvckNhc2VzLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNE
T01CaW5kaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlcG9ydEV4Y2VwdGlvbik6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmg6CisgICAgICAgIEZpbGwgaW4gdGhlIGdp
dmVuIHN0cnVjdCB3aXRoIGNvbXB1dGVkIGV4Y2VwdGlvbiBkYXRhIGlmIGl0IHdhcyBnaXZlbi4K
KworICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVJbldvcmxkKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cmlwdENvbnRyb2xsZXI6OmV4ZWN1dGVTY3JpcHQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1Nj
cmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgUGx1bWIgYWZvcmVtZW50aW9uZWQgc3RydWN0IHRo
cm91Z2ggU2NyaXB0Q29udHJvbGxlci4KKwogMjAxNS0xMC0yMyAgUGVyIEFybmUgVm9sbGFuICA8
cGVhdm9Ab3V0bG9vay5jb20+CiAKICAgICAgICAgW1dpbkNhaXJvXSBJbXByb3ZlIHRlc3QgcmVz
dWx0cyBmb3IgZmFzdCBsYXlvdXR0ZXN0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAxYjA1NzUzNDA0OWZhYWEz
YTExMTVmMWQ4NWY2NzAxOTQzN2NmN2Y5Li5iZjE4ZWJjZTk3ODI4YTRkZGYxNzllOTIzMDYwMTkw
ZmYwZWZiZDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDQgQEAKIDIwMTUtMTAtMjMgIFRpbSBI
b3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKKyAgICAgICAgRXhwb3NlIG1vcmUg
aW5mb3JtYXRpb24gYWJvdXQgdGhlIGV4Y2VwdGlvbiBpbiBXS0Vycm9ySmF2YVNjcmlwdEV4Y2Vw
dGlvbk9jY3VycmVkIGVycm9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTUwNTI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKGhlYWRl
cnNfZm9yX3R5cGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
OgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEV4Y2VwdGlvbkRldGFpbHM+OjplbmNvZGUp
OgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEV4Y2VwdGlvbkRldGFpbHM+OjpkZWNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgTGVh
cm4gaG93IHRvIGVuL2RlY29kZSBFeGNlcHRpb25EZXRhaWxzLgorCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VSdW5KYXZhU2NyaXB0SW5NYWlu
RnJhbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2NyaXB0VmFsdWVDYWxsYmFjayk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpydW5KYXZhU2NyaXB0SW5NYWluRnJhbWUpOgor
ICAgICAgICBQbHVtYiBFeGNlcHRpb25EZXRhaWxzIGJhY2sgdGhyb3VnaCBydW5KYXZhU2NyaXB0
SW5NYWluRnJhbWUsIGFjcm9zcyB0aGUKKyAgICAgICAgcHJvY2VzcyBib3VuZGFyeS4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFcnJvci5tbToKKyAgICAgICAgKGxvY2FsaXpl
ZERlc2NyaXB0aW9uRm9yRXJyb3JDb2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLRXJyb3JJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFcnJv
clByaXZhdGUuaDoKKyAgICAgICAgRXhwb3NlIGxvY2FsaXplZERlc2NyaXB0aW9uRm9yRXJyb3JD
b2RlIHNvIHRoYXQgV0tXZWJWaWV3IGNhbiBkbyBzcGVjaWFsCisgICAgICAgIHRoaW5ncyB3aXRo
IGl0cyBlcnJvci4KKyAgICAgICAgQWRkIG5ldyBwcml2YXRlIHVzZXJJbmZvIGtleXMgZm9yIGV4
Y2VwdGlvbiBpbmZvLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW06CisgICAgICAgICgtW1dLV2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6Y29tcGxldGlvbkhh
bmRsZXI6XSk6CisgICAgICAgIEZpbGwgaW4gdGhlIE5TRXJyb3IgdXNlckluZm8gd2l0aCB0aGUg
ZXhjZXB0aW9uIGluZm8uCisKKzIwMTUtMTAtMjMgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRv
bkBhcHBsZS5jb20+CisKICAgICAgICAgV0tWaWV3IGJlaW5nIGluc2lkZSBXS1dlYlZpZXcgbGVh
ZHMgdG8gd2VpcmQgQVBJIGlzc3VlcwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTUwMTc0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NQmluZGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUJpbmRpbmcuY3BwCmluZGV4IGUxYjBiNWJhMmM4YjE4MjJiM2MzYWU3ZWY1NmI5M2YzY2Q3ZTM2
NWEuLjMwMmM3YTlhMDY3NGEwZjhlMGRhMWMxY2VjMDM3YTU0ZDYyNDkzODAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcApAQCAtMTU5LDcgKzE1OSw3IEBA
IHZvaWQgcmVwb3J0RXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBleGNlcHRpb25W
YWx1ZSwgQ2FjaGVkU2NyaXB0KiBjYWNoCiAgICAgcmVwb3J0RXhjZXB0aW9uKGV4ZWMsIGV4Y2Vw
dGlvbiwgY2FjaGVkU2NyaXB0KTsKIH0KIAotdm9pZCByZXBvcnRFeGNlcHRpb24oRXhlY1N0YXRl
KiBleGVjLCBFeGNlcHRpb24qIGV4Y2VwdGlvbiwgQ2FjaGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQp
Cit2b2lkIHJlcG9ydEV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEV4Y2VwdGlvbiogZXhjZXB0
aW9uLCBDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCwgRXhjZXB0aW9uRGV0YWlscyogZXhjZXB0
aW9uRGV0YWlscykKIHsKICAgICBSRUxFQVNFX0FTU0VSVChleGVjLT52bSgpLmN1cnJlbnRUaHJl
YWRJc0hvbGRpbmdBUElMb2NrKCkpOwogICAgIGlmIChpc1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNl
cHRpb24oZXhjZXB0aW9uKSkKQEAgLTIwMiw2ICsyMDIsMTMgQEAgdm9pZCByZXBvcnRFeGNlcHRp
b24oRXhlY1N0YXRlKiBleGVjLCBFeGNlcHRpb24qIGV4Y2VwdGlvbiwgQ2FjaGVkU2NyaXB0KiBj
YWNoZWQKIAogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQgPSBnbG9iYWxPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBzY3JpcHRF
eGVjdXRpb25Db250ZXh0LT5yZXBvcnRFeGNlcHRpb24oZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVy
LCBjb2x1bW5OdW1iZXIsIGV4Y2VwdGlvblNvdXJjZVVSTCwgY2FsbFN0YWNrLT5zaXplKCkgPyBj
YWxsU3RhY2sgOiAwLCBjYWNoZWRTY3JpcHQpOworCisgICAgaWYgKGV4Y2VwdGlvbkRldGFpbHMp
IHsKKyAgICAgICAgZXhjZXB0aW9uRGV0YWlscy0+bWVzc2FnZSA9IGVycm9yTWVzc2FnZTsKKyAg
ICAgICAgZXhjZXB0aW9uRGV0YWlscy0+bGluZU51bWJlciA9IGxpbmVOdW1iZXI7CisgICAgICAg
IGV4Y2VwdGlvbkRldGFpbHMtPmNvbHVtbk51bWJlciA9IGNvbHVtbk51bWJlcjsKKyAgICAgICAg
ZXhjZXB0aW9uRGV0YWlscy0+c291cmNlVVJMID0gZXhjZXB0aW9uU291cmNlVVJMOworICAgIH0K
IH0KIAogdm9pZCByZXBvcnRDdXJyZW50RXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKaW5kZXggYzY0YTFlNzY5YzE1NTYy
NmQwMGRmYTg4MDZlMjBiZjhlMmI3NjQyNi4uMmY5MjMyMjFhOWUwYzA2ZGQ3MmM5M2M0MmIwZWFh
OGFkNTUwNjUwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01C
aW5kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgK
QEAgLTY3LDYgKzY3LDEzIEBAIGNsYXNzIE5vZGU7CiAKIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNv
ZGU7CiAKK3N0cnVjdCBFeGNlcHRpb25EZXRhaWxzIHsKKyAgICBTdHJpbmcgbWVzc2FnZTsKKyAg
ICBpbnQgbGluZU51bWJlciB7IDAgfTsKKyAgICBpbnQgY29sdW1uTnVtYmVyIHsgMCB9OworICAg
IFN0cmluZyBzb3VyY2VVUkw7Cit9OworCiBET01XaW5kb3cmIGFjdGl2ZURPTVdpbmRvdyhKU0M6
OkV4ZWNTdGF0ZSopOwogRE9NV2luZG93JiBmaXJzdERPTVdpbmRvdyhKU0M6OkV4ZWNTdGF0ZSop
OwogCkBAIC0yNzIsNyArMjc5LDcgQEAgdm9pZCBhZGRJbXB1cmVQcm9wZXJ0eShjb25zdCBBdG9t
aWNTdHJpbmcmKTsKIGNvbnN0IEpTQzo6SGFzaFRhYmxlJiBnZXRIYXNoVGFibGVGb3JHbG9iYWxE
YXRhKEpTQzo6Vk0mLCBjb25zdCBKU0M6Okhhc2hUYWJsZSYgc3RhdGljVGFibGUpOwogCiBXRUJD
T1JFX0VYUE9SVCB2b2lkIHJlcG9ydEV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNW
YWx1ZSBleGNlcHRpb24sIENhY2hlZFNjcmlwdCogPSBudWxscHRyKTsKLVdFQkNPUkVfRVhQT1JU
IHZvaWQgcmVwb3J0RXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFeGNlcHRpb24qLCBD
YWNoZWRTY3JpcHQqID0gbnVsbHB0cik7CitXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcG9ydEV4Y2Vw
dGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RXhjZXB0aW9uKiwgQ2FjaGVkU2NyaXB0KiA9IG51
bGxwdHIsIEV4Y2VwdGlvbkRldGFpbHMqID0gbnVsbHB0cik7CiB2b2lkIHJlcG9ydEN1cnJlbnRF
eGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqKTsKIAogSlNDOjpKU1ZhbHVlIGNyZWF0ZURPTUV4Y2Vw
dGlvbihKU0M6OkV4ZWNTdGF0ZSosIEV4Y2VwdGlvbkNvZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCBlMmNmMDkyMmNjOGE2MmM3
NzIzZjc1YzY3OTU4Njc3YjhjY2YxZmUxLi5iMTYxZTY2ZjhkOTJjODBjNGZjOGIyYjcyNmJjMjQ4
NjU3ZGQ1MmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRD
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250
cm9sbGVyLmNwcApAQCAtMTM3LDcgKzEzNyw3IEBAIEpTRE9NV2luZG93U2hlbGwqIFNjcmlwdENv
bnRyb2xsZXI6OmNyZWF0ZVdpbmRvd1NoZWxsKERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCiAgICAg
cmV0dXJuIHdpbmRvd1NoZWxsLmdldCgpOwogfQogCi1EZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBT
Y3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZUluV29ybGQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYg
c291cmNlQ29kZSwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKK0RlcHJlY2F0ZWQ6OlNjcmlwdFZh
bHVlIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlSW5Xb3JsZChjb25zdCBTY3JpcHRTb3VyY2VD
b2RlJiBzb3VyY2VDb2RlLCBET01XcmFwcGVyV29ybGQmIHdvcmxkLCBFeGNlcHRpb25EZXRhaWxz
KiBleGNlcHRpb25EZXRhaWxzKQogewogICAgIEpTTG9ja0hvbGRlciBsb2NrKHdvcmxkLnZtKCkp
OwogCkBAIC0xNjYsNyArMTY2LDcgQEAgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgU2NyaXB0Q29u
dHJvbGxlcjo6ZXZhbHVhdGVJbldvcmxkKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUKICAgICBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEV2YWx1YXRlU2NyaXB0KGNvb2tpZSwgbV9mcmFtZSk7
CiAKICAgICBpZiAoZXZhbHVhdGlvbkV4Y2VwdGlvbikgewotICAgICAgICByZXBvcnRFeGNlcHRp
b24oZXhlYywgZXZhbHVhdGlvbkV4Y2VwdGlvbiwgc291cmNlQ29kZS5jYWNoZWRTY3JpcHQoKSk7
CisgICAgICAgIHJlcG9ydEV4Y2VwdGlvbihleGVjLCBldmFsdWF0aW9uRXhjZXB0aW9uLCBzb3Vy
Y2VDb2RlLmNhY2hlZFNjcmlwdCgpLCBleGNlcHRpb25EZXRhaWxzKTsKICAgICAgICAgbV9zb3Vy
Y2VVUkwgPSBzYXZlZFNvdXJjZVVSTDsKICAgICAgICAgcmV0dXJuIERlcHJlY2F0ZWQ6OlNjcmlw
dFZhbHVlKCk7CiAgICAgfQpAQCAtMTc1LDkgKzE3NSw5IEBAIERlcHJlY2F0ZWQ6OlNjcmlwdFZh
bHVlIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlSW5Xb3JsZChjb25zdCBTY3JpcHRTb3VyY2VD
b2RlCiAgICAgcmV0dXJuIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlKGV4ZWMtPnZtKCksIHJldHVy
blZhbHVlKTsKIH0KIAotRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6
ZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSkgCitEZXByZWNhdGVk
OjpTY3JpcHRWYWx1ZSBTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZShjb25zdCBTY3JpcHRTb3Vy
Y2VDb2RlJiBzb3VyY2VDb2RlLCBFeGNlcHRpb25EZXRhaWxzKiBleGNlcHRpb25EZXRhaWxzKQog
ewotICAgIHJldHVybiBldmFsdWF0ZUluV29ybGQoc291cmNlQ29kZSwgbWFpblRocmVhZE5vcm1h
bFdvcmxkKCkpOworICAgIHJldHVybiBldmFsdWF0ZUluV29ybGQoc291cmNlQ29kZSwgbWFpblRo
cmVhZE5vcm1hbFdvcmxkKCksIGV4Y2VwdGlvbkRldGFpbHMpOwogfQogCiBSZWY8RE9NV3JhcHBl
cldvcmxkPiBTY3JpcHRDb250cm9sbGVyOjpjcmVhdGVXb3JsZCgpCkBAIC01NDUsMjAgKzU0NSwy
MCBAQCBib29sIFNjcmlwdENvbnRyb2xsZXI6OmNhbkV4ZWN1dGVTY3JpcHRzKFJlYXNvbkZvckNh
bGxpbmdDYW5FeGVjdXRlU2NyaXB0cyByZWFzbwogICAgIHJldHVybiBtX2ZyYW1lLmxvYWRlcigp
LmNsaWVudCgpLmFsbG93U2NyaXB0KG1fZnJhbWUuc2V0dGluZ3MoKS5pc1NjcmlwdEVuYWJsZWQo
KSk7CiB9CiAKLURlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV4ZWN1
dGVTY3JpcHQoY29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSkKK0Rl
cHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV4ZWN1dGVTY3JpcHQoY29u
c3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgRXhjZXB0aW9uRGV0YWls
cyogZXhjZXB0aW9uRGV0YWlscykKIHsKICAgICBVc2VyR2VzdHVyZUluZGljYXRvciBnZXN0dXJl
SW5kaWNhdG9yKGZvcmNlVXNlckdlc3R1cmUgPyBEZWZpbml0ZWx5UHJvY2Vzc2luZ1VzZXJHZXN0
dXJlIDogUG9zc2libHlQcm9jZXNzaW5nVXNlckdlc3R1cmUpOwotICAgIHJldHVybiBleGVjdXRl
U2NyaXB0KFNjcmlwdFNvdXJjZUNvZGUoc2NyaXB0LCBtX2ZyYW1lLmRvY3VtZW50KCktPnVybCgp
KSk7CisgICAgcmV0dXJuIGV4ZWN1dGVTY3JpcHQoU2NyaXB0U291cmNlQ29kZShzY3JpcHQsIG1f
ZnJhbWUuZG9jdW1lbnQoKS0+dXJsKCkpLCBleGNlcHRpb25EZXRhaWxzKTsKIH0KIAotRGVwcmVj
YXRlZDo6U2NyaXB0VmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6ZXhlY3V0ZVNjcmlwdChjb25zdCBT
Y3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQorRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgU2Ny
aXB0Q29udHJvbGxlcjo6ZXhlY3V0ZVNjcmlwdChjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3Vy
Y2VDb2RlLCBFeGNlcHRpb25EZXRhaWxzKiBleGNlcHRpb25EZXRhaWxzKQogewogICAgIGlmICgh
Y2FuRXhlY3V0ZVNjcmlwdHMoQWJvdXRUb0V4ZWN1dGVTY3JpcHQpIHx8IGlzUGF1c2VkKCkpCiAg
ICAgICAgIHJldHVybiBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSgpOwogCiAgICAgUmVmPEZyYW1l
PiBwcm90ZWN0KG1fZnJhbWUpOyAvLyBTY3JpcHQgZXhlY3V0aW9uIGNhbiBkZXN0cm95IHRoZSBm
cmFtZSwgYW5kIHRodXMgdGhlIFNjcmlwdENvbnRyb2xsZXIuCiAKLSAgICByZXR1cm4gZXZhbHVh
dGUoc291cmNlQ29kZSk7CisgICAgcmV0dXJuIGV2YWx1YXRlKHNvdXJjZUNvZGUsIGV4Y2VwdGlv
bkRldGFpbHMpOwogfQogCiBib29sIFNjcmlwdENvbnRyb2xsZXI6OmV4ZWN1dGVJZkphdmFTY3Jp
cHRVUkwoY29uc3QgVVJMJiB1cmwsIFNob3VsZFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVS
TCBzaG91bGRSZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkwpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgKaW5kZXggMDdjNTNiN2M4ZWRmYjRlMjhm
NWNhMTNhYTJjNGUwNTU5NGVmNTEyMi4uMjk3NmZjMzQzNjhhNDUwOGUxODhiZDk4MTI2MDdhYzBj
MTkzZDYyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29u
dHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xs
ZXIuaApAQCAtNDMsMTMgKzQzLDEzIEBAIGNsYXNzIFNjcmlwdFZhbHVlOwogfQogCiBuYW1lc3Bh
Y2UgSlNDIHsKLSAgICBjbGFzcyBKU0dsb2JhbE9iamVjdDsKLSAgICBjbGFzcyBFeGVjU3RhdGU7
CitjbGFzcyBKU0dsb2JhbE9iamVjdDsKK2NsYXNzIEV4ZWNTdGF0ZTsKIAotICAgIG5hbWVzcGFj
ZSBCaW5kaW5ncyB7Ci0gICAgICAgIGNsYXNzIEluc3RhbmNlOwotICAgICAgICBjbGFzcyBSb290
T2JqZWN0OwotICAgIH0KK25hbWVzcGFjZSBCaW5kaW5ncyB7CitjbGFzcyBJbnN0YW5jZTsKK2Ns
YXNzIFJvb3RPYmplY3Q7Cit9CiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEwMSw4ICsx
MDEsOCBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgdm9pZCBnZXRBbGxXb3JsZHMoVmVjdG9yPFJl
ZjxET01XcmFwcGVyV29ybGQ+PiYpOwogCi0gICAgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgZXhl
Y3V0ZVNjcmlwdChjb25zdCBTY3JpcHRTb3VyY2VDb2RlJik7Ci0gICAgV0VCQ09SRV9FWFBPUlQg
RGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgZXhlY3V0ZVNjcmlwdChjb25zdCBTdHJpbmcmIHNjcmlw
dCwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlID0gZmFsc2UpOworICAgIERlcHJlY2F0ZWQ6OlNjcmlw
dFZhbHVlIGV4ZWN1dGVTY3JpcHQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYsIEV4Y2VwdGlvbkRl
dGFpbHMqID0gbnVsbHB0cik7CisgICAgV0VCQ09SRV9FWFBPUlQgRGVwcmVjYXRlZDo6U2NyaXB0
VmFsdWUgZXhlY3V0ZVNjcmlwdChjb25zdCBTdHJpbmcmIHNjcmlwdCwgYm9vbCBmb3JjZVVzZXJH
ZXN0dXJlID0gZmFsc2UsIEV4Y2VwdGlvbkRldGFpbHMqID0gbnVsbHB0cik7CiAgICAgV0VCQ09S
RV9FWFBPUlQgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgZXhlY3V0ZVNjcmlwdEluV29ybGQoRE9N
V3JhcHBlcldvcmxkJiwgY29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVy
ZSA9IGZhbHNlKTsKIAogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiBhcmd1bWVudCBpcyBhIEphdmFT
Y3JpcHQgVVJMLgpAQCAtMTEyLDggKzExMiw4IEBAIHB1YmxpYzoKICAgICAvLyBEYXJ3aW4gaXMg
YW4gZXhjZXB0aW9uIHRvIHRoaXMgcnVsZTogaXQgaXMgT0sgdG8gY2FsbCB0aGlzIGZ1bmN0aW9u
IGZyb20gYW55IHRocmVhZCwgZXZlbiByZWVudHJhbnRseS4KICAgICBzdGF0aWMgdm9pZCBpbml0
aWFsaXplVGhyZWFkaW5nKCk7CiAKLSAgICBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBldmFsdWF0
ZShjb25zdCBTY3JpcHRTb3VyY2VDb2RlJik7Ci0gICAgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUg
ZXZhbHVhdGVJbldvcmxkKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmLCBET01XcmFwcGVyV29ybGQm
KTsKKyAgICBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBldmFsdWF0ZShjb25zdCBTY3JpcHRTb3Vy
Y2VDb2RlJiwgRXhjZXB0aW9uRGV0YWlscyogPSBudWxscHRyKTsKKyAgICBEZXByZWNhdGVkOjpT
Y3JpcHRWYWx1ZSBldmFsdWF0ZUluV29ybGQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYsIERPTVdy
YXBwZXJXb3JsZCYsIEV4Y2VwdGlvbkRldGFpbHMqID0gbnVsbHB0cik7CiAKICAgICBXVEY6OlRl
eHRQb3NpdGlvbiBldmVudEhhbmRsZXJQb3NpdGlvbigpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQy
L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDg5ZjU2ZTE2NjgxNDhlMzdlMTQyYjU2
MDYwOWI0YmY5NDdhNTRhYmQuLjYxNGI1Yjg3NjI2ZDI4MTA4OWZjYjgyNGQ3YTEzMzk3Y2IyMjU1
ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0zNTIs
NiArMzUyLDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgc3BlY2lhbF9jYXNl
cyA9IHsKICAgICAgICAgJ1N0cmluZyc6IFsnPHd0Zi90ZXh0L1dURlN0cmluZy5oPiddLAogICAg
ICAgICAnV2ViQ29yZTo6Q29tcG9zaXRpb25VbmRlcmxpbmUnOiBbJzxXZWJDb3JlL0VkaXRvci5o
PiddLAorICAgICAgICAnV2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyc6IFsnPFdlYkNvcmUvSlNE
T01CaW5kaW5nLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpHcmFtbWFyRGV0YWlsJzogWyc8V2Vi
Q29yZS9UZXh0Q2hlY2tlckNsaWVudC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6VGV4dHVyZU1h
cHBlckFuaW1hdGlvbnMnOiBbJzxXZWJDb3JlL1RleHR1cmVNYXBwZXJBbmltYXRpb24uaD4nXSwK
ICAgICAgICAgJ1dlYkNvcmU6OktleWZyYW1lVmFsdWVMaXN0JzogWyc8V2ViQ29yZS9HcmFwaGlj
c0xheWVyLmg+J10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuY3BwCmluZGV4IDZjOWMyNjM1YmRmZWJjNWYyNWVmYjAxYmQ2NjU0NWJkYjM1YmE1NjIu
LmYwZTI2MzYyZTUxYjcwOTNiZWY0YjBmMTk3ZDBiM2UyOWU5ZDYyYjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC00NSw2ICs0NSw3
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9JREJHZXRSZXN1bHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9KU0RPTUJpbmRpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xlbmd0aC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUGF0aC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGx1Z2luRGF0YS5oPgpA
QCAtMjAzNyw0ICsyMDM4LDI5IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxEaWN0aW9uYXJ5UG9wdXBJ
bmZvPjo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBECiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKK3ZvaWQgQXJndW1lbnRDb2RlcjxFeGNlcHRpb25EZXRhaWxzPjo6ZW5jb2Rl
KElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBFeGNlcHRpb25EZXRhaWxzJiBp
bmZvKQoreworICAgIGVuY29kZXIgPDwgaW5mby5tZXNzYWdlOworICAgIGVuY29kZXIgPDwgaW5m
by5saW5lTnVtYmVyOworICAgIGVuY29kZXIgPDwgaW5mby5jb2x1bW5OdW1iZXI7CisgICAgZW5j
b2RlciA8PCBpbmZvLnNvdXJjZVVSTDsKK30KKworYm9vbCBBcmd1bWVudENvZGVyPEV4Y2VwdGlv
bkRldGFpbHM+OjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEV4Y2VwdGlv
bkRldGFpbHMmIHJlc3VsdCkKK3sKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tZXNz
YWdlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShy
ZXN1bHQubGluZU51bWJlcikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocmVzdWx0LmNvbHVtbk51bWJlcikpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnNvdXJjZVVSTCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQorCiB9IC8vIG5hbWVzcGFjZSBJUEMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
aCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCBj
ODNlOTk4YzRmMWM1YzY0ZWZiNzM2MzYwZjQ0MTY0NjgwMTczNGUyLi40NmU3YzEyMjVkYTFiNjZk
YTFiMTc3ZWUwNmU4MDRiMjkwOGQ0ZGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC03MSw2ICs3MSw3IEBAIHN0cnVjdCBDb21wb3NpdGlv
blVuZGVybGluZTsKIHN0cnVjdCBDb29raWU7CiBzdHJ1Y3QgRGljdGF0aW9uQWx0ZXJuYXRpdmU7
CiBzdHJ1Y3QgRGljdGlvbmFyeVBvcHVwSW5mbzsKK3N0cnVjdCBFeGNlcHRpb25EZXRhaWxzOwog
c3RydWN0IEZpbGVDaG9vc2VyU2V0dGluZ3M7CiBzdHJ1Y3QgTGVuZ3RoOwogc3RydWN0IEdyYW1t
YXJEZXRhaWw7CkBAIC00NTcsNiArNDU4LDExIEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8V2ViQ29yZTo6UmVjZW50U2VhcmNoPiB7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFy
Z3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlJlY2VudFNlYXJjaCYpOwogfTsKIAordGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxzPiB7CisgICAg
c3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkV4Y2Vw
dGlvbkRldGFpbHMmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwg
V2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyYpOworfTsKKwogfSAvLyBuYW1lc3BhY2UgSVBDCiAK
ICNlbmRpZiAvLyBXZWJDb3JlQXJndW1lbnRDb2RlcnNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCAzYjdjODE2MmMwN2U3NDMyNWM1MTYzOGY3YWZlYjQ1
Y2Y2NzBkZjliLi42NDY3NzZjOTUyMzQ4OTc1Y2RhMGFkODE3MDg1MjFhYTJlOThkYzIwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMjE4Myw3ICsyMTgz
LDcgQEAgdm9pZCBXS1BhZ2VTZXRTZXNzaW9uKFdLUGFnZVJlZiBwYWdlUmVmLCBXS1Nlc3Npb25S
ZWYgc2Vzc2lvbikKIAogdm9pZCBXS1BhZ2VSdW5KYXZhU2NyaXB0SW5NYWluRnJhbWUoV0tQYWdl
UmVmIHBhZ2VSZWYsIFdLU3RyaW5nUmVmIHNjcmlwdFJlZiwgdm9pZCogY29udGV4dCwgV0tQYWdl
UnVuSmF2YVNjcmlwdEZ1bmN0aW9uIGNhbGxiYWNrKQogewotICAgIHRvSW1wbChwYWdlUmVmKS0+
cnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKHRvSW1wbChzY3JpcHRSZWYpLT5zdHJpbmcoKSwgW2Nv
bnRleHQsIGNhbGxiYWNrXShBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogcmV0dXJuVmFsdWUs
IGJvb2wsIENhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKKyAgICB0b0ltcGwocGFnZVJlZikt
PnJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZSh0b0ltcGwoc2NyaXB0UmVmKS0+c3RyaW5nKCksIFtj
b250ZXh0LCBjYWxsYmFja10oQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqIHJldHVyblZhbHVl
LCBib29sLCBjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxzJiwgQ2FsbGJhY2tCYXNlOjpF
cnJvciBlcnJvcikgewogICAgICAgICBjYWxsYmFjayh0b0FQSShyZXR1cm5WYWx1ZSksIChlcnJv
ciAhPSBDYWxsYmFja0Jhc2U6OkVycm9yOjpOb25lKSA/IHRvQVBJKEFQSTo6RXJyb3I6OmNyZWF0
ZSgpLnB0cigpKSA6IDAsIGNvbnRleHQpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vycm9yLm1tIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vycm9yLm1tCmluZGV4IDM0ZjYyNDUzYmIwMjc4NWJhZGY2
MjdhZTdmNzU4OTBhNDYyMzUzM2YuLmNhYjZlYjkzOGIwNzExM2VjYTY2NmUzYmM0MjhmYzVkOTk2
ZjViNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tF
cnJvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3Iu
bW0KQEAgLTM1LDcgKzM1LDEyIEBACiBOU1N0cmluZyAqIGNvbnN0IFdLRXJyb3JEb21haW4gPSBA
IldLRXJyb3JEb21haW4iOwogTlNTdHJpbmcgKiBjb25zdCBfV0tMZWdhY3lFcnJvckRvbWFpbiA9
IEAiV2ViS2l0RXJyb3JEb21haW4iOwogCi1zdGF0aWMgTlNTdHJpbmcgKmxvY2FsaXplZERlc2Ny
aXB0aW9uRm9yRXJyb3JDb2RlKFdLRXJyb3JDb2RlIGVycm9yQ29kZSkKK05TU3RyaW5nICogY29u
c3QgX1dLSmF2YVNjcmlwdEV4Y2VwdGlvbk1lc3NhZ2VFcnJvcktleSA9IEAiV0tKYXZhU2NyaXB0
RXhjZXB0aW9uTWVzc2FnZSI7CitOU1N0cmluZyAqIGNvbnN0IF9XS0phdmFTY3JpcHRFeGNlcHRp
b25MaW5lTnVtYmVyRXJyb3JLZXkgPSBAIldLSmF2YVNjcmlwdEV4Y2VwdGlvbkxpbmVOdW1iZXIi
OworTlNTdHJpbmcgKiBjb25zdCBfV0tKYXZhU2NyaXB0RXhjZXB0aW9uQ29sdW1uTnVtYmVyRXJy
b3JLZXkgPSBAIldLSmF2YVNjcmlwdEV4Y2VwdGlvbkNvbHVtbk51bWJlciI7CitOU1N0cmluZyAq
IGNvbnN0IF9XS0phdmFTY3JpcHRFeGNlcHRpb25Tb3VyY2VVUkxFcnJvcktleSA9IEAiV0tKYXZh
U2NyaXB0RXhjZXB0aW9uU291cmNlVVJMIjsKKworTlNTdHJpbmcgKmxvY2FsaXplZERlc2NyaXB0
aW9uRm9yRXJyb3JDb2RlKFdLRXJyb3JDb2RlIGVycm9yQ29kZSkKIHsKICAgICBzd2l0Y2ggKGVy
cm9yQ29kZSkgewogICAgIGNhc2UgV0tFcnJvclVua25vd246CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3JJbnRlcm5hbC5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vycm9ySW50ZXJuYWwuaAppbmRleCA3MTFiOTQ5
NzE3YmIxMWNkOWFjNTAxOWE0ZWQ1NDM1NTk0NjY0YzdhLi4zMzIzN2Q1OThhNzk0MTBjZmI4M2Ex
MmY1MmYzOTNmOGFlNmMyZjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLRXJyb3JJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tFcnJvckludGVybmFsLmgKQEAgLTMxLDUgKzMxLDYgQEAKICNpbXBvcnQg
IkdlbmVyaWNDYWxsYmFjay5oIgogCiBSZXRhaW5QdHI8TlNFcnJvcj4gY3JlYXRlTlNFcnJvcihX
S0Vycm9yQ29kZSk7CitOU1N0cmluZyAqbG9jYWxpemVkRGVzY3JpcHRpb25Gb3JFcnJvckNvZGUo
V0tFcnJvckNvZGUpOwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tFcnJvclByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tFcnJvclByaXZhdGUuaAppbmRleCBhMDM3MTkwZjdlZTcyMzhkZmNmNmJj
OWE4MmFmNjQ2NDE4ZmU0MTk1Li43ZWVjMjZhNDliNDE0NmFiMGU1ZjMyY2M0ZWMyMWE4NDEzZGIz
OGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJy
b3JQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vy
cm9yUHJpdmF0ZS5oCkBAIC0zNCw0ICszNCwyMCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2Vy
LCBfV0tMZWdhY3lFcnJvckNvZGUpIHsKICAgICBfV0tMZWdhY3lFcnJvclBsdWdJbldpbGxIYW5k
bGVMb2FkID0gMjA0LAogfSBXS19FTlVNX0FWQUlMQUJMRSgxMF8xMSwgOF8zKTsKIAorLyohIEBj
b25zdGFudCBfV0tKYXZhU2NyaXB0RXhjZXB0aW9uTWVzc2FnZUVycm9yS2V5IEtleSBpbiB1c2Vy
SW5mbyByZXByZXNlbnRpbmcKKyB0aGUgZXhjZXB0aW9uIG1lc3NhZ2UgKGFzIGFuIE5TU3RyaW5n
KSBmb3IgV0tFcnJvckphdmFTY3JpcHRFeGNlcHRpb25PY2N1cnJlZCBlcnJvcnMuICovCitXS19F
WFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tKYXZhU2NyaXB0RXhjZXB0aW9uTWVzc2FnZUVycm9y
S2V5IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKKworLyohIEBjb25zdGFu
dCBfV0tKYXZhU2NyaXB0RXhjZXB0aW9uTGluZU51bWJlckVycm9yS2V5IEtleSBpbiB1c2VySW5m
byByZXByZXNlbnRpbmcKKyB0aGUgZXhjZXB0aW9uIGxpbmUgbnVtYmVyIChhcyBhbiBOU051bWJl
cikgZm9yIFdLRXJyb3JKYXZhU2NyaXB0RXhjZXB0aW9uT2NjdXJyZWQgZXJyb3JzLiAqLworV0tf
RVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLSmF2YVNjcmlwdEV4Y2VwdGlvbkxpbmVOdW1iZXJF
cnJvcktleSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CisKKy8qISBAY29u
c3RhbnQgX1dLSmF2YVNjcmlwdEV4Y2VwdGlvbkNvbHVtbk51bWJlckVycm9yS2V5IEtleSBpbiB1
c2VySW5mbyByZXByZXNlbnRpbmcKKyB0aGUgZXhjZXB0aW9uIGNvbHVtbiBudW1iZXIgKGFzIGFu
IE5TTnVtYmVyKSBmb3IgV0tFcnJvckphdmFTY3JpcHRFeGNlcHRpb25PY2N1cnJlZCBlcnJvcnMu
ICovCitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tKYXZhU2NyaXB0RXhjZXB0aW9uQ29s
dW1uTnVtYmVyRXJyb3JLZXkgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwor
CisvKiEgQGNvbnN0YW50IF9XS0phdmFTY3JpcHRFeGNlcHRpb25Tb3VyY2VVUkxFcnJvcktleSBL
ZXkgaW4gdXNlckluZm8gcmVwcmVzZW50aW5nCisgdGhlIGV4Y2VwdGlvbiBzb3VyY2UgVVJMIChh
cyBhbiBOU1N0cmluZykgZm9yIFdLRXJyb3JKYXZhU2NyaXB0RXhjZXB0aW9uT2NjdXJyZWQgZXJy
b3JzLiAqLworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLSmF2YVNjcmlwdEV4Y2VwdGlv
blNvdXJjZVVSTEVycm9yS2V5IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsK
KwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tCmluZGV4IDk0NDAxODBmNmM1YWVjOTg2NTBiODExZmJjNmRmMTk0NTU5YjFjNWEuLjg1
ODhhZmM5YzY2ZDk0M2U4YzFlYTFiOGIxMjM5ZDIyYTIxYTZiOWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC04MCw2ICs4MCw3IEBA
CiAjaW1wb3J0ICJfV0tTZXNzaW9uU3RhdGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLVmlzaXRl
ZExpbmtTdG9yZUludGVybmFsLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0lPU3VyZmFjZS5oPgorI2lt
cG9ydCA8V2ViQ29yZS9KU0RPTUJpbmRpbmcuaD4KICNpbXBvcnQgPHd0Zi9IYXNoTWFwLmg+CiAj
aW1wb3J0IDx3dGYvTWF0aEV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+
CkBAIC02MTIsNyArNjEzLDcgQEAgc3RhdGljIFdLRXJyb3JDb2RlIGNhbGxiYWNrRXJyb3JDb2Rl
KFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikKIHsKICAgICBhdXRvIGhhbmRsZXIg
PSBhZG9wdE5TKFtjb21wbGV0aW9uSGFuZGxlciBjb3B5XSk7CiAKLSAgICBfcGFnZS0+cnVuSmF2
YVNjcmlwdEluTWFpbkZyYW1lKGphdmFTY3JpcHRTdHJpbmcsIFtoYW5kbGVyXShBUEk6OlNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZSogc2VyaWFsaXplZFNjcmlwdFZhbHVlLCBib29sIGhhZEV4Y2VwdGlv
biwgV2ViS2l0OjpTY3JpcHRWYWx1ZUNhbGxiYWNrOjpFcnJvciBlcnJvckNvZGUpIHsKKyAgICBf
cGFnZS0+cnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKGphdmFTY3JpcHRTdHJpbmcsIFtoYW5kbGVy
XShBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogc2VyaWFsaXplZFNjcmlwdFZhbHVlLCBib29s
IGhhZEV4Y2VwdGlvbiwgY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyYgZGV0YWlscywg
V2ViS2l0OjpTY3JpcHRWYWx1ZUNhbGxiYWNrOjpFcnJvciBlcnJvckNvZGUpIHsKICAgICAgICAg
aWYgKCFoYW5kbGVyKQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC02MzcsNyArNjM4LDE4IEBA
IHN0YXRpYyBXS0Vycm9yQ29kZSBjYWxsYmFja0Vycm9yQ29kZShXZWJLaXQ6OkNhbGxiYWNrQmFz
ZTo6RXJyb3IgZXJyb3IpCiAgICAgICAgIGF1dG8gcmF3SGFuZGxlciA9ICh2b2lkICheKShpZCwg
TlNFcnJvciAqKSloYW5kbGVyLmdldCgpOwogICAgICAgICBpZiAoaGFkRXhjZXB0aW9uKSB7CiAg
ICAgICAgICAgICBBU1NFUlQoIXNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk7Ci0gICAgICAgICAgICBy
YXdIYW5kbGVyKG5pbCwgY3JlYXRlTlNFcnJvcihXS0Vycm9ySmF2YVNjcmlwdEV4Y2VwdGlvbk9j
Y3VycmVkKS5nZXQoKSk7CisKKyAgICAgICAgICAgIFJldGFpblB0cjxOU011dGFibGVEaWN0aW9u
YXJ5PiB1c2VySW5mbyA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0
XSk7CisKKyAgICAgICAgICAgIFt1c2VySW5mbyBzZXRPYmplY3Q6bG9jYWxpemVkRGVzY3JpcHRp
b25Gb3JFcnJvckNvZGUoV0tFcnJvckphdmFTY3JpcHRFeGNlcHRpb25PY2N1cnJlZCkgZm9yS2V5
Ok5TTG9jYWxpemVkRGVzY3JpcHRpb25LZXldOworICAgICAgICAgICAgW3VzZXJJbmZvIHNldE9i
amVjdDpzdGF0aWNfY2FzdDxOU1N0cmluZyAqPihkZXRhaWxzLm1lc3NhZ2UpIGZvcktleTpfV0tK
YXZhU2NyaXB0RXhjZXB0aW9uTWVzc2FnZUVycm9yS2V5XTsKKyAgICAgICAgICAgIFt1c2VySW5m
byBzZXRPYmplY3Q6QChkZXRhaWxzLmxpbmVOdW1iZXIpIGZvcktleTpfV0tKYXZhU2NyaXB0RXhj
ZXB0aW9uTGluZU51bWJlckVycm9yS2V5XTsKKyAgICAgICAgICAgIFt1c2VySW5mbyBzZXRPYmpl
Y3Q6QChkZXRhaWxzLmNvbHVtbk51bWJlcikgZm9yS2V5Ol9XS0phdmFTY3JpcHRFeGNlcHRpb25D
b2x1bW5OdW1iZXJFcnJvcktleV07CisKKyAgICAgICAgICAgIGlmICghZGV0YWlscy5zb3VyY2VV
UkwuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIFt1c2VySW5mbyBzZXRPYmplY3Q6c3RhdGlj
X2Nhc3Q8TlNTdHJpbmcgKj4oZGV0YWlscy5zb3VyY2VVUkwpIGZvcktleTpfV0tKYXZhU2NyaXB0
RXhjZXB0aW9uU291cmNlVVJMRXJyb3JLZXldOworCisgICAgICAgICAgICByYXdIYW5kbGVyKG5p
bCwgYWRvcHROUyhbW05TRXJyb3IgYWxsb2NdIGluaXRXaXRoRG9tYWluOldLRXJyb3JEb21haW4g
Y29kZTpXS0Vycm9ySmF2YVNjcmlwdEV4Y2VwdGlvbk9jY3VycmVkIHVzZXJJbmZvOnVzZXJJbmZv
LmdldCgpXSkuZ2V0KCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYTZhYzM1ZTExODE2MmM0
ODJlMjU5MTE2MjM2MjkyM2UzODY4NzA0Yi4uYTMwZWFhNjdlYTE2MmFjMWIwYTIxNzUwNzI4MGU0
NGIyZjI2NjM2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
QEAgLTExMCw2ICsxMTAsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ0RhdGEuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRm9jdXNEaXJlY3Rp
b24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0pTRE9NQmluZGluZy5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvTUlNRVR5cGVSZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyRW1iZWRkZWRP
YmplY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwLmg+CkBA
IC0yNTg3LDEwICsyNTg4LDEwIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb3VudFN0cmluZ01hdGNo
ZXMoY29uc3QgU3RyaW5nJiBzdHJpbmcsIEZpbmRPcHRpb25zIG9wdGlvbnMsCiAgICAgbV9wcm9j
ZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpDb3VudFN0cmluZ01hdGNoZXMoc3RyaW5nLCBv
cHRpb25zLCBtYXhNYXRjaENvdW50KSwgbV9wYWdlSUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94
eTo6cnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKGNvbnN0IFN0cmluZyYgc2NyaXB0LCBzdGQ6OmZ1
bmN0aW9uPHZvaWQgKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKiwgYm9vbCBoYWRFeGNlcHRp
b24sIENhbGxiYWNrQmFzZTo6RXJyb3IpPiBjYWxsYmFja0Z1bmN0aW9uKQordm9pZCBXZWJQYWdl
UHJveHk6OnJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZShjb25zdCBTdHJpbmcmIHNjcmlwdCwgc3Rk
OjpmdW5jdGlvbjx2b2lkIChBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSosIGJvb2wgaGFkRXhj
ZXB0aW9uLCBjb25zdCBFeGNlcHRpb25EZXRhaWxzJiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+IGNh
bGxiYWNrRnVuY3Rpb24pCiB7CiAgICAgaWYgKCFpc1ZhbGlkKCkpIHsKLSAgICAgICAgY2FsbGJh
Y2tGdW5jdGlvbihudWxscHRyLCBmYWxzZSwgQ2FsbGJhY2tCYXNlOjpFcnJvcjo6VW5rbm93bik7
CisgICAgICAgIGNhbGxiYWNrRnVuY3Rpb24obnVsbHB0ciwgZmFsc2UsIEV4Y2VwdGlvbkRldGFp
bHMoKSwgQ2FsbGJhY2tCYXNlOjpFcnJvcjo6VW5rbm93bik7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKQEAgLTQ2ODEsNyArNDY4Miw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzdHJpbmdDYWxs
YmFjayhjb25zdCBTdHJpbmcmIHJlc3VsdFN0cmluZywgdWludDY0X3QgY2FsbGJhY2tJCiAgICAg
Y2FsbGJhY2stPnBlcmZvcm1DYWxsYmFja1dpdGhSZXR1cm5WYWx1ZShyZXN1bHRTdHJpbmcuaW1w
bCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnNjcmlwdFZhbHVlQ2FsbGJhY2soY29uc3Qg
SVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhUmVmZXJlbmNlLCBib29sIGhhZEV4Y2VwdGlvbiwgdWlu
dDY0X3QgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpzY3JpcHRWYWx1ZUNhbGxiYWNr
KGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YVJlZmVyZW5jZSwgYm9vbCBoYWRFeGNlcHRp
b24sIGNvbnN0IEV4Y2VwdGlvbkRldGFpbHMmIGRldGFpbHMsIHVpbnQ2NF90IGNhbGxiYWNrSUQp
CiB7CiAgICAgYXV0byBjYWxsYmFjayA9IG1fY2FsbGJhY2tzLnRha2U8U2NyaXB0VmFsdWVDYWxs
YmFjaz4oY2FsbGJhY2tJRCk7CiAgICAgaWYgKCFjYWxsYmFjaykgewpAQCAtNDY5Myw3ICs0Njk0
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNjcmlwdFZhbHVlQ2FsbGJhY2soY29uc3QgSVBDOjpE
YXRhUmVmZXJlbmNlJiBkYXRhUmVmZXJlbmNlLAogICAgIGRhdGEucmVzZXJ2ZUluaXRpYWxDYXBh
Y2l0eShkYXRhUmVmZXJlbmNlLnNpemUoKSk7CiAgICAgZGF0YS5hcHBlbmQoZGF0YVJlZmVyZW5j
ZS5kYXRhKCksIGRhdGFSZWZlcmVuY2Uuc2l6ZSgpKTsKIAotICAgIGNhbGxiYWNrLT5wZXJmb3Jt
Q2FsbGJhY2tXaXRoUmV0dXJuVmFsdWUoZGF0YS5zaXplKCkgPyBBUEk6OlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZTo6YWRvcHQoZGF0YSkucHRyKCkgOiBudWxscHRyLCBoYWRFeGNlcHRpb24pOworICAg
IGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2tXaXRoUmV0dXJuVmFsdWUoZGF0YS5zaXplKCkgPyBB
UEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6YWRvcHQoZGF0YSkucHRyKCkgOiBudWxscHRyLCBo
YWRFeGNlcHRpb24sIGRldGFpbHMpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6Y29tcHV0ZWRQ
YWdlc0NhbGxiYWNrKGNvbnN0IFZlY3RvcjxJbnRSZWN0PiYgcGFnZVJlY3RzLCBkb3VibGUgdG90
YWxTY2FsZUZhY3RvckZvclByaW50aW5nLCB1aW50NjRfdCBjYWxsYmFja0lEKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGQyMDAyODNiN2I5NTMwYTYxZTI1MDI4
NDdjM2JjN2JjMmQyNGQ0YmYuLjZiYWEzMmQyODFjNzdmOTI3YTFmNDNiNjIxMjBjZTM3ZmI3MWM0
YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE1Nyw2ICsx
NTcsNyBAQCBjbGFzcyBSdW5Mb29wT2JzZXJ2ZXI7CiBjbGFzcyBTaGFyZWRCdWZmZXI7CiBjbGFz
cyBUZXh0SW5kaWNhdG9yOwogc3RydWN0IERpY3Rpb25hcnlQb3B1cEluZm87CitzdHJ1Y3QgRXhj
ZXB0aW9uRGV0YWlsczsKIHN0cnVjdCBGaWxlQ2hvb3NlclNldHRpbmdzOwogc3RydWN0IFNlY3Vy
aXR5T3JpZ2luRGF0YTsKIHN0cnVjdCBUZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2U7CkBAIC0yMjIs
NyArMjIzLDcgQEAgY2xhc3MgUXVpY2tMb29rRG9jdW1lbnREYXRhOwogdHlwZWRlZiBHZW5lcmlj
Q2FsbGJhY2s8dWludDY0X3Q+IFVuc2lnbmVkQ2FsbGJhY2s7CiB0eXBlZGVmIEdlbmVyaWNDYWxs
YmFjazxFZGl0aW5nUmFuZ2U+IEVkaXRpbmdSYW5nZUNhbGxiYWNrOwogdHlwZWRlZiBHZW5lcmlj
Q2FsbGJhY2s8Y29uc3QgU3RyaW5nJj4gU3RyaW5nQ2FsbGJhY2s7Ci10eXBlZGVmIEdlbmVyaWND
YWxsYmFjazxBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSosIGJvb2w+IFNjcmlwdFZhbHVlQ2Fs
bGJhY2s7Cit0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSosIGJvb2wsIGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRldGFpbHMmPiBTY3JpcHRWYWx1ZUNh
bGxiYWNrOwogCiAjaWYgUExBVEZPUk0oR1RLKQogdHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8QVBJ
OjpFcnJvcio+IFByaW50RmluaXNoZWRDYWxsYmFjazsKQEAgLTc2Miw3ICs3NjMsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBnZXRTZWxlY3Rpb25Bc1dlYkFyY2hpdmVEYXRhKHN0ZDo6ZnVuY3Rpb248
dm9pZCAoQVBJOjpEYXRhKiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+KTsKICAgICB2b2lkIGdldFNv
dXJjZUZvckZyYW1lKFdlYkZyYW1lUHJveHkqLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKGNvbnN0IFN0
cmluZyYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPik7CiAgICAgdm9pZCBnZXRXZWJBcmNoaXZlT2ZG
cmFtZShXZWJGcmFtZVByb3h5Kiwgc3RkOjpmdW5jdGlvbjx2b2lkIChBUEk6OkRhdGEqLCBDYWxs
YmFja0Jhc2U6OkVycm9yKT4pOwotICAgIHZvaWQgcnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKGNv
bnN0IFN0cmluZyYsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFs
dWUqLCBib29sIGhhZEV4Y2VwdGlvbiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+IGNhbGxiYWNrRnVu
Y3Rpb24pOworICAgIHZvaWQgcnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKGNvbnN0IFN0cmluZyYs
IHN0ZDo6ZnVuY3Rpb248dm9pZCAoQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqLCBib29sIGhh
ZEV4Y2VwdGlvbiwgY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyYsIENhbGxiYWNrQmFz
ZTo6RXJyb3IpPiBjYWxsYmFja0Z1bmN0aW9uKTsKICAgICB2b2lkIGZvcmNlUmVwYWludChQYXNz
UmVmUHRyPFZvaWRDYWxsYmFjaz4pOwogCiAgICAgZmxvYXQgaGVhZGVySGVpZ2h0KFdlYkZyYW1l
UHJveHkqKTsKQEAgLTEzMjMsNyArMTMyNCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkYXRhQ2Fs
bGJhY2soY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgdWludDY0X3QpOwogICAgIHZvaWQgaW1h
Z2VDYWxsYmFjayhjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYsIHVpbnQ2NF90KTsKICAg
ICB2b2lkIHN0cmluZ0NhbGxiYWNrKGNvbnN0IFN0cmluZyYsIHVpbnQ2NF90KTsKLSAgICB2b2lk
IHNjcmlwdFZhbHVlQ2FsbGJhY2soY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgYm9vbCBoYWRF
eGNlcHRpb24sIHVpbnQ2NF90KTsKKyAgICB2b2lkIHNjcmlwdFZhbHVlQ2FsbGJhY2soY29uc3Qg
SVBDOjpEYXRhUmVmZXJlbmNlJiwgYm9vbCBoYWRFeGNlcHRpb24sIGNvbnN0IFdlYkNvcmU6OkV4
Y2VwdGlvbkRldGFpbHMmLCB1aW50NjRfdCk7CiAgICAgdm9pZCBjb21wdXRlZFBhZ2VzQ2FsbGJh
Y2soY29uc3QgVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+JiwgZG91YmxlIHRvdGFsU2NhbGVGYWN0
b3JGb3JQcmludGluZywgdWludDY0X3QpOwogICAgIHZvaWQgdmFsaWRhdGVDb21tYW5kQ2FsbGJh
Y2soY29uc3QgU3RyaW5nJiwgYm9vbCwgaW50LCB1aW50NjRfdCk7CiAgICAgdm9pZCB1bnNpZ25l
ZENhbGxiYWNrKHVpbnQ2NF90LCB1aW50NjRfdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA1ZjZiNWUzMjViMzAzMjlmODky
ZGM4YWQ4MDRkNjBhODIxOGEzNzQ1Li5lMmIyYzdkMTFlYmFlMWJjNWRiNWFmOWIyMWI5YWRiN2Q2
N2NkMjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW4KQEAgLTE1OSw3ICsxNTksNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkg
ewogICAgIERhdGFDYWxsYmFjayhJUEM6OkRhdGFSZWZlcmVuY2UgcmVzdWx0RGF0YSwgdWludDY0
X3QgY2FsbGJhY2tJRCkKICAgICBJbWFnZUNhbGxiYWNrKFdlYktpdDo6U2hhcmVhYmxlQml0bWFw
OjpIYW5kbGUgYml0bWFwSGFuZGxlLCB1aW50NjRfdCBjYWxsYmFja0lEKQogICAgIFN0cmluZ0Nh
bGxiYWNrKFN0cmluZyByZXN1bHRTdHJpbmcsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCi0gICAgU2Ny
aXB0VmFsdWVDYWxsYmFjayhJUEM6OkRhdGFSZWZlcmVuY2UgcmVzdWx0RGF0YSwgYm9vbCBoYWRF
eGNlcHRpb24sIHVpbnQ2NF90IGNhbGxiYWNrSUQpCisgICAgU2NyaXB0VmFsdWVDYWxsYmFjayhJ
UEM6OkRhdGFSZWZlcmVuY2UgcmVzdWx0RGF0YSwgYm9vbCBoYWRFeGNlcHRpb24sIHN0cnVjdCBX
ZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxzIGRldGFpbHMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAg
ICAgQ29tcHV0ZWRQYWdlc0NhbGxiYWNrKFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0PiBwYWdlUmVj
dHMsIGRvdWJsZSB0b3RhbFNjYWxlRmFjdG9yRm9yUHJpbnRpbmcsIHVpbnQ2NF90IGNhbGxiYWNr
SUQpCiAgICAgVmFsaWRhdGVDb21tYW5kQ2FsbGJhY2soU3RyaW5nIGNvbW1hbmQsIGJvb2wgaXNF
bmFibGVkLCBpbnQzMl90IHN0YXRlLCB1aW50NjRfdCBjYWxsYmFja0lEKQogICAgIEVkaXRpbmdS
YW5nZUNhbGxiYWNrKHN0cnVjdCBXZWJLaXQ6OkVkaXRpbmdSYW5nZSByYW5nZSwgdWludDY0X3Qg
Y2FsbGJhY2tJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAppbmRleCAxNWRlNjFkMGZhN2YyZjExY2I1Nzk1N2IyNGNhNThmZGYwOGFiOGJlLi5jZTlm
YzgyZmVmMWYxNzdhOGE2YjZkMjQ1NzVkYWViMjdlMDcyZjE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0yNTA1LDcgKzI1MDUsOCBAQCB2
b2lkIFdlYlBhZ2U6OnJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZShjb25zdCBTdHJpbmcmIHNjcmlw
dCwgdWludDY0X3QgY2FsbGJhY2tJRAogICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IHNlcmlhbGl6ZWRSZXN1bHRWYWx1ZTsKICAgICBKU0xvY2tIb2xkZXIgbG9jayhKU0RPTVdpbmRv
dzo6Y29tbW9uVk0oKSk7CiAgICAgYm9vbCBoYWRFeGNlcHRpb24gPSB0cnVlOwotICAgIGlmIChK
U1ZhbHVlIHJlc3VsdFZhbHVlID0gbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLT5zY3JpcHQoKS5l
eGVjdXRlU2NyaXB0KHNjcmlwdCwgdHJ1ZSkuanNWYWx1ZSgpKSB7CisgICAgRXhjZXB0aW9uRGV0
YWlscyBkZXRhaWxzOworICAgIGlmIChKU1ZhbHVlIHJlc3VsdFZhbHVlID0gbV9tYWluRnJhbWUt
PmNvcmVGcmFtZSgpLT5zY3JpcHQoKS5leGVjdXRlU2NyaXB0KHNjcmlwdCwgdHJ1ZSwgJmRldGFp
bHMpLmpzVmFsdWUoKSkgewogICAgICAgICBoYWRFeGNlcHRpb24gPSBmYWxzZTsKICAgICAgICAg
c2VyaWFsaXplZFJlc3VsdFZhbHVlID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUobV9t
YWluRnJhbWUtPmpzQ29udGV4dCgpLAogICAgICAgICAgICAgdG9SZWYobV9tYWluRnJhbWUtPmNv
cmVGcmFtZSgpLT5zY3JpcHQoKS5nbG9iYWxPYmplY3QobWFpblRocmVhZE5vcm1hbFdvcmxkKCkp
LT5nbG9iYWxFeGVjKCksIHJlc3VsdFZhbHVlKSwgbnVsbHB0cik7CkBAIC0yNTE0LDcgKzI1MTUs
NyBAQCB2b2lkIFdlYlBhZ2U6OnJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZShjb25zdCBTdHJpbmcm
IHNjcmlwdCwgdWludDY0X3QgY2FsbGJhY2tJRAogICAgIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRh
UmVmZXJlbmNlOwogICAgIGlmIChzZXJpYWxpemVkUmVzdWx0VmFsdWUpCiAgICAgICAgIGRhdGFS
ZWZlcmVuY2UgPSBzZXJpYWxpemVkUmVzdWx0VmFsdWUtPmRhdGEoKTsKLSAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OlNjcmlwdFZhbHVlQ2FsbGJhY2soZGF0YVJlZmVyZW5jZSwgaGFk
RXhjZXB0aW9uLCBjYWxsYmFja0lEKSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpTY3JpcHRWYWx1ZUNhbGxiYWNrKGRhdGFSZWZlcmVuY2UsIGhhZEV4Y2VwdGlvbiwgZGV0YWls
cywgY2FsbGJhY2tJRCkpOwogfQogCiB2b2lkIFdlYlBhZ2U6OmdldENvbnRlbnRzQXNTdHJpbmco
dWludDY0X3QgY2FsbGJhY2tJRCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCA1OWI3YjkwNWQwMDg4YTBjNzNlNWY1ZDg3NmIwNGU4ZjZkOTRiNGY2
Li5mMDFhMjhlMzIwMGVjY2MzNGJhNDEyZmJlZmMyMDIyYmY5NzVmYjJmIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MTUtMTAtMjMgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgRXhwb3NlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGV4Y2VwdGlvbiBpbiBXS0Vycm9y
SmF2YVNjcmlwdEV4Y2VwdGlvbk9jY3VycmVkIGVycm9ycworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwNTI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFTY3JpcHQubW06CisgICAgICAgIChU
RVNUKToKKyAgICAgICAgVGVzdCB0aGUgdmFyaW91cyBuZXcga2V5cy4KKwogMjAxNS0xMC0yMyAg
UGVyIEFybmUgVm9sbGFuICA8cGVhdm9Ab3V0bG9vay5jb20+CiAKICAgICAgICAgW1dpbkNhaXJv
XSBJbXByb3ZlIHRlc3QgcmVzdWx0cyBmb3IgZmFzdCBsYXlvdXR0ZXN0cy4KZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggNThiMzJjOWJkNmVmOWRiNjVmYjhmMWZjZTRiNTFiMGY0ZmVkODdjZi4u
MDQ2MmE4Y2I0NDM4MGFiM2YzMTZiOTk2MmEwM2UyZmZhMTFlYWZmZSAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTM1LDcgKzM1LDcgQEAKIAkJMjk3MjM0QjcxNzNBRkFDNzAwOTgzNjAxIC8q
IEN1c3RvbVByb3RvY29sc0ludmFsaWRTY2hlbWVfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5NzIzNEI1MTczQUZBQzcwMDk4MzYwMSAv
KiBDdXN0b21Qcm90b2NvbHNJbnZhbGlkU2NoZW1lX0J1bmRsZS5jcHAgKi87IH07CiAJCTJEMUZF
MEIwMUFENDY1QzEwMDZDRDlFNiAvKiBGaXhlZExheW91dFNpemUubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDFGRTBBRjFBRDQ2NUMxMDA2Q0Q5RTYg
LyogRml4ZWRMYXlvdXRTaXplLm1tICovOyB9OwogCQkyRDlBNTNBRjFCMzFGQThEMDA3NEQ1QUEg
LyogU2hyaW5rVG9GaXQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyRDlBNTNBRTFCMzFGQThEMDA3NEQ1QUEgLyogU2hyaW5rVG9GaXQubW0gKi87IH07
Ci0JCTJERDM1NTM2MUJEMDgzNzgwMDVERjRBNyAvKiBBdXRvTGF5b3V0SW50ZWdyYXRpb24ubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREQzNTUzNTFC
RDA4Mzc4MDA1REY0QTcgLyogQXV0b0xheW91dEludGVncmF0aW9uLm1tICovOyBzZXR0aW5ncyA9
IHtBU1NFVF9UQUdTID0gKCk7IH07IH07CisJCTJERDM1NTM2MUJEMDgzNzgwMDVERjRBNyAvKiBB
dXRvTGF5b3V0SW50ZWdyYXRpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyREQzNTUzNTFCRDA4Mzc4MDA1REY0QTcgLyogQXV0b0xheW91dEludGVn
cmF0aW9uLm1tICovOyB9OwogCQkyREQ3RDNBRjE3ODIyN0IzMDAyNkUxRTMgLyogbG90cy1vZi10
ZXh0LXZlcnRpY2FsLWxyLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkREN0QzQUUxNzgyMjdBQzAwMjZFMUUzIC8qIGxvdHMtb2YtdGV4
dC12ZXJ0aWNhbC1sci5odG1sICovOyB9OwogCQkyRTc3NjVDRDE2QzREODBBMDBCQTJCQjEgLyog
bWFpbklPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJFNzc2NUNDMTZDNEQ4MEEwMEJBMkJCMSAvKiBtYWluSU9TLm1tICovOyB9OwogCQkyRTc3NjVD
RjE2QzREODExMDBCQTJCQjEgLyogbWFpbk1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNzc2NUNFMTZDNEQ4MTEwMEJBMkJCMSAvKiBtYWluTWFj
Lm1tICovOyB9OwpAQCAtMjY1LDcgKzI2NSw3IEBACiAJCTkzRjdFODZGMTREQzhFNUMwMEM4NEE5
OSAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXNfQnVuZGxlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjdFODZFMTREQzhF
NUIwMEM4NEE5OSAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXNfQnVuZGxl
LmNwcCAqLzsgfTsKIAkJOUIyNkZDQ0ExNTlEMTZERTAwQ0MzNzY1IC8qIEhUTUxGb3JtQ29sbGVj
dGlvbk5hbWVkSXRlbS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDlCMjZGQ0I0MTU5RDE1RTcwMENDMzc2NSAvKiBIVE1MRm9ybUNvbGxl
Y3Rpb25OYW1lZEl0ZW0uaHRtbCAqLzsgfTsKIAkJOUI0RjhGQTcxNTlENTJERDAwMkQ5Rjk0IC8q
IEhUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI0RjhGQTYxNTlENTJDQTAwMkQ5Rjk0IC8qIEhU
TUxDb2xsZWN0aW9uTmFtZWRJdGVtLmh0bWwgKi87IH07Ci0JCTlCNzkxNjUwMUJEODlEMEQwMEQ1
MEI4RiAvKiBGaXJzdFJlc3BvbmRlclNjcm9sbGluZ1Bvc2l0aW9uLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI3OTE2NEYxQkQ4OUQwRDAwRDUwQjhG
IC8qIEZpcnN0UmVzcG9uZGVyU2Nyb2xsaW5nUG9zaXRpb24ubW0gKi87IHNldHRpbmdzID0ge0FT
U0VUX1RBR1MgPSAoKTsgfTsgfTsKKwkJOUI3OTE2NTAxQkQ4OUQwRDAwRDUwQjhGIC8qIEZpcnN0
UmVzcG9uZGVyU2Nyb2xsaW5nUG9zaXRpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5Qjc5MTY0RjFCRDg5RDBEMDBENTBCOEYgLyogRmlyc3RSZXNw
b25kZXJTY3JvbGxpbmdQb3NpdGlvbi5tbSAqLzsgfTsKIAkJQTEzRUJCQUExQjg3NDI4RDAwMDk3
MTEwIC8qIFdlYlByb2Nlc3NQbHVnSW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBMTNFQkJBOTFCODc0MjhEMDAwOTcxMTAgLyogV2ViUHJvY2Vzc1Bs
dWdJbi5tbSAqLzsgfTsKIAkJQTEzRUJCQUIxQjg3NDM0NjAwMDk3MTEwIC8qIFBsYXRmb3JtVXRp
bGl0aWVzQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjEzOUU3MjFBNDIzQTJCMDBGNTkwRjUgLyogUGxhdGZvcm1VdGlsaXRpZXNDb2NvYS5t
bSAqLzsgfTsKIAkJQTEzRUJCQjAxQjg3NDM2RjAwMDk3MTEwIC8qIEJ1bmRsZVBhcmFtZXRlcnNQ
bHVnSW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
MTNFQkJBRTFCODc0MzZGMDAwOTcxMTAgLyogQnVuZGxlUGFyYW1ldGVyc1BsdWdJbi5tbSAqLzsg
fTsKQEAgLTI3NCw3ICsyNzQsNyBAQAogCQlBMTRGQzU4ODFCODk5MUJGMDBEMTA3RUIgLyogQ29u
dGVudEZpbHRlcmluZy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEExNEZDNTg2MUI4OTkxQjYwMEQxMDdFQiAvKiBDb250ZW50RmlsdGVyaW5nLm1tICov
OyB9OwogCQlBMTRGQzU4QjFCODk5MjcxMDBEMTA3RUIgLyogQ29udGVudEZpbHRlcmluZ1BsdWdJ
bi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExNEZD
NTg5MUI4OTkyNzEwMEQxMDdFQiAvKiBDb250ZW50RmlsdGVyaW5nUGx1Z0luLm1tICovOyB9Owog
CQlBMTRGQzU5MDFCOEFFMzZGMDBEMTA3RUIgLyogVGVzdFByb3RvY29sLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE0RkM1OEUxQjhBRTM2NTAwRDEw
N0VCIC8qIFRlc3RQcm90b2NvbC5tbSAqLzsgfTsKLQkJQTFDNEZCNkUxQkFDQ0U1MDAwMzc0MkQw
IC8qIFF1aWNrTG9vay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEExQzRGQjZDMUJBQ0NFNTAwMDM3NDJEMCAvKiBRdWlja0xvb2subW0gKi87IHNldHRp
bmdzID0ge0FTU0VUX1RBR1MgPSAoKTsgfTsgfTsKKwkJQTFDNEZCNkUxQkFDQ0U1MDAwMzc0MkQw
IC8qIFF1aWNrTG9vay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEExQzRGQjZDMUJBQ0NFNTAwMDM3NDJEMCAvKiBRdWlja0xvb2subW0gKi87IH07CiAJ
CUExQzRGQjczMUJBQ0QxQ0EwMDM3NDJEMCAvKiBwYWdlcy5wYWdlcyBpbiBDb3B5IFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUM0RkI3MjFCQUNEMUI3MDAz
NzQyRDAgLyogcGFnZXMucGFnZXMgKi87IH07CiAJCUE1N0EzNEYyMTZBRjZCMkIwMEMyNTAxRiAv
KiBQYWdlVmlzaWJpbGl0eVN0YXRlV2l0aFdpbmRvd0NoYW5nZXMuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTdBMzRGMTE2QUY2OUUy
MDBDMjUwMUYgLyogUGFnZVZpc2liaWxpdHlTdGF0ZVdpdGhXaW5kb3dDaGFuZ2VzLmh0bWwgKi87
IH07CiAJCUE1RTIwMjc1MTVCMjFGNkUwMEMxM0UxNCAvKiBXaW5kb3dsZXNzV2ViVmlld1dpdGhN
ZWRpYS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE1RTIwMjcwMTVCMjE4MDYwMEMxM0UxNCAvKiBXaW5kb3dsZXNzV2ViVmlld1dpdGhN
ZWRpYS5odG1sICovOyB9OwpAQCAtNDQ1LDcgKzQ0NSw3IEBACiAJCTAwQ0Q5RjYyMTVCRTMxMkMw
MDJEQTJDRSAvKiBCYWNrRm9yd2FyZExpc3QubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBCYWNrRm9yd2FyZExpc3QubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTBCQ0Q4MzM0MTQ4NTdDRTQwMEVBMjAwMyAvKiBIYXNoTWFwLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhhc2hNYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwQkNEODU2OTE0ODVDOThCMDBFQTIwMDMgLyogVGVtcG9yYXJ5Q2hhbmdl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRlbXBvcmFyeUNoYW5n
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGMTM5RTcyMUE0MjNBMkIwMEY1
OTBGNSAvKiBQbGF0Zm9ybVV0aWxpdGllc0NvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBuYW1lID0gUGxhdGZvcm1VdGlsaXRpZXNDb2NvYS5tbTsgcGF0aCA9IGNvY29h
L1BsYXRmb3JtVXRpbGl0aWVzQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTBGMTM5RTcyMUE0MjNBMkIwMEY1OTBGNSAvKiBQbGF0Zm9ybVV0aWxpdGllc0NvY29hLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gUGxhdGZvcm1VdGlsaXRpZXND
b2NvYS5tbTsgcGF0aCA9IC4uLy4uL2NvY29hL1BsYXRmb3JtVXRpbGl0aWVzQ29jb2EubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMTM5RTc1MUE0MjNBNTMwMEY1OTBGNSAvKiBX
ZWFrT2JqQ1B0ci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdl
YWtPYmpDUHRyLm1tOyBwYXRoID0gY29jb2EvV2Vha09iakNQdHIubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGMTdCQkQ0MTVBRjZDNEQwMDdBQjc1MyAvKiBXZWJDb3JlU3RhdGlz
dGljc1dpdGhOb1dlYlByb2Nlc3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV2ViQ29yZVN0YXRpc3RpY3NXaXRoTm9XZWJQcm9jZXNzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEYzQjk0QTUxQTc3MjY2QzAwREUzMjcyIC8qIFdLV2ViVmlld0V2
YWx1YXRlSmF2YVNjcmlwdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFdLV2ViVmlld0V2YWx1YXRlSmF2YVNjcmlwdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTY0NiwxMiArNjQ2LDEyIEBACiAJCUExM0VCQkE5MUI4NzQyOEQwMDA5NzExMCAv
KiBXZWJQcm9jZXNzUGx1Z0luLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gV2ViUHJvY2Vzc1BsdWdJbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTEzRUJCQUMxQjg3NDM2RjAwMDk3MTEwIC8qIEJ1bmRsZVBhcmFtZXRlcnMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBCdW5kbGVQYXJhbWV0ZXJzLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTNFQkJBRTFCODc0MzZGMDAwOTcxMTAgLyogQnVu
ZGxlUGFyYW1ldGVyc1BsdWdJbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IEJ1bmRsZVBhcmFtZXRlcnNQbHVnSW4ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUExNEZDNTgzMUI4OTczOTEwMEQxMDdFQiAvKiBXS1dlYlZpZXdDb25maWd1cmF0aW9u
RXh0cmFzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJW
aWV3Q29uZmlndXJhdGlvbkV4dHJhcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
QTE0RkM1ODQxQjg5NzM5MTAwRDEwN0VCIC8qIFdLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJWaWV3Q29uZmlndXJhdGlv
bkV4dHJhcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTRGQzU4MzFCODk3Mzkx
MDBEMTA3RUIgLyogV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMu
bW07IHBhdGggPSAuLi8uLi9XS1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlBMTRGQzU4NDFCODk3MzkxMDBEMTA3RUIgLyogV0tXZWJW
aWV3Q29uZmlndXJhdGlvbkV4dHJhcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBXS1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLmg7IHBhdGggPSAuLi8uLi9XS1dlYlZpZXdD
b25maWd1cmF0aW9uRXh0cmFzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExNEZD
NTg2MUI4OTkxQjYwMEQxMDdFQiAvKiBDb250ZW50RmlsdGVyaW5nLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ29udGVudEZpbHRlcmluZy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTE0RkM1ODkxQjg5OTI3MTAwRDEwN0VCIC8qIENvbnRlbnRG
aWx0ZXJpbmdQbHVnSW4ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBDb250ZW50RmlsdGVyaW5nUGx1Z0luLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlBMTRGQzU4RDFCOEFFMzY1MDBEMTA3RUIgLyogVGVzdFByb3RvY29sLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFRlc3RQcm90b2NvbC5oOyBwYXRoID0gY29jb2EvVGVzdFBy
b3RvY29sLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUExNEZDNThFMUI4QUUzNjUw
MEQxMDdFQiAvKiBUZXN0UHJvdG9jb2wubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IG5hbWUgPSBUZXN0UHJvdG9jb2wubW07IHBhdGggPSBjb2NvYS9UZXN0UHJvdG9jb2wubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExNEZDNThEMUI4QUUzNjUwMEQxMDdFQiAv
KiBUZXN0UHJvdG9jb2wuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVGVzdFBy
b3RvY29sLmg7IHBhdGggPSAuLi8uLi9jb2NvYS9UZXN0UHJvdG9jb2wuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQTE0RkM1OEUxQjhBRTM2NTAwRDEwN0VCIC8qIFRlc3RQcm90b2Nv
bC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFRlc3RQcm90b2Nv
bC5tbTsgcGF0aCA9IC4uLy4uL2NvY29hL1Rlc3RQcm90b2NvbC5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTFBNEZFNUQxOEREM0RCNzAwQjVFQThBIC8qIERvd25sb2FkLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRG93bmxvYWQubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExQzRGQjZDMUJBQ0NFNTAwMDM3NDJEMCAvKiBRdWlj
a0xvb2subW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBRdWlja0xv
b2subW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExQzRGQjcyMUJBQ0QxQjcwMDM3
NDJEMCAvKiBwYWdlcy5wYWdlcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IGZpbGU7IG5hbWUgPSBwYWdlcy5wYWdlczsgcGF0aCA9IGlvcy9wYWdlcy5w
YWdlczsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwpAQCAtODM2LDcgKzgzNiw2IEBACiAJ
CQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTQ0QTgyRTdCMTkyNTFCMzUw
MEMxQzhDNCAvKiBDb2NvYSAqLywKLQkJCQkwRjEzOUU3MTFBNDIzQTFEMDBGNTkwRjUgLyogY29j
b2EgKi8sCiAJCQkJQkM1NzU5NDQxMjZFNzMzQzAwNkYwRjEyIC8qIEluamVjdGVkQnVuZGxlICov
LAogCQkJCTJFOTY2MERDMTZDMDdEN0IwMDM3MUI0MiAvKiBpb3MgKi8sCiAJCQkJQkNBNjFDM0Ex
MTcwMEI5NDAwNDYwRDFFIC8qIG1hYyAqLywKQEAgLTg2OCwxOSArODY3LDYgQEAKIAkJCW5hbWUg
PSAiRXh0ZXJuYWwgRnJhbWV3b3JrcyBhbmQgTGlicmFyaWVzIjsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CiAJCX07Ci0JCTBGMTM5RTcxMUE0MjNBMUQwMEY1OTBGNSAvKiBjb2NvYSAqLyA9
IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJQTEzRUJCNDQxQjg3
MzMyQjAwMDk3MTEwIC8qIFdlYlByb2Nlc3NQbHVnSW4gKi8sCi0JCQkJMEYxMzlFNzIxQTQyM0Ey
QjAwRjU5MEY1IC8qIFBsYXRmb3JtVXRpbGl0aWVzQ29jb2EubW0gKi8sCi0JCQkJQTE0RkM1OEQx
QjhBRTM2NTAwRDEwN0VCIC8qIFRlc3RQcm90b2NvbC5oICovLAotCQkJCUExNEZDNThFMUI4QUUz
NjUwMEQxMDdFQiAvKiBUZXN0UHJvdG9jb2wubW0gKi8sCi0JCQkJQTE0RkM1ODQxQjg5NzM5MTAw
RDEwN0VCIC8qIFdLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMuaCAqLywKLQkJCQlBMTRGQzU4
MzFCODk3MzkxMDBEMTA3RUIgLyogV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5tbSAqLywK
LQkJCSk7Ci0JCQluYW1lID0gY29jb2E7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9
OwogCQkwRjEzOUU3NDFBNDIzQTQ2MDBGNTkwRjUgLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtOTU3LDYgKzk0MywxMiBAQAogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQk5M0E3RUIzQzE4RkE2M0E0MDA5RTc2NzAg
LyogVVJMRXh0cmFzLm1tICovLAorCQkJCUExM0VCQjQ0MUI4NzMzMkIwMDA5NzExMCAvKiBXZWJQ
cm9jZXNzUGx1Z0luICovLAorCQkJCTBGMTM5RTcyMUE0MjNBMkIwMEY1OTBGNSAvKiBQbGF0Zm9y
bVV0aWxpdGllc0NvY29hLm1tICovLAorCQkJCUExNEZDNThEMUI4QUUzNjUwMEQxMDdFQiAvKiBU
ZXN0UHJvdG9jb2wuaCAqLywKKwkJCQlBMTRGQzU4RTFCOEFFMzY1MDBEMTA3RUIgLyogVGVzdFBy
b3RvY29sLm1tICovLAorCQkJCUExNEZDNTg0MUI4OTczOTEwMEQxMDdFQiAvKiBXS1dlYlZpZXdD
b25maWd1cmF0aW9uRXh0cmFzLmggKi8sCisJCQkJQTE0RkM1ODMxQjg5NzM5MTAwRDEwN0VCIC8q
IFdLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMubW0gKi8sCiAJCQkpOwogCQkJbmFtZSA9IENv
Y29hOwogCQkJcGF0aCA9IFRlc3RzL0NvY29hOwpAQCAtOTg2LDcgKzk3OCw3IEBACiAJCQkJQTEz
RUJCQTkxQjg3NDI4RDAwMDk3MTEwIC8qIFdlYlByb2Nlc3NQbHVnSW4ubW0gKi8sCiAJCQkpOwog
CQkJbmFtZSA9IFdlYlByb2Nlc3NQbHVnSW47Ci0JCQlwYXRoID0gY29jb2EvV2ViUHJvY2Vzc1Bs
dWdJbjsKKwkJCXBhdGggPSAuLi8uLi9jb2NvYS9XZWJQcm9jZXNzUGx1Z0luOwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKIAkJQTFDNEZCNkYxQkFDQ0VGQTAwMzc0MkQwIC8qIFJl
c291cmNlcyAqLyA9IHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0MkNvY29hL1dLV2ViVmlld0V2YWx1YXRlSmF2YVNjcmlwdC5tbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dLV2ViVmlld0V2YWx1YXRlSmF2YVNjcmlwdC5tbQpp
bmRleCAyMGIyOTc3MzUxNjAxMDRkZWI5MjE1NTZmMjAzZTRkZjY0NmM2YTg5Li5iNzMxYjVkMjRl
Mzg3NjIzMzU2NjZjZWIyZmNlODcwNzY1NDk5MjYyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFTY3JpcHQubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvV0tXZWJWaWV3RXZh
bHVhdGVKYXZhU2NyaXB0Lm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJQbGF0Zm9ybVV0
aWxpdGllcy5oIgogI2ltcG9ydCAiVGVzdC5oIgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlldy5o
PgorI2ltcG9ydCA8V2ViS2l0L1dLRXJyb3JQcml2YXRlLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWlu
UHRyLmg+CiAKIHN0YXRpYyBib29sIGlzRG9uZTsKQEAgLTcwLDcgKzcxLDcgQEAgVEVTVChXS1dl
YlZpZXcsIEV2YWx1YXRlSmF2YVNjcmlwdEVycm9yQ2FzZXMpCiAgICAgW3dlYlZpZXcgZXZhbHVh
dGVKYXZhU2NyaXB0OkAiZG9jdW1lbnQuYm9keSIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1
bHQsIE5TRXJyb3IgKmVycm9yKSB7CiAgICAgICAgIEVYUEVDVF9OVUxMKHJlc3VsdCk7CiAgICAg
ICAgIEVYUEVDVF9XS19TVFJFUShAIldLRXJyb3JEb21haW4iLCBbZXJyb3IgZG9tYWluXSk7Ci0g
ICAgICAgIEVYUEVDVF9FUSg1LCBbZXJyb3IgY29kZV0pOworICAgICAgICBFWFBFQ1RfRVEoV0tF
cnJvckphdmFTY3JpcHRSZXN1bHRUeXBlSXNVbnN1cHBvcnRlZCwgW2Vycm9yIGNvZGVdKTsKIAog
ICAgICAgICBpc0RvbmUgPSB0cnVlOwogICAgIH1dOwpAQCAtODEsNyArODIsNDUgQEAgVEVTVChX
S1dlYlZpZXcsIEV2YWx1YXRlSmF2YVNjcmlwdEVycm9yQ2FzZXMpCiAgICAgW3dlYlZpZXcgZXZh
bHVhdGVKYXZhU2NyaXB0OkAiZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUoZG9jdW1lbnQsIGRv
Y3VtZW50KSIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7
CiAgICAgICAgIEVYUEVDVF9OVUxMKHJlc3VsdCk7CiAgICAgICAgIEVYUEVDVF9XS19TVFJFUShA
IldLRXJyb3JEb21haW4iLCBbZXJyb3IgZG9tYWluXSk7Ci0gICAgICAgIEVYUEVDVF9FUSg0LCBb
ZXJyb3IgY29kZV0pOworICAgICAgICBFWFBFQ1RfRVEoV0tFcnJvckphdmFTY3JpcHRFeGNlcHRp
b25PY2N1cnJlZCwgW2Vycm9yIGNvZGVdKTsKKyAgICAgICAgRVhQRUNUX05PVF9OVUxMKFtlcnJv
ci51c2VySW5mbyBvYmplY3RGb3JLZXk6X1dLSmF2YVNjcmlwdEV4Y2VwdGlvbk1lc3NhZ2VFcnJv
cktleV0pOworICAgICAgICBFWFBFQ1RfR1QoW1tlcnJvci51c2VySW5mbyBvYmplY3RGb3JLZXk6
X1dLSmF2YVNjcmlwdEV4Y2VwdGlvbk1lc3NhZ2VFcnJvcktleV0gbGVuZ3RoXSwgKHVuc2lnbmVk
IGxvbmcpMCk7CisgICAgICAgIEVYUEVDVF9FUSgxLCBbW2Vycm9yLnVzZXJJbmZvIG9iamVjdEZv
cktleTpfV0tKYXZhU2NyaXB0RXhjZXB0aW9uTGluZU51bWJlckVycm9yS2V5XSBpbnRWYWx1ZV0p
OworICAgICAgICBFWFBFQ1RfRVEoMjcsIFtbZXJyb3IudXNlckluZm8gb2JqZWN0Rm9yS2V5Ol9X
S0phdmFTY3JpcHRFeGNlcHRpb25Db2x1bW5OdW1iZXJFcnJvcktleV0gaW50VmFsdWVdKTsKKwor
ICAgICAgICBpc0RvbmUgPSB0cnVlOworICAgIH1dOworCisgICAgaXNEb25lID0gZmFsc2U7Cisg
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworCisgICAgW3dlYlZpZXcgZXZh
bHVhdGVKYXZhU2NyaXB0OkAiXG5cbnRocm93ICdzb21ldGhpbmcgYmFkJyIgY29tcGxldGlvbkhh
bmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxM
KHJlc3VsdCk7CisgICAgICAgIEVYUEVDVF9XS19TVFJFUShAIldLRXJyb3JEb21haW4iLCBbZXJy
b3IgZG9tYWluXSk7CisgICAgICAgIEVYUEVDVF9FUShXS0Vycm9ySmF2YVNjcmlwdEV4Y2VwdGlv
bk9jY3VycmVkLCBbZXJyb3IgY29kZV0pOworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJzb21l
dGhpbmcgYmFkIiwgW2Vycm9yLnVzZXJJbmZvIG9iamVjdEZvcktleTpfV0tKYXZhU2NyaXB0RXhj
ZXB0aW9uTWVzc2FnZUVycm9yS2V5XSk7CisgICAgICAgIEVYUEVDVF9FUSgzLCBbW2Vycm9yLnVz
ZXJJbmZvIG9iamVjdEZvcktleTpfV0tKYXZhU2NyaXB0RXhjZXB0aW9uTGluZU51bWJlckVycm9y
S2V5XSBpbnRWYWx1ZV0pOworICAgICAgICBFWFBFQ1RfRVEoMjIsIFtbZXJyb3IudXNlckluZm8g
b2JqZWN0Rm9yS2V5Ol9XS0phdmFTY3JpcHRFeGNlcHRpb25Db2x1bW5OdW1iZXJFcnJvcktleV0g
aW50VmFsdWVdKTsKKyAgICAgICAgRVhQRUNUX05PVF9OVUxMKFtlcnJvci51c2VySW5mbyBvYmpl
Y3RGb3JLZXk6X1dLSmF2YVNjcmlwdEV4Y2VwdGlvblNvdXJjZVVSTEVycm9yS2V5XSk7CisKKyAg
ICAgICAgaXNEb25lID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIGlzRG9uZSA9IGZhbHNlOworICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKworICAgIC8vIEZJWE1FOiBNYWtp
bmcgYSBuZXcgV2ViVmlldyBiZWNhdXNlIGZvciBzb21lIHJlYXNvbiBsb2FkSFRNTFN0cmluZyBk
b2Vzbid0IGNsZWFyIHRoZSBvbGQgVVJMLgorICAgIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7Cisg
ICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCJhIGRvY3VtZW50IHdpdGhvdXQgYSBVUkwiIGJh
c2VVUkw6bmlsXTsKKworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIlxuXG50aHJv
dyAnc2hvdWxkIG5vdCBoYXZlIGEgc291cmNlVVJMJyIgY29tcGxldGlvbkhhbmRsZXI6XihpZCBy
ZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKHJlc3VsdCk7Cisg
ICAgICAgIEVYUEVDVF9XS19TVFJFUShAIldLRXJyb3JEb21haW4iLCBbZXJyb3IgZG9tYWluXSk7
CisgICAgICAgIEVYUEVDVF9FUShXS0Vycm9ySmF2YVNjcmlwdEV4Y2VwdGlvbk9jY3VycmVkLCBb
ZXJyb3IgY29kZV0pOworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJzaG91bGQgbm90IGhhdmUg
YSBzb3VyY2VVUkwiLCBbZXJyb3IudXNlckluZm8gb2JqZWN0Rm9yS2V5Ol9XS0phdmFTY3JpcHRF
eGNlcHRpb25NZXNzYWdlRXJyb3JLZXldKTsKKyAgICAgICAgRVhQRUNUX0VRKDMsIFtbZXJyb3Iu
dXNlckluZm8gb2JqZWN0Rm9yS2V5Ol9XS0phdmFTY3JpcHRFeGNlcHRpb25MaW5lTnVtYmVyRXJy
b3JLZXldIGludFZhbHVlXSk7CisgICAgICAgIEVYUEVDVF9FUSgzNiwgW1tlcnJvci51c2VySW5m
byBvYmplY3RGb3JLZXk6X1dLSmF2YVNjcmlwdEV4Y2VwdGlvbkNvbHVtbk51bWJlckVycm9yS2V5
XSBpbnRWYWx1ZV0pOworICAgICAgICBFWFBFQ1RfTlVMTChbZXJyb3IudXNlckluZm8gb2JqZWN0
Rm9yS2V5Ol9XS0phdmFTY3JpcHRFeGNlcHRpb25Tb3VyY2VVUkxFcnJvcktleV0pOwogCiAgICAg
ICAgIGlzRG9uZSA9IHRydWU7CiAgICAgfV07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263971</attachid>
            <date>2015-10-23 18:10:59 -0700</date>
            <delta_ts>2015-10-24 16:00:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-150525-20151023181013.patch</filename>
            <type>text/plain</type>
            <size>44254</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkxNTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTNmNmI0MDYxNjg1MTdi
MjFhZjNlYWU4NzZmODVmMTIxMTA2MDIzNi4uOGNjZWRkYmY2NzQwZjlkM2Q4OWUwMzlkZjUyYTUw
YWQzYjAzNTNmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE1LTEwLTIzICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEV4cG9zZSBtb3Jl
IGluZm9ybWF0aW9uIGFib3V0IHRoZSBleGNlcHRpb24gaW4gV0tFcnJvckphdmFTY3JpcHRFeGNl
cHRpb25PY2N1cnJlZCBlcnJvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1MDUyNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkanVzdGVkIEFQSSB0ZXN0IHRvIGNvdmVyIHRoaXM6IFdLV2ViVmlldy5F
dmFsdWF0ZUphdmFTY3JpcHRFcnJvckNhc2VzLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNE
T01CaW5kaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlcG9ydEV4Y2VwdGlvbik6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmg6CisgICAgICAgIEZpbGwgaW4gdGhlIGdp
dmVuIHN0cnVjdCB3aXRoIGNvbXB1dGVkIGV4Y2VwdGlvbiBkYXRhIGlmIGl0IHdhcyBnaXZlbi4K
KworICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVJbldvcmxkKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cmlwdENvbnRyb2xsZXI6OmV4ZWN1dGVTY3JpcHQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1Nj
cmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgUGx1bWIgYWZvcmVtZW50aW9uZWQgc3RydWN0IHRo
cm91Z2ggU2NyaXB0Q29udHJvbGxlci4KKwogMjAxNS0xMC0yMyAgUGVyIEFybmUgVm9sbGFuICA8
cGVhdm9Ab3V0bG9vay5jb20+CiAKICAgICAgICAgW1dpbkNhaXJvXSBJbXByb3ZlIHRlc3QgcmVz
dWx0cyBmb3IgZmFzdCBsYXlvdXR0ZXN0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAxYjA1NzUzNDA0OWZhYWEz
YTExMTVmMWQ4NWY2NzAxOTQzN2NmN2Y5Li5iZjE4ZWJjZTk3ODI4YTRkZGYxNzllOTIzMDYwMTkw
ZmYwZWZiZDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDQgQEAKIDIwMTUtMTAtMjMgIFRpbSBI
b3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKKyAgICAgICAgRXhwb3NlIG1vcmUg
aW5mb3JtYXRpb24gYWJvdXQgdGhlIGV4Y2VwdGlvbiBpbiBXS0Vycm9ySmF2YVNjcmlwdEV4Y2Vw
dGlvbk9jY3VycmVkIGVycm9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTUwNTI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKGhlYWRl
cnNfZm9yX3R5cGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
OgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEV4Y2VwdGlvbkRldGFpbHM+OjplbmNvZGUp
OgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEV4Y2VwdGlvbkRldGFpbHM+OjpkZWNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgTGVh
cm4gaG93IHRvIGVuL2RlY29kZSBFeGNlcHRpb25EZXRhaWxzLgorCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VSdW5KYXZhU2NyaXB0SW5NYWlu
RnJhbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2NyaXB0VmFsdWVDYWxsYmFjayk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpydW5KYXZhU2NyaXB0SW5NYWluRnJhbWUpOgor
ICAgICAgICBQbHVtYiBFeGNlcHRpb25EZXRhaWxzIGJhY2sgdGhyb3VnaCBydW5KYXZhU2NyaXB0
SW5NYWluRnJhbWUsIGFjcm9zcyB0aGUKKyAgICAgICAgcHJvY2VzcyBib3VuZGFyeS4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFcnJvci5tbToKKyAgICAgICAgKGxvY2FsaXpl
ZERlc2NyaXB0aW9uRm9yRXJyb3JDb2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLRXJyb3JJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFcnJv
clByaXZhdGUuaDoKKyAgICAgICAgRXhwb3NlIGxvY2FsaXplZERlc2NyaXB0aW9uRm9yRXJyb3JD
b2RlIHNvIHRoYXQgV0tXZWJWaWV3IGNhbiBkbyBzcGVjaWFsCisgICAgICAgIHRoaW5ncyB3aXRo
IGl0cyBlcnJvci4KKyAgICAgICAgQWRkIG5ldyBwcml2YXRlIHVzZXJJbmZvIGtleXMgZm9yIGV4
Y2VwdGlvbiBpbmZvLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW06CisgICAgICAgICgtW1dLV2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6Y29tcGxldGlvbkhh
bmRsZXI6XSk6CisgICAgICAgIEZpbGwgaW4gdGhlIE5TRXJyb3IgdXNlckluZm8gd2l0aCB0aGUg
ZXhjZXB0aW9uIGluZm8uCisKKzIwMTUtMTAtMjMgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRv
bkBhcHBsZS5jb20+CisKICAgICAgICAgV0tWaWV3IGJlaW5nIGluc2lkZSBXS1dlYlZpZXcgbGVh
ZHMgdG8gd2VpcmQgQVBJIGlzc3VlcwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTUwMTc0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NQmluZGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUJpbmRpbmcuY3BwCmluZGV4IGUxYjBiNWJhMmM4YjE4MjJiM2MzYWU3ZWY1NmI5M2YzY2Q3ZTM2
NWEuLjMwMmM3YTlhMDY3NGEwZjhlMGRhMWMxY2VjMDM3YTU0ZDYyNDkzODAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcApAQCAtMTU5LDcgKzE1OSw3IEBA
IHZvaWQgcmVwb3J0RXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBleGNlcHRpb25W
YWx1ZSwgQ2FjaGVkU2NyaXB0KiBjYWNoCiAgICAgcmVwb3J0RXhjZXB0aW9uKGV4ZWMsIGV4Y2Vw
dGlvbiwgY2FjaGVkU2NyaXB0KTsKIH0KIAotdm9pZCByZXBvcnRFeGNlcHRpb24oRXhlY1N0YXRl
KiBleGVjLCBFeGNlcHRpb24qIGV4Y2VwdGlvbiwgQ2FjaGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQp
Cit2b2lkIHJlcG9ydEV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEV4Y2VwdGlvbiogZXhjZXB0
aW9uLCBDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCwgRXhjZXB0aW9uRGV0YWlscyogZXhjZXB0
aW9uRGV0YWlscykKIHsKICAgICBSRUxFQVNFX0FTU0VSVChleGVjLT52bSgpLmN1cnJlbnRUaHJl
YWRJc0hvbGRpbmdBUElMb2NrKCkpOwogICAgIGlmIChpc1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNl
cHRpb24oZXhjZXB0aW9uKSkKQEAgLTIwMiw2ICsyMDIsMTMgQEAgdm9pZCByZXBvcnRFeGNlcHRp
b24oRXhlY1N0YXRlKiBleGVjLCBFeGNlcHRpb24qIGV4Y2VwdGlvbiwgQ2FjaGVkU2NyaXB0KiBj
YWNoZWQKIAogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQgPSBnbG9iYWxPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBzY3JpcHRF
eGVjdXRpb25Db250ZXh0LT5yZXBvcnRFeGNlcHRpb24oZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVy
LCBjb2x1bW5OdW1iZXIsIGV4Y2VwdGlvblNvdXJjZVVSTCwgY2FsbFN0YWNrLT5zaXplKCkgPyBj
YWxsU3RhY2sgOiAwLCBjYWNoZWRTY3JpcHQpOworCisgICAgaWYgKGV4Y2VwdGlvbkRldGFpbHMp
IHsKKyAgICAgICAgZXhjZXB0aW9uRGV0YWlscy0+bWVzc2FnZSA9IGVycm9yTWVzc2FnZTsKKyAg
ICAgICAgZXhjZXB0aW9uRGV0YWlscy0+bGluZU51bWJlciA9IGxpbmVOdW1iZXI7CisgICAgICAg
IGV4Y2VwdGlvbkRldGFpbHMtPmNvbHVtbk51bWJlciA9IGNvbHVtbk51bWJlcjsKKyAgICAgICAg
ZXhjZXB0aW9uRGV0YWlscy0+c291cmNlVVJMID0gZXhjZXB0aW9uU291cmNlVVJMOworICAgIH0K
IH0KIAogdm9pZCByZXBvcnRDdXJyZW50RXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKaW5kZXggYzY0YTFlNzY5YzE1NTYy
NmQwMGRmYTg4MDZlMjBiZjhlMmI3NjQyNi4uMmY5MjMyMjFhOWUwYzA2ZGQ3MmM5M2M0MmIwZWFh
OGFkNTUwNjUwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01C
aW5kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgK
QEAgLTY3LDYgKzY3LDEzIEBAIGNsYXNzIE5vZGU7CiAKIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNv
ZGU7CiAKK3N0cnVjdCBFeGNlcHRpb25EZXRhaWxzIHsKKyAgICBTdHJpbmcgbWVzc2FnZTsKKyAg
ICBpbnQgbGluZU51bWJlciB7IDAgfTsKKyAgICBpbnQgY29sdW1uTnVtYmVyIHsgMCB9OworICAg
IFN0cmluZyBzb3VyY2VVUkw7Cit9OworCiBET01XaW5kb3cmIGFjdGl2ZURPTVdpbmRvdyhKU0M6
OkV4ZWNTdGF0ZSopOwogRE9NV2luZG93JiBmaXJzdERPTVdpbmRvdyhKU0M6OkV4ZWNTdGF0ZSop
OwogCkBAIC0yNzIsNyArMjc5LDcgQEAgdm9pZCBhZGRJbXB1cmVQcm9wZXJ0eShjb25zdCBBdG9t
aWNTdHJpbmcmKTsKIGNvbnN0IEpTQzo6SGFzaFRhYmxlJiBnZXRIYXNoVGFibGVGb3JHbG9iYWxE
YXRhKEpTQzo6Vk0mLCBjb25zdCBKU0M6Okhhc2hUYWJsZSYgc3RhdGljVGFibGUpOwogCiBXRUJD
T1JFX0VYUE9SVCB2b2lkIHJlcG9ydEV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNW
YWx1ZSBleGNlcHRpb24sIENhY2hlZFNjcmlwdCogPSBudWxscHRyKTsKLVdFQkNPUkVfRVhQT1JU
IHZvaWQgcmVwb3J0RXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFeGNlcHRpb24qLCBD
YWNoZWRTY3JpcHQqID0gbnVsbHB0cik7CitXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcG9ydEV4Y2Vw
dGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RXhjZXB0aW9uKiwgQ2FjaGVkU2NyaXB0KiA9IG51
bGxwdHIsIEV4Y2VwdGlvbkRldGFpbHMqID0gbnVsbHB0cik7CiB2b2lkIHJlcG9ydEN1cnJlbnRF
eGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqKTsKIAogSlNDOjpKU1ZhbHVlIGNyZWF0ZURPTUV4Y2Vw
dGlvbihKU0M6OkV4ZWNTdGF0ZSosIEV4Y2VwdGlvbkNvZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCBlMmNmMDkyMmNjOGE2MmM3
NzIzZjc1YzY3OTU4Njc3YjhjY2YxZmUxLi5iMTYxZTY2ZjhkOTJjODBjNGZjOGIyYjcyNmJjMjQ4
NjU3ZGQ1MmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRD
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250
cm9sbGVyLmNwcApAQCAtMTM3LDcgKzEzNyw3IEBAIEpTRE9NV2luZG93U2hlbGwqIFNjcmlwdENv
bnRyb2xsZXI6OmNyZWF0ZVdpbmRvd1NoZWxsKERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCiAgICAg
cmV0dXJuIHdpbmRvd1NoZWxsLmdldCgpOwogfQogCi1EZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBT
Y3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZUluV29ybGQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYg
c291cmNlQ29kZSwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKK0RlcHJlY2F0ZWQ6OlNjcmlwdFZh
bHVlIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlSW5Xb3JsZChjb25zdCBTY3JpcHRTb3VyY2VD
b2RlJiBzb3VyY2VDb2RlLCBET01XcmFwcGVyV29ybGQmIHdvcmxkLCBFeGNlcHRpb25EZXRhaWxz
KiBleGNlcHRpb25EZXRhaWxzKQogewogICAgIEpTTG9ja0hvbGRlciBsb2NrKHdvcmxkLnZtKCkp
OwogCkBAIC0xNjYsNyArMTY2LDcgQEAgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgU2NyaXB0Q29u
dHJvbGxlcjo6ZXZhbHVhdGVJbldvcmxkKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUKICAgICBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEV2YWx1YXRlU2NyaXB0KGNvb2tpZSwgbV9mcmFtZSk7
CiAKICAgICBpZiAoZXZhbHVhdGlvbkV4Y2VwdGlvbikgewotICAgICAgICByZXBvcnRFeGNlcHRp
b24oZXhlYywgZXZhbHVhdGlvbkV4Y2VwdGlvbiwgc291cmNlQ29kZS5jYWNoZWRTY3JpcHQoKSk7
CisgICAgICAgIHJlcG9ydEV4Y2VwdGlvbihleGVjLCBldmFsdWF0aW9uRXhjZXB0aW9uLCBzb3Vy
Y2VDb2RlLmNhY2hlZFNjcmlwdCgpLCBleGNlcHRpb25EZXRhaWxzKTsKICAgICAgICAgbV9zb3Vy
Y2VVUkwgPSBzYXZlZFNvdXJjZVVSTDsKICAgICAgICAgcmV0dXJuIERlcHJlY2F0ZWQ6OlNjcmlw
dFZhbHVlKCk7CiAgICAgfQpAQCAtMTc1LDkgKzE3NSw5IEBAIERlcHJlY2F0ZWQ6OlNjcmlwdFZh
bHVlIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlSW5Xb3JsZChjb25zdCBTY3JpcHRTb3VyY2VD
b2RlCiAgICAgcmV0dXJuIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlKGV4ZWMtPnZtKCksIHJldHVy
blZhbHVlKTsKIH0KIAotRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6
ZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSkgCitEZXByZWNhdGVk
OjpTY3JpcHRWYWx1ZSBTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZShjb25zdCBTY3JpcHRTb3Vy
Y2VDb2RlJiBzb3VyY2VDb2RlLCBFeGNlcHRpb25EZXRhaWxzKiBleGNlcHRpb25EZXRhaWxzKQog
ewotICAgIHJldHVybiBldmFsdWF0ZUluV29ybGQoc291cmNlQ29kZSwgbWFpblRocmVhZE5vcm1h
bFdvcmxkKCkpOworICAgIHJldHVybiBldmFsdWF0ZUluV29ybGQoc291cmNlQ29kZSwgbWFpblRo
cmVhZE5vcm1hbFdvcmxkKCksIGV4Y2VwdGlvbkRldGFpbHMpOwogfQogCiBSZWY8RE9NV3JhcHBl
cldvcmxkPiBTY3JpcHRDb250cm9sbGVyOjpjcmVhdGVXb3JsZCgpCkBAIC01NDUsMjAgKzU0NSwy
MCBAQCBib29sIFNjcmlwdENvbnRyb2xsZXI6OmNhbkV4ZWN1dGVTY3JpcHRzKFJlYXNvbkZvckNh
bGxpbmdDYW5FeGVjdXRlU2NyaXB0cyByZWFzbwogICAgIHJldHVybiBtX2ZyYW1lLmxvYWRlcigp
LmNsaWVudCgpLmFsbG93U2NyaXB0KG1fZnJhbWUuc2V0dGluZ3MoKS5pc1NjcmlwdEVuYWJsZWQo
KSk7CiB9CiAKLURlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV4ZWN1
dGVTY3JpcHQoY29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSkKK0Rl
cHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV4ZWN1dGVTY3JpcHQoY29u
c3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgRXhjZXB0aW9uRGV0YWls
cyogZXhjZXB0aW9uRGV0YWlscykKIHsKICAgICBVc2VyR2VzdHVyZUluZGljYXRvciBnZXN0dXJl
SW5kaWNhdG9yKGZvcmNlVXNlckdlc3R1cmUgPyBEZWZpbml0ZWx5UHJvY2Vzc2luZ1VzZXJHZXN0
dXJlIDogUG9zc2libHlQcm9jZXNzaW5nVXNlckdlc3R1cmUpOwotICAgIHJldHVybiBleGVjdXRl
U2NyaXB0KFNjcmlwdFNvdXJjZUNvZGUoc2NyaXB0LCBtX2ZyYW1lLmRvY3VtZW50KCktPnVybCgp
KSk7CisgICAgcmV0dXJuIGV4ZWN1dGVTY3JpcHQoU2NyaXB0U291cmNlQ29kZShzY3JpcHQsIG1f
ZnJhbWUuZG9jdW1lbnQoKS0+dXJsKCkpLCBleGNlcHRpb25EZXRhaWxzKTsKIH0KIAotRGVwcmVj
YXRlZDo6U2NyaXB0VmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6ZXhlY3V0ZVNjcmlwdChjb25zdCBT
Y3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQorRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgU2Ny
aXB0Q29udHJvbGxlcjo6ZXhlY3V0ZVNjcmlwdChjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3Vy
Y2VDb2RlLCBFeGNlcHRpb25EZXRhaWxzKiBleGNlcHRpb25EZXRhaWxzKQogewogICAgIGlmICgh
Y2FuRXhlY3V0ZVNjcmlwdHMoQWJvdXRUb0V4ZWN1dGVTY3JpcHQpIHx8IGlzUGF1c2VkKCkpCiAg
ICAgICAgIHJldHVybiBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSgpOwogCiAgICAgUmVmPEZyYW1l
PiBwcm90ZWN0KG1fZnJhbWUpOyAvLyBTY3JpcHQgZXhlY3V0aW9uIGNhbiBkZXN0cm95IHRoZSBm
cmFtZSwgYW5kIHRodXMgdGhlIFNjcmlwdENvbnRyb2xsZXIuCiAKLSAgICByZXR1cm4gZXZhbHVh
dGUoc291cmNlQ29kZSk7CisgICAgcmV0dXJuIGV2YWx1YXRlKHNvdXJjZUNvZGUsIGV4Y2VwdGlv
bkRldGFpbHMpOwogfQogCiBib29sIFNjcmlwdENvbnRyb2xsZXI6OmV4ZWN1dGVJZkphdmFTY3Jp
cHRVUkwoY29uc3QgVVJMJiB1cmwsIFNob3VsZFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVS
TCBzaG91bGRSZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkwpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgKaW5kZXggMDdjNTNiN2M4ZWRmYjRlMjhm
NWNhMTNhYTJjNGUwNTU5NGVmNTEyMi4uMjk3NmZjMzQzNjhhNDUwOGUxODhiZDk4MTI2MDdhYzBj
MTkzZDYyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29u
dHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xs
ZXIuaApAQCAtNDMsMTMgKzQzLDEzIEBAIGNsYXNzIFNjcmlwdFZhbHVlOwogfQogCiBuYW1lc3Bh
Y2UgSlNDIHsKLSAgICBjbGFzcyBKU0dsb2JhbE9iamVjdDsKLSAgICBjbGFzcyBFeGVjU3RhdGU7
CitjbGFzcyBKU0dsb2JhbE9iamVjdDsKK2NsYXNzIEV4ZWNTdGF0ZTsKIAotICAgIG5hbWVzcGFj
ZSBCaW5kaW5ncyB7Ci0gICAgICAgIGNsYXNzIEluc3RhbmNlOwotICAgICAgICBjbGFzcyBSb290
T2JqZWN0OwotICAgIH0KK25hbWVzcGFjZSBCaW5kaW5ncyB7CitjbGFzcyBJbnN0YW5jZTsKK2Ns
YXNzIFJvb3RPYmplY3Q7Cit9CiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEwMSw4ICsx
MDEsOCBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgdm9pZCBnZXRBbGxXb3JsZHMoVmVjdG9yPFJl
ZjxET01XcmFwcGVyV29ybGQ+PiYpOwogCi0gICAgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgZXhl
Y3V0ZVNjcmlwdChjb25zdCBTY3JpcHRTb3VyY2VDb2RlJik7Ci0gICAgV0VCQ09SRV9FWFBPUlQg
RGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgZXhlY3V0ZVNjcmlwdChjb25zdCBTdHJpbmcmIHNjcmlw
dCwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlID0gZmFsc2UpOworICAgIERlcHJlY2F0ZWQ6OlNjcmlw
dFZhbHVlIGV4ZWN1dGVTY3JpcHQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYsIEV4Y2VwdGlvbkRl
dGFpbHMqID0gbnVsbHB0cik7CisgICAgV0VCQ09SRV9FWFBPUlQgRGVwcmVjYXRlZDo6U2NyaXB0
VmFsdWUgZXhlY3V0ZVNjcmlwdChjb25zdCBTdHJpbmcmIHNjcmlwdCwgYm9vbCBmb3JjZVVzZXJH
ZXN0dXJlID0gZmFsc2UsIEV4Y2VwdGlvbkRldGFpbHMqID0gbnVsbHB0cik7CiAgICAgV0VCQ09S
RV9FWFBPUlQgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgZXhlY3V0ZVNjcmlwdEluV29ybGQoRE9N
V3JhcHBlcldvcmxkJiwgY29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVy
ZSA9IGZhbHNlKTsKIAogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiBhcmd1bWVudCBpcyBhIEphdmFT
Y3JpcHQgVVJMLgpAQCAtMTEyLDggKzExMiw4IEBAIHB1YmxpYzoKICAgICAvLyBEYXJ3aW4gaXMg
YW4gZXhjZXB0aW9uIHRvIHRoaXMgcnVsZTogaXQgaXMgT0sgdG8gY2FsbCB0aGlzIGZ1bmN0aW9u
IGZyb20gYW55IHRocmVhZCwgZXZlbiByZWVudHJhbnRseS4KICAgICBzdGF0aWMgdm9pZCBpbml0
aWFsaXplVGhyZWFkaW5nKCk7CiAKLSAgICBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBldmFsdWF0
ZShjb25zdCBTY3JpcHRTb3VyY2VDb2RlJik7Ci0gICAgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUg
ZXZhbHVhdGVJbldvcmxkKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmLCBET01XcmFwcGVyV29ybGQm
KTsKKyAgICBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBldmFsdWF0ZShjb25zdCBTY3JpcHRTb3Vy
Y2VDb2RlJiwgRXhjZXB0aW9uRGV0YWlscyogPSBudWxscHRyKTsKKyAgICBEZXByZWNhdGVkOjpT
Y3JpcHRWYWx1ZSBldmFsdWF0ZUluV29ybGQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYsIERPTVdy
YXBwZXJXb3JsZCYsIEV4Y2VwdGlvbkRldGFpbHMqID0gbnVsbHB0cik7CiAKICAgICBXVEY6OlRl
eHRQb3NpdGlvbiBldmVudEhhbmRsZXJQb3NpdGlvbigpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQy
L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDg5ZjU2ZTE2NjgxNDhlMzdlMTQyYjU2
MDYwOWI0YmY5NDdhNTRhYmQuLjYxNGI1Yjg3NjI2ZDI4MTA4OWZjYjgyNGQ3YTEzMzk3Y2IyMjU1
ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0zNTIs
NiArMzUyLDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgc3BlY2lhbF9jYXNl
cyA9IHsKICAgICAgICAgJ1N0cmluZyc6IFsnPHd0Zi90ZXh0L1dURlN0cmluZy5oPiddLAogICAg
ICAgICAnV2ViQ29yZTo6Q29tcG9zaXRpb25VbmRlcmxpbmUnOiBbJzxXZWJDb3JlL0VkaXRvci5o
PiddLAorICAgICAgICAnV2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyc6IFsnPFdlYkNvcmUvSlNE
T01CaW5kaW5nLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpHcmFtbWFyRGV0YWlsJzogWyc8V2Vi
Q29yZS9UZXh0Q2hlY2tlckNsaWVudC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6VGV4dHVyZU1h
cHBlckFuaW1hdGlvbnMnOiBbJzxXZWJDb3JlL1RleHR1cmVNYXBwZXJBbmltYXRpb24uaD4nXSwK
ICAgICAgICAgJ1dlYkNvcmU6OktleWZyYW1lVmFsdWVMaXN0JzogWyc8V2ViQ29yZS9HcmFwaGlj
c0xheWVyLmg+J10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuY3BwCmluZGV4IDZjOWMyNjM1YmRmZWJjNWYyNWVmYjAxYmQ2NjU0NWJkYjM1YmE1NjIu
LmYwZTI2MzYyZTUxYjcwOTNiZWY0YjBmMTk3ZDBiM2UyOWU5ZDYyYjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC00NSw2ICs0NSw3
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9JREJHZXRSZXN1bHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9KU0RPTUJpbmRpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xlbmd0aC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUGF0aC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGx1Z2luRGF0YS5oPgpA
QCAtMjAzNyw0ICsyMDM4LDI5IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxEaWN0aW9uYXJ5UG9wdXBJ
bmZvPjo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBECiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKK3ZvaWQgQXJndW1lbnRDb2RlcjxFeGNlcHRpb25EZXRhaWxzPjo6ZW5jb2Rl
KElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBFeGNlcHRpb25EZXRhaWxzJiBp
bmZvKQoreworICAgIGVuY29kZXIgPDwgaW5mby5tZXNzYWdlOworICAgIGVuY29kZXIgPDwgaW5m
by5saW5lTnVtYmVyOworICAgIGVuY29kZXIgPDwgaW5mby5jb2x1bW5OdW1iZXI7CisgICAgZW5j
b2RlciA8PCBpbmZvLnNvdXJjZVVSTDsKK30KKworYm9vbCBBcmd1bWVudENvZGVyPEV4Y2VwdGlv
bkRldGFpbHM+OjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEV4Y2VwdGlv
bkRldGFpbHMmIHJlc3VsdCkKK3sKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tZXNz
YWdlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShy
ZXN1bHQubGluZU51bWJlcikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocmVzdWx0LmNvbHVtbk51bWJlcikpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnNvdXJjZVVSTCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQorCiB9IC8vIG5hbWVzcGFjZSBJUEMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
aCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCBj
ODNlOTk4YzRmMWM1YzY0ZWZiNzM2MzYwZjQ0MTY0NjgwMTczNGUyLi40NmU3YzEyMjVkYTFiNjZk
YTFiMTc3ZWUwNmU4MDRiMjkwOGQ0ZGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC03MSw2ICs3MSw3IEBAIHN0cnVjdCBDb21wb3NpdGlv
blVuZGVybGluZTsKIHN0cnVjdCBDb29raWU7CiBzdHJ1Y3QgRGljdGF0aW9uQWx0ZXJuYXRpdmU7
CiBzdHJ1Y3QgRGljdGlvbmFyeVBvcHVwSW5mbzsKK3N0cnVjdCBFeGNlcHRpb25EZXRhaWxzOwog
c3RydWN0IEZpbGVDaG9vc2VyU2V0dGluZ3M7CiBzdHJ1Y3QgTGVuZ3RoOwogc3RydWN0IEdyYW1t
YXJEZXRhaWw7CkBAIC00NTcsNiArNDU4LDExIEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8V2ViQ29yZTo6UmVjZW50U2VhcmNoPiB7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFy
Z3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlJlY2VudFNlYXJjaCYpOwogfTsKIAordGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxzPiB7CisgICAg
c3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkV4Y2Vw
dGlvbkRldGFpbHMmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwg
V2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyYpOworfTsKKwogfSAvLyBuYW1lc3BhY2UgSVBDCiAK
ICNlbmRpZiAvLyBXZWJDb3JlQXJndW1lbnRDb2RlcnNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCAzYjdjODE2MmMwN2U3NDMyNWM1MTYzOGY3YWZlYjQ1
Y2Y2NzBkZjliLi42NDY3NzZjOTUyMzQ4OTc1Y2RhMGFkODE3MDg1MjFhYTJlOThkYzIwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMjE4Myw3ICsyMTgz
LDcgQEAgdm9pZCBXS1BhZ2VTZXRTZXNzaW9uKFdLUGFnZVJlZiBwYWdlUmVmLCBXS1Nlc3Npb25S
ZWYgc2Vzc2lvbikKIAogdm9pZCBXS1BhZ2VSdW5KYXZhU2NyaXB0SW5NYWluRnJhbWUoV0tQYWdl
UmVmIHBhZ2VSZWYsIFdLU3RyaW5nUmVmIHNjcmlwdFJlZiwgdm9pZCogY29udGV4dCwgV0tQYWdl
UnVuSmF2YVNjcmlwdEZ1bmN0aW9uIGNhbGxiYWNrKQogewotICAgIHRvSW1wbChwYWdlUmVmKS0+
cnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKHRvSW1wbChzY3JpcHRSZWYpLT5zdHJpbmcoKSwgW2Nv
bnRleHQsIGNhbGxiYWNrXShBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogcmV0dXJuVmFsdWUs
IGJvb2wsIENhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKKyAgICB0b0ltcGwocGFnZVJlZikt
PnJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZSh0b0ltcGwoc2NyaXB0UmVmKS0+c3RyaW5nKCksIFtj
b250ZXh0LCBjYWxsYmFja10oQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqIHJldHVyblZhbHVl
LCBib29sLCBjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxzJiwgQ2FsbGJhY2tCYXNlOjpF
cnJvciBlcnJvcikgewogICAgICAgICBjYWxsYmFjayh0b0FQSShyZXR1cm5WYWx1ZSksIChlcnJv
ciAhPSBDYWxsYmFja0Jhc2U6OkVycm9yOjpOb25lKSA/IHRvQVBJKEFQSTo6RXJyb3I6OmNyZWF0
ZSgpLnB0cigpKSA6IDAsIGNvbnRleHQpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vycm9yLm1tIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vycm9yLm1tCmluZGV4IDM0ZjYyNDUzYmIwMjc4NWJhZGY2
MjdhZTdmNzU4OTBhNDYyMzUzM2YuLmNhYjZlYjkzOGIwNzExM2VjYTY2NmUzYmM0MjhmYzVkOTk2
ZjViNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tF
cnJvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3Iu
bW0KQEAgLTM1LDcgKzM1LDEyIEBACiBOU1N0cmluZyAqIGNvbnN0IFdLRXJyb3JEb21haW4gPSBA
IldLRXJyb3JEb21haW4iOwogTlNTdHJpbmcgKiBjb25zdCBfV0tMZWdhY3lFcnJvckRvbWFpbiA9
IEAiV2ViS2l0RXJyb3JEb21haW4iOwogCi1zdGF0aWMgTlNTdHJpbmcgKmxvY2FsaXplZERlc2Ny
aXB0aW9uRm9yRXJyb3JDb2RlKFdLRXJyb3JDb2RlIGVycm9yQ29kZSkKK05TU3RyaW5nICogY29u
c3QgX1dLSmF2YVNjcmlwdEV4Y2VwdGlvbk1lc3NhZ2VFcnJvcktleSA9IEAiV0tKYXZhU2NyaXB0
RXhjZXB0aW9uTWVzc2FnZSI7CitOU1N0cmluZyAqIGNvbnN0IF9XS0phdmFTY3JpcHRFeGNlcHRp
b25MaW5lTnVtYmVyRXJyb3JLZXkgPSBAIldLSmF2YVNjcmlwdEV4Y2VwdGlvbkxpbmVOdW1iZXIi
OworTlNTdHJpbmcgKiBjb25zdCBfV0tKYXZhU2NyaXB0RXhjZXB0aW9uQ29sdW1uTnVtYmVyRXJy
b3JLZXkgPSBAIldLSmF2YVNjcmlwdEV4Y2VwdGlvbkNvbHVtbk51bWJlciI7CitOU1N0cmluZyAq
IGNvbnN0IF9XS0phdmFTY3JpcHRFeGNlcHRpb25Tb3VyY2VVUkxFcnJvcktleSA9IEAiV0tKYXZh
U2NyaXB0RXhjZXB0aW9uU291cmNlVVJMIjsKKworTlNTdHJpbmcgKmxvY2FsaXplZERlc2NyaXB0
aW9uRm9yRXJyb3JDb2RlKFdLRXJyb3JDb2RlIGVycm9yQ29kZSkKIHsKICAgICBzd2l0Y2ggKGVy
cm9yQ29kZSkgewogICAgIGNhc2UgV0tFcnJvclVua25vd246CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3JJbnRlcm5hbC5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vycm9ySW50ZXJuYWwuaAppbmRleCA3MTFiOTQ5
NzE3YmIxMWNkOWFjNTAxOWE0ZWQ1NDM1NTk0NjY0YzdhLi4zMzIzN2Q1OThhNzk0MTBjZmI4M2Ex
MmY1MmYzOTNmOGFlNmMyZjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLRXJyb3JJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tFcnJvckludGVybmFsLmgKQEAgLTMxLDUgKzMxLDYgQEAKICNpbXBvcnQg
IkdlbmVyaWNDYWxsYmFjay5oIgogCiBSZXRhaW5QdHI8TlNFcnJvcj4gY3JlYXRlTlNFcnJvcihX
S0Vycm9yQ29kZSk7CitOU1N0cmluZyAqbG9jYWxpemVkRGVzY3JpcHRpb25Gb3JFcnJvckNvZGUo
V0tFcnJvckNvZGUpOwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tFcnJvclByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tFcnJvclByaXZhdGUuaAppbmRleCBhMDM3MTkwZjdlZTcyMzhkZmNmNmJj
OWE4MmFmNjQ2NDE4ZmU0MTk1Li43ZWVjMjZhNDliNDE0NmFiMGU1ZjMyY2M0ZWMyMWE4NDEzZGIz
OGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJy
b3JQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vy
cm9yUHJpdmF0ZS5oCkBAIC0zNCw0ICszNCwyMCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2Vy
LCBfV0tMZWdhY3lFcnJvckNvZGUpIHsKICAgICBfV0tMZWdhY3lFcnJvclBsdWdJbldpbGxIYW5k
bGVMb2FkID0gMjA0LAogfSBXS19FTlVNX0FWQUlMQUJMRSgxMF8xMSwgOF8zKTsKIAorLyohIEBj
b25zdGFudCBfV0tKYXZhU2NyaXB0RXhjZXB0aW9uTWVzc2FnZUVycm9yS2V5IEtleSBpbiB1c2Vy
SW5mbyByZXByZXNlbnRpbmcKKyB0aGUgZXhjZXB0aW9uIG1lc3NhZ2UgKGFzIGFuIE5TU3RyaW5n
KSBmb3IgV0tFcnJvckphdmFTY3JpcHRFeGNlcHRpb25PY2N1cnJlZCBlcnJvcnMuICovCitXS19F
WFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tKYXZhU2NyaXB0RXhjZXB0aW9uTWVzc2FnZUVycm9y
S2V5IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKKworLyohIEBjb25zdGFu
dCBfV0tKYXZhU2NyaXB0RXhjZXB0aW9uTGluZU51bWJlckVycm9yS2V5IEtleSBpbiB1c2VySW5m
byByZXByZXNlbnRpbmcKKyB0aGUgZXhjZXB0aW9uIGxpbmUgbnVtYmVyIChhcyBhbiBOU051bWJl
cikgZm9yIFdLRXJyb3JKYXZhU2NyaXB0RXhjZXB0aW9uT2NjdXJyZWQgZXJyb3JzLiAqLworV0tf
RVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLSmF2YVNjcmlwdEV4Y2VwdGlvbkxpbmVOdW1iZXJF
cnJvcktleSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CisKKy8qISBAY29u
c3RhbnQgX1dLSmF2YVNjcmlwdEV4Y2VwdGlvbkNvbHVtbk51bWJlckVycm9yS2V5IEtleSBpbiB1
c2VySW5mbyByZXByZXNlbnRpbmcKKyB0aGUgZXhjZXB0aW9uIGNvbHVtbiBudW1iZXIgKGFzIGFu
IE5TTnVtYmVyKSBmb3IgV0tFcnJvckphdmFTY3JpcHRFeGNlcHRpb25PY2N1cnJlZCBlcnJvcnMu
ICovCitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tKYXZhU2NyaXB0RXhjZXB0aW9uQ29s
dW1uTnVtYmVyRXJyb3JLZXkgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwor
CisvKiEgQGNvbnN0YW50IF9XS0phdmFTY3JpcHRFeGNlcHRpb25Tb3VyY2VVUkxFcnJvcktleSBL
ZXkgaW4gdXNlckluZm8gcmVwcmVzZW50aW5nCisgdGhlIGV4Y2VwdGlvbiBzb3VyY2UgVVJMIChh
cyBhbiBOU1N0cmluZykgZm9yIFdLRXJyb3JKYXZhU2NyaXB0RXhjZXB0aW9uT2NjdXJyZWQgZXJy
b3JzLiAqLworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLSmF2YVNjcmlwdEV4Y2VwdGlv
blNvdXJjZVVSTEVycm9yS2V5IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsK
KwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tCmluZGV4IDk0NDAxODBmNmM1YWVjOTg2NTBiODExZmJjNmRmMTk0NTU5YjFjNWEuLjg1
ODhhZmM5YzY2ZDk0M2U4YzFlYTFiOGIxMjM5ZDIyYTIxYTZiOWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC04MCw2ICs4MCw3IEBA
CiAjaW1wb3J0ICJfV0tTZXNzaW9uU3RhdGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLVmlzaXRl
ZExpbmtTdG9yZUludGVybmFsLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0lPU3VyZmFjZS5oPgorI2lt
cG9ydCA8V2ViQ29yZS9KU0RPTUJpbmRpbmcuaD4KICNpbXBvcnQgPHd0Zi9IYXNoTWFwLmg+CiAj
aW1wb3J0IDx3dGYvTWF0aEV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+
CkBAIC02MTIsNyArNjEzLDcgQEAgc3RhdGljIFdLRXJyb3JDb2RlIGNhbGxiYWNrRXJyb3JDb2Rl
KFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikKIHsKICAgICBhdXRvIGhhbmRsZXIg
PSBhZG9wdE5TKFtjb21wbGV0aW9uSGFuZGxlciBjb3B5XSk7CiAKLSAgICBfcGFnZS0+cnVuSmF2
YVNjcmlwdEluTWFpbkZyYW1lKGphdmFTY3JpcHRTdHJpbmcsIFtoYW5kbGVyXShBUEk6OlNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZSogc2VyaWFsaXplZFNjcmlwdFZhbHVlLCBib29sIGhhZEV4Y2VwdGlv
biwgV2ViS2l0OjpTY3JpcHRWYWx1ZUNhbGxiYWNrOjpFcnJvciBlcnJvckNvZGUpIHsKKyAgICBf
cGFnZS0+cnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKGphdmFTY3JpcHRTdHJpbmcsIFtoYW5kbGVy
XShBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogc2VyaWFsaXplZFNjcmlwdFZhbHVlLCBib29s
IGhhZEV4Y2VwdGlvbiwgY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyYgZGV0YWlscywg
V2ViS2l0OjpTY3JpcHRWYWx1ZUNhbGxiYWNrOjpFcnJvciBlcnJvckNvZGUpIHsKICAgICAgICAg
aWYgKCFoYW5kbGVyKQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC02MzcsNyArNjM4LDE4IEBA
IHN0YXRpYyBXS0Vycm9yQ29kZSBjYWxsYmFja0Vycm9yQ29kZShXZWJLaXQ6OkNhbGxiYWNrQmFz
ZTo6RXJyb3IgZXJyb3IpCiAgICAgICAgIGF1dG8gcmF3SGFuZGxlciA9ICh2b2lkICheKShpZCwg
TlNFcnJvciAqKSloYW5kbGVyLmdldCgpOwogICAgICAgICBpZiAoaGFkRXhjZXB0aW9uKSB7CiAg
ICAgICAgICAgICBBU1NFUlQoIXNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk7Ci0gICAgICAgICAgICBy
YXdIYW5kbGVyKG5pbCwgY3JlYXRlTlNFcnJvcihXS0Vycm9ySmF2YVNjcmlwdEV4Y2VwdGlvbk9j
Y3VycmVkKS5nZXQoKSk7CisKKyAgICAgICAgICAgIFJldGFpblB0cjxOU011dGFibGVEaWN0aW9u
YXJ5PiB1c2VySW5mbyA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0
XSk7CisKKyAgICAgICAgICAgIFt1c2VySW5mbyBzZXRPYmplY3Q6bG9jYWxpemVkRGVzY3JpcHRp
b25Gb3JFcnJvckNvZGUoV0tFcnJvckphdmFTY3JpcHRFeGNlcHRpb25PY2N1cnJlZCkgZm9yS2V5
Ok5TTG9jYWxpemVkRGVzY3JpcHRpb25LZXldOworICAgICAgICAgICAgW3VzZXJJbmZvIHNldE9i
amVjdDpzdGF0aWNfY2FzdDxOU1N0cmluZyAqPihkZXRhaWxzLm1lc3NhZ2UpIGZvcktleTpfV0tK
YXZhU2NyaXB0RXhjZXB0aW9uTWVzc2FnZUVycm9yS2V5XTsKKyAgICAgICAgICAgIFt1c2VySW5m
byBzZXRPYmplY3Q6QChkZXRhaWxzLmxpbmVOdW1iZXIpIGZvcktleTpfV0tKYXZhU2NyaXB0RXhj
ZXB0aW9uTGluZU51bWJlckVycm9yS2V5XTsKKyAgICAgICAgICAgIFt1c2VySW5mbyBzZXRPYmpl
Y3Q6QChkZXRhaWxzLmNvbHVtbk51bWJlcikgZm9yS2V5Ol9XS0phdmFTY3JpcHRFeGNlcHRpb25D
b2x1bW5OdW1iZXJFcnJvcktleV07CisKKyAgICAgICAgICAgIGlmICghZGV0YWlscy5zb3VyY2VV
UkwuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIFt1c2VySW5mbyBzZXRPYmplY3Q6c3RhdGlj
X2Nhc3Q8TlNTdHJpbmcgKj4oZGV0YWlscy5zb3VyY2VVUkwpIGZvcktleTpfV0tKYXZhU2NyaXB0
RXhjZXB0aW9uU291cmNlVVJMRXJyb3JLZXldOworCisgICAgICAgICAgICByYXdIYW5kbGVyKG5p
bCwgYWRvcHROUyhbW05TRXJyb3IgYWxsb2NdIGluaXRXaXRoRG9tYWluOldLRXJyb3JEb21haW4g
Y29kZTpXS0Vycm9ySmF2YVNjcmlwdEV4Y2VwdGlvbk9jY3VycmVkIHVzZXJJbmZvOnVzZXJJbmZv
LmdldCgpXSkuZ2V0KCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYTZhYzM1ZTExODE2MmM0
ODJlMjU5MTE2MjM2MjkyM2UzODY4NzA0Yi4uYTMwZWFhNjdlYTE2MmFjMWIwYTIxNzUwNzI4MGU0
NGIyZjI2NjM2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
QEAgLTExMCw2ICsxMTAsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ0RhdGEuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRm9jdXNEaXJlY3Rp
b24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0pTRE9NQmluZGluZy5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvTUlNRVR5cGVSZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyRW1iZWRkZWRP
YmplY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwLmg+CkBA
IC0yNTg3LDEwICsyNTg4LDEwIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb3VudFN0cmluZ01hdGNo
ZXMoY29uc3QgU3RyaW5nJiBzdHJpbmcsIEZpbmRPcHRpb25zIG9wdGlvbnMsCiAgICAgbV9wcm9j
ZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpDb3VudFN0cmluZ01hdGNoZXMoc3RyaW5nLCBv
cHRpb25zLCBtYXhNYXRjaENvdW50KSwgbV9wYWdlSUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94
eTo6cnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKGNvbnN0IFN0cmluZyYgc2NyaXB0LCBzdGQ6OmZ1
bmN0aW9uPHZvaWQgKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKiwgYm9vbCBoYWRFeGNlcHRp
b24sIENhbGxiYWNrQmFzZTo6RXJyb3IpPiBjYWxsYmFja0Z1bmN0aW9uKQordm9pZCBXZWJQYWdl
UHJveHk6OnJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZShjb25zdCBTdHJpbmcmIHNjcmlwdCwgc3Rk
OjpmdW5jdGlvbjx2b2lkIChBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSosIGJvb2wgaGFkRXhj
ZXB0aW9uLCBjb25zdCBFeGNlcHRpb25EZXRhaWxzJiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+IGNh
bGxiYWNrRnVuY3Rpb24pCiB7CiAgICAgaWYgKCFpc1ZhbGlkKCkpIHsKLSAgICAgICAgY2FsbGJh
Y2tGdW5jdGlvbihudWxscHRyLCBmYWxzZSwgQ2FsbGJhY2tCYXNlOjpFcnJvcjo6VW5rbm93bik7
CisgICAgICAgIGNhbGxiYWNrRnVuY3Rpb24obnVsbHB0ciwgZmFsc2UsIEV4Y2VwdGlvbkRldGFp
bHMoKSwgQ2FsbGJhY2tCYXNlOjpFcnJvcjo6VW5rbm93bik7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKQEAgLTQ2ODEsNyArNDY4Miw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzdHJpbmdDYWxs
YmFjayhjb25zdCBTdHJpbmcmIHJlc3VsdFN0cmluZywgdWludDY0X3QgY2FsbGJhY2tJCiAgICAg
Y2FsbGJhY2stPnBlcmZvcm1DYWxsYmFja1dpdGhSZXR1cm5WYWx1ZShyZXN1bHRTdHJpbmcuaW1w
bCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnNjcmlwdFZhbHVlQ2FsbGJhY2soY29uc3Qg
SVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhUmVmZXJlbmNlLCBib29sIGhhZEV4Y2VwdGlvbiwgdWlu
dDY0X3QgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpzY3JpcHRWYWx1ZUNhbGxiYWNr
KGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YVJlZmVyZW5jZSwgYm9vbCBoYWRFeGNlcHRp
b24sIGNvbnN0IEV4Y2VwdGlvbkRldGFpbHMmIGRldGFpbHMsIHVpbnQ2NF90IGNhbGxiYWNrSUQp
CiB7CiAgICAgYXV0byBjYWxsYmFjayA9IG1fY2FsbGJhY2tzLnRha2U8U2NyaXB0VmFsdWVDYWxs
YmFjaz4oY2FsbGJhY2tJRCk7CiAgICAgaWYgKCFjYWxsYmFjaykgewpAQCAtNDY5Myw3ICs0Njk0
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNjcmlwdFZhbHVlQ2FsbGJhY2soY29uc3QgSVBDOjpE
YXRhUmVmZXJlbmNlJiBkYXRhUmVmZXJlbmNlLAogICAgIGRhdGEucmVzZXJ2ZUluaXRpYWxDYXBh
Y2l0eShkYXRhUmVmZXJlbmNlLnNpemUoKSk7CiAgICAgZGF0YS5hcHBlbmQoZGF0YVJlZmVyZW5j
ZS5kYXRhKCksIGRhdGFSZWZlcmVuY2Uuc2l6ZSgpKTsKIAotICAgIGNhbGxiYWNrLT5wZXJmb3Jt
Q2FsbGJhY2tXaXRoUmV0dXJuVmFsdWUoZGF0YS5zaXplKCkgPyBBUEk6OlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZTo6YWRvcHQoZGF0YSkucHRyKCkgOiBudWxscHRyLCBoYWRFeGNlcHRpb24pOworICAg
IGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2tXaXRoUmV0dXJuVmFsdWUoZGF0YS5zaXplKCkgPyBB
UEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6YWRvcHQoZGF0YSkucHRyKCkgOiBudWxscHRyLCBo
YWRFeGNlcHRpb24sIGRldGFpbHMpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6Y29tcHV0ZWRQ
YWdlc0NhbGxiYWNrKGNvbnN0IFZlY3RvcjxJbnRSZWN0PiYgcGFnZVJlY3RzLCBkb3VibGUgdG90
YWxTY2FsZUZhY3RvckZvclByaW50aW5nLCB1aW50NjRfdCBjYWxsYmFja0lEKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGQyMDAyODNiN2I5NTMwYTYxZTI1MDI4
NDdjM2JjN2JjMmQyNGQ0YmYuLjZiYWEzMmQyODFjNzdmOTI3YTFmNDNiNjIxMjBjZTM3ZmI3MWM0
YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE1Nyw2ICsx
NTcsNyBAQCBjbGFzcyBSdW5Mb29wT2JzZXJ2ZXI7CiBjbGFzcyBTaGFyZWRCdWZmZXI7CiBjbGFz
cyBUZXh0SW5kaWNhdG9yOwogc3RydWN0IERpY3Rpb25hcnlQb3B1cEluZm87CitzdHJ1Y3QgRXhj
ZXB0aW9uRGV0YWlsczsKIHN0cnVjdCBGaWxlQ2hvb3NlclNldHRpbmdzOwogc3RydWN0IFNlY3Vy
aXR5T3JpZ2luRGF0YTsKIHN0cnVjdCBUZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2U7CkBAIC0yMjIs
NyArMjIzLDcgQEAgY2xhc3MgUXVpY2tMb29rRG9jdW1lbnREYXRhOwogdHlwZWRlZiBHZW5lcmlj
Q2FsbGJhY2s8dWludDY0X3Q+IFVuc2lnbmVkQ2FsbGJhY2s7CiB0eXBlZGVmIEdlbmVyaWNDYWxs
YmFjazxFZGl0aW5nUmFuZ2U+IEVkaXRpbmdSYW5nZUNhbGxiYWNrOwogdHlwZWRlZiBHZW5lcmlj
Q2FsbGJhY2s8Y29uc3QgU3RyaW5nJj4gU3RyaW5nQ2FsbGJhY2s7Ci10eXBlZGVmIEdlbmVyaWND
YWxsYmFjazxBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSosIGJvb2w+IFNjcmlwdFZhbHVlQ2Fs
bGJhY2s7Cit0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSosIGJvb2wsIGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRldGFpbHMmPiBTY3JpcHRWYWx1ZUNh
bGxiYWNrOwogCiAjaWYgUExBVEZPUk0oR1RLKQogdHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8QVBJ
OjpFcnJvcio+IFByaW50RmluaXNoZWRDYWxsYmFjazsKQEAgLTc2Miw3ICs3NjMsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBnZXRTZWxlY3Rpb25Bc1dlYkFyY2hpdmVEYXRhKHN0ZDo6ZnVuY3Rpb248
dm9pZCAoQVBJOjpEYXRhKiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+KTsKICAgICB2b2lkIGdldFNv
dXJjZUZvckZyYW1lKFdlYkZyYW1lUHJveHkqLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKGNvbnN0IFN0
cmluZyYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPik7CiAgICAgdm9pZCBnZXRXZWJBcmNoaXZlT2ZG
cmFtZShXZWJGcmFtZVByb3h5Kiwgc3RkOjpmdW5jdGlvbjx2b2lkIChBUEk6OkRhdGEqLCBDYWxs
YmFja0Jhc2U6OkVycm9yKT4pOwotICAgIHZvaWQgcnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKGNv
bnN0IFN0cmluZyYsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFs
dWUqLCBib29sIGhhZEV4Y2VwdGlvbiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+IGNhbGxiYWNrRnVu
Y3Rpb24pOworICAgIHZvaWQgcnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKGNvbnN0IFN0cmluZyYs
IHN0ZDo6ZnVuY3Rpb248dm9pZCAoQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqLCBib29sIGhh
ZEV4Y2VwdGlvbiwgY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyYsIENhbGxiYWNrQmFz
ZTo6RXJyb3IpPiBjYWxsYmFja0Z1bmN0aW9uKTsKICAgICB2b2lkIGZvcmNlUmVwYWludChQYXNz
UmVmUHRyPFZvaWRDYWxsYmFjaz4pOwogCiAgICAgZmxvYXQgaGVhZGVySGVpZ2h0KFdlYkZyYW1l
UHJveHkqKTsKQEAgLTEzMjMsNyArMTMyNCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkYXRhQ2Fs
bGJhY2soY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgdWludDY0X3QpOwogICAgIHZvaWQgaW1h
Z2VDYWxsYmFjayhjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYsIHVpbnQ2NF90KTsKICAg
ICB2b2lkIHN0cmluZ0NhbGxiYWNrKGNvbnN0IFN0cmluZyYsIHVpbnQ2NF90KTsKLSAgICB2b2lk
IHNjcmlwdFZhbHVlQ2FsbGJhY2soY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgYm9vbCBoYWRF
eGNlcHRpb24sIHVpbnQ2NF90KTsKKyAgICB2b2lkIHNjcmlwdFZhbHVlQ2FsbGJhY2soY29uc3Qg
SVBDOjpEYXRhUmVmZXJlbmNlJiwgYm9vbCBoYWRFeGNlcHRpb24sIGNvbnN0IFdlYkNvcmU6OkV4
Y2VwdGlvbkRldGFpbHMmLCB1aW50NjRfdCk7CiAgICAgdm9pZCBjb21wdXRlZFBhZ2VzQ2FsbGJh
Y2soY29uc3QgVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+JiwgZG91YmxlIHRvdGFsU2NhbGVGYWN0
b3JGb3JQcmludGluZywgdWludDY0X3QpOwogICAgIHZvaWQgdmFsaWRhdGVDb21tYW5kQ2FsbGJh
Y2soY29uc3QgU3RyaW5nJiwgYm9vbCwgaW50LCB1aW50NjRfdCk7CiAgICAgdm9pZCB1bnNpZ25l
ZENhbGxiYWNrKHVpbnQ2NF90LCB1aW50NjRfdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA1ZjZiNWUzMjViMzAzMjlmODky
ZGM4YWQ4MDRkNjBhODIxOGEzNzQ1Li5lMmIyYzdkMTFlYmFlMWJjNWRiNWFmOWIyMWI5YWRiN2Q2
N2NkMjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW4KQEAgLTE1OSw3ICsxNTksNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkg
ewogICAgIERhdGFDYWxsYmFjayhJUEM6OkRhdGFSZWZlcmVuY2UgcmVzdWx0RGF0YSwgdWludDY0
X3QgY2FsbGJhY2tJRCkKICAgICBJbWFnZUNhbGxiYWNrKFdlYktpdDo6U2hhcmVhYmxlQml0bWFw
OjpIYW5kbGUgYml0bWFwSGFuZGxlLCB1aW50NjRfdCBjYWxsYmFja0lEKQogICAgIFN0cmluZ0Nh
bGxiYWNrKFN0cmluZyByZXN1bHRTdHJpbmcsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCi0gICAgU2Ny
aXB0VmFsdWVDYWxsYmFjayhJUEM6OkRhdGFSZWZlcmVuY2UgcmVzdWx0RGF0YSwgYm9vbCBoYWRF
eGNlcHRpb24sIHVpbnQ2NF90IGNhbGxiYWNrSUQpCisgICAgU2NyaXB0VmFsdWVDYWxsYmFjayhJ
UEM6OkRhdGFSZWZlcmVuY2UgcmVzdWx0RGF0YSwgYm9vbCBoYWRFeGNlcHRpb24sIHN0cnVjdCBX
ZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxzIGRldGFpbHMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAg
ICAgQ29tcHV0ZWRQYWdlc0NhbGxiYWNrKFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0PiBwYWdlUmVj
dHMsIGRvdWJsZSB0b3RhbFNjYWxlRmFjdG9yRm9yUHJpbnRpbmcsIHVpbnQ2NF90IGNhbGxiYWNr
SUQpCiAgICAgVmFsaWRhdGVDb21tYW5kQ2FsbGJhY2soU3RyaW5nIGNvbW1hbmQsIGJvb2wgaXNF
bmFibGVkLCBpbnQzMl90IHN0YXRlLCB1aW50NjRfdCBjYWxsYmFja0lEKQogICAgIEVkaXRpbmdS
YW5nZUNhbGxiYWNrKHN0cnVjdCBXZWJLaXQ6OkVkaXRpbmdSYW5nZSByYW5nZSwgdWludDY0X3Qg
Y2FsbGJhY2tJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAppbmRleCAxNWRlNjFkMGZhN2YyZjExY2I1Nzk1N2IyNGNhNThmZGYwOGFiOGJlLi5jZTlm
YzgyZmVmMWYxNzdhOGE2YjZkMjQ1NzVkYWViMjdlMDcyZjE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0yNTA1LDcgKzI1MDUsOCBAQCB2
b2lkIFdlYlBhZ2U6OnJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZShjb25zdCBTdHJpbmcmIHNjcmlw
dCwgdWludDY0X3QgY2FsbGJhY2tJRAogICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IHNlcmlhbGl6ZWRSZXN1bHRWYWx1ZTsKICAgICBKU0xvY2tIb2xkZXIgbG9jayhKU0RPTVdpbmRv
dzo6Y29tbW9uVk0oKSk7CiAgICAgYm9vbCBoYWRFeGNlcHRpb24gPSB0cnVlOwotICAgIGlmIChK
U1ZhbHVlIHJlc3VsdFZhbHVlID0gbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLT5zY3JpcHQoKS5l
eGVjdXRlU2NyaXB0KHNjcmlwdCwgdHJ1ZSkuanNWYWx1ZSgpKSB7CisgICAgRXhjZXB0aW9uRGV0
YWlscyBkZXRhaWxzOworICAgIGlmIChKU1ZhbHVlIHJlc3VsdFZhbHVlID0gbV9tYWluRnJhbWUt
PmNvcmVGcmFtZSgpLT5zY3JpcHQoKS5leGVjdXRlU2NyaXB0KHNjcmlwdCwgdHJ1ZSwgJmRldGFp
bHMpLmpzVmFsdWUoKSkgewogICAgICAgICBoYWRFeGNlcHRpb24gPSBmYWxzZTsKICAgICAgICAg
c2VyaWFsaXplZFJlc3VsdFZhbHVlID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUobV9t
YWluRnJhbWUtPmpzQ29udGV4dCgpLAogICAgICAgICAgICAgdG9SZWYobV9tYWluRnJhbWUtPmNv
cmVGcmFtZSgpLT5zY3JpcHQoKS5nbG9iYWxPYmplY3QobWFpblRocmVhZE5vcm1hbFdvcmxkKCkp
LT5nbG9iYWxFeGVjKCksIHJlc3VsdFZhbHVlKSwgbnVsbHB0cik7CkBAIC0yNTE0LDcgKzI1MTUs
NyBAQCB2b2lkIFdlYlBhZ2U6OnJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZShjb25zdCBTdHJpbmcm
IHNjcmlwdCwgdWludDY0X3QgY2FsbGJhY2tJRAogICAgIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRh
UmVmZXJlbmNlOwogICAgIGlmIChzZXJpYWxpemVkUmVzdWx0VmFsdWUpCiAgICAgICAgIGRhdGFS
ZWZlcmVuY2UgPSBzZXJpYWxpemVkUmVzdWx0VmFsdWUtPmRhdGEoKTsKLSAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OlNjcmlwdFZhbHVlQ2FsbGJhY2soZGF0YVJlZmVyZW5jZSwgaGFk
RXhjZXB0aW9uLCBjYWxsYmFja0lEKSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpTY3JpcHRWYWx1ZUNhbGxiYWNrKGRhdGFSZWZlcmVuY2UsIGhhZEV4Y2VwdGlvbiwgZGV0YWls
cywgY2FsbGJhY2tJRCkpOwogfQogCiB2b2lkIFdlYlBhZ2U6OmdldENvbnRlbnRzQXNTdHJpbmco
dWludDY0X3QgY2FsbGJhY2tJRCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCA1OWI3YjkwNWQwMDg4YTBjNzNlNWY1ZDg3NmIwNGU4ZjZkOTRiNGY2
Li5mMDFhMjhlMzIwMGVjY2MzNGJhNDEyZmJlZmMyMDIyYmY5NzVmYjJmIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MTUtMTAtMjMgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgRXhwb3NlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGV4Y2VwdGlvbiBpbiBXS0Vycm9y
SmF2YVNjcmlwdEV4Y2VwdGlvbk9jY3VycmVkIGVycm9ycworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwNTI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFTY3JpcHQubW06CisgICAgICAgIChU
RVNUKToKKyAgICAgICAgVGVzdCB0aGUgdmFyaW91cyBuZXcga2V5cy4KKwogMjAxNS0xMC0yMyAg
UGVyIEFybmUgVm9sbGFuICA8cGVhdm9Ab3V0bG9vay5jb20+CiAKICAgICAgICAgW1dpbkNhaXJv
XSBJbXByb3ZlIHRlc3QgcmVzdWx0cyBmb3IgZmFzdCBsYXlvdXR0ZXN0cy4KZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggNThiMzJjOWJkNmVmOWRiNjVmYjhmMWZjZTRiNTFiMGY0ZmVkODdjZi4u
MDQ2MmE4Y2I0NDM4MGFiM2YzMTZiOTk2MmEwM2UyZmZhMTFlYWZmZSAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTM1LDcgKzM1LDcgQEAKIAkJMjk3MjM0QjcxNzNBRkFDNzAwOTgzNjAxIC8q
IEN1c3RvbVByb3RvY29sc0ludmFsaWRTY2hlbWVfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5NzIzNEI1MTczQUZBQzcwMDk4MzYwMSAv
KiBDdXN0b21Qcm90b2NvbHNJbnZhbGlkU2NoZW1lX0J1bmRsZS5jcHAgKi87IH07CiAJCTJEMUZF
MEIwMUFENDY1QzEwMDZDRDlFNiAvKiBGaXhlZExheW91dFNpemUubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDFGRTBBRjFBRDQ2NUMxMDA2Q0Q5RTYg
LyogRml4ZWRMYXlvdXRTaXplLm1tICovOyB9OwogCQkyRDlBNTNBRjFCMzFGQThEMDA3NEQ1QUEg
LyogU2hyaW5rVG9GaXQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyRDlBNTNBRTFCMzFGQThEMDA3NEQ1QUEgLyogU2hyaW5rVG9GaXQubW0gKi87IH07
Ci0JCTJERDM1NTM2MUJEMDgzNzgwMDVERjRBNyAvKiBBdXRvTGF5b3V0SW50ZWdyYXRpb24ubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREQzNTUzNTFC
RDA4Mzc4MDA1REY0QTcgLyogQXV0b0xheW91dEludGVncmF0aW9uLm1tICovOyBzZXR0aW5ncyA9
IHtBU1NFVF9UQUdTID0gKCk7IH07IH07CisJCTJERDM1NTM2MUJEMDgzNzgwMDVERjRBNyAvKiBB
dXRvTGF5b3V0SW50ZWdyYXRpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyREQzNTUzNTFCRDA4Mzc4MDA1REY0QTcgLyogQXV0b0xheW91dEludGVn
cmF0aW9uLm1tICovOyB9OwogCQkyREQ3RDNBRjE3ODIyN0IzMDAyNkUxRTMgLyogbG90cy1vZi10
ZXh0LXZlcnRpY2FsLWxyLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkREN0QzQUUxNzgyMjdBQzAwMjZFMUUzIC8qIGxvdHMtb2YtdGV4
dC12ZXJ0aWNhbC1sci5odG1sICovOyB9OwogCQkyRTc3NjVDRDE2QzREODBBMDBCQTJCQjEgLyog
bWFpbklPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJFNzc2NUNDMTZDNEQ4MEEwMEJBMkJCMSAvKiBtYWluSU9TLm1tICovOyB9OwogCQkyRTc3NjVD
RjE2QzREODExMDBCQTJCQjEgLyogbWFpbk1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNzc2NUNFMTZDNEQ4MTEwMEJBMkJCMSAvKiBtYWluTWFj
Lm1tICovOyB9OwpAQCAtMjY1LDcgKzI2NSw3IEBACiAJCTkzRjdFODZGMTREQzhFNUMwMEM4NEE5
OSAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXNfQnVuZGxlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjdFODZFMTREQzhF
NUIwMEM4NEE5OSAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXNfQnVuZGxl
LmNwcCAqLzsgfTsKIAkJOUIyNkZDQ0ExNTlEMTZERTAwQ0MzNzY1IC8qIEhUTUxGb3JtQ29sbGVj
dGlvbk5hbWVkSXRlbS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDlCMjZGQ0I0MTU5RDE1RTcwMENDMzc2NSAvKiBIVE1MRm9ybUNvbGxl
Y3Rpb25OYW1lZEl0ZW0uaHRtbCAqLzsgfTsKIAkJOUI0RjhGQTcxNTlENTJERDAwMkQ5Rjk0IC8q
IEhUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI0RjhGQTYxNTlENTJDQTAwMkQ5Rjk0IC8qIEhU
TUxDb2xsZWN0aW9uTmFtZWRJdGVtLmh0bWwgKi87IH07Ci0JCTlCNzkxNjUwMUJEODlEMEQwMEQ1
MEI4RiAvKiBGaXJzdFJlc3BvbmRlclNjcm9sbGluZ1Bvc2l0aW9uLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI3OTE2NEYxQkQ4OUQwRDAwRDUwQjhG
IC8qIEZpcnN0UmVzcG9uZGVyU2Nyb2xsaW5nUG9zaXRpb24ubW0gKi87IHNldHRpbmdzID0ge0FT
U0VUX1RBR1MgPSAoKTsgfTsgfTsKKwkJOUI3OTE2NTAxQkQ4OUQwRDAwRDUwQjhGIC8qIEZpcnN0
UmVzcG9uZGVyU2Nyb2xsaW5nUG9zaXRpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5Qjc5MTY0RjFCRDg5RDBEMDBENTBCOEYgLyogRmlyc3RSZXNw
b25kZXJTY3JvbGxpbmdQb3NpdGlvbi5tbSAqLzsgfTsKIAkJQTEzRUJCQUExQjg3NDI4RDAwMDk3
MTEwIC8qIFdlYlByb2Nlc3NQbHVnSW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBMTNFQkJBOTFCODc0MjhEMDAwOTcxMTAgLyogV2ViUHJvY2Vzc1Bs
dWdJbi5tbSAqLzsgfTsKIAkJQTEzRUJCQUIxQjg3NDM0NjAwMDk3MTEwIC8qIFBsYXRmb3JtVXRp
bGl0aWVzQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjEzOUU3MjFBNDIzQTJCMDBGNTkwRjUgLyogUGxhdGZvcm1VdGlsaXRpZXNDb2NvYS5t
bSAqLzsgfTsKIAkJQTEzRUJCQjAxQjg3NDM2RjAwMDk3MTEwIC8qIEJ1bmRsZVBhcmFtZXRlcnNQ
bHVnSW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
MTNFQkJBRTFCODc0MzZGMDAwOTcxMTAgLyogQnVuZGxlUGFyYW1ldGVyc1BsdWdJbi5tbSAqLzsg
fTsKQEAgLTI3NCw3ICsyNzQsNyBAQAogCQlBMTRGQzU4ODFCODk5MUJGMDBEMTA3RUIgLyogQ29u
dGVudEZpbHRlcmluZy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEExNEZDNTg2MUI4OTkxQjYwMEQxMDdFQiAvKiBDb250ZW50RmlsdGVyaW5nLm1tICov
OyB9OwogCQlBMTRGQzU4QjFCODk5MjcxMDBEMTA3RUIgLyogQ29udGVudEZpbHRlcmluZ1BsdWdJ
bi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExNEZD
NTg5MUI4OTkyNzEwMEQxMDdFQiAvKiBDb250ZW50RmlsdGVyaW5nUGx1Z0luLm1tICovOyB9Owog
CQlBMTRGQzU5MDFCOEFFMzZGMDBEMTA3RUIgLyogVGVzdFByb3RvY29sLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE0RkM1OEUxQjhBRTM2NTAwRDEw
N0VCIC8qIFRlc3RQcm90b2NvbC5tbSAqLzsgfTsKLQkJQTFDNEZCNkUxQkFDQ0U1MDAwMzc0MkQw
IC8qIFF1aWNrTG9vay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEExQzRGQjZDMUJBQ0NFNTAwMDM3NDJEMCAvKiBRdWlja0xvb2subW0gKi87IHNldHRp
bmdzID0ge0FTU0VUX1RBR1MgPSAoKTsgfTsgfTsKKwkJQTFDNEZCNkUxQkFDQ0U1MDAwMzc0MkQw
IC8qIFF1aWNrTG9vay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEExQzRGQjZDMUJBQ0NFNTAwMDM3NDJEMCAvKiBRdWlja0xvb2subW0gKi87IH07CiAJ
CUExQzRGQjczMUJBQ0QxQ0EwMDM3NDJEMCAvKiBwYWdlcy5wYWdlcyBpbiBDb3B5IFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUM0RkI3MjFCQUNEMUI3MDAz
NzQyRDAgLyogcGFnZXMucGFnZXMgKi87IH07CiAJCUE1N0EzNEYyMTZBRjZCMkIwMEMyNTAxRiAv
KiBQYWdlVmlzaWJpbGl0eVN0YXRlV2l0aFdpbmRvd0NoYW5nZXMuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTdBMzRGMTE2QUY2OUUy
MDBDMjUwMUYgLyogUGFnZVZpc2liaWxpdHlTdGF0ZVdpdGhXaW5kb3dDaGFuZ2VzLmh0bWwgKi87
IH07CiAJCUE1RTIwMjc1MTVCMjFGNkUwMEMxM0UxNCAvKiBXaW5kb3dsZXNzV2ViVmlld1dpdGhN
ZWRpYS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE1RTIwMjcwMTVCMjE4MDYwMEMxM0UxNCAvKiBXaW5kb3dsZXNzV2ViVmlld1dpdGhN
ZWRpYS5odG1sICovOyB9OwpAQCAtNDQ1LDcgKzQ0NSw3IEBACiAJCTAwQ0Q5RjYyMTVCRTMxMkMw
MDJEQTJDRSAvKiBCYWNrRm9yd2FyZExpc3QubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBCYWNrRm9yd2FyZExpc3QubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTBCQ0Q4MzM0MTQ4NTdDRTQwMEVBMjAwMyAvKiBIYXNoTWFwLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhhc2hNYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwQkNEODU2OTE0ODVDOThCMDBFQTIwMDMgLyogVGVtcG9yYXJ5Q2hhbmdl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRlbXBvcmFyeUNoYW5n
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGMTM5RTcyMUE0MjNBMkIwMEY1
OTBGNSAvKiBQbGF0Zm9ybVV0aWxpdGllc0NvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBuYW1lID0gUGxhdGZvcm1VdGlsaXRpZXNDb2NvYS5tbTsgcGF0aCA9IGNvY29h
L1BsYXRmb3JtVXRpbGl0aWVzQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTBGMTM5RTcyMUE0MjNBMkIwMEY1OTBGNSAvKiBQbGF0Zm9ybVV0aWxpdGllc0NvY29hLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gUGxhdGZvcm1VdGlsaXRpZXND
b2NvYS5tbTsgcGF0aCA9IC4uLy4uL2NvY29hL1BsYXRmb3JtVXRpbGl0aWVzQ29jb2EubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMTM5RTc1MUE0MjNBNTMwMEY1OTBGNSAvKiBX
ZWFrT2JqQ1B0ci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdl
YWtPYmpDUHRyLm1tOyBwYXRoID0gY29jb2EvV2Vha09iakNQdHIubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGMTdCQkQ0MTVBRjZDNEQwMDdBQjc1MyAvKiBXZWJDb3JlU3RhdGlz
dGljc1dpdGhOb1dlYlByb2Nlc3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV2ViQ29yZVN0YXRpc3RpY3NXaXRoTm9XZWJQcm9jZXNzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEYzQjk0QTUxQTc3MjY2QzAwREUzMjcyIC8qIFdLV2ViVmlld0V2
YWx1YXRlSmF2YVNjcmlwdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFdLV2ViVmlld0V2YWx1YXRlSmF2YVNjcmlwdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTY0NiwxMiArNjQ2LDEyIEBACiAJCUExM0VCQkE5MUI4NzQyOEQwMDA5NzExMCAv
KiBXZWJQcm9jZXNzUGx1Z0luLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gV2ViUHJvY2Vzc1BsdWdJbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTEzRUJCQUMxQjg3NDM2RjAwMDk3MTEwIC8qIEJ1bmRsZVBhcmFtZXRlcnMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBCdW5kbGVQYXJhbWV0ZXJzLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTNFQkJBRTFCODc0MzZGMDAwOTcxMTAgLyogQnVu
ZGxlUGFyYW1ldGVyc1BsdWdJbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IEJ1bmRsZVBhcmFtZXRlcnNQbHVnSW4ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUExNEZDNTgzMUI4OTczOTEwMEQxMDdFQiAvKiBXS1dlYlZpZXdDb25maWd1cmF0aW9u
RXh0cmFzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJW
aWV3Q29uZmlndXJhdGlvbkV4dHJhcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
QTE0RkM1ODQxQjg5NzM5MTAwRDEwN0VCIC8qIFdLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJWaWV3Q29uZmlndXJhdGlv
bkV4dHJhcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTRGQzU4MzFCODk3Mzkx
MDBEMTA3RUIgLyogV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMu
bW07IHBhdGggPSAuLi8uLi9XS1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlBMTRGQzU4NDFCODk3MzkxMDBEMTA3RUIgLyogV0tXZWJW
aWV3Q29uZmlndXJhdGlvbkV4dHJhcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBXS1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLmg7IHBhdGggPSAuLi8uLi9XS1dlYlZpZXdD
b25maWd1cmF0aW9uRXh0cmFzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExNEZD
NTg2MUI4OTkxQjYwMEQxMDdFQiAvKiBDb250ZW50RmlsdGVyaW5nLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ29udGVudEZpbHRlcmluZy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTE0RkM1ODkxQjg5OTI3MTAwRDEwN0VCIC8qIENvbnRlbnRG
aWx0ZXJpbmdQbHVnSW4ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBDb250ZW50RmlsdGVyaW5nUGx1Z0luLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlBMTRGQzU4RDFCOEFFMzY1MDBEMTA3RUIgLyogVGVzdFByb3RvY29sLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFRlc3RQcm90b2NvbC5oOyBwYXRoID0gY29jb2EvVGVzdFBy
b3RvY29sLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUExNEZDNThFMUI4QUUzNjUw
MEQxMDdFQiAvKiBUZXN0UHJvdG9jb2wubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IG5hbWUgPSBUZXN0UHJvdG9jb2wubW07IHBhdGggPSBjb2NvYS9UZXN0UHJvdG9jb2wubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExNEZDNThEMUI4QUUzNjUwMEQxMDdFQiAv
KiBUZXN0UHJvdG9jb2wuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVGVzdFBy
b3RvY29sLmg7IHBhdGggPSAuLi8uLi9jb2NvYS9UZXN0UHJvdG9jb2wuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQTE0RkM1OEUxQjhBRTM2NTAwRDEwN0VCIC8qIFRlc3RQcm90b2Nv
bC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFRlc3RQcm90b2Nv
bC5tbTsgcGF0aCA9IC4uLy4uL2NvY29hL1Rlc3RQcm90b2NvbC5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTFBNEZFNUQxOEREM0RCNzAwQjVFQThBIC8qIERvd25sb2FkLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRG93bmxvYWQubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExQzRGQjZDMUJBQ0NFNTAwMDM3NDJEMCAvKiBRdWlj
a0xvb2subW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBRdWlja0xv
b2subW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExQzRGQjcyMUJBQ0QxQjcwMDM3
NDJEMCAvKiBwYWdlcy5wYWdlcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IGZpbGU7IG5hbWUgPSBwYWdlcy5wYWdlczsgcGF0aCA9IGlvcy9wYWdlcy5w
YWdlczsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwpAQCAtODM2LDcgKzgzNiw2IEBACiAJ
CQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTQ0QTgyRTdCMTkyNTFCMzUw
MEMxQzhDNCAvKiBDb2NvYSAqLywKLQkJCQkwRjEzOUU3MTFBNDIzQTFEMDBGNTkwRjUgLyogY29j
b2EgKi8sCiAJCQkJQkM1NzU5NDQxMjZFNzMzQzAwNkYwRjEyIC8qIEluamVjdGVkQnVuZGxlICov
LAogCQkJCTJFOTY2MERDMTZDMDdEN0IwMDM3MUI0MiAvKiBpb3MgKi8sCiAJCQkJQkNBNjFDM0Ex
MTcwMEI5NDAwNDYwRDFFIC8qIG1hYyAqLywKQEAgLTg2OCwxOSArODY3LDYgQEAKIAkJCW5hbWUg
PSAiRXh0ZXJuYWwgRnJhbWV3b3JrcyBhbmQgTGlicmFyaWVzIjsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CiAJCX07Ci0JCTBGMTM5RTcxMUE0MjNBMUQwMEY1OTBGNSAvKiBjb2NvYSAqLyA9
IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJQTEzRUJCNDQxQjg3
MzMyQjAwMDk3MTEwIC8qIFdlYlByb2Nlc3NQbHVnSW4gKi8sCi0JCQkJMEYxMzlFNzIxQTQyM0Ey
QjAwRjU5MEY1IC8qIFBsYXRmb3JtVXRpbGl0aWVzQ29jb2EubW0gKi8sCi0JCQkJQTE0RkM1OEQx
QjhBRTM2NTAwRDEwN0VCIC8qIFRlc3RQcm90b2NvbC5oICovLAotCQkJCUExNEZDNThFMUI4QUUz
NjUwMEQxMDdFQiAvKiBUZXN0UHJvdG9jb2wubW0gKi8sCi0JCQkJQTE0RkM1ODQxQjg5NzM5MTAw
RDEwN0VCIC8qIFdLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMuaCAqLywKLQkJCQlBMTRGQzU4
MzFCODk3MzkxMDBEMTA3RUIgLyogV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5tbSAqLywK
LQkJCSk7Ci0JCQluYW1lID0gY29jb2E7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9
OwogCQkwRjEzOUU3NDFBNDIzQTQ2MDBGNTkwRjUgLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtOTU3LDYgKzk0MywxMiBAQAogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQk5M0E3RUIzQzE4RkE2M0E0MDA5RTc2NzAg
LyogVVJMRXh0cmFzLm1tICovLAorCQkJCUExM0VCQjQ0MUI4NzMzMkIwMDA5NzExMCAvKiBXZWJQ
cm9jZXNzUGx1Z0luICovLAorCQkJCTBGMTM5RTcyMUE0MjNBMkIwMEY1OTBGNSAvKiBQbGF0Zm9y
bVV0aWxpdGllc0NvY29hLm1tICovLAorCQkJCUExNEZDNThEMUI4QUUzNjUwMEQxMDdFQiAvKiBU
ZXN0UHJvdG9jb2wuaCAqLywKKwkJCQlBMTRGQzU4RTFCOEFFMzY1MDBEMTA3RUIgLyogVGVzdFBy
b3RvY29sLm1tICovLAorCQkJCUExNEZDNTg0MUI4OTczOTEwMEQxMDdFQiAvKiBXS1dlYlZpZXdD
b25maWd1cmF0aW9uRXh0cmFzLmggKi8sCisJCQkJQTE0RkM1ODMxQjg5NzM5MTAwRDEwN0VCIC8q
IFdLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMubW0gKi8sCiAJCQkpOwogCQkJbmFtZSA9IENv
Y29hOwogCQkJcGF0aCA9IFRlc3RzL0NvY29hOwpAQCAtOTg2LDcgKzk3OCw3IEBACiAJCQkJQTEz
RUJCQTkxQjg3NDI4RDAwMDk3MTEwIC8qIFdlYlByb2Nlc3NQbHVnSW4ubW0gKi8sCiAJCQkpOwog
CQkJbmFtZSA9IFdlYlByb2Nlc3NQbHVnSW47Ci0JCQlwYXRoID0gY29jb2EvV2ViUHJvY2Vzc1Bs
dWdJbjsKKwkJCXBhdGggPSAuLi8uLi9jb2NvYS9XZWJQcm9jZXNzUGx1Z0luOwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKIAkJQTFDNEZCNkYxQkFDQ0VGQTAwMzc0MkQwIC8qIFJl
c291cmNlcyAqLyA9IHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0MkNvY29hL1dLV2ViVmlld0V2YWx1YXRlSmF2YVNjcmlwdC5tbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dLV2ViVmlld0V2YWx1YXRlSmF2YVNjcmlwdC5tbQpp
bmRleCAyMGIyOTc3MzUxNjAxMDRkZWI5MjE1NTZmMjAzZTRkZjY0NmM2YTg5Li45OTdmYThlZWI3
Yjk3NzA5MTE2MjYwOTI2M2NjZjFiMzBhY2Q4NjVlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFTY3JpcHQubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvV0tXZWJWaWV3RXZh
bHVhdGVKYXZhU2NyaXB0Lm1tCkBAIC0zMSwxMCArMzEsMjMgQEAKICNpbXBvcnQgIlBsYXRmb3Jt
VXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJUZXN0LmgiCiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3
Lmg+CisjaW1wb3J0IDxXZWJLaXQvV0tFcnJvclByaXZhdGUuaD4KICNpbXBvcnQgPHd0Zi9SZXRh
aW5QdHIuaD4KIAogc3RhdGljIGJvb2wgaXNEb25lOwogCitAaW50ZXJmYWNlIEV2YWx1YXRlSmF2
YVNjcmlwdE5hdmlnYXRpb25EZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS05hdmlnYXRpb25EZWxlZ2F0
ZT4KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIEV2YWx1YXRlSmF2YVNjcmlwdE5hdmlnYXRpb25E
ZWxlZ2F0ZQorCistICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkRmluaXNo
TmF2aWdhdGlvbjooV0tOYXZpZ2F0aW9uICopbmF2aWdhdGlvbgoreworICAgIGlzRG9uZSA9IHRy
dWU7Cit9CisKK0BlbmQKKwogVEVTVChXS1dlYlZpZXcsIEV2YWx1YXRlSmF2YVNjcmlwdEJsb2Nr
Q3Jhc2gpCiB7CiAgICAgUmV0YWluUHRyPFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0TlMoW1tX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCld
KTsKQEAgLTYzLDE0ICs3NiwxNyBAQCBURVNUKFdLV2ViVmlldywgRXZhbHVhdGVKYXZhU2NyaXB0
QmxvY2tDcmFzaCkKIFRFU1QoV0tXZWJWaWV3LCBFdmFsdWF0ZUphdmFTY3JpcHRFcnJvckNhc2Vz
KQogewogICAgIFJldGFpblB0cjxXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7Cisg
ICAgUmV0YWluUHRyPEV2YWx1YXRlSmF2YVNjcmlwdE5hdmlnYXRpb25EZWxlZ2F0ZT4gZGVsZWdh
dGUgPSBhZG9wdE5TKFtbRXZhbHVhdGVKYXZhU2NyaXB0TmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9j
XSBpbml0XSk7CisgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdl
dCgpXTsKIAogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVz
dFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZSIg
d2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3Vy
Y2VzIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKIAogICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNj
cmlwdDpAImRvY3VtZW50LmJvZHkiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vy
cm9yICplcnJvcikgewogICAgICAgICBFWFBFQ1RfTlVMTChyZXN1bHQpOwogICAgICAgICBFWFBF
Q1RfV0tfU1RSRVEoQCJXS0Vycm9yRG9tYWluIiwgW2Vycm9yIGRvbWFpbl0pOwotICAgICAgICBF
WFBFQ1RfRVEoNSwgW2Vycm9yIGNvZGVdKTsKKyAgICAgICAgRVhQRUNUX0VRKFdLRXJyb3JKYXZh
U2NyaXB0UmVzdWx0VHlwZUlzVW5zdXBwb3J0ZWQsIFtlcnJvciBjb2RlXSk7CiAKICAgICAgICAg
aXNEb25lID0gdHJ1ZTsKICAgICB9XTsKQEAgLTgxLDcgKzk3LDI2IEBAIFRFU1QoV0tXZWJWaWV3
LCBFdmFsdWF0ZUphdmFTY3JpcHRFcnJvckNhc2VzKQogICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2
YVNjcmlwdDpAImRvY3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKGRvY3VtZW50LCBkb2N1bWVudCki
IGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgewogICAgICAg
ICBFWFBFQ1RfTlVMTChyZXN1bHQpOwogICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJXS0Vycm9y
RG9tYWluIiwgW2Vycm9yIGRvbWFpbl0pOwotICAgICAgICBFWFBFQ1RfRVEoNCwgW2Vycm9yIGNv
ZGVdKTsKKyAgICAgICAgRVhQRUNUX0VRKFdLRXJyb3JKYXZhU2NyaXB0RXhjZXB0aW9uT2NjdXJy
ZWQsIFtlcnJvciBjb2RlXSk7CisgICAgICAgIEVYUEVDVF9OT1RfTlVMTChbZXJyb3IudXNlcklu
Zm8gb2JqZWN0Rm9yS2V5Ol9XS0phdmFTY3JpcHRFeGNlcHRpb25NZXNzYWdlRXJyb3JLZXldKTsK
KyAgICAgICAgRVhQRUNUX0dUKFtbZXJyb3IudXNlckluZm8gb2JqZWN0Rm9yS2V5Ol9XS0phdmFT
Y3JpcHRFeGNlcHRpb25NZXNzYWdlRXJyb3JLZXldIGxlbmd0aF0sICh1bnNpZ25lZCBsb25nKTAp
OworICAgICAgICBFWFBFQ1RfRVEoMSwgW1tlcnJvci51c2VySW5mbyBvYmplY3RGb3JLZXk6X1dL
SmF2YVNjcmlwdEV4Y2VwdGlvbkxpbmVOdW1iZXJFcnJvcktleV0gaW50VmFsdWVdKTsKKyAgICAg
ICAgRVhQRUNUX0VRKDI3LCBbW2Vycm9yLnVzZXJJbmZvIG9iamVjdEZvcktleTpfV0tKYXZhU2Ny
aXB0RXhjZXB0aW9uQ29sdW1uTnVtYmVyRXJyb3JLZXldIGludFZhbHVlXSk7CisKKyAgICAgICAg
aXNEb25lID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIGlzRG9uZSA9IGZhbHNlOworICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2
YVNjcmlwdDpAIlxuXG50aHJvdyAnc29tZXRoaW5nIGJhZCciIGNvbXBsZXRpb25IYW5kbGVyOl4o
aWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChyZXN1bHQp
OworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJXS0Vycm9yRG9tYWluIiwgW2Vycm9yIGRvbWFp
bl0pOworICAgICAgICBFWFBFQ1RfRVEoV0tFcnJvckphdmFTY3JpcHRFeGNlcHRpb25PY2N1cnJl
ZCwgW2Vycm9yIGNvZGVdKTsKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAic29tZXRoaW5nIGJh
ZCIsIFtlcnJvci51c2VySW5mbyBvYmplY3RGb3JLZXk6X1dLSmF2YVNjcmlwdEV4Y2VwdGlvbk1l
c3NhZ2VFcnJvcktleV0pOworICAgICAgICBFWFBFQ1RfRVEoMywgW1tlcnJvci51c2VySW5mbyBv
YmplY3RGb3JLZXk6X1dLSmF2YVNjcmlwdEV4Y2VwdGlvbkxpbmVOdW1iZXJFcnJvcktleV0gaW50
VmFsdWVdKTsKKyAgICAgICAgRVhQRUNUX0VRKDIyLCBbW2Vycm9yLnVzZXJJbmZvIG9iamVjdEZv
cktleTpfV0tKYXZhU2NyaXB0RXhjZXB0aW9uQ29sdW1uTnVtYmVyRXJyb3JLZXldIGludFZhbHVl
XSk7CisgICAgICAgIEVYUEVDVF9OT1RfTlVMTChbZXJyb3IudXNlckluZm8gb2JqZWN0Rm9yS2V5
Ol9XS0phdmFTY3JpcHRFeGNlcHRpb25Tb3VyY2VVUkxFcnJvcktleV0pOwogCiAgICAgICAgIGlz
RG9uZSA9IHRydWU7CiAgICAgfV07Cg==
</data>
<flag name="review"
          id="289093"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>